From 1e6f83dbd3ffc21fc8351737c38748c4bdd43fc9 Mon Sep 17 00:00:00 2001 From: Richard Davey Date: Wed, 22 Jul 2015 17:26:12 +0100 Subject: [PATCH 01/17] Preparing for 2.4.1 development. --- README.md | 321 +----------------------------------- package.json | 4 +- resources/release-names.txt | 2 +- src/Phaser.js | 2 +- 4 files changed, 11 insertions(+), 318 deletions(-) diff --git a/README.md b/README.md index 765450345..addc63b8f 100644 --- a/README.md +++ b/README.md @@ -35,25 +35,13 @@ Thousands of developers worldwide use it. From indies and multi-national digital ![div](http://www.phaser.io/images/github/div.png) -## What's new in Phaser 2.4.0 +## What's new in Phaser 2.4.1
-> 22nd July 2015 +> in development -Phaser 2.4 is another huge update. We had to bump the version number from 2.3 directly to 2.4 because of some API adjustments, all of which are fully detailed in the [Change Log](#change-log). While it's true we could have released it over a few smaller point releases, that just isn't how the cookie crumbled this time. _Be sure to pay attention to the previous deprecated API calls that have been removed in 2.4._ - -So although you had to wait for it a couple months more than usual, Phaser 2.4 is quite simply an **epic release** - there is no two ways about it! Brand new video component? Check. Support for fully boned Creature animations? Check. Brand new Cache and Loader updates? Check. Dynamic sprite and gradient generator? Check. Literally hundreds of updates, enhancements and fixes across the entire codebase? Yup, those too! The Change Log seems to scroll on forever, yet the overall package size continues to come down as we optimise and streamline our code too (this release actually builds smaller than 2.3 did, just 80KB min + gz) - -A few people on the forum have asked how Phaser is funded: Phaser is a fully open-source project and as such we have no _direct_ income from it at all. All development is funded by the client work that [my company](http://www.photonstorm.com) takes on. And of course the contributions from the incredible community (who also volunteer their skills for free). - -Sometimes this work directly impacts on Phaser. For example we recently built [5 games](http://www.insideouthq.com) for the new Pixar film Inside Out. Being Pixar they of course had high video requirements, so we literally coded from scratch the way videos were handled and added in video stream support in the process. Very often though our work simply uses Phaser but doesn't enhance it. Which is why if you buy any of the books or plugins we have on sale it really does make a difference! It buys us time to work on Phaser un-interrupted, which in turn benefits everyone. Some have asked if we could add a 'donate' button to the site, but instead I'd rather you get value from your money - so if we release a new plugin, book or magazine you like the look of, please do consider it a donation towards the continued work we all put in. - -Money stuff aside please enjoy this brand new release. We'll carry on supporting Phaser 2 for the rest of 2015 _at least_, while development of the Phaser 3 renderer proceeds at a rapid pace too. - -Make sure you check out the Phaser web site. We are going to be adding in stacks of new examples and features in the coming weeks. - -But that's all for now. I hope you enjoy Phaser 2.4. Happy coding everyone! See you on the forums. +Happy coding everyone! See you on the forums. Cheers, @@ -87,15 +75,15 @@ Install via [npm](https://www.npmjs.com) [jsDelivr](http://www.jsdelivr.com/#!phaser) is a "super-fast CDN for developers". Include the following in your html: -`` +`` or the minified version: -`` +`` [cdnjs.com](https://cdnjs.com/libraries/phaser) also offers a free CDN service. They have all versions of Phaser and even the custom builds: -`` +`` ### Phaser Sandbox @@ -236,311 +224,16 @@ If you are an exceptional JavaScript developer and would like to join the Phaser ## Change Log -Version 2.4 - "Katar" - 22nd July 2015 +Version 2.4.1 - "Ionin Spring" - in development -### API Changes -* RenderTexture.render now takes a Matrix as its second parameter, not a Point object. This brings it in line with Pixi and allows you to perform much more complex transformations on the object being rendered. If you need to replicate the old behavior please use RenderTexture.renderXY(sprite, point.x, point.y) instead. -* PIXI.DisplayObject.updateTransform has a new optional parameter `parent`. If the DisplayObject doesn't have a parent (i.e. it isn't on the display list yet) then in the past `updateTransform` would fail. This meant you couldn't do things like scale or rotate a Sprite and then draw it to a RenderTexture or BitmapData, as calls to updateTransform would be ignored. The new checks now look to see if the `parent` parameter is set. If so this takes priority over the actual parent and is used to modify the transform (note that it **doesn't** reparent the DisplayObject, it merely uses it for the transform.) If there is no parent (explicitly or via the parameter) then it falls back to use Phaser.World as the parent. If it can't reach that then no transform takes place. -* If Phaser.Sound.noAudio has been set then Phaser.Loader will not load any audio files. No errors are thrown, but all calls to Loader.audio and Loader.audiosprite are silently ignored. `noAudio` can be set either via the `PhaserGlobal` global var or is set if the device your game is running on has no audio playback support. -* Files can now be added to the Loader with an absolute URL even if you have a Loader.baseURL set. In previous versions the baseURL would still be prepended to the file URL, but the Loader now checks if the a file URL begins with `http` or `//` and skips prepending the baseURL to it. -* Phaser.StateManager would incorrectly call `loadUpdate` and `loadRender` while the game was paused or if the State didn't have an `update` or `render` method defined, even after the loader was completed. Although this is a bug fix it's still an API change should you have been using the `loadUpdate/Render` calls in the old way. Also the StateManager no longer calls `preRender` unless the State `create` method has *finished*. If the State doesn't have a `create` method then `preRender` runs immediately. -* Frame.uuid has been removed (was flagged as deprecated for several releases). This has a two-fold effect: First it means that the property no longer exists and secondly it means that the AnimationParser (the class responsible for loading sprite sheets and texture atlases) no longer has to call either RandomDataGenerator.uuid OR populates the PIXI.TextureCache. The first saves some CPU time and the second saves memory by not creating references to textures it doesn't ever use. The PIXI.TextureCache is now ignored by Phaser other than for the `__missing` and `__default` textures. -* Phaser.AnimationParser methods `JSONData`, `JSONDataHash` and `XMLData` have all had their `cacheKey` parameter removed as it's no longer used. -* Input.deleteMoveCallback no longer takes an integer as its parameter. Now you have to give it the original callback and context in order to remove it. This is to protect against index invalidation (see the fixed Bugs list) -* Group.add and Group.addAt will only create a Physics Body on the child if it doesn't already have one. This is a change from 2.3 where it would replace the physics body property with the new body, but this could lead to garbage build-up over time, so you should now properly destroy the body before changing it. -* Button game objects now have `Input.useHandCursor` set to `true` by default. -* Phaser.BitmapText no longer extends PIXI.BitmapText but replaces it entirely. -* Phaser.Text no longer extends PIXI.Text but replaces it entirely. Phaser.Text now natively extends a Phaser Sprite, meaning it can be enabled for physics, damaged, etc. -* Mouse.button and MSPointer.button have been deprecated and are no longer set (they remain at -1). They never supported complex button events such as holding down 2 buttons and releasing just one, or any buttons other than left and right. They have been replaced with the far more robust and accurate Pointer DeviceButton properties such as `Pointer.leftButton`, `Pointer.rightButton` and so on. -* Phaser.DeviceButton is a new class that handles a specific button on an input device, for example the middle button of a mouse, the eraser button of a stylus or a shoulder button on a Gamepad. -* Phaser.DeviceButton.shiftKey is a boolean that holds if the shift key was held down or not during the last button event. -* Phaser.DeviceButton.altKey is a boolean that holds if the alt key was held down or not during the last button event. -* Phaser.DeviceButton.ctrlKey is a boolean that holds if the control key was held down or not during the last button event. -* Phaser.GamepadButton has been removed and now uses DeviceButton instead. Three internal API changes took place: `processButtonDown` is renamed to `start`, `processButtonUp` is renamed to `stop` and `processButtonFloat` is renamed to `padFloat`. If you extended GamepadButton in your own code you need to replace it with DeviceButton. -* MSPointer now checks the `pointerType` property of the DOM event and if it matches 'mouse' it will update `Input.mousePointer`, rather than `Input.pointer1` (or whatever the next free Pointer was). -* Time.suggestedFps is now only populated if `Time.advancedTiming` is enabled. -### p2.js Upgraded to version 0.7.0 -Phaser has been upgraded internally to use the new release of p2 physics. All Phaser based API call signatures remain unchanged unless listed below. -For the full list of p2 additions please read [their change log](https://github.com/schteppe/p2.js/releases/tag/v0.7.0). -* The P2.Body.onBeginContact arguments have changed. It now sends 5 arguments: The Phaser.P2.Body, the p2.Body, the p2 Shape from Body A, the p2 Shape from Body B and the contact equations array. Note that the Phaser.P2.Body may be null if you collide with a 'native' p2 body (such as the world bounds). However the p2.Body argument will always be populated. -* The P2.Body.onEndContact arguments have changed. It now sends 4 arguments: The Phaser.P2.Body, the p2.Body, the p2 Shape from Body A and the p2 Shape from Body B. Note that the Phaser.P2.Body may be null if this is the end of a contact with a 'native' p2 body (such as the world bounds). However the p2.Body argument will always be populated. -* P2.Body.applyImpulse allows you to apply an impulse to a Body. An impulse is a force added to a body during a short period of time. -* P2.Body.applyImpulseLocal allows you to apply an impulse to a point local to the Body. An impulse is a force added to a body during a short period of time. -* P2.Body.getVelocityAtPoint gets the velocity of a point in the body. -### Build Updates -* The Grunt build script now lets you exclude four new modules: rope, tilesprite, creature and video. -* Rope removes the ability to create Rope sprites and also removes the PIXI.Rope and PIXI.Strip classes. -* TileSprite removes the ability to create Tile Sprites and also removes the PIXI.TilingSprite class. -* Creature is not enabled by default, but allows you to control support for Creature bone based animations. -* Video removes the ability to render Videos and video streams to textures. -* Pixi is no longer an optional module. Phaser no longer uses any main stream branch of Pixi and has multiple fixes and tweaks internally through-out it. Therefore it's now no longer possible to replace the version of Pixi that Phaser uses with any other version, so we removed the option from the custom list. Over time we will do away with the Pixi globals and merge it fully into Phaser to avoid conflicts with any other version of Pixi present. -### New Features - -* All calls to Loader methods that add files to the queue, such as `Loader.image` or `Loader.atlas`, now have the URL as an optional parameter. If not set Loader will assume the URL to be based on the key given. For example the following: `game.load.image("boom", "boom.png")` can now be expressed as just `game.load.image("boom")`, or `game.load.atlas("player", "player.png", "player.json")` can now be shortened to `game.load.atlas("player")`. Please see the freshly updated jsdocs for full details. -* Loader.atlas and `Cache.addTextureAtlas` will now automatically determine the format of the JSON data (array or hash) when added to the Cache. You no longer need to specify it explicitly if JSON, only if XML. -* Added support for the [Creature Automated Animation Tool](http://www.kestrelmoon.com/creature/). You can now create a Phaser.Creature object which uses json data and a texture atlas for the animations. Creature is a powerful animation tool, similar to Spriter or Spine. It is currently limited to WebGL games only, but the new libs should prove a solid starting point for anyone wanting to incorporate Creature animations into their games. -* Tilemap.getTileWorldXY has a new optional parameter: `nonNull` which if set makes it behave in the same way as `getTile` does (thanks @GGAlanSmithee #1722) -* Group.hash is an array (previously available as `Group._hash`, but protected) into which you can add any of its children via `Group.addToHash` and `Group.removeFromHash`. Only children of the Group can be added to and removed from the hash. The hash is used automatically by Arcade Physics in order to perform non z-index based destructive sorting. However if you don't use Arcade Physics, or it isn't a physics enabled Group, then you can use the hash to perform your own sorting and filtering of Group children without touching their z-index (and therefore display draw order). -* Group.physicsSortDirection is a new property allowing you to set a custom sort direction for Arcade Physics Sprites within the Group hash. Previously Arcade Physics used one single sort direction (defined on `Phaser.Physics.Arcade.sortDirection`) but this change allows you to specifically control how each and every Group is sorted, so you can now combine tall and wide Groups with narrow and thin in a single system. -* Cache.getPixiTexture will return a PIXI.Texture from the cache based on the given key. A PIXI Texture is created automatically for all images loaded and added to the cache. -* Cache.getPixiBaseTexture will return a PIXI.BaseTexture from the cache based on the given key. A PIXI BaseTexture is created automatically for all images loaded and added to the cache. -* Phaser.Matrix.clone allows you to clone the Matrix to a new object, or copy its values into the given Matrix. -* Phaser.Matrix.copyFrom and copyTo allow you to copy Matrix values from and to other Matrix objects. -* Phaser.Matrix.setTo allows you to set all properties of a Matrix in a single call. -* The Phaser.Matrix constructor now allows you to optionally set all Matrix properties on instantiation. -* Text.setShadow has two new optional parameters: `shadowStroke` and `shadowFill`. These allow you to set if the drop shadow is applied to the Text stroke, the Text fill or both of them (thanks @qdrj #1766) -* Text.shadowStroke and Text.shadowFill allow you to toggle if the drop shadow is applied to the Text stroke or fill independently. -* ArcadePhysics.Body.syncBounds is a new property that if true forces the Body to check itself against the Sprite.getBounds() dimensions and adjust its width and height accordingly. If false it will compare its dimensions against the Sprite scale instead, and adjust its width height if the scale has changed. Typically you would need to enable `syncBounds` if your sprite is the child of a responsive display object such as a FlexLayer, or in any situation where the sprite scale doesn't change, but its parents scale is effecting the dimensions regardless. -* Rectangle.ceil runs Math.ceil() on both the x and y values of the Rectangle. -* Rectangle.ceilAll runs Math.ceil() on the x, y, width and height values of the Rectangle. -* The Net and Debug classes have been stubbed out, so they can be properly excluded during a custom build (thanks @soldoutactivist #1772) -* Device.oggVideo indicates if the browser can play back ogg video files. -* Device.h264Video indicates if the browser can play back H264 (mp4) video files. -* Device.mp4Video indicates if the browser can play back H264 (mp4) video files. -* Device.webmVideo indicates if the browser can play back webm video files with the vp8 codec. -* Device.vp9Video indicates if the browser can play back webm video files with the vp9 codec. -* Device.hlsVideo indicates if the browser can play back mpeg video files. -* PIXI.DisplayObject.worldPosition contains the position of the DisplayObject (and therefore any object that inherits from it, such as Phaser.Sprite) taking into account all transforms in the display list. It is updated at the end of `DisplayObject.updateTransform`. DisplayObject.position reflects only the position applied to the object directly, whereas worldPosition includes the positions that may have been applied to its ancestors. -* PIXI.DisplayObject.worldScale contains the scale of the DisplayObject (and therefore any object that inherits from it, such as Phaser.Sprite) taking into account all transforms in the display list. It is updated at the end of `DisplayObject.updateTransform`. DisplayObject.scale reflects only the scale applied to the object directly, whereas worldScale includes any scales that may have been applied to its ancestors. -* PIXI.DisplayObject.worldRotation contains the rotation of the DisplayObject (and therefore any object that inherits from it, such as Phaser.Sprite) taking into account all transforms in the display list. It is updated at the end of `DisplayObject.updateTransform`. DisplayObject.rotation reflects only the rotation applied to the object directly, whereas worldRotation includes any rotations that may have been applied to its ancestors. -* Loader.video allows you to load a video file into Phaser. It works in the same way as Loader.audio, allowing you to pass an array of video files - and it will load the first one the device is capable of playing back. You can optionally load the video via xhr where the video data is converted to a Blob upon successful load. -* Cache.addVideo allows you to add a loaded video into the Phaser Cache. This is called automatically by the Phaser Loader, but may be invoked directly as well. -* Cache.checkVideoKey allows you to check if a video is stored in the cache based on the given key. -* Cache.getVideo allows you to extract a video from the Cache based on its key. The video element itself (or the Blob is loaded with asBlob true) will be found in the `data` property of the returned object. -* Cache.removeVideo will remove a video from the Cache based on the given key. -* SoundManager.onVolumeChange is a new signal that is dispatched whenever the global volume changes. The new volume is passed as the only parameter to your callback. -* SoundManager.onMute is a new signal that is dispatched when the SoundManager is globally muted, either directly via game code or as a result of the game pausing. -* SoundManager.onUnMute is a new signal that is dispatched when the SoundManager is globally un-muted, either directly via game code or as a result of the game resuming from a pause. -* Input.Touch.addTouchLockCallback allows you to add a callback that will be invoked automatically upon a touchstart event. This is used internally by the SoundManager and Video objects to handle mobile device unlocking, but is exposed publicly as well. -* Frame.resize allows you to change the dimensions of a Frame object and recalculate all of its internal properties (such as `bottom` and `distance`). -* LoadTexture.resizeFrame lets you resize the Frame dimensions that the Game Object uses for rendering. You shouldn't normally need to ever call this, but in the case of special texture types such as Video or BitmapData it can be useful to adjust the dimensions directly in this way. -* Rectangle.bottomLeft has been added (thanks @mattmogford #1788) -* Device.firefoxVersion is a new property that contains the major Firefox version number if running within Firefox, otherwise zero. -* Math.distanceSq will return the euclidean distance squared between the two given set of coordinates (thanks @jeremyosborne #1761 #1770) -* StateManager.onStateChange is a new signal which is dispatched whenever the State changes from one to another. The callback you specify is sent two parameters: the string based key of the new state, and the second parameter is the string based key of the old / previous state. -* onDragUpdate is a new signal that is dispatched whenever a Game object enabled for input and drag is moved by a pointer (i.e. during a drag event). See the `Phaser.InputHandler.enableDrag` docs for parameter details and the new Phaser Example. -* Rectangle.resize allows you to resize a Rectangle to the new given dimensions without altering its position. -* Cache.getJSON has a new parameter: `clone`. If set it will return a clone of the object stored in the Cache rather than a reference to it. -* Circle.random will return a uniformly distributed random point from anywhere within the circle. -* Line.random will return a random point from anywhere on the Line segment. -* Ellipse.random will return a uniformly distributed random point from anywhere within the ellipse. -* Rectangle.random will return a uniformly distributed random point from anywhere within the rectangle. -* Line.rotate allows you to rotate a line by the given amount around its center point. -* Device.chromeVersion will return the major version number of Chrome. -* TilingSprite.textureDebug is a new boolean that allows you to visually debug the generated texture a TilingSprite creates. -* Device.electron will return true if running under GitHub Electron (thanks @rblopes #1851) -* When loading a BitmapText you can now specify either an XML file or a JSON file for the font data. This is useful in environments such as Cocoon where you don't have a native XML parser. If you wish to use JSON the formatting should be equal to the result of running a valid XML file through X2JS (thanks @Feenposhleen #1837) -* Game Objects that have the Health component (such as Sprites) now have a new method: `heal` which adds the given amount to the health property, i.e. is the opposite of `damage` (thanks @stephandesouza #1794) -* maxHealth is a new property that Game Objects with the Health component receive and works in combination with the `heal` method to ensure a health limit cap. -* Text.setTextBounds is a rectangular region that allows you to align your text within it, regardless of the number of lines of text or position within the world. For example in an 800x600 sized game if you set the textBounds to be 0,0,800,600 and text alignment to 'left' and vertical alignment to 'bottom' then the text will render in the bottom-right hand corner of the game, regardless of the size of font you're using or the number of lines in the text itself (thanks @boostermedia for the idea #1824) -* Text.autoRound allows you to control if the text is allowed to render at sub-pixel coordinates or not. Set to `true` to round the coordinates, often eliminating anti-aliasing from certain font types (#1867) -* Tiled Image Collection support is now available and has been added to the TilemapParser and Tilemap classes (thanks @asyed94 #1879) -* Keyboard.addKeys is a practical way to create an object containing user selected hotkeys. For example: `addKeys( { 'up': Phaser.Keyboard.W, 'down': Phaser.Keyboard.S, 'left': Phaser.Keyboard.A, 'right': Phaser.Keyboard.D } );` would return an object containing the properties `up`, `down`, `left` and `right` that you could poll just like a Phaser.Key object. (thanks @Mourtz #1857) -* TilemapLayer.resize allows you to resize a TilemapLayer. It will update the internal canvas object and corresponding texture dimensions (#1881) -* Pointer button handling has been given an overhaul. It has the following new DeviceButton properties: `leftButton`, `rightButton`, `middleButton`, `backButton`, `forwardButton` and `eraserButton`. So you can now easily check which buttons are active and build right or middle click support into your games. The Pointer object normalises these properties for you, regardless if they came from a MouseEvent or PointerEvent (thanks @youssefdetovernickr for the idea #1848) -* Text has a new style property: tabs. This allows you to specify a pixel value (or values) that allows you to space out text that contains tab characters within it. `Text.tabs` can be either an integer, in which case all tabs share the same spacing, or an array of pixel values corresponding exactly to the number of tabs per line of text. This allows you to easily align columns of data in a single Text object. -* BitmapData.move(x, y) allows you to shift the contents of the BitmapData horizontally and vertically by the given amounts. The image wraps-around the edges of the BitmapData. -* BitmapData.moveH(distance) allows you to horizontally shift the BitmapData with wrap-around the edges. -* BitmapData.moveV(distance) allows you to vertically shift the BitmapData with wrap-around the edges. -* Text.addStrokeColor works in the same way as `Text.addColor` but allows you to define a color stop for the stroke color instead of the fill color. -* All Game Objects and Groups have a new boolean property called `pendingDestroy`. If you set this to `true` then the object will automatically destroy itself in the *next* logic update, rather than immediately. This is useful for cases when you wish to destroy an object from within one of its own callbacks, such as with buttons or other input events (thanks @alamboley #1748) -* BitmapData.generateTexture will take a snapshot of the BitmapDatas canvas at that moment in time and convert it into an Image, which is then stored in the Phaser image Cache based on the key given. You can then use the new texture for any future sprites or texture based objects. -* All Signals now have the ability to carry extra custom arguments with them, which are passed on to the callback you define after any internal arguments. For example a Phaser.Key has an onDown signal. When dispatched onDown sends a reference to the Key as the first and only argument. But you can now set the callback like this: `fireKey.onDown.add(shoot, this, 0, 'lazer', 64)`. So when the onDown signal is dispatched internally the callback (`shoot` in this case) will receive 3 arguments: the Key reference that is raised internally and the string 'lazer' and value 64, which were the custom arguments provided when setting-up the callback. -* Group.moveAll allows you to move all of the children of a Group into another Group. -* Loader.path is a string and if set it is placed before any _relative_ file path given to the Loader. For example: `load.path = "images/sprites/";` followed by `load.image("ball", "ball.png");` and `load.image("tree", "level1/oaktree.png");` would load the `ball` file from `images/sprites/ball.png` and the tree from `images/sprites/level1/oaktree.png`. The path is added before the filename but *after* the `Loader.baseURL`. The path _must_ end with a "/". Set it to nothing to disable the path. -* Loader.shader allows you to load a fragment shader from an external file. -* Cache.addShader adds a fragment shader into the cache. -* Cache.getShader gets a fragment shader from the cache. -* The Cache has been internally refactored considerably. Image data is now all stored in the same object, rather than being split across the PIXI global caches (such as PIXI.TextureCache and PIXI.BaseTextureCache), which are no longer used by Phaser. -* Internally the Cache now uses a single _cache object, which is partitioned to store the various different object types. Before the cache used lots of private objects, one per data type, but it's now a lot cleaner and we've managed to cut out hundreds of lines of duplicate code in the process. -* Cache.getImage has a new argument which lets you return either just the HTML Image element or the entire image cache object, which includes the baseTexture and frame data. -* Cache.getImage will return a __default image if the key isn't given, or a __missing image if the key is given but not found in the cache. This means it will always return a valid image and no longer cause Phaser to throw runtime errors deeper down with invalid image objects. -* AABB vs. AABB collisions now work in Ninja Physics. `reportCollisionVsWorld` already worked, and contained all of the logic required to resolve a collision once the appropriate vectors had been established. `reportCollisionVsBody` was refactored to use that function (now generically named `reportCollision`), and now AABBs can collide properly, including bouncing and friction. reportCollisionVsWorld is now just a wrapper around reportCollision to maintain compatibility (thanks @standardgaussian #1905) -* Phaser.Create is a new class that allows you to dynamically generate sprite textures from an array of pixel data, without needing any external files. We'll continue to improve this over the coming releases, but for now please see the new examples showing how to use it. - -### Updates - -* TypeScript definitions fixes and updates (thanks @clark-stevenson @isuda @ggarek @jamesgroat) -* JSDoc typo fixes (thanks @robertpenner @luckylooke @asyncanup @muzuiget @danxexe @rgk @matugm) -* Added missing `resumed` method to Phaser.State class template. -* Color.webToColor and Color.updateColor now updates the `out.color` and `out.color32` properties (thanks @cuixiping #1728) -* Tilemap.createFromObjects has been updated for Tiled 0.11 and can now look-up object layers based on id, uid or name. It will also now copy over Sprite scaling properties if set (thanks @mandarinx #1738) -* Graphics.drawPolygon can now accept a Phaser.Polygon or PIXI.Polygon object, as well as a points array (#1712) -* Phaser.Physics hooks added in for MatterJS support (coming soon) -* Body.destroy now automatically calls `Group.removeFromHash`. -* Physics.Arcade.sort has a new property 'sortDirection'. If not specified it will use World.sortDirection. If the Group given as the first parameter has its `physicsSortDirection` property set that will override any other setting. -* Physics.Arcade.sort now calls one of four functions: sortLeftRight, sortRightLeft, sortTopBottom and sortBottomTop. Each of which takes 2 Sprites as arguments. -* Physics.Arcade.sort now doesn't bail out if the Group contains a mixture of physics and non-physics enabled objects, as the Group hash is now only ever populated with physics enabled objects. Also the sort comparison functions no longer return -1 if the bodies are invalid, but zero instead (#1721) -* Phaser.Group would automatically add a child into the _hash array as soon as the child was created (or moved into the Group). This no longer happens. Instead the child is only added to `Group.hash` if it is enabled for Arcade Physics. However `Group.addToHash` and the hash array have been exposed as public in case you were taking advantage of the _hash even though it was a previously marked as private. -* Cache.getTexture has now been removed (it was deprecated several versions ago). Use Cache.getRenderTexture instead. -* Removed duplicate methods from PIXI.Text such as wordWrap and updateText as Phaser overrides them, so it was wasting bytes. -* Phaser.StateManager no longer calls `preRender` unless the State `create` method has finished. If the State doesn't have a `create` method then `preRender` runs immediately. -* Phaser.StateManager.created is a new read-only boolean that tells you if the State has finished running its `create` method. If it doesn't have one it's always true. -* RenderTexture.render and `renderXY` would ignore the Sprites rotation or scale. The full Sprite transform is now used correctly when the Sprite is drawn to the texture. If you wish to replicate the old behavior please use `RenderTexture.renderRawXY` instead. -* Pixi.Sprite.renderCanvas and renderWebGL now has a new optional matrix parameter. You can use this to render the Sprite with an alternative transform matrix without actually adjusting the Sprite matrix at all. -* RenderTexture.matrix has been removed as it's no longer used. -* SoundManager.pauseAll, resumeAll and stopAll now checks if the SoundManager.noAudio is set and ignores the calls. -* SoundManager.usingWebAudio is set to `false` by default (used to be `true`) and is only explicitly set if Web Audio is available and hasn't been disabled in the PhaserGlobal object. -* SoundManager.touchLocked is now set to `false` should the device be using legacy Audio, avoiding the unlock call running without need. -* Added `type` parameter to `VideoTexture.fromUrl` allowing you to define the mime-type of the video file, which is required for Firefox and Safari in most cases. -* PIXI.BaseTexture.forceLoaded allows you to set a BaseTexture as loaded, with the given width and height. It then calls `BaseTexture.dirty`. This is important for when you don't want to modify the shape of the source object by forcing in `complete` or dimension properties it may not naturally have, but still wish to use it as a base texture. -* SoundManager.volume now has its input value clamped to ensure it's between 0 and 1 (inclusive) -* Removed `Input.moveCallback` and `Input.moveCallbackContext` as neither are used any longer. Use `Input.addMoveCallback`. -* SoundManager now uses the new `Touch.addTouchLockCallback` methods to handle mobile device audio unlocking. -* If a BitmapData is created with a width or height set to zero then the width and/or height are set to a default value (256) instead to avoid getContext errors. -* RetroFont has been updated to use RenderTexture.renderXY, removing the need for creating a Point object each update. -* RetroFont no longer puts any entries into the TextureCache or generates any UUIDs on instantiation, speeding up creation and lowering memory use. -* BitmapData.update now validates the `width` and `height` values to ensure they aren't lower than 1, which would previously cause a context error. -* Texture.requiresReTint is a new property that controls if a texture requires the display object to be re-tinted having been updated internally. The LoadTexture component now sets this. -* PIXI.Sprite.tintedTexture contains a canvas object that holds the tinted version of the Sprite. This is only populated in Canvas, not in WebGL. -* ScaleManager.scaleSprite will no longer try and scale a display object that doesn't have a scale property. -* The LoadTexture component has a new property `customRender` which is checked for in the Core postUpdate to know when to render custom elements like Videos. -* BitmapText line spacing and word wrapping has been vastly improved and bought in-line with how Pixi 3 handles it, but with additional anchor support. -* P2.Body.loadPolygon now allows the `key` parameter to be passed as `null` - when this happens the `object` parameter can be the actual physics object data instead of a string pointing to the cache, allowing you to take advantage of adding multiple convex shapes with automatic adjustments for center of mass #1801 -* Tilemap.addTilesetImage can now accept a BitmapData as the `key` parameter and will use the BitmapData to render the tileset with instead of an image from the cache (thanks to @unstoppablecarl for the idea #1838) -* Device now uses a new way to detect when Phaser is running under a NW.js (formerly Node-WebKit) environment, using feature detection, instead of relying on a guarded require statement. The former way was the source of a known incompatibility with browserify and similar tools (thanks @rblopes #1851) -* Sprite vs. Tilemap collision can now check if the sprite overlaps the tilemap without trying to separate it (thanks @Preece #1810) -* The Asset Pack JSON Format example has been updated to include new and missing file formats (thanks @rblopes #1808) -* RenderTexture now takes the display objects alpha into consideration when rendering it, before it would always reset worldAlpha to 1 before rendering, thus ignoring any alpha that may be set. -* P2.enableBody now checks if an anchor exists on target object before attempting to set its value (thanks @standardgaussian #1885) -* Debug.currentAlpha wasn't being used to set the alpha of the Debug context at all (was always set to 1) but now updates the alpha of the Debug context before anything is rendered to it (thanks @wayfu #1888) -* If the device is detected as a Windows Phone the renderer is automatically set to use Canvas, even if WebGL or AUTO was requested (thanks @ramarro123 #1706) -* RandomDataGenerator.weightedPick has been tweaked slightly to allow for a more even distribution of weights. It still favors the earlier array elements, but will accurately include 'distance' elements as well (thanks @gingerbeardman #1751) -* BitmapData.clear has 4 new optional parameters: x, y, width and height, that define the area to be cleared. If left undefined it works exactly the same as before and clears the entire canvas. -* Added Phaser.Keyboard.COMMA and Phaser.Keyboard.PERIOD to the consts list. -* Canvas.setSmoothingEnabled only applies the value of the property exists, which avoids the Chrome webkit prefix deprecation warnings. -* PIXI._CompileShader can now take an array or a string for the fragment src. -* AnimationParser.spriteSheet can now accept either a string-based key or an HTML Image object as the key argument. -* LoaderParser.bitmapFont, xmlBitmapFont and jsonBitmapFont all now return the font data rather than write it to the now deprecated PIXI.BitmapText.fonts global array. -* PIXI.BitmapText has been removed as a global array, as it is no longer used. -* PIXI has been made available for Phaser when using requireJS (thanks @mkristo #1923) -* Internally the Time class has been updated to split out the RAF and SetTimeout implementations. This cuts down the update loop workload significantly, which was causing a performance optimization bottleneck in V8. -* TweenData.update now uses the `Time.elapsedMS` value for its delta calculation, instead of the physicsStep - this is because tweens are inherently time duration based and on a lagging system they were not properly completing when they should do (also addresses #1819) -* World.stateChange is a new method that is called whenever the state changes or restarts. It resets the world x/y coordinates back to zero and then resets the Camera. -* All undefined argument checks were changed from `if (typeof x === 'undefined')` to `if (x === undefined)` removing the typeof check and saving some bytes across the codebase in the process. -* Text.updateText will now check the width and height values of the Text canvas and if either are zero it sets `Text.renderable = false` to avoid throwing WebGL texture binding errors. -* WebGL context loss and restoration is now handled directly by Phaser. -* Cache.clearGLTextures empties out all of the GL Textures from Images stored in the cache. This is called automatically when the WebGL context is lost and then restored. - -### Bug Fixes - -* The LoadTexture component has had a redundant `dirty` call removed from it that was causing textures to be re-uploaded to the GPU even though they may already have been on it. -* TileSprites were missing a `physicsType` property, causing them to not collide with anything (thanks @numbofathma #1702) -* Sprite was missing the Health and InCamera components. -* A Tween could be incorrectly set to never end if it was given a duration of zero (thanks @hardalias #1710) -* Added guards around `context.getImageData` calls in BitmapData, Text and Canvas Tinting classes to avoid crashing restricted browsers like Epic Browser. Please understand that several Phaser features won't work correctly with this browser (thanks @Erik3000 #1714) -* P2 Body.destroy now checks for the existence of a `sprite` property on the body before nulling it (thanks @englercj #1736) -* The version of p2.js being used in 2.3.0 wasn't correctly declaring itself as a global for browserify / requireJS. This update resolves that (thanks @dgoemans #1723) -* AnimationManager.frameName setter wasn't checking if `_frameData` existed before accessing it (thanks @nesukun #1727) -* P2.getConstraints would return an array of null objects. It now returns the raw p2 constraint objects (thanks @valueerrorx #1726) -* TilemapLayer docs incorrectly reported it as extending Phaser.Image, but it doesn't share the same components so has been updated. -* TilemapLayer was missing the Input component (thanks @uhe1231 #1700) -* PIXI.Graphics in Canvas mode wouldn't respect the objects visible or alpha zero properties, rendering it regardless (thanks @TimvdEijnden #1720) -* Enabling Arcade Physics would add the deltaCap property onto Phaser.Time, even though the property doesn't exist any more, changing the class shape in the process. -* Phaser.StateManager would incorrectly call `loadUpdate` while the game was paused or if the State didn't have an `update` method defined even after the loader was completed. -* Phaser.StateManager would incorrectly call `loadRender` while the game was paused or if the State didn't have an `render` method defined even after the loader was completed. -* Added the missing `preRender` function to the Phaser.State class template. -* Fixed bug in Pixi where RenderTexture.render would ignore the given matrix. -* Fixed a bug in Pixi where drawing a Sprite to a RenderTexture would reset the Sprites transform to an identity Matrix. -* The SoundManager didn't accurately detect devices or browser environments with no sound card present and would try to carry on using a null Web Audio context (thanks @englercj #1746) -* The Tween.onStart signal wasn't dispatched if the Tween had a delay set. It's now dispatched immediately if no delay, or after the delay if set. It also respects the `autoStart` parameter and will still dispatch even if `autoStart` is true. -* Input.addMoveCallback used to return the index of the callback entry in the internal `moveCallbacks` array. However as callbacks were removed the indexes became invalid, potentially causing a future `Input.deleteMoveCallback` to remove the wrong callback entirely or error. Input.deleteMoveCallback now takes the original callback and context as its parameters to ensure deletion safety. -* Graphics constructor now sets x/y parameters to zero if undefined. Before it would set them to undefined as the type check wasn't strict. -* Math.isOdd now returns an actual boolean value instead of 1 (thanks @formigone #1792) -* Rope constructor was fixed enabling it again (thanks @gionatan7 #1799) -* FrameData.getFrameIndexes when called with a partial array (such as creating an animation out of a set of frames) would return the indexes array padded out with 'undefined' entries, causing short animations to never fully play through. -* AnimationManager.add no longer sets the `currentFrame` property when just adding an Animation to a Sprite. The `currentFrame` property is now only set when the animation begins playing. This avoids the Sprite.frame and Sprite.frameName properties from returning incorrect results after adding (but not playing) an Animation. It also allows very short animations (2 frames) to play correctly without needing to loop. -* PIXI.Graphics was calling Polygon.flatten in its drawShape call, causing the original Polygon object to internally change. It now takes a clone of the polygon and only flattens that (#1779) -* Tween.generateData didn't set a default value for the `frameRate` parameter if undefined, causing an infinite loop (thanks @rblopes #1782 #1785) -* Fixed the Pixelate filter, changing the `dimensions` uniform to a 2f and removing un-needed vecs from the fragment src. Also fixed the size getter and added sizeX and sizeY getters/setters (#1780) -* Tween.to and Tween.from can now accept `null` as the ease parameter value. If `null` it will use the default tween, as per the documentation (thanks @nkovacs #1817) -* TilemapParser.parseTiledJSON would ignore 'falsey' properties set on Objects in Tiled JSON tilemaps, such as `x: 0` or `visible: false`. These properties are now accurately copied over to the destination map data (thanks @MaksJS #1818) -* Removed un-necessary PIXI.TextureCache pollution in Phaser.LoaderParser.bitmapFont. -* Sound.resume wouldn't properly restart looped sounds in Chrome after being paused. Phaser now specifically handles the Chrome 42 bug and later fix (thanks @nkovacs #1820) -* Setting the BitmapText.maxWidth property would throw an error (thanks @drhayes #1807) -* If running under Cordova and iOS the Game.lockRender boolean will be set to `true` when the game pauses and `false` when it resumes. This avoids the `gpus_ReturnNotPermittedKillClient` app crash on iOS (thanks @cncolder #1800) -* Sound.restart and Sound.stop now properly disconnect the sound from the gainNode (or external node) before stopping it, allowing restart to work correctly (thanks @eofs #1796) -* When loading an Audio Sprite from an Asset Pack the wrong Loader method was being used (thanks @boniatillo-com #1777) -* Due to a Pixi 2 issue TileSprite when running under WebGL didn't respect the world alpha setting and would only work with its own alpha (thanks @hanenbro #1774) -* TileSprite now fully supports animation again, having been broken for several versions due to a Pixi upgrade. We've updated the way TileSprites generate their textures internally considerably and animation support is back across both Canvas and WebGL as a result (#1653) -* Setting mute to false on Sound that was never muted caused its volume to be set to zero (thanks @brianbunch #1870) -* P2.Body.createGroupCallback incorrectly referenced the `_groupCallbackContext` when deleting it (thanks @Langerz82 #1886) -* When reusing a Tween created with an array of properties the values would get exponentially added to the TweenData internal array each time the tween was re-run (thanks @SBCGames #1747) -* Reading the dimensions of a Text object would reset its resolution property (thanks @joelika #1717) -* Text.addColor would incorrectly color the text stroke if set (thanks @llevkin #1893) -* Setting the scaleMode property of a Game configuration object would cause a ScaleManager TypeError in the resize method. It now stores the scale mode locally and applies it after boot (thanks @Mickawesomesque #1534) -* Device.windowsPhone should now correctly identify Windows Phone 8.1 devices, which also think they are iOS and Androids. If you find a device that gets around this check please send us its ua string! (thanks @jounii #1496) -* Rope.segments used the wrong vertices property, causing a runtime error. -* Debug.ropeSegments didn't take the scale of the Rope object into consideration, causing incorrect debug rendering. -* If a Sound was muted, or had its volume changed while it was still decoding (i.e. before it started playback) then the mute and/or volume were ignored and the sound would play anyway (thanks @brianbunch #1872) -* Group.addMultiple if given a Group.children array as the first parameter would fail as the original group length was decreased out of line with the children being added. Group.addMultiple now checks if the children argument is a Phaser.Group instance, and if so it uses Group.moveAll instead on it (thanks @AnderbergE #1898) -* PIXI.DisplayObject.updateTransform now nulls the _currentBounds property (thanks @gaufqwi #1906) -* Improved the JSON BitmapText implementation (thanks @Feenposhleen #1912 #1837) -* game.make.group did not setup parent correctly (thanks @mthurlin #1911) -* Fix reference error for process in the Device class (thanks @mkristo #1922) -* Sprites with Arcade Physics bodies that had `collideWorldBounds` enabled would be moved to the wrong position if you restarted a State (or swapped to a new State) that reset the world bounds (thanks @vulvulune #1775) -* PIXI.BaseTexture.fromCanvas now checks the canvas dimensions and if either face is zero it sets them to 1px to avoid WebGL texture binding errors. - -### Deprecated - -All of the following have been removed from Phaser 2.4. -They were flagged as deprecated in Phaser 2.2 or earlier. - -* Camera.screenView -* ScaleManager.maxIterations -* ScaleManager.enterPortrait (see onOrientationChange) -* ScaleManager.enterLandscape (see onOrientationChange) -* ScaleManager.enterFullScreen (see onFullScreenChange) -* ScaleManager.leaveFullScreen (see onFullScreenChange) -* ScaleManager.fullScreenFailed (see onFullScreenError) -* ScaleManager.checkResize -* ScaleManager.checkOrientation -* ScaleManager.setScreenSize (see updateLayout) -* ScaleManager.setSize (see reflowCanvas) -* ScaleManager.checkOrientationState (see reflowCanvas) -* ScaleManager.orientation (see screenOrientation) -* Gamepad.disabled (see enabled) -* Input.currentPointers (see totalActivePointers) -* Input.disabled (see enabled) -* Keyboard.disabled (see enabled) -* Mouse.disabled (see enabled) -* Mouse.mouseMoveCallback (see Input.addMoveCallback) -* MSPointer.disabled (see enabled) -* Touch.disabled (see enabled) -* Cache.getUrl (see getURL) -* Math.truncate (see Math.trunc) -* Math.snapToInArray (see Phaser.ArrayUtils.findClosest) -* Math.interpolateFloat (see Math.linear) -* Math.normalizeLatitude (use Phaser.Math.clamp(lat, -90, 90)) -* Math.normalizeLongitude (use Phaser.Math.wrap(lng, -180, 180)) -* Math.chanceRoll (use Phaser.Utils.chanceRoll) -* Math.numberArray (use Phaser.ArrayUtils.numberArray) -* Math.numberArrayStep (use Phaser.ArrayUtils.numberArrayStep) -* Math.limitValue (use Phaser.Math.clamp) -* Math.randomSign (use Phaser.Utils.randomChoice(-1, 1)) -* Math.angleLimit (use Phaser.Math.clamp) -* Math.getRandom (use Phaser.ArrayUtils.getRandomItem) -* Math.removeRandom (use Phaser.ArrayUtils.removeRandomItem) -* Math.floor (use Math.trunc) -* Math.ceil (use Phaser.Math.roundAwayFromZero) -* Math.shift (use Phaser.ArrayUtils.rotate) -* Math.shuffleArray (use Phaser.ArrayUtils.shuffle) -* Math.distanceRounded (do the rounding locally) -* Canvas.getOffset (see Phaser.DOM.getOffset) -* Canvas.getAspectRatio (see Phaser.DOM.getAspectRatio) -* TilemapLayer.tileColor (use TilemapLayer.debugSettings.missingImageFill) -* Phaser.ArrayList alias removed, now use Phaser.ArraySet -* Utils.transposeArray (see Phaser.ArrayUtils.transposeMatrix) -* Utils.rotateArray (see Phaser.ArrayUtils.rotateMatrix) -* Utils.shuffle (see Phaser.ArrayUtils.shuffle) For changes in previous releases please see the extensive [Version History](https://github.com/photonstorm/phaser/blob/master/CHANGELOG.md). diff --git a/package.json b/package.json index 96aa00f3d..7ce20b43d 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "phaser", - "version": "2.4.0", - "release": "Katar", + "version": "2.4.1", + "release": "Ionin Spring", "description": "A fast, free and fun HTML5 Game Framework for Desktop and Mobile web browsers.", "author": "Richard Davey (http://www.photonstorm.com)", "logo": "https://raw.github.com/photonstorm/phaser/master/phaser-logo-small.png", diff --git a/resources/release-names.txt b/resources/release-names.txt index cbc337986..ea0dab6ee 100644 --- a/resources/release-names.txt +++ b/resources/release-names.txt @@ -7,7 +7,7 @@ Anything marked * has been used as a release name already. Altara Capital: Ebou Dar -Cities: Alkindar *, Brytan, Coramen, Cormaed, Ionin Spring, Jurador, Malden, Marella, Moisen, Mosra, Nor Chasen, Remen, Salidar, Sehar, So Eban, So Habor, So Tehar, Soremaine, Weesin +Cities: Alkindar *, Brytan, Coramen, Cormaed, Ionin Spring *, Jurador, Malden, Marella, Moisen, Mosra, Nor Chasen, Remen, Salidar, Sehar, So Eban, So Habor, So Tehar, Soremaine, Weesin POI: River Eldar, Sea of Storms Amadicia * diff --git a/src/Phaser.js b/src/Phaser.js index 9d82fd8aa..66df57ac8 100644 --- a/src/Phaser.js +++ b/src/Phaser.js @@ -15,7 +15,7 @@ var Phaser = Phaser || { * @constant * @type {string} */ - VERSION: '2.4.0', + VERSION: '2.4.1', /** * An array of Phaser game instances. From 10587e07eee1c4c3d6cc01677645a057b59c75e3 Mon Sep 17 00:00:00 2001 From: jamesgroat Date: Wed, 22 Jul 2015 16:53:07 -0700 Subject: [PATCH 02/17] Use _cacheMap to map from constant to _cache. --- src/loader/Cache.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/loader/Cache.js b/src/loader/Cache.js index c7cf61018..31486f26e 100644 --- a/src/loader/Cache.js +++ b/src/loader/Cache.js @@ -1611,9 +1611,9 @@ Phaser.Cache.prototype = { var out = []; - if (this._cache[cache]) + if (this._cacheMap[cache]) { - for (var key in this._cache[cache]) + for (var key in this._cacheMap[cache]) { if (key !== '__default' && key !== '__missing') { From 4c971299164197d1104bb61a916b992d9bbd783d Mon Sep 17 00:00:00 2001 From: photonstorm Date: Thu, 23 Jul 2015 11:47:41 +0100 Subject: [PATCH 03/17] Updating --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index addc63b8f..44ffbdea1 100644 --- a/README.md +++ b/README.md @@ -226,7 +226,7 @@ If you are an exceptional JavaScript developer and would like to join the Phaser Version 2.4.1 - "Ionin Spring" - in development - +* Fixed Cache.getKeys to use the `_cacheMap` (thanks @jamesgroat #1929) From 94ae9e097e791b1eb714fd0506b200e728892906 Mon Sep 17 00:00:00 2001 From: photonstorm Date: Thu, 23 Jul 2015 11:49:21 +0100 Subject: [PATCH 04/17] Phaser 2.4.0a release - includes build file fixes for missing PIXI classes like TilingSprite. --- tasks/manifests/pixi.json | 4 ++++ tasks/manifests/rope.json | 2 -- tasks/manifests/tilesprite.json | 1 - 3 files changed, 4 insertions(+), 3 deletions(-) diff --git a/tasks/manifests/pixi.json b/tasks/manifests/pixi.json index 7f755b919..480756c97 100644 --- a/tasks/manifests/pixi.json +++ b/tasks/manifests/pixi.json @@ -37,6 +37,10 @@ "src/pixi/textures/Texture.js", "src/pixi/textures/RenderTexture.js", + "src/pixi/extras/TilingSprite.js", + "src/pixi/extras/Strip.js", + "src/pixi/extras/Rope.js", + "src/pixi/filters/AbstractFilter.js", "src/pixi/Outro.js" diff --git a/tasks/manifests/rope.json b/tasks/manifests/rope.json index 89679e546..a5f839035 100644 --- a/tasks/manifests/rope.json +++ b/tasks/manifests/rope.json @@ -1,5 +1,3 @@ [ - "src/pixi/extras/Strip.js", - "src/pixi/extras/Rope.js", "src/gameobjects/Rope.js" ] diff --git a/tasks/manifests/tilesprite.json b/tasks/manifests/tilesprite.json index e4c2ce395..3ef163736 100644 --- a/tasks/manifests/tilesprite.json +++ b/tasks/manifests/tilesprite.json @@ -1,4 +1,3 @@ [ - "src/pixi/extras/TilingSprite.js", "src/gameobjects/TileSprite.js" ] From 9a83ddcab92ed2208c4fba2e490ebb1ae2a33c70 Mon Sep 17 00:00:00 2001 From: photonstorm Date: Thu, 23 Jul 2015 13:23:29 +0100 Subject: [PATCH 05/17] Updated to latest Creature runtimes, added to GameObjectFactory. --- build/config.php | 1 - src/animation/creature/CreatureMeshBone.js | 321 +++++++++++--- .../creature/CreaturePixiJSRenderer.js | 226 ---------- src/gameobjects/Creature.js | 403 +++++++++++++++++- src/gameobjects/GameObjectFactory.js | 33 ++ src/loader/Cache.js | 33 +- 6 files changed, 700 insertions(+), 317 deletions(-) delete mode 100644 src/animation/creature/CreaturePixiJSRenderer.js diff --git a/build/config.php b/build/config.php index 75ec61216..7d735c8e6 100644 --- a/build/config.php +++ b/build/config.php @@ -307,7 +307,6 @@ EOL; { echo << - diff --git a/src/animation/creature/CreatureMeshBone.js b/src/animation/creature/CreatureMeshBone.js index aec86c454..50cb948a5 100644 --- a/src/animation/creature/CreatureMeshBone.js +++ b/src/animation/creature/CreatureMeshBone.js @@ -826,6 +826,7 @@ function MeshRenderRegion(indices_in, rest_pts_in, uvs_in, start_pt_index_in, en this.normal_weight_map = {}; this.fast_normal_weight_map = []; this.fast_bones_map = []; + this.relevant_bones_indices = []; this.use_dq = true; this.tag_id = -1; @@ -899,6 +900,7 @@ MeshRenderRegion.prototype.poseFinalPts = function(output_pts, output_start_inde var boneKeys = Object.keys(bones_map); var boneKeyLength = boneKeys.length; + for(var i = 0, l = this.getNumPts(); i < l; i++) { var cur_rest_pt = vec3.set(tmp1, this.store_rest_pts[0 + read_pt_index], @@ -921,55 +923,23 @@ MeshRenderRegion.prototype.poseFinalPts = function(output_pts, output_start_inde // var accum_dq = new dualQuat(); accum_dq.reset(); - var n_index = 0; - for (var j = 0; j < boneKeyLength; j++) + var curBoneIndices = this.relevant_bones_indices[i]; + var relevantIndicesLength = curBoneIndices.length; + for (var j = 0; j < relevantIndicesLength; j++) { - var cur_key = boneKeys[j]; - //var cur_bone = bones_map[cur_key]; - var cur_bone = this.fast_bones_map[n_index]; - var cur_weight_val = 0; - - - if(this.fast_normal_weight_map.length > 0) { - cur_weight_val = this.fast_normal_weight_map[n_index][i]; - } - else { - cur_weight_val = this.normal_weight_map[cur_key][i]; - } - - //cur_weight_val = this.normal_weight_map[cur_key][i]; - + var idx_lookup = curBoneIndices[j]; + var cur_bone = this.fast_bones_map[idx_lookup]; + var cur_weight_val = this.fast_normal_weight_map[idx_lookup][i]; var cur_im_weight_val = cur_weight_val; - if(this.use_dq == false) { - var world_delta_mat = cur_bone.getWorldDeltaMat(); - //accum_mat = Utils.addMat(accum_mat, Utils.mulMat(world_delta_mat, cur_weight_val)); - - var tmpMat = Utils.mulMat(world_delta_mat, cur_weight_val); - accum_mat = Utils.addMat(accum_mat, tmpMat); - } - else { - var world_dq = cur_bone.getWorldDq(); - accum_dq.add(world_dq, cur_weight_val, cur_im_weight_val); - } - - n_index++; + var world_dq = cur_bone.getWorldDq(); + accum_dq.add(world_dq, cur_weight_val, cur_im_weight_val); } - if(this.use_dq == false) { - var tmp_pt = vec3.set(tmp2, cur_rest_pt[Q_X], cur_rest_pt[Q_Y], cur_rest_pt[Q_Z]); - // var tmp_pt = vec3.fromValues(cur_rest_pt[Q_X], cur_rest_pt[Q_Y], cur_rest_pt[Q_Z]); - //accum_mat.tra(); - - //final_pt = tmp_pt.traMul(accum_mat); - final_pt = vec3.transformMat4(final_pt, tmp_pt, accum_mat); - } - else { - accum_dq.normalize(); - var tmp_pt = vec3.set(tmp2, cur_rest_pt[Q_X], cur_rest_pt[Q_Y], cur_rest_pt[Q_Z]); - // var tmp_pt = vec3.fromValues(cur_rest_pt[Q_X], cur_rest_pt[Q_Y], cur_rest_pt[Q_Z]); - final_pt = accum_dq.transform(tmp_pt); - } + accum_dq.normalize(); + var tmp_pt = vec3.set(tmp2, cur_rest_pt[Q_X], cur_rest_pt[Q_Y], cur_rest_pt[Q_Z]); + // var tmp_pt = vec3.fromValues(cur_rest_pt[Q_X], cur_rest_pt[Q_Y], cur_rest_pt[Q_Z]); + final_pt = accum_dq.transform(tmp_pt); // debug start @@ -1134,10 +1104,13 @@ MeshRenderRegion.prototype.runUvWarp = function() for(var i = 0; i < this.uv_warp_ref_uvs.length; i++) { var set_uv = vec2.clone(this.uv_warp_ref_uvs[i]); + set_uv = vec2.subtract(set_uv, set_uv, this.uv_warp_local_offset); - set_uv = vec2.scale(set_uv, set_uv, this.uv_warp_scale); + set_uv[Q_X] *= this.uv_warp_scale[Q_X]; + set_uv[Q_Y] *= this.uv_warp_scale[Q_Y]; set_uv = vec2.add(set_uv, set_uv, this.uv_warp_global_offset); + /* set_uv.sub(uv_warp_local_offset); set_uv.scl(uv_warp_scale); @@ -1145,8 +1118,8 @@ MeshRenderRegion.prototype.runUvWarp = function() */ - store_uvs[0 + cur_uvs_index] = set_uv[Q_X]; - store_uvs[1 + cur_uvs_index] = set_uv[Q_Y]; + this.store_uvs[0 + cur_uvs_index] = set_uv[Q_X]; + this.store_uvs[1 + cur_uvs_index] = set_uv[Q_Y]; cur_uvs_index += 2; @@ -1178,12 +1151,30 @@ MeshRenderRegion.prototype.setTagId = function(value_in) MeshRenderRegion.prototype.initFastNormalWeightMap = function(bones_map) { + this.relevant_bones_indices = []; + // fast normal weight map lookup, avoids hash lookups for (var cur_key in bones_map) { var values = this.normal_weight_map[cur_key]; this.fast_normal_weight_map.push(values); } + // relevant bone indices + var cutoff_val = 0.05; + for(var i = 0; i < this.getNumPts(); i++) { + var curIndicesArray = []; + for (var j = 0; j < this.fast_normal_weight_map.length; j++) + { + var cur_val = this.fast_normal_weight_map[j][i]; + if(cur_val > cutoff_val) + { + curIndicesArray.push(j); + } + } + + this.relevant_bones_indices.push(curIndicesArray); + } + // fast bone map lookup for (var cur_key in bones_map) { var cur_bone = bones_map[cur_key]; @@ -1464,7 +1455,7 @@ MeshBoneCacheManager.prototype.retrieveValuesAtTime = function(time_in, bone_map var base_time = this.getIndexByTime(Math.floor(time_in)); var end_time = this.getIndexByTime(Math.ceil(time_in)); - var ratio = (time_in - base_time); + var ratio = (time_in - Math.floor(time_in)); if(this.bone_cache_data_ready.length == 0) { return; @@ -1580,7 +1571,7 @@ MeshDisplacementCacheManager.prototype.retrieveValuesAtTime = function(time_in, var base_time = this.getIndexByTime(Math.floor(time_in)); var end_time = this.getIndexByTime(Math.ceil(time_in)); - var ratio = (time_in - base_time); + var ratio = (time_in - Math.floor(time_in)); if(this.displacement_cache_data_ready.length == 0) { return; @@ -1737,7 +1728,7 @@ MeshUVWarpCacheManager.prototype.retrieveValuesAtTime = function(time_in, region var base_time = this.getIndexByTime(Math.floor(time_in)); var end_time = this.getIndexByTime(Math.ceil(time_in)); - var ratio = (time_in - base_time); + var ratio = (time_in - Math.floor(time_in)); if(this.uv_cache_data_ready.length == 0) { return; @@ -1759,18 +1750,12 @@ MeshUVWarpCacheManager.prototype.retrieveValuesAtTime = function(time_in, region var set_region = regions_map[cur_key]; if(set_region.getUseUvWarp()) { - var final_local_offset = Utils.vec2Interp(base_data.getUvWarpLocalOffset(), - end_data.getUvWarpLocalOffset(), - ratio); + var final_local_offset = base_data.getUvWarpLocalOffset(); - var final_global_offset = Utils.vec2Interp(base_data.getUvWarpGlobalOffset(), - end_data.getUvWarpGlobalOffset(), - ratio); + var final_global_offset = base_data.getUvWarpGlobalOffset(); - var final_scale = Utils.vec2Interp(base_data.getUvWarpScale(), - end_data.getUvWarpScale(), - ratio); + var final_scale = base_data.getUvWarpScale(); /* Vector2 final_local_offset = ((1.0f - ratio) * base_data.getUvWarpLocalOffset()) + (ratio * end_data.getUvWarpLocalOffset()); @@ -2072,6 +2057,10 @@ CreatureModuleUtils.GetStartEndTimes = function(json_obj, key) if(cur_num > end_time) { end_time = cur_num; } + + if(cur_num < start_time) { + start_time = cur_num; + } } } @@ -2201,6 +2190,9 @@ function Creature(load_data) this.render_pts = null; this.render_colours = null; this.render_composition = null; + this.boundary_indices = []; + this.boundary_min = vec2.create(); + this.boundary_max = vec2.create(); this.LoadFromData(load_data); }; @@ -2218,6 +2210,100 @@ Creature.prototype.FillRenderColours = function(r, g, b, a) } }; +// Compute boundary indices + +Creature.prototype.ComputeBoundaryIndices = function() +{ + var freq_table = {}; + for(var i = 0; i < this.total_num_pts; i++) + { + freq_table[i] = 0; + } + + var cur_regions = this.render_composition.getRegions(); + for(var i = 0; i < this.global_indices.length; i++) + { + var cur_idx = this.global_indices[i]; + var is_found = false; + for(var j = 0; j < cur_regions.length; j++) + { + var cur_region = cur_regions[j]; + var cur_start_index = cur_region.getStartPtIndex(); + var cur_end_index = cur_region.getEndPtIndex(); + + if(cur_idx >= cur_start_index && cur_idx <= cur_end_index) + { + is_found = true; + break; + } + } + + + if(is_found) + { + freq_table[cur_idx]++; + } + } + + // now find the boundary indices who have <= 5 referenced triangles + this.boundary_indices = []; + for(var i = 0; i < this.total_num_pts; i++) + { + if(freq_table[i] <=5) + { + this.boundary_indices.push(i); + } + } +}; + +// Compute min and max bounds of the animated mesh +Creature.prototype.ComputeBoundaryMinMax = function() +{ + + if(this.boundary_indices.length <= 0) + { + this.ComputeBoundaryIndices(); + } + + + var firstIdx = this.boundary_indices[0] * 3; + var minPt = vec2.fromValues(this.render_pts[firstIdx + 0], this.render_pts[firstIdx + 1]); + var maxPt = vec2.fromValues(minPt[0], minPt[1]); + + + for(var i = 0; i < this.boundary_indices.length; i++) + { + var ref_idx = this.boundary_indices[i] * 3; + var ref_x = this.render_pts[ref_idx]; + var ref_y = this.render_pts[ref_idx + 1]; + + if(minPt[0] > ref_x) + { + minPt[0] = ref_x; + } + + if(minPt[1] > ref_y) + { + minPt[1] = ref_y; + } + + if(maxPt[0] < ref_x) + { + maxPt[0] = ref_x; + } + + if(maxPt[1] < ref_y) + { + maxPt[1] = ref_y; + } + } + + this.boundary_min = minPt; + this.boundary_max = maxPt; +}; + + +// Load data Creature.prototype.LoadFromData = function(load_data) { // Load points and topology @@ -2232,12 +2318,6 @@ Creature.prototype.LoadFromData = function(load_data) this.global_uvs = CreatureModuleUtils.ReadFloatArrayJSON (json_mesh, "uvs"); - // Flip UVs - for (var i = 0; i < this.global_uvs.length; i+=2) { - this.global_uvs[i + 1] = 1.0 - this.global_uvs[i + 1]; - } - - this.render_colours = []; for(var i = 0; i < this.total_num_pts * 4; i++) { @@ -2288,6 +2368,8 @@ function CreatureAnimation(load_data, name_in) this.bones_cache = new MeshBoneCacheManager(); this.displacement_cache = new MeshDisplacementCacheManager(); this.uv_warp_cache = new MeshUVWarpCacheManager(); + this.cache_pts = []; + this.fill_cache_pts = []; this.LoadFromData(name_in, load_data); }; @@ -2323,6 +2405,49 @@ CreatureAnimation.prototype.LoadFromData = function(name_in, load_data) this.uv_warp_cache); }; +CreatureAnimation.prototype.getIndexByTime = function(time_in) +{ + var retval = time_in - this.start_time; + retval = Utils.clamp(retval, 0, (this.cache_pts.length) - 1); + + return retval; +}; + +CreatureAnimation.prototype.verifyFillCache = function() +{ + if(this.fill_cache_pts.length == (this.end_time - this.start_time + 1)) + { + // ready to switch over + this.cache_pts = this.fill_cache_pts; + } +}; + +CreatureAnimation.prototype.poseFromCachePts = function(time_in, target_pts, num_pts) +{ + var cur_floor_time = this.getIndexByTime(Math.floor(time_in)); + var cur_ceil_time = this.getIndexByTime(Math.ceil(time_in)); + var cur_ratio = time_in - Math.floor(time_in); + + var set_pt = target_pts; + var floor_pts = this.cache_pts[cur_floor_time]; + var ceil_pts = this.cache_pts[cur_ceil_time]; + + var set_idx = 0; + var floor_idx = 0; + var ceil_idx = 0; + + for(var i = 0; i < num_pts; i++) + { + set_pt[set_idx + 0] = ((1.0 - cur_ratio) * floor_pts[floor_idx + 0]) + (cur_ratio * ceil_pts[ceil_idx + 0]); + set_pt[set_idx + 1] = ((1.0 - cur_ratio) * floor_pts[floor_idx + 1]) + (cur_ratio * ceil_pts[ceil_idx + 1]); + set_pt[set_idx + 2] = ((1.0 - cur_ratio) * floor_pts[floor_idx + 2]) + (cur_ratio * ceil_pts[ceil_idx + 2]); + + set_idx += 3; + floor_idx += 3; + ceil_idx += 3; + } +}; + // CreatureManager function CreatureManager(target_creature_in) { @@ -2460,6 +2585,53 @@ CreatureManager.prototype.GetAllAnimations = function() return this.animations; }; +// Creates a point cache for the current animation +CreatureManager.prototype.MakePointCache = function(animation_name_in) +{ + var store_run_time = this.getRunTime(); + var cur_animation = this.animations[animation_name_in]; + if(cur_animation.length > 0) + { + // cache already generated, just exit + return; + } + + var cache_pts_list = cur_animation.cache_pts; + + for(var i = cur_animation.start_time; i <= cur_animation.end_time; i++) + { + this.setRunTime(i); + var new_pts = []; + for (var j = 0; j < this.target_creature.total_num_pts * 3; j++) new_pts[j] = 0; + //auto new_pts = new glm::float32[target_creature->GetTotalNumPoints() * 3]; + this.PoseCreature(animation_name_in, new_pts); + + cache_pts_list.push(new_pts); + } + + this.setRunTime(store_run_time); +}; + +// Fills up a single frame for a point cache animation +// Point caching is only enabled when the cache is FULLY filled up +// Remember the new filled cache is Appended onto the end of a list +// There is no indexing by time here so MAKE SURE this cache is filled up sequentially! +CreatureManager.prototype.FillSinglePointCacheFrame = function(animation_name_in, time_in) +{ + var store_run_time = this.getRunTime(); + var cur_animation = this.animations[animation_name_in]; + + this.setRunTime(time_in); + var new_pts = []; + for (var j = 0; j < this.target_creature.total_num_pts * 3; j++) new_pts[j] = 0; + this.PoseCreature(animation_name_in, new_pts); + + cur_animation.fill_cache_pts.push(new_pts); + cur_animation.verifyFillCache(); + + this.setRunTime(store_run_time); +}; + // Returns if animation is playing CreatureManager.prototype.GetIsPlaying = function() { @@ -2582,7 +2754,14 @@ CreatureManager.prototype.RunCreature = function() if(this.do_blending) { for(var i = 0; i < 2; i++) { - this.PoseCreature(this.active_blend_animation_names[i], this.blend_render_pts[i]); + var cur_animation = this.animations[this.active_blend_animation_names[i]]; + if(cur_animation.cache_pts.length > 0) + { + cur_animation.poseFromCachePts(this.getRunTime(), this.blend_render_pts[i], this.target_creature.total_num_pts); + } + else { + this.PoseCreature(this.active_blend_animation_names[i], this.blend_render_pts[i]); + } } for(var j = 0; j < this.target_creature.total_num_pts * 3; j++) @@ -2602,7 +2781,15 @@ CreatureManager.prototype.RunCreature = function() } } else { - this.PoseCreature(this.active_animation_name, this.target_creature.render_pts); + var cur_animation = this.animations[this.active_animation_name]; + if(cur_animation.cache_pts.length > 0) + { + cur_animation.poseFromCachePts(this.getRunTime(), this.target_creature.render_pts, this.target_creature.total_num_pts); + // cur_animation->poseFromCachePts(getRunTime(), target_creature->GetRenderPts(), target_creature->GetTotalNumPoints()); + } + else { + this.PoseCreature(this.active_animation_name, this.target_creature.render_pts); + } } }; diff --git a/src/animation/creature/CreaturePixiJSRenderer.js b/src/animation/creature/CreaturePixiJSRenderer.js deleted file mode 100644 index c50603ad8..000000000 --- a/src/animation/creature/CreaturePixiJSRenderer.js +++ /dev/null @@ -1,226 +0,0 @@ -/****************************************************************************** - * Creature Runtimes License - * - * Copyright (c) 2015, Kestrel Moon Studios - * All rights reserved. - * - * Preamble: This Agreement governs the relationship between Licensee and Kestrel Moon Studios(Hereinafter: Licensor). - * This Agreement sets the terms, rights, restrictions and obligations on using [Creature Runtimes] (hereinafter: The Software) created and owned by Licensor, - * as detailed herein: - * License Grant: Licensor hereby grants Licensee a Sublicensable, Non-assignable & non-transferable, Commercial, Royalty free, - * Including the rights to create but not distribute derivative works, Non-exclusive license, all with accordance with the terms set forth and - * other legal restrictions set forth in 3rd party software used while running Software. - * Limited: Licensee may use Software for the purpose of: - * Running Software on Licensee’s Website[s] and Server[s]; - * Allowing 3rd Parties to run Software on Licensee’s Website[s] and Server[s]; - * Publishing Software’s output to Licensee and 3rd Parties; - * Distribute verbatim copies of Software’s output (including compiled binaries); - * Modify Software to suit Licensee’s needs and specifications. - * Binary Restricted: Licensee may sublicense Software as a part of a larger work containing more than Software, - * distributed solely in Object or Binary form under a personal, non-sublicensable, limited license. Such redistribution shall be limited to unlimited codebases. - * Non Assignable & Non-Transferable: Licensee may not assign or transfer his rights and duties under this license. - * Commercial, Royalty Free: Licensee may use Software for any purpose, including paid-services, without any royalties - * Including the Right to Create Derivative Works: Licensee may create derivative works based on Software, - * including amending Software’s source code, modifying it, integrating it into a larger work or removing portions of Software, - * as long as no distribution of the derivative works is made - * - * THE RUNTIMES IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE RUNTIMES OR THE USE OR OTHER DEALINGS IN THE - * RUNTIMES. - *****************************************************************************/ - -function CreatureRenderer(manager_in, texture_in) -{ - PIXI.DisplayObjectContainer.call( this ); - - this.creature_manager = manager_in; - this.texture = texture_in; - this.dirty = true; - this.blendMode = PIXI.blendModes.NORMAL; - - var target_creature = this.creature_manager.target_creature; - - this.verticies = new PIXI.Float32Array(target_creature.total_num_pts * 2); - this.uvs = new PIXI.Float32Array(target_creature.total_num_pts * 2); - - this.indices = new PIXI.Uint16Array(target_creature.global_indices.length); - for(var i = 0; i < this.indices.length; i++) - { - this.indices[i] = target_creature.global_indices[i]; - } - - this.colors = new PIXI.Float32Array([1,1,1,1]); - - this.UpdateRenderData(target_creature.global_pts, target_creature.global_uvs); -}; - -// constructor -CreatureRenderer.prototype = Object.create(PIXI.DisplayObjectContainer.prototype); -CreatureRenderer.prototype.constructor = CreatureRenderer; - -CreatureRenderer.prototype._renderWebGL = function(renderSession) -{ - // if the sprite is not visible or the alpha is 0 then no need to render this element - if(!this.visible || this.alpha <= 0)return; - // render triangles.. - - renderSession.spriteBatch.stop(); - - // init! init! - if(!this._vertexBuffer)this._initWebGL(renderSession); - - renderSession.shaderManager.setShader(renderSession.shaderManager.stripShader); - - this._renderCreature(renderSession); - - ///renderSession.shaderManager.activateDefaultShader(); - - renderSession.spriteBatch.start(); - - //TODO check culling -}; - -CreatureRenderer.prototype._initWebGL = function(renderSession) -{ - // build the strip! - var gl = renderSession.gl; - - this._vertexBuffer = gl.createBuffer(); - this._indexBuffer = gl.createBuffer(); - this._uvBuffer = gl.createBuffer(); - this._colorBuffer = gl.createBuffer(); - - gl.bindBuffer(gl.ARRAY_BUFFER, this._vertexBuffer); - gl.bufferData(gl.ARRAY_BUFFER, this.verticies, gl.DYNAMIC_DRAW); - - gl.bindBuffer(gl.ARRAY_BUFFER, this._uvBuffer); - gl.bufferData(gl.ARRAY_BUFFER, this.uvs, gl.DYNAMIC_DRAW); - - gl.bindBuffer(gl.ARRAY_BUFFER, this._colorBuffer); - gl.bufferData(gl.ARRAY_BUFFER, this.colors, gl.STATIC_DRAW); - - gl.bindBuffer(gl.ELEMENT_ARRAY_BUFFER, this._indexBuffer); - gl.bufferData(gl.ELEMENT_ARRAY_BUFFER, this.indices, gl.STATIC_DRAW); -}; - -CreatureRenderer.prototype._renderCreature = function(renderSession) -{ - var gl = renderSession.gl; - var projection = renderSession.projection, - offset = renderSession.offset, - shader = renderSession.shaderManager.stripShader; - - - // gl.uniformMatrix4fv(shaderProgram.mvMatrixUniform, false, mat4Real); - - renderSession.blendModeManager.setBlendMode(this.blendMode); - - - // set uniforms - gl.uniformMatrix3fv(shader.translationMatrix, false, this.worldTransform.toArray(true)); - gl.uniform2f(shader.projectionVector, projection.x, -projection.y); - gl.uniform2f(shader.offsetVector, -offset.x, -offset.y); - gl.uniform1f(shader.alpha, this.worldAlpha); - - if(!this.dirty) - { - - gl.bindBuffer(gl.ARRAY_BUFFER, this._vertexBuffer); - gl.bufferSubData(gl.ARRAY_BUFFER, 0, this.verticies); - gl.vertexAttribPointer(shader.aVertexPosition, 2, gl.FLOAT, false, 0, 0); - - // update the uvs - gl.bindBuffer(gl.ARRAY_BUFFER, this._uvBuffer); - gl.vertexAttribPointer(shader.aTextureCoord, 2, gl.FLOAT, false, 0, 0); - - gl.activeTexture(gl.TEXTURE0); - - // check if a texture is dirty.. - if(this.texture.baseTexture._dirty[gl.id]) - { - renderSession.renderer.updateTexture(this.texture.baseTexture); - } - else - { - // bind the current texture - gl.bindTexture(gl.TEXTURE_2D, this.texture.baseTexture._glTextures[gl.id]); - } - - // dont need to upload! - gl.bindBuffer(gl.ELEMENT_ARRAY_BUFFER, this._indexBuffer); - - - } - else - { - - this.dirty = false; - gl.bindBuffer(gl.ARRAY_BUFFER, this._vertexBuffer); - gl.bufferData(gl.ARRAY_BUFFER, this.verticies, gl.DYNAMIC_DRAW); - gl.vertexAttribPointer(shader.aVertexPosition, 2, gl.FLOAT, false, 0, 0); - - // update the uvs - gl.bindBuffer(gl.ARRAY_BUFFER, this._uvBuffer); - gl.bufferData(gl.ARRAY_BUFFER, this.uvs, gl.DYNAMIC_DRAW); - gl.vertexAttribPointer(shader.aTextureCoord, 2, gl.FLOAT, false, 0, 0); - - gl.activeTexture(gl.TEXTURE0); - - // check if a texture is dirty.. - if(this.texture.baseTexture._dirty[gl.id]) - { - renderSession.renderer.updateTexture(this.texture.baseTexture); - } - else - { - gl.bindTexture(gl.TEXTURE_2D, this.texture.baseTexture._glTextures[gl.id]); - } - - // dont need to upload! - gl.bindBuffer(gl.ELEMENT_ARRAY_BUFFER, this._indexBuffer); - gl.bufferData(gl.ELEMENT_ARRAY_BUFFER, this.indices, gl.STATIC_DRAW); - - } - - gl.drawElements(gl.TRIANGLES, this.indices.length, gl.UNSIGNED_SHORT, 0); -}; - -CreatureRenderer.prototype.UpdateData = function() -{ - var target_creature = this.creature_manager.target_creature; - - var read_pts = target_creature.render_pts; - //var read_pts = target_creature.global_pts; - var read_uvs = target_creature.global_uvs; - - this.UpdateRenderData(read_pts, read_uvs); - this.dirty = true; -}; - -CreatureRenderer.prototype.UpdateRenderData = function(inputVerts, inputUVs) -{ - var target_creature = this.creature_manager.target_creature; - - var pt_index = 0; - var uv_index = 0; - - var write_pt_index = 0; - - for(var i = 0; i < target_creature.total_num_pts; i++) - { - this.verticies[write_pt_index] = inputVerts[pt_index]; - this.verticies[write_pt_index + 1] = -inputVerts[pt_index + 1]; - - this.uvs[uv_index] = inputUVs[uv_index]; - this.uvs[uv_index + 1] = 1.0 - inputUVs[uv_index + 1]; - - pt_index += 3; - uv_index += 2; - - write_pt_index += 2; - } -}; diff --git a/src/gameobjects/Creature.js b/src/gameobjects/Creature.js index bcff88f7a..d8f2336f8 100644 --- a/src/gameobjects/Creature.js +++ b/src/gameobjects/Creature.js @@ -12,11 +12,13 @@ * * Note 1: You can only use Phaser.Creature objects in WebGL enabled games. They do not work in Canvas mode games. * -* Note 2: You must use a build of Phaser that includes the Creature runtimes, or have them loaded before your Phaser game boots. +* Note 2: You must use a build of Phaser that includes the CreatureMeshBone.js runtime and gl-matrix.js, or have them +* loaded before your Phaser game boots. * * See the Phaser custom build process for more details. * * By default the Creature runtimes are NOT included in any pre-configured version of Phaser. +* * So you'll need to do `grunt custom` to create a build that includes them. * * @class Phaser.Creature @@ -31,16 +33,15 @@ * @extends Phaser.Component.Reset * @constructor * @param {Phaser.Game} game - A reference to the currently running game. -* @param {CreatureManager} manager - A reference to the CreatureManager instance. * @param {number} x - The x coordinate of the Game Object. The coordinate is relative to any parent container this Game Object may be in. * @param {number} y - The y coordinate of the Game Object. The coordinate is relative to any parent container this Game Object may be in. * @param {string|PIXI.Texture} key - The texture used by the Creature Object during rendering. It can be a string which is a reference to the Cache entry, or an instance of a PIXI.Texture. +* @param {string} mesh - The mesh data for the Creature Object. It should be a string which is a reference to the Cache JSON entry. +* @param {string} [animation='default'] - The animation within the mesh data to play. */ -Phaser.Creature = function (game, manager, x, y, key) { +Phaser.Creature = function (game, x, y, key, mesh, animation) { - x = x || 0; - y = y || 0; - key = key || null; + if (animation === undefined) { animation = 'default'; } /** * @property {number} type - The const type of this object. @@ -48,16 +49,35 @@ Phaser.Creature = function (game, manager, x, y, key) { */ this.type = Phaser.CREATURE; - /** - * @property {number} timeDelta - How quickly the animation time/playback advances - */ - this.timeDelta = 0.05; + if (!game.cache.checkJSONKey(mesh)) + { + console.warn('Phaser.Creature: Invalid mesh key given. Not found in Phaser.Cache'); + return; + } + + var meshData = game.cache.getJSON(mesh); /** - * @property {CreatureManager} _manager - The CreatureManager + * @property {Creature} _creature - The Creature instance. * @private */ - this._manager = manager; + this._creature = new Creature(meshData); + + /** + * @property {CreatureAnimation} animation - The CreatureAnimation instance. + */ + this.animation = new CreatureAnimation(meshData, animation, this._creature); + + /** + * @property {CreatureManager} manager - The CreatureManager instance for this object. + */ + this.manager = new CreatureManager(this._creature); + + /** + * @property {number} timeDelta - How quickly the animation advances. + * @default + */ + this.timeDelta = 0.05; if (typeof key === 'string') { @@ -68,13 +88,69 @@ Phaser.Creature = function (game, manager, x, y, key) { var texture = key; } - CreatureRenderer.call(this, manager, texture); + /** + * @property {PIXI.Texture} texture - The texture the animation is using. + */ + this.texture = texture; + + PIXI.DisplayObjectContainer.call(this); + + this.dirty = true; + this.blendMode = PIXI.blendModes.NORMAL; + + /** + * @property {Phaser.Point} creatureBoundsMin - The minimum bounds point. + * @protected + */ + this.creatureBoundsMin = new Phaser.Point(); + + /** + * @property {Phaser.Point} creatureBoundsMax - The maximum bounds point. + * @protected + */ + this.creatureBoundsMax = new Phaser.Point(); + + var target = this.manager.target_creature; + + /** + * @property {PIXI.Float32Array} vertices - The vertices data. + * @protected + */ + this.vertices = new PIXI.Float32Array(target.total_num_pts * 2); + + /** + * @property {PIXI.Float32Array} uvs - The UV data. + * @protected + */ + this.uvs = new PIXI.Float32Array(target.total_num_pts * 2); + + /** + * @property {PIXI.Uint16Array} indices + * @protected + */ + this.indices = new PIXI.Uint16Array(target.global_indices.length); + + for (var i = 0; i < this.indices.length; i++) + { + this.indices[i] = target.global_indices[i]; + } + + /** + * @property {PIXI.Uint16Array} colors - The vertices colors + * @protected + */ + this.colors = new PIXI.Float32Array([1, 1, 1, 1]); + + this.updateRenderData(target.global_pts, target.global_uvs); + + this.manager.AddAnimation(this.animation); + this.manager.SetActiveAnimationName(animation, false); Phaser.Component.Core.init.call(this, game, x, y); }; -Phaser.Creature.prototype = Object.create(CreatureRenderer.prototype); +Phaser.Creature.prototype = Object.create(PIXI.DisplayObjectContainer.prototype); Phaser.Creature.prototype.constructor = Phaser.Creature; Phaser.Component.Core.install.call(Phaser.Creature.prototype, [ @@ -96,17 +172,310 @@ Phaser.Creature.prototype.preUpdateCore = Phaser.Component.Core.preUpdate; * @method Phaser.Creature#preUpdate * @memberof Phaser.Creature */ -Phaser.Creature.prototype.preUpdate = function() { +Phaser.Creature.prototype.preUpdate = function () { if (!this.preUpdateInWorld()) { return false; } - this._manager.Update(this.timeDelta); + this.manager.Update(this.timeDelta); - this.UpdateData(); + this.updateData(); return this.preUpdateCore(); }; + +/** +* +* +* @method Phaser.Creature#_initWebGL +* @memberof Phaser.Creature +* @private +*/ +Phaser.Creature.prototype._initWebGL = function (renderSession) { + + // build the strip! + var gl = renderSession.gl; + + this._vertexBuffer = gl.createBuffer(); + this._indexBuffer = gl.createBuffer(); + this._uvBuffer = gl.createBuffer(); + this._colorBuffer = gl.createBuffer(); + + gl.bindBuffer(gl.ARRAY_BUFFER, this._vertexBuffer); + gl.bufferData(gl.ARRAY_BUFFER, this.vertices, gl.DYNAMIC_DRAW); + + gl.bindBuffer(gl.ARRAY_BUFFER, this._uvBuffer); + gl.bufferData(gl.ARRAY_BUFFER, this.uvs, gl.DYNAMIC_DRAW); + + gl.bindBuffer(gl.ARRAY_BUFFER, this._colorBuffer); + gl.bufferData(gl.ARRAY_BUFFER, this.colors, gl.STATIC_DRAW); + + gl.bindBuffer(gl.ELEMENT_ARRAY_BUFFER, this._indexBuffer); + gl.bufferData(gl.ELEMENT_ARRAY_BUFFER, this.indices, gl.STATIC_DRAW); + +}; + +/** +* @method Phaser.Creature#_renderWebGL +* @memberof Phaser.Creature +* @private +*/ +Phaser.Creature.prototype._renderWebGL = function (renderSession) { + + // If the sprite is not visible or the alpha is 0 then no need to render this element + if (!this.visible || this.alpha <= 0) + { + return; + } + + renderSession.spriteBatch.stop(); + + // init! init! + if (!this._vertexBuffer) + { + this._initWebGL(renderSession); + } + + renderSession.shaderManager.setShader(renderSession.shaderManager.stripShader); + + this._renderCreature(renderSession); + + renderSession.spriteBatch.start(); + +}; + +/** +* @method Phaser.Creature#_renderCreature +* @memberof Phaser.Creature +* @private +*/ +Phaser.Creature.prototype._renderCreature = function (renderSession) { + + var gl = renderSession.gl; + + var projection = renderSession.projection; + var offset = renderSession.offset; + var shader = renderSession.shaderManager.stripShader; + + renderSession.blendModeManager.setBlendMode(this.blendMode); + + // Set uniforms + gl.uniformMatrix3fv(shader.translationMatrix, false, this.worldTransform.toArray(true)); + gl.uniform2f(shader.projectionVector, projection.x, -projection.y); + gl.uniform2f(shader.offsetVector, -offset.x, -offset.y); + gl.uniform1f(shader.alpha, this.worldAlpha); + + if (!this.dirty) + { + gl.bindBuffer(gl.ARRAY_BUFFER, this._vertexBuffer); + gl.bufferSubData(gl.ARRAY_BUFFER, 0, this.vertices); + gl.vertexAttribPointer(shader.aVertexPosition, 2, gl.FLOAT, false, 0, 0); + + // Update the uvs + gl.bindBuffer(gl.ARRAY_BUFFER, this._uvBuffer); + gl.vertexAttribPointer(shader.aTextureCoord, 2, gl.FLOAT, false, 0, 0); + + gl.activeTexture(gl.TEXTURE0); + + // Check if a texture is dirty.. + if (this.texture.baseTexture._dirty[gl.id]) + { + renderSession.renderer.updateTexture(this.texture.baseTexture); + } + else + { + // Bind the current texture + gl.bindTexture(gl.TEXTURE_2D, this.texture.baseTexture._glTextures[gl.id]); + } + + // Don't need to upload! + gl.bindBuffer(gl.ELEMENT_ARRAY_BUFFER, this._indexBuffer); + } + else + { + this.dirty = false; + + gl.bindBuffer(gl.ARRAY_BUFFER, this._vertexBuffer); + gl.bufferData(gl.ARRAY_BUFFER, this.vertices, gl.DYNAMIC_DRAW); + gl.vertexAttribPointer(shader.aVertexPosition, 2, gl.FLOAT, false, 0, 0); + + // Update the uvs + gl.bindBuffer(gl.ARRAY_BUFFER, this._uvBuffer); + gl.bufferData(gl.ARRAY_BUFFER, this.uvs, gl.DYNAMIC_DRAW); + gl.vertexAttribPointer(shader.aTextureCoord, 2, gl.FLOAT, false, 0, 0); + + gl.activeTexture(gl.TEXTURE0); + + // Check if a texture is dirty + if (this.texture.baseTexture._dirty[gl.id]) + { + renderSession.renderer.updateTexture(this.texture.baseTexture); + } + else + { + gl.bindTexture(gl.TEXTURE_2D, this.texture.baseTexture._glTextures[gl.id]); + } + + // Don't need to upload! + gl.bindBuffer(gl.ELEMENT_ARRAY_BUFFER, this._indexBuffer); + gl.bufferData(gl.ELEMENT_ARRAY_BUFFER, this.indices, gl.STATIC_DRAW); + } + + gl.drawElements(gl.TRIANGLES, this.indices.length, gl.UNSIGNED_SHORT, 0); + +}; + +/** +* @method Phaser.Creature#updateCreatureBounds +* @memberof Phaser.Creature +* @private +*/ +Phaser.Creature.prototype.updateCreatureBounds = function () { + + // Update bounds based off world transform matrix + var target = this.manager.target_creature; + + target.ComputeBoundaryMinMax(); + + this.creatureBoundsMin.set(target.boundary_min[0], -target.boundary_min[1]); + this.creatureBoundsMax.set(target.boundary_max[0], -target.boundary_max[1]); + + this.worldTransform.apply(this.creatureBoundsMin, this.creatureBoundsMin); + this.worldTransform.apply(this.creatureBoundsMax, this.creatureBoundsMax); + +}; + +/** +* @method Phaser.Creature#updateData +* @memberof Phaser.Creature +* @private +*/ +Phaser.Creature.prototype.updateData = function () { + + var target = this.manager.target_creature; + + var read_pts = target.render_pts; + var read_uvs = target.global_uvs; + + this.updateRenderData(read_pts, read_uvs); + this.updateCreatureBounds(); + + this.dirty = true; + +}; + +/** +* @method Phaser.Creature#updateRenderData +* @memberof Phaser.Creature +* @private +*/ +Phaser.Creature.prototype.updateRenderData = function (verts, uvs) { + + var target = this.manager.target_creature; + + var pt_index = 0; + var uv_index = 0; + + var write_pt_index = 0; + + for (var i = 0; i < target.total_num_pts; i++) + { + this.vertices[write_pt_index] = verts[pt_index]; + this.vertices[write_pt_index + 1] = -verts[pt_index + 1]; + + this.uvs[uv_index] = uvs[uv_index]; + this.uvs[uv_index + 1] = uvs[uv_index + 1]; + + pt_index += 3; + uv_index += 2; + + write_pt_index += 2; + } + +}; + +/** +* Sets the Animation this Creature object will play, as defined in the mesh data. +* +* @method Phaser.Creature#setAnimation +* @memberof Phaser.Creature +* @param {string} key - The key of the animation to set, as defined in the mesh data. +*/ +Phaser.Creature.prototype.setAnimation = function (key) { + + this.manager.SetActiveAnimationName(key, true); + +}; + +/** +* Plays the currently set animation. +* +* @method Phaser.Creature#play +* @memberof Phaser.Creature +* @param {boolean} [loop=false] - Should the animation loop? +*/ +Phaser.Creature.prototype.play = function (loop) { + + if (loop === undefined) { loop = false; } + + this.loop = loop; + + this.manager.SetIsPlaying(true); + this.manager.RunAtTime(0); + +}; + +/** +* Stops the currently playing animation. +* +* @method Phaser.Creature#stop +* @memberof Phaser.Creature +*/ +Phaser.Creature.prototype.stop = function () { + + this.manager.SetIsPlaying(false); + +}; + +/** +* @name Phaser.Creature#isPlaying +* @property {boolean} isPlaying - Is the _current_ animation playing? +*/ +Object.defineProperty(Phaser.Creature.prototype, 'isPlaying', { + + get: function() { + + return this.manager.GetIsPlaying(); + + }, + + set: function(value) { + + this.manager.SetIsPlaying(value); + + } + +}); + +/** +* @name Phaser.Creature#loop +* @property {boolean} loop - Should the _current_ animation loop or not? +*/ +Object.defineProperty(Phaser.Creature.prototype, 'loop', { + + get: function() { + + return this.manager.should_loop; + + }, + + set: function(value) { + + this.manager.SetShouldLoop(value); + + } + +}); diff --git a/src/gameobjects/GameObjectFactory.js b/src/gameobjects/GameObjectFactory.js index 186682f38..294d45c1c 100644 --- a/src/gameobjects/GameObjectFactory.js +++ b/src/gameobjects/GameObjectFactory.js @@ -92,6 +92,39 @@ Phaser.GameObjectFactory.prototype = { }, + /** + * Create a new Creature Animation object. + * + * Creature is a custom Game Object used in conjunction with the Creature Runtime libraries by Kestrel Moon Studios. + * + * It allows you to display animated Game Objects that were created with the [Creature Automated Animation Tool](http://www.kestrelmoon.com/creature/). + * + * Note 1: You can only use Phaser.Creature objects in WebGL enabled games. They do not work in Canvas mode games. + * + * Note 2: You must use a build of Phaser that includes the CreatureMeshBone.js runtime and gl-matrix.js, or have them + * loaded before your Phaser game boots. + * + * See the Phaser custom build process for more details. + * + * @method Phaser.GameObjectFactory#creature + * @param {number} [x=0] - The x coordinate of the creature. The coordinate is relative to any parent container this creature may be in. + * @param {number} [y=0] - The y coordinate of the creature. The coordinate is relative to any parent container this creature may be in. + * @param {string|PIXI.Texture} [key] - The image used as a texture by this creature object during rendering. If a string Phaser will get for an entry in the Image Cache. Or it can be an instance of a PIXI.Texture. + * @param {Phaser.Group} [group] - Optional Group to add the object to. If not specified it will be added to the World group. + * @returns {Phaser.Creature} The newly created Sprite object. + */ + creature: function (x, y, key, mesh, group) { + + if (group === undefined) { group = this.world; } + + var obj = new Phaser.Creature(this.game, x, y, key, mesh); + + group.add(obj); + + return obj; + + }, + /** * Create a tween on a specific object. * diff --git a/src/loader/Cache.js b/src/loader/Cache.js index 31486f26e..55cef1cfc 100644 --- a/src/loader/Cache.js +++ b/src/loader/Cache.js @@ -1532,6 +1532,9 @@ Phaser.Cache.prototype = { /** * Gets a PIXI.Texture by key from the PIXI.TextureCache. * + * If the texture isn't found in the cache, then it searches the Phaser Image Cache and + * creates a new PIXI.Texture object which is then returned. + * * @method Phaser.Cache#getPixiTexture * @deprecated * @param {string} key - Asset key of the Texture to retrieve from the Cache. @@ -1545,19 +1548,29 @@ Phaser.Cache.prototype = { } else { - console.warn('Phaser.Cache.getPixiTexture: Invalid key: "' + key + '"'); - return null; + var base = this.getPixiBaseTexture(key); + + if (base) + { + return new PIXI.Texture(base); + } + else + { + return null; + } } }, /** - * Gets a PIXI.BaseTexture by key from the PIXI.BaseTExtureCache. + * Gets a PIXI.BaseTexture by key from the PIXI.BaseTextureCache. + * + * If the texture isn't found in the cache, then it searches the Phaser Image Cache. * * @method Phaser.Cache#getPixiBaseTexture * @deprecated * @param {string} key - Asset key of the BaseTexture to retrieve from the Cache. - * @return {PIXI.BaseTexture} The BaseTexture object. + * @return {PIXI.BaseTexture} The BaseTexture object or null if not found. */ getPixiBaseTexture: function (key) { @@ -1567,8 +1580,16 @@ Phaser.Cache.prototype = { } else { - console.warn('Phaser.Cache.getPixiBaseTexture: Invalid key: "' + key + '"'); - return null; + var img = this.getItem(key, Phaser.Cache.IMAGE, 'getPixiBaseTexture'); + + if (img !== null) + { + return img.base; + } + else + { + return null; + } } }, From 7967d32d520a5847ff7b8d2ab0f7dca2db38f92f Mon Sep 17 00:00:00 2001 From: photonstorm Date: Thu, 23 Jul 2015 13:25:00 +0100 Subject: [PATCH 06/17] Creature update. --- README.md | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 44ffbdea1..730a92c70 100644 --- a/README.md +++ b/README.md @@ -224,9 +224,13 @@ If you are an exceptional JavaScript developer and would like to join the Phaser ## Change Log -Version 2.4.1 - "Ionin Spring" - in development +Version 2.4.1 - "Ionin Spring" - 23rd July 2015 +* The Creature Runtimes have been updated to the latest versions and the Phaser.Creature class updated to use them. +* GameObjectFactory.creature is a new method to help with quick Creature animation object creation. * Fixed Cache.getKeys to use the `_cacheMap` (thanks @jamesgroat #1929) +* Cache.getPixiTexture will now search the image cache if it couldn't find a texture in the PIXI.TextureCache global array, if it finds a matching image in the image cache then it returns a new PIXI.Texture based on it. +* Cache.getPixiBaseTexture will now search the image cache if it couldn't find a BaseTexture in the PIXI.BaseTextureCache global array. From 7a6de818e1c8742f0e4e3eb0ffb3dc80a280a0e5 Mon Sep 17 00:00:00 2001 From: photonstorm Date: Thu, 23 Jul 2015 16:00:45 +0100 Subject: [PATCH 07/17] Updated Grunt build scripts so that all third party libs (such as Creature, P2, gl-matrix and PIXI) are now kept well and truly outside of Phaser. They are defined and placed first in the build files. So no more PIXI hiding within the Phaser namespace or UMD patching for Phaser required. --- Gruntfile.js | 218 ++++++++++++++---- src/pixi/Intro.js | 2 +- tasks/manifests/creature-global.json | 4 + tasks/manifests/creature.json | 3 - tasks/manifests/p2.json | 3 + tasks/manifests/physics.p2.json | 1 - .../manifests/{pixi.json => pixi-intro.json} | 7 +- tasks/manifests/pixi-outro.json | 3 + tasks/manifests/pixi-rope.json | 4 + tasks/manifests/pixi-tilesprite.json | 3 + tasks/options/concat.js | 45 +++- tasks/options/jshint.js | 1 - 12 files changed, 228 insertions(+), 66 deletions(-) create mode 100644 tasks/manifests/creature-global.json create mode 100644 tasks/manifests/p2.json rename tasks/manifests/{pixi.json => pixi-intro.json} (90%) create mode 100644 tasks/manifests/pixi-outro.json create mode 100644 tasks/manifests/pixi-rope.json create mode 100644 tasks/manifests/pixi-tilesprite.json diff --git a/Gruntfile.js b/Gruntfile.js index 2e126bccf..f56e8874f 100644 --- a/Gruntfile.js +++ b/Gruntfile.js @@ -30,7 +30,6 @@ module.exports = function (grunt) { var modules = { - 'pixi': { 'description': 'Pixi.js (custom Phaser build)', 'optional': false, 'stub': false }, 'intro': { 'description': 'Phaser UMD wrapper', 'optional': true, 'stub': false }, 'phaser': { 'description': 'Phaser Globals', 'optional': false, 'stub': false }, 'geom': { 'description': 'Geometry Classes', 'optional': false, 'stub': false }, @@ -112,68 +111,140 @@ module.exports = function (grunt) { grunt.log.writeln("Excluding modules:\n"); - var excludes = grunt.option('exclude').split(','); + var excludedKeys = []; - // Check the given modules are all valid - for (var i = 0; i < excludes.length; i++) + // Nothing is excluded! + var excludes = false; + + if (grunt.option('exclude') !== 'null') { - var exclude = excludes[i]; + excludes = grunt.option('exclude').split(','); - if (modules[exclude]) + // Check the given modules are all valid + for (var i = 0; i < excludes.length; i++) { - grunt.log.writeln("* " + exclude + ' - ' + modules[exclude].description); + var exclude = excludes[i]; + + if (modules[exclude]) + { + grunt.log.writeln("* " + exclude + ' - ' + modules[exclude].description); + excludedKeys[exclude] = true; + } + else + { + grunt.fail.fatal("Unknown module '" + exclude + "'"); + } } - else + + // Handle basic dependencies + + if (excludedKeys['arcade'] && !excludedKeys['particles']) { - grunt.fail.fatal("Unknown module '" + exclude + "'"); + grunt.log.writeln("Warning: Particles rely on Arcade Physics which has been excluded. Removing Particles from build."); + excludes.push('particles'); } - } - // Handle basic dependencies - - if (excludes['arcade'] && !excludes['particles']) - { - grunt.log.writeln("Warning: Particles rely on Arcade Physics. Excluding from build."); - excludes.push('particles'); - } - - if (excludes['rendertexture'] && !excludes['retrofont']) - { - grunt.log.writeln("Warning: RetroFonts rely on RenderTextures. Excluding from build."); - excludes.push('retrofont'); + if (excludedKeys['rendertexture'] && !excludedKeys['retrofont']) + { + grunt.log.writeln("Warning: RetroFonts rely on RenderTextures. Excluding from build."); + excludes.push('retrofont'); + } } // Ok we know the excludes array is fine, let's get this show started - grunt.log.writeln("\nBuilding ...\n"); + grunt.log.writeln("\nPackaging Globals ...\n"); var filelist = []; // Clean the working folder var tasks = [ 'clean:build' ]; - for (var key in modules) + // Prepare the globals first, the libs that live outside of Phaser + + // 1) Creature + + if (!excludedKeys['creature']) { - if (modules[key].stub && excludes.indexOf(key) !== -1) + grunt.log.writeln("-> Creature"); + tasks.push('concat:creatureGlobal'); + filelist.push('<%= modules_dir %>/creature-global.js'); + } + + // 2) P2 + + if (!excludedKeys['p2']) + { + grunt.log.writeln("-> P2.js"); + tasks.push('concat:p2Global'); + filelist.push('<%= modules_dir %>/p2-global.js'); + } + + // 3) PIXI + + grunt.log.writeln("-> PIXI"); + tasks.push('concat:pixiIntro'); + filelist.push('<%= modules_dir %>/pixi-intro.js'); + + // Optional Rope + if (!excludedKeys['rope']) + { + grunt.log.writeln("-> PIXI.Rope"); + tasks.push('concat:pixiRope'); + filelist.push('<%= modules_dir %>/pixi-rope.js'); + } + + // Optional Tilesprite + if (!excludedKeys['tilesprite']) + { + grunt.log.writeln("-> PIXI.TileSprite"); + tasks.push('concat:pixiTileSprite'); + filelist.push('<%= modules_dir %>/pixi-tilesprite.js'); + } + + // PIXI Outro + tasks.push('concat:pixiOutro'); + filelist.push('<%= modules_dir %>/pixi-outro.js'); + + // And now for Phaser + + grunt.log.writeln("\nBuilding ..."); + + if (excludes !== false) + { + for (var key in modules) { - // If the module IS excluded and has a stub, we need that - tasks.push('concat:' + key + 'Stub'); - - filelist.push('<%= modules_dir %>/' + key + '.js'); - } - else if (modules[key].optional === false || excludes.indexOf(key) === -1) - { - // If it's required or NOT excluded, add it to the tasks list - tasks.push('concat:' + key); - - filelist.push('<%= modules_dir %>/' + key + '.js'); - - // Special case: If they have Arcade Physics AND Tilemaps we need to include the Tilemap Collision class - if (key === 'arcade' && !excludes['tilemaps']) + if (modules[key].stub && excludes.indexOf(key) !== -1) { - tasks.push('concat:arcadeTilemaps'); - filelist.push('<%= modules_dir %>/arcadeTilemaps.js'); + // If the module IS excluded and has a stub, we need that + tasks.push('concat:' + key + 'Stub'); + + filelist.push('<%= modules_dir %>/' + key + '.js'); } + else if (modules[key].optional === false || excludes.indexOf(key) === -1) + { + // If it's required or NOT excluded, add it to the tasks list + tasks.push('concat:' + key); + + filelist.push('<%= modules_dir %>/' + key + '.js'); + + // Special case: If they have Arcade Physics AND Tilemaps we need to include the Tilemap Collision class + if (key === 'arcade' && !excludes['tilemaps']) + { + tasks.push('concat:arcadeTilemaps'); + filelist.push('<%= modules_dir %>/arcadeTilemaps.js'); + } + } + } + } + else + { + // The full monty ... + + for (var mkey in modules) + { + tasks.push('concat:' + mkey); + filelist.push('<%= modules_dir %>/' + mkey + '.js'); } } @@ -181,7 +252,10 @@ module.exports = function (grunt) { tasks.push('concat:custom'); - tasks.push('uglify:custom'); + if (grunt.option('uglify')) + { + tasks.push('uglify:custom'); + } if (grunt.option('copy')) { @@ -215,17 +289,57 @@ module.exports = function (grunt) { grunt.option('filename', 'phaser'); grunt.option('sourcemap', true); grunt.option('copy', false); + grunt.option('uglify', true); grunt.task.run('custom'); }); - grunt.registerTask('full', 'Phaser complete', function() { + grunt.registerTask('full', 'Phaser (excluding Ninja and Creature)', function() { grunt.option('exclude', 'ninja,creature'); grunt.option('filename', 'phaser'); grunt.option('sourcemap', true); grunt.option('copy', true); + grunt.option('uglify', true); + + grunt.task.run('custom'); + + }); + + grunt.registerTask('complete', 'Phaser Build with all libs', function() { + + grunt.option('exclude', 'null'); + grunt.option('filename', 'phaser-complete'); + grunt.option('sourcemap', false); + grunt.option('copy', true); + grunt.option('copycustom', true); + grunt.option('uglify', true); + + grunt.task.run('custom'); + + }); + + grunt.registerTask('test', 'Phaser Test Build (all libs)', function() { + + grunt.option('exclude', 'ninja'); + grunt.option('filename', 'phaser'); + grunt.option('sourcemap', false); + grunt.option('copy', false); + grunt.option('uglify', false); + + grunt.task.run('custom'); + + }); + + grunt.registerTask('creature', 'Phaser + Creature', function() { + + grunt.option('exclude', 'ninja'); + grunt.option('filename', 'phaser-creature'); + grunt.option('sourcemap', true); + grunt.option('copy', true); + grunt.option('copycustom', true); + grunt.option('uglify', true); grunt.task.run('custom'); @@ -238,6 +352,20 @@ module.exports = function (grunt) { grunt.option('sourcemap', true); grunt.option('copy', false); grunt.option('copycustom', true); + grunt.option('uglify', true); + + grunt.task.run('custom'); + + }); + + grunt.registerTask('ninjaphysics', 'Phaser with Ninja Physics and Tilemaps', function() { + + grunt.option('exclude', 'p2,particles,creature'); + grunt.option('filename', 'phaser-ninja-physics'); + grunt.option('sourcemap', true); + grunt.option('copy', false); + grunt.option('copycustom', true); + grunt.option('uglify', true); grunt.task.run('custom'); @@ -250,18 +378,20 @@ module.exports = function (grunt) { grunt.option('sourcemap', true); grunt.option('copy', false); grunt.option('copycustom', true); + grunt.option('uglify', true); grunt.task.run('custom'); }); - grunt.registerTask('minimum', 'Phaser without any optional modules except Pixi', function() { + grunt.registerTask('minimum', 'Phaser without any optional modules', function() { grunt.option('exclude', 'gamepad,keyboard,bitmapdata,graphics,rendertexture,text,bitmaptext,retrofont,net,tweens,sound,debug,arcade,ninja,p2,tilemaps,particles,creature,video,rope,tilesprite'); grunt.option('filename', 'phaser-minimum'); grunt.option('sourcemap', true); grunt.option('copy', false); grunt.option('copycustom', true); + grunt.option('uglify', true); grunt.task.run('custom'); diff --git a/src/pixi/Intro.js b/src/pixi/Intro.js index 7ee9ec419..f485ffc0e 100644 --- a/src/pixi/Intro.js +++ b/src/pixi/Intro.js @@ -2,6 +2,6 @@ * @author Mat Groves http://matgroves.com/ @Doormat23 */ -var PIXI = (function(){ +(function(){ var root = this; diff --git a/tasks/manifests/creature-global.json b/tasks/manifests/creature-global.json new file mode 100644 index 000000000..982a8c3cc --- /dev/null +++ b/tasks/manifests/creature-global.json @@ -0,0 +1,4 @@ +[ + "src/animation/creature/gl-matrix.js", + "src/animation/creature/CreatureMeshBone.js" +] diff --git a/tasks/manifests/creature.json b/tasks/manifests/creature.json index abcbb81f9..0c85d084b 100644 --- a/tasks/manifests/creature.json +++ b/tasks/manifests/creature.json @@ -1,6 +1,3 @@ [ - "src/animation/creature/gl-matrix.js", - "src/animation/creature/CreatureMeshBone.js", - "src/animation/creature/CreaturePixiJSRenderer.js", "src/gameobjects/Creature.js" ] diff --git a/tasks/manifests/p2.json b/tasks/manifests/p2.json new file mode 100644 index 000000000..f88435949 --- /dev/null +++ b/tasks/manifests/p2.json @@ -0,0 +1,3 @@ +[ + "src/physics/p2/p2.js" +] diff --git a/tasks/manifests/physics.p2.json b/tasks/manifests/physics.p2.json index dd50c624a..96cd7c1c1 100644 --- a/tasks/manifests/physics.p2.json +++ b/tasks/manifests/physics.p2.json @@ -1,5 +1,4 @@ [ - "src/physics/p2/p2.js", "src/physics/p2/World.js", "src/physics/p2/FixtureList.js", "src/physics/p2/PointProxy.js", diff --git a/tasks/manifests/pixi.json b/tasks/manifests/pixi-intro.json similarity index 90% rename from tasks/manifests/pixi.json rename to tasks/manifests/pixi-intro.json index 480756c97..27d590c9c 100644 --- a/tasks/manifests/pixi.json +++ b/tasks/manifests/pixi-intro.json @@ -37,11 +37,6 @@ "src/pixi/textures/Texture.js", "src/pixi/textures/RenderTexture.js", - "src/pixi/extras/TilingSprite.js", - "src/pixi/extras/Strip.js", - "src/pixi/extras/Rope.js", + "src/pixi/filters/AbstractFilter.js" - "src/pixi/filters/AbstractFilter.js", - - "src/pixi/Outro.js" ] diff --git a/tasks/manifests/pixi-outro.json b/tasks/manifests/pixi-outro.json new file mode 100644 index 000000000..57526fa91 --- /dev/null +++ b/tasks/manifests/pixi-outro.json @@ -0,0 +1,3 @@ +[ + "src/pixi/Outro.js" +] diff --git a/tasks/manifests/pixi-rope.json b/tasks/manifests/pixi-rope.json new file mode 100644 index 000000000..0e611e5e3 --- /dev/null +++ b/tasks/manifests/pixi-rope.json @@ -0,0 +1,4 @@ +[ + "src/pixi/extras/Strip.js", + "src/pixi/extras/Rope.js" +] diff --git a/tasks/manifests/pixi-tilesprite.json b/tasks/manifests/pixi-tilesprite.json new file mode 100644 index 000000000..3cf54e678 --- /dev/null +++ b/tasks/manifests/pixi-tilesprite.json @@ -0,0 +1,3 @@ +[ + "src/pixi/extras/TilingSprite.js" +] diff --git a/tasks/options/concat.js b/tasks/options/concat.js index 600c6f334..87be2520c 100644 --- a/tasks/options/concat.js +++ b/tasks/options/concat.js @@ -1,15 +1,45 @@ module.exports = { + creatureGlobal: { + src: require('../manifests/creature-global'), + dest: '<%= modules_dir %>/creature-global.js' + }, + + creature: { + src: require('../manifests/creature'), + dest: '<%= modules_dir %>/creature.js' + }, + + p2Global: { + src: require('../manifests/p2'), + dest: '<%= modules_dir %>/p2-global.js' + }, + + pixiIntro: { + src: require('../manifests/pixi-intro'), + dest: '<%= modules_dir %>/pixi-intro.js' + }, + + pixiRope: { + src: require('../manifests/pixi-rope'), + dest: '<%= modules_dir %>/pixi-rope.js' + }, + + pixiTileSprite: { + src: require('../manifests/pixi-tilesprite'), + dest: '<%= modules_dir %>/pixi-tilesprite.js' + }, + + pixiOutro: { + src: require('../manifests/pixi-outro'), + dest: '<%= modules_dir %>/pixi-outro.js' + }, + intro: { src: require('../manifests/intro'), dest: '<%= modules_dir %>/intro.js' }, - pixi: { - src: require('../manifests/pixi'), - dest: '<%= modules_dir %>/pixi.js' - }, - phaser: { src: require('../manifests/phaser'), dest: '<%= modules_dir %>/phaser.js' @@ -200,11 +230,6 @@ module.exports = { dest: '<%= modules_dir %>/rope.js' }, - creature: { - src: require('../manifests/creature'), - dest: '<%= modules_dir %>/creature.js' - }, - tilesprite: { src: require('../manifests/tilesprite'), dest: '<%= modules_dir %>/tilesprite.js' diff --git a/tasks/options/jshint.js b/tasks/options/jshint.js index 6ae204b1a..c6763b64d 100644 --- a/tasks/options/jshint.js +++ b/tasks/options/jshint.js @@ -9,7 +9,6 @@ module.exports = { '!src/physics/p2/p2.js', '!src/animation/creature/gl-matrix.js', '!src/animation/creature/CreatureMeshBone.js', - '!src/animation/creature/CreaturePixiJSRenderer.js', '!src/gameobjects/Creature.js' ], options: { jshintrc: '.jshintrc' } From 1113b8f683634c5f53ff5541ec0f6a1cdde36cee Mon Sep 17 00:00:00 2001 From: photonstorm Date: Thu, 23 Jul 2015 16:01:16 +0100 Subject: [PATCH 08/17] README updated for 2.4.1 changes. --- README.md | 360 +++++++++++++++++++++++++++++++++++++++++++++++++++--- 1 file changed, 345 insertions(+), 15 deletions(-) diff --git a/README.md b/README.md index 730a92c70..8c7bcf9a5 100644 --- a/README.md +++ b/README.md @@ -39,7 +39,21 @@ Thousands of developers worldwide use it. From indies and multi-national digital
-> in development +> 23rd July 2015 + +Phaser 2.4 is another huge update. We had to bump the version number from 2.3 directly to 2.4 because of some API adjustments, all of which are fully detailed in the [Change Log](#change-log). While it's true we could have released it over a few smaller point releases, that just isn't how the cookie crumbled this time. _Be sure to pay attention to the previous deprecated API calls that have been removed in 2.4._ + +So although you had to wait for it a couple months more than usual, Phaser 2.4 is quite simply an **epic release** - there is no two ways about it! Brand new video component? Check. Support for fully boned Creature animations? Check. Brand new Cache and Loader updates? Check. Dynamic sprite and gradient generator? Check. Literally hundreds of updates, enhancements and fixes across the entire codebase? Yup, those too! The Change Log seems to scroll on forever, yet the overall package size continues to come down as we optimise and streamline our code too (this release actually builds smaller than 2.3 did, just 80KB min + gz) + +A few people on the forum have asked how Phaser is funded: Phaser is a fully open-source project and as such we have no _direct_ income from it at all. All development is funded by the client work that [my company](http://www.photonstorm.com) takes on. And of course the contributions from the incredible community (who also volunteer their skills for free). + +Sometimes this work directly impacts on Phaser. For example we recently built [5 games](http://www.insideouthq.com) for the new Pixar film Inside Out. Being Pixar they of course had high video requirements, so we literally coded from scratch the way videos were handled and added in video stream support in the process. Very often though our work simply uses Phaser but doesn't enhance it. Which is why if you buy any of the books or plugins we have on sale it really does make a difference! It buys us time to work on Phaser un-interrupted, which in turn benefits everyone. Some have asked if we could add a 'donate' button to the site, but instead I'd rather you get value from your money - so if we release a new plugin, book or magazine you like the look of, please do consider it a donation towards the continued work we all put in. + +Money stuff aside please enjoy this brand new release. We'll carry on supporting Phaser 2 for the rest of 2015 _at least_, while development of the Phaser 3 renderer proceeds at a rapid pace too. + +Make sure you check out the Phaser web site. We are going to be adding in stacks of new examples and features in the coming weeks. + +But that's all for now. I hope you enjoy Phaser 2.4. Happy coding everyone! See you on the forums. Happy coding everyone! See you on the forums. @@ -163,8 +177,17 @@ Run `grunt` to perform a default build to the `dist` folder. ## Games made with Phaser -Thousands of games have been made in Phaser. From game jam entries to titles for some of the largest entertainment brands in the world. This is just a tiny sample. +Thousands of games have been made in Phaser. From game jam entries to titles by some of the largest entertainment brands in the world. This is just a tiny sample: +[![Game](http://phaser.io/images/github/241/bubble-academy.png)][game10] +[![Game](http://phaser.io/images/github/241/woodventure.png)][game11] +[![Game](http://phaser.io/images/github/241/hopsop.png)][game12] +[![Game](http://phaser.io/images/github/241/banana-mania.png)][game13] +[![Game](http://phaser.io/images/github/241/salazar.png)][game14] +[![Game](http://phaser.io/images/github/241/phaser-shmup.png)][game15] +[![Game](http://phaser.io/images/github/241/trappy-trap.png)][game16] +[![Game](http://phaser.io/images/github/241/runaway-ruins.png)][game17] +[![Game](http://phaser.io/images/github/241/ananias.png)][game18] [![Game](http://phaser.io/images/github/shot1a.jpg)][game1] [![Game](http://phaser.io/images/github/shot2a.jpg)][game2] [![Game](http://phaser.io/images/github/shot3a.jpg)][game3] @@ -174,11 +197,6 @@ Thousands of games have been made in Phaser. From game jam entries to titles for [![Game](http://phaser.io/images/github/shot7b.jpg)][game7] [![Game](http://phaser.io/images/github/shot8.jpg)][game8] [![Game](http://phaser.io/images/github/shot9.jpg)][game9] -[![Game](http://phaser.io/images/github/shot10.jpg)][game10] -[![Game](http://phaser.io/images/github/shot11.jpg)][game11] -[![Game](http://phaser.io/images/github/shot12.jpg)][game12] -[![Game](http://phaser.io/images/github/shot13.jpg)][game13] -[![Game](http://phaser.io/images/github/shot14.jpg)][game14] Artwork copyright their respective owners. @@ -224,20 +242,328 @@ If you are an exceptional JavaScript developer and would like to join the Phaser ## Change Log -Version 2.4.1 - "Ionin Spring" - 23rd July 2015 +## Version 2.4.1 - "Ionin Spring" - 23rd July 2015 -* The Creature Runtimes have been updated to the latest versions and the Phaser.Creature class updated to use them. +This is a small point release that updates the Creature runtimes and fixes a couple of small cache issues. + +It also modifies the Grunt build scripts so that all third party libs (such as Creature, P2, gl-matrix and PIXI) are now kept well and truly outside of Phaser. They are defined and placed first in the build files. So no more PIXI hiding within the Phaser namespace or UMD patching for Phaser required. + +### Updates + +* The Creature Runtimes have been updated to the latest versions and the `Phaser.Creature` class updated to use them. * GameObjectFactory.creature is a new method to help with quick Creature animation object creation. -* Fixed Cache.getKeys to use the `_cacheMap` (thanks @jamesgroat #1929) * Cache.getPixiTexture will now search the image cache if it couldn't find a texture in the PIXI.TextureCache global array, if it finds a matching image in the image cache then it returns a new PIXI.Texture based on it. * Cache.getPixiBaseTexture will now search the image cache if it couldn't find a BaseTexture in the PIXI.BaseTextureCache global array. +### Bug Fixes +* Fixed Cache.getKeys to use the `_cacheMap` (thanks @jamesgroat #1929) +## Version 2.4.0 - "Katar" - 22nd July 2015 +### API Changes +* RenderTexture.render now takes a Matrix as its second parameter, not a Point object. This brings it in line with Pixi and allows you to perform much more complex transformations on the object being rendered. If you need to replicate the old behavior please use RenderTexture.renderXY(sprite, point.x, point.y) instead. +* PIXI.DisplayObject.updateTransform has a new optional parameter `parent`. If the DisplayObject doesn't have a parent (i.e. it isn't on the display list yet) then in the past `updateTransform` would fail. This meant you couldn't do things like scale or rotate a Sprite and then draw it to a RenderTexture or BitmapData, as calls to updateTransform would be ignored. The new checks now look to see if the `parent` parameter is set. If so this takes priority over the actual parent and is used to modify the transform (note that it **doesn't** reparent the DisplayObject, it merely uses it for the transform.) If there is no parent (explicitly or via the parameter) then it falls back to use Phaser.World as the parent. If it can't reach that then no transform takes place. +* If Phaser.Sound.noAudio has been set then Phaser.Loader will not load any audio files. No errors are thrown, but all calls to Loader.audio and Loader.audiosprite are silently ignored. `noAudio` can be set either via the `PhaserGlobal` global var or is set if the device your game is running on has no audio playback support. +* Files can now be added to the Loader with an absolute URL even if you have a Loader.baseURL set. In previous versions the baseURL would still be prepended to the file URL, but the Loader now checks if the a file URL begins with `http` or `//` and skips prepending the baseURL to it. +* Phaser.StateManager would incorrectly call `loadUpdate` and `loadRender` while the game was paused or if the State didn't have an `update` or `render` method defined, even after the loader was completed. Although this is a bug fix it's still an API change should you have been using the `loadUpdate/Render` calls in the old way. Also the StateManager no longer calls `preRender` unless the State `create` method has *finished*. If the State doesn't have a `create` method then `preRender` runs immediately. +* Frame.uuid has been removed (was flagged as deprecated for several releases). This has a two-fold effect: First it means that the property no longer exists and secondly it means that the AnimationParser (the class responsible for loading sprite sheets and texture atlases) no longer has to call either RandomDataGenerator.uuid OR populates the PIXI.TextureCache. The first saves some CPU time and the second saves memory by not creating references to textures it doesn't ever use. The PIXI.TextureCache is now ignored by Phaser other than for the `__missing` and `__default` textures. +* Phaser.AnimationParser methods `JSONData`, `JSONDataHash` and `XMLData` have all had their `cacheKey` parameter removed as it's no longer used. +* Input.deleteMoveCallback no longer takes an integer as its parameter. Now you have to give it the original callback and context in order to remove it. This is to protect against index invalidation (see the fixed Bugs list) +* Group.add and Group.addAt will only create a Physics Body on the child if it doesn't already have one. This is a change from 2.3 where it would replace the physics body property with the new body, but this could lead to garbage build-up over time, so you should now properly destroy the body before changing it. +* Button game objects now have `Input.useHandCursor` set to `true` by default. +* Phaser.BitmapText no longer extends PIXI.BitmapText but replaces it entirely. +* Phaser.Text no longer extends PIXI.Text but replaces it entirely. Phaser.Text now natively extends a Phaser Sprite, meaning it can be enabled for physics, damaged, etc. +* Mouse.button and MSPointer.button have been deprecated and are no longer set (they remain at -1). They never supported complex button events such as holding down 2 buttons and releasing just one, or any buttons other than left and right. They have been replaced with the far more robust and accurate Pointer DeviceButton properties such as `Pointer.leftButton`, `Pointer.rightButton` and so on. +* Phaser.DeviceButton is a new class that handles a specific button on an input device, for example the middle button of a mouse, the eraser button of a stylus or a shoulder button on a Gamepad. +* Phaser.DeviceButton.shiftKey is a boolean that holds if the shift key was held down or not during the last button event. +* Phaser.DeviceButton.altKey is a boolean that holds if the alt key was held down or not during the last button event. +* Phaser.DeviceButton.ctrlKey is a boolean that holds if the control key was held down or not during the last button event. +* Phaser.GamepadButton has been removed and now uses DeviceButton instead. Three internal API changes took place: `processButtonDown` is renamed to `start`, `processButtonUp` is renamed to `stop` and `processButtonFloat` is renamed to `padFloat`. If you extended GamepadButton in your own code you need to replace it with DeviceButton. +* MSPointer now checks the `pointerType` property of the DOM event and if it matches 'mouse' it will update `Input.mousePointer`, rather than `Input.pointer1` (or whatever the next free Pointer was). +* Time.suggestedFps is now only populated if `Time.advancedTiming` is enabled. +### p2.js Upgraded to version 0.7.0 +Phaser has been upgraded internally to use the new release of p2 physics. All Phaser based API call signatures remain unchanged unless listed below. + +For the full list of p2 additions please read [their change log](https://github.com/schteppe/p2.js/releases/tag/v0.7.0). + +* The P2.Body.onBeginContact arguments have changed. It now sends 5 arguments: The Phaser.P2.Body, the p2.Body, the p2 Shape from Body A, the p2 Shape from Body B and the contact equations array. Note that the Phaser.P2.Body may be null if you collide with a 'native' p2 body (such as the world bounds). However the p2.Body argument will always be populated. +* The P2.Body.onEndContact arguments have changed. It now sends 4 arguments: The Phaser.P2.Body, the p2.Body, the p2 Shape from Body A and the p2 Shape from Body B. Note that the Phaser.P2.Body may be null if this is the end of a contact with a 'native' p2 body (such as the world bounds). However the p2.Body argument will always be populated. +* P2.Body.applyImpulse allows you to apply an impulse to a Body. An impulse is a force added to a body during a short period of time. +* P2.Body.applyImpulseLocal allows you to apply an impulse to a point local to the Body. An impulse is a force added to a body during a short period of time. +* P2.Body.getVelocityAtPoint gets the velocity of a point in the body. + +### Build Updates + +* The Grunt build script now lets you exclude four new modules: rope, tilesprite, creature and video. +* Rope removes the ability to create Rope sprites and also removes the PIXI.Rope and PIXI.Strip classes. +* TileSprite removes the ability to create Tile Sprites and also removes the PIXI.TilingSprite class. +* Creature is not enabled by default, but allows you to control support for Creature bone based animations. +* Video removes the ability to render Videos and video streams to textures. +* Pixi is no longer an optional module. Phaser no longer uses any main stream branch of Pixi and has multiple fixes and tweaks internally through-out it. Therefore it's now no longer possible to replace the version of Pixi that Phaser uses with any other version, so we removed the option from the custom list. Over time we will do away with the Pixi globals and merge it fully into Phaser to avoid conflicts with any other version of Pixi present. + +### New Features + +* All calls to Loader methods that add files to the queue, such as `Loader.image` or `Loader.atlas`, now have the URL as an optional parameter. If not set Loader will assume the URL to be based on the key given. For example the following: `game.load.image("boom", "boom.png")` can now be expressed as just `game.load.image("boom")`, or `game.load.atlas("player", "player.png", "player.json")` can now be shortened to `game.load.atlas("player")`. Please see the freshly updated jsdocs for full details. +* Loader.atlas and `Cache.addTextureAtlas` will now automatically determine the format of the JSON data (array or hash) when added to the Cache. You no longer need to specify it explicitly if JSON, only if XML. +* Added support for the [Creature Automated Animation Tool](http://www.kestrelmoon.com/creature/). You can now create a Phaser.Creature object which uses json data and a texture atlas for the animations. Creature is a powerful animation tool, similar to Spriter or Spine. It is currently limited to WebGL games only, but the new libs should prove a solid starting point for anyone wanting to incorporate Creature animations into their games. +* Tilemap.getTileWorldXY has a new optional parameter: `nonNull` which if set makes it behave in the same way as `getTile` does (thanks @GGAlanSmithee #1722) +* Group.hash is an array (previously available as `Group._hash`, but protected) into which you can add any of its children via `Group.addToHash` and `Group.removeFromHash`. Only children of the Group can be added to and removed from the hash. The hash is used automatically by Arcade Physics in order to perform non z-index based destructive sorting. However if you don't use Arcade Physics, or it isn't a physics enabled Group, then you can use the hash to perform your own sorting and filtering of Group children without touching their z-index (and therefore display draw order). +* Group.physicsSortDirection is a new property allowing you to set a custom sort direction for Arcade Physics Sprites within the Group hash. Previously Arcade Physics used one single sort direction (defined on `Phaser.Physics.Arcade.sortDirection`) but this change allows you to specifically control how each and every Group is sorted, so you can now combine tall and wide Groups with narrow and thin in a single system. +* Cache.getPixiTexture will return a PIXI.Texture from the cache based on the given key. A PIXI Texture is created automatically for all images loaded and added to the cache. +* Cache.getPixiBaseTexture will return a PIXI.BaseTexture from the cache based on the given key. A PIXI BaseTexture is created automatically for all images loaded and added to the cache. +* Phaser.Matrix.clone allows you to clone the Matrix to a new object, or copy its values into the given Matrix. +* Phaser.Matrix.copyFrom and copyTo allow you to copy Matrix values from and to other Matrix objects. +* Phaser.Matrix.setTo allows you to set all properties of a Matrix in a single call. +* The Phaser.Matrix constructor now allows you to optionally set all Matrix properties on instantiation. +* Text.setShadow has two new optional parameters: `shadowStroke` and `shadowFill`. These allow you to set if the drop shadow is applied to the Text stroke, the Text fill or both of them (thanks @qdrj #1766) +* Text.shadowStroke and Text.shadowFill allow you to toggle if the drop shadow is applied to the Text stroke or fill independently. +* ArcadePhysics.Body.syncBounds is a new property that if true forces the Body to check itself against the Sprite.getBounds() dimensions and adjust its width and height accordingly. If false it will compare its dimensions against the Sprite scale instead, and adjust its width height if the scale has changed. Typically you would need to enable `syncBounds` if your sprite is the child of a responsive display object such as a FlexLayer, or in any situation where the sprite scale doesn't change, but its parents scale is effecting the dimensions regardless. +* Rectangle.ceil runs Math.ceil() on both the x and y values of the Rectangle. +* Rectangle.ceilAll runs Math.ceil() on the x, y, width and height values of the Rectangle. +* The Net and Debug classes have been stubbed out, so they can be properly excluded during a custom build (thanks @soldoutactivist #1772) +* Device.oggVideo indicates if the browser can play back ogg video files. +* Device.h264Video indicates if the browser can play back H264 (mp4) video files. +* Device.mp4Video indicates if the browser can play back H264 (mp4) video files. +* Device.webmVideo indicates if the browser can play back webm video files with the vp8 codec. +* Device.vp9Video indicates if the browser can play back webm video files with the vp9 codec. +* Device.hlsVideo indicates if the browser can play back mpeg video files. +* PIXI.DisplayObject.worldPosition contains the position of the DisplayObject (and therefore any object that inherits from it, such as Phaser.Sprite) taking into account all transforms in the display list. It is updated at the end of `DisplayObject.updateTransform`. DisplayObject.position reflects only the position applied to the object directly, whereas worldPosition includes the positions that may have been applied to its ancestors. +* PIXI.DisplayObject.worldScale contains the scale of the DisplayObject (and therefore any object that inherits from it, such as Phaser.Sprite) taking into account all transforms in the display list. It is updated at the end of `DisplayObject.updateTransform`. DisplayObject.scale reflects only the scale applied to the object directly, whereas worldScale includes any scales that may have been applied to its ancestors. +* PIXI.DisplayObject.worldRotation contains the rotation of the DisplayObject (and therefore any object that inherits from it, such as Phaser.Sprite) taking into account all transforms in the display list. It is updated at the end of `DisplayObject.updateTransform`. DisplayObject.rotation reflects only the rotation applied to the object directly, whereas worldRotation includes any rotations that may have been applied to its ancestors. +* Loader.video allows you to load a video file into Phaser. It works in the same way as Loader.audio, allowing you to pass an array of video files - and it will load the first one the device is capable of playing back. You can optionally load the video via xhr where the video data is converted to a Blob upon successful load. +* Cache.addVideo allows you to add a loaded video into the Phaser Cache. This is called automatically by the Phaser Loader, but may be invoked directly as well. +* Cache.checkVideoKey allows you to check if a video is stored in the cache based on the given key. +* Cache.getVideo allows you to extract a video from the Cache based on its key. The video element itself (or the Blob is loaded with asBlob true) will be found in the `data` property of the returned object. +* Cache.removeVideo will remove a video from the Cache based on the given key. +* SoundManager.onVolumeChange is a new signal that is dispatched whenever the global volume changes. The new volume is passed as the only parameter to your callback. +* SoundManager.onMute is a new signal that is dispatched when the SoundManager is globally muted, either directly via game code or as a result of the game pausing. +* SoundManager.onUnMute is a new signal that is dispatched when the SoundManager is globally un-muted, either directly via game code or as a result of the game resuming from a pause. +* Input.Touch.addTouchLockCallback allows you to add a callback that will be invoked automatically upon a touchstart event. This is used internally by the SoundManager and Video objects to handle mobile device unlocking, but is exposed publicly as well. +* Frame.resize allows you to change the dimensions of a Frame object and recalculate all of its internal properties (such as `bottom` and `distance`). +* LoadTexture.resizeFrame lets you resize the Frame dimensions that the Game Object uses for rendering. You shouldn't normally need to ever call this, but in the case of special texture types such as Video or BitmapData it can be useful to adjust the dimensions directly in this way. +* Rectangle.bottomLeft has been added (thanks @mattmogford #1788) +* Device.firefoxVersion is a new property that contains the major Firefox version number if running within Firefox, otherwise zero. +* Math.distanceSq will return the euclidean distance squared between the two given set of coordinates (thanks @jeremyosborne #1761 #1770) +* StateManager.onStateChange is a new signal which is dispatched whenever the State changes from one to another. The callback you specify is sent two parameters: the string based key of the new state, and the second parameter is the string based key of the old / previous state. +* onDragUpdate is a new signal that is dispatched whenever a Game object enabled for input and drag is moved by a pointer (i.e. during a drag event). See the `Phaser.InputHandler.enableDrag` docs for parameter details and the new Phaser Example. +* Rectangle.resize allows you to resize a Rectangle to the new given dimensions without altering its position. +* Cache.getJSON has a new parameter: `clone`. If set it will return a clone of the object stored in the Cache rather than a reference to it. +* Circle.random will return a uniformly distributed random point from anywhere within the circle. +* Line.random will return a random point from anywhere on the Line segment. +* Ellipse.random will return a uniformly distributed random point from anywhere within the ellipse. +* Rectangle.random will return a uniformly distributed random point from anywhere within the rectangle. +* Line.rotate allows you to rotate a line by the given amount around its center point. +* Device.chromeVersion will return the major version number of Chrome. +* TilingSprite.textureDebug is a new boolean that allows you to visually debug the generated texture a TilingSprite creates. +* Device.electron will return true if running under GitHub Electron (thanks @rblopes #1851) +* When loading a BitmapText you can now specify either an XML file or a JSON file for the font data. This is useful in environments such as Cocoon where you don't have a native XML parser. If you wish to use JSON the formatting should be equal to the result of running a valid XML file through X2JS (thanks @Feenposhleen #1837) +* Game Objects that have the Health component (such as Sprites) now have a new method: `heal` which adds the given amount to the health property, i.e. is the opposite of `damage` (thanks @stephandesouza #1794) +* maxHealth is a new property that Game Objects with the Health component receive and works in combination with the `heal` method to ensure a health limit cap. +* Text.setTextBounds is a rectangular region that allows you to align your text within it, regardless of the number of lines of text or position within the world. For example in an 800x600 sized game if you set the textBounds to be 0,0,800,600 and text alignment to 'left' and vertical alignment to 'bottom' then the text will render in the bottom-right hand corner of the game, regardless of the size of font you're using or the number of lines in the text itself (thanks @boostermedia for the idea #1824) +* Text.autoRound allows you to control if the text is allowed to render at sub-pixel coordinates or not. Set to `true` to round the coordinates, often eliminating anti-aliasing from certain font types (#1867) +* Tiled Image Collection support is now available and has been added to the TilemapParser and Tilemap classes (thanks @asyed94 #1879) +* Keyboard.addKeys is a practical way to create an object containing user selected hotkeys. For example: `addKeys( { 'up': Phaser.Keyboard.W, 'down': Phaser.Keyboard.S, 'left': Phaser.Keyboard.A, 'right': Phaser.Keyboard.D } );` would return an object containing the properties `up`, `down`, `left` and `right` that you could poll just like a Phaser.Key object. (thanks @Mourtz #1857) +* TilemapLayer.resize allows you to resize a TilemapLayer. It will update the internal canvas object and corresponding texture dimensions (#1881) +* Pointer button handling has been given an overhaul. It has the following new DeviceButton properties: `leftButton`, `rightButton`, `middleButton`, `backButton`, `forwardButton` and `eraserButton`. So you can now easily check which buttons are active and build right or middle click support into your games. The Pointer object normalises these properties for you, regardless if they came from a MouseEvent or PointerEvent (thanks @youssefdetovernickr for the idea #1848) +* Text has a new style property: tabs. This allows you to specify a pixel value (or values) that allows you to space out text that contains tab characters within it. `Text.tabs` can be either an integer, in which case all tabs share the same spacing, or an array of pixel values corresponding exactly to the number of tabs per line of text. This allows you to easily align columns of data in a single Text object. +* BitmapData.move(x, y) allows you to shift the contents of the BitmapData horizontally and vertically by the given amounts. The image wraps-around the edges of the BitmapData. +* BitmapData.moveH(distance) allows you to horizontally shift the BitmapData with wrap-around the edges. +* BitmapData.moveV(distance) allows you to vertically shift the BitmapData with wrap-around the edges. +* Text.addStrokeColor works in the same way as `Text.addColor` but allows you to define a color stop for the stroke color instead of the fill color. +* All Game Objects and Groups have a new boolean property called `pendingDestroy`. If you set this to `true` then the object will automatically destroy itself in the *next* logic update, rather than immediately. This is useful for cases when you wish to destroy an object from within one of its own callbacks, such as with buttons or other input events (thanks @alamboley #1748) +* BitmapData.generateTexture will take a snapshot of the BitmapDatas canvas at that moment in time and convert it into an Image, which is then stored in the Phaser image Cache based on the key given. You can then use the new texture for any future sprites or texture based objects. +* All Signals now have the ability to carry extra custom arguments with them, which are passed on to the callback you define after any internal arguments. For example a Phaser.Key has an onDown signal. When dispatched onDown sends a reference to the Key as the first and only argument. But you can now set the callback like this: `fireKey.onDown.add(shoot, this, 0, 'lazer', 64)`. So when the onDown signal is dispatched internally the callback (`shoot` in this case) will receive 3 arguments: the Key reference that is raised internally and the string 'lazer' and value 64, which were the custom arguments provided when setting-up the callback. +* Group.moveAll allows you to move all of the children of a Group into another Group. +* Loader.path is a string and if set it is placed before any _relative_ file path given to the Loader. For example: `load.path = "images/sprites/";` followed by `load.image("ball", "ball.png");` and `load.image("tree", "level1/oaktree.png");` would load the `ball` file from `images/sprites/ball.png` and the tree from `images/sprites/level1/oaktree.png`. The path is added before the filename but *after* the `Loader.baseURL`. The path _must_ end with a "/". Set it to nothing to disable the path. +* Loader.shader allows you to load a fragment shader from an external file. +* Cache.addShader adds a fragment shader into the cache. +* Cache.getShader gets a fragment shader from the cache. +* The Cache has been internally refactored considerably. Image data is now all stored in the same object, rather than being split across the PIXI global caches (such as PIXI.TextureCache and PIXI.BaseTextureCache), which are no longer used by Phaser. +* Internally the Cache now uses a single _cache object, which is partitioned to store the various different object types. Before the cache used lots of private objects, one per data type, but it's now a lot cleaner and we've managed to cut out hundreds of lines of duplicate code in the process. +* Cache.getImage has a new argument which lets you return either just the HTML Image element or the entire image cache object, which includes the baseTexture and frame data. +* Cache.getImage will return a __default image if the key isn't given, or a __missing image if the key is given but not found in the cache. This means it will always return a valid image and no longer cause Phaser to throw runtime errors deeper down with invalid image objects. +* AABB vs. AABB collisions now work in Ninja Physics. `reportCollisionVsWorld` already worked, and contained all of the logic required to resolve a collision once the appropriate vectors had been established. `reportCollisionVsBody` was refactored to use that function (now generically named `reportCollision`), and now AABBs can collide properly, including bouncing and friction. reportCollisionVsWorld is now just a wrapper around reportCollision to maintain compatibility (thanks @standardgaussian #1905) +* Phaser.Create is a new class that allows you to dynamically generate sprite textures from an array of pixel data, without needing any external files. We'll continue to improve this over the coming releases, but for now please see the new examples showing how to use it. + +### Updates + +* TypeScript definitions fixes and updates (thanks @clark-stevenson @isuda @ggarek @jamesgroat) +* JSDoc typo fixes (thanks @robertpenner @luckylooke @asyncanup @muzuiget @danxexe @rgk @matugm) +* Added missing `resumed` method to Phaser.State class template. +* Color.webToColor and Color.updateColor now updates the `out.color` and `out.color32` properties (thanks @cuixiping #1728) +* Tilemap.createFromObjects has been updated for Tiled 0.11 and can now look-up object layers based on id, uid or name. It will also now copy over Sprite scaling properties if set (thanks @mandarinx #1738) +* Graphics.drawPolygon can now accept a Phaser.Polygon or PIXI.Polygon object, as well as a points array (#1712) +* Phaser.Physics hooks added in for MatterJS support (coming soon) +* Body.destroy now automatically calls `Group.removeFromHash`. +* Physics.Arcade.sort has a new property 'sortDirection'. If not specified it will use World.sortDirection. If the Group given as the first parameter has its `physicsSortDirection` property set that will override any other setting. +* Physics.Arcade.sort now calls one of four functions: sortLeftRight, sortRightLeft, sortTopBottom and sortBottomTop. Each of which takes 2 Sprites as arguments. +* Physics.Arcade.sort now doesn't bail out if the Group contains a mixture of physics and non-physics enabled objects, as the Group hash is now only ever populated with physics enabled objects. Also the sort comparison functions no longer return -1 if the bodies are invalid, but zero instead (#1721) +* Phaser.Group would automatically add a child into the _hash array as soon as the child was created (or moved into the Group). This no longer happens. Instead the child is only added to `Group.hash` if it is enabled for Arcade Physics. However `Group.addToHash` and the hash array have been exposed as public in case you were taking advantage of the _hash even though it was a previously marked as private. +* Cache.getTexture has now been removed (it was deprecated several versions ago). Use Cache.getRenderTexture instead. +* Removed duplicate methods from PIXI.Text such as wordWrap and updateText as Phaser overrides them, so it was wasting bytes. +* Phaser.StateManager no longer calls `preRender` unless the State `create` method has finished. If the State doesn't have a `create` method then `preRender` runs immediately. +* Phaser.StateManager.created is a new read-only boolean that tells you if the State has finished running its `create` method. If it doesn't have one it's always true. +* RenderTexture.render and `renderXY` would ignore the Sprites rotation or scale. The full Sprite transform is now used correctly when the Sprite is drawn to the texture. If you wish to replicate the old behavior please use `RenderTexture.renderRawXY` instead. +* Pixi.Sprite.renderCanvas and renderWebGL now has a new optional matrix parameter. You can use this to render the Sprite with an alternative transform matrix without actually adjusting the Sprite matrix at all. +* RenderTexture.matrix has been removed as it's no longer used. +* SoundManager.pauseAll, resumeAll and stopAll now checks if the SoundManager.noAudio is set and ignores the calls. +* SoundManager.usingWebAudio is set to `false` by default (used to be `true`) and is only explicitly set if Web Audio is available and hasn't been disabled in the PhaserGlobal object. +* SoundManager.touchLocked is now set to `false` should the device be using legacy Audio, avoiding the unlock call running without need. +* Added `type` parameter to `VideoTexture.fromUrl` allowing you to define the mime-type of the video file, which is required for Firefox and Safari in most cases. +* PIXI.BaseTexture.forceLoaded allows you to set a BaseTexture as loaded, with the given width and height. It then calls `BaseTexture.dirty`. This is important for when you don't want to modify the shape of the source object by forcing in `complete` or dimension properties it may not naturally have, but still wish to use it as a base texture. +* SoundManager.volume now has its input value clamped to ensure it's between 0 and 1 (inclusive) +* Removed `Input.moveCallback` and `Input.moveCallbackContext` as neither are used any longer. Use `Input.addMoveCallback`. +* SoundManager now uses the new `Touch.addTouchLockCallback` methods to handle mobile device audio unlocking. +* If a BitmapData is created with a width or height set to zero then the width and/or height are set to a default value (256) instead to avoid getContext errors. +* RetroFont has been updated to use RenderTexture.renderXY, removing the need for creating a Point object each update. +* RetroFont no longer puts any entries into the TextureCache or generates any UUIDs on instantiation, speeding up creation and lowering memory use. +* BitmapData.update now validates the `width` and `height` values to ensure they aren't lower than 1, which would previously cause a context error. +* Texture.requiresReTint is a new property that controls if a texture requires the display object to be re-tinted having been updated internally. The LoadTexture component now sets this. +* PIXI.Sprite.tintedTexture contains a canvas object that holds the tinted version of the Sprite. This is only populated in Canvas, not in WebGL. +* ScaleManager.scaleSprite will no longer try and scale a display object that doesn't have a scale property. +* The LoadTexture component has a new property `customRender` which is checked for in the Core postUpdate to know when to render custom elements like Videos. +* BitmapText line spacing and word wrapping has been vastly improved and bought in-line with how Pixi 3 handles it, but with additional anchor support. +* P2.Body.loadPolygon now allows the `key` parameter to be passed as `null` - when this happens the `object` parameter can be the actual physics object data instead of a string pointing to the cache, allowing you to take advantage of adding multiple convex shapes with automatic adjustments for center of mass #1801 +* Tilemap.addTilesetImage can now accept a BitmapData as the `key` parameter and will use the BitmapData to render the tileset with instead of an image from the cache (thanks to @unstoppablecarl for the idea #1838) +* Device now uses a new way to detect when Phaser is running under a NW.js (formerly Node-WebKit) environment, using feature detection, instead of relying on a guarded require statement. The former way was the source of a known incompatibility with browserify and similar tools (thanks @rblopes #1851) +* Sprite vs. Tilemap collision can now check if the sprite overlaps the tilemap without trying to separate it (thanks @Preece #1810) +* The Asset Pack JSON Format example has been updated to include new and missing file formats (thanks @rblopes #1808) +* RenderTexture now takes the display objects alpha into consideration when rendering it, before it would always reset worldAlpha to 1 before rendering, thus ignoring any alpha that may be set. +* P2.enableBody now checks if an anchor exists on target object before attempting to set its value (thanks @standardgaussian #1885) +* Debug.currentAlpha wasn't being used to set the alpha of the Debug context at all (was always set to 1) but now updates the alpha of the Debug context before anything is rendered to it (thanks @wayfu #1888) +* If the device is detected as a Windows Phone the renderer is automatically set to use Canvas, even if WebGL or AUTO was requested (thanks @ramarro123 #1706) +* RandomDataGenerator.weightedPick has been tweaked slightly to allow for a more even distribution of weights. It still favors the earlier array elements, but will accurately include 'distance' elements as well (thanks @gingerbeardman #1751) +* BitmapData.clear has 4 new optional parameters: x, y, width and height, that define the area to be cleared. If left undefined it works exactly the same as before and clears the entire canvas. +* Added Phaser.Keyboard.COMMA and Phaser.Keyboard.PERIOD to the consts list. +* Canvas.setSmoothingEnabled only applies the value of the property exists, which avoids the Chrome webkit prefix deprecation warnings. +* PIXI._CompileShader can now take an array or a string for the fragment src. +* AnimationParser.spriteSheet can now accept either a string-based key or an HTML Image object as the key argument. +* LoaderParser.bitmapFont, xmlBitmapFont and jsonBitmapFont all now return the font data rather than write it to the now deprecated PIXI.BitmapText.fonts global array. +* PIXI.BitmapText has been removed as a global array, as it is no longer used. +* PIXI has been made available for Phaser when using requireJS (thanks @mkristo #1923) +* Internally the Time class has been updated to split out the RAF and SetTimeout implementations. This cuts down the update loop workload significantly, which was causing a performance optimization bottleneck in V8. +* TweenData.update now uses the `Time.elapsedMS` value for its delta calculation, instead of the physicsStep - this is because tweens are inherently time duration based and on a lagging system they were not properly completing when they should do (also addresses #1819) +* World.stateChange is a new method that is called whenever the state changes or restarts. It resets the world x/y coordinates back to zero and then resets the Camera. +* All undefined argument checks were changed from `if (typeof x === 'undefined')` to `if (x === undefined)` removing the typeof check and saving some bytes across the codebase in the process. +* Text.updateText will now check the width and height values of the Text canvas and if either are zero it sets `Text.renderable = false` to avoid throwing WebGL texture binding errors. +* WebGL context loss and restoration is now handled directly by Phaser. +* Cache.clearGLTextures empties out all of the GL Textures from Images stored in the cache. This is called automatically when the WebGL context is lost and then restored. + +### Bug Fixes + +* The LoadTexture component has had a redundant `dirty` call removed from it that was causing textures to be re-uploaded to the GPU even though they may already have been on it. +* TileSprites were missing a `physicsType` property, causing them to not collide with anything (thanks @numbofathma #1702) +* Sprite was missing the Health and InCamera components. +* A Tween could be incorrectly set to never end if it was given a duration of zero (thanks @hardalias #1710) +* Added guards around `context.getImageData` calls in BitmapData, Text and Canvas Tinting classes to avoid crashing restricted browsers like Epic Browser. Please understand that several Phaser features won't work correctly with this browser (thanks @Erik3000 #1714) +* P2 Body.destroy now checks for the existence of a `sprite` property on the body before nulling it (thanks @englercj #1736) +* The version of p2.js being used in 2.3.0 wasn't correctly declaring itself as a global for browserify / requireJS. This update resolves that (thanks @dgoemans #1723) +* AnimationManager.frameName setter wasn't checking if `_frameData` existed before accessing it (thanks @nesukun #1727) +* P2.getConstraints would return an array of null objects. It now returns the raw p2 constraint objects (thanks @valueerrorx #1726) +* TilemapLayer docs incorrectly reported it as extending Phaser.Image, but it doesn't share the same components so has been updated. +* TilemapLayer was missing the Input component (thanks @uhe1231 #1700) +* PIXI.Graphics in Canvas mode wouldn't respect the objects visible or alpha zero properties, rendering it regardless (thanks @TimvdEijnden #1720) +* Enabling Arcade Physics would add the deltaCap property onto Phaser.Time, even though the property doesn't exist any more, changing the class shape in the process. +* Phaser.StateManager would incorrectly call `loadUpdate` while the game was paused or if the State didn't have an `update` method defined even after the loader was completed. +* Phaser.StateManager would incorrectly call `loadRender` while the game was paused or if the State didn't have an `render` method defined even after the loader was completed. +* Added the missing `preRender` function to the Phaser.State class template. +* Fixed bug in Pixi where RenderTexture.render would ignore the given matrix. +* Fixed a bug in Pixi where drawing a Sprite to a RenderTexture would reset the Sprites transform to an identity Matrix. +* The SoundManager didn't accurately detect devices or browser environments with no sound card present and would try to carry on using a null Web Audio context (thanks @englercj #1746) +* The Tween.onStart signal wasn't dispatched if the Tween had a delay set. It's now dispatched immediately if no delay, or after the delay if set. It also respects the `autoStart` parameter and will still dispatch even if `autoStart` is true. +* Input.addMoveCallback used to return the index of the callback entry in the internal `moveCallbacks` array. However as callbacks were removed the indexes became invalid, potentially causing a future `Input.deleteMoveCallback` to remove the wrong callback entirely or error. Input.deleteMoveCallback now takes the original callback and context as its parameters to ensure deletion safety. +* Graphics constructor now sets x/y parameters to zero if undefined. Before it would set them to undefined as the type check wasn't strict. +* Math.isOdd now returns an actual boolean value instead of 1 (thanks @formigone #1792) +* Rope constructor was fixed enabling it again (thanks @gionatan7 #1799) +* FrameData.getFrameIndexes when called with a partial array (such as creating an animation out of a set of frames) would return the indexes array padded out with 'undefined' entries, causing short animations to never fully play through. +* AnimationManager.add no longer sets the `currentFrame` property when just adding an Animation to a Sprite. The `currentFrame` property is now only set when the animation begins playing. This avoids the Sprite.frame and Sprite.frameName properties from returning incorrect results after adding (but not playing) an Animation. It also allows very short animations (2 frames) to play correctly without needing to loop. +* PIXI.Graphics was calling Polygon.flatten in its drawShape call, causing the original Polygon object to internally change. It now takes a clone of the polygon and only flattens that (#1779) +* Tween.generateData didn't set a default value for the `frameRate` parameter if undefined, causing an infinite loop (thanks @rblopes #1782 #1785) +* Fixed the Pixelate filter, changing the `dimensions` uniform to a 2f and removing un-needed vecs from the fragment src. Also fixed the size getter and added sizeX and sizeY getters/setters (#1780) +* Tween.to and Tween.from can now accept `null` as the ease parameter value. If `null` it will use the default tween, as per the documentation (thanks @nkovacs #1817) +* TilemapParser.parseTiledJSON would ignore 'falsey' properties set on Objects in Tiled JSON tilemaps, such as `x: 0` or `visible: false`. These properties are now accurately copied over to the destination map data (thanks @MaksJS #1818) +* Removed un-necessary PIXI.TextureCache pollution in Phaser.LoaderParser.bitmapFont. +* Sound.resume wouldn't properly restart looped sounds in Chrome after being paused. Phaser now specifically handles the Chrome 42 bug and later fix (thanks @nkovacs #1820) +* Setting the BitmapText.maxWidth property would throw an error (thanks @drhayes #1807) +* If running under Cordova and iOS the Game.lockRender boolean will be set to `true` when the game pauses and `false` when it resumes. This avoids the `gpus_ReturnNotPermittedKillClient` app crash on iOS (thanks @cncolder #1800) +* Sound.restart and Sound.stop now properly disconnect the sound from the gainNode (or external node) before stopping it, allowing restart to work correctly (thanks @eofs #1796) +* When loading an Audio Sprite from an Asset Pack the wrong Loader method was being used (thanks @boniatillo-com #1777) +* Due to a Pixi 2 issue TileSprite when running under WebGL didn't respect the world alpha setting and would only work with its own alpha (thanks @hanenbro #1774) +* TileSprite now fully supports animation again, having been broken for several versions due to a Pixi upgrade. We've updated the way TileSprites generate their textures internally considerably and animation support is back across both Canvas and WebGL as a result (#1653) +* Setting mute to false on Sound that was never muted caused its volume to be set to zero (thanks @brianbunch #1870) +* P2.Body.createGroupCallback incorrectly referenced the `_groupCallbackContext` when deleting it (thanks @Langerz82 #1886) +* When reusing a Tween created with an array of properties the values would get exponentially added to the TweenData internal array each time the tween was re-run (thanks @SBCGames #1747) +* Reading the dimensions of a Text object would reset its resolution property (thanks @joelika #1717) +* Text.addColor would incorrectly color the text stroke if set (thanks @llevkin #1893) +* Setting the scaleMode property of a Game configuration object would cause a ScaleManager TypeError in the resize method. It now stores the scale mode locally and applies it after boot (thanks @Mickawesomesque #1534) +* Device.windowsPhone should now correctly identify Windows Phone 8.1 devices, which also think they are iOS and Androids. If you find a device that gets around this check please send us its ua string! (thanks @jounii #1496) +* Rope.segments used the wrong vertices property, causing a runtime error. +* Debug.ropeSegments didn't take the scale of the Rope object into consideration, causing incorrect debug rendering. +* If a Sound was muted, or had its volume changed while it was still decoding (i.e. before it started playback) then the mute and/or volume were ignored and the sound would play anyway (thanks @brianbunch #1872) +* Group.addMultiple if given a Group.children array as the first parameter would fail as the original group length was decreased out of line with the children being added. Group.addMultiple now checks if the children argument is a Phaser.Group instance, and if so it uses Group.moveAll instead on it (thanks @AnderbergE #1898) +* PIXI.DisplayObject.updateTransform now nulls the _currentBounds property (thanks @gaufqwi #1906) +* Improved the JSON BitmapText implementation (thanks @Feenposhleen #1912 #1837) +* game.make.group did not setup parent correctly (thanks @mthurlin #1911) +* Fix reference error for process in the Device class (thanks @mkristo #1922) +* Sprites with Arcade Physics bodies that had `collideWorldBounds` enabled would be moved to the wrong position if you restarted a State (or swapped to a new State) that reset the world bounds (thanks @vulvulune #1775) +* PIXI.BaseTexture.fromCanvas now checks the canvas dimensions and if either face is zero it sets them to 1px to avoid WebGL texture binding errors. + +### Deprecated + +All of the following have been removed from Phaser 2.4. +They were flagged as deprecated in Phaser 2.2 or earlier. + +* Camera.screenView +* ScaleManager.maxIterations +* ScaleManager.enterPortrait (see onOrientationChange) +* ScaleManager.enterLandscape (see onOrientationChange) +* ScaleManager.enterFullScreen (see onFullScreenChange) +* ScaleManager.leaveFullScreen (see onFullScreenChange) +* ScaleManager.fullScreenFailed (see onFullScreenError) +* ScaleManager.checkResize +* ScaleManager.checkOrientation +* ScaleManager.setScreenSize (see updateLayout) +* ScaleManager.setSize (see reflowCanvas) +* ScaleManager.checkOrientationState (see reflowCanvas) +* ScaleManager.orientation (see screenOrientation) +* Gamepad.disabled (see enabled) +* Input.currentPointers (see totalActivePointers) +* Input.disabled (see enabled) +* Keyboard.disabled (see enabled) +* Mouse.disabled (see enabled) +* Mouse.mouseMoveCallback (see Input.addMoveCallback) +* MSPointer.disabled (see enabled) +* Touch.disabled (see enabled) +* Cache.getUrl (see getURL) +* Math.truncate (see Math.trunc) +* Math.snapToInArray (see Phaser.ArrayUtils.findClosest) +* Math.interpolateFloat (see Math.linear) +* Math.normalizeLatitude (use Phaser.Math.clamp(lat, -90, 90)) +* Math.normalizeLongitude (use Phaser.Math.wrap(lng, -180, 180)) +* Math.chanceRoll (use Phaser.Utils.chanceRoll) +* Math.numberArray (use Phaser.ArrayUtils.numberArray) +* Math.numberArrayStep (use Phaser.ArrayUtils.numberArrayStep) +* Math.limitValue (use Phaser.Math.clamp) +* Math.randomSign (use Phaser.Utils.randomChoice(-1, 1)) +* Math.angleLimit (use Phaser.Math.clamp) +* Math.getRandom (use Phaser.ArrayUtils.getRandomItem) +* Math.removeRandom (use Phaser.ArrayUtils.removeRandomItem) +* Math.floor (use Math.trunc) +* Math.ceil (use Phaser.Math.roundAwayFromZero) +* Math.shift (use Phaser.ArrayUtils.rotate) +* Math.shuffleArray (use Phaser.ArrayUtils.shuffle) +* Math.distanceRounded (do the rounding locally) +* Canvas.getOffset (see Phaser.DOM.getOffset) +* Canvas.getAspectRatio (see Phaser.DOM.getAspectRatio) +* TilemapLayer.tileColor (use TilemapLayer.debugSettings.missingImageFill) +* Phaser.ArrayList alias removed, now use Phaser.ArraySet +* Utils.transposeArray (see Phaser.ArrayUtils.transposeMatrix) +* Utils.rotateArray (see Phaser.ArrayUtils.rotateMatrix) +* Utils.shuffle (see Phaser.ArrayUtils.shuffle) For changes in previous releases please see the extensive [Version History](https://github.com/photonstorm/phaser/blob/master/CHANGELOG.md). @@ -300,8 +626,12 @@ All rights reserved. [game7]: http://www.html5gamedevs.com/topic/11179-phaser-cocoonjs-tap-tap-submarine/ [game8]: http://www.gamepix.com/project/footchinko/ [game9]: http://orcattack.thehobbit.com -[game10]: http://runsheldon.com/ -[game11]: http://www.tempalabs.com/works/moon-rocket/ -[game12]: http://www.tempalabs.com/works/master-of-arms-sword-staff-spear/ -[game13]: http://m.silvergames.com/en/pocahontas-slots -[game14]: http://www.tempalabs.com/works/gattai/ +[game10]: http://phaser.io/news/2015/06/bubble-academy +[game11]: http://phaser.io/news/2015/07/woodventure +[game12]: http://phaser.io/news/2015/04/hopsop-journey-to-the-top +[game13]: http://phaser.io/news/2015/05/banana-mania +[game14]: http://phaser.io/news/2015/06/salazar-the-alchemist +[game15]: http://phaser.io/news/2015/05/phaser-shmup +[game16]: http://phaser.io/news/2015/05/trappy-trap +[game17]: http://phaser.io/news/2015/04/runaway-ruins +[game18]: http://phaser.io/news/2015/04/ananias From 27f1c657e31a6d1ad885f6e2d9ba547aff17bd9e Mon Sep 17 00:00:00 2001 From: photonstorm Date: Thu, 23 Jul 2015 16:02:45 +0100 Subject: [PATCH 09/17] Phaser 2.4.1. --- build/custom/phaser-arcade-physics.js | 2464 +- build/custom/phaser-arcade-physics.map | 2 +- build/custom/phaser-arcade-physics.min.js | 34 +- build/custom/phaser-minimum.js | 76 +- build/custom/phaser-minimum.map | 2 +- build/custom/phaser-minimum.min.js | 16 +- build/custom/phaser-no-physics.js | 2464 +- build/custom/phaser-no-physics.map | 2 +- build/custom/phaser-no-physics.min.js | 32 +- build/phaser.js | 29690 ++++++++++---------- build/phaser.map | 2 +- build/phaser.min.js | 48 +- 12 files changed, 17524 insertions(+), 17308 deletions(-) diff --git a/build/custom/phaser-arcade-physics.js b/build/custom/phaser-arcade-physics.js index 7c8f9f7a0..e592eeb05 100644 --- a/build/custom/phaser-arcade-physics.js +++ b/build/custom/phaser-arcade-physics.js @@ -7,7 +7,7 @@ * * Phaser - http://phaser.io * -* v2.4.0 "Katar" - Built: Wed Jul 22 2015 15:30:22 +* v2.4.1 "Ionin Spring" - Built: Thu Jul 23 2015 16:01:45 * * By Richard Davey http://www.photonstorm.com @photonstorm * @@ -32,7 +32,7 @@ * @author Mat Groves http://matgroves.com/ @Doormat23 */ -var PIXI = (function(){ +(function(){ var root = this; @@ -9142,6 +9142,1200 @@ PIXI.AbstractFilter.prototype.apply = function(frameBuffer) // TODO :) }; */ +/** + * @author Mat Groves http://matgroves.com/ + */ + + /** + * + * @class Strip + * @extends DisplayObjectContainer + * @constructor + * @param texture {Texture} The texture to use + * @param width {Number} the width + * @param height {Number} the height + * + */ +PIXI.Strip = function(texture) +{ + PIXI.DisplayObjectContainer.call( this ); + + + /** + * The texture of the strip + * + * @property texture + * @type Texture + */ + this.texture = texture; + + // set up the main bits.. + this.uvs = new PIXI.Float32Array([0, 1, + 1, 1, + 1, 0, + 0, 1]); + + this.vertices = new PIXI.Float32Array([0, 0, + 100, 0, + 100, 100, + 0, 100]); + + this.colors = new PIXI.Float32Array([1, 1, 1, 1]); + + this.indices = new PIXI.Uint16Array([0, 1, 2, 3]); + + /** + * Whether the strip is dirty or not + * + * @property dirty + * @type Boolean + */ + this.dirty = true; + + /** + * The blend mode to be applied to the sprite. Set to PIXI.blendModes.NORMAL to remove any blend mode. + * + * @property blendMode + * @type Number + * @default PIXI.blendModes.NORMAL; + */ + this.blendMode = PIXI.blendModes.NORMAL; + + /** + * Triangles in canvas mode are automatically antialiased, use this value to force triangles to overlap a bit with each other. + * + * @property canvasPadding + * @type Number + */ + this.canvasPadding = 0; + + this.drawMode = PIXI.Strip.DrawModes.TRIANGLE_STRIP; + +}; + +// constructor +PIXI.Strip.prototype = Object.create(PIXI.DisplayObjectContainer.prototype); +PIXI.Strip.prototype.constructor = PIXI.Strip; + +PIXI.Strip.prototype._renderWebGL = function(renderSession) +{ + // if the sprite is not visible or the alpha is 0 then no need to render this element + if(!this.visible || this.alpha <= 0)return; + // render triangle strip.. + + renderSession.spriteBatch.stop(); + + // init! init! + if(!this._vertexBuffer)this._initWebGL(renderSession); + + renderSession.shaderManager.setShader(renderSession.shaderManager.stripShader); + + this._renderStrip(renderSession); + + ///renderSession.shaderManager.activateDefaultShader(); + + renderSession.spriteBatch.start(); + + //TODO check culling +}; + +PIXI.Strip.prototype._initWebGL = function(renderSession) +{ + // build the strip! + var gl = renderSession.gl; + + this._vertexBuffer = gl.createBuffer(); + this._indexBuffer = gl.createBuffer(); + this._uvBuffer = gl.createBuffer(); + this._colorBuffer = gl.createBuffer(); + + gl.bindBuffer(gl.ARRAY_BUFFER, this._vertexBuffer); + gl.bufferData(gl.ARRAY_BUFFER, this.vertices, gl.DYNAMIC_DRAW); + + gl.bindBuffer(gl.ARRAY_BUFFER, this._uvBuffer); + gl.bufferData(gl.ARRAY_BUFFER, this.uvs, gl.STATIC_DRAW); + + gl.bindBuffer(gl.ARRAY_BUFFER, this._colorBuffer); + gl.bufferData(gl.ARRAY_BUFFER, this.colors, gl.STATIC_DRAW); + + gl.bindBuffer(gl.ELEMENT_ARRAY_BUFFER, this._indexBuffer); + gl.bufferData(gl.ELEMENT_ARRAY_BUFFER, this.indices, gl.STATIC_DRAW); +}; + +PIXI.Strip.prototype._renderStrip = function(renderSession) +{ + var gl = renderSession.gl; + var projection = renderSession.projection, + offset = renderSession.offset, + shader = renderSession.shaderManager.stripShader; + + var drawMode = this.drawMode === PIXI.Strip.DrawModes.TRIANGLE_STRIP ? gl.TRIANGLE_STRIP : gl.TRIANGLES; + + // gl.uniformMatrix4fv(shaderProgram.mvMatrixUniform, false, mat4Real); + + renderSession.blendModeManager.setBlendMode(this.blendMode); + + + // set uniforms + gl.uniformMatrix3fv(shader.translationMatrix, false, this.worldTransform.toArray(true)); + gl.uniform2f(shader.projectionVector, projection.x, -projection.y); + gl.uniform2f(shader.offsetVector, -offset.x, -offset.y); + gl.uniform1f(shader.alpha, this.worldAlpha); + + if(!this.dirty) + { + + gl.bindBuffer(gl.ARRAY_BUFFER, this._vertexBuffer); + gl.bufferSubData(gl.ARRAY_BUFFER, 0, this.vertices); + gl.vertexAttribPointer(shader.aVertexPosition, 2, gl.FLOAT, false, 0, 0); + + // update the uvs + gl.bindBuffer(gl.ARRAY_BUFFER, this._uvBuffer); + gl.vertexAttribPointer(shader.aTextureCoord, 2, gl.FLOAT, false, 0, 0); + + gl.activeTexture(gl.TEXTURE0); + + // check if a texture is dirty.. + if(this.texture.baseTexture._dirty[gl.id]) + { + renderSession.renderer.updateTexture(this.texture.baseTexture); + } + else + { + // bind the current texture + gl.bindTexture(gl.TEXTURE_2D, this.texture.baseTexture._glTextures[gl.id]); + } + + // dont need to upload! + gl.bindBuffer(gl.ELEMENT_ARRAY_BUFFER, this._indexBuffer); + + + } + else + { + + this.dirty = false; + gl.bindBuffer(gl.ARRAY_BUFFER, this._vertexBuffer); + gl.bufferData(gl.ARRAY_BUFFER, this.vertices, gl.STATIC_DRAW); + gl.vertexAttribPointer(shader.aVertexPosition, 2, gl.FLOAT, false, 0, 0); + + // update the uvs + gl.bindBuffer(gl.ARRAY_BUFFER, this._uvBuffer); + gl.bufferData(gl.ARRAY_BUFFER, this.uvs, gl.STATIC_DRAW); + gl.vertexAttribPointer(shader.aTextureCoord, 2, gl.FLOAT, false, 0, 0); + + gl.activeTexture(gl.TEXTURE0); + + // check if a texture is dirty.. + if(this.texture.baseTexture._dirty[gl.id]) + { + renderSession.renderer.updateTexture(this.texture.baseTexture); + } + else + { + gl.bindTexture(gl.TEXTURE_2D, this.texture.baseTexture._glTextures[gl.id]); + } + + // dont need to upload! + gl.bindBuffer(gl.ELEMENT_ARRAY_BUFFER, this._indexBuffer); + gl.bufferData(gl.ELEMENT_ARRAY_BUFFER, this.indices, gl.STATIC_DRAW); + + } + //console.log(gl.TRIANGLE_STRIP) + // + // + gl.drawElements(drawMode, this.indices.length, gl.UNSIGNED_SHORT, 0); + + +}; + + + +PIXI.Strip.prototype._renderCanvas = function(renderSession) +{ + var context = renderSession.context; + + var transform = this.worldTransform; + + if (renderSession.roundPixels) + { + context.setTransform(transform.a, transform.b, transform.c, transform.d, transform.tx | 0, transform.ty | 0); + } + else + { + context.setTransform(transform.a, transform.b, transform.c, transform.d, transform.tx, transform.ty); + } + + if (this.drawMode === PIXI.Strip.DrawModes.TRIANGLE_STRIP) + { + this._renderCanvasTriangleStrip(context); + } + else + { + this._renderCanvasTriangles(context); + } +}; + +PIXI.Strip.prototype._renderCanvasTriangleStrip = function(context) +{ + // draw triangles!! + var vertices = this.vertices; + var uvs = this.uvs; + + var length = vertices.length / 2; + this.count++; + + for (var i = 0; i < length - 2; i++) { + // draw some triangles! + var index = i * 2; + this._renderCanvasDrawTriangle(context, vertices, uvs, index, (index + 2), (index + 4)); + } +}; + +PIXI.Strip.prototype._renderCanvasTriangles = function(context) +{ + // draw triangles!! + var vertices = this.vertices; + var uvs = this.uvs; + var indices = this.indices; + + var length = indices.length; + this.count++; + + for (var i = 0; i < length; i += 3) { + // draw some triangles! + var index0 = indices[i] * 2, index1 = indices[i + 1] * 2, index2 = indices[i + 2] * 2; + this._renderCanvasDrawTriangle(context, vertices, uvs, index0, index1, index2); + } +}; + +PIXI.Strip.prototype._renderCanvasDrawTriangle = function(context, vertices, uvs, index0, index1, index2) +{ + var textureSource = this.texture.baseTexture.source; + var textureWidth = this.texture.width; + var textureHeight = this.texture.height; + + var x0 = vertices[index0], x1 = vertices[index1], x2 = vertices[index2]; + var y0 = vertices[index0 + 1], y1 = vertices[index1 + 1], y2 = vertices[index2 + 1]; + + var u0 = uvs[index0] * textureWidth, u1 = uvs[index1] * textureWidth, u2 = uvs[index2] * textureWidth; + var v0 = uvs[index0 + 1] * textureHeight, v1 = uvs[index1 + 1] * textureHeight, v2 = uvs[index2 + 1] * textureHeight; + + if (this.canvasPadding > 0) { + var paddingX = this.canvasPadding / this.worldTransform.a; + var paddingY = this.canvasPadding / this.worldTransform.d; + var centerX = (x0 + x1 + x2) / 3; + var centerY = (y0 + y1 + y2) / 3; + + var normX = x0 - centerX; + var normY = y0 - centerY; + + var dist = Math.sqrt(normX * normX + normY * normY); + x0 = centerX + (normX / dist) * (dist + paddingX); + y0 = centerY + (normY / dist) * (dist + paddingY); + + // + + normX = x1 - centerX; + normY = y1 - centerY; + + dist = Math.sqrt(normX * normX + normY * normY); + x1 = centerX + (normX / dist) * (dist + paddingX); + y1 = centerY + (normY / dist) * (dist + paddingY); + + normX = x2 - centerX; + normY = y2 - centerY; + + dist = Math.sqrt(normX * normX + normY * normY); + x2 = centerX + (normX / dist) * (dist + paddingX); + y2 = centerY + (normY / dist) * (dist + paddingY); + } + + context.save(); + context.beginPath(); + + + context.moveTo(x0, y0); + context.lineTo(x1, y1); + context.lineTo(x2, y2); + + context.closePath(); + + context.clip(); + + // Compute matrix transform + var delta = (u0 * v1) + (v0 * u2) + (u1 * v2) - (v1 * u2) - (v0 * u1) - (u0 * v2); + var deltaA = (x0 * v1) + (v0 * x2) + (x1 * v2) - (v1 * x2) - (v0 * x1) - (x0 * v2); + var deltaB = (u0 * x1) + (x0 * u2) + (u1 * x2) - (x1 * u2) - (x0 * u1) - (u0 * x2); + var deltaC = (u0 * v1 * x2) + (v0 * x1 * u2) + (x0 * u1 * v2) - (x0 * v1 * u2) - (v0 * u1 * x2) - (u0 * x1 * v2); + var deltaD = (y0 * v1) + (v0 * y2) + (y1 * v2) - (v1 * y2) - (v0 * y1) - (y0 * v2); + var deltaE = (u0 * y1) + (y0 * u2) + (u1 * y2) - (y1 * u2) - (y0 * u1) - (u0 * y2); + var deltaF = (u0 * v1 * y2) + (v0 * y1 * u2) + (y0 * u1 * v2) - (y0 * v1 * u2) - (v0 * u1 * y2) - (u0 * y1 * v2); + + context.transform(deltaA / delta, deltaD / delta, + deltaB / delta, deltaE / delta, + deltaC / delta, deltaF / delta); + + context.drawImage(textureSource, 0, 0); + context.restore(); +}; + + + +/** + * Renders a flat strip + * + * @method renderStripFlat + * @param strip {Strip} The Strip to render + * @private + */ +PIXI.Strip.prototype.renderStripFlat = function(strip) +{ + var context = this.context; + var vertices = strip.vertices; + + var length = vertices.length/2; + this.count++; + + context.beginPath(); + for (var i=1; i < length-2; i++) + { + // draw some triangles! + var index = i*2; + + var x0 = vertices[index], x1 = vertices[index+2], x2 = vertices[index+4]; + var y0 = vertices[index+1], y1 = vertices[index+3], y2 = vertices[index+5]; + + context.moveTo(x0, y0); + context.lineTo(x1, y1); + context.lineTo(x2, y2); + } + + context.fillStyle = '#FF0000'; + context.fill(); + context.closePath(); +}; + +/* +PIXI.Strip.prototype.setTexture = function(texture) +{ + //TODO SET THE TEXTURES + //TODO VISIBILITY + + // stop current texture + this.texture = texture; + this.width = texture.frame.width; + this.height = texture.frame.height; + this.updateFrame = true; +}; +*/ + +/** + * When the texture is updated, this event will fire to update the scale and frame + * + * @method onTextureUpdate + * @param event + * @private + */ + +PIXI.Strip.prototype.onTextureUpdate = function() +{ + this.updateFrame = true; +}; + +/** + * Returns the bounds of the mesh as a rectangle. The bounds calculation takes the worldTransform into account. + * + * @method getBounds + * @param matrix {Matrix} the transformation matrix of the sprite + * @return {Rectangle} the framing rectangle + */ +PIXI.Strip.prototype.getBounds = function(matrix) +{ + var worldTransform = matrix || this.worldTransform; + + var a = worldTransform.a; + var b = worldTransform.b; + var c = worldTransform.c; + var d = worldTransform.d; + var tx = worldTransform.tx; + var ty = worldTransform.ty; + + var maxX = -Infinity; + var maxY = -Infinity; + + var minX = Infinity; + var minY = Infinity; + + var vertices = this.vertices; + for (var i = 0, n = vertices.length; i < n; i += 2) + { + var rawX = vertices[i], rawY = vertices[i + 1]; + var x = (a * rawX) + (c * rawY) + tx; + var y = (d * rawY) + (b * rawX) + ty; + + minX = x < minX ? x : minX; + minY = y < minY ? y : minY; + + maxX = x > maxX ? x : maxX; + maxY = y > maxY ? y : maxY; + } + + if (minX === -Infinity || maxY === Infinity) + { + return PIXI.EmptyRectangle; + } + + var bounds = this._bounds; + + bounds.x = minX; + bounds.width = maxX - minX; + + bounds.y = minY; + bounds.height = maxY - minY; + + // store a reference so that if this function gets called again in the render cycle we do not have to recalculate + this._currentBounds = bounds; + + return bounds; +}; + +/** + * Different drawing buffer modes supported + * + * @property + * @type {{TRIANGLE_STRIP: number, TRIANGLES: number}} + * @static + */ +PIXI.Strip.DrawModes = { + TRIANGLE_STRIP: 0, + TRIANGLES: 1 +}; + +/** + * @author Mat Groves http://matgroves.com/ @Doormat23 + * @copyright Mat Groves, Rovanion Luckey + */ + +/** + * + * @class Rope + * @constructor + * @extends Strip + * @param {Texture} texture - The texture to use on the rope. + * @param {Array} points - An array of {PIXI.Point}. + * + */ +PIXI.Rope = function(texture, points) +{ + PIXI.Strip.call( this, texture ); + this.points = points; + + this.vertices = new PIXI.Float32Array(points.length * 4); + this.uvs = new PIXI.Float32Array(points.length * 4); + this.colors = new PIXI.Float32Array(points.length * 2); + this.indices = new PIXI.Uint16Array(points.length * 2); + + + this.refresh(); +}; + + +// constructor +PIXI.Rope.prototype = Object.create( PIXI.Strip.prototype ); +PIXI.Rope.prototype.constructor = PIXI.Rope; + +/* + * Refreshes + * + * @method refresh + */ +PIXI.Rope.prototype.refresh = function() +{ + var points = this.points; + if(points.length < 1) return; + + var uvs = this.uvs; + + var lastPoint = points[0]; + var indices = this.indices; + var colors = this.colors; + + this.count-=0.2; + + uvs[0] = 0; + uvs[1] = 0; + uvs[2] = 0; + uvs[3] = 1; + + colors[0] = 1; + colors[1] = 1; + + indices[0] = 0; + indices[1] = 1; + + var total = points.length, + point, index, amount; + + for (var i = 1; i < total; i++) + { + point = points[i]; + index = i * 4; + // time to do some smart drawing! + amount = i / (total-1); + + if(i%2) + { + uvs[index] = amount; + uvs[index+1] = 0; + + uvs[index+2] = amount; + uvs[index+3] = 1; + } + else + { + uvs[index] = amount; + uvs[index+1] = 0; + + uvs[index+2] = amount; + uvs[index+3] = 1; + } + + index = i * 2; + colors[index] = 1; + colors[index+1] = 1; + + index = i * 2; + indices[index] = index; + indices[index + 1] = index + 1; + + lastPoint = point; + } +}; + +/* + * Updates the object transform for rendering + * + * @method updateTransform + * @private + */ +PIXI.Rope.prototype.updateTransform = function() +{ + + var points = this.points; + if(points.length < 1)return; + + var lastPoint = points[0]; + var nextPoint; + var perp = {x:0, y:0}; + + this.count-=0.2; + + var vertices = this.vertices; + var total = points.length, + point, index, ratio, perpLength, num; + + for (var i = 0; i < total; i++) + { + point = points[i]; + index = i * 4; + + if(i < points.length-1) + { + nextPoint = points[i+1]; + } + else + { + nextPoint = point; + } + + perp.y = -(nextPoint.x - lastPoint.x); + perp.x = nextPoint.y - lastPoint.y; + + ratio = (1 - (i / (total-1))) * 10; + + if(ratio > 1) ratio = 1; + + perpLength = Math.sqrt(perp.x * perp.x + perp.y * perp.y); + num = this.texture.height / 2; //(20 + Math.abs(Math.sin((i + this.count) * 0.3) * 50) )* ratio; + perp.x /= perpLength; + perp.y /= perpLength; + + perp.x *= num; + perp.y *= num; + + vertices[index] = point.x + perp.x; + vertices[index+1] = point.y + perp.y; + vertices[index+2] = point.x - perp.x; + vertices[index+3] = point.y - perp.y; + + lastPoint = point; + } + + PIXI.DisplayObjectContainer.prototype.updateTransform.call( this ); +}; +/* + * Sets the texture that the Rope will use + * + * @method setTexture + * @param texture {Texture} the texture that will be used + */ +PIXI.Rope.prototype.setTexture = function(texture) +{ + // stop current texture + this.texture = texture; + //this.updateFrame = true; +}; + +/** + * @author Mat Groves http://matgroves.com/ + */ + +/** + * A tiling sprite is a fast way of rendering a tiling image + * + * @class TilingSprite + * @extends Sprite + * @constructor + * @param texture {Texture} the texture of the tiling sprite + * @param width {Number} the width of the tiling sprite + * @param height {Number} the height of the tiling sprite + */ +PIXI.TilingSprite = function(texture, width, height) +{ + PIXI.Sprite.call(this, texture); + + /** + * The width of the tiling sprite + * + * @property width + * @type Number + */ + this._width = width || 128; + + /** + * The height of the tiling sprite + * + * @property height + * @type Number + */ + this._height = height || 128; + + /** + * The scaling of the image that is being tiled + * + * @property tileScale + * @type Point + */ + this.tileScale = new PIXI.Point(1, 1); + + /** + * A point that represents the scale of the texture object + * + * @property tileScaleOffset + * @type Point + */ + this.tileScaleOffset = new PIXI.Point(1, 1); + + /** + * The offset position of the image that is being tiled + * + * @property tilePosition + * @type Point + */ + this.tilePosition = new PIXI.Point(); + + /** + * Whether this sprite is renderable or not + * + * @property renderable + * @type Boolean + * @default true + */ + this.renderable = true; + + /** + * The tint applied to the sprite. This is a hex value + * + * @property tint + * @type Number + * @default 0xFFFFFF + */ + this.tint = 0xFFFFFF; + + /** + * If enabled a green rectangle will be drawn behind the generated tiling texture, allowing you to visually + * debug the texture being used. + * + * @property textureDebug + * @type Boolean + */ + this.textureDebug = false; + + /** + * The blend mode to be applied to the sprite + * + * @property blendMode + * @type Number + * @default PIXI.blendModes.NORMAL; + */ + this.blendMode = PIXI.blendModes.NORMAL; + + /** + * The CanvasBuffer object that the tiled texture is drawn to. + * + * @property canvasBuffer + * @type PIXI.CanvasBuffer + */ + this.canvasBuffer = null; + + /** + * An internal Texture object that holds the tiling texture that was generated from TilingSprite.texture. + * + * @property tilingTexture + * @type PIXI.Texture + */ + this.tilingTexture = null; + + /** + * The Context fill pattern that is used to draw the TilingSprite in Canvas mode only (will be null in WebGL). + * + * @property tilePattern + * @type PIXI.Texture + */ + this.tilePattern = null; + + /** + * If true the TilingSprite will run generateTexture on its **next** render pass. + * This is set by the likes of Phaser.LoadTexture.setFrame. + * + * @property refreshTexture + * @type Boolean + * @default true + */ + this.refreshTexture = true; + + this.frameWidth = 0; + this.frameHeight = 0; + +}; + +PIXI.TilingSprite.prototype = Object.create(PIXI.Sprite.prototype); +PIXI.TilingSprite.prototype.constructor = PIXI.TilingSprite; + +PIXI.TilingSprite.prototype.setTexture = function(texture) +{ + if (this.texture !== texture) + { + this.texture = texture; + this.refreshTexture = true; + this.cachedTint = 0xFFFFFF; + } + +}; + +/** +* Renders the object using the WebGL renderer +* +* @method _renderWebGL +* @param renderSession {RenderSession} +* @private +*/ +PIXI.TilingSprite.prototype._renderWebGL = function(renderSession) +{ + if (this.visible === false || this.alpha === 0) + { + return; + } + + if (this._mask) + { + renderSession.spriteBatch.stop(); + renderSession.maskManager.pushMask(this.mask, renderSession); + renderSession.spriteBatch.start(); + } + + if (this._filters) + { + renderSession.spriteBatch.flush(); + renderSession.filterManager.pushFilter(this._filterBlock); + } + + if (this.refreshTexture) + { + this.generateTilingTexture(true); + + if (this.tilingTexture) + { + if (this.tilingTexture.needsUpdate) + { + renderSession.renderer.updateTexture(this.tilingTexture.baseTexture); + this.tilingTexture.needsUpdate = false; + } + } + else + { + return; + } + } + + renderSession.spriteBatch.renderTilingSprite(this); + + for (var i = 0; i < this.children.length; i++) + { + this.children[i]._renderWebGL(renderSession); + } + + renderSession.spriteBatch.stop(); + + if (this._filters) + { + renderSession.filterManager.popFilter(); + } + + if (this._mask) + { + renderSession.maskManager.popMask(this._mask, renderSession); + } + + renderSession.spriteBatch.start(); + +}; + +/** +* Renders the object using the Canvas renderer +* +* @method _renderCanvas +* @param renderSession {RenderSession} +* @private +*/ +PIXI.TilingSprite.prototype._renderCanvas = function(renderSession) +{ + if (this.visible === false || this.alpha === 0) + { + return; + } + + var context = renderSession.context; + + if (this._mask) + { + renderSession.maskManager.pushMask(this._mask, renderSession); + } + + context.globalAlpha = this.worldAlpha; + + var wt = this.worldTransform; + var resolution = renderSession.resolution; + + context.setTransform(wt.a * resolution, + wt.b * resolution, + wt.c * resolution, + wt.d * resolution, + wt.tx * resolution, + wt.ty * resolution); + + if (this.refreshTexture) + { + this.generateTilingTexture(false); + + if (this.tilingTexture) + { + this.tilePattern = context.createPattern(this.tilingTexture.baseTexture.source, 'repeat'); + } + else + { + return; + } + } + + var sessionBlendMode = renderSession.currentBlendMode; + + // Check blend mode + if (this.blendMode !== renderSession.currentBlendMode) + { + renderSession.currentBlendMode = this.blendMode; + context.globalCompositeOperation = PIXI.blendModesCanvas[renderSession.currentBlendMode]; + } + + var tilePosition = this.tilePosition; + var tileScale = this.tileScale; + + tilePosition.x %= this.tilingTexture.baseTexture.width; + tilePosition.y %= this.tilingTexture.baseTexture.height; + + // Translate + context.scale(tileScale.x, tileScale.y); + context.translate(tilePosition.x + (this.anchor.x * -this._width), tilePosition.y + (this.anchor.y * -this._height)); + + context.fillStyle = this.tilePattern; + + var tx = -tilePosition.x; + var ty = -tilePosition.y; + var tw = this._width / tileScale.x; + var th = this._height / tileScale.y; + + // Allow for pixel rounding + if (renderSession.roundPixels) + { + tx | 0; + ty | 0; + tw | 0; + th | 0; + } + + context.fillRect(tx, ty, tw, th); + + // Translate back again + context.scale(1 / tileScale.x, 1 / tileScale.y); + context.translate(-tilePosition.x + (this.anchor.x * this._width), -tilePosition.y + (this.anchor.y * this._height)); + + if (this._mask) + { + renderSession.maskManager.popMask(renderSession); + } + + for (var i = 0; i < this.children.length; i++) + { + this.children[i]._renderCanvas(renderSession); + } + + // Reset blend mode + if (sessionBlendMode !== this.blendMode) + { + renderSession.currentBlendMode = sessionBlendMode; + context.globalCompositeOperation = PIXI.blendModesCanvas[sessionBlendMode]; + } + +}; + +/** + * When the texture is updated, this event will fire to update the scale and frame + * + * @method onTextureUpdate + * @param event + * @private + */ +PIXI.TilingSprite.prototype.onTextureUpdate = function() +{ + // overriding the sprite version of this! +}; + +/** +* +* @method generateTilingTexture +* +* @param forcePowerOfTwo {Boolean} Whether we want to force the texture to be a power of two +*/ +PIXI.TilingSprite.prototype.generateTilingTexture = function(forcePowerOfTwo) +{ + if (!this.texture.baseTexture.hasLoaded) + { + return; + } + + var texture = this.texture; + var frame = texture.frame; + + var targetWidth = this._frame.sourceSizeW; + var targetHeight = this._frame.sourceSizeH; + + var dx = 0; + var dy = 0; + + if (this._frame.trimmed) + { + dx = this._frame.spriteSourceSizeX; + dy = this._frame.spriteSourceSizeY; + } + + if (forcePowerOfTwo) + { + targetWidth = PIXI.getNextPowerOfTwo(targetWidth); + targetHeight = PIXI.getNextPowerOfTwo(targetHeight); + } + + if (this.canvasBuffer) + { + this.canvasBuffer.resize(targetWidth, targetHeight); + this.tilingTexture.baseTexture.width = targetWidth; + this.tilingTexture.baseTexture.height = targetHeight; + this.tilingTexture.needsUpdate = true; + } + else + { + this.canvasBuffer = new PIXI.CanvasBuffer(targetWidth, targetHeight); + this.tilingTexture = PIXI.Texture.fromCanvas(this.canvasBuffer.canvas); + this.tilingTexture = PIXI.Texture.fromCanvas(this.canvasBuffer.canvas); + this.tilingTexture.isTiling = true; + this.tilingTexture.needsUpdate = true; + } + + if (this.textureDebug) + { + this.canvasBuffer.context.strokeStyle = '#00ff00'; + this.canvasBuffer.context.strokeRect(0, 0, targetWidth, targetHeight); + } + + // If a sprite sheet we need this: + var w = texture.crop.width; + var h = texture.crop.height; + + if (w !== targetWidth || h !== targetHeight) + { + w = targetWidth; + h = targetHeight; + } + + this.canvasBuffer.context.drawImage(texture.baseTexture.source, + texture.crop.x, + texture.crop.y, + texture.crop.width, + texture.crop.height, + dx, + dy, + w, + h); + + this.tileScaleOffset.x = frame.width / targetWidth; + this.tileScaleOffset.y = frame.height / targetHeight; + + this.refreshTexture = false; + + this.tilingTexture.baseTexture._powerOf2 = true; + +}; + +/** +* Returns the framing rectangle of the sprite as a PIXI.Rectangle object +* +* @method getBounds +* @return {Rectangle} the framing rectangle +*/ +PIXI.TilingSprite.prototype.getBounds = function() +{ + var width = this._width; + var height = this._height; + + var w0 = width * (1-this.anchor.x); + var w1 = width * -this.anchor.x; + + var h0 = height * (1-this.anchor.y); + var h1 = height * -this.anchor.y; + + var worldTransform = this.worldTransform; + + var a = worldTransform.a; + var b = worldTransform.b; + var c = worldTransform.c; + var d = worldTransform.d; + var tx = worldTransform.tx; + var ty = worldTransform.ty; + + var x1 = a * w1 + c * h1 + tx; + var y1 = d * h1 + b * w1 + ty; + + var x2 = a * w0 + c * h1 + tx; + var y2 = d * h1 + b * w0 + ty; + + var x3 = a * w0 + c * h0 + tx; + var y3 = d * h0 + b * w0 + ty; + + var x4 = a * w1 + c * h0 + tx; + var y4 = d * h0 + b * w1 + ty; + + var maxX = -Infinity; + var maxY = -Infinity; + + var minX = Infinity; + var minY = Infinity; + + minX = x1 < minX ? x1 : minX; + minX = x2 < minX ? x2 : minX; + minX = x3 < minX ? x3 : minX; + minX = x4 < minX ? x4 : minX; + + minY = y1 < minY ? y1 : minY; + minY = y2 < minY ? y2 : minY; + minY = y3 < minY ? y3 : minY; + minY = y4 < minY ? y4 : minY; + + maxX = x1 > maxX ? x1 : maxX; + maxX = x2 > maxX ? x2 : maxX; + maxX = x3 > maxX ? x3 : maxX; + maxX = x4 > maxX ? x4 : maxX; + + maxY = y1 > maxY ? y1 : maxY; + maxY = y2 > maxY ? y2 : maxY; + maxY = y3 > maxY ? y3 : maxY; + maxY = y4 > maxY ? y4 : maxY; + + var bounds = this._bounds; + + bounds.x = minX; + bounds.width = maxX - minX; + + bounds.y = minY; + bounds.height = maxY - minY; + + // store a reference so that if this function gets called again in the render cycle we do not have to recalculate + this._currentBounds = bounds; + + return bounds; +}; + +PIXI.TilingSprite.prototype.destroy = function () { + + PIXI.Sprite.prototype.destroy.call(this); + + this.tileScale = null; + this.tileScaleOffset = null; + this.tilePosition = null; + + if (this.tilingTexture) + { + this.tilingTexture.destroy(true); + this.tilingTexture = null; + } + +}; + +/** + * The width of the sprite, setting this will actually modify the scale to achieve the value set + * + * @property width + * @type Number + */ +Object.defineProperty(PIXI.TilingSprite.prototype, 'width', { + + get: function() { + return this._width; + }, + + set: function(value) { + this._width = value; + } + +}); + +/** + * The height of the TilingSprite, setting this will actually modify the scale to achieve the value set + * + * @property height + * @type Number + */ +Object.defineProperty(PIXI.TilingSprite.prototype, 'height', { + + get: function() { + return this._height; + }, + + set: function(value) { + this._height = value; + } + +}); + /** * @author Mat Groves http://matgroves.com/ @Doormat23 */ @@ -9186,7 +10380,7 @@ var Phaser = Phaser || { * @constant * @type {string} */ - VERSION: '2.4.0', + VERSION: '2.4.1', /** * An array of Phaser game instances. @@ -34618,6 +35812,39 @@ Phaser.GameObjectFactory.prototype = { }, + /** + * Create a new Creature Animation object. + * + * Creature is a custom Game Object used in conjunction with the Creature Runtime libraries by Kestrel Moon Studios. + * + * It allows you to display animated Game Objects that were created with the [Creature Automated Animation Tool](http://www.kestrelmoon.com/creature/). + * + * Note 1: You can only use Phaser.Creature objects in WebGL enabled games. They do not work in Canvas mode games. + * + * Note 2: You must use a build of Phaser that includes the CreatureMeshBone.js runtime and gl-matrix.js, or have them + * loaded before your Phaser game boots. + * + * See the Phaser custom build process for more details. + * + * @method Phaser.GameObjectFactory#creature + * @param {number} [x=0] - The x coordinate of the creature. The coordinate is relative to any parent container this creature may be in. + * @param {number} [y=0] - The y coordinate of the creature. The coordinate is relative to any parent container this creature may be in. + * @param {string|PIXI.Texture} [key] - The image used as a texture by this creature object during rendering. If a string Phaser will get for an entry in the Image Cache. Or it can be an instance of a PIXI.Texture. + * @param {Phaser.Group} [group] - Optional Group to add the object to. If not specified it will be added to the World group. + * @returns {Phaser.Creature} The newly created Sprite object. + */ + creature: function (x, y, key, mesh, group) { + + if (group === undefined) { group = this.world; } + + var obj = new Phaser.Creature(this.game, x, y, key, mesh); + + group.add(obj); + + return obj; + + }, + /** * Create a tween on a specific object. * @@ -43777,651 +45004,6 @@ Object.defineProperty(Phaser.RetroFont.prototype, "smoothed", { }); -/** - * @author Mat Groves http://matgroves.com/ - */ - - /** - * - * @class Strip - * @extends DisplayObjectContainer - * @constructor - * @param texture {Texture} The texture to use - * @param width {Number} the width - * @param height {Number} the height - * - */ -PIXI.Strip = function(texture) -{ - PIXI.DisplayObjectContainer.call( this ); - - - /** - * The texture of the strip - * - * @property texture - * @type Texture - */ - this.texture = texture; - - // set up the main bits.. - this.uvs = new PIXI.Float32Array([0, 1, - 1, 1, - 1, 0, - 0, 1]); - - this.vertices = new PIXI.Float32Array([0, 0, - 100, 0, - 100, 100, - 0, 100]); - - this.colors = new PIXI.Float32Array([1, 1, 1, 1]); - - this.indices = new PIXI.Uint16Array([0, 1, 2, 3]); - - /** - * Whether the strip is dirty or not - * - * @property dirty - * @type Boolean - */ - this.dirty = true; - - /** - * The blend mode to be applied to the sprite. Set to PIXI.blendModes.NORMAL to remove any blend mode. - * - * @property blendMode - * @type Number - * @default PIXI.blendModes.NORMAL; - */ - this.blendMode = PIXI.blendModes.NORMAL; - - /** - * Triangles in canvas mode are automatically antialiased, use this value to force triangles to overlap a bit with each other. - * - * @property canvasPadding - * @type Number - */ - this.canvasPadding = 0; - - this.drawMode = PIXI.Strip.DrawModes.TRIANGLE_STRIP; - -}; - -// constructor -PIXI.Strip.prototype = Object.create(PIXI.DisplayObjectContainer.prototype); -PIXI.Strip.prototype.constructor = PIXI.Strip; - -PIXI.Strip.prototype._renderWebGL = function(renderSession) -{ - // if the sprite is not visible or the alpha is 0 then no need to render this element - if(!this.visible || this.alpha <= 0)return; - // render triangle strip.. - - renderSession.spriteBatch.stop(); - - // init! init! - if(!this._vertexBuffer)this._initWebGL(renderSession); - - renderSession.shaderManager.setShader(renderSession.shaderManager.stripShader); - - this._renderStrip(renderSession); - - ///renderSession.shaderManager.activateDefaultShader(); - - renderSession.spriteBatch.start(); - - //TODO check culling -}; - -PIXI.Strip.prototype._initWebGL = function(renderSession) -{ - // build the strip! - var gl = renderSession.gl; - - this._vertexBuffer = gl.createBuffer(); - this._indexBuffer = gl.createBuffer(); - this._uvBuffer = gl.createBuffer(); - this._colorBuffer = gl.createBuffer(); - - gl.bindBuffer(gl.ARRAY_BUFFER, this._vertexBuffer); - gl.bufferData(gl.ARRAY_BUFFER, this.vertices, gl.DYNAMIC_DRAW); - - gl.bindBuffer(gl.ARRAY_BUFFER, this._uvBuffer); - gl.bufferData(gl.ARRAY_BUFFER, this.uvs, gl.STATIC_DRAW); - - gl.bindBuffer(gl.ARRAY_BUFFER, this._colorBuffer); - gl.bufferData(gl.ARRAY_BUFFER, this.colors, gl.STATIC_DRAW); - - gl.bindBuffer(gl.ELEMENT_ARRAY_BUFFER, this._indexBuffer); - gl.bufferData(gl.ELEMENT_ARRAY_BUFFER, this.indices, gl.STATIC_DRAW); -}; - -PIXI.Strip.prototype._renderStrip = function(renderSession) -{ - var gl = renderSession.gl; - var projection = renderSession.projection, - offset = renderSession.offset, - shader = renderSession.shaderManager.stripShader; - - var drawMode = this.drawMode === PIXI.Strip.DrawModes.TRIANGLE_STRIP ? gl.TRIANGLE_STRIP : gl.TRIANGLES; - - // gl.uniformMatrix4fv(shaderProgram.mvMatrixUniform, false, mat4Real); - - renderSession.blendModeManager.setBlendMode(this.blendMode); - - - // set uniforms - gl.uniformMatrix3fv(shader.translationMatrix, false, this.worldTransform.toArray(true)); - gl.uniform2f(shader.projectionVector, projection.x, -projection.y); - gl.uniform2f(shader.offsetVector, -offset.x, -offset.y); - gl.uniform1f(shader.alpha, this.worldAlpha); - - if(!this.dirty) - { - - gl.bindBuffer(gl.ARRAY_BUFFER, this._vertexBuffer); - gl.bufferSubData(gl.ARRAY_BUFFER, 0, this.vertices); - gl.vertexAttribPointer(shader.aVertexPosition, 2, gl.FLOAT, false, 0, 0); - - // update the uvs - gl.bindBuffer(gl.ARRAY_BUFFER, this._uvBuffer); - gl.vertexAttribPointer(shader.aTextureCoord, 2, gl.FLOAT, false, 0, 0); - - gl.activeTexture(gl.TEXTURE0); - - // check if a texture is dirty.. - if(this.texture.baseTexture._dirty[gl.id]) - { - renderSession.renderer.updateTexture(this.texture.baseTexture); - } - else - { - // bind the current texture - gl.bindTexture(gl.TEXTURE_2D, this.texture.baseTexture._glTextures[gl.id]); - } - - // dont need to upload! - gl.bindBuffer(gl.ELEMENT_ARRAY_BUFFER, this._indexBuffer); - - - } - else - { - - this.dirty = false; - gl.bindBuffer(gl.ARRAY_BUFFER, this._vertexBuffer); - gl.bufferData(gl.ARRAY_BUFFER, this.vertices, gl.STATIC_DRAW); - gl.vertexAttribPointer(shader.aVertexPosition, 2, gl.FLOAT, false, 0, 0); - - // update the uvs - gl.bindBuffer(gl.ARRAY_BUFFER, this._uvBuffer); - gl.bufferData(gl.ARRAY_BUFFER, this.uvs, gl.STATIC_DRAW); - gl.vertexAttribPointer(shader.aTextureCoord, 2, gl.FLOAT, false, 0, 0); - - gl.activeTexture(gl.TEXTURE0); - - // check if a texture is dirty.. - if(this.texture.baseTexture._dirty[gl.id]) - { - renderSession.renderer.updateTexture(this.texture.baseTexture); - } - else - { - gl.bindTexture(gl.TEXTURE_2D, this.texture.baseTexture._glTextures[gl.id]); - } - - // dont need to upload! - gl.bindBuffer(gl.ELEMENT_ARRAY_BUFFER, this._indexBuffer); - gl.bufferData(gl.ELEMENT_ARRAY_BUFFER, this.indices, gl.STATIC_DRAW); - - } - //console.log(gl.TRIANGLE_STRIP) - // - // - gl.drawElements(drawMode, this.indices.length, gl.UNSIGNED_SHORT, 0); - - -}; - - - -PIXI.Strip.prototype._renderCanvas = function(renderSession) -{ - var context = renderSession.context; - - var transform = this.worldTransform; - - if (renderSession.roundPixels) - { - context.setTransform(transform.a, transform.b, transform.c, transform.d, transform.tx | 0, transform.ty | 0); - } - else - { - context.setTransform(transform.a, transform.b, transform.c, transform.d, transform.tx, transform.ty); - } - - if (this.drawMode === PIXI.Strip.DrawModes.TRIANGLE_STRIP) - { - this._renderCanvasTriangleStrip(context); - } - else - { - this._renderCanvasTriangles(context); - } -}; - -PIXI.Strip.prototype._renderCanvasTriangleStrip = function(context) -{ - // draw triangles!! - var vertices = this.vertices; - var uvs = this.uvs; - - var length = vertices.length / 2; - this.count++; - - for (var i = 0; i < length - 2; i++) { - // draw some triangles! - var index = i * 2; - this._renderCanvasDrawTriangle(context, vertices, uvs, index, (index + 2), (index + 4)); - } -}; - -PIXI.Strip.prototype._renderCanvasTriangles = function(context) -{ - // draw triangles!! - var vertices = this.vertices; - var uvs = this.uvs; - var indices = this.indices; - - var length = indices.length; - this.count++; - - for (var i = 0; i < length; i += 3) { - // draw some triangles! - var index0 = indices[i] * 2, index1 = indices[i + 1] * 2, index2 = indices[i + 2] * 2; - this._renderCanvasDrawTriangle(context, vertices, uvs, index0, index1, index2); - } -}; - -PIXI.Strip.prototype._renderCanvasDrawTriangle = function(context, vertices, uvs, index0, index1, index2) -{ - var textureSource = this.texture.baseTexture.source; - var textureWidth = this.texture.width; - var textureHeight = this.texture.height; - - var x0 = vertices[index0], x1 = vertices[index1], x2 = vertices[index2]; - var y0 = vertices[index0 + 1], y1 = vertices[index1 + 1], y2 = vertices[index2 + 1]; - - var u0 = uvs[index0] * textureWidth, u1 = uvs[index1] * textureWidth, u2 = uvs[index2] * textureWidth; - var v0 = uvs[index0 + 1] * textureHeight, v1 = uvs[index1 + 1] * textureHeight, v2 = uvs[index2 + 1] * textureHeight; - - if (this.canvasPadding > 0) { - var paddingX = this.canvasPadding / this.worldTransform.a; - var paddingY = this.canvasPadding / this.worldTransform.d; - var centerX = (x0 + x1 + x2) / 3; - var centerY = (y0 + y1 + y2) / 3; - - var normX = x0 - centerX; - var normY = y0 - centerY; - - var dist = Math.sqrt(normX * normX + normY * normY); - x0 = centerX + (normX / dist) * (dist + paddingX); - y0 = centerY + (normY / dist) * (dist + paddingY); - - // - - normX = x1 - centerX; - normY = y1 - centerY; - - dist = Math.sqrt(normX * normX + normY * normY); - x1 = centerX + (normX / dist) * (dist + paddingX); - y1 = centerY + (normY / dist) * (dist + paddingY); - - normX = x2 - centerX; - normY = y2 - centerY; - - dist = Math.sqrt(normX * normX + normY * normY); - x2 = centerX + (normX / dist) * (dist + paddingX); - y2 = centerY + (normY / dist) * (dist + paddingY); - } - - context.save(); - context.beginPath(); - - - context.moveTo(x0, y0); - context.lineTo(x1, y1); - context.lineTo(x2, y2); - - context.closePath(); - - context.clip(); - - // Compute matrix transform - var delta = (u0 * v1) + (v0 * u2) + (u1 * v2) - (v1 * u2) - (v0 * u1) - (u0 * v2); - var deltaA = (x0 * v1) + (v0 * x2) + (x1 * v2) - (v1 * x2) - (v0 * x1) - (x0 * v2); - var deltaB = (u0 * x1) + (x0 * u2) + (u1 * x2) - (x1 * u2) - (x0 * u1) - (u0 * x2); - var deltaC = (u0 * v1 * x2) + (v0 * x1 * u2) + (x0 * u1 * v2) - (x0 * v1 * u2) - (v0 * u1 * x2) - (u0 * x1 * v2); - var deltaD = (y0 * v1) + (v0 * y2) + (y1 * v2) - (v1 * y2) - (v0 * y1) - (y0 * v2); - var deltaE = (u0 * y1) + (y0 * u2) + (u1 * y2) - (y1 * u2) - (y0 * u1) - (u0 * y2); - var deltaF = (u0 * v1 * y2) + (v0 * y1 * u2) + (y0 * u1 * v2) - (y0 * v1 * u2) - (v0 * u1 * y2) - (u0 * y1 * v2); - - context.transform(deltaA / delta, deltaD / delta, - deltaB / delta, deltaE / delta, - deltaC / delta, deltaF / delta); - - context.drawImage(textureSource, 0, 0); - context.restore(); -}; - - - -/** - * Renders a flat strip - * - * @method renderStripFlat - * @param strip {Strip} The Strip to render - * @private - */ -PIXI.Strip.prototype.renderStripFlat = function(strip) -{ - var context = this.context; - var vertices = strip.vertices; - - var length = vertices.length/2; - this.count++; - - context.beginPath(); - for (var i=1; i < length-2; i++) - { - // draw some triangles! - var index = i*2; - - var x0 = vertices[index], x1 = vertices[index+2], x2 = vertices[index+4]; - var y0 = vertices[index+1], y1 = vertices[index+3], y2 = vertices[index+5]; - - context.moveTo(x0, y0); - context.lineTo(x1, y1); - context.lineTo(x2, y2); - } - - context.fillStyle = '#FF0000'; - context.fill(); - context.closePath(); -}; - -/* -PIXI.Strip.prototype.setTexture = function(texture) -{ - //TODO SET THE TEXTURES - //TODO VISIBILITY - - // stop current texture - this.texture = texture; - this.width = texture.frame.width; - this.height = texture.frame.height; - this.updateFrame = true; -}; -*/ - -/** - * When the texture is updated, this event will fire to update the scale and frame - * - * @method onTextureUpdate - * @param event - * @private - */ - -PIXI.Strip.prototype.onTextureUpdate = function() -{ - this.updateFrame = true; -}; - -/** - * Returns the bounds of the mesh as a rectangle. The bounds calculation takes the worldTransform into account. - * - * @method getBounds - * @param matrix {Matrix} the transformation matrix of the sprite - * @return {Rectangle} the framing rectangle - */ -PIXI.Strip.prototype.getBounds = function(matrix) -{ - var worldTransform = matrix || this.worldTransform; - - var a = worldTransform.a; - var b = worldTransform.b; - var c = worldTransform.c; - var d = worldTransform.d; - var tx = worldTransform.tx; - var ty = worldTransform.ty; - - var maxX = -Infinity; - var maxY = -Infinity; - - var minX = Infinity; - var minY = Infinity; - - var vertices = this.vertices; - for (var i = 0, n = vertices.length; i < n; i += 2) - { - var rawX = vertices[i], rawY = vertices[i + 1]; - var x = (a * rawX) + (c * rawY) + tx; - var y = (d * rawY) + (b * rawX) + ty; - - minX = x < minX ? x : minX; - minY = y < minY ? y : minY; - - maxX = x > maxX ? x : maxX; - maxY = y > maxY ? y : maxY; - } - - if (minX === -Infinity || maxY === Infinity) - { - return PIXI.EmptyRectangle; - } - - var bounds = this._bounds; - - bounds.x = minX; - bounds.width = maxX - minX; - - bounds.y = minY; - bounds.height = maxY - minY; - - // store a reference so that if this function gets called again in the render cycle we do not have to recalculate - this._currentBounds = bounds; - - return bounds; -}; - -/** - * Different drawing buffer modes supported - * - * @property - * @type {{TRIANGLE_STRIP: number, TRIANGLES: number}} - * @static - */ -PIXI.Strip.DrawModes = { - TRIANGLE_STRIP: 0, - TRIANGLES: 1 -}; - -/** - * @author Mat Groves http://matgroves.com/ @Doormat23 - * @copyright Mat Groves, Rovanion Luckey - */ - -/** - * - * @class Rope - * @constructor - * @extends Strip - * @param {Texture} texture - The texture to use on the rope. - * @param {Array} points - An array of {PIXI.Point}. - * - */ -PIXI.Rope = function(texture, points) -{ - PIXI.Strip.call( this, texture ); - this.points = points; - - this.vertices = new PIXI.Float32Array(points.length * 4); - this.uvs = new PIXI.Float32Array(points.length * 4); - this.colors = new PIXI.Float32Array(points.length * 2); - this.indices = new PIXI.Uint16Array(points.length * 2); - - - this.refresh(); -}; - - -// constructor -PIXI.Rope.prototype = Object.create( PIXI.Strip.prototype ); -PIXI.Rope.prototype.constructor = PIXI.Rope; - -/* - * Refreshes - * - * @method refresh - */ -PIXI.Rope.prototype.refresh = function() -{ - var points = this.points; - if(points.length < 1) return; - - var uvs = this.uvs; - - var lastPoint = points[0]; - var indices = this.indices; - var colors = this.colors; - - this.count-=0.2; - - uvs[0] = 0; - uvs[1] = 0; - uvs[2] = 0; - uvs[3] = 1; - - colors[0] = 1; - colors[1] = 1; - - indices[0] = 0; - indices[1] = 1; - - var total = points.length, - point, index, amount; - - for (var i = 1; i < total; i++) - { - point = points[i]; - index = i * 4; - // time to do some smart drawing! - amount = i / (total-1); - - if(i%2) - { - uvs[index] = amount; - uvs[index+1] = 0; - - uvs[index+2] = amount; - uvs[index+3] = 1; - } - else - { - uvs[index] = amount; - uvs[index+1] = 0; - - uvs[index+2] = amount; - uvs[index+3] = 1; - } - - index = i * 2; - colors[index] = 1; - colors[index+1] = 1; - - index = i * 2; - indices[index] = index; - indices[index + 1] = index + 1; - - lastPoint = point; - } -}; - -/* - * Updates the object transform for rendering - * - * @method updateTransform - * @private - */ -PIXI.Rope.prototype.updateTransform = function() -{ - - var points = this.points; - if(points.length < 1)return; - - var lastPoint = points[0]; - var nextPoint; - var perp = {x:0, y:0}; - - this.count-=0.2; - - var vertices = this.vertices; - var total = points.length, - point, index, ratio, perpLength, num; - - for (var i = 0; i < total; i++) - { - point = points[i]; - index = i * 4; - - if(i < points.length-1) - { - nextPoint = points[i+1]; - } - else - { - nextPoint = point; - } - - perp.y = -(nextPoint.x - lastPoint.x); - perp.x = nextPoint.y - lastPoint.y; - - ratio = (1 - (i / (total-1))) * 10; - - if(ratio > 1) ratio = 1; - - perpLength = Math.sqrt(perp.x * perp.x + perp.y * perp.y); - num = this.texture.height / 2; //(20 + Math.abs(Math.sin((i + this.count) * 0.3) * 50) )* ratio; - perp.x /= perpLength; - perp.y /= perpLength; - - perp.x *= num; - perp.y *= num; - - vertices[index] = point.x + perp.x; - vertices[index+1] = point.y + perp.y; - vertices[index+2] = point.x - perp.x; - vertices[index+3] = point.y - perp.y; - - lastPoint = point; - } - - PIXI.DisplayObjectContainer.prototype.updateTransform.call( this ); -}; -/* - * Sets the texture that the Rope will use - * - * @method setTexture - * @param texture {Texture} the texture that will be used - */ -PIXI.Rope.prototype.setTexture = function(texture) -{ - // stop current texture - this.texture = texture; - //this.updateFrame = true; -}; - /** * @author Richard Davey * @copyright 2015 Photon Storm Ltd, Richard Davey @@ -44651,555 +45233,6 @@ Object.defineProperty(Phaser.Rope.prototype, "segments", { }); -/** - * @author Mat Groves http://matgroves.com/ - */ - -/** - * A tiling sprite is a fast way of rendering a tiling image - * - * @class TilingSprite - * @extends Sprite - * @constructor - * @param texture {Texture} the texture of the tiling sprite - * @param width {Number} the width of the tiling sprite - * @param height {Number} the height of the tiling sprite - */ -PIXI.TilingSprite = function(texture, width, height) -{ - PIXI.Sprite.call(this, texture); - - /** - * The width of the tiling sprite - * - * @property width - * @type Number - */ - this._width = width || 128; - - /** - * The height of the tiling sprite - * - * @property height - * @type Number - */ - this._height = height || 128; - - /** - * The scaling of the image that is being tiled - * - * @property tileScale - * @type Point - */ - this.tileScale = new PIXI.Point(1, 1); - - /** - * A point that represents the scale of the texture object - * - * @property tileScaleOffset - * @type Point - */ - this.tileScaleOffset = new PIXI.Point(1, 1); - - /** - * The offset position of the image that is being tiled - * - * @property tilePosition - * @type Point - */ - this.tilePosition = new PIXI.Point(); - - /** - * Whether this sprite is renderable or not - * - * @property renderable - * @type Boolean - * @default true - */ - this.renderable = true; - - /** - * The tint applied to the sprite. This is a hex value - * - * @property tint - * @type Number - * @default 0xFFFFFF - */ - this.tint = 0xFFFFFF; - - /** - * If enabled a green rectangle will be drawn behind the generated tiling texture, allowing you to visually - * debug the texture being used. - * - * @property textureDebug - * @type Boolean - */ - this.textureDebug = false; - - /** - * The blend mode to be applied to the sprite - * - * @property blendMode - * @type Number - * @default PIXI.blendModes.NORMAL; - */ - this.blendMode = PIXI.blendModes.NORMAL; - - /** - * The CanvasBuffer object that the tiled texture is drawn to. - * - * @property canvasBuffer - * @type PIXI.CanvasBuffer - */ - this.canvasBuffer = null; - - /** - * An internal Texture object that holds the tiling texture that was generated from TilingSprite.texture. - * - * @property tilingTexture - * @type PIXI.Texture - */ - this.tilingTexture = null; - - /** - * The Context fill pattern that is used to draw the TilingSprite in Canvas mode only (will be null in WebGL). - * - * @property tilePattern - * @type PIXI.Texture - */ - this.tilePattern = null; - - /** - * If true the TilingSprite will run generateTexture on its **next** render pass. - * This is set by the likes of Phaser.LoadTexture.setFrame. - * - * @property refreshTexture - * @type Boolean - * @default true - */ - this.refreshTexture = true; - - this.frameWidth = 0; - this.frameHeight = 0; - -}; - -PIXI.TilingSprite.prototype = Object.create(PIXI.Sprite.prototype); -PIXI.TilingSprite.prototype.constructor = PIXI.TilingSprite; - -PIXI.TilingSprite.prototype.setTexture = function(texture) -{ - if (this.texture !== texture) - { - this.texture = texture; - this.refreshTexture = true; - this.cachedTint = 0xFFFFFF; - } - -}; - -/** -* Renders the object using the WebGL renderer -* -* @method _renderWebGL -* @param renderSession {RenderSession} -* @private -*/ -PIXI.TilingSprite.prototype._renderWebGL = function(renderSession) -{ - if (this.visible === false || this.alpha === 0) - { - return; - } - - if (this._mask) - { - renderSession.spriteBatch.stop(); - renderSession.maskManager.pushMask(this.mask, renderSession); - renderSession.spriteBatch.start(); - } - - if (this._filters) - { - renderSession.spriteBatch.flush(); - renderSession.filterManager.pushFilter(this._filterBlock); - } - - if (this.refreshTexture) - { - this.generateTilingTexture(true); - - if (this.tilingTexture) - { - if (this.tilingTexture.needsUpdate) - { - renderSession.renderer.updateTexture(this.tilingTexture.baseTexture); - this.tilingTexture.needsUpdate = false; - } - } - else - { - return; - } - } - - renderSession.spriteBatch.renderTilingSprite(this); - - for (var i = 0; i < this.children.length; i++) - { - this.children[i]._renderWebGL(renderSession); - } - - renderSession.spriteBatch.stop(); - - if (this._filters) - { - renderSession.filterManager.popFilter(); - } - - if (this._mask) - { - renderSession.maskManager.popMask(this._mask, renderSession); - } - - renderSession.spriteBatch.start(); - -}; - -/** -* Renders the object using the Canvas renderer -* -* @method _renderCanvas -* @param renderSession {RenderSession} -* @private -*/ -PIXI.TilingSprite.prototype._renderCanvas = function(renderSession) -{ - if (this.visible === false || this.alpha === 0) - { - return; - } - - var context = renderSession.context; - - if (this._mask) - { - renderSession.maskManager.pushMask(this._mask, renderSession); - } - - context.globalAlpha = this.worldAlpha; - - var wt = this.worldTransform; - var resolution = renderSession.resolution; - - context.setTransform(wt.a * resolution, - wt.b * resolution, - wt.c * resolution, - wt.d * resolution, - wt.tx * resolution, - wt.ty * resolution); - - if (this.refreshTexture) - { - this.generateTilingTexture(false); - - if (this.tilingTexture) - { - this.tilePattern = context.createPattern(this.tilingTexture.baseTexture.source, 'repeat'); - } - else - { - return; - } - } - - var sessionBlendMode = renderSession.currentBlendMode; - - // Check blend mode - if (this.blendMode !== renderSession.currentBlendMode) - { - renderSession.currentBlendMode = this.blendMode; - context.globalCompositeOperation = PIXI.blendModesCanvas[renderSession.currentBlendMode]; - } - - var tilePosition = this.tilePosition; - var tileScale = this.tileScale; - - tilePosition.x %= this.tilingTexture.baseTexture.width; - tilePosition.y %= this.tilingTexture.baseTexture.height; - - // Translate - context.scale(tileScale.x, tileScale.y); - context.translate(tilePosition.x + (this.anchor.x * -this._width), tilePosition.y + (this.anchor.y * -this._height)); - - context.fillStyle = this.tilePattern; - - var tx = -tilePosition.x; - var ty = -tilePosition.y; - var tw = this._width / tileScale.x; - var th = this._height / tileScale.y; - - // Allow for pixel rounding - if (renderSession.roundPixels) - { - tx | 0; - ty | 0; - tw | 0; - th | 0; - } - - context.fillRect(tx, ty, tw, th); - - // Translate back again - context.scale(1 / tileScale.x, 1 / tileScale.y); - context.translate(-tilePosition.x + (this.anchor.x * this._width), -tilePosition.y + (this.anchor.y * this._height)); - - if (this._mask) - { - renderSession.maskManager.popMask(renderSession); - } - - for (var i = 0; i < this.children.length; i++) - { - this.children[i]._renderCanvas(renderSession); - } - - // Reset blend mode - if (sessionBlendMode !== this.blendMode) - { - renderSession.currentBlendMode = sessionBlendMode; - context.globalCompositeOperation = PIXI.blendModesCanvas[sessionBlendMode]; - } - -}; - -/** - * When the texture is updated, this event will fire to update the scale and frame - * - * @method onTextureUpdate - * @param event - * @private - */ -PIXI.TilingSprite.prototype.onTextureUpdate = function() -{ - // overriding the sprite version of this! -}; - -/** -* -* @method generateTilingTexture -* -* @param forcePowerOfTwo {Boolean} Whether we want to force the texture to be a power of two -*/ -PIXI.TilingSprite.prototype.generateTilingTexture = function(forcePowerOfTwo) -{ - if (!this.texture.baseTexture.hasLoaded) - { - return; - } - - var texture = this.texture; - var frame = texture.frame; - - var targetWidth = this._frame.sourceSizeW; - var targetHeight = this._frame.sourceSizeH; - - var dx = 0; - var dy = 0; - - if (this._frame.trimmed) - { - dx = this._frame.spriteSourceSizeX; - dy = this._frame.spriteSourceSizeY; - } - - if (forcePowerOfTwo) - { - targetWidth = PIXI.getNextPowerOfTwo(targetWidth); - targetHeight = PIXI.getNextPowerOfTwo(targetHeight); - } - - if (this.canvasBuffer) - { - this.canvasBuffer.resize(targetWidth, targetHeight); - this.tilingTexture.baseTexture.width = targetWidth; - this.tilingTexture.baseTexture.height = targetHeight; - this.tilingTexture.needsUpdate = true; - } - else - { - this.canvasBuffer = new PIXI.CanvasBuffer(targetWidth, targetHeight); - this.tilingTexture = PIXI.Texture.fromCanvas(this.canvasBuffer.canvas); - this.tilingTexture = PIXI.Texture.fromCanvas(this.canvasBuffer.canvas); - this.tilingTexture.isTiling = true; - this.tilingTexture.needsUpdate = true; - } - - if (this.textureDebug) - { - this.canvasBuffer.context.strokeStyle = '#00ff00'; - this.canvasBuffer.context.strokeRect(0, 0, targetWidth, targetHeight); - } - - // If a sprite sheet we need this: - var w = texture.crop.width; - var h = texture.crop.height; - - if (w !== targetWidth || h !== targetHeight) - { - w = targetWidth; - h = targetHeight; - } - - this.canvasBuffer.context.drawImage(texture.baseTexture.source, - texture.crop.x, - texture.crop.y, - texture.crop.width, - texture.crop.height, - dx, - dy, - w, - h); - - this.tileScaleOffset.x = frame.width / targetWidth; - this.tileScaleOffset.y = frame.height / targetHeight; - - this.refreshTexture = false; - - this.tilingTexture.baseTexture._powerOf2 = true; - -}; - -/** -* Returns the framing rectangle of the sprite as a PIXI.Rectangle object -* -* @method getBounds -* @return {Rectangle} the framing rectangle -*/ -PIXI.TilingSprite.prototype.getBounds = function() -{ - var width = this._width; - var height = this._height; - - var w0 = width * (1-this.anchor.x); - var w1 = width * -this.anchor.x; - - var h0 = height * (1-this.anchor.y); - var h1 = height * -this.anchor.y; - - var worldTransform = this.worldTransform; - - var a = worldTransform.a; - var b = worldTransform.b; - var c = worldTransform.c; - var d = worldTransform.d; - var tx = worldTransform.tx; - var ty = worldTransform.ty; - - var x1 = a * w1 + c * h1 + tx; - var y1 = d * h1 + b * w1 + ty; - - var x2 = a * w0 + c * h1 + tx; - var y2 = d * h1 + b * w0 + ty; - - var x3 = a * w0 + c * h0 + tx; - var y3 = d * h0 + b * w0 + ty; - - var x4 = a * w1 + c * h0 + tx; - var y4 = d * h0 + b * w1 + ty; - - var maxX = -Infinity; - var maxY = -Infinity; - - var minX = Infinity; - var minY = Infinity; - - minX = x1 < minX ? x1 : minX; - minX = x2 < minX ? x2 : minX; - minX = x3 < minX ? x3 : minX; - minX = x4 < minX ? x4 : minX; - - minY = y1 < minY ? y1 : minY; - minY = y2 < minY ? y2 : minY; - minY = y3 < minY ? y3 : minY; - minY = y4 < minY ? y4 : minY; - - maxX = x1 > maxX ? x1 : maxX; - maxX = x2 > maxX ? x2 : maxX; - maxX = x3 > maxX ? x3 : maxX; - maxX = x4 > maxX ? x4 : maxX; - - maxY = y1 > maxY ? y1 : maxY; - maxY = y2 > maxY ? y2 : maxY; - maxY = y3 > maxY ? y3 : maxY; - maxY = y4 > maxY ? y4 : maxY; - - var bounds = this._bounds; - - bounds.x = minX; - bounds.width = maxX - minX; - - bounds.y = minY; - bounds.height = maxY - minY; - - // store a reference so that if this function gets called again in the render cycle we do not have to recalculate - this._currentBounds = bounds; - - return bounds; -}; - -PIXI.TilingSprite.prototype.destroy = function () { - - PIXI.Sprite.prototype.destroy.call(this); - - this.tileScale = null; - this.tileScaleOffset = null; - this.tilePosition = null; - - if (this.tilingTexture) - { - this.tilingTexture.destroy(true); - this.tilingTexture = null; - } - -}; - -/** - * The width of the sprite, setting this will actually modify the scale to achieve the value set - * - * @property width - * @type Number - */ -Object.defineProperty(PIXI.TilingSprite.prototype, 'width', { - - get: function() { - return this._width; - }, - - set: function(value) { - this._width = value; - } - -}); - -/** - * The height of the TilingSprite, setting this will actually modify the scale to achieve the value set - * - * @property height - * @type Number - */ -Object.defineProperty(PIXI.TilingSprite.prototype, 'height', { - - get: function() { - return this._height; - }, - - set: function(value) { - this._height = value; - } - -}); - /** * @author Richard Davey * @copyright 2015 Photon Storm Ltd. @@ -56989,6 +57022,9 @@ Phaser.Cache.prototype = { /** * Gets a PIXI.Texture by key from the PIXI.TextureCache. * + * If the texture isn't found in the cache, then it searches the Phaser Image Cache and + * creates a new PIXI.Texture object which is then returned. + * * @method Phaser.Cache#getPixiTexture * @deprecated * @param {string} key - Asset key of the Texture to retrieve from the Cache. @@ -57002,19 +57038,29 @@ Phaser.Cache.prototype = { } else { - console.warn('Phaser.Cache.getPixiTexture: Invalid key: "' + key + '"'); - return null; + var base = this.getPixiBaseTexture(key); + + if (base) + { + return new PIXI.Texture(base); + } + else + { + return null; + } } }, /** - * Gets a PIXI.BaseTexture by key from the PIXI.BaseTExtureCache. + * Gets a PIXI.BaseTexture by key from the PIXI.BaseTextureCache. + * + * If the texture isn't found in the cache, then it searches the Phaser Image Cache. * * @method Phaser.Cache#getPixiBaseTexture * @deprecated * @param {string} key - Asset key of the BaseTexture to retrieve from the Cache. - * @return {PIXI.BaseTexture} The BaseTexture object. + * @return {PIXI.BaseTexture} The BaseTexture object or null if not found. */ getPixiBaseTexture: function (key) { @@ -57024,8 +57070,16 @@ Phaser.Cache.prototype = { } else { - console.warn('Phaser.Cache.getPixiBaseTexture: Invalid key: "' + key + '"'); - return null; + var img = this.getItem(key, Phaser.Cache.IMAGE, 'getPixiBaseTexture'); + + if (img !== null) + { + return img.base; + } + else + { + return null; + } } }, @@ -57068,9 +57122,9 @@ Phaser.Cache.prototype = { var out = []; - if (this._cache[cache]) + if (this._cacheMap[cache]) { - for (var key in this._cache[cache]) + for (var key in this._cacheMap[cache]) { if (key !== '__default' && key !== '__missing') { diff --git a/build/custom/phaser-arcade-physics.map b/build/custom/phaser-arcade-physics.map index b0e49fa9a..ef35c8392 100644 --- a/build/custom/phaser-arcade-physics.map +++ b/build/custom/phaser-arcade-physics.map @@ -1 +1 @@ -{"version":3,"file":"phaser-arcade-physics.min.js","sources":["phaser-arcade-physics.js"],"names":["PIXI","root","this","WEBGL_RENDERER","CANVAS_RENDERER","VERSION","_UID","Float32Array","Uint16Array","Uint32Array","ArrayBuffer","Array","PI_2","Math","PI","RAD_TO_DEG","DEG_TO_RAD","RETINA_PREFIX","defaultRenderOptions","view","transparent","antialias","preserveDrawingBuffer","resolution","clearBeforeRender","autoResize","DisplayObject","position","Point","scale","transformCallback","transformCallbackContext","pivot","rotation","alpha","visible","hitArea","renderable","parent","stage","worldAlpha","worldTransform","Matrix","worldPosition","worldScale","worldRotation","_sr","_cr","filterArea","_bounds","Rectangle","_currentBounds","_mask","_cacheAsBitmap","_cacheIsDirty","prototype","constructor","destroy","children","i","length","_destroyCachedSprite","Object","defineProperty","get","item","set","value","isMask","_filters","passes","filterPasses","j","push","_filterBlock","target","_generateCachedSprite","updateTransform","game","p","world","a","b","c","d","tx","ty","pt","wt","rotationCache","sin","cos","x","y","sqrt","atan2","call","displayObjectUpdateTransform","getBounds","matrix","EmptyRectangle","getLocalBounds","identityMatrix","setStageReference","preUpdate","generateTexture","scaleMode","renderer","bounds","renderTexture","RenderTexture","width","height","_tempMatrix","render","updateCache","toGlobal","apply","toLocal","from","applyInverse","_renderCachedSprite","renderSession","_cachedSprite","gl","Sprite","_renderWebGL","_renderCanvas","texture","resize","tempFilters","filters","anchor","DisplayObjectContainer","create","_width","_height","addChild","child","addChildAt","index","removeChild","splice","Error","swapChildren","child2","index1","getChildIndex","index2","indexOf","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","Texture","emptyTexture","tint","cachedTint","tintedTexture","blendMode","blendModes","NORMAL","shader","baseTexture","hasLoaded","onTextureUpdate","frame","setTexture","valid","w0","w1","h0","h1","x1","y1","x2","y2","x3","y3","x4","y4","crop","currentBlendMode","context","globalCompositeOperation","blendModesCanvas","globalAlpha","smoothProperty","scaleModes","LINEAR","dx","trim","dy","roundPixels","setTransform","cw","ch","requiresReTint","CanvasTinter","getTintedTexture","drawImage","cx","cy","source","fromFrame","frameId","TextureCache","fromImage","imageId","crossorigin","SpriteBatch","textureThing","ready","initWebGL","fastSpriteBatch","WebGLFastSpriteBatch","setContext","shaderManager","setShader","fastShader","transform","isRotated","childTransform","Stage","backgroundColor","setBackgroundColor","backgroundColorSplit","hex2rgb","hex","toString","substr","backgroundColorString","rgb2hex","rgb","canUseNewCanvasBlendModes","document","pngHead","pngEnd","magenta","Image","src","yellow","canvas","createElement","getContext","getImageData","data","getNextPowerOfTwo","number","result","isPowerOfTwo","PolyK","Triangulate","sign","n","tgs","avl","al","i0","i1","i2","ax","ay","bx","by","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","isArray","join","createShader","shaderSource","compileShader","getShaderParameter","COMPILE_STATUS","window","console","log","getShaderInfoLog","compileProgram","vertexSrc","fragmentSrc","fragmentShader","vertexShader","shaderProgram","createProgram","attachShader","linkProgram","getProgramParameter","LINK_STATUS","PixiShader","program","textureCount","firstRun","dirty","attributes","init","defaultVertexSrc","useProgram","uSampler","getUniformLocation","projectionVector","offsetVector","dimensions","aVertexPosition","getAttribLocation","aTextureCoord","colorAttribute","key","uniforms","uniformLocation","initUniforms","uniform","type","_init","initSampler2D","glMatrix","glValueLength","glFunc","uniformMatrix2fv","uniformMatrix3fv","uniformMatrix4fv","activeTexture","bindTexture","TEXTURE_2D","_glTextures","id","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","transpose","z","w","_dirty","instances","updateTexture","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","toArray","uniform1f","uniform2f","uniform3fv","bindBuffer","ARRAY_BUFFER","buffer","vertexAttribPointer","FLOAT","ELEMENT_ARRAY_BUFFER","indexBuffer","TRIANGLE_STRIP","lastIndex","clearDirty","graphicsData","reset","graphicsDataPool","Graphics","POLY","points","shape","slice","closed","fill","switchMode","canDrawUsingSimple","buildPoly","buildComplexPoly","lineWidth","buildLine","RECT","buildRectangle","CIRC","ELIP","buildCircle","RREC","buildRoundedRectangle","upload","pop","WebGLGraphicsData","rectData","fillColor","fillAlpha","r","g","verts","vertPos","tempPoints","rrectData","radius","recPoints","concat","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","a1","b1","c1","a2","b2","c2","denom","pdist","dist","indexCount","indexStart","lineColor","lineAlpha","abs","createBuffer","glPoints","bufferData","STATIC_DRAW","glIndicies","glContexts","WebGLRenderer","options","defaultRenderer","_contextOptions","premultipliedAlpha","stencil","WebGLShaderManager","WebGLSpriteBatch","WebGLMaskManager","WebGLFilterManager","WebGLStencilManager","blendModeManager","WebGLBlendModeManager","drawCount","initContext","mapBlendModes","glContextId","disable","DEPTH_TEST","CULL_FACE","enable","BLEND","contextLost","__stage","viewport","bindFramebuffer","FRAMEBUFFER","clearColor","clear","COLOR_BUFFER_BIT","renderDisplayObject","displayObject","setBlendMode","style","createTexture","UNPACK_PREMULTIPLY_ALPHA_WEBGL","NEAREST","mipmap","LINEAR_MIPMAP_LINEAR","NEAREST_MIPMAP_NEAREST","generateMipmap","_powerOf2","blendModesWebGL","ONE","ONE_MINUS_SRC_ALPHA","ADD","SRC_ALPHA","DST_ALPHA","MULTIPLY","DST_COLOR","SCREEN","OVERLAY","DARKEN","LIGHTEN","COLOR_DODGE","COLOR_BURN","HARD_LIGHT","SOFT_LIGHT","DIFFERENCE","EXCLUSION","HUE","SATURATION","COLOR","LUMINOSITY","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","size","numVerts","numIndices","vertices","positions","colors","lastIndexCount","drawing","currentBatchSize","currentBaseTexture","textures","shaders","sprites","AbstractFilter","vertexBuffer","DYNAMIC_DRAW","sprite","uvs","_uvs","aX","aY","x0","y0","renderTilingSprite","tilingTexture","TextureUvs","h","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","DEFAULT","framebufferTexture2D","COLOR_ATTACHMENT0","renderBuffer","createRenderbuffer","bindRenderbuffer","RENDERBUFFER","framebufferRenderbuffer","DEPTH_STENCIL_ATTACHMENT","renderbufferStorage","DEPTH_STENCIL","deleteFramebuffer","deleteTexture","CanvasBuffer","clearRect","CanvasMaskManager","save","cacheAlpha","CanvasGraphics","renderGraphicsMask","clip","restore","tintMethod","tintWithMultiply","fillStyle","fillRect","tintWithPerPixel","rgbValues","pixelData","pixels","canHandleAlpha","putImageData","checkInverseAlpha","s1","s2","canUseMultiply","CanvasRenderer","refresh","navigator","isCocoonJS","screencanvas","removeView","updateGraphicsTint","_fillTint","_lineTint","beginPath","moveTo","lineTo","closePath","strokeStyle","stroke","strokeRect","arc","kappa","ox","oy","xe","ye","xm","ym","bezierCurveTo","rx","ry","maxRadius","min","quadraticCurveTo","len","rect","tintR","tintG","tintB","BaseTextureCache","BaseTextureCacheIdGenerator","BaseTexture","complete","naturalWidth","naturalHeight","imageUrl","forceLoaded","_pixiId","unloadFromGPU","updateSourceImage","newSrc","glTexture","image","crossOrigin","fromCanvas","TextureCacheIdGenerator","FrameCache","TextureSilentFail","noFrame","isTiling","requiresUpdate","setFrame","onBaseTextureLoaded","destroyBase","_updateUvs","tw","th","addTextureToCache","removeTextureFromCache","textureBuffer","renderWebGL","renderCanvas","tempMatrix","Phaser","updateBase","identity","translate","append","realResolution","getImage","getBase64","getCanvas","toDataURL","webGLPixels","Uint8Array","readPixels","tempCanvas","canvasData","exports","module","define","amd","WheelEventProxy","scaleFactor","deltaMode","_scaleFactor","_deltaMode","originalEvent","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","CIRCLE","RECTANGLE","LINE","MATRIX","POINT","ROUNDEDRECTANGLE","CREATURE","VIDEO","trunc","ceil","floor","Function","bind","thisArg","bound","args","boundArgs","arguments","TypeError","F","proto","arg","forEach","fun","t","CheapArray","assert","warn","Utils","getProperty","obj","prop","parts","split","last","l","current","setProperty","chanceRoll","chance","random","randomChoice","choice1","choice2","parseDimension","dimension","f","parseInt","innerWidth","innerHeight","pad","str","dir","padlen","right","left","isPlainObject","nodeType","hasOwnProperty","e","extend","name","copy","copyIsArray","clone","deep","mixinPrototype","mixin","replace","mixinKeys","keys","to","o","childNodes","cloneNode","Circle","diameter","_diameter","_radius","circumference","out","setTo","copyFrom","copyTo","dest","distance","round","output","contains","circumferencePoint","angle","asDegrees","offsetPoint","point","top","bottom","equals","intersects","degToRad","intersectsRectangle","halfWidth","xDist","halfHeight","yDist","xCornerDist","yCornerDist","xCornerDistSq","yCornerDistSq","maxCornerDistSq","Ellipse","normx","normy","Line","fromSprite","startSprite","endSprite","useCenter","center","fromAngle","rotate","line","asSegment","intersectsPoints","reflect","pointOnLine","pointOnSegment","xMin","xMax","max","yMin","yMax","coordinatesOnLine","stepRate","results","sx","sy","err","e2","wrap","uc","ua","ub","normalAngle","fromArray","array","pos","newPos","tx1","d1","invert","add","subtract","multiply","divide","clampX","clamp","clampY","radToDeg","getMagnitude","getMagnitudeSq","setMagnitude","magnitude","normalize","isZero","m","dot","cross","perp","rperp","normalRightHand","negative","multiplyAdd","s","interpolate","project","amt","projectUnit","centroid","pointslength","parse","xProp","yProp","Polygon","area","_points","toNumberArray","flatten","inside","ix","iy","jx","jy","Number","MAX_VALUE","calculateArea","p1","p2","avgHeight","centerOn","centerX","centerY","floorAll","ceilAll","inflate","containsRect","intersection","intersectsRaw","tolerance","union","randomX","randomY","empty","inflatePoint","containsRaw","rw","rh","containsPoint","volume","sameDimensions","aabb","MIN_VALUE","RoundedRectangle","Camera","deadzone","roundPx","atLimit","totalInView","_targetPosition","_edge","_position","FOLLOW_LOCKON","FOLLOW_PLATFORMER","FOLLOW_TOPDOWN","FOLLOW_TOPDOWN_TIGHT","follow","helper","unfollow","focusOn","setPosition","focusOnXY","update","updateTarget","checkBounds","setBoundsToWorld","setSize","Create","bmd","make","bitmapData","ctx","palettes",1,2,3,4,5,6,7,8,9,"A","B","C","D","E","PALETTE_ARNE","PALETTE_JMP","PALETTE_CGA","PALETTE_C64","PALETTE_JAPANESE_MACHINE","pixelWidth","pixelHeight","palette","row","grid","cellWidth","cellHeight","State","camera","cache","input","load","math","sound","time","tweens","particles","physics","rnd","preload","loadUpdate","loadRender","preRender","paused","resumed","pauseUpdate","shutdown","StateManager","pendingState","states","_pendingState","_clearWorld","_clearCache","_created","_args","onStateChange","Signal","onInitCallback","onPreloadCallback","onCreateCallback","onUpdateCallback","onRenderCallback","onResizeCallback","onPreRenderCallback","onLoadUpdateCallback","onLoadRenderCallback","onPausedCallback","onResumedCallback","onPauseUpdateCallback","onShutDownCallback","boot","onPause","pause","onResume","resume","state","autoStart","newState","isBooted","remove","callbackContext","clearWorld","clearCache","checkState","restart","dummy","previousStateKey","clearCurrentState","setCurrentState","dispatch","totalQueuedFiles","totalQueuedPacks","loadComplete","removeAll","debug","link","unlink","_kickstart","getCurrentState","elapsedTime","renderType","_bindings","_prevParams","memorize","_shouldPropagate","active","_boundDispatch","validateListener","listener","fnName","_registerListener","isOnce","listenerContext","priority","binding","prevIndex","_indexOfListener","SignalBinding","_addBinding","execute","_priority","cur","_listener","has","addOnce","_destroy","getNumListeners","halt","bindings","paramsArr","forget","dispose","_this","signal","_isOnce","_signal","callCount","params","handlerReturn","detach","isBound","getListener","getSignal","Filter","prevPoint","Date","mouse","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","exists","currentRenderOrderID","_hiddenVar","_onChange","_backgroundColor","config","parseConfig","DOM","getOffset","Canvas","setUserSelect","setTouchAction","checkVisibility","webkitHidden","mozHidden","msHidden","hidden","event","visibilityChange","addEventListener","onblur","onfocus","onpagehide","onpageshow","device","cocoonJSApp","CocoonJS","App","onSuspended","onActivated","focusLoss","focusGain","gamePaused","gameResumed","Color","valueToColor","getColor","RGBtoString","removeEventListener","Group","addToStage","enableBody","physicsBodyType","Physics","ARCADE","physicsType","alive","ignoreDestroy","pendingDestroy","classType","cursor","enableBodyDebug","physicsSortDirection","onDestroy","cursorIndex","fixedToCamera","cameraOffset","hash","_sortProperty","RETURN_NONE","RETURN_TOTAL","RETURN_CHILD","SORT_ASCENDING","SORT_DESCENDING","silent","body","addToHash","events","onAddedToGroup$dispatch","removeFromHash","addMultiple","moveAll","addAt","updateZ","getAt","createMultiple","quantity","resetCursor","next","previous","swap","child1","bringToTop","getIndex","sendToBack","moveUp","moveDown","xy","oldChild","newChild","hasProperty","operation","force","checkProperty","checkAlive","checkVisible","setAll","setAllChildren","checkAll","addAll","property","amount","subAll","multiplyAll","divideAll","callAllExists","callback","existsValue","callbackFromArray","callAll","method","methodLength","contextLength","renderOrderID","predicate","checkExists","ArraySet","forEachExists","iterate","forEachAlive","forEachDead","sort","order","ascendingSortHandler","descendingSortHandler","customSort","sortHandler","returnType","total","getFirstExists","getFirstAlive","getFirstDead","getTop","getBottom","countLiving","countDead","getRandom","ArrayUtils","getRandomItem","destroyPhase","onRemovedFromGroup$dispatch","group","removeBetween","destroyChildren","soft","World","_definedSize","stateChange","setBounds","useBounds","horizontal","vertical","between","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","text","geom","uuid","topLeft","topMiddle","topRight","bottomLeft","bottomMiddle","bottomRight","ScaleManager","dom","minWidth","maxWidth","minHeight","maxHeight","forceLandscape","forcePortrait","incorrectOrientation","_pageAlignHorizontally","_pageAlignVertically","onOrientationChange","enterIncorrectOrientation","leaveIncorrectOrientation","fullScreenTarget","_createdFullScreenTarget","onFullScreenInit","onFullScreenChange","onFullScreenError","screenOrientation","getScreenOrientation","scaleFactorInversed","margin","aspectRatio","sourceAspectRatio","windowConstraints","compatibility","supportsFullScreen","orientationFallback","noMargins","scrollTo","forceMinimumDocumentHeight","canExpandParent","clickTrampoline","_scaleMode","NO_SCALE","_fullScreenScaleMode","parentIsWindow","parentNode","parentScaleFactor","trackParentInterval","onSizeChange","onResizeContext","_pendingScaleMode","_fullScreenRestore","_gameSize","_userScaleFactor","_userScaleTrim","_lastUpdate","_updateThrottle","_updateThrottleReset","_parentBounds","_tempBounds","_lastReportedCanvasSize","_lastReportedGameSize","_booted","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","visualBounds","newWidth","newHeight","updateDimensions","queueUpdate","currentScaleMode","setUserScale","hScale","vScale","hTrim","vTrim","setResizeCallback","signalSizeChange","setMinMax","prevThrottle","prevWidth","prevHeight","boundsChanged","orientationChanged","updateOrientationState","updateLayout","throttle","updateScalingAndBounds","forceOrientation","classifyOrientation","orientation","previousOrientation","previouslyIncorrect","isLandscape","isPortrait","changed","correctnessChanged","scrollTop","reflowGame","documentElement","setMaximum","setExactFit","isFullScreen","boundingParent","setShowAll","resetCanvas","reflowCanvas","layoutBounds","clientRect","getBoundingClientRect","wc","windowBounds","alignCanvas","parentBounds","canvasBounds","currentEdge","targetEdge","marginLeft","marginRight","marginTop","marginBottom","pageAlignHorizontally","pageAlignVertically","cssWidth","cssHeight","expanding","createFullScreenTarget","fsTarget","background","startFullScreen","allowTrampoline","setTimeout","activePointer","mousePointer","addClickTrampoline","smoothed","cleanupCreatedTarget","initData","targetElement","insertBefore","appendChild","fullscreenKeyboard","requestFullscreen","Element","ALLOW_KEYBOARD_INPUT","stopFullScreen","cancelFullscreen","prepScreenMode","enteringFullscreen","createdTarget","targetWidth","targetHeight","enterFullScreen","leaveFullScreen","letterBox","scaleX1","scaleY1","scaleX2","scaleY2","scaleOnWidth","Game","physicsConfig","isRunning","raf","net","Device","lockRender","stepping","pendingStep","stepCount","onBlur","onFocus","_paused","_codePaused","currentUpdateID","updatesThisFrame","_deltaTime","_lastCount","_spiraling","fpsProblemNotifier","forceSingleUpdate","_nextFpsNotification","enableDebug","RandomDataGenerator","now","whenReady","seed","setUpRenderer","GameObjectFactory","GameObjectCreator","Cache","Loader","Time","TweenManager","Input","SoundManager","Particles","Net","Debug","showDebugHeader","RequestAnimationFrame","stopFocus","focus","hideBanner","webAudio","contextRestored","addToDOM","preventDefault","clearGLTextures","updateLogic","desiredFps","updateRender","slowMotion","slowStep","elapsed","timeStep","enableStep","disableStep","step","removeFromDOM","setMute","cordova","iOS","unsetMute","hitCanvas","hitContext","moveCallbacks","pollRate","enabled","multiInputOverride","MOUSE_TOUCH_COMBINE","speed","circle","maxPointers","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","Touch","MSPointer","Keyboard","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","mouseDownCallback","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","BACK_BUTTON","FORWARD_BUTTON","WHEEL_UP","WHEEL_DOWN","onMouseDown","onMouseMove","onMouseUp","_onMouseUpGlobal","onMouseUpGlobal","onMouseOut","onMouseOver","onMouseWheel","wheelEvent","mouseMoveCallback","withinGame","bindEvent","deltaY","requestPointerLock","element","mozRequestPointerLock","webkitRequestPointerLock","_pointerLockChange","pointerLockChange","pointerLockElement","mozPointerLockElement","webkitPointerLockElement","releasePointerLock","exitPointerLock","mozExitPointerLock","webkitExitPointerLock","_stubsGenerated","makeBinder","defineProperties","detail","deltaX","wheelDeltaX","deltaZ","pointerDownCallback","pointerMoveCallback","pointerUpCallback","_onMSPointerDown","_onMSPointerMove","_onMSPointerUp","onPointerDown","onPointerMove","onPointerUp","pointerType","DeviceButton","buttonCode","isDown","isUp","timeDown","duration","timeUp","repeats","altKey","shiftKey","ctrlKey","onFloat","padFloat","justPressed","justReleased","leftButton","middleButton","rightButton","backButton","forwardButton","eraserButton","ERASER_BUTTON","_holdSent","_history","_nextDrop","_stateReset","clientX","clientY","pageX","pageY","screenX","screenY","rawMovementX","rawMovementY","movementX","movementY","isMouse","previousTapTime","totalTouches","msSinceLastClick","targetObject","positionDown","positionUp","_clickTrampolines","_trampolineTargetObject","resetButtons","updateButtons","buttons","totalActivePointers","_touchedHandler","processInteractiveObjects","shift","fromClick","pollLocked","mozMovementX","webkitMovementX","mozMovementY","webkitMovementY","isDragged","highestRenderOrderID","highestInputPriorityID","candidateTarget","currentNode","first","checked","validForInput","checkPointerDown","checkPointerOver","priorityID","_pointerOutHandler","_pointerOverHandler","leave","currentPointers","callbackArgs","trampolines","trampoline","_releasedHandler","resetMovement","touchLockCallbacks","touchStartCallback","touchMoveCallback","touchEndCallback","touchEnterCallback","touchLeaveCallback","touchCancelCallback","_onTouchStart","_onTouchMove","_onTouchEnd","_onTouchEnter","_onTouchLeave","_onTouchCancel","onTouchStart","onTouchMove","onTouchEnd","onTouchEnter","onTouchLeave","onTouchCancel","consumeDocumentTouches","_documentTouchMove","addTouchLockCallback","removeTouchLockCallback","changedTouches","InputHandler","useHandCursor","_setHandCursor","allowHorizontalDrag","allowVerticalDrag","snapOffset","snapOnDrag","snapOnRelease","snapX","snapY","snapOffsetX","snapOffsetY","pixelPerfectOver","pixelPerfectClick","pixelPerfectAlpha","draggable","boundsRect","boundsSprite","consumePointerEvent","scaleLayer","dragOffset","dragFromCenter","dragStartPoint","snapPoint","_dragPoint","_dragPhase","_wasEnabled","_tempPoint","_pointerData","isOver","isOut","timeOver","timeOut","downDuration","onAddedToGroup","addedToGroup","onRemovedFromGroup","removedFromGroup","flagged","highestID","highestRenderID","includePixelPerfect","isPixelPerfect","pointerX","pointerY","pointerDown","pointerUp","pointerTimeDown","pointerTimeUp","pointerOver","pointerOut","pointerTimeOver","pointerTimeOut","pointerDragged","fastTest","checkPixel","_dx","_dy","_draggedPointerID","updateDrag","onInputOver$dispatch","onInputOut$dispatch","onInputDown$dispatch","startDrag","onInputUp$dispatch","stopDrag","globalToLocalX","globalToLocalY","checkBoundsRect","checkBoundsSprite","onDragUpdate","justOver","delay","overDuration","justOut","enableDrag","lockCenter","pixelPerfect","alphaThreshold","disableDrag","onDragStart$dispatch","onDragStop$dispatch","setDragLock","allowHorizontal","allowVertical","enableSnap","onDrag","onRelease","disableSnap","_gamepadIndexMap","_rawPads","_active","_gamepadSupportAvailable","webkitGetGamepads","webkitGamepads","userAgent","getGamepads","_prevRawGamepadTypes","_prevTimestamps","onConnectCallback","onDisconnectCallback","onDownCallback","onUpCallback","onAxisCallback","onFloatCallback","_ongamepadconnected","_gamepaddisconnected","_gamepads","SinglePad","addCallbacks","callbacks","onConnect","onDisconnect","onAxis","_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","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","processButtonDown","processButtonUp","processButtonFloat","axes","processAxisChange","triggerCallback","disconnectingIndex","axis","axisCode","buttonValue","Key","keycode","_enabled","keyCode","onHoldCallback","onHoldContext","_justDown","_justUp","processKeyDown","processKeyUp","upDuration","pressEvent","onPressCallback","_keys","_capture","_onKeyDown","_onKeyPress","_onKeyUp","_k","onPress","addKey","addKeyCapture","addKeys","removeKey","removeKeyCapture","createCursorKeys","up","down","processKeyPress","clearCaptures","String","fromCharCode","charCode","charCodeAt","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","COMMA","UNDERSCORE","PERIOD","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","PLUS","MINUS","INSERT","DELETE","HELP","NUM_LOCK","Component","Angle","wrapAngle","Animation","play","frameRate","loop","killOnComplete","animations","AutoCull","autoCull","inCamera","checkWorldBounds","Bounds","BringToTop","Core","install","components","previousPosition","Events","PhysicsBody","AnimationManager","LoadTexture","loadTexture","FixedToCamera","previousRotation","fresh","_exists","P2JS","removeFromWorld","customRender","Crop","cropRect","_crop","updateCrop","resetFrame","_frame","Delta","Destroy","onDestroy$dispatch","Video","onChangeSource","resizeFrame","BitmapText","_glyphs","_parent","_onDestroy","_onAddedToGroup","_onRemovedFromGroup","_onRemovedFromWorld","_onKilled","_onRevived","_onEnterBounds","_onOutOfBounds","_onInputOver","_onInputOut","_onInputDown","_onInputUp","_onDragStart","_onDragUpdate","_onDragStop","_onAnimationStart","_onAnimationComplete","_onAnimationLoop","onRemovedFromWorld","onKilled","onRevived","onOutOfBounds","onEnterBounds","onInputOver","onInputOut","onInputDown","onInputUp","onDragStart","onDragStop","onAnimationStart","onAnimationComplete","onAnimationLoop","backing","_fixedToCamera","Health","health","maxHealth","damage","kill","heal","InCamera","InputEnabled","inputEnabled","InWorld","_outOfBoundsFired","onEnterBounds$dispatch","onOutOfBounds$dispatch","outOfBoundsKill","inWorld","LifeSpan","lifespan","physicsElapsedMS","revive","onRevived$dispatch","onKilled$dispatch","stopAnimation","BitmapData","hasFrameData","loadFrameData","getFrameData","img","base","frameData","trimmed","spriteSourceSizeX","spriteSourceSizeY","sourceSizeW","sourceSizeH","refreshTexture","frameName","Overlap","overlap","_reset","Reset","ScaleMinMax","checkTransform","scaleMin","scaleMax","setScaleMinMax","Smoothed","existing","object","tween","physicsGroup","audio","audioSprite","addSprite","tileSprite","rope","Rope","Text","overFrame","outFrame","downFrame","upFrame","Button","emitter","maxParticles","Arcade","Emitter","retroFont","font","characterWidth","characterHeight","chars","charsPerRow","xSpacing","ySpacing","xOffset","yOffset","RetroFont","bitmapText","tilemap","tileWidth","tileHeight","Tilemap","addToCache","addRenderTexture","video","url","addBitmapData","Tween","align","preUpdatePhysics","preUpdateLifeSpan","preUpdateInWorld","preUpdateCore","_scroll","def","TilingSprite","physicsElapsed","autoScroll","stopScroll","_hasUpdateAnimation","_updateAnimationCallback","updateAnimation","_updateAnimation","segments","difference","_onOverFrame","_onOutFrame","_onDownFrame","_onUpFrame","onOverSound","onOutSound","onDownSound","onUpSound","onOverSoundMarker","onOutSoundMarker","onDownSoundMarker","onUpSoundMarker","onOverMouseOnly","freezeFrames","forceOut","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","Particle","autoScale","scaleData","_s","autoAlpha","alphaData","_a","onEmit","setAlphaData","setScaleData","imageData","textureFrame","Frame","disableTextureUpload","cls","_image","_pos","_size","_scale","_rotate","_alpha","prev","_anchor","_tempR","_tempG","_tempB","_circle","_swapCanvas","moveH","moveV","draw","addImage","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","direction","scan","anchorX","anchorY","copyRect","drawGroup","shadow","blur","shadowColor","shadowBlur","shadowOffsetX","shadowOffsetY","alphaMask","sourceRect","maskRect","blendSourceAtop","blendReset","extract","destination","prevFont","fillText","textureLine","createPattern","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","currentPath","boundsPadding","_localBounds","webGLDirty","cachedSpriteDirty","lineStyle","drawShape","cpX2","cpY2","dt","dt2","dt3","t2","t3","arcTo","mm","dd","cc","tt","k1","k2","j1","j2","qx","qy","startAngle","endAngle","anticlockwise","sweep","segs","startX","startY","filling","theta","theta2","cTheta","sTheta","segMinus","remainder","real","beginFill","endFill","drawRect","drawRoundedRect","drawCircle","drawEllipse","drawPolygon","path","canvasBuffer","updateCachedSpriteTexture","_prevTint","updateLocalBounds","tempPoint","cachedSprite","destroyCachedSprite","GraphicsData","drawTriangle","cull","triangle","cameraToFace","ab","cb","faceNormal","drawTriangles","point1","point2","point3","renderXY","renderRawXY","textBounds","strokeColors","autoRound","_res","_text","_fontComponents","_lineSpacing","_charCount","setStyle","updateText","setShadow","shadowStroke","shadowFill","boundsAlignH","boundsAlignV","strokeThickness","wordWrap","wordWrapWidth","tabs","fontToComponents","fontStyle","fontVariant","fontWeight","fontSize","componentsToFont","outputText","runWordWrap","lines","lineWidths","maxLineWidth","fontProperties","determineFontProperties","measureText","tab","section","snapToCeil","lineHeight","lineSpacing","textBaseline","lineCap","lineJoin","linePositionX","linePositionY","ascent","updateLine","updateShadow","strokeText","renderTabLine","snap","letter","clearColors","addColor","addStrokeColor","spaceLeft","words","wordWidth","wordWidthWithSpace","updateFont","match","fontFamily","setText","parseList","list","setTextBounds","properties","fontPropertiesCache","fontPropertiesCanvas","fontPropertiesContext","baseline","descent","imagedata","idx","exec","parseFloat","textWidth","textHeight","_prevAnchor","_maxWidth","_data","getBitmapFont","_font","_fontSize","_align","_tint","sourceWidth","sourceHeight","scanLine","lastSpace","prevCharCode","test","charAt","charData","kerning","xAdvance","purgeGlyphs","kept","checkImageKey","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","content","characterSpacing","allowLowerCase","buildRetroFontText","getLongestLine","pasteLine","longestLine","removeUnsupportedCharacters","stripCR","newString","aChar","code","updateOffset","diffX","diffY","frames","getFrames","newText","toUpperCase","Strip","canvasPadding","drawMode","DrawModes","_vertexBuffer","_initWebGL","_renderStrip","_indexBuffer","_uvBuffer","_colorBuffer","_renderCanvasTriangleStrip","_renderCanvasTriangles","_renderCanvasDrawTriangle","index0","textureSource","textureWidth","textureHeight","u0","u1","u2","v0","v1","v2","paddingX","paddingY","normX","normY","delta","deltaA","deltaB","deltaC","deltaD","deltaE","deltaF","renderStripFlat","strip","updateFrame","rawX","rawY","nextPoint","ratio","perpLength","num","textureDebug","tilePattern","frameWidth","frameHeight","generateTilingTexture","needsUpdate","sessionBlendMode","forcePowerOfTwo","deviceReadyAt","initialized","node","nodeWebkit","electron","ejecta","crosswalk","chromeOS","linux","macOS","windows","windowsPhone","canvasBitBltShift","file","fileSystem","localStorage","worker","css3D","typedArray","vibration","getUserMedia","quirksMode","arora","chromeVersion","epiphany","firefox","firefoxVersion","ie","ieVersion","trident","tridentVersion","mobileSafari","midori","opera","safari","silk","audioData","ogg","opus","mp3","wav","m4a","webm","oggVideo","h264Video","mp4Video","webmVideo","vp9Video","hlsVideo","iPhone","iPhone4","pixelRatio","littleEndian","support32bit","onInitialized","nonPrimer","readyCheck","_readyCheck","_monitor","_queue","readyState","_initialize","_checkOS","vita","kindle","_checkFeatures","getItem","error","WebGLRenderingContext","compatMode","webkitGetUserMedia","mozGetUserMedia","msGetUserMedia","oGetUserMedia","URL","webkitURL","mozURL","msURL","_checkInput","maxTouchPoints","msPointerEnabled","pointerEnabled","_checkFullScreenSupport","fs","cfs","_checkBrowser","RegExp","$1","$3","process","require","versions","_checkVideo","videoElement","canPlayType","_checkAudio","audioElement","_checkDevice","toLowerCase","Int8Array","_checkIsLittleEndian","Uint8ClampedArray","Int32Array","_checkIsUint8ClampedImageData","vibrate","webkitVibrate","mozVibrate","msVibrate","elem","createImageData","_checkCSS3D","has3d","el","transforms","webkitTransform","OTransform","msTransform","MozTransform","getComputedStyle","getPropertyValue","canPlayAudio","canPlayVideo","isConsoleOpen","profile","profileEnd","isAndroidStockBrowser","matches","box","scrollY","scrollLeft","scrollX","clientTop","clientLeft","cushion","calibrate","coords","getAspectRatio","inLayoutViewport","primaryFallback","screen","mozOrientation","msOrientation","PORTRAIT","LANDSCAPE","matchMedia","documentBounds","pageXOffset","pageYOffset","treatAsDesktop","clientWidth","clientHeight","offsetWidth","scrollWidth","offsetHeight","scrollHeight","display","msTouchAction","overflowHidden","overflow","vendor","prefix","setImageRenderingCrisp","msInterpolationMode","setImageRenderingBicubic","forceSetTimeOut","vendors","requestAnimationFrame","cancelAnimationFrame","_isSetTimeOut","_onLoop","_timeOutID","updateSetTimeout","updateRAF","rafTime","timeToCall","clearTimeout","isSetTimeOut","isRAF","PI2","fuzzyEqual","epsilon","fuzzyLessThan","fuzzyGreaterThan","fuzzyCeil","val","fuzzyFloor","average","sum","shear","snapTo","gap","snapToFloor","roundTo","place","pow","floorTo","ceilTo","angleBetween","angleBetweenY","angleBetweenPoints","angleBetweenPointsY","reverseAngle","angleRad","normalizeAngle","maxAdd","minSub","wrapValue","isOdd","isEven","minProperty","maxProperty","radians","linearInterpolation","linear","bezierInterpolation","bernstein","catmullRomInterpolation","catmullRom","p0","factorial","res","p3","roundAwayFromZero","sinCosGenerator","sinAmplitude","cosAmplitude","frequency","frq","cosTable","sinTable","distanceSq","distancePow","clampBottom","within","mapLinear","smoothstep","smootherstep","percent","degreeToRadiansFactor","radianToDegreesFactor","degrees","seeds","s0","sow","integer","frac","integerInRange","realInRange","normal","pick","ary","weightedPick","QuadTree","maxObjects","maxLevels","objects","nodes","_empty","subWidth","subHeight","populate","populateHandler","insert","retrieve","returnObjects","getHostName","location","hostname","checkDomainName","domain","updateQueryString","redirect","href","re","separator","getQueryString","parameter","keyValues","search","substring","decodeURI","decodeURIComponent","_tweens","_add","easeMap","Power0","Easing","Power1","Power2","Power3","Power4","Linear","None","Quad","Quadratic","Out","Cubic","Quart","Quartic","Quint","Quintic","Sine","Sinusoidal","Expo","Exponential","Circ","Circular","Elastic","Back","Bounce","Quad.easeIn","In","Cubic.easeIn","Quart.easeIn","Quint.easeIn","Sine.easeIn","Expo.easeIn","Circ.easeIn","Elastic.easeIn","Back.easeIn","Bounce.easeIn","Quad.easeOut","Cubic.easeOut","Quart.easeOut","Quint.easeOut","Sine.easeOut","Expo.easeOut","Circ.easeOut","Elastic.easeOut","Back.easeOut","Bounce.easeOut","Quad.easeInOut","InOut","Cubic.easeInOut","Quart.easeInOut","Quint.easeInOut","Sine.easeInOut","Expo.easeInOut","Circ.easeInOut","Elastic.easeInOut","Back.easeInOut","Bounce.easeInOut","_pauseAll","_resumeAll","getAll","pendingDelete","removeFrom","_manager","addTweens","numTweens","isTweening","some","_pause","_resume","pauseAll","resumeAll","timeline","timeScale","repeatCounter","onStart","onLoop","onRepeat","onChildComplete","onComplete","chainedTween","isPaused","_onUpdateCallback","_onUpdateCallbackContext","_pausedTime","_hasStarted","ease","yoyo","Default","TweenData","vEnd","loadValues","updateTweenData","repeatDelay","yoyoDelay","easing","interpolation","repeatAll","chain","startTime","status","PENDING","RUNNING","LOOPED","COMPLETE","generateData","vStart","vStartCache","vEndCache","inReverse","easingFunction","interpolationFunction","interpolationContext","isFrom","yoyoCounter","elapsedMS","fps","blob","reversed","asin","prevTime","suggestedFps","advancedTiming","fpsMin","fpsMax","msMin","msMax","pauseDuration","timeExpected","Timer","_frameCount","_elapsedAccumulator","_started","_timeLastSecond","_pauseStarted","_justResumed","_timers","timer","autoDestroy","updateAdvancedTiming","updateTimers","previousDateNow","timeCallExpected","elapsedSince","since","elapsedSecondsSince","running","expired","nextTick","timeCap","_pauseTotal","_now","_marked","_diff","_newTick","MINUTE","SECOND","HALF","QUARTER","repeatCount","tick","TimerEvent","clearEvents","clearPendingEvents","adjustEvents","baseTime","ms","currentFrame","currentAnim","updateIfVisible","isLoaded","_frameData","_anims","_outputFrames","anim","copyFrameData","useNumericIndex","getFrameIndexes","validateFrames","checkFrameName","isPlaying","getAnimation","refreshFrame","getFrame","getFrameByName","_frameIndex","_frames","loopCount","isFinished","_pauseStartTime","_frameDiff","_frameSkip","onUpdate","_timeLastFrame","_timeNextFrame","updateCurrentFrame","onAnimationStart$dispatch","useLocalFrameIndex","frameIndex","dispatchComplete","onAnimationComplete$dispatch","onAnimationLoop$dispatch","signalUpdate","fromPlay","generateFrameNames","suffix","zeroPad","rotated","rotationDirection","spriteSourceSizeW","spriteSourceSizeH","setTrim","actualWidth","actualHeight","destX","destY","destWidth","destHeight","getRect","_frameNames","getFrameRange","AnimationParser","spriteSheet","frameMax","spacing","column","JSONData","json","newFrame","filename","sourceSize","spriteSourceSize","JSONDataHash","XMLData","xml","getElementsByTagName","frameX","frameY","autoResolveURL","_cache","binary","bitmapFont","_urlMap","_urlResolver","_urlTemp","onSoundUnlock","_cacheMap","TEXTURE","SOUND","PHYSICS","BINARY","BITMAPFONT","JSON","XML","SHADER","RENDER_TEXTURE","addDefaultImage","addMissingImage","addCanvas","removeImage","_resolveURL","addSound","audioTag","decoded","isDecoding","touchLocked","addText","addPhysicsData","addTilemap","mapData","addBinary","binaryData","addBitmapFont","atlasData","atlasType","LoaderParser","jsonBitmapFont","xmlBitmapFont","addJSON","addXML","addVideo","isBlob","addShader","addSpriteSheet","addTextureAtlas","TEXTURE_ATLAS_XML_STARLING","reloadSound","getSound","reloadSoundComplete","updateSound","decodedSound","isSoundDecoded","isSoundReady","checkKey","checkURL","checkCanvasKey","checkTextureKey","checkSoundKey","checkTextKey","checkPhysicsKey","checkTilemapKey","checkBinaryKey","checkBitmapDataKey","checkBitmapFontKey","checkJSONKey","checkXMLKey","checkVideoKey","checkShaderKey","checkRenderTextureKey","full","getTextureFrame","getSoundData","getText","getPhysicsData","fixtureKey","fixtures","fixture","getTilemapData","getBinary","getBitmapData","getJSON","getXML","getVideo","getShader","getRenderTexture","getBaseTexture","getFrameCount","getFrameByIndex","getPixiTexture","getPixiBaseTexture","getURL","getKeys","removeCanvas","removeFromPixi","removeSound","removeText","removePhysics","removeTilemap","removeBinary","removeBitmapData","removeBitmapFont","removeJSON","removeXML","removeVideo","removeShader","removeRenderTexture","removeSpriteSheet","removeTextureAtlas","atlas","baseURL","isLoading","preloadSprite","onLoadStart","onLoadComplete","onPackComplete","onFileStart","onFileComplete","onFileError","useXDomainRequest","_warnedAboutXDomainRequest","enableParallel","maxParallelDownloads","_withSyncPointDepth","_fileList","_flightQueue","_processingHead","_fileLoadStarted","_totalPackCount","_totalFileCount","_loadedPackCount","_loadedFileCount","TEXTURE_ATLAS_JSON_ARRAY","TEXTURE_ATLAS_JSON_HASH","PHYSICS_LIME_CORONA_JSON","PHYSICS_PHASER_JSON","setPreloadSprite","checkKeyExists","getAssetIndex","bestFound","loaded","loading","getAsset","fileIndex","addToFileList","overwrite","extension","syncPoint","currentFile","replaceInFileList","pack","script","spritesheet","urls","autoDecode","noAudio","audiosprite","jsonURL","jsonData","loadEvent","asBlob","CSV","TILED_JSON","LIME_CORONA_JSON","textureURL","atlasURL","parseXml","atlasJSONArray","atlasJSONHash","atlasXML","withSyncPoint","addSyncPoint","asset","removeFile","updateProgress","processLoadQueue","finishedLoading","requestUrl","requestObject","progress","syncblock","inflightLimit","processPack","loadFile","abnormal","asyncComplete","errorMessage","packData","transformUrl","xhrLoad","fileComplete","loadImageTag","getAudioURL","usingWebAudio","usingAudioTag","loadAudioTag","fileError","getVideoURL","loadVideoTag","jsonLoadComplete","xmlLoadComplete","csvLoadComplete","onload","onerror","controls","autoplay","videoLoadEvent","canplay","Audio","playThroughEvent","XDomainRequest","xhrLoadWithXDR","xhr","XMLHttpRequest","open","responseType","message","send","timeout","ontimeout","onprogress","videoType","uri","lastIndexOf","audioType","reason","loadNext","responseText","Blob","response","decode","language","defer","head","contentType","domparser","DOMParser","parseFromString","ActiveXObject","async","loadXML","totalLoadedFiles","totalLoadedPacks","progressFloat","info","common","getAttribute","letters","kernings","second","finalizeBitmapFont","_face","_lineHeight","_id","_xoffset","_yoffset","_xadvance","_second","_first","_amount","bitmapFontData","autoplayKey","sounds","spritemap","addMarker","connectToMaster","markers","totalDuration","currentTime","durationMS","stopTime","pausedPosition","pausedTime","currentMarker","fadeTween","pendingPlayback","override","allowMultiple","externalNode","masterGainNode","gainNode","_sound","masterGain","createGain","createGainNode","gain","soundHasUnlocked","onDecoded","onPlay","onStop","onMute","onMarkerComplete","onFadeComplete","_volume","_buffer","_muted","_tempMarker","_tempPosition","_tempVolume","_muteVolume","_tempLoop","_onDecodedEventDispatched","removeMarker","onEndedHandler","isDecoded","loopFull","forceRestart","noteOff","createBufferSource","onended","noteGrainOn","muted","prevMarker","fadeIn","fadeTo","fadeOut","fadeComplete","mute","onSoundDecode","onVolumeChange","onUnMute","channels","_codeMuted","_unlockSource","_sounds","_watchList","_watching","_watchCallback","_watchContext","disableAudio","disableWebAudio","audioContext","fakeiOSTouchLock","setTouchLock","unlock","noteOn","stopAll","soundData","decodeAudioData","setDecodedCallback","files","playbackState","PLAYING_STATE","FINISHED_STATE","removeByKey","columnWidth","renderShadow","currentAlpha","currentColor","soundInfo","cameraInfo","hideIfUp","downColor","upColor","worldX","worldY","spriteInputInfo","justDown","justUp","inputInfo","spriteBounds","filled","rectangle","ropeSegments","self","segment","spriteInfo","spriteCoords","lineInfo","forceType","quadTree","quadtree","Body","NINJA","Ninja","BOX2D","Box2D","renderBody","bodyInfo","renderBodyInfo","box2d","box2dWorld","renderDebugDraw","box2dBody","getByKey","randomIndex","removeRandomItem","shuffle","transposeMatrix","sourceRowCount","sourceColCount","rotateMatrix","findClosest","arr","NaN","low","high","POSITIVE_INFINITY","numberArray","numberArrayStep","rgba","RGBtoHSL","RGBtoHSV","fromRGBA","toRGBA","q","hueToColor","updateColor","HSVtoRGB","color32","getColor32","componentToHex","hexToRGB","hexToColor","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","blendNormal","blendAverage","blendSubtract","blendNegation","blendLinearDodge","blendLinearBurn","blendLinearLight","blendVividLight","blendPinLight","blendHardMix","blendReflect","blendGlow","blendPhoenix","LinkedList","entity","arcade","ninja","chipmunk","matter","CHIPMUNK","MATTERJS","P2","Matter","startSystem","system","enableAABB","gravity","checkCollision","OVERLAP_BIAS","forceX","sortDirection","LEFT_RIGHT","skipQuadTree","_total","SORT_NONE","RIGHT_LEFT","TOP_BOTTOM","BOTTOM_TOP","updateMotion","velocityDelta","computeVelocity","angularVelocity","angularAcceleration","angularDrag","maxAngular","velocity","acceleration","drag","maxVelocity","allowGravity","object1","object2","overlapCallback","processCallback","collideHandler","collide","collideCallback","sortLeftRight","sortRightLeft","sortTopBottom","sortBottomTop","overlapOnly","collideGroupVsSelf","collideSpriteVsSprite","collideSpriteVsGroup","collideSpriteVsTilemapLayer","collideGroupVsGroup","collideGroupVsTilemapLayer","sprite1","sprite2","separate","items","group1","group2","body1","body2","separateX","separateY","immovable","maxOverlap","deltaAbsX","embedded","touching","none","overlapX","customSeparateX","bounce","moves","friction","nv1","mass","nv2","avg","deltaAbsY","overlapY","customSeparateY","getObjectsUnderPointer","getObjectsAtLocation","callbackArg","moveToObject","maxTime","distanceBetween","moveToPointer","angleToPointer","distanceToPointer","moveToXY","distanceToXY","velocityFromAngle","velocityFromRotation","accelerationFromRotation","accelerateToObject","xSpeedMax","ySpeedMax","accelerateToPointer","accelerateToXY","angleToXY","allowRotation","preRotation","newVelocity","deltaMax","facing","collideWorldBounds","any","wasTouching","blocked","tilePadding","syncBounds","_sx","_sy","updateBounds","asx","asy","check","onFloor","onWall","TilemapCollision","TILE_BIAS","tilemapLayer","getTiles","separateTile","tile","collisionCallback","collisionCallbackContext","faceLeft","faceRight","faceTop","faceBottom","tileCheckX","tileCheckY","collideRight","collideLeft","processTileSeparationX","collideDown","collideUp","processTileSeparationY","ImageCollection","firstgid","imageWidth","imageHeight","imageMargin","imageSpacing","images","containsImageIndex","imageIndex","gid","Tile","flipped","scanned","setCollisionCallback","setCollision","resetCollision","isInteresting","collides","faces","TilemapParser","version","widthInPixels","heightInPixels","tilesets","imagecollections","tiles","collideIndexes","collision","currentLayer","debugMap","_results","_tempA","NORTH","EAST","SOUTH","WEST","setTileSize","createBlankLayer","addTilesetImage","tileset","tileMargin","tileSpacing","getTilesetIndex","setImage","newSet","Tileset","countX","countY","columns","rows","createFromObjects","CustomClass","adjustY","found","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","map","renderSettings","enableScrollDelta","overdrawRatio","copyCanvas","debugSettings","missingImageFill","debuggedTileOverfill","forceFullRedraw","debugAlpha","facingEdgeStroke","collidingTileOverfill","scrollFactorX","scrollFactorY","rayStepRate","_wrap","_mc","renderWidth","renderHeight","_scrollX","_scrollY","ensureSharedCopyCanvas","sharedCopyCanvas","resizeWorld","_fixX","_unfixX","_fixY","_unfixY","getTileX","getTileY","getTileXY","getRayCastTiles","interestingFace","coord","fetchAll","wy","wx","resolveTileset","tileIndex","setIndex","containsTileIndex","resetTilesetCache","setScale","xScale","yScale","shiftCanvas","copyW","copyH","copyContext","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","flippedVal","tileproperties","tileProperties","updateTileData","imagewidth","imageheight","newCollection","polyline","polygon","ellipse","sid","drawCoords","coordIndex","setSpacing","rowCount","colCount","emitters","ID","minParticleSpeed","maxParticleSpeed","minParticleScale","maxParticleScale","minRotation","maxRotation","minParticleAlpha","maxParticleAlpha","particleClass","particleDrag","on","particleAnchor","emitX","emitY","particleBringToTop","particleSendToBack","_minParticleScale","_maxParticleScale","_quantity","_timer","_counter","_flowQuantity","_flowTotal","_explode","emitParticle","makeParticles","particle","rndKey","rndFrame","explode","flow","forceQuantity","setXSpeed","setYSpeed","setRotation","setAlpha","rate","tweenData","at","onAccess","onError","onTimeout","videoStream","isStreaming","retryLimit","retry","retryInterval","_retryID","_pending","_autoplay","_video","createVideoFromBlob","videoWidth","videoHeight","createVideoFromURL","snapshot","connectToMediaStream","stream","startMediaStream","captureAudio","removeVideoElement","setAttribute","getUserMediaTimeout","getUserMediaSuccess","getUserMediaError","mozSrcObject","createObjectURL","onloadeddata","checkStream","checkVideoProgress","change","playbackRate","setPause","setResume","playHandler","playing","ended","changeSource","grab","hasChildNodes","firstChild","removeAttribute"],"mappings":";;AAkCA,GAAIA,MAAO,WAEP,GAAIC,GAAOC,KAoBXF,EAAOA,KA+4RP,OAx4RJA,GAAKG,eAAiB,EAOtBH,EAAKI,gBAAkB,EAOvBJ,EAAKK,QAAU,SAGfL,EAAKM,KAAO,EAEgB,mBAAlB,eAENN,EAAKO,aAAeA,aACpBP,EAAKQ,YAAcA,YAOnBR,EAAKS,YAAcA,YACnBT,EAAKU,YAAcA,cAInBV,EAAKO,aAAeI,MACpBX,EAAKQ,YAAcG,OAOvBX,EAAKY,KAAiB,EAAVC,KAAKC,GAMjBd,EAAKe,WAAa,IAAMF,KAAKC,GAM7Bd,EAAKgB,WAAaH,KAAKC,GAAK,IAO5Bd,EAAKiB,cAAgB,MAgBrBjB,EAAKkB,sBACDC,KAAM,KACNC,aAAa,EACbC,WAAW,EACXC,uBAAuB,EACvBC,WAAY,EACZC,mBAAmB,EACnBC,YAAY,GAchBzB,EAAK0B,cAAgB,WAQjBxB,KAAKyB,SAAW,GAAI3B,GAAK4B,MAAM,EAAG,GAQlC1B,KAAK2B,MAAQ,GAAI7B,GAAK4B,MAAM,EAAG,GAW/B1B,KAAK4B,kBAAoB,KAQzB5B,KAAK6B,yBAA2B,KAQhC7B,KAAK8B,MAAQ,GAAIhC,GAAK4B,MAAM,EAAG,GAQ/B1B,KAAK+B,SAAW,EAQhB/B,KAAKgC,MAAQ,EAQbhC,KAAKiC,SAAU,EASfjC,KAAKkC,QAAU,KAQflC,KAAKmC,YAAa,EASlBnC,KAAKoC,OAAS,KASdpC,KAAKqC,MAAQ,KASbrC,KAAKsC,WAAa,EAUlBtC,KAAKuC,eAAiB,GAAIzC,GAAK0C,OAU/BxC,KAAKyC,cAAgB,GAAI3C,GAAK4B,MAAM,EAAG,GAUvC1B,KAAK0C,WAAa,GAAI5C,GAAK4B,MAAM,EAAG,GAUpC1B,KAAK2C,cAAgB,EASrB3C,KAAK4C,IAAM,EASX5C,KAAK6C,IAAM,EASX7C,KAAK8C,WAAa,KASlB9C,KAAK+C,QAAU,GAAIjD,GAAKkD,UAAU,EAAG,EAAG,EAAG,GAS3ChD,KAAKiD,eAAiB,KAStBjD,KAAKkD,MAAQ,KASblD,KAAKmD,gBAAiB,EAStBnD,KAAKoD,eAAgB,GAKzBtD,EAAK0B,cAAc6B,UAAUC,YAAcxD,EAAK0B,cAQhD1B,EAAK0B,cAAc6B,UAAUE,QAAU,WAEnC,GAAIvD,KAAKwD,SACT,CAGI,IAFA,GAAIC,GAAIzD,KAAKwD,SAASE,OAEfD,KAEHzD,KAAKwD,SAASC,GAAGF,SAGrBvD,MAAKwD,YAGTxD,KAAK4B,kBAAoB,KACzB5B,KAAK6B,yBAA2B,KAChC7B,KAAKkC,QAAU,KACflC,KAAKoC,OAAS,KACdpC,KAAKqC,MAAQ,KACbrC,KAAKuC,eAAiB,KACtBvC,KAAK8C,WAAa,KAClB9C,KAAK+C,QAAU,KACf/C,KAAKiD,eAAiB,KACtBjD,KAAKkD,MAAQ,KAGblD,KAAKmC,YAAa,EAElBnC,KAAK2D,wBASTC,OAAOC,eAAe/D,EAAK0B,cAAc6B,UAAW,gBAEhDS,IAAK,WAED,GAAIC,GAAO/D,IAEX,GACA,CACI,IAAK+D,EAAK9B,QAAS,OAAO,CAC1B8B,GAAOA,EAAK3B,aAEV2B,EAEN,QAAO,KAafH,OAAOC,eAAe/D,EAAK0B,cAAc6B,UAAW,QAEhDS,IAAK,WACD,MAAO9D,MAAKkD,OAGhBc,IAAK,SAASC,GAENjE,KAAKkD,QAAOlD,KAAKkD,MAAMgB,QAAS,GAEpClE,KAAKkD,MAAQe,EAETjE,KAAKkD,QAAOlD,KAAKkD,MAAMgB,QAAS,MAY5CN,OAAOC,eAAe/D,EAAK0B,cAAc6B,UAAW,WAEhDS,IAAK,WACD,MAAO9D,MAAKmE,UAGhBH,IAAK,SAASC,GAEV,GAAIA,EACJ,CAII,IAAK,GAFDG,MAEKX,EAAI,EAAGA,EAAIQ,EAAMP,OAAQD,IAI9B,IAAK,GAFDY,GAAeJ,EAAMR,GAAGW,OAEnBE,EAAI,EAAGA,EAAID,EAAaX,OAAQY,IAErCF,EAAOG,KAAKF,EAAaC,GAKjCtE,MAAKwE,cAAiBC,OAAQzE,KAAMqE,aAAcD,GAGtDpE,KAAKmE,SAAWF,KAWxBL,OAAOC,eAAe/D,EAAK0B,cAAc6B,UAAW,iBAEhDS,IAAK,WACD,MAAQ9D,MAAKmD,gBAGjBa,IAAK,SAASC,GAENjE,KAAKmD,iBAAmBc,IAExBA,EAEAjE,KAAK0E,wBAIL1E,KAAK2D,uBAGT3D,KAAKmD,eAAiBc,MAgB9BnE,EAAK0B,cAAc6B,UAAUsB,gBAAkB,SAASvC,GAEpD,GAAKA,GAAWpC,KAAKoC,QAAWpC,KAAK4E,KAArC,CAKA,GAAIC,GAAI7E,KAAKoC,MAETA,GAEAyC,EAAIzC,EAEEpC,KAAKoC,SAEXyC,EAAI7E,KAAK4E,KAAKE,MAIlB,IAIIC,GAAGC,EAAGC,EAAGC,EAAGC,EAAIC,EAJhBC,EAAKR,EAAEtC,eACP+C,EAAKtF,KAAKuC,cAMVvC,MAAK+B,SAAWjC,EAAKY,MAGjBV,KAAK+B,WAAa/B,KAAKuF,gBAEvBvF,KAAKuF,cAAgBvF,KAAK+B,SAC1B/B,KAAK4C,IAAMjC,KAAK6E,IAAIxF,KAAK+B,UACzB/B,KAAK6C,IAAMlC,KAAK8E,IAAIzF,KAAK+B,WAI7BgD,EAAM/E,KAAK6C,IAAM7C,KAAK2B,MAAM+D,EAC5BV,EAAMhF,KAAK4C,IAAM5C,KAAK2B,MAAM+D,EAC5BT,GAAMjF,KAAK4C,IAAM5C,KAAK2B,MAAMgE,EAC5BT,EAAMlF,KAAK6C,IAAM7C,KAAK2B,MAAMgE,EAC5BR,EAAMnF,KAAKyB,SAASiE,EACpBN,EAAMpF,KAAKyB,SAASkE,GAGhB3F,KAAK8B,MAAM4D,GAAK1F,KAAK8B,MAAM6D,KAE3BR,GAAMnF,KAAK8B,MAAM4D,EAAIX,EAAI/E,KAAK8B,MAAM6D,EAAIV,EACxCG,GAAMpF,KAAK8B,MAAM4D,EAAIV,EAAIhF,KAAK8B,MAAM6D,EAAIT,GAI5CI,EAAGP,EAAKA,EAAKM,EAAGN,EAAIC,EAAKK,EAAGJ,EAC5BK,EAAGN,EAAKD,EAAKM,EAAGL,EAAIA,EAAKK,EAAGH,EAC5BI,EAAGL,EAAKA,EAAKI,EAAGN,EAAIG,EAAKG,EAAGJ,EAC5BK,EAAGJ,EAAKD,EAAKI,EAAGL,EAAIE,EAAKG,EAAGH,EAC5BI,EAAGH,GAAKA,EAAKE,EAAGN,EAAIK,EAAKC,EAAGJ,EAAII,EAAGF,GACnCG,EAAGF,GAAKD,EAAKE,EAAGL,EAAII,EAAKC,EAAGH,EAAIG,EAAGD,KAKnCL,EAAK/E,KAAK2B,MAAM+D,EAChBR,EAAKlF,KAAK2B,MAAMgE,EAEhBR,EAAKnF,KAAKyB,SAASiE,EAAI1F,KAAK8B,MAAM4D,EAAIX,EACtCK,EAAKpF,KAAKyB,SAASkE,EAAI3F,KAAK8B,MAAM6D,EAAIT,EAEtCI,EAAGP,EAAKA,EAAKM,EAAGN,EAChBO,EAAGN,EAAKD,EAAKM,EAAGL,EAChBM,EAAGL,EAAKC,EAAKG,EAAGJ,EAChBK,EAAGJ,EAAKA,EAAKG,EAAGH,EAChBI,EAAGH,GAAKA,EAAKE,EAAGN,EAAIK,EAAKC,EAAGJ,EAAII,EAAGF,GACnCG,EAAGF,GAAKD,EAAKE,EAAGL,EAAII,EAAKC,EAAGH,EAAIG,EAAGD,IAIvCpF,KAAKsC,WAAatC,KAAKgC,MAAQ6C,EAAEvC,WAEjCtC,KAAKyC,cAAcuB,IAAIsB,EAAGH,GAAIG,EAAGF,IACjCpF,KAAK0C,WAAWsB,IAAIrD,KAAKiF,KAAKN,EAAGP,EAAIO,EAAGP,EAAIO,EAAGN,EAAIM,EAAGN,GAAIrE,KAAKiF,KAAKN,EAAGL,EAAIK,EAAGL,EAAIK,EAAGJ,EAAII,EAAGJ,IAC5FlF,KAAK2C,cAAgBhC,KAAKkF,OAAOP,EAAGL,EAAGK,EAAGJ,GAG1ClF,KAAKiD,eAAiB,KAGlBjD,KAAK4B,mBAEL5B,KAAK4B,kBAAkBkE,KAAK9F,KAAK6B,yBAA0ByD,EAAID,KAMvEvF,EAAK0B,cAAc6B,UAAU0C,6BAA+BjG,EAAK0B,cAAc6B,UAAUsB,gBASzF7E,EAAK0B,cAAc6B,UAAU2C,UAAY,SAASC,GAG9C,MADAA,GAASA,EACFnG,EAAKoG,gBAShBpG,EAAK0B,cAAc6B,UAAU8C,eAAiB,WAE1C,MAAOnG,MAAKgG,UAAUlG,EAAKsG,iBAS/BtG,EAAK0B,cAAc6B,UAAUgD,kBAAoB,SAAShE,GAEtDrC,KAAKqC,MAAQA,GAQjBvC,EAAK0B,cAAc6B,UAAUiD,UAAY,aAczCxG,EAAK0B,cAAc6B,UAAUkD,gBAAkB,SAASlF,EAAYmF,EAAWC,GAE3E,GAAIC,GAAS1G,KAAKmG,iBAEdQ,EAAgB,GAAI7G,GAAK8G,cAA6B,EAAfF,EAAOG,MAA2B,EAAhBH,EAAOI,OAAYL,EAAUD,EAAWnF,EAOrG,OALAvB,GAAK0B,cAAcuF,YAAY5B,IAAMuB,EAAOhB,EAC5C5F,EAAK0B,cAAcuF,YAAY3B,IAAMsB,EAAOf,EAE5CgB,EAAcK,OAAOhH,KAAMF,EAAK0B,cAAcuF,aAEvCJ,GAQX7G,EAAK0B,cAAc6B,UAAU4D,YAAc,WAEvCjH,KAAK0E,yBAUT5E,EAAK0B,cAAc6B,UAAU6D,SAAW,SAASzF,GAI7C,MADAzB,MAAK+F,+BACE/F,KAAKuC,eAAe4E,MAAM1F,IAWrC3B,EAAK0B,cAAc6B,UAAU+D,QAAU,SAAS3F,EAAU4F,GAUtD,MARIA,KAEA5F,EAAW4F,EAAKH,SAASzF,IAI7BzB,KAAK+F,+BAEE/F,KAAKuC,eAAe+E,aAAa7F,IAU5C3B,EAAK0B,cAAc6B,UAAUkE,oBAAsB,SAASC,GAExDxH,KAAKyH,cAAcnF,WAAatC,KAAKsC,WAEjCkF,EAAcE,GAEd5H,EAAK6H,OAAOtE,UAAUuE,aAAa9B,KAAK9F,KAAKyH,cAAeD,GAI5D1H,EAAK6H,OAAOtE,UAAUwE,cAAc/B,KAAK9F,KAAKyH,cAAeD,IAUrE1H,EAAK0B,cAAc6B,UAAUqB,sBAAwB,WAEjD1E,KAAKmD,gBAAiB,CAEtB,IAAIuD,GAAS1G,KAAKmG,gBAElB,IAAKnG,KAAKyH,cASNzH,KAAKyH,cAAcK,QAAQC,OAAsB,EAAfrB,EAAOG,MAA2B,EAAhBH,EAAOI,YAR/D,CACI,GAAIH,GAAgB,GAAI7G,GAAK8G,cAA6B,EAAfF,EAAOG,MAA2B,EAAhBH,EAAOI,OAEpE9G,MAAKyH,cAAgB,GAAI3H,GAAK6H,OAAOhB,GACrC3G,KAAKyH,cAAclF,eAAiBvC,KAAKuC,eAQ7C,GAAIyF,GAAchI,KAAKmE,QACvBnE,MAAKmE,SAAW,KAEhBnE,KAAKyH,cAAcQ,QAAUD,EAE7BlI,EAAK0B,cAAcuF,YAAY5B,IAAMuB,EAAOhB,EAC5C5F,EAAK0B,cAAcuF,YAAY3B,IAAMsB,EAAOf,EAE5C3F,KAAKyH,cAAcK,QAAQd,OAAOhH,KAAMF,EAAK0B,cAAcuF,aAAa,GAExE/G,KAAKyH,cAAcS,OAAOxC,IAAOgB,EAAOhB,EAAIgB,EAAOG,OACnD7G,KAAKyH,cAAcS,OAAOvC,IAAOe,EAAOf,EAAIe,EAAOI,QAEnD9G,KAAKmE,SAAW6D,EAEhBhI,KAAKmD,gBAAiB,GAS1BrD,EAAK0B,cAAc6B,UAAUM,qBAAuB,WAE3C3D,KAAKyH,gBAEVzH,KAAKyH,cAAcK,QAAQvE,SAAQ,GAGnCvD,KAAKyH,cAAgB,OAUzB3H,EAAK0B,cAAc6B,UAAUuE,aAAe,SAASJ,GAIjDA,EAAgBA,GAUpB1H,EAAK0B,cAAc6B,UAAUwE,cAAgB,SAASL,GAIlDA,EAAgBA,GASpB5D,OAAOC,eAAe/D,EAAK0B,cAAc6B,UAAW,KAEhDS,IAAK,WACD,MAAQ9D,MAAKyB,SAASiE,GAG1B1B,IAAK,SAASC,GACVjE,KAAKyB,SAASiE,EAAIzB,KAW1BL,OAAOC,eAAe/D,EAAK0B,cAAc6B,UAAW,KAEhDS,IAAK,WACD,MAAQ9D,MAAKyB,SAASkE,GAG1B3B,IAAK,SAASC,GACVjE,KAAKyB,SAASkE,EAAI1B,KAiB1BnE,EAAKqI,uBAAyB,WAE1BrI,EAAK0B,cAAcsE,KAAK9F,MASxBA,KAAKwD,aAKT1D,EAAKqI,uBAAuB9E,UAAYO,OAAOwE,OAAQtI,EAAK0B,cAAc6B,WAC1EvD,EAAKqI,uBAAuB9E,UAAUC,YAAcxD,EAAKqI,uBAQzDvE,OAAOC,eAAe/D,EAAKqI,uBAAuB9E,UAAW,SAEzDS,IAAK,WACD,MAAO9D,MAAK2B,MAAM+D,EAAI1F,KAAKmG,iBAAiBU,OAGhD7C,IAAK,SAASC,GAEV,GAAI4C,GAAQ7G,KAAKmG,iBAAiBU,KAI9B7G,MAAK2B,MAAM+D,EAFD,IAAVmB,EAEe5C,EAAQ4C,EAIR,EAGnB7G,KAAKqI,OAASpE,KAUtBL,OAAOC,eAAe/D,EAAKqI,uBAAuB9E,UAAW,UAEzDS,IAAK,WACD,MAAQ9D,MAAK2B,MAAMgE,EAAI3F,KAAKmG,iBAAiBW,QAGjD9C,IAAK,SAASC,GAEV,GAAI6C,GAAS9G,KAAKmG,iBAAiBW,MAI/B9G,MAAK2B,MAAMgE,EAFA,IAAXmB,EAEe7C,EAAQ6C,EAIR,EAGnB9G,KAAKsI,QAAUrE,KAYvBnE,EAAKqI,uBAAuB9E,UAAUkF,SAAW,SAASC,GAEtD,MAAOxI,MAAKyI,WAAWD,EAAOxI,KAAKwD,SAASE,SAWhD5D,EAAKqI,uBAAuB9E,UAAUoF,WAAa,SAASD,EAAOE,GAE/D,GAAGA,GAAS,GAAKA,GAAS1I,KAAKwD,SAASE,OAapC,MAXG8E,GAAMpG,QAELoG,EAAMpG,OAAOuG,YAAYH,GAG7BA,EAAMpG,OAASpC,KAEfA,KAAKwD,SAASoF,OAAOF,EAAO,EAAGF,GAE5BxI,KAAKqC,OAAMmG,EAAMnC,kBAAkBrG,KAAKqC,OAEpCmG,CAIP,MAAM,IAAIK,OAAML,EAAQ,yBAA0BE,EAAO,8BAAgC1I,KAAKwD,SAASE,SAW/G5D,EAAKqI,uBAAuB9E,UAAUyF,aAAe,SAASN,EAAOO,GAEjE,GAAGP,IAAUO,EAAb,CAIA,GAAIC,GAAShJ,KAAKiJ,cAAcT,GAC5BU,EAASlJ,KAAKiJ,cAAcF,EAEhC,IAAY,EAATC,GAAuB,EAATE,EACb,KAAM,IAAIL,OAAM,gFAGpB7I,MAAKwD,SAASwF,GAAUD,EACxB/I,KAAKwD,SAAS0F,GAAUV,IAW5B1I,EAAKqI,uBAAuB9E,UAAU4F,cAAgB,SAAST,GAE3D,GAAIE,GAAQ1I,KAAKwD,SAAS2F,QAAQX,EAClC,IAAc,KAAVE,EAEA,KAAM,IAAIG,OAAM,2DAEpB,OAAOH,IAUX5I,EAAKqI,uBAAuB9E,UAAU+F,cAAgB,SAASZ,EAAOE,GAElE,GAAY,EAARA,GAAaA,GAAS1I,KAAKwD,SAASE,OAEpC,KAAM,IAAImF,OAAM,sCAEpB,IAAIQ,GAAerJ,KAAKiJ,cAAcT,EACtCxI,MAAKwD,SAASoF,OAAOS,EAAc,GACnCrJ,KAAKwD,SAASoF,OAAOF,EAAO,EAAGF,IAUnC1I,EAAKqI,uBAAuB9E,UAAUiG,WAAa,SAASZ,GAExD,GAAY,EAARA,GAAaA,GAAS1I,KAAKwD,SAASE,OAEpC,KAAM,IAAImF,OAAM,8BAA+BH,EAAO,iGAE1D,OAAO1I,MAAKwD,SAASkF,IAWzB5I,EAAKqI,uBAAuB9E,UAAUsF,YAAc,SAASH,GAEzD,GAAIE,GAAQ1I,KAAKwD,SAAS2F,QAASX,EACnC,IAAa,KAAVE,EAEH,MAAO1I,MAAKuJ,cAAeb,IAU/B5I,EAAKqI,uBAAuB9E,UAAUkG,cAAgB,SAASb,GAE3D,GAAIF,GAAQxI,KAAKsJ,WAAYZ,EAM7B,OALG1I,MAAKqC,OACJmG,EAAMgB,uBAEVhB,EAAMpG,OAASqH,OACfzJ,KAAKwD,SAASoF,OAAQF,EAAO,GACtBF,GAUX1I,EAAKqI,uBAAuB9E,UAAUqG,eAAiB,SAASC,EAAYC,GAExE,GAAIC,GAAQF,GAAc,EACtBG,EAA0B,gBAAbF,GAAwBA,EAAW5J,KAAKwD,SAASE,OAC9DqG,EAAQD,EAAMD,CAElB,IAAIE,EAAQ,GAAcD,GAATC,EACjB,CAEI,IAAK,GADDC,GAAUhK,KAAKwD,SAASoF,OAAOiB,EAAOE,GACjCtG,EAAI,EAAGA,EAAIuG,EAAQtG,OAAQD,IAAK,CACrC,GAAI+E,GAAQwB,EAAQvG,EACjBzD,MAAKqC,OACJmG,EAAMgB,uBACVhB,EAAMpG,OAASqH,OAEnB,MAAOO,GAEN,GAAc,IAAVD,GAAwC,IAAzB/J,KAAKwD,SAASE,OAElC,QAIA,MAAM,IAAImF,OAAO,iFAUzB/I,EAAKqI,uBAAuB9E,UAAUsB,gBAAkB,WAEpD,GAAK3E,KAAKiC,UAKVjC,KAAK+F,gCAED/F,KAAKmD,gBAKT,IAAK,GAAIM,GAAI,EAAGA,EAAIzD,KAAKwD,SAASE,OAAQD,IAEtCzD,KAAKwD,SAASC,GAAGkB,mBAKzB7E,EAAKqI,uBAAuB9E,UAAU4G,sCAAwCnK,EAAKqI,uBAAuB9E,UAAUsB,gBAQpH7E,EAAKqI,uBAAuB9E,UAAU2C,UAAY,WAE9C,GAA4B,IAAzBhG,KAAKwD,SAASE,OAAa,MAAO5D,GAAKoG,cAgB1C,KAAI,GANAgE,GACAC,EACAC,EARAC,EAAOC,IACPC,EAAOD,IAEPE,GAAQF,IACRG,GAAQH,IAMRI,GAAe,EAEXjH,EAAE,EAAEa,EAAEtE,KAAKwD,SAASE,OAAUY,EAAFb,EAAKA,IACzC,CACI,GAAI+E,GAAQxI,KAAKwD,SAASC,EAEtB+E,GAAMvG,UAEVyI,GAAe,EAEfR,EAAclK,KAAKwD,SAASC,GAAGuC,YAE/BqE,EAAOA,EAAOH,EAAYxE,EAAI2E,EAAOH,EAAYxE,EACjD6E,EAAOA,EAAOL,EAAYvE,EAAI4E,EAAOL,EAAYvE,EAEjDwE,EAAYD,EAAYrD,MAAQqD,EAAYxE,EAC5C0E,EAAYF,EAAYpD,OAASoD,EAAYvE,EAE7C6E,EAAOA,EAAOL,EAAYK,EAAOL,EACjCM,EAAOA,EAAOL,EAAYK,EAAOL,GAGrC,IAAIM,EACA,MAAO5K,GAAKoG,cAEhB,IAAIQ,GAAS1G,KAAK+C,OAUlB,OARA2D,GAAOhB,EAAI2E,EACX3D,EAAOf,EAAI4E,EACX7D,EAAOG,MAAQ2D,EAAOH,EACtB3D,EAAOI,OAAS2D,EAAOF,EAKhB7D,GASX5G,EAAKqI,uBAAuB9E,UAAU8C,eAAiB,WAEnD,GAAIwE,GAAc3K,KAAKuC,cAEvBvC,MAAKuC,eAAiBzC,EAAKsG,cAE3B,KAAI,GAAI3C,GAAE,EAAEa,EAAEtE,KAAKwD,SAASE,OAAUY,EAAFb,EAAKA,IAErCzD,KAAKwD,SAASC,GAAGkB,iBAGrB,IAAI+B,GAAS1G,KAAKgG,WAIlB,OAFAhG,MAAKuC,eAAiBoI,EAEfjE,GASX5G,EAAKqI,uBAAuB9E,UAAUgD,kBAAoB,SAAShE,GAE/DrC,KAAKqC,MAAQA,CAEb,KAAK,GAAIoB,GAAE,EAAGA,EAAIzD,KAAKwD,SAASE,OAAQD,IAEpCzD,KAAKwD,SAASC,GAAG4C,kBAAkBhE,IAS3CvC,EAAKqI,uBAAuB9E,UAAUmG,qBAAuB,WAEzD,IAAK,GAAI/F,GAAI,EAAGA,EAAIzD,KAAKwD,SAASE,OAAQD,IAEtCzD,KAAKwD,SAASC,GAAG+F,sBAGrBxJ,MAAKqC,MAAQ,MAUjBvC,EAAKqI,uBAAuB9E,UAAUuE,aAAe,SAASJ,GAE1D,GAAKxH,KAAKiC,WAAWjC,KAAKgC,OAAS,GAAnC,CAEA,GAAIhC,KAAKmD,eAGL,WADAnD,MAAKuH,oBAAoBC,EAI7B,IAAI/D,EAEJ,IAAIzD,KAAKkD,OAASlD,KAAKmE,SACvB,CAgBI,IAdInE,KAAKmE,WAELqD,EAAcoD,YAAYC,QAC1BrD,EAAcsD,cAAcC,WAAW/K,KAAKwE,eAG5CxE,KAAKkD,QAELsE,EAAcoD,YAAYI,OAC1BxD,EAAcyD,YAAYC,SAASlL,KAAKmL,KAAM3D,GAC9CA,EAAcoD,YAAYQ,SAIzB3H,EAAI,EAAGA,EAAIzD,KAAKwD,SAASE,OAAQD,IAElCzD,KAAKwD,SAASC,GAAGmE,aAAaJ,EAGlCA,GAAcoD,YAAYI,OAEtBhL,KAAKkD,OAAOsE,EAAcyD,YAAYI,QAAQrL,KAAKkD,MAAOsE,GAC1DxH,KAAKmE,UAAUqD,EAAcsD,cAAcQ,YAE/C9D,EAAcoD,YAAYQ,YAK1B,KAAK3H,EAAI,EAAGA,EAAIzD,KAAKwD,SAASE,OAAQD,IAElCzD,KAAKwD,SAASC,GAAGmE,aAAaJ,KAY1C1H,EAAKqI,uBAAuB9E,UAAUwE,cAAgB,SAASL,GAE3D,GAAIxH,KAAKiC,WAAY,GAAwB,IAAfjC,KAAKgC,MAAnC,CAEA,GAAIhC,KAAKmD,eAGL,WADAnD,MAAKuH,oBAAoBC,EAIzBxH,MAAKkD,OAELsE,EAAcyD,YAAYC,SAASlL,KAAKkD,MAAOsE,EAGnD,KAAK,GAAI/D,GAAI,EAAGA,EAAIzD,KAAKwD,SAASE,OAAQD,IAEtCzD,KAAKwD,SAASC,GAAGoE,cAAcL,EAG/BxH,MAAKkD,OAELsE,EAAcyD,YAAYI,QAAQ7D,KAqB1C1H,EAAK6H,OAAS,SAASG,GAEnBhI,EAAKqI,uBAAuBrC,KAAK9F,MAWjCA,KAAKkI,OAAS,GAAIpI,GAAK4B,MAQvB1B,KAAK8H,QAAUA,GAAWhI,EAAKyL,QAAQC,aASvCxL,KAAKqI,OAAS,EASdrI,KAAKsI,QAAU,EASftI,KAAKyL,KAAO,SAUZzL,KAAK0L,WAAa,GASlB1L,KAAK2L,cAAgB,KASrB3L,KAAK4L,UAAY9L,EAAK+L,WAAWC,OASjC9L,KAAK+L,OAAS,KAEV/L,KAAK8H,QAAQkE,YAAYC,WAEzBjM,KAAKkM,kBAGTlM,KAAKmC,YAAa,GAKtBrC,EAAK6H,OAAOtE,UAAYO,OAAOwE,OAAOtI,EAAKqI,uBAAuB9E,WAClEvD,EAAK6H,OAAOtE,UAAUC,YAAcxD,EAAK6H,OAQzC/D,OAAOC,eAAe/D,EAAK6H,OAAOtE,UAAW,SAEzCS,IAAK,WACD,MAAO9D,MAAK2B,MAAM+D,EAAI1F,KAAK8H,QAAQqE,MAAMtF,OAG7C7C,IAAK,SAASC,GACVjE,KAAK2B,MAAM+D,EAAIzB,EAAQjE,KAAK8H,QAAQqE,MAAMtF,MAC1C7G,KAAKqI,OAASpE,KAWtBL,OAAOC,eAAe/D,EAAK6H,OAAOtE,UAAW,UAEzCS,IAAK,WACD,MAAQ9D,MAAK2B,MAAMgE,EAAI3F,KAAK8H,QAAQqE,MAAMrF,QAG9C9C,IAAK,SAASC,GACVjE,KAAK2B,MAAMgE,EAAI1B,EAAQjE,KAAK8H,QAAQqE,MAAMrF,OAC1C9G,KAAKsI,QAAUrE,KAWvBnE,EAAK6H,OAAOtE,UAAU+I,WAAa,SAAStE,GAExC9H,KAAK8H,QAAUA,EACf9H,KAAK8H,QAAQuE,OAAQ,GAUzBvM,EAAK6H,OAAOtE,UAAU6I,gBAAkB,WAGhClM,KAAKqI,SAAQrI,KAAK2B,MAAM+D,EAAI1F,KAAKqI,OAASrI,KAAK8H,QAAQqE,MAAMtF,OAC7D7G,KAAKsI,UAAStI,KAAK2B,MAAMgE,EAAI3F,KAAKsI,QAAUtI,KAAK8H,QAAQqE,MAAMrF,SAUvEhH,EAAK6H,OAAOtE,UAAU2C,UAAY,SAASC,GAEvC,GAAIY,GAAQ7G,KAAK8H,QAAQqE,MAAMtF,MAC3BC,EAAS9G,KAAK8H,QAAQqE,MAAMrF,OAE5BwF,EAAKzF,GAAS,EAAE7G,KAAKkI,OAAOxC,GAC5B6G,EAAK1F,GAAS7G,KAAKkI,OAAOxC,EAE1B8G,EAAK1F,GAAU,EAAE9G,KAAKkI,OAAOvC,GAC7B8G,EAAK3F,GAAU9G,KAAKkI,OAAOvC,EAE3BpD,EAAiB0D,GAAUjG,KAAKuC,eAEhCwC,EAAIxC,EAAewC,EACnBC,EAAIzC,EAAeyC,EACnBC,EAAI1C,EAAe0C,EACnBC,EAAI3C,EAAe2C,EACnBC,EAAK5C,EAAe4C,GACpBC,EAAK7C,EAAe6C,GAEpBoF,GAAQF,IACRG,GAAQH,IAERD,EAAOC,IACPC,EAAOD,GAEX,IAAU,IAANtF,GAAiB,IAANC,EAGH,EAAJF,IAAOA,GAAK,IACR,EAAJG,IAAOA,GAAK,IAIhBmF,EAAOtF,EAAIwH,EAAKpH,EAChBqF,EAAOzF,EAAIuH,EAAKnH,EAChBoF,EAAOrF,EAAIuH,EAAKrH,EAChBqF,EAAOvF,EAAIsH,EAAKpH,MAGpB,CACI,GAAIsH,GAAK3H,EAAIwH,EAAKtH,EAAIwH,EAAKtH,EACvBwH,EAAKzH,EAAIuH,EAAKzH,EAAIuH,EAAKnH,EAEvBwH,EAAK7H,EAAIuH,EAAKrH,EAAIwH,EAAKtH,EACvB0H,EAAK3H,EAAIuH,EAAKzH,EAAIsH,EAAKlH,EAEvB0H,EAAK/H,EAAIuH,EAAKrH,EAAIuH,EAAKrH,EACvB4H,EAAK7H,EAAIsH,EAAKxH,EAAIsH,EAAKlH,EAEvB4H,EAAMjI,EAAIwH,EAAKtH,EAAIuH,EAAKrH,EACxB8H,EAAM/H,EAAIsH,EAAKxH,EAAIuH,EAAKnH,CAE5BiF,GAAYA,EAALqC,EAAYA,EAAKrC,EACxBA,EAAYA,EAALuC,EAAYA,EAAKvC,EACxBA,EAAYA,EAALyC,EAAYA,EAAKzC,EACxBA,EAAYA,EAAL2C,EAAYA,EAAK3C,EAExBE,EAAYA,EAALoC,EAAYA,EAAKpC,EACxBA,EAAYA,EAALsC,EAAYA,EAAKtC,EACxBA,EAAYA,EAALwC,EAAYA,EAAKxC,EACxBA,EAAYA,EAAL0C,EAAYA,EAAK1C,EAExBC,EAAOkC,EAAKlC,EAAOkC,EAAKlC,EACxBA,EAAOoC,EAAKpC,EAAOoC,EAAKpC,EACxBA,EAAOsC,EAAKtC,EAAOsC,EAAKtC,EACxBA,EAAOwC,EAAKxC,EAAOwC,EAAKxC,EAExBC,EAAOkC,EAAKlC,EAAOkC,EAAKlC,EACxBA,EAAOoC,EAAKpC,EAAOoC,EAAKpC,EACxBA,EAAOsC,EAAKtC,EAAOsC,EAAKtC,EACxBA,EAAOwC,EAAKxC,EAAOwC,EAAKxC,EAG5B,GAAI/D,GAAS1G,KAAK+C,OAWlB,OATA2D,GAAOhB,EAAI2E,EACX3D,EAAOG,MAAQ2D,EAAOH,EAEtB3D,EAAOf,EAAI4E,EACX7D,EAAOI,OAAS2D,EAAOF,EAGvBvK,KAAKiD,eAAiByD,EAEfA,GAWX5G,EAAK6H,OAAOtE,UAAUuE,aAAe,SAASJ,EAAevB,GAGzD,GAAKjG,KAAKiC,WAAWjC,KAAKgC,OAAS,IAAMhC,KAAKmC,WAA9C,CAGA,GAAImD,GAAKtF,KAAKuC,cAQd,IANI0D,IAEAX,EAAKW,GAILjG,KAAKkD,OAASlD,KAAKmE,SACvB,CACI,GAAIyG,GAAcpD,EAAcoD,WAG5B5K,MAAKmE,WAELyG,EAAYC,QACZrD,EAAcsD,cAAcC,WAAW/K,KAAKwE,eAG5CxE,KAAKkD,QAEL0H,EAAYI,OACZxD,EAAcyD,YAAYC,SAASlL,KAAKmL,KAAM3D,GAC9CoD,EAAYQ,SAIhBR,EAAY5D,OAAOhH,KAGnB,KAAK,GAAIyD,GAAI,EAAGA,EAAIzD,KAAKwD,SAASE,OAAQD,IAEtCzD,KAAKwD,SAASC,GAAGmE,aAAaJ,EAIlCoD,GAAYI,OAERhL,KAAKkD,OAAOsE,EAAcyD,YAAYI,QAAQrL,KAAKkD,MAAOsE,GAC1DxH,KAAKmE,UAAUqD,EAAcsD,cAAcQ,YAE/CV,EAAYQ,YAGhB,CACI5D,EAAcoD,YAAY5D,OAAOhH,KAGjC,KAAK,GAAIyD,GAAI,EAAGA,EAAIzD,KAAKwD,SAASE,OAAQD,IAEtCzD,KAAKwD,SAASC,GAAGmE,aAAaJ,EAAelC,MAczDxF,EAAK6H,OAAOtE,UAAUwE,cAAgB,SAASL,EAAevB,GAG1D,KAAIjG,KAAKiC,WAAY,GAAwB,IAAfjC,KAAKgC,OAAehC,KAAKmC,cAAe,GAASnC,KAAK8H,QAAQoF,KAAKrG,OAAS,GAAK7G,KAAK8H,QAAQoF,KAAKpG,QAAU,GAA3I,CAKA,GAAIxB,GAAKtF,KAAKuC,cAoBd,IAjBI0D,IAEAX,EAAKW,GAGLjG,KAAK4L,YAAcpE,EAAc2F,mBAEjC3F,EAAc2F,iBAAmBnN,KAAK4L,UACtCpE,EAAc4F,QAAQC,yBAA2BvN,EAAKwN,iBAAiB9F,EAAc2F,mBAGrFnN,KAAKkD,OAELsE,EAAcyD,YAAYC,SAASlL,KAAKkD,MAAOsE,GAI/CxH,KAAK8H,QAAQuE,MACjB,CACI,GAAIhL,GAAarB,KAAK8H,QAAQkE,YAAY3K,WAAamG,EAAcnG,UAErEmG,GAAc4F,QAAQG,YAAcvN,KAAKsC,WAGrCkF,EAAcgG,gBAAkBhG,EAAchB,YAAcxG,KAAK8H,QAAQkE,YAAYxF,YAErFgB,EAAchB,UAAYxG,KAAK8H,QAAQkE,YAAYxF,UACnDgB,EAAc4F,QAAQ5F,EAAcgG,gBAAmBhG,EAAchB,YAAc1G,EAAK2N,WAAWC,OAIvG,IAAIC,GAAM3N,KAAK8H,QAAY,KAAI9H,KAAK8H,QAAQ8F,KAAKlI,EAAI1F,KAAKkI,OAAOxC,EAAI1F,KAAK8H,QAAQ8F,KAAK/G,MAAQ7G,KAAKkI,OAAOxC,GAAK1F,KAAK8H,QAAQqE,MAAMtF,MAC/HgH,EAAM7N,KAAK8H,QAAY,KAAI9H,KAAK8H,QAAQ8F,KAAKjI,EAAI3F,KAAKkI,OAAOvC,EAAI3F,KAAK8H,QAAQ8F,KAAK9G,OAAS9G,KAAKkI,OAAOvC,GAAK3F,KAAK8H,QAAQqE,MAAMrF,MAGhIU,GAAcsG,aAEdtG,EAAc4F,QAAQW,aAAazI,EAAGP,EAAGO,EAAGN,EAAGM,EAAGL,EAAGK,EAAGJ,EAAII,EAAGH,GAAKqC,EAAcnG,WAAc,EAAIiE,EAAGF,GAAKoC,EAAcnG,WAAc,GACxIsM,EAAU,EAALA,EACLE,EAAU,EAALA,GAILrG,EAAc4F,QAAQW,aAAazI,EAAGP,EAAGO,EAAGN,EAAGM,EAAGL,EAAGK,EAAGJ,EAAGI,EAAGH,GAAKqC,EAAcnG,WAAYiE,EAAGF,GAAKoC,EAAcnG,WAGvH,IAAI2M,GAAKhO,KAAK8H,QAAQoF,KAAKrG,MACvBoH,EAAKjO,KAAK8H,QAAQoF,KAAKpG,MAK3B,IAHA6G,GAAMtM,EACNwM,GAAMxM,EAEY,WAAdrB,KAAKyL,MAEDzL,KAAK8H,QAAQoG,gBAAkBlO,KAAK0L,aAAe1L,KAAKyL,QAExDzL,KAAK2L,cAAgB7L,EAAKqO,aAAaC,iBAAiBpO,KAAMA,KAAKyL,MAEnEzL,KAAK0L,WAAa1L,KAAKyL,MAG3BjE,EAAc4F,QAAQiB,UAAUrO,KAAK2L,cAAe,EAAG,EAAGqC,EAAIC,EAAIN,EAAIE,EAAIG,EAAK3M,EAAY4M,EAAK5M,OAGpG,CACI,GAAIiN,GAAKtO,KAAK8H,QAAQoF,KAAKxH,EACvB6I,EAAKvO,KAAK8H,QAAQoF,KAAKvH,CAC3B6B,GAAc4F,QAAQiB,UAAUrO,KAAK8H,QAAQkE,YAAYwC,OAAQF,EAAIC,EAAIP,EAAIC,EAAIN,EAAIE,EAAIG,EAAK3M,EAAY4M,EAAK5M,IAIvH,IAAK,GAAIoC,GAAI,EAAGA,EAAIzD,KAAKwD,SAASE,OAAQD,IAEtCzD,KAAKwD,SAASC,GAAGoE,cAAcL,EAG/BxH,MAAKkD,OAELsE,EAAcyD,YAAYI,QAAQ7D,KAiB1C1H,EAAK6H,OAAO8G,UAAY,SAASC,GAE7B,GAAI5G,GAAUhI,EAAK6O,aAAaD,EAEhC,KAAK5G,EAAS,KAAM,IAAIe,OAAM,gBAAkB6F,EAAU,wCAA0C1O,KAEpG,OAAO,IAAIF,GAAK6H,OAAOG,IAa3BhI,EAAK6H,OAAOiH,UAAY,SAASC,EAASC,EAAatI,GAEnD,GAAIsB,GAAUhI,EAAKyL,QAAQqD,UAAUC,EAASC,EAAatI,EAE3D,OAAO,IAAI1G,GAAK6H,OAAOG,IA2B3BhI,EAAKiP,YAAc,SAASjH,GAExBhI,EAAKqI,uBAAuBrC,KAAM9F,MAElCA,KAAKgP,aAAelH,EAEpB9H,KAAKiP,OAAQ,GAGjBnP,EAAKiP,YAAY1L,UAAYO,OAAOwE,OAAOtI,EAAKqI,uBAAuB9E,WACvEvD,EAAKiP,YAAY1L,UAAUC,YAAcxD,EAAKiP,YAQ9CjP,EAAKiP,YAAY1L,UAAU6L,UAAY,SAASxH,GAG5C1H,KAAKmP,gBAAkB,GAAIrP,GAAKsP,qBAAqB1H,GAErD1H,KAAKiP,OAAQ,GASjBnP,EAAKiP,YAAY1L,UAAUsB,gBAAkB,WAGzC3E,KAAK+F,gCAWTjG,EAAKiP,YAAY1L,UAAUuE,aAAe,SAASJ,IAE1CxH,KAAKiC,SAAWjC,KAAKgC,OAAS,IAAMhC,KAAKwD,SAASE,SAElD1D,KAAKiP,OAENjP,KAAKkP,UAAU1H,EAAcE,IAG7B1H,KAAKmP,gBAAgBzH,KAAOF,EAAcE,IAE1C1H,KAAKmP,gBAAgBE,WAAW7H,EAAcE,IAGlDF,EAAcoD,YAAYI,OAE1BxD,EAAc8H,cAAcC,UAAU/H,EAAc8H,cAAcE,YAElExP,KAAKmP,gBAAgBtF,MAAM7J,KAAMwH,GACjCxH,KAAKmP,gBAAgBnI,OAAOhH,MAE5BwH,EAAcoD,YAAYQ,UAW9BtL,EAAKiP,YAAY1L,UAAUwE,cAAgB,SAASL,GAEhD,GAAKxH,KAAKiC,WAAWjC,KAAKgC,OAAS,IAAMhC,KAAKwD,SAASE,OAAvD,CAEA,GAAI0J,GAAU5F,EAAc4F,OAE5BA,GAAQG,YAAcvN,KAAKsC,WAE3BtC,KAAK+F,8BAML,KAAK,GAJD0J,GAAYzP,KAAKuC,eAEjBmN,GAAY,EAEPjM,EAAI,EAAGA,EAAIzD,KAAKwD,SAASE,OAAQD,IAC1C,CACI,GAAI+E,GAAQxI,KAAKwD,SAASC,EAE1B,IAAK+E,EAAMvG,QAAX,CAEA,GAAI6F,GAAUU,EAAMV,QAChBqE,EAAQrE,EAAQqE,KAIpB,IAFAiB,EAAQG,YAAcvN,KAAKsC,WAAakG,EAAMxG,MAE1CwG,EAAMzG,UAAsB,EAAVpB,KAAKC,MAAY,EAE/B8O,IAEAtC,EAAQW,aAAa0B,EAAU1K,EAAG0K,EAAUzK,EAAGyK,EAAUxK,EAAGwK,EAAUvK,EAAGuK,EAAUtK,GAAIsK,EAAUrK,IACjGsK,GAAY,GAIhBtC,EAAQiB,UAAUvG,EAAQkE,YAAYwC,OACjBrC,EAAMzG,EACNyG,EAAMxG,EACNwG,EAAMtF,MACNsF,EAAMrF,OACJ0B,EAAMN,OAAQ,GAAMiE,EAAMtF,MAAQ2B,EAAM7G,MAAM+D,EAAK8C,EAAM/G,SAASiE,EAAK,GAAO,EAC9E8C,EAAMN,OAAQ,GAAMiE,EAAMrF,OAAS0B,EAAM7G,MAAMgE,EAAK6C,EAAM/G,SAASkE,EAAK,GAAO,EACjFwG,EAAMtF,MAAQ2B,EAAM7G,MAAM+D,EAC1ByG,EAAMrF,OAAS0B,EAAM7G,MAAMgE,OAGpD,CACS+J,IAAWA,GAAY,GAE5BlH,EAAMzC,8BAEN,IAAI4J,GAAiBnH,EAAMjG,cAIvBiF,GAAcsG,YAEdV,EAAQW,aAAa4B,EAAe5K,EAAG4K,EAAe3K,EAAG2K,EAAe1K,EAAG0K,EAAezK,EAAuB,EAApByK,EAAexK,GAA4B,EAApBwK,EAAevK,IAInIgI,EAAQW,aAAa4B,EAAe5K,EAAG4K,EAAe3K,EAAG2K,EAAe1K,EAAG0K,EAAezK,EAAGyK,EAAexK,GAAIwK,EAAevK,IAGnIgI,EAAQiB,UAAUvG,EAAQkE,YAAYwC,OACjBrC,EAAMzG,EACNyG,EAAMxG,EACNwG,EAAMtF,MACNsF,EAAMrF,OACJ0B,EAAMN,OAAQ,GAAMiE,EAAMtF,MAAS,GAAO,EAC1C2B,EAAMN,OAAQ,GAAMiE,EAAMrF,OAAU,GAAO,EAC7CqF,EAAMtF,MACNsF,EAAMrF,aA0BvChH,EAAK8P,MAAQ,SAASC,GAElB/P,EAAKqI,uBAAuBrC,KAAM9F,MAUlCA,KAAKuC,eAAiB,GAAIzC,GAAK0C,OAG/BxC,KAAKqC,MAAQrC,KAEbA,KAAK8P,mBAAmBD,IAI5B/P,EAAK8P,MAAMvM,UAAYO,OAAOwE,OAAQtI,EAAKqI,uBAAuB9E,WAClEvD,EAAK8P,MAAMvM,UAAUC,YAAcxD,EAAK8P,MAQxC9P,EAAK8P,MAAMvM,UAAUsB,gBAAkB,WAEnC3E,KAAKsC,WAAa,CAElB,KAAK,GAAImB,GAAI,EAAGA,EAAIzD,KAAKwD,SAASE,OAAQD,IAEtCzD,KAAKwD,SAASC,GAAGkB,mBAWzB7E,EAAK8P,MAAMvM,UAAUyM,mBAAqB,SAASD,GAE/C7P,KAAK6P,gBAAkBA,GAAmB,EAC1C7P,KAAK+P,qBAAuBjQ,EAAKkQ,QAAQhQ,KAAK6P,gBAC9C,IAAII,GAAMjQ,KAAK6P,gBAAgBK,SAAS,GACxCD,GAAM,SAASE,OAAO,EAAG,EAAIF,EAAIvM,QAAUuM,EAC3CjQ,KAAKoQ,sBAAwB,IAAMH,GAavCnQ,EAAKkQ,QAAU,SAASC,GACpB,QAASA,GAAO,GAAK,KAAQ,KAAOA,GAAO,EAAI,KAAQ,KAAY,IAANA,GAAa,MAS9EnQ,EAAKuQ,QAAU,SAASC,GACpB,OAAgB,IAAPA,EAAI,IAAU,KAAc,IAAPA,EAAI,IAAU,GAAY,IAAPA,EAAI,IASzDxQ,EAAKyQ,0BAA4B,WAE7B,GAAiB9G,SAAb+G,SAAwB,OAAO,CAEnC,IAAIC,GAAU,iFACVC,EAAS,mDAETC,EAAU,GAAIC,MAClBD,GAAQE,IAAMJ,EAAU,WAAaC,CAErC,IAAII,GAAS,GAAIF,MACjBE,GAAOD,IAAMJ,EAAU,WAAaC,CAEpC,IAAIK,GAASP,SAASQ,cAAc,SACpCD,GAAOlK,MAAQ,EACfkK,EAAOjK,OAAS,CAChB,IAAIsG,GAAU2D,EAAOE,WAAW,KAKhC,IAJA7D,EAAQC,yBAA2B,WACnCD,EAAQiB,UAAUsC,EAAS,EAAG,GAC9BvD,EAAQiB,UAAUyC,EAAQ,EAAG,IAExB1D,EAAQ8D,aAAa,EAAE,EAAE,EAAE,GAE5B,OAAO,CAGX,IAAIC,GAAO/D,EAAQ8D,aAAa,EAAE,EAAE,EAAE,GAAGC,IAEzC,OAAoB,OAAZA,EAAK,IAA0B,IAAZA,EAAK,IAAwB,IAAZA,EAAK,IAWrDrR,EAAKsR,kBAAoB,SAASC,GAE9B,GAAIA,EAAS,GAAiC,KAA3BA,EAAUA,EAAS,GAClC,MAAOA,EAIP,KADA,GAAIC,GAAS,EACGD,EAATC,GAAiBA,IAAW,CACnC,OAAOA,IAWfxR,EAAKyR,aAAe,SAAS1K,EAAOC,GAEhC,MAAQD,GAAQ,GAA+B,KAAzBA,EAASA,EAAQ,IAAaC,EAAS,GAAiC,KAA3BA,EAAUA,EAAS,IA2C1FhH,EAAK0R,SAOL1R,EAAK0R,MAAMC,YAAc,SAAS5M,GAE9B,GAAI6M,IAAO,EAEPC,EAAI9M,EAAEnB,QAAU,CACpB,IAAO,EAAJiO,EAAO,QAIV,KAAI,GAFAC,MACAC,KACIpO,EAAI,EAAOkO,EAAJlO,EAAOA,IAAKoO,EAAItN,KAAKd,EAEpCA,GAAI,CAEJ,KADA,GAAIqO,GAAKH,EACHG,EAAK,GACX,CACI,GAAIC,GAAKF,GAAKpO,EAAE,GAAGqO,GACfE,EAAKH,GAAKpO,EAAE,GAAGqO,GACfG,EAAKJ,GAAKpO,EAAE,GAAGqO,GAEfI,EAAKrN,EAAE,EAAEkN,GAAMI,EAAKtN,EAAE,EAAEkN,EAAG,GAC3BK,EAAKvN,EAAE,EAAEmN,GAAMK,EAAKxN,EAAE,EAAEmN,EAAG,GAC3B1D,EAAKzJ,EAAE,EAAEoN,GAAM1D,EAAK1J,EAAE,EAAEoN,EAAG,GAE3BK,GAAW,CACf,IAAGxS,EAAK0R,MAAMe,QAAQL,EAAIC,EAAIC,EAAIC,EAAI/D,EAAIC,EAAImD,GAC9C,CACIY,GAAW,CACX,KAAI,GAAIhO,GAAI,EAAOwN,EAAJxN,EAAQA,IACvB,CACI,GAAIkO,GAAKX,EAAIvN,EACb,IAAGkO,IAAOT,GAAMS,IAAOR,GAAMQ,IAAOP,GAEjCnS,EAAK0R,MAAMiB,iBAAiB5N,EAAE,EAAE2N,GAAK3N,EAAE,EAAE2N,EAAG,GAAIN,EAAIC,EAAIC,EAAIC,EAAI/D,EAAIC,GAAK,CACxE+D,GAAW,CACX,SAKZ,GAAGA,EAECV,EAAIrN,KAAKwN,EAAIC,EAAIC,GACjBJ,EAAIjJ,QAAQnF,EAAE,GAAGqO,EAAI,GACrBA,IACArO,EAAI,MAEH,IAAGA,IAAM,EAAEqO,EAChB,CAGI,IAAGJ,EAcC,MAAO,KAVP,KAFAE,KACAC,KACIpO,EAAI,EAAOkO,EAAJlO,EAAOA,IAAKoO,EAAItN,KAAKd,EAEhCA,GAAI,EACJqO,EAAKH,EAELD,GAAO,GAWnB,MADAE,GAAIrN,KAAKsN,EAAI,GAAIA,EAAI,GAAIA,EAAI,IACtBD,GAkBX9R,EAAK0R,MAAMiB,iBAAmB,SAASC,EAAIC,EAAIT,EAAIC,EAAIC,EAAIC,EAAI/D,EAAIC,GAE/D,GAAIqE,GAAMtE,EAAG4D,EACTW,EAAMtE,EAAG4D,EACTW,EAAMV,EAAGF,EACTa,EAAMV,EAAGF,EACTa,EAAMN,EAAGR,EACTe,EAAMN,EAAGR,EAETe,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,GAUxC3T,EAAK0R,MAAMe,QAAU,SAASL,EAAIC,EAAIC,EAAIC,EAAI/D,EAAIC,EAAImD,GAElD,OAASS,EAAGE,IAAK/D,EAAG8D,IAAOA,EAAGF,IAAK3D,EAAG8D,IAAO,IAAOX,GAYxD5R,EAAK4T,mBAAqB,aAW1B5T,EAAK6T,oBAAsB,SAASjM,EAAIkM,GAEpC,MAAO9T,GAAK+T,eAAenM,EAAIkM,EAAWlM,EAAGoM,gBAUjDhU,EAAKiU,sBAAwB,SAASrM,EAAIkM,GAEtC,MAAO9T,GAAK+T,eAAenM,EAAIkM,EAAWlM,EAAGsM,kBAYjDlU,EAAK+T,eAAiB,SAASnM,EAAIkM,EAAWK,GAE1C,GAAIpD,GAAM+C,CAENnT,OAAMyT,QAAQN,KAEd/C,EAAM+C,EAAUO,KAAK,MAGzB,IAAIpI,GAASrE,EAAG0M,aAAaH,EAI7B,OAHAvM,GAAG2M,aAAatI,EAAQ8E,GACxBnJ,EAAG4M,cAAcvI,GAEZrE,EAAG6M,mBAAmBxI,EAAQrE,EAAG8M,gBAM/BzI,GAJH0I,OAAOC,QAAQC,IAAIjN,EAAGkN,iBAAiB7I,IAChC,OAcfjM,EAAK+U,eAAiB,SAASnN,EAAIoN,EAAWC,GAE1C,GAAIC,GAAiBlV,EAAKiU,sBAAsBrM,EAAIqN,GAChDE,EAAenV,EAAK6T,oBAAoBjM,EAAIoN,GAE5CI,EAAgBxN,EAAGyN,eAWvB,OATAzN,GAAG0N,aAAaF,EAAeD,GAC/BvN,EAAG0N,aAAaF,EAAeF,GAC/BtN,EAAG2N,YAAYH,GAEVxN,EAAG4N,oBAAoBJ,EAAexN,EAAG6N,cAE1Cd,OAAOC,QAAQC,IAAI,gCAGhBO,GAaXpV,EAAK0V,WAAa,SAAS9N,GAOvB1H,KAAKI,KAAON,EAAKM,OAMjBJ,KAAK0H,GAAKA,EAOV1H,KAAKyV,QAAU,KAOfzV,KAAK+U,aACD,wBACA,8BACA,uBACA,8BACA,oBACA,kEACA,KAQJ/U,KAAK0V,aAAe,EAQpB1V,KAAK2V,UAAW,EAOhB3V,KAAK4V,OAAQ,EAQb5V,KAAK6V,cAEL7V,KAAK8V,QAGThW,EAAK0V,WAAWnS,UAAUC,YAAcxD,EAAK0V,WAO7C1V,EAAK0V,WAAWnS,UAAUyS,KAAO,WAE7B,GAAIpO,GAAK1H,KAAK0H,GAEV+N,EAAU3V,EAAK+U,eAAenN,EAAI1H,KAAK8U,WAAahV,EAAK0V,WAAWO,iBAAkB/V,KAAK+U,YAE/FrN,GAAGsO,WAAWP,GAGdzV,KAAKiW,SAAWvO,EAAGwO,mBAAmBT,EAAS,YAC/CzV,KAAKmW,iBAAmBzO,EAAGwO,mBAAmBT,EAAS,oBACvDzV,KAAKoW,aAAe1O,EAAGwO,mBAAmBT,EAAS,gBACnDzV,KAAKqW,WAAa3O,EAAGwO,mBAAmBT,EAAS,cAGjDzV,KAAKsW,gBAAkB5O,EAAG6O,kBAAkBd,EAAS,mBACrDzV,KAAKwW,cAAgB9O,EAAG6O,kBAAkBd,EAAS,iBACnDzV,KAAKyW,eAAiB/O,EAAG6O,kBAAkBd,EAAS,UAQzB,KAAxBzV,KAAKyW,iBAEJzW,KAAKyW,eAAiB,GAG1BzW,KAAK6V,YAAc7V,KAAKsW,gBAAiBtW,KAAKwW,cAAexW,KAAKyW,eAKlE,KAAK,GAAIC,KAAO1W,MAAK2W,SAGjB3W,KAAK2W,SAASD,GAAKE,gBAAkBlP,EAAGwO,mBAAmBT,EAASiB,EAGxE1W,MAAK6W,eAEL7W,KAAKyV,QAAUA,GAWnB3V,EAAK0V,WAAWnS,UAAUwT,aAAe,WAErC7W,KAAK0V,aAAe,CACpB,IACIoB,GADApP,EAAK1H,KAAK0H,EAGd,KAAK,GAAIgP,KAAO1W,MAAK2W,SACrB,CACIG,EAAU9W,KAAK2W,SAASD,EAExB,IAAIK,GAAOD,EAAQC,IAEN,eAATA,GAEAD,EAAQE,OAAQ,EAEM,OAAlBF,EAAQ7S,OAERjE,KAAKiX,cAAcH,IAGT,SAATC,GAA4B,SAATA,GAA4B,SAATA,GAG3CD,EAAQI,UAAW,EACnBJ,EAAQK,cAAgB,EAEX,SAATJ,EAEAD,EAAQM,OAAS1P,EAAG2P,iBAEN,SAATN,EAELD,EAAQM,OAAS1P,EAAG4P,iBAEN,SAATP,IAELD,EAAQM,OAAS1P,EAAG6P,oBAMxBT,EAAQM,OAAS1P,EAAG,UAAYqP,GAI5BD,EAAQK,cAFC,OAATJ,GAA0B,OAATA,EAEO,EAEV,OAATA,GAA0B,OAATA,EAEE,EAEV,OAATA,GAA0B,OAATA,EAEE,EAIA,KAYxCjX,EAAK0V,WAAWnS,UAAU4T,cAAgB,SAASH,GAE/C,GAAKA,EAAQ7S,OAAU6S,EAAQ7S,MAAM+H,aAAgB8K,EAAQ7S,MAAM+H,YAAYC,UAA/E,CAKA,GAAIvE,GAAK1H,KAAK0H,EAMd,IAJAA,EAAG8P,cAAc9P,EAAG,UAAY1H,KAAK0V,eACrChO,EAAG+P,YAAY/P,EAAGgQ,WAAYZ,EAAQ7S,MAAM+H,YAAY2L,YAAYjQ,EAAGkQ,KAGnEd,EAAQe,YACZ,CACI,GAAI1G,GAAO2F,EAAQe,YAYfC,EAAa3G,EAAc,UAAIA,EAAK2G,UAAYpQ,EAAGgG,OACnDqK,EAAa5G,EAAc,UAAIA,EAAK4G,UAAYrQ,EAAGgG,OACnDsK,EAAS7G,EAAU,MAAIA,EAAK6G,MAAQtQ,EAAGuQ,cACvCC,EAAS/G,EAAU,MAAIA,EAAK+G,MAAQxQ,EAAGuQ,cACvCE,EAAUhH,EAAc,UAAIzJ,EAAG0Q,UAAY1Q,EAAG2Q,IAUlD,IARIlH,EAAKmH,SAELN,EAAQtQ,EAAG6Q,OACXL,EAAQxQ,EAAG6Q,QAGf7Q,EAAG8Q,YAAY9Q,EAAG+Q,sBAAuBtH,EAAKuH,OAE1CvH,EAAKtK,MACT,CACI,GAAIA,GAASsK,EAAU,MAAIA,EAAKtK,MAAQ,IACpCC,EAAUqK,EAAW,OAAIA,EAAKrK,OAAS,EACvC6R,EAAUxH,EAAW,OAAIA,EAAKwH,OAAS,CAG3CjR,GAAGkR,WAAWlR,EAAGgQ,WAAY,EAAGS,EAAQtR,EAAOC,EAAQ6R,EAAQR,EAAQzQ,EAAGmR,cAAe,UAKzFnR,GAAGkR,WAAWlR,EAAGgQ,WAAY,EAAGS,EAAQzQ,EAAG2Q,KAAM3Q,EAAGmR,cAAe/B,EAAQ7S,MAAM+H,YAAYwC,OAGjG9G,GAAGoR,cAAcpR,EAAGgQ,WAAYhQ,EAAGqR,mBAAoBjB,GACvDpQ,EAAGoR,cAAcpR,EAAGgQ,WAAYhQ,EAAGsR,mBAAoBjB,GACvDrQ,EAAGoR,cAAcpR,EAAGgQ,WAAYhQ,EAAGuR,eAAgBjB,GACnDtQ,EAAGoR,cAAcpR,EAAGgQ,WAAYhQ,EAAGwR,eAAgBhB,GAGvDxQ,EAAGyR,UAAUrC,EAAQF,gBAAiB5W,KAAK0V,cAE3CoB,EAAQE,OAAQ,EAEhBhX,KAAK0V,iBAST5V,EAAK0V,WAAWnS,UAAU+V,aAAe,WAErCpZ,KAAK0V,aAAe,CACpB,IAAIoB,GACApP,EAAK1H,KAAK0H,EAGd,KAAK,GAAIgP,KAAO1W,MAAK2W,SAEjBG,EAAU9W,KAAK2W,SAASD,GAEM,IAA1BI,EAAQK,cAEJL,EAAQI,YAAa,EAErBJ,EAAQM,OAAOtR,KAAK4B,EAAIoP,EAAQF,gBAAiBE,EAAQuC,UAAWvC,EAAQ7S,OAI5E6S,EAAQM,OAAOtR,KAAK4B,EAAIoP,EAAQF,gBAAiBE,EAAQ7S,OAG9B,IAA1B6S,EAAQK,cAEbL,EAAQM,OAAOtR,KAAK4B,EAAIoP,EAAQF,gBAAiBE,EAAQ7S,MAAMyB,EAAGoR,EAAQ7S,MAAM0B,GAEjD,IAA1BmR,EAAQK,cAEbL,EAAQM,OAAOtR,KAAK4B,EAAIoP,EAAQF,gBAAiBE,EAAQ7S,MAAMyB,EAAGoR,EAAQ7S,MAAM0B,EAAGmR,EAAQ7S,MAAMqV,GAElE,IAA1BxC,EAAQK,cAEbL,EAAQM,OAAOtR,KAAK4B,EAAIoP,EAAQF,gBAAiBE,EAAQ7S,MAAMyB,EAAGoR,EAAQ7S,MAAM0B,EAAGmR,EAAQ7S,MAAMqV,EAAGxC,EAAQ7S,MAAMsV,GAE5F,cAAjBzC,EAAQC,OAETD,EAAQE,OAERtP,EAAG8P,cAAc9P,EAAG,UAAY1H,KAAK0V,eAElCoB,EAAQ7S,MAAM+H,YAAYwN,OAAO9R,EAAGkQ,IAEnC9X,EAAK2Z,UAAU/R,EAAGkQ,IAAI8B,cAAc5C,EAAQ7S,MAAM+H,aAKlDtE,EAAG+P,YAAY/P,EAAGgQ,WAAYZ,EAAQ7S,MAAM+H,YAAY2L,YAAYjQ,EAAGkQ,KAI3ElQ,EAAGyR,UAAUrC,EAAQF,gBAAiB5W,KAAK0V,cAC3C1V,KAAK0V,gBAIL1V,KAAKiX,cAAcH,KAYnChX,EAAK0V,WAAWnS,UAAUE,QAAU,WAEhCvD,KAAK0H,GAAGiS,cAAe3Z,KAAKyV,SAC5BzV,KAAK2W,SAAW,KAChB3W,KAAK0H,GAAK,KAEV1H,KAAK6V,WAAa,MAStB/V,EAAK0V,WAAWO,kBACZ,kCACA,gCACA,yBAEA,iCACA,6BAEA,8BACA,uBAEA,uCAEA,oBACA,qGACA,oCACA,qDACA,KAWJjW,EAAK8Z,eAAiB,SAASlS,GAO3B1H,KAAKI,KAAON,EAAKM,OAMjBJ,KAAK0H,GAAKA,EAOV1H,KAAKyV,QAAU,KAOfzV,KAAK+U,aACD,wBACA,8BACA,wBACA,8BACA,oBACA,kEACA,KAQJ/U,KAAK8U,WACD,kCACA,iCACA,yBACA,6BACA,gCACA,0BAEA,iCACA,6BACA,wBAEA,8BACA,wBAEA,uCAEA,oBACA,aACA,yCACA,8DACA,8DACA,2DACA,uEACA,oCAEA,sBACA,KAQJ9U,KAAK0V,aAAe,EAEpB1V,KAAK8V,QAGThW,EAAK8Z,eAAevW,UAAUC,YAAcxD,EAAK8Z,eAOjD9Z,EAAK8Z,eAAevW,UAAUyS,KAAO,WAEjC,GAAIpO,GAAK1H,KAAK0H,GAEV+N,EAAU3V,EAAK+U,eAAenN,EAAI1H,KAAK8U,UAAW9U,KAAK+U,YAE3DrN,GAAGsO,WAAWP,GAGdzV,KAAKiW,SAAWvO,EAAGwO,mBAAmBT,EAAS,YAE/CzV,KAAKmW,iBAAmBzO,EAAGwO,mBAAmBT,EAAS,oBACvDzV,KAAKoW,aAAe1O,EAAGwO,mBAAmBT,EAAS,gBACnDzV,KAAKqW,WAAa3O,EAAGwO,mBAAmBT,EAAS,cACjDzV,KAAK6Z,QAAUnS,EAAGwO,mBAAmBT,EAAS,WAG9CzV,KAAKsW,gBAAkB5O,EAAG6O,kBAAkBd,EAAS,mBACrDzV,KAAK8Z,eAAiBpS,EAAG6O,kBAAkBd,EAAS,kBAEpDzV,KAAK+Z,OAASrS,EAAG6O,kBAAkBd,EAAS,UAC5CzV,KAAKga,UAAYtS,EAAG6O,kBAAkBd,EAAS,aAE/CzV,KAAKwW,cAAgB9O,EAAG6O,kBAAkBd,EAAS,iBACnDzV,KAAKyW,eAAiB/O,EAAG6O,kBAAkBd,EAAS,UAQzB,KAAxBzV,KAAKyW,iBAEJzW,KAAKyW,eAAiB,GAG1BzW,KAAK6V,YAAc7V,KAAKsW,gBAAiBtW,KAAK8Z,eAAiB9Z,KAAK+Z,OAAQ/Z,KAAKga,UAAWha,KAAKwW,cAAexW,KAAKyW,gBAIrHzW,KAAKyV,QAAUA,GAQnB3V,EAAK8Z,eAAevW,UAAUE,QAAU,WAEpCvD,KAAK0H,GAAGiS,cAAe3Z,KAAKyV,SAC5BzV,KAAK2W,SAAW,KAChB3W,KAAK0H,GAAK,KAEV1H,KAAK6V,WAAa,MAYtB/V,EAAKma,YAAc,SAASvS,GAOxB1H,KAAKI,KAAON,EAAKM,OAMjBJ,KAAK0H,GAAKA,EAOV1H,KAAKyV,QAAU,KAOfzV,KAAK+U,aACD,2BACA,8BAEA,uBACA,8BAEA,oBACA,yFAEA,KAQJ/U,KAAK8U,WACD,kCACA,gCACA,kCACA,iCACA,6BAGA,8BAGA,oBACA,+DACA,4BACA,qGACA,oCAEA,KAGJ9U,KAAK8V,QAGThW,EAAKma,YAAY5W,UAAUC,YAAcxD,EAAKma,YAO9Cna,EAAKma,YAAY5W,UAAUyS,KAAO,WAE9B,GAAIpO,GAAK1H,KAAK0H,GAEV+N,EAAU3V,EAAK+U,eAAenN,EAAI1H,KAAK8U,UAAW9U,KAAK+U,YAC3DrN,GAAGsO,WAAWP,GAGdzV,KAAKiW,SAAWvO,EAAGwO,mBAAmBT,EAAS,YAC/CzV,KAAKmW,iBAAmBzO,EAAGwO,mBAAmBT,EAAS,oBACvDzV,KAAKoW,aAAe1O,EAAGwO,mBAAmBT,EAAS,gBACnDzV,KAAKyW,eAAiB/O,EAAG6O,kBAAkBd,EAAS,UAIpDzV,KAAKsW,gBAAkB5O,EAAG6O,kBAAkBd,EAAS,mBACrDzV,KAAKwW,cAAgB9O,EAAG6O,kBAAkBd,EAAS,iBAEnDzV,KAAK6V,YAAc7V,KAAKsW,gBAAiBtW,KAAKwW,eAE9CxW,KAAKka,kBAAoBxS,EAAGwO,mBAAmBT,EAAS,qBACxDzV,KAAKgC,MAAQ0F,EAAGwO,mBAAmBT,EAAS,SAE5CzV,KAAKyV,QAAUA,GAQnB3V,EAAKma,YAAY5W,UAAUE,QAAU,WAEjCvD,KAAK0H,GAAGiS,cAAe3Z,KAAKyV,SAC5BzV,KAAK2W,SAAW,KAChB3W,KAAK0H,GAAK,KAEV1H,KAAKma,UAAY,MAYrBra,EAAKsa,gBAAkB,SAAS1S,GAO5B1H,KAAKI,KAAON,EAAKM,OAMjBJ,KAAK0H,GAAKA,EAOV1H,KAAKyV,QAAU,KAOfzV,KAAK+U,aACD,2BACA,uBAEA,oBACA,4BACA,KAQJ/U,KAAK8U,WACD,kCACA,yBACA,kCACA,iCACA,6BACA,uBACA,uBACA,qBACA,uBAEA,oBACA,+DACA,4BACA,iHACA,kDACA,KAGJ9U,KAAK8V,QAGThW,EAAKsa,gBAAgB/W,UAAUC,YAAcxD,EAAKsa,gBAOlDta,EAAKsa,gBAAgB/W,UAAUyS,KAAO,WAElC,GAAIpO,GAAK1H,KAAK0H,GAEV+N,EAAU3V,EAAK+U,eAAenN,EAAI1H,KAAK8U,UAAW9U,KAAK+U,YAC3DrN,GAAGsO,WAAWP,GAGdzV,KAAKmW,iBAAmBzO,EAAGwO,mBAAmBT,EAAS,oBACvDzV,KAAKoW,aAAe1O,EAAGwO,mBAAmBT,EAAS,gBACnDzV,KAAKqa,UAAY3S,EAAGwO,mBAAmBT,EAAS,QAChDzV,KAAK0Y,MAAQhR,EAAGwO,mBAAmBT,EAAS,SAG5CzV,KAAKsW,gBAAkB5O,EAAG6O,kBAAkBd,EAAS,mBACrDzV,KAAKyW,eAAiB/O,EAAG6O,kBAAkBd,EAAS,UAEpDzV,KAAK6V,YAAc7V,KAAKsW,gBAAiBtW,KAAKyW,gBAE9CzW,KAAKka,kBAAoBxS,EAAGwO,mBAAmBT,EAAS,qBACxDzV,KAAKgC,MAAQ0F,EAAGwO,mBAAmBT,EAAS,SAE5CzV,KAAKyV,QAAUA,GAQnB3V,EAAKsa,gBAAgB/W,UAAUE,QAAU,WAErCvD,KAAK0H,GAAGiS,cAAe3Z,KAAKyV,SAC5BzV,KAAK2W,SAAW,KAChB3W,KAAK0H,GAAK,KAEV1H,KAAK6V,WAAa,MAYtB/V,EAAKwa,uBAAyB,SAAS5S,GAOnC1H,KAAKI,KAAON,EAAKM,OAMjBJ,KAAK0H,GAAKA,EAOV1H,KAAKyV,QAAU,KAOfzV,KAAK+U,aAED,2BAEA,uBAEA,oBACA,4BACA,KAQJ/U,KAAK8U,WACD,kCAEA,kCACA,iCACA,6BAEA,qBACA,uBACA,sBACA,uBACA,uBAEA,oBACA,+DACA,4BACA,iHACA,iDACA,KAGJ9U,KAAK8V,QAGThW,EAAKwa,uBAAuBjX,UAAUC,YAAcxD,EAAKwa,uBAOzDxa,EAAKwa,uBAAuBjX,UAAUyS,KAAO,WAEzC,GAAIpO,GAAK1H,KAAK0H,GAEV+N,EAAU3V,EAAK+U,eAAenN,EAAI1H,KAAK8U,UAAW9U,KAAK+U,YAC3DrN,GAAGsO,WAAWP,GAGdzV,KAAKmW,iBAAmBzO,EAAGwO,mBAAmBT,EAAS,oBACvDzV,KAAKoW,aAAe1O,EAAGwO,mBAAmBT,EAAS,gBACnDzV,KAAKqa,UAAY3S,EAAGwO,mBAAmBT,EAAS,QAChDzV,KAAKua,MAAQ7S,EAAGwO,mBAAmBT,EAAS,SAC5CzV,KAAK0Y,MAAQhR,EAAGwO,mBAAmBT,EAAS,SAG5CzV,KAAKsW,gBAAkB5O,EAAG6O,kBAAkBd,EAAS,mBAGrDzV,KAAK6V,YAAc7V,KAAKsW,gBAAiBtW,KAAKyW,gBAE9CzW,KAAKka,kBAAoBxS,EAAGwO,mBAAmBT,EAAS,qBACxDzV,KAAKgC,MAAQ0F,EAAGwO,mBAAmBT,EAAS,SAE5CzV,KAAKyV,QAAUA,GAQnB3V,EAAKwa,uBAAuBjX,UAAUE,QAAU,WAE5CvD,KAAK0H,GAAGiS,cAAe3Z,KAAKyV,SAC5BzV,KAAK2W,SAAW,KAChB3W,KAAK0H,GAAK,KAEV1H,KAAKma,UAAY,MAcrBra,EAAK0a,cAAgB,aAarB1a,EAAK0a,cAAcC,eAAiB,SAASC,EAAUlT,GAEnD,GAIImT,GAJAjT,EAAKF,EAAcE,GACnBkT,EAAapT,EAAcoT,WAC3BC,EAASrT,EAAcqT,OACvB9O,EAASvE,EAAc8H,cAAcwL,eAGtCJ,GAAS9E,OAER9V,EAAK0a,cAAcO,eAAeL,EAAUhT,EAOhD,KAAK,GAJDsT,GAAQN,EAASO,OAAOvT,EAAGkQ,IAItBnU,EAAI,EAAGA,EAAIuX,EAAM7J,KAAKzN,OAAQD,IAET,IAAvBuX,EAAM7J,KAAK1N,GAAGyX,MAEbP,EAAYK,EAAM7J,KAAK1N,GAEvB+D,EAAc2T,eAAeC,YAAYV,EAAUC,EAAWnT,GAG9DE,EAAG2T,aAAa3T,EAAG4T,aAAc,EAAG5T,EAAG6T,eAAmD,GAAjCZ,EAAUa,QAAQ9X,OAAS,IAEpF8D,EAAc2T,eAAeM,WAAWf,EAAUC,EAAWnT,KAI7DmT,EAAYK,EAAM7J,KAAK1N,GAGvB+D,EAAc8H,cAAcC,UAAWxD,GACvCA,EAASvE,EAAc8H,cAAcwL,gBACrCpT,EAAG4P,iBAAiBvL,EAAOmO,mBAAmB,EAAOQ,EAASnY,eAAemZ,SAAQ,IAErFhU,EAAGiU,UAAU5P,EAAO2M,MAAO,GAE3BhR,EAAGkU,UAAU7P,EAAOoK,iBAAkByE,EAAWlV,GAAIkV,EAAWjV,GAChE+B,EAAGkU,UAAU7P,EAAOqK,cAAeyE,EAAOnV,GAAImV,EAAOlV,GAErD+B,EAAGmU,WAAW9P,EAAOsO,UAAWva,EAAKkQ,QAAQ0K,EAASjP,OAEtD/D,EAAGiU,UAAU5P,EAAO/J,MAAO0Y,EAASpY,YAGpCoF,EAAGoU,WAAWpU,EAAGqU,aAAcpB,EAAUqB,QAEzCtU,EAAGuU,oBAAoBlQ,EAAOuK,gBAAiB,EAAG5O,EAAGwU,OAAO,EAAO,GAAO,GAC1ExU,EAAGuU,oBAAoBlQ,EAAO0K,eAAgB,EAAG/O,EAAGwU,OAAO,EAAM,GAAO,GAGxExU,EAAGoU,WAAWpU,EAAGyU,qBAAsBxB,EAAUyB,aACjD1U,EAAG2T,aAAa3T,EAAG2U,eAAiB1B,EAAUa,QAAQ9X,OAAQgE,EAAG6T,eAAgB;EAc7Fzb,EAAK0a,cAAcO,eAAiB,SAASL,EAAUhT,GAGnD,GAAIsT,GAAQN,EAASO,OAAOvT,EAAGkQ,GAE3BoD,KAAMA,EAAQN,EAASO,OAAOvT,EAAGkQ,KAAO0E,UAAU,EAAGnL,QAASzJ,GAAGA,IAGrEgT,EAAS9E,OAAQ,CAEjB,IAAInS,EAGJ,IAAGiX,EAAS6B,WACZ,CAII,IAHA7B,EAAS6B,YAAa,EAGjB9Y,EAAI,EAAGA,EAAIuX,EAAM7J,KAAKzN,OAAQD,IACnC,CACI,GAAI+Y,GAAexB,EAAM7J,KAAK1N,EAC9B+Y,GAAaC,QACb3c,EAAK0a,cAAckC,iBAAiBnY,KAAMiY,GAI9CxB,EAAM7J,QACN6J,EAAMsB,UAAY,EAGtB,GAAI3B,EAKJ,KAAKlX,EAAIuX,EAAMsB,UAAW7Y,EAAIiX,EAAS8B,aAAa9Y,OAAQD,IAC5D,CACI,GAAI0N,GAAOuJ,EAAS8B,aAAa/Y,EAEjC,IAAG0N,EAAK4F,OAASjX,EAAK6c,SAASC,KAC/B,CAaI,GAXAzL,EAAK0L,OAAS1L,EAAK2L,MAAMD,OAAOE,QAC7B5L,EAAK2L,MAAME,SAGP7L,EAAK0L,OAAO,KAAO1L,EAAK0L,OAAO1L,EAAK0L,OAAOnZ,OAAO,IAAMyN,EAAK0L,OAAO,KAAO1L,EAAK0L,OAAO1L,EAAK0L,OAAOnZ,OAAO,KAEzGyN,EAAK0L,OAAOtY,KAAK4M,EAAK0L,OAAO,GAAI1L,EAAK0L,OAAO,IAKlD1L,EAAK8L,MAED9L,EAAK0L,OAAOnZ,QAAU,EAErB,GAAGyN,EAAK0L,OAAOnZ,OAAS,GACxB,CACIiX,EAAY7a,EAAK0a,cAAc0C,WAAWlC,EAAO,EAEjD,IAAImC,GAAqBrd,EAAK0a,cAAc4C,UAAUjM,EAAMwJ,EAGxDwC,KAGAxC,EAAY7a,EAAK0a,cAAc0C,WAAWlC,EAAO,GACjDlb,EAAK0a,cAAc6C,iBAAiBlM,EAAMwJ,QAM9CA,GAAY7a,EAAK0a,cAAc0C,WAAWlC,EAAO,GACjDlb,EAAK0a,cAAc6C,iBAAiBlM,EAAMwJ,EAKnDxJ,GAAKmM,UAAY,IAEhB3C,EAAY7a,EAAK0a,cAAc0C,WAAWlC,EAAO,GACjDlb,EAAK0a,cAAc+C,UAAUpM,EAAMwJ,QAMvCA,GAAY7a,EAAK0a,cAAc0C,WAAWlC,EAAO,GAE9C7J,EAAK4F,OAASjX,EAAK6c,SAASa,KAE3B1d,EAAK0a,cAAciD,eAAetM,EAAMwJ,GAEpCxJ,EAAK4F,OAASjX,EAAK6c,SAASe,MAAQvM,EAAK4F,OAASjX,EAAK6c,SAASgB,KAEpE7d,EAAK0a,cAAcoD,YAAYzM,EAAMwJ,GAEjCxJ,EAAK4F,OAASjX,EAAK6c,SAASkB,MAEhC/d,EAAK0a,cAAcsD,sBAAsB3M,EAAMwJ,EAIvDK,GAAMsB,YAIV,IAAK7Y,EAAI,EAAGA,EAAIuX,EAAM7J,KAAKzN,OAAQD,IAE/BkX,EAAYK,EAAM7J,KAAK1N,GACpBkX,EAAU/E,OAAM+E,EAAUoD,UAWrCje,EAAK0a,cAAc0C,WAAa,SAASlC,EAAOjE,GAE5C,GAAI4D,EAsBJ,OApBIK,GAAM7J,KAAKzN,QAQXiX,EAAYK,EAAM7J,KAAK6J,EAAM7J,KAAKzN,OAAO,IAEtCiX,EAAUO,OAASnE,GAAiB,IAATA,KAE1B4D,EAAY7a,EAAK0a,cAAckC,iBAAiBsB,OAAS,GAAIle,GAAKme,kBAAkBjD,EAAMtT,IAC1FiT,EAAUO,KAAOnE,EACjBiE,EAAM7J,KAAK5M,KAAKoW,MAZpBA,EAAY7a,EAAK0a,cAAckC,iBAAiBsB,OAAS,GAAIle,GAAKme,kBAAkBjD,EAAMtT,IAC1FiT,EAAUO,KAAOnE,EACjBiE,EAAM7J,KAAK5M,KAAKoW,IAcpBA,EAAU/E,OAAQ,EAEX+E,GAYX7a,EAAK0a,cAAciD,eAAiB,SAASjB,EAAc7B,GAKvD,GAAIuD,GAAW1B,EAAaM,MACxBpX,EAAIwY,EAASxY,EACbC,EAAIuY,EAASvY,EACbkB,EAAQqX,EAASrX,MACjBC,EAASoX,EAASpX,MAEtB,IAAG0V,EAAaS,KAChB,CACI,GAAI1C,GAAQza,EAAKkQ,QAAQwM,EAAa2B,WAClCnc,EAAQwa,EAAa4B,UAErBC,EAAI9D,EAAM,GAAKvY,EACfsc,EAAI/D,EAAM,GAAKvY,EACfgD,EAAIuV,EAAM,GAAKvY,EAEfuc,EAAQ5D,EAAUkC,OAClBrB,EAAUb,EAAUa,QAEpBgD,EAAUD,EAAM7a,OAAO,CAG3B6a,GAAMha,KAAKmB,EAAGC,GACd4Y,EAAMha,KAAK8Z,EAAGC,EAAGtZ,EAAGhD,GAEpBuc,EAAMha,KAAKmB,EAAImB,EAAOlB,GACtB4Y,EAAMha,KAAK8Z,EAAGC,EAAGtZ,EAAGhD,GAEpBuc,EAAMha,KAAKmB,EAAIC,EAAImB,GACnByX,EAAMha,KAAK8Z,EAAGC,EAAGtZ,EAAGhD,GAEpBuc,EAAMha,KAAKmB,EAAImB,EAAOlB,EAAImB,GAC1ByX,EAAMha,KAAK8Z,EAAGC,EAAGtZ,EAAGhD,GAGpBwZ,EAAQjX,KAAKia,EAASA,EAASA,EAAQ,EAAGA,EAAQ,EAAGA,EAAQ,EAAGA,EAAQ,GAG5E,GAAGhC,EAAac,UAChB,CACI,GAAImB,GAAajC,EAAaK,MAE9BL,GAAaK,QAAUnX,EAAGC,EAChBD,EAAImB,EAAOlB,EACXD,EAAImB,EAAOlB,EAAImB,EACfpB,EAAGC,EAAImB,EACPpB,EAAGC,GAGb7F,EAAK0a,cAAc+C,UAAUf,EAAc7B,GAE3C6B,EAAaK,OAAS4B,IAa9B3e,EAAK0a,cAAcsD,sBAAwB,SAAStB,EAAc7B,GAE9D,GAAI+D,GAAYlC,EAAaM,MACzBpX,EAAIgZ,EAAUhZ,EACdC,EAAI+Y,EAAU/Y,EACdkB,EAAQ6X,EAAU7X,MAClBC,EAAS4X,EAAU5X,OAEnB6X,EAASD,EAAUC,OAEnBC,IAOJ,IANAA,EAAUra,KAAKmB,EAAGC,EAAIgZ,GACtBC,EAAYA,EAAUC,OAAO/e,EAAK0a,cAAcsE,qBAAqBpZ,EAAGC,EAAImB,EAAS6X,EAAQjZ,EAAGC,EAAImB,EAAQpB,EAAIiZ,EAAQhZ,EAAImB,IAC5H8X,EAAYA,EAAUC,OAAO/e,EAAK0a,cAAcsE,qBAAqBpZ,EAAImB,EAAQ8X,EAAQhZ,EAAImB,EAAQpB,EAAImB,EAAOlB,EAAImB,EAAQpB,EAAImB,EAAOlB,EAAImB,EAAS6X,IACpJC,EAAYA,EAAUC,OAAO/e,EAAK0a,cAAcsE,qBAAqBpZ,EAAImB,EAAOlB,EAAIgZ,EAAQjZ,EAAImB,EAAOlB,EAAGD,EAAImB,EAAQ8X,EAAQhZ,IAC9HiZ,EAAYA,EAAUC,OAAO/e,EAAK0a,cAAcsE,qBAAqBpZ,EAAIiZ,EAAQhZ,EAAGD,EAAGC,EAAGD,EAAGC,EAAIgZ,IAE7FnC,EAAaS,KAAM,CACnB,GAAI1C,GAAQza,EAAKkQ,QAAQwM,EAAa2B,WAClCnc,EAAQwa,EAAa4B,UAErBC,EAAI9D,EAAM,GAAKvY,EACfsc,EAAI/D,EAAM,GAAKvY,EACfgD,EAAIuV,EAAM,GAAKvY,EAEfuc,EAAQ5D,EAAUkC,OAClBrB,EAAUb,EAAUa,QAEpBuD,EAASR,EAAM7a,OAAO,EAEtBsb,EAAYlf,EAAK0R,MAAMC,YAAYmN,GAInCnb,EAAI,CACR,KAAKA,EAAI,EAAGA,EAAIub,EAAUtb,OAAQD,GAAG,EAEjC+X,EAAQjX,KAAKya,EAAUvb,GAAKsb,GAC5BvD,EAAQjX,KAAKya,EAAUvb,GAAKsb,GAC5BvD,EAAQjX,KAAKya,EAAUvb,EAAE,GAAKsb,GAC9BvD,EAAQjX,KAAKya,EAAUvb,EAAE,GAAKsb,GAC9BvD,EAAQjX,KAAKya,EAAUvb,EAAE,GAAKsb,EAIlC,KAAKtb,EAAI,EAAGA,EAAImb,EAAUlb,OAAQD,IAE9B8a,EAAMha,KAAKqa,EAAUnb,GAAImb,IAAYnb,GAAI4a,EAAGC,EAAGtZ,EAAGhD,GAI1D,GAAIwa,EAAac,UAAW,CACxB,GAAImB,GAAajC,EAAaK,MAE9BL,GAAaK,OAAS+B,EAEtB9e,EAAK0a,cAAc+C,UAAUf,EAAc7B,GAE3C6B,EAAaK,OAAS4B,IAmB9B3e,EAAK0a,cAAcsE,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,EACAra,EACAC,EACAgM,EAAI,GACJkL,KAQAvY,EAAI,EACCb,EAAI,EAAQkO,GAALlO,EAAQA,IAEpBa,EAAIb,EAAIkO,EAGRiO,EAAKL,EAAON,EAAQE,EAAM7a,GAC1Bub,EAAKN,EAAOL,EAAQE,EAAM9a,GAC1Bwb,EAAKP,EAAOJ,EAAME,EAAM/a,GACxByb,EAAKR,EAAOH,EAAME,EAAMhb,GAGxBoB,EAAI6Z,EAAOK,EAAKE,EAAKxb,GACrBqB,EAAI4Z,EAAOM,EAAKE,EAAKzb,GAErBuY,EAAOtY,KAAKmB,EAAGC,EAEnB,OAAOkX,IAYX/c,EAAK0a,cAAcoD,YAAc,SAASpB,EAAc7B,GAGpD,GAGI9T,GACAC,EAJAkZ,EAAaxD,EAAaM,MAC1BpX,EAAIsa,EAAWta,EACfC,EAAIqa,EAAWra,CAKhB6W,GAAazF,OAASjX,EAAK6c,SAASe,MAEnC7W,EAAQmZ,EAAWrB,OACnB7X,EAASkZ,EAAWrB,SAIpB9X,EAAQmZ,EAAWnZ,MACnBC,EAASkZ,EAAWlZ,OAGxB,IAAImZ,GAAY,GACZC,EAAiB,EAAVvf,KAAKC,GAAUqf,EAEtBxc,EAAI,CAER,IAAG+Y,EAAaS,KAChB,CACI,GAAI1C,GAAQza,EAAKkQ,QAAQwM,EAAa2B,WAClCnc,EAAQwa,EAAa4B,UAErBC,EAAI9D,EAAM,GAAKvY,EACfsc,EAAI/D,EAAM,GAAKvY,EACfgD,EAAIuV,EAAM,GAAKvY,EAEfuc,EAAQ5D,EAAUkC,OAClBrB,EAAUb,EAAUa,QAEpBuD,EAASR,EAAM7a,OAAO,CAI1B,KAFA8X,EAAQjX,KAAKwa,GAERtb,EAAI,EAAOwc,EAAY,EAAhBxc,EAAoBA,IAE5B8a,EAAMha,KAAKmB,EAAEC,EAAG0Y,EAAGC,EAAGtZ,EAAGhD,GAEzBuc,EAAMha,KAAKmB,EAAI/E,KAAK6E,IAAI0a,EAAMzc,GAAKoD,EACxBlB,EAAIhF,KAAK8E,IAAIya,EAAMzc,GAAKqD,EACxBuX,EAAGC,EAAGtZ,EAAGhD,GAEpBwZ,EAAQjX,KAAKwa,IAAUA,IAG3BvD,GAAQjX,KAAKwa,EAAO,GAGxB,GAAGvC,EAAac,UAChB,CACI,GAAImB,GAAajC,EAAaK,MAI9B,KAFAL,EAAaK,UAERpZ,EAAI,EAAOwc,EAAY,EAAhBxc,EAAmBA,IAE3B+Y,EAAaK,OAAOtY,KAAKmB,EAAI/E,KAAK6E,IAAI0a,EAAMzc,GAAKoD,EACxBlB,EAAIhF,KAAK8E,IAAIya,EAAMzc,GAAKqD,EAGrDhH,GAAK0a,cAAc+C,UAAUf,EAAc7B,GAE3C6B,EAAaK,OAAS4B,IAa9B3e,EAAK0a,cAAc+C,UAAY,SAASf,EAAc7B,GAGlD,GAAIlX,GAAI,EACJoZ,EAASL,EAAaK,MAC1B,IAAqB,IAAlBA,EAAOnZ,OAAV,CAGA,GAAG8Y,EAAac,UAAU,EAEtB,IAAK7Z,EAAI,EAAGA,EAAIoZ,EAAOnZ,OAAQD,IAC3BoZ,EAAOpZ,IAAM,EAKrB,IAAI0c,GAAa,GAAIrgB,GAAK4B,MAAOmb,EAAO,GAAIA,EAAO,IAC/CuD,EAAY,GAAItgB,GAAK4B,MAAOmb,EAAOA,EAAOnZ,OAAS,GAAImZ,EAAOA,EAAOnZ,OAAS,GAGlF,IAAGyc,EAAWza,IAAM0a,EAAU1a,GAAKya,EAAWxa,IAAMya,EAAUza,EAC9D,CAEIkX,EAASA,EAAOE,QAEhBF,EAAOmB,MACPnB,EAAOmB,MAEPoC,EAAY,GAAItgB,GAAK4B,MAAOmb,EAAOA,EAAOnZ,OAAS,GAAImZ,EAAOA,EAAOnZ,OAAS,GAE9E,IAAI2c,GAAYD,EAAU1a,EAAkC,IAA7Bya,EAAWza,EAAI0a,EAAU1a,GACpD4a,EAAYF,EAAUza,EAAkC,IAA7Bwa,EAAWxa,EAAIya,EAAUza,EAExDkX,GAAO0D,QAAQF,EAAWC,GAC1BzD,EAAOtY,KAAK8b,EAAWC,GAG3B,GAgBI5N,GAAIC,EAAI6N,EAAKC,EAAKC,EAAKC,EAAKC,EAAKC,EACjCC,EAAOC,EAAOC,EAAQC,EAAQC,EAAQC,EACtCC,EAAIC,EAAIC,EAAIC,EAAIC,EAAIC,EACpBC,EAAOC,EAAOC,EAnBdrD,EAAQ5D,EAAUkC,OAClBrB,EAAUb,EAAUa,QACpB9X,EAASmZ,EAAOnZ,OAAS,EACzBme,EAAahF,EAAOnZ,OACpBoe,EAAavD,EAAM7a,OAAO,EAG1BmD,EAAQ2V,EAAac,UAAY,EAGjC/C,EAAQza,EAAKkQ,QAAQwM,EAAauF,WAClC/f,EAAQwa,EAAawF,UACrB3D,EAAI9D,EAAM,GAAKvY,EACfsc,EAAI/D,EAAM,GAAKvY,EACfgD,EAAIuV,EAAM,GAAKvY,CA8BnB,KAvBAwe,EAAM3D,EAAO,GACb4D,EAAM5D,EAAO,GAEb6D,EAAM7D,EAAO,GACb8D,EAAM9D,EAAO,GAEbiE,IAAUL,EAAME,GAChBI,EAASP,EAAME,EAEfkB,EAAOjhB,KAAKiF,KAAKkb,EAAMA,EAAQC,EAAMA,GAErCD,GAASc,EACTb,GAASa,EACTd,GAASja,EACTka,GAASla,EAGT0X,EAAMha,KAAKic,EAAMM,EAAQL,EAAMM,EACnB1C,EAAGC,EAAGtZ,EAAGhD,GAErBuc,EAAMha,KAAKic,EAAMM,EAAQL,EAAMM,EACnB1C,EAAGC,EAAGtZ,EAAGhD,GAEhByB,EAAI,EAAOC,EAAO,EAAXD,EAAcA,IAEtB+c,EAAM3D,EAAa,GAALpZ,EAAE,IAChBgd,EAAM5D,EAAa,GAALpZ,EAAE,GAAO,GAEvBid,EAAM7D,EAAW,EAAJ,GACb8D,EAAM9D,EAAW,EAAJ,EAAQ,GAErB+D,EAAM/D,EAAa,GAALpZ,EAAE,IAChBod,EAAMhE,EAAa,GAALpZ,EAAE,GAAO,GAEvBqd,IAAUL,EAAME,GAChBI,EAAQP,EAAME,EAEdkB,EAAOjhB,KAAKiF,KAAKkb,EAAMA,EAAQC,EAAMA,GACrCD,GAASc,EACTb,GAASa,EACTd,GAASja,EACTka,GAASla,EAETma,IAAWL,EAAME,GACjBI,EAASP,EAAME,EAEfgB,EAAOjhB,KAAKiF,KAAKob,EAAOA,EAASC,EAAOA,GACxCD,GAAUY,EACVX,GAAUW,EACVZ,GAAUna,EACVoa,GAAUpa,EAEVua,GAAOL,EAAQN,IAASM,EAAQJ,GAChCU,GAAOP,EAAQJ,IAASI,EAAQN,GAChCc,IAAOR,EAAQN,KAASO,EAAQJ,KAASG,EAAQJ,KAASK,EAAQN,GAClEc,GAAON,EAASJ,IAASI,EAASN,GAClCa,GAAOR,EAASN,IAASM,EAASJ,GAClCa,IAAOT,EAASJ,KAASK,EAASN,KAASK,EAASN,KAASO,EAASJ,GAEtEa,EAAQN,EAAGI,EAAKD,EAAGF,EAEhB1gB,KAAKshB,IAAIP,GAAS,IAGjBA,GAAO,KACPnD,EAAMha,KAAKmc,EAAMI,EAAQH,EAAMI,EAC3B1C,EAAGC,EAAGtZ,EAAGhD,GAEbuc,EAAMha,KAAKmc,EAAMI,EAAQH,EAAMI,EAC3B1C,EAAGC,EAAGtZ,EAAGhD,KAKjB0Q,GAAM2O,EAAGI,EAAKD,EAAGF,GAAII,EACrB/O,GAAM4O,EAAGD,EAAKF,EAAGK,GAAIC,EAGrBC,GAASjP,EAAIgO,IAAQhO,EAAIgO,IAAQ/N,EAAIgO,IAAQhO,EAAIgO,GAG9CgB,EAAQ,OAEPT,EAASJ,EAAQE,EACjBG,EAASJ,EAAQE,EAEjBW,EAAOjhB,KAAKiF,KAAKsb,EAAOA,EAASC,EAAOA,GACxCD,GAAUU,EACVT,GAAUS,EACVV,GAAUra,EACVsa,GAAUta,EAEV0X,EAAMha,KAAKmc,EAAMQ,EAAQP,EAAKQ,GAC9B5C,EAAMha,KAAK8Z,EAAGC,EAAGtZ,EAAGhD,GAEpBuc,EAAMha,KAAKmc,EAAMQ,EAAQP,EAAKQ,GAC9B5C,EAAMha,KAAK8Z,EAAGC,EAAGtZ,EAAGhD,GAEpBuc,EAAMha,KAAKmc,EAAMQ,EAAQP,EAAKQ,GAC9B5C,EAAMha,KAAK8Z,EAAGC,EAAGtZ,EAAGhD,GAEpB6f,MAKAtD,EAAMha,KAAKmO,EAAKC,GAChB4L,EAAMha,KAAK8Z,EAAGC,EAAGtZ,EAAGhD,GAEpBuc,EAAMha,KAAKmc,GAAOhO,EAAGgO,GAAMC,GAAOhO,EAAKgO,IACvCpC,EAAMha,KAAK8Z,EAAGC,EAAGtZ,EAAGhD,IA2B5B,KAvBAwe,EAAM3D,EAAkB,GAAVnZ,EAAO,IACrB+c,EAAM5D,EAAkB,GAAVnZ,EAAO,GAAO,GAE5Bgd,EAAM7D,EAAkB,GAAVnZ,EAAO,IACrBid,EAAM9D,EAAkB,GAAVnZ,EAAO,GAAO,GAE5Bod,IAAUL,EAAME,GAChBI,EAAQP,EAAME,EAEdkB,EAAOjhB,KAAKiF,KAAKkb,EAAMA,EAAQC,EAAMA,GACrCD,GAASc,EACTb,GAASa,EACTd,GAASja,EACTka,GAASla,EAET0X,EAAMha,KAAKmc,EAAMI,EAAQH,EAAMI,GAC/BxC,EAAMha,KAAK8Z,EAAGC,EAAGtZ,EAAGhD,GAEpBuc,EAAMha,KAAKmc,EAAMI,EAAQH,EAAMI,GAC/BxC,EAAMha,KAAK8Z,EAAGC,EAAGtZ,EAAGhD,GAEpBwZ,EAAQjX,KAAKud,GAERre,EAAI,EAAOoe,EAAJpe,EAAgBA,IAExB+X,EAAQjX,KAAKud,IAGjBtG,GAAQjX,KAAKud,EAAW,KAY5BhiB,EAAK0a,cAAc6C,iBAAmB,SAASb,EAAc7B,GAGzD,GAAIkC,GAASL,EAAaK,OAAOE,OACjC,MAAGF,EAAOnZ,OAAS,GAAnB,CAGA,GAAI8X,GAAUb,EAAUa,OACxBb,GAAUkC,OAASA,EACnBlC,EAAU3Y,MAAQwa,EAAa4B,UAC/BzD,EAAUJ,MAAQza,EAAKkQ,QAAQwM,EAAa2B,UAc5C,KAAK,GAHDzY,GAAEC,EANF0E,EAAOC,IACPE,GAAQF,IAERC,EAAOD,IACPG,GAAQH,IAKH7G,EAAI,EAAGA,EAAIoZ,EAAOnZ,OAAQD,GAAG,EAElCiC,EAAImX,EAAOpZ,GACXkC,EAAIkX,EAAOpZ,EAAE,GAEb4G,EAAWA,EAAJ3E,EAAWA,EAAI2E,EACtBG,EAAO9E,EAAI8E,EAAO9E,EAAI8E,EAEtBD,EAAWA,EAAJ5E,EAAWA,EAAI4E,EACtBE,EAAO9E,EAAI8E,EAAO9E,EAAI8E,CAI1BoS,GAAOtY,KAAK8F,EAAME,EACNC,EAAMD,EACNC,EAAMC,EACNJ,EAAMI,EAKlB,IAAI/G,GAASmZ,EAAOnZ,OAAS,CAC7B,KAAKD,EAAI,EAAOC,EAAJD,EAAYA,IAEpB+X,EAAQjX,KAAMd,KActB3D,EAAK0a,cAAc4C,UAAY,SAASZ,EAAc7B,GAElD,GAAIkC,GAASL,EAAaK,MAE1B,MAAGA,EAAOnZ,OAAS,GAAnB,CAEA,GAAI6a,GAAQ5D,EAAUkC,OAClBrB,EAAUb,EAAUa,QAEpB9X,EAASmZ,EAAOnZ,OAAS,EAGzB6W,EAAQza,EAAKkQ,QAAQwM,EAAa2B,WAClCnc,EAAQwa,EAAa4B,UACrBC,EAAI9D,EAAM,GAAKvY,EACfsc,EAAI/D,EAAM,GAAKvY,EACfgD,EAAIuV,EAAM,GAAKvY,EAEfgd,EAAYlf,EAAK0R,MAAMC,YAAYoL,EAEvC,KAAImC,EAAU,OAAO,CAErB,IAAIR,GAAUD,EAAM7a,OAAS,EAEzBD,EAAI,CAER,KAAKA,EAAI,EAAGA,EAAIub,EAAUtb,OAAQD,GAAG,EAEjC+X,EAAQjX,KAAKya,EAAUvb,GAAK+a,GAC5BhD,EAAQjX,KAAKya,EAAUvb,GAAK+a,GAC5BhD,EAAQjX,KAAKya,EAAUvb,EAAE,GAAK+a,GAC9BhD,EAAQjX,KAAKya,EAAUvb,EAAE,GAAI+a,GAC7BhD,EAAQjX,KAAKya,EAAUvb,EAAE,GAAK+a,EAGlC,KAAK/a,EAAI,EAAOC,EAAJD,EAAYA,IAEpB8a,EAAMha,KAAKsY,EAAW,EAAJpZ,GAAQoZ,EAAW,EAAJpZ,EAAQ,GAC9B4a,EAAGC,EAAGtZ,EAAGhD,EAGxB,QAAO,IAGXlC,EAAK0a,cAAckC,oBAOnB5c,EAAKme,kBAAoB,SAASvW,GAE9B1H,KAAK0H,GAAKA,EAGV1H,KAAKua,OAAS,EAAE,EAAE,GAClBva,KAAK6c,UACL7c,KAAKwb,WACLxb,KAAKgc,OAAStU,EAAGwa,eACjBliB,KAAKoc,YAAc1U,EAAGwa,eACtBliB,KAAKkb,KAAO,EACZlb,KAAKgC,MAAQ,EACbhC,KAAK4V,OAAQ,GAMjB9V,EAAKme,kBAAkB5a,UAAUoZ,MAAQ,WAErCzc,KAAK6c,UACL7c,KAAKwb,YAMT1b,EAAKme,kBAAkB5a,UAAU0a,OAAS,WAEtC,GAAIrW,GAAK1H,KAAK0H,EAGd1H,MAAKmiB,SAAW,GAAIriB,GAAKO,aAAaL,KAAK6c,QAE3CnV,EAAGoU,WAAWpU,EAAGqU,aAAc/b,KAAKgc,QACpCtU,EAAG0a,WAAW1a,EAAGqU,aAAc/b,KAAKmiB,SAAUza,EAAG2a,aAEjDriB,KAAKsiB,WAAa,GAAIxiB,GAAKQ,YAAYN,KAAKwb,SAE5C9T,EAAGoU,WAAWpU,EAAGyU,qBAAsBnc,KAAKoc,aAC5C1U,EAAG0a,WAAW1a,EAAGyU,qBAAsBnc,KAAKsiB,WAAY5a,EAAG2a,aAE3DriB,KAAK4V,OAAQ,GAOjB9V,EAAKyiB,cACLziB,EAAK2Z,aAoBL3Z,EAAK0iB,cAAgB,SAAS3b,EAAOC,EAAQ2b,GAEzC,GAAGA,EAEC,IAAK,GAAIhf,KAAK3D,GAAKkB,qBAEIyI,SAAfgZ,EAAQhf,KAAkBgf,EAAQhf,GAAK3D,EAAKkB,qBAAqByC,QAKzEgf,GAAU3iB,EAAKkB,oBAGflB,GAAK4iB,kBAEL5iB,EAAK4iB,gBAAkB1iB,MAO3BA,KAAK+W,KAAOjX,EAAKG,eASjBD,KAAKqB,WAAaohB,EAAQphB,WAU1BrB,KAAKkB,YAAcuhB,EAAQvhB,YAQ3BlB,KAAKuB,WAAakhB,EAAQlhB,aAAc,EAQxCvB,KAAKoB,sBAAwBqhB,EAAQrhB,sBAYrCpB,KAAKsB,kBAAoBmhB,EAAQnhB,kBASjCtB,KAAK6G,MAAQA,GAAS,IAStB7G,KAAK8G,OAASA,GAAU,IAQxB9G,KAAKiB,KAAOwhB,EAAQxhB,MAAQuP,SAASQ,cAAc,UAOnDhR,KAAK2iB,iBACD3gB,MAAOhC,KAAKkB,YACZC,UAAWshB,EAAQthB,UACnByhB,mBAAmB5iB,KAAKkB,aAAoC,kBAArBlB,KAAKkB,YAC5C2hB,SAAQ,EACRzhB,sBAAuBqhB,EAAQrhB,uBAOnCpB,KAAK4a,WAAa,GAAI9a,GAAK4B,MAM3B1B,KAAK6a,OAAS,GAAI/a,GAAK4B,MAAM,EAAG,GAShC1B,KAAKsP,cAAgB,GAAIxP,GAAKgjB,mBAO9B9iB,KAAK4K,YAAc,GAAI9K,GAAKijB,iBAO5B/iB,KAAKiL,YAAc,GAAInL,GAAKkjB,iBAO5BhjB,KAAK8K,cAAgB,GAAIhL,GAAKmjB,mBAO9BjjB,KAAKmb,eAAiB,GAAIrb,GAAKojB,oBAO/BljB,KAAKmjB,iBAAmB,GAAIrjB,GAAKsjB,sBAOjCpjB,KAAKwH,iBACLxH,KAAKwH,cAAcE,GAAK1H,KAAK0H,GAC7B1H,KAAKwH,cAAc6b,UAAY,EAC/BrjB,KAAKwH,cAAc8H,cAAgBtP,KAAKsP,cACxCtP,KAAKwH,cAAcyD,YAAcjL,KAAKiL,YACtCjL,KAAKwH,cAAcsD,cAAgB9K,KAAK8K,cACxC9K,KAAKwH,cAAc2b,iBAAmBnjB,KAAKmjB,iBAC3CnjB,KAAKwH,cAAcoD,YAAc5K,KAAK4K,YACtC5K,KAAKwH,cAAc2T,eAAiBnb,KAAKmb,eACzCnb,KAAKwH,cAAcf,SAAWzG,KAC9BA,KAAKwH,cAAcnG,WAAarB,KAAKqB,WAGrCrB,KAAKsjB,cAGLtjB,KAAKujB,iBAITzjB,EAAK0iB,cAAcnf,UAAUC,YAAcxD,EAAK0iB,cAKhD1iB,EAAK0iB,cAAcnf,UAAUigB,YAAc,WAEvC,GAAI5b,GAAK1H,KAAKiB,KAAKgQ,WAAW,QAASjR,KAAK2iB,kBAAoB3iB,KAAKiB,KAAKgQ,WAAW,qBAAsBjR,KAAK2iB,gBAGhH,IAFA3iB,KAAK0H,GAAKA,GAELA,EAED,KAAM,IAAImB,OAAM,qEAGpB7I,MAAKwjB,YAAc9b,EAAGkQ,GAAK9X,EAAK0iB,cAAcgB,cAE9C1jB,EAAKyiB,WAAWviB,KAAKwjB,aAAe9b,EAEpC5H,EAAK2Z,UAAUzZ,KAAKwjB,aAAexjB,KAGnC0H,EAAG+b,QAAQ/b,EAAGgc,YACdhc,EAAG+b,QAAQ/b,EAAGic,WACdjc,EAAGkc,OAAOlc,EAAGmc,OAGb7jB,KAAKsP,cAAcD,WAAW3H,GAC9B1H,KAAK4K,YAAYyE,WAAW3H,GAC5B1H,KAAKiL,YAAYoE,WAAW3H,GAC5B1H,KAAK8K,cAAcuE,WAAW3H,GAC9B1H,KAAKmjB,iBAAiB9T,WAAW3H,GACjC1H,KAAKmb,eAAe9L,WAAW3H,GAE/B1H,KAAKwH,cAAcE,GAAK1H,KAAK0H,GAG7B1H,KAAK+H,OAAO/H,KAAK6G,MAAO7G,KAAK8G,SASjChH,EAAK0iB,cAAcnf,UAAU2D,OAAS,SAAS3E,GAG3C,IAAIrC,KAAK8jB,YAAT,CAGI9jB,KAAK+jB,UAAY1hB,IAIjBrC,KAAK+jB,QAAU1hB,GAInBA,EAAMsC,iBAEN,IAAI+C,GAAK1H,KAAK0H,EAGdA,GAAGsc,SAAS,EAAG,EAAGhkB,KAAK6G,MAAO7G,KAAK8G,QAGnCY,EAAGuc,gBAAgBvc,EAAGwc,YAAa,MAE/BlkB,KAAKsB,oBAEDtB,KAAKkB,YAELwG,EAAGyc,WAAW,EAAG,EAAG,EAAG,GAIvBzc,EAAGyc,WAAW9hB,EAAM0N,qBAAqB,GAAG1N,EAAM0N,qBAAqB,GAAG1N,EAAM0N,qBAAqB,GAAI,GAG7GrI,EAAG0c,MAAO1c,EAAG2c,mBAGjBrkB,KAAKskB,oBAAqBjiB,EAAOrC,KAAK4a,cAW1C9a,EAAK0iB,cAAcnf,UAAUihB,oBAAsB,SAASC,EAAe3J,EAAYoB,EAAQ/V,GAE3FjG,KAAKwH,cAAc2b,iBAAiBqB,aAAa1kB,EAAK+L,WAAWC,QAGjE9L,KAAKwH,cAAc6b,UAAY,EAG/BrjB,KAAKwH,cAAckR,MAAQsD,EAAS,GAAK,EAGzChc,KAAKwH,cAAcoT,WAAaA,EAGhC5a,KAAKwH,cAAcqT,OAAS7a,KAAK6a,OAGjC7a,KAAK4K,YAAYf,MAAM7J,KAAKwH,eAG5BxH,KAAK8K,cAAcjB,MAAM7J,KAAKwH,cAAewU,GAG7CuI,EAAc3c,aAAa5H,KAAKwH,cAAevB,GAG/CjG,KAAK4K,YAAYd,OAUrBhK,EAAK0iB,cAAcnf,UAAU0E,OAAS,SAASlB,EAAOC,GAElD9G,KAAK6G,MAAQA,EAAQ7G,KAAKqB,WAC1BrB,KAAK8G,OAASA,EAAS9G,KAAKqB,WAE5BrB,KAAKiB,KAAK4F,MAAQ7G,KAAK6G,MACvB7G,KAAKiB,KAAK6F,OAAS9G,KAAK8G,OAEpB9G,KAAKuB,aACLvB,KAAKiB,KAAKwjB,MAAM5d,MAAQ7G,KAAK6G,MAAQ7G,KAAKqB,WAAa,KACvDrB,KAAKiB,KAAKwjB,MAAM3d,OAAS9G,KAAK8G,OAAS9G,KAAKqB,WAAa,MAG7DrB,KAAK0H,GAAGsc,SAAS,EAAG,EAAGhkB,KAAK6G,MAAO7G,KAAK8G,QAExC9G,KAAK4a,WAAWlV,EAAK1F,KAAK6G,MAAQ,EAAI7G,KAAKqB,WAC3CrB,KAAK4a,WAAWjV,GAAM3F,KAAK8G,OAAS,EAAI9G,KAAKqB,YASjDvB,EAAK0iB,cAAcnf,UAAUqW,cAAgB,SAAS5R,GAElD,GAAKA,EAAQmE,UAAb,CAKA,GAAIvE,GAAK1H,KAAK0H,EAsCd,OApCKI,GAAQ6P,YAAYjQ,EAAGkQ,MAExB9P,EAAQ6P,YAAYjQ,EAAGkQ,IAAMlQ,EAAGgd,iBAGpChd,EAAG+P,YAAY/P,EAAGgQ,WAAY5P,EAAQ6P,YAAYjQ,EAAGkQ,KAErDlQ,EAAG8Q,YAAY9Q,EAAGid,+BAAgC7c,EAAQ8a,oBAE1Dlb,EAAGkR,WAAWlR,EAAGgQ,WAAY,EAAGhQ,EAAG2Q,KAAM3Q,EAAG2Q,KAAM3Q,EAAGmR,cAAe/Q,EAAQ0G,QAE5E9G,EAAGoR,cAAcpR,EAAGgQ,WAAYhQ,EAAGqR,mBAAoBjR,EAAQtB,YAAc1G,EAAK2N,WAAWC,OAAShG,EAAGgG,OAAShG,EAAGkd,SAEjH9c,EAAQ+c,QAAU/kB,EAAKyR,aAAazJ,EAAQjB,MAAOiB,EAAQhB,SAE3DY,EAAGoR,cAAcpR,EAAGgQ,WAAYhQ,EAAGsR,mBAAoBlR,EAAQtB,YAAc1G,EAAK2N,WAAWC,OAAShG,EAAGod,qBAAuBpd,EAAGqd,wBACnIrd,EAAGsd,eAAetd,EAAGgQ,aAIrBhQ,EAAGoR,cAAcpR,EAAGgQ,WAAYhQ,EAAGsR,mBAAoBlR,EAAQtB,YAAc1G,EAAK2N,WAAWC,OAAShG,EAAGgG,OAAShG,EAAGkd,SAGpH9c,EAAQmd,WAOTvd,EAAGoR,cAAcpR,EAAGgQ,WAAYhQ,EAAGuR,eAAgBvR,EAAG6Q,QACtD7Q,EAAGoR,cAAcpR,EAAGgQ,WAAYhQ,EAAGwR,eAAgBxR,EAAG6Q,UANtD7Q,EAAGoR,cAAcpR,EAAGgQ,WAAYhQ,EAAGuR,eAAgBvR,EAAGuQ,eACtDvQ,EAAGoR,cAAcpR,EAAGgQ,WAAYhQ,EAAGwR,eAAgBxR,EAAGuQ,gBAQ1DnQ,EAAQ0R,OAAO9R,EAAGkQ,KAAM,EAEhB9P,EAAQ6P,YAAYjQ,EAAGkQ,MASnC9X,EAAK0iB,cAAcnf,UAAUE,QAAU,WAEnCzD,EAAKyiB,WAAWviB,KAAKwjB,aAAe,KAEpCxjB,KAAK4a,WAAa,KAClB5a,KAAK6a,OAAS,KAEd7a,KAAKsP,cAAc/L,UACnBvD,KAAK4K,YAAYrH,UACjBvD,KAAKiL,YAAY1H,UACjBvD,KAAK8K,cAAcvH,UAEnBvD,KAAKsP,cAAgB,KACrBtP,KAAK4K,YAAc,KACnB5K,KAAKiL,YAAc,KACnBjL,KAAK8K,cAAgB,KAErB9K,KAAK0H,GAAK,KACV1H,KAAKwH,cAAgB,KAErB1H,EAAK2Z,UAAUzZ,KAAKwjB,aAAe,KAEnC1jB,EAAK0iB,cAAcgB,eAQvB1jB,EAAK0iB,cAAcnf,UAAUkgB,cAAgB,WAEzC,GAAI7b,GAAK1H,KAAK0H,EAET5H,GAAKolB,kBAENplB,EAAKolB,mBAELplB,EAAKolB,gBAAgBplB,EAAK+L,WAAWC,SAAkBpE,EAAGyd,IAAWzd,EAAG0d,qBACxEtlB,EAAKolB,gBAAgBplB,EAAK+L,WAAWwZ,MAAkB3d,EAAG4d,UAAW5d,EAAG6d,WACxEzlB,EAAKolB,gBAAgBplB,EAAK+L,WAAW2Z,WAAkB9d,EAAG+d,UAAW/d,EAAG0d,qBACxEtlB,EAAKolB,gBAAgBplB,EAAK+L,WAAW6Z,SAAkBhe,EAAG4d,UAAW5d,EAAGyd,KACxErlB,EAAKolB,gBAAgBplB,EAAK+L,WAAW8Z,UAAkBje,EAAGyd,IAAWzd,EAAG0d,qBACxEtlB,EAAKolB,gBAAgBplB,EAAK+L,WAAW+Z,SAAkBle,EAAGyd,IAAWzd,EAAG0d,qBACxEtlB,EAAKolB,gBAAgBplB,EAAK+L,WAAWga,UAAkBne,EAAGyd,IAAWzd,EAAG0d,qBACxEtlB,EAAKolB,gBAAgBplB,EAAK+L,WAAWia,cAAkBpe,EAAGyd,IAAWzd,EAAG0d,qBACxEtlB,EAAKolB,gBAAgBplB,EAAK+L,WAAWka,aAAkBre,EAAGyd,IAAWzd,EAAG0d,qBACxEtlB,EAAKolB,gBAAgBplB,EAAK+L,WAAWma,aAAkBte,EAAGyd,IAAWzd,EAAG0d,qBACxEtlB,EAAKolB,gBAAgBplB,EAAK+L,WAAWoa,aAAkBve,EAAGyd,IAAWzd,EAAG0d,qBACxEtlB,EAAKolB,gBAAgBplB,EAAK+L,WAAWqa,aAAkBxe,EAAGyd,IAAWzd,EAAG0d,qBACxEtlB,EAAKolB,gBAAgBplB,EAAK+L,WAAWsa,YAAkBze,EAAGyd,IAAWzd,EAAG0d,qBACxEtlB,EAAKolB,gBAAgBplB,EAAK+L,WAAWua,MAAkB1e,EAAGyd,IAAWzd,EAAG0d,qBACxEtlB,EAAKolB,gBAAgBplB,EAAK+L,WAAWwa,aAAkB3e,EAAGyd,IAAWzd,EAAG0d,qBACxEtlB,EAAKolB,gBAAgBplB,EAAK+L,WAAWya,QAAkB5e,EAAGyd,IAAWzd,EAAG0d,qBACxEtlB,EAAKolB,gBAAgBplB,EAAK+L,WAAW0a,aAAkB7e,EAAGyd,IAAWzd,EAAG0d,uBAIhFtlB,EAAK0iB,cAAcgB,YAAc,EAWjC1jB,EAAKsjB,sBAAwB,WAMzBpjB,KAAKmN,iBAAmB,OAG5BrN,EAAKsjB,sBAAsB/f,UAAUC,YAAcxD,EAAKsjB,sBAQxDtjB,EAAKsjB,sBAAsB/f,UAAUgM,WAAa,SAAS3H,GAEvD1H,KAAK0H,GAAKA,GASd5H,EAAKsjB,sBAAsB/f,UAAUmhB,aAAe,SAAS5Y,GAEzD,GAAG5L,KAAKmN,mBAAqBvB,EAAU,OAAO,CAE9C5L,MAAKmN,iBAAmBvB,CAExB,IAAI4a,GAAiB1mB,EAAKolB,gBAAgBllB,KAAKmN,iBAG/C,OAFAnN,MAAK0H,GAAG+e,UAAUD,EAAe,GAAIA,EAAe,KAE7C,GAQX1mB,EAAKsjB,sBAAsB/f,UAAUE,QAAU,WAE3CvD,KAAK0H,GAAK,MAYd5H,EAAKkjB,iBAAmB,aAIxBljB,EAAKkjB,iBAAiB3f,UAAUC,YAAcxD,EAAKkjB,iBAQnDljB,EAAKkjB,iBAAiB3f,UAAUgM,WAAa,SAAS3H,GAElD1H,KAAK0H,GAAKA,GAUd5H,EAAKkjB,iBAAiB3f,UAAU6H,SAAW,SAASwb,EAAUlf,GAE1D,GAAIE,GAAKF,EAAcE,EAEpBgf,GAAS9Q,OAER9V,EAAK0a,cAAcO,eAAe2L,EAAUhf,GAG5Cgf,EAASzL,OAAOvT,EAAGkQ,IAAIzG,KAAKzN,QAEhC8D,EAAc2T,eAAeC,YAAYsL,EAAUA,EAASzL,OAAOvT,EAAGkQ,IAAIzG,KAAK,GAAI3J,IAUvF1H,EAAKkjB,iBAAiB3f,UAAUgI,QAAU,SAASqb,EAAUlf,GAEzD,GAAIE,GAAK1H,KAAK0H,EACdF,GAAc2T,eAAeM,WAAWiL,EAAUA,EAASzL,OAAOvT,EAAGkQ,IAAIzG,KAAK,GAAI3J,IAQtF1H,EAAKkjB,iBAAiB3f,UAAUE,QAAU,WAEtCvD,KAAK0H,GAAK,MAYd5H,EAAKojB,oBAAsB,WAEvBljB,KAAK2mB,gBACL3mB,KAAK4mB,SAAU,EACf5mB,KAAK6mB,MAAQ,GASjB/mB,EAAKojB,oBAAoB7f,UAAUgM,WAAa,SAAS3H,GAErD1H,KAAK0H,GAAKA,GAWd5H,EAAKojB,oBAAoB7f,UAAU+X,YAAc,SAASV,EAAUC,EAAWnT,GAE3E,GAAIE,GAAK1H,KAAK0H,EACd1H,MAAK8mB,aAAapM,EAAUC,EAAWnT,GAEP,IAA7BxH,KAAK2mB,aAAajjB,SAEjBgE,EAAGkc,OAAOlc,EAAGqf,cACbrf,EAAG0c,MAAM1c,EAAGsf,oBACZhnB,KAAK4mB,SAAU,EACf5mB,KAAK6mB,MAAQ,GAGjB7mB,KAAK2mB,aAAapiB,KAAKoW,EAEvB,IAAIsM,GAAQjnB,KAAK6mB,KAEjBnf,GAAGwf,WAAU,GAAO,GAAO,GAAO,GAElCxf,EAAGyf,YAAYzf,EAAG0f,OAAO,EAAE,KAC3B1f,EAAG2f,UAAU3f,EAAG4f,KAAK5f,EAAG4f,KAAK5f,EAAG6f,QAIV,IAAnB5M,EAAUO,MAETxT,EAAG2T,aAAa3T,EAAG4T,aAAeX,EAAUa,QAAQ9X,OAAS,EAAGgE,EAAG6T,eAAgB,GAEhFvb,KAAK4mB,SAEJlf,EAAGyf,YAAYzf,EAAG8f,MAAO,IAAOP,EAAO,KACvCvf,EAAG2f,UAAU3f,EAAG4f,KAAK5f,EAAG4f,KAAK5f,EAAG+f,QAIhC/f,EAAGyf,YAAYzf,EAAG8f,MAAMP,EAAO,KAC/Bvf,EAAG2f,UAAU3f,EAAG4f,KAAK5f,EAAG4f,KAAK5f,EAAGggB,OAIpChgB,EAAG2T,aAAa3T,EAAG4T,aAAc,EAAG5T,EAAG6T,eAAmD,GAAjCZ,EAAUa,QAAQ9X,OAAS,IAEjF1D,KAAK4mB,QAEJlf,EAAGyf,YAAYzf,EAAG8f,MAAM,KAAMP,EAAM,GAAI,KAIxCvf,EAAGyf,YAAYzf,EAAG8f,MAAMP,EAAM,EAAG,KAGrCjnB,KAAK4mB,SAAW5mB,KAAK4mB,UAIjB5mB,KAAK4mB,SAOLlf,EAAGyf,YAAYzf,EAAG8f,MAAMP,EAAO,KAC/Bvf,EAAG2f,UAAU3f,EAAG4f,KAAK5f,EAAG4f,KAAK5f,EAAGggB,QANhChgB,EAAGyf,YAAYzf,EAAG8f,MAAO,IAAOP,EAAO,KACvCvf,EAAG2f,UAAU3f,EAAG4f,KAAK5f,EAAG4f,KAAK5f,EAAG+f,OAQpC/f,EAAG2T,aAAa3T,EAAG2U,eAAiB1B,EAAUa,QAAQ9X,OAAQgE,EAAG6T,eAAgB,GAE7Evb,KAAK4mB,QAMLlf,EAAGyf,YAAYzf,EAAG8f,MAAMP,EAAM,EAAG,KAJjCvf,EAAGyf,YAAYzf,EAAG8f,MAAM,KAAMP,EAAM,GAAI,MAQhDvf,EAAGwf,WAAU,GAAM,GAAM,GAAM,GAC/Bxf,EAAG2f,UAAU3f,EAAG4f,KAAK5f,EAAG4f,KAAK5f,EAAG4f,MAEhCtnB,KAAK6mB,SAWT/mB,EAAKojB,oBAAoB7f,UAAUyjB,aAAe,SAASpM,EAAUC,EAAWnT,GAG5ExH,KAAK2nB,iBAAmBjN,CAExB,IAKI3O,GALArE,EAAK1H,KAAK0H,GAGVkT,EAAapT,EAAcoT,WAC3BC,EAASrT,EAAcqT,MAGL,KAAnBF,EAAUO,MAETnP,EAASvE,EAAc8H,cAAcsY,uBAErCpgB,EAAc8H,cAAcC,UAAWxD,GAEvCrE,EAAGiU,UAAU5P,EAAO2M,MAAOlR,EAAckR,OAEzChR,EAAG4P,iBAAiBvL,EAAOmO,mBAAmB,EAAOQ,EAASnY,eAAemZ,SAAQ,IAErFhU,EAAGkU,UAAU7P,EAAOoK,iBAAkByE,EAAWlV,GAAIkV,EAAWjV,GAChE+B,EAAGkU,UAAU7P,EAAOqK,cAAeyE,EAAOnV,GAAImV,EAAOlV,GAErD+B,EAAGmU,WAAW9P,EAAOsO,UAAWva,EAAKkQ,QAAQ0K,EAASjP,OACtD/D,EAAGmU,WAAW9P,EAAOwO,MAAOI,EAAUJ,OAEtC7S,EAAGiU,UAAU5P,EAAO/J,MAAO0Y,EAASpY,WAAaqY,EAAU3Y,OAE3D0F,EAAGoU,WAAWpU,EAAGqU,aAAcpB,EAAUqB,QAEzCtU,EAAGuU,oBAAoBlQ,EAAOuK,gBAAiB,EAAG5O,EAAGwU,OAAO,EAAO,EAAO,GAK1ExU,EAAGoU,WAAWpU,EAAGyU,qBAAsBxB,EAAUyB,eAKjDrQ,EAASvE,EAAc8H,cAAcwL,gBACrCtT,EAAc8H,cAAcC,UAAWxD,GAEvCrE,EAAG4P,iBAAiBvL,EAAOmO,mBAAmB,EAAOQ,EAASnY,eAAemZ,SAAQ,IAErFhU,EAAGiU,UAAU5P,EAAO2M,MAAOlR,EAAckR,OACzChR,EAAGkU,UAAU7P,EAAOoK,iBAAkByE,EAAWlV,GAAIkV,EAAWjV,GAChE+B,EAAGkU,UAAU7P,EAAOqK,cAAeyE,EAAOnV,GAAImV,EAAOlV,GAErD+B,EAAGmU,WAAW9P,EAAOsO,UAAWva,EAAKkQ,QAAQ0K,EAASjP,OAEtD/D,EAAGiU,UAAU5P,EAAO/J,MAAO0Y,EAASpY,YAEpCoF,EAAGoU,WAAWpU,EAAGqU,aAAcpB,EAAUqB,QAEzCtU,EAAGuU,oBAAoBlQ,EAAOuK,gBAAiB,EAAG5O,EAAGwU,OAAO,EAAO,GAAO,GAC1ExU,EAAGuU,oBAAoBlQ,EAAO0K,eAAgB,EAAG/O,EAAGwU,OAAO,EAAM,GAAO,GAGxExU,EAAGoU,WAAWpU,EAAGyU,qBAAsBxB,EAAUyB,eAUzDtc,EAAKojB,oBAAoB7f,UAAUoY,WAAa,SAASf,EAAUC,EAAWnT,GAE7E,GAAIE,GAAK1H,KAAK0H,EAKX,IAJA1H,KAAK2mB,aAAa3I,MAElBhe,KAAK6mB,QAE2B,IAA7B7mB,KAAK2mB,aAAajjB,OAGjBgE,EAAG+b,QAAQ/b,EAAGqf,kBAIlB,CAEI,GAAIE,GAAQjnB,KAAK6mB,KAEjB7mB,MAAK8mB,aAAapM,EAAUC,EAAWnT,GAEvCE,EAAGwf,WAAU,GAAO,GAAO,GAAO,GAEZ,IAAnBvM,EAAUO,MAETlb,KAAK4mB,SAAW5mB,KAAK4mB,QAElB5mB,KAAK4mB,SAEJlf,EAAGyf,YAAYzf,EAAG8f,MAAO,KAAQP,EAAM,GAAI,KAC3Cvf,EAAG2f,UAAU3f,EAAG4f,KAAK5f,EAAG4f,KAAK5f,EAAGggB,QAIhChgB,EAAGyf,YAAYzf,EAAG8f,MAAMP,EAAM,EAAG,KACjCvf,EAAG2f,UAAU3f,EAAG4f,KAAK5f,EAAG4f,KAAK5f,EAAG+f,OAIpC/f,EAAG2T,aAAa3T,EAAG4T,aAAc,EAAG5T,EAAG6T,eAAmD,GAAjCZ,EAAUa,QAAQ9X,OAAS,IAEpFgE,EAAGyf,YAAYzf,EAAG0f,OAAO,EAAE,KAC3B1f,EAAG2f,UAAU3f,EAAG4f,KAAK5f,EAAG4f,KAAK5f,EAAG6f,QAGhC7f,EAAG2T,aAAa3T,EAAG4T,aAAeX,EAAUa,QAAQ9X,OAAS,EAAGgE,EAAG6T,eAAgB,GAE/Evb,KAAK4mB,QAMLlf,EAAGyf,YAAYzf,EAAG8f,MAAMP,EAAO,KAJ/Bvf,EAAGyf,YAAYzf,EAAG8f,MAAM,IAAK,EAAS,OAWtCxnB,KAAK4mB,SAOLlf,EAAGyf,YAAYzf,EAAG8f,MAAMP,EAAM,EAAG,KACjCvf,EAAG2f,UAAU3f,EAAG4f,KAAK5f,EAAG4f,KAAK5f,EAAG+f,QANhC/f,EAAGyf,YAAYzf,EAAG8f,MAAO,KAAQP,EAAM,GAAI,KAC3Cvf,EAAG2f,UAAU3f,EAAG4f,KAAK5f,EAAG4f,KAAK5f,EAAGggB,OAQpChgB,EAAG2T,aAAa3T,EAAG2U,eAAiB1B,EAAUa,QAAQ9X,OAAQgE,EAAG6T,eAAgB,GAE7Evb,KAAK4mB,QAMLlf,EAAGyf,YAAYzf,EAAG8f,MAAMP,EAAO,KAJ/Bvf,EAAGyf,YAAYzf,EAAG8f,MAAM,IAAK,EAAS,MAQ9C9f,EAAGwf,WAAU,GAAM,GAAM,GAAM,GAC/Bxf,EAAG2f,UAAU3f,EAAG4f,KAAK5f,EAAG4f,KAAK5f,EAAG4f,QAWxCxnB,EAAKojB,oBAAoB7f,UAAUE,QAAU,WAEzCvD,KAAK2mB,aAAe,KACpB3mB,KAAK0H,GAAK,MAYd5H,EAAKgjB,mBAAqB,WAMtB9iB,KAAK6nB,UAAY,GAMjB7nB,KAAK8nB,eAML9nB,KAAK+nB,kBAEL,KAAK,GAAItkB,GAAI,EAAGA,EAAIzD,KAAK6nB,UAAWpkB,IAEhCzD,KAAK8nB,YAAYrkB,IAAK,CAO1BzD,MAAKgoB,UAITloB,EAAKgjB,mBAAmBzf,UAAUC,YAAcxD,EAAKgjB,mBAQrDhjB,EAAKgjB,mBAAmBzf,UAAUgM,WAAa,SAAS3H,GAEpD1H,KAAK0H,GAAKA,EAGV1H,KAAK8a,gBAAkB,GAAIhb,GAAKsa,gBAAgB1S,GAGhD1H,KAAK4nB,uBAAyB,GAAI9nB,GAAKwa,uBAAuB5S,GAG9D1H,KAAKioB,cAAgB,GAAInoB,GAAK0V,WAAW9N,GAGzC1H,KAAKwP,WAAa,GAAI1P,GAAK8Z,eAAelS,GAG1C1H,KAAKkoB,YAAc,GAAIpoB,GAAKma,YAAYvS,GACxC1H,KAAKuP,UAAUvP,KAAKioB,gBASxBnoB,EAAKgjB,mBAAmBzf,UAAU8kB,WAAa,SAASC,GAGpD,GAAI3kB,EAEJ,KAAKA,EAAI,EAAGA,EAAIzD,KAAK+nB,gBAAgBrkB,OAAQD,IAEzCzD,KAAK+nB,gBAAgBtkB,IAAK,CAI9B,KAAKA,EAAI,EAAGA,EAAI2kB,EAAQ1kB,OAAQD,IAChC,CACI,GAAI4kB,GAAWD,EAAQ3kB,EACvBzD,MAAK+nB,gBAAgBM,IAAY,EAGrC,GAAI3gB,GAAK1H,KAAK0H,EAEd,KAAKjE,EAAI,EAAGA,EAAIzD,KAAK8nB,YAAYpkB,OAAQD,IAElCzD,KAAK8nB,YAAYrkB,KAAOzD,KAAK+nB,gBAAgBtkB,KAE5CzD,KAAK8nB,YAAYrkB,GAAKzD,KAAK+nB,gBAAgBtkB,GAExCzD,KAAK+nB,gBAAgBtkB,GAEpBiE,EAAG4gB,wBAAwB7kB,GAI3BiE,EAAG6gB,yBAAyB9kB,KAY5C3D,EAAKgjB,mBAAmBzf,UAAUkM,UAAY,SAASxD,GAEnD,MAAG/L,MAAKwoB,aAAezc,EAAO3L,MAAY,GAE1CJ,KAAKwoB,WAAazc,EAAO3L,KAEzBJ,KAAKyoB,cAAgB1c,EAErB/L,KAAK0H,GAAGsO,WAAWjK,EAAO0J,SAC1BzV,KAAKmoB,WAAWpc,EAAO8J,aAEhB,IAQX/V,EAAKgjB,mBAAmBzf,UAAUE,QAAU,WAExCvD,KAAK8nB,YAAc,KAEnB9nB,KAAK+nB,gBAAkB,KAEvB/nB,KAAK8a,gBAAgBvX,UAErBvD,KAAK4nB,uBAAuBrkB,UAE5BvD,KAAKioB,cAAc1kB,UAEnBvD,KAAKwP,WAAWjM,UAEhBvD,KAAKkoB,YAAY3kB,UAEjBvD,KAAK0H,GAAK,MAoBd5H,EAAKijB,iBAAmB,WAMpB/iB,KAAK0oB,SAAW,EAOhB1oB,KAAK2oB,KAAO,GAGZ,IAAIC,GAAuB,EAAZ5oB,KAAK2oB,KAAW,EAAI3oB,KAAK0oB,SAEpCG,EAAyB,EAAZ7oB,KAAK2oB,IAQtB3oB,MAAK8oB,SAAW,GAAIhpB,GAAKU,YAAYooB,GAQrC5oB,KAAK+oB,UAAY,GAAIjpB,GAAKO,aAAaL,KAAK8oB,UAQ5C9oB,KAAKgpB,OAAS,GAAIlpB,GAAKS,YAAYP,KAAK8oB,UAQxC9oB,KAAKwb,QAAU,GAAI1b,GAAKQ,YAAYuoB,GAMpC7oB,KAAKipB,eAAiB,CAEtB,KAAK,GAAIxlB,GAAE,EAAGa,EAAE,EAAOukB,EAAJplB,EAAgBA,GAAK,EAAGa,GAAK,EAE5CtE,KAAKwb,QAAQ/X,EAAI,GAAKa,EAAI,EAC1BtE,KAAKwb,QAAQ/X,EAAI,GAAKa,EAAI,EAC1BtE,KAAKwb,QAAQ/X,EAAI,GAAKa,EAAI,EAC1BtE,KAAKwb,QAAQ/X,EAAI,GAAKa,EAAI,EAC1BtE,KAAKwb,QAAQ/X,EAAI,GAAKa,EAAI,EAC1BtE,KAAKwb,QAAQ/X,EAAI,GAAKa,EAAI,CAO9BtE,MAAKkpB,SAAU,EAMflpB,KAAKmpB,iBAAmB,EAMxBnpB,KAAKopB,mBAAqB,KAM1BppB,KAAK4V,OAAQ,EAMb5V,KAAKqpB,YAMLrpB,KAAK6L,cAML7L,KAAKspB,WAMLtpB,KAAKupB,WAMLvpB,KAAKioB,cAAgB,GAAInoB,GAAK0pB,gBAC1B,wBACA,8BACA,uBACA,8BACA,oBACA,kEACA,OAQR1pB,EAAKijB,iBAAiB1f,UAAUgM,WAAa,SAAS3H,GAElD1H,KAAK0H,GAAKA,EAGV1H,KAAKypB,aAAe/hB,EAAGwa,eACvBliB,KAAKoc,YAAc1U,EAAGwa,eAKtBxa,EAAGoU,WAAWpU,EAAGyU,qBAAsBnc,KAAKoc,aAC5C1U,EAAG0a,WAAW1a,EAAGyU,qBAAsBnc,KAAKwb,QAAS9T,EAAG2a,aAExD3a,EAAGoU,WAAWpU,EAAGqU,aAAc/b,KAAKypB,cACpC/hB,EAAG0a,WAAW1a,EAAGqU,aAAc/b,KAAK8oB,SAAUphB,EAAGgiB,cAEjD1pB,KAAKmN,iBAAmB,KAExB,IAAIpB,GAAS,GAAIjM,GAAK0V,WAAW9N,EAEjCqE,GAAOgJ,YAAc/U,KAAKioB,cAAclT,YACxChJ,EAAO4K,YACP5K,EAAO+J,OAEP9V,KAAKioB,cAAcqB,QAAQ5hB,EAAGkQ,IAAM7L,GAOxCjM,EAAKijB,iBAAiB1f,UAAUwG,MAAQ,SAASrC,GAE7CxH,KAAKwH,cAAgBA,EACrBxH,KAAK+L,OAAS/L,KAAKwH,cAAc8H,cAAc2Y,cAE/CjoB,KAAKoL,SAMTtL,EAAKijB,iBAAiB1f,UAAUyG,IAAM,WAElC9J,KAAK6K,SAQT/K,EAAKijB,iBAAiB1f,UAAU2D,OAAS,SAAS2iB,EAAQ1jB,GAEtD,GAAI6B,GAAU6hB,EAAO7hB,QAGjBxC,EAAKqkB,EAAOpnB,cAEZ0D,KAEAX,EAAKW,GAILjG,KAAKmpB,kBAAoBnpB,KAAK2oB,OAE9B3oB,KAAK6K,QACL7K,KAAKopB,mBAAqBthB,EAAQkE,YAItC,IAAI4d,GAAM9hB,EAAQ+hB,IAGlB,IAAKD,EAAL,CAKA,GAGItd,GAAIC,EAAIC,EAAIC,EAHZqd,EAAKH,EAAOzhB,OAAOxC,EACnBqkB,EAAKJ,EAAOzhB,OAAOvC,CAIvB,IAAImC,EAAQ8F,KACZ,CAEI,GAAIA,GAAO9F,EAAQ8F,IAEnBrB,GAAKqB,EAAKlI,EAAIokB,EAAKlc,EAAK/G,MACxByF,EAAKC,EAAKzE,EAAQoF,KAAKrG,MAEvB4F,EAAKmB,EAAKjI,EAAIokB,EAAKnc,EAAK9G,OACxB0F,EAAKC,EAAK3E,EAAQoF,KAAKpG,WAIvBwF,GAAMxE,EAAQqE,MAAW,OAAK,EAAE2d,GAChCvd,EAAMzE,EAAQqE,MAAW,OAAK2d,EAE9Btd,EAAK1E,EAAQqE,MAAMrF,QAAU,EAAEijB,GAC/Btd,EAAK3E,EAAQqE,MAAMrF,QAAUijB,CAGjC,IAAItmB,GAA4B,EAAxBzD,KAAKmpB,iBAAuBnpB,KAAK0oB,SACrCrnB,EAAayG,EAAQkE,YAAY3K,WAEjC0D,EAAIO,EAAGP,EAAI1D,EACX2D,EAAIM,EAAGN,EAAI3D,EACX4D,EAAIK,EAAGL,EAAI5D,EACX6D,EAAII,EAAGJ,EAAI7D,EACX8D,EAAKG,EAAGH,GACRC,EAAKE,EAAGF,GAER4jB,EAAShpB,KAAKgpB,OACdD,EAAY/oB,KAAK+oB,SAEjB/oB,MAAKwH,cAAcsG,aAGnBib,EAAUtlB,GAAKsB,EAAIwH,EAAKtH,EAAIwH,EAAKtH,EAAK,EACtC4jB,EAAUtlB,EAAE,GAAKyB,EAAIuH,EAAKzH,EAAIuH,EAAKnH,EAAK,EAGxC2jB,EAAUtlB,EAAE,GAAKsB,EAAIuH,EAAKrH,EAAIwH,EAAKtH,EAAK,EACxC4jB,EAAUtlB,EAAE,GAAKyB,EAAIuH,EAAKzH,EAAIsH,EAAKlH,EAAK,EAGxC2jB,EAAUtlB,EAAE,IAAMsB,EAAIuH,EAAKrH,EAAIuH,EAAKrH,EAAK,EACzC4jB,EAAUtlB,EAAE,IAAMyB,EAAIsH,EAAKxH,EAAIsH,EAAKlH,EAAK,EAGzC2jB,EAAUtlB,EAAE,IAAMsB,EAAIwH,EAAKtH,EAAIuH,EAAKrH,EAAK,EACzC4jB,EAAUtlB,EAAE,IAAMyB,EAAIsH,EAAKxH,EAAIuH,EAAKnH,EAAK,IAKzC2jB,EAAUtlB,GAAKsB,EAAIwH,EAAKtH,EAAIwH,EAAKtH,EACjC4jB,EAAUtlB,EAAE,GAAKyB,EAAIuH,EAAKzH,EAAIuH,EAAKnH,EAGnC2jB,EAAUtlB,EAAE,GAAKsB,EAAIuH,EAAKrH,EAAIwH,EAAKtH,EACnC4jB,EAAUtlB,EAAE,GAAKyB,EAAIuH,EAAKzH,EAAIsH,EAAKlH,EAGnC2jB,EAAUtlB,EAAE,IAAMsB,EAAIuH,EAAKrH,EAAIuH,EAAKrH,EACpC4jB,EAAUtlB,EAAE,IAAMyB,EAAIsH,EAAKxH,EAAIsH,EAAKlH,EAGpC2jB,EAAUtlB,EAAE,IAAMsB,EAAIwH,EAAKtH,EAAIuH,EAAKrH,EACpC4jB,EAAUtlB,EAAE,IAAMyB,EAAIsH,EAAKxH,EAAIuH,EAAKnH,GAIxC2jB,EAAUtlB,EAAE,GAAKmmB,EAAII,GACrBjB,EAAUtlB,EAAE,GAAKmmB,EAAIK,GAGrBlB,EAAUtlB,EAAE,GAAKmmB,EAAIld,GACrBqc,EAAUtlB,EAAE,GAAKmmB,EAAIjd,GAGrBoc,EAAUtlB,EAAE,IAAMmmB,EAAIhd,GACtBmc,EAAUtlB,EAAE,IAAMmmB,EAAI/c,GAGtBkc,EAAUtlB,EAAE,IAAMmmB,EAAI9c,GACtBic,EAAUtlB,EAAE,IAAMmmB,EAAI7c,EAGtB,IAAItB,GAAOke,EAAOle,IAElBud,GAAOvlB,EAAE,GAAKulB,EAAOvlB,EAAE,GAAKulB,EAAOvlB,EAAE,IAAMulB,EAAOvlB,EAAE,KAAOgI,GAAQ,KAAc,MAAPA,KAA0B,IAAPA,IAAgB,KAA2B,IAApBke,EAAOrnB,YAAoB,IAG/ItC,KAAKupB,QAAQvpB,KAAKmpB,oBAAsBQ,IAU5C7pB,EAAKijB,iBAAiB1f,UAAU6mB,mBAAqB,SAASP,GAE1D,GAAI7hB,GAAU6hB,EAAOQ,aAGjBnqB,MAAKmpB,kBAAoBnpB,KAAK2oB,OAE9B3oB,KAAK6K,QACL7K,KAAKopB,mBAAqBthB,EAAQkE,aAIjC2d,EAAOE,OAERF,EAAOE,KAAO,GAAI/pB,GAAKsqB,WAG3B,IAAIR,GAAMD,EAAOE,KAEbtQ,EAAIzR,EAAQkE,YAAYnF,MACxBwjB,EAAIviB,EAAQkE,YAAYlF,MAQ5B6iB,GAAOW,aAAa5kB,GAAK6T,EAAIoQ,EAAOY,gBAAgB7kB,EACpDikB,EAAOW,aAAa3kB,GAAK0kB,EAAIV,EAAOY,gBAAgB5kB,CAEpD,IAAI6kB,GAAUb,EAAOW,aAAa5kB,GAAK6T,EAAIoQ,EAAOY,gBAAgB7kB,GAC9D+kB,EAAUd,EAAOW,aAAa3kB,GAAK0kB,EAAIV,EAAOY,gBAAgB5kB,GAE9D+kB,EAAUf,EAAO9iB,MAAQ0S,GAAMoQ,EAAOgB,UAAUjlB,EAAIikB,EAAOY,gBAAgB7kB,GAC3EklB,EAAUjB,EAAO7iB,OAASujB,GAAMV,EAAOgB,UAAUhlB,EAAIgkB,EAAOY,gBAAgB5kB,EAEhFikB,GAAII,GAAK,EAAIQ,EACbZ,EAAIK,GAAK,EAAIQ,EAEbb,EAAIld,GAAM,EAAIge,EAAUF,EACxBZ,EAAIjd,GAAK,EAAI8d,EAEbb,EAAIhd,GAAM,EAAI8d,EAAUF,EACxBZ,EAAI/c,GAAM,EAAI+d,EAAUH,EAExBb,EAAI9c,GAAK,EAAI0d,EACbZ,EAAI7c,GAAM,EAAI6d,EAAUH,CAGxB,IAAIhf,GAAOke,EAAOle,KACd8O,GAAS9O,GAAQ,KAAc,MAAPA,KAA0B,IAAPA,IAAgB,KAA2B,IAApBke,EAAOrnB,YAAoB,IAE7FymB,EAAY/oB,KAAK+oB,UACjBC,EAAShpB,KAAKgpB,OAEdniB,EAAQ8iB,EAAO9iB,MACfC,EAAS6iB,EAAO7iB,OAGhBgjB,EAAKH,EAAOzhB,OAAOxC,EACnBqkB,EAAKJ,EAAOzhB,OAAOvC,EACnB2G,EAAKzF,GAAS,EAAEijB,GAChBvd,EAAK1F,GAASijB,EAEdtd,EAAK1F,GAAU,EAAEijB,GACjBtd,EAAK3F,GAAUijB,EAEftmB,EAA4B,EAAxBzD,KAAKmpB,iBAAuBnpB,KAAK0oB,SAErCrnB,EAAayG,EAAQkE,YAAY3K,WAEjCiE,EAAKqkB,EAAOpnB,eAEZwC,EAAIO,EAAGP,EAAI1D,EACX2D,EAAIM,EAAGN,EAAI3D,EACX4D,EAAIK,EAAGL,EAAI5D,EACX6D,EAAII,EAAGJ,EAAI7D,EACX8D,EAAKG,EAAGH,GACRC,EAAKE,EAAGF,EAGZ2jB,GAAUtlB,KAAOsB,EAAIwH,EAAKtH,EAAIwH,EAAKtH,EACnC4jB,EAAUtlB,KAAOyB,EAAIuH,EAAKzH,EAAIuH,EAAKnH,EAEnC2jB,EAAUtlB,KAAOmmB,EAAII,GACrBjB,EAAUtlB,KAAOmmB,EAAIK,GAErBjB,EAAOvlB,KAAO8W,EAGdwO,EAAUtlB,KAAQsB,EAAIuH,EAAKrH,EAAIwH,EAAKtH,EACpC4jB,EAAUtlB,KAAOyB,EAAIuH,EAAKzH,EAAIsH,EAAKlH,EAEnC2jB,EAAUtlB,KAAOmmB,EAAIld,GACrBqc,EAAUtlB,KAAOmmB,EAAIjd,GAErBqc,EAAOvlB,KAAO8W,EAGdwO,EAAUtlB,KAAOsB,EAAIuH,EAAKrH,EAAIuH,EAAKrH,EACnC4jB,EAAUtlB,KAAOyB,EAAIsH,EAAKxH,EAAIsH,EAAKlH,EAEnC2jB,EAAUtlB,KAAOmmB,EAAIhd,GACrBmc,EAAUtlB,KAAOmmB,EAAI/c,GAErBmc,EAAOvlB,KAAO8W,EAGdwO,EAAUtlB,KAAOsB,EAAIwH,EAAKtH,EAAIuH,EAAKrH,EACnC4jB,EAAUtlB,KAAOyB,EAAIsH,EAAKxH,EAAIuH,EAAKnH,EAEnC2jB,EAAUtlB,KAAOmmB,EAAI9c,GACrBic,EAAUtlB,KAAOmmB,EAAI7c,GAErBic,EAAOvlB,KAAO8W,EAGdva,KAAKupB,QAAQvpB,KAAKmpB,oBAAsBQ,GAQ5C7pB,EAAKijB,iBAAiB1f,UAAUwH,MAAQ,WAGpC,GAA8B,IAA1B7K,KAAKmpB,iBAAT,CAKA,GACIpd,GADArE,EAAK1H,KAAK0H,EAGd,IAAI1H,KAAK4V,MACT,CACI5V,KAAK4V,OAAQ,EAGblO,EAAG8P,cAAc9P,EAAGmjB,UAGpBnjB,EAAGoU,WAAWpU,EAAGqU,aAAc/b,KAAKypB,cACpC/hB,EAAGoU,WAAWpU,EAAGyU,qBAAsBnc,KAAKoc,aAE5CrQ,EAAS/L,KAAKioB,cAAcqB,QAAQ5hB,EAAGkQ,GAGvC,IAAIkT,GAAyB,EAAhB9qB,KAAK0oB,QAClBhhB,GAAGuU,oBAAoBlQ,EAAOuK,gBAAiB,EAAG5O,EAAGwU,OAAO,EAAO4O,EAAQ,GAC3EpjB,EAAGuU,oBAAoBlQ,EAAOyK,cAAe,EAAG9O,EAAGwU,OAAO,EAAO4O,EAAQ,GAGzEpjB,EAAGuU,oBAAoBlQ,EAAO0K,eAAgB,EAAG/O,EAAGmR,eAAe,EAAMiS,EAAQ,IAIrF,GAAI9qB,KAAKmpB,iBAAgC,GAAZnpB,KAAK2oB,KAE9BjhB,EAAGqjB,cAAcrjB,EAAGqU,aAAc,EAAG/b,KAAK8oB,cAG9C,CACI,GAAI7nB,GAAOjB,KAAK+oB,UAAUiC,SAAS,EAA2B,EAAxBhrB,KAAKmpB,iBAAuBnpB,KAAK0oB,SACvEhhB,GAAGqjB,cAAcrjB,EAAGqU,aAAc,EAAG9a,GAezC,IAAK,GAZDgqB,GAAaC,EAAeC,EAU5BxB,EATAyB,EAAY,EACZhgB,EAAQ,EAERge,EAAqB,KACrBjc,EAAmBnN,KAAKwH,cAAc2b,iBAAiBhW,iBACvDsb,EAAgB,KAEhB4C,GAAY,EACZC,GAAa,EAGR7nB,EAAI,EAAGa,EAAItE,KAAKmpB,iBAAsB7kB,EAAJb,EAAOA,IAAK,CAmBnD,GAjBAkmB,EAAS3pB,KAAKupB,QAAQ9lB,GAIlBwnB,EAFAtB,EAAOQ,cAEOR,EAAOQ,cAAcne,YAIrB2d,EAAO7hB,QAAQkE,YAGjCkf,EAAgBvB,EAAO/d,UACvBuf,EAAaxB,EAAO5d,QAAU/L,KAAKioB,cAEnCoD,EAAYle,IAAqB+d,EACjCI,EAAa7C,IAAkB0C,GAE3B/B,IAAuB6B,GAAeI,GAAaC,KAEnDtrB,KAAKurB,YAAYnC,EAAoBgC,EAAWhgB,GAEhDA,EAAQ3H,EACR2nB,EAAY,EACZhC,EAAqB6B,EAEjBI,IAEAle,EAAmB+d,EACnBlrB,KAAKwH,cAAc2b,iBAAiBqB,aAAarX,IAGjDme,GACJ,CACI7C,EAAgB0C,EAEhBpf,EAAS0c,EAAca,QAAQ5hB,EAAGkQ,IAE7B7L,IAEDA,EAAS,GAAIjM,GAAK0V,WAAW9N,GAE7BqE,EAAOgJ,YAAc0T,EAAc1T,YACnChJ,EAAO4K,SAAW8R,EAAc9R,SAChC5K,EAAO+J,OAEP2S,EAAca,QAAQ5hB,EAAGkQ,IAAM7L,GAInC/L,KAAKwH,cAAc8H,cAAcC,UAAUxD,GAEvCA,EAAO6J,OAEP7J,EAAOqN,cAKX,IAAIwB,GAAa5a,KAAKwH,cAAcoT,UACpClT,GAAGkU,UAAU7P,EAAOoK,iBAAkByE,EAAWlV,EAAGkV,EAAWjV,EAG/D,IAAIyQ,GAAepW,KAAKwH,cAAcqT,MACtCnT,GAAGkU,UAAU7P,EAAOqK,aAAcA,EAAa1Q,EAAG0Q,EAAazQ,GAMvEylB,IAGJprB,KAAKurB,YAAYnC,EAAoBgC,EAAWhgB,GAGhDpL,KAAKmpB,iBAAmB,IAS5BrpB,EAAKijB,iBAAiB1f,UAAUkoB,YAAc,SAASzjB,EAAS6gB,EAAM6C,GAElE,GAAa,IAAT7C,EAAJ,CAKA,GAAIjhB,GAAK1H,KAAK0H,EAGVI,GAAQ0R,OAAO9R,EAAGkQ,IAElB5X,KAAKwH,cAAcf,SAASiT,cAAc5R,GAK1CJ,EAAG+P,YAAY/P,EAAGgQ,WAAY5P,EAAQ6P,YAAYjQ,EAAGkQ,KAIzDlQ,EAAG2T,aAAa3T,EAAG+jB,UAAkB,EAAP9C,EAAUjhB,EAAG6T,eAA6B,EAAbiQ,EAAiB,GAG5ExrB,KAAKwH,cAAc6b,cAMvBvjB,EAAKijB,iBAAiB1f,UAAU2H,KAAO,WAEnChL,KAAK6K,QACL7K,KAAK4V,OAAQ,GAMjB9V,EAAKijB,iBAAiB1f,UAAU+H,MAAQ,WAEpCpL,KAAK4V,OAAQ,GAQjB9V,EAAKijB,iBAAiB1f,UAAUE,QAAU,WAEtCvD,KAAK8oB,SAAW,KAChB9oB,KAAKwb,QAAU,KAEfxb,KAAK0H,GAAGgkB,aAAa1rB,KAAKypB,cAC1BzpB,KAAK0H,GAAGgkB,aAAa1rB,KAAKoc,aAE1Bpc,KAAKopB,mBAAqB,KAE1BppB,KAAK0H,GAAK,MAgBd5H,EAAKsP,qBAAuB,SAAS1H,GAMjC1H,KAAK0oB,SAAW,GAMhB1oB,KAAK2rB,QAAU,IAMf3rB,KAAK2oB,KAAO3oB,KAAK2rB,OAGjB,IAAI/C,GAAuB,EAAZ5oB,KAAK2oB,KAAY3oB,KAAK0oB,SAGjCG,EAA4B,EAAf7oB,KAAK2rB,OAOtB3rB,MAAK8oB,SAAW,GAAIhpB,GAAKO,aAAauoB,GAOtC5oB,KAAKwb,QAAU,GAAI1b,GAAKQ,YAAYuoB,GAMpC7oB,KAAKypB,aAAe,KAMpBzpB,KAAKoc,YAAc,KAMnBpc,KAAKipB,eAAiB,CAEtB,KAAK,GAAIxlB,GAAE,EAAGa,EAAE,EAAOukB,EAAJplB,EAAgBA,GAAK,EAAGa,GAAK,EAE5CtE,KAAKwb,QAAQ/X,EAAI,GAAKa,EAAI,EAC1BtE,KAAKwb,QAAQ/X,EAAI,GAAKa,EAAI,EAC1BtE,KAAKwb,QAAQ/X,EAAI,GAAKa,EAAI,EAC1BtE,KAAKwb,QAAQ/X,EAAI,GAAKa,EAAI,EAC1BtE,KAAKwb,QAAQ/X,EAAI,GAAKa,EAAI,EAC1BtE,KAAKwb,QAAQ/X,EAAI,GAAKa,EAAI,CAO9BtE,MAAKkpB,SAAU,EAMflpB,KAAKmpB,iBAAmB,EAMxBnpB,KAAKopB,mBAAqB,KAM1BppB,KAAKmN,iBAAmB,EAMxBnN,KAAKwH,cAAgB,KAMrBxH,KAAK+L,OAAS,KAMd/L,KAAKiG,OAAS,KAEdjG,KAAKqP,WAAW3H,IAGpB5H,EAAKsP,qBAAqB/L,UAAUC,YAAcxD,EAAKsP,qBAQvDtP,EAAKsP,qBAAqB/L,UAAUgM,WAAa,SAAS3H,GAEtD1H,KAAK0H,GAAKA,EAGV1H,KAAKypB,aAAe/hB,EAAGwa,eACvBliB,KAAKoc,YAAc1U,EAAGwa,eAKtBxa,EAAGoU,WAAWpU,EAAGyU,qBAAsBnc,KAAKoc,aAC5C1U,EAAG0a,WAAW1a,EAAGyU,qBAAsBnc,KAAKwb,QAAS9T,EAAG2a,aAExD3a,EAAGoU,WAAWpU,EAAGqU,aAAc/b,KAAKypB,cACpC/hB,EAAG0a,WAAW1a,EAAGqU,aAAc/b,KAAK8oB,SAAUphB,EAAGgiB,eAQrD5pB,EAAKsP,qBAAqB/L,UAAUwG,MAAQ,SAASe,EAAapD,GAE9DxH,KAAKwH,cAAgBA,EACrBxH,KAAK+L,OAAS/L,KAAKwH,cAAc8H,cAAcE,WAE/CxP,KAAKiG,OAAS2E,EAAYrI,eAAemZ,SAAQ,GAEjD1b,KAAKoL,SAMTtL,EAAKsP,qBAAqB/L,UAAUyG,IAAM,WAEtC9J,KAAK6K,SAOT/K,EAAKsP,qBAAqB/L,UAAU2D,OAAS,SAAS4D,GAElD,GAAIpH,GAAWoH,EAAYpH,SACvBmmB,EAASnmB,EAAS,EAKtB,IAAImmB,EAAO7hB,QAAQ+hB,KAAnB,CAEA7pB,KAAKopB,mBAAqBO,EAAO7hB,QAAQkE,YAGtC2d,EAAO/d,YAAc5L,KAAKwH,cAAc2b,iBAAiBhW,mBAExDnN,KAAK6K,QACL7K,KAAKwH,cAAc2b,iBAAiBqB,aAAamF,EAAO/d,WAG5D,KAAI,GAAInI,GAAE,EAAEa,EAAGd,EAASE,OAAUY,EAAFb,EAAKA,IAEjCzD,KAAK4rB,aAAapoB,EAASC,GAG/BzD,MAAK6K,UAOT/K,EAAKsP,qBAAqB/L,UAAUuoB,aAAe,SAASjC,GAGxD,GAAIA,EAAO1nB,UAGR0nB,EAAO7hB,QAAQkE,cAAgBhM,KAAKopB,qBAEnCppB,KAAK6K,QACL7K,KAAKopB,mBAAqBO,EAAO7hB,QAAQkE,YAErC2d,EAAO7hB,QAAQ+hB,OALvB,CAQA,GAAID,GAA+B/iB,EAAOC,EAAQwF,EAAIC,EAAIC,EAAIC,EAAI/D,EAAzDogB,EAAW9oB,KAAK8oB,QAOzB,IALAc,EAAMD,EAAO7hB,QAAQ+hB,KAErBhjB,EAAQ8iB,EAAO7hB,QAAQqE,MAAMtF,MAC7BC,EAAS6iB,EAAO7hB,QAAQqE,MAAMrF,OAE1B6iB,EAAO7hB,QAAQ8F,KACnB,CAEI,GAAIA,GAAO+b,EAAO7hB,QAAQ8F,IAE1BrB,GAAKqB,EAAKlI,EAAIikB,EAAOzhB,OAAOxC,EAAIkI,EAAK/G,MACrCyF,EAAKC,EAAKod,EAAO7hB,QAAQoF,KAAKrG,MAE9B4F,EAAKmB,EAAKjI,EAAIgkB,EAAOzhB,OAAOvC,EAAIiI,EAAK9G,OACrC0F,EAAKC,EAAKkd,EAAO7hB,QAAQoF,KAAKpG,WAI9BwF,GAAMqd,EAAO7hB,QAAQqE,MAAY,OAAK,EAAEwd,EAAOzhB,OAAOxC,GACtD6G,EAAMod,EAAO7hB,QAAQqE,MAAY,OAAKwd,EAAOzhB,OAAOxC,EAEpD8G,EAAKmd,EAAO7hB,QAAQqE,MAAMrF,QAAU,EAAE6iB,EAAOzhB,OAAOvC,GACpD8G,EAAKkd,EAAO7hB,QAAQqE,MAAMrF,QAAU6iB,EAAOzhB,OAAOvC,CAGtD+C,GAAgC,EAAxB1I,KAAKmpB,iBAAuBnpB,KAAK0oB,SAGzCI,EAASpgB,KAAW6D,EACpBuc,EAASpgB,KAAW+D,EAEpBqc,EAASpgB,KAAWihB,EAAOloB,SAASiE,EACpCojB,EAASpgB,KAAWihB,EAAOloB,SAASkE,EAGpCmjB,EAASpgB,KAAWihB,EAAOhoB,MAAM+D,EACjCojB,EAASpgB,KAAWihB,EAAOhoB,MAAMgE,EAGjCmjB,EAASpgB,KAAWihB,EAAO5nB,SAG3B+mB,EAASpgB,KAAWkhB,EAAII,GACxBlB,EAASpgB,KAAWkhB,EAAIjd,GAExBmc,EAASpgB,KAAWihB,EAAO3nB,MAI3B8mB,EAASpgB,KAAW4D,EACpBwc,EAASpgB,KAAW+D,EAEpBqc,EAASpgB,KAAWihB,EAAOloB,SAASiE,EACpCojB,EAASpgB,KAAWihB,EAAOloB,SAASkE,EAGpCmjB,EAASpgB,KAAWihB,EAAOhoB,MAAM+D,EACjCojB,EAASpgB,KAAWihB,EAAOhoB,MAAMgE,EAGjCmjB,EAASpgB,KAAWihB,EAAO5nB,SAG3B+mB,EAASpgB,KAAWkhB,EAAIld,GACxBoc,EAASpgB,KAAWkhB,EAAIjd,GAExBmc,EAASpgB,KAAWihB,EAAO3nB,MAI3B8mB,EAASpgB,KAAW4D,EACpBwc,EAASpgB,KAAW8D,EAEpBsc,EAASpgB,KAAWihB,EAAOloB,SAASiE,EACpCojB,EAASpgB,KAAWihB,EAAOloB,SAASkE,EAGpCmjB,EAASpgB,KAAWihB,EAAOhoB,MAAM+D,EACjCojB,EAASpgB,KAAWihB,EAAOhoB,MAAMgE,EAGjCmjB,EAASpgB,KAAWihB,EAAO5nB,SAG3B+mB,EAASpgB,KAAWkhB,EAAIhd,GACxBkc,EAASpgB,KAAWkhB,EAAI/c,GAExBic,EAASpgB,KAAWihB,EAAO3nB,MAM3B8mB,EAASpgB,KAAW6D,EACpBuc,EAASpgB,KAAW8D,EAEpBsc,EAASpgB,KAAWihB,EAAOloB,SAASiE,EACpCojB,EAASpgB,KAAWihB,EAAOloB,SAASkE,EAGpCmjB,EAASpgB,KAAWihB,EAAOhoB,MAAM+D,EACjCojB,EAASpgB,KAAWihB,EAAOhoB,MAAMgE,EAGjCmjB,EAASpgB,KAAWihB,EAAO5nB,SAG3B+mB,EAASpgB,KAAWkhB,EAAI9c,GACxBgc,EAASpgB,KAAWkhB,EAAI7c,GAExB+b,EAASpgB,KAAWihB,EAAO3nB,MAG3BhC,KAAKmpB,mBAEFnpB,KAAKmpB,kBAAoBnpB,KAAK2oB,MAE7B3oB,KAAK6K,UAOb/K,EAAKsP,qBAAqB/L,UAAUwH,MAAQ,WAGxC,GAA4B,IAAxB7K,KAAKmpB,iBAAT,CAEA,GAAIzhB,GAAK1H,KAAK0H,EAUd,IANI1H,KAAKopB,mBAAmBzR,YAAYjQ,EAAGkQ,KAAI5X,KAAKwH,cAAcf,SAASiT,cAAc1Z,KAAKopB,mBAAoB1hB,GAElHA,EAAG+P,YAAY/P,EAAGgQ,WAAY1X,KAAKopB,mBAAmBzR,YAAYjQ,EAAGkQ,KAIlE5X,KAAKmpB,iBAAiC,GAAZnpB,KAAK2oB,KAE9BjhB,EAAGqjB,cAAcrjB,EAAGqU,aAAc,EAAG/b,KAAK8oB,cAG9C,CACI,GAAI7nB,GAAOjB,KAAK8oB,SAASkC,SAAS,EAA2B,EAAxBhrB,KAAKmpB,iBAAuBnpB,KAAK0oB,SAEtEhhB,GAAGqjB,cAAcrjB,EAAGqU,aAAc,EAAG9a,GAIzCyG,EAAG2T,aAAa3T,EAAG+jB,UAAmC,EAAxBzrB,KAAKmpB,iBAAsBzhB,EAAG6T,eAAgB,GAG5Evb,KAAKmpB,iBAAmB,EAGxBnpB,KAAKwH,cAAc6b,cAOvBvjB,EAAKsP,qBAAqB/L,UAAU2H,KAAO,WAEvChL,KAAK6K,SAMT/K,EAAKsP,qBAAqB/L,UAAU+H,MAAQ,WAExC,GAAI1D,GAAK1H,KAAK0H,EAGdA,GAAG8P,cAAc9P,EAAGmjB,UAGpBnjB,EAAGoU,WAAWpU,EAAGqU,aAAc/b,KAAKypB,cACpC/hB,EAAGoU,WAAWpU,EAAGyU,qBAAsBnc,KAAKoc,YAG5C,IAAIxB,GAAa5a,KAAKwH,cAAcoT,UACpClT,GAAGkU,UAAU5b,KAAK+L,OAAOoK,iBAAkByE,EAAWlV,EAAGkV,EAAWjV,GAGpE+B,EAAG4P,iBAAiBtX,KAAK+L,OAAO8N,SAAS,EAAO7Z,KAAKiG,OAGrD,IAAI6kB,GAA0B,EAAhB9qB,KAAK0oB,QAEnBhhB,GAAGuU,oBAAoBjc,KAAK+L,OAAOuK,gBAAiB,EAAG5O,EAAGwU,OAAO,EAAO4O,EAAQ,GAChFpjB,EAAGuU,oBAAoBjc,KAAK+L,OAAO+N,eAAgB,EAAGpS,EAAGwU,OAAO,EAAO4O,EAAQ,GAC/EpjB,EAAGuU,oBAAoBjc,KAAK+L,OAAOgO,OAAQ,EAAGrS,EAAGwU,OAAO,EAAO4O,EAAQ,IACvEpjB,EAAGuU,oBAAoBjc,KAAK+L,OAAOiO,UAAW,EAAGtS,EAAGwU,OAAO,EAAO4O,EAAQ,IAC1EpjB,EAAGuU,oBAAoBjc,KAAK+L,OAAOyK,cAAe,EAAG9O,EAAGwU,OAAO,EAAO4O,EAAQ,IAC9EpjB,EAAGuU,oBAAoBjc,KAAK+L,OAAO0K,eAAgB,EAAG/O,EAAGwU,OAAO,EAAO4O,EAAQ,KAYnFhrB,EAAKmjB,mBAAqB,WAMtBjjB,KAAK6rB,eAML7rB,KAAKwqB,QAAU,EAMfxqB,KAAKyqB,QAAU,GAGnB3qB,EAAKmjB,mBAAmB5f,UAAUC,YAAcxD,EAAKmjB,mBAQrDnjB,EAAKmjB,mBAAmB5f,UAAUgM,WAAa,SAAS3H,GAEpD1H,KAAK0H,GAAKA,EACV1H,KAAK8rB,eAEL9rB,KAAK+rB,qBAQTjsB,EAAKmjB,mBAAmB5f,UAAUwG,MAAQ,SAASrC,EAAewU,GAE9Dhc,KAAKwH,cAAgBA,EACrBxH,KAAKioB,cAAgBzgB,EAAc8H,cAAc2Y,aAEjD,IAAIrN,GAAa5a,KAAKwH,cAAcoT,UACpC5a,MAAK6G,MAAuB,EAAf+T,EAAWlV,EACxB1F,KAAK8G,OAAyB,GAAf8T,EAAWjV,EAC1B3F,KAAKgc,OAASA,GASlBlc,EAAKmjB,mBAAmB5f,UAAU0H,WAAa,SAASihB,GAEpD,GAAItkB,GAAK1H,KAAK0H,GAEVkT,EAAa5a,KAAKwH,cAAcoT,WAChCC,EAAS7a,KAAKwH,cAAcqT,MAEhCmR,GAAYC,YAAcD,EAAYvnB,OAAO3B,YAAckpB,EAAYvnB,OAAOuB,YAI9EhG,KAAK6rB,YAAYtnB,KAAKynB,EAEtB,IAAIE,GAASF,EAAY3nB,aAAa,EAEtCrE,MAAKwqB,SAAWwB,EAAYC,YAAYvmB,EACxC1F,KAAKyqB,SAAWuB,EAAYC,YAAYtmB,CAExC,IAAImC,GAAU9H,KAAK8rB,YAAY9N,KAC3BlW,GAMAA,EAAQC,OAAO/H,KAAK6G,MAAO7G,KAAK8G,QAJhCgB,EAAU,GAAIhI,GAAKqsB,cAAcnsB,KAAK0H,GAAI1H,KAAK6G,MAAO7G,KAAK8G,QAO/DY,EAAG+P,YAAY/P,EAAGgQ,WAAa5P,EAAQA,QAEvC,IAAIhF,GAAakpB,EAAYC,YAEzBG,EAAUF,EAAOE,OACrBtpB,GAAW4C,GAAK0mB,EAChBtpB,EAAW6C,GAAKymB,EAChBtpB,EAAW+D,OAAmB,EAAVulB,EACpBtpB,EAAWgE,QAAoB,EAAVslB,EAGlBtpB,EAAW4C,EAAI,IAAE5C,EAAW4C,EAAI,GAChC5C,EAAW+D,MAAQ7G,KAAK6G,QAAM/D,EAAW+D,MAAQ7G,KAAK6G,OACtD/D,EAAW6C,EAAI,IAAE7C,EAAW6C,EAAI,GAChC7C,EAAWgE,OAAS9G,KAAK8G,SAAOhE,EAAWgE,OAAS9G,KAAK8G,QAG5DY,EAAGuc,gBAAgBvc,EAAGwc,YAAapc,EAAQukB,aAG3C3kB,EAAGsc,SAAS,EAAG,EAAGlhB,EAAW+D,MAAO/D,EAAWgE,QAE/C8T,EAAWlV,EAAI5C,EAAW+D,MAAM,EAChC+T,EAAWjV,GAAK7C,EAAWgE,OAAO,EAElC+T,EAAOnV,GAAK5C,EAAW4C,EACvBmV,EAAOlV,GAAK7C,EAAW6C,EAQvB+B,EAAGwf,WAAU,GAAM,GAAM,GAAM,GAC/Bxf,EAAGyc,WAAW,EAAE,EAAE,EAAG,GACrBzc,EAAG0c,MAAM1c,EAAG2c,kBAEZ2H,EAAYM,iBAAmBxkB,GASnChI,EAAKmjB,mBAAmB5f,UAAUiI,UAAY,WAE1C,GAAI5D,GAAK1H,KAAK0H,GACVskB,EAAchsB,KAAK6rB,YAAY7N,MAC/Blb,EAAakpB,EAAYC,YACzBnkB,EAAUkkB,EAAYM,iBACtB1R,EAAa5a,KAAKwH,cAAcoT,WAChCC,EAAS7a,KAAKwH,cAAcqT,MAEhC,IAAGmR,EAAY3nB,aAAaX,OAAS,EACrC,CACIgE,EAAGsc,SAAS,EAAG,EAAGlhB,EAAW+D,MAAO/D,EAAWgE,QAE/CY,EAAGoU,WAAWpU,EAAGqU,aAAc/b,KAAKypB,cAEpCzpB,KAAKusB,YAAY,GAAK,EACtBvsB,KAAKusB,YAAY,GAAKzpB,EAAWgE,OAEjC9G,KAAKusB,YAAY,GAAKzpB,EAAW+D,MACjC7G,KAAKusB,YAAY,GAAKzpB,EAAWgE,OAEjC9G,KAAKusB,YAAY,GAAK,EACtBvsB,KAAKusB,YAAY,GAAK,EAEtBvsB,KAAKusB,YAAY,GAAKzpB,EAAW+D,MACjC7G,KAAKusB,YAAY,GAAK,EAEtB7kB,EAAGqjB,cAAcrjB,EAAGqU,aAAc,EAAG/b,KAAKusB,aAE1C7kB,EAAGoU,WAAWpU,EAAGqU,aAAc/b,KAAKwsB,UAEpCxsB,KAAKysB,QAAQ,GAAK3pB,EAAW+D,MAAM7G,KAAK6G,MACxC7G,KAAKysB,QAAQ,GAAK3pB,EAAWgE,OAAO9G,KAAK8G,OACzC9G,KAAKysB,QAAQ,GAAK3pB,EAAW+D,MAAM7G,KAAK6G,MACxC7G,KAAKysB,QAAQ,GAAK3pB,EAAWgE,OAAO9G,KAAK8G,OAEzCY,EAAGqjB,cAAcrjB,EAAGqU,aAAc,EAAG/b,KAAKysB,QAE1C,IAAIC,GAAe5kB,EACf6kB,EAAgB3sB,KAAK8rB,YAAY9N,KACjC2O,KAAcA,EAAgB,GAAI7sB,GAAKqsB,cAAcnsB,KAAK0H,GAAI1H,KAAK6G,MAAO7G,KAAK8G,SACnF6lB,EAAc5kB,OAAO/H,KAAK6G,MAAO7G,KAAK8G,QAGtCY,EAAGuc,gBAAgBvc,EAAGwc,YAAayI,EAAcN,aACjD3kB,EAAG0c,MAAM1c,EAAG2c,kBAEZ3c,EAAG+b,QAAQ/b,EAAGmc,MAEd,KAAK,GAAIpgB,GAAI,EAAGA,EAAIuoB,EAAY3nB,aAAaX,OAAO,EAAGD,IACvD,CACI,GAAImpB,GAAaZ,EAAY3nB,aAAaZ,EAE1CiE;EAAGuc,gBAAgBvc,EAAGwc,YAAayI,EAAcN,aAGjD3kB,EAAG8P,cAAc9P,EAAGmjB,UACpBnjB,EAAG+P,YAAY/P,EAAGgQ,WAAYgV,EAAa5kB,SAI3C9H,KAAK6sB,gBAAgBD,EAAY9pB,EAAYA,EAAW+D,MAAO/D,EAAWgE,OAG1E,IAAIgmB,GAAOJ,CACXA,GAAeC,EACfA,EAAgBG,EAGpBplB,EAAGkc,OAAOlc,EAAGmc,OAEb/b,EAAU4kB,EACV1sB,KAAK8rB,YAAYvnB,KAAKooB,GAG1B,GAAIT,GAASF,EAAY3nB,aAAa2nB,EAAY3nB,aAAaX,OAAO,EAEtE1D,MAAKwqB,SAAW1nB,EAAW4C,EAC3B1F,KAAKyqB,SAAW3nB,EAAW6C,CAE3B,IAAIonB,GAAQ/sB,KAAK6G,MACbmmB,EAAQhtB,KAAK8G,OAEb0jB,EAAU,EACVC,EAAU,EAEVzO,EAAShc,KAAKgc,MAGlB,IAA+B,IAA5Bhc,KAAK6rB,YAAYnoB,OAEhBgE,EAAGwf,WAAU,GAAM,GAAM,GAAM,OAGnC,CACI,GAAI+F,GAAgBjtB,KAAK6rB,YAAY7rB,KAAK6rB,YAAYnoB,OAAO,EAC7DZ,GAAamqB,EAAchB,YAE3Bc,EAAQjqB,EAAW+D,MACnBmmB,EAAQlqB,EAAWgE,OAEnB0jB,EAAU1nB,EAAW4C,EACrB+kB,EAAU3nB,EAAW6C,EAErBqW,EAAUiR,EAAcX,iBAAiBD,YAI7CzR,EAAWlV,EAAIqnB,EAAM,EACrBnS,EAAWjV,GAAKqnB,EAAM,EAEtBnS,EAAOnV,EAAI8kB,EACX3P,EAAOlV,EAAI8kB,EAEX3nB,EAAakpB,EAAYC,WAEzB,IAAIvmB,GAAI5C,EAAW4C,EAAE8kB,EACjB7kB,EAAI7C,EAAW6C,EAAE8kB,CAIrB/iB,GAAGoU,WAAWpU,EAAGqU,aAAc/b,KAAKypB,cAEpCzpB,KAAKusB,YAAY,GAAK7mB,EACtB1F,KAAKusB,YAAY,GAAK5mB,EAAI7C,EAAWgE,OAErC9G,KAAKusB,YAAY,GAAK7mB,EAAI5C,EAAW+D,MACrC7G,KAAKusB,YAAY,GAAK5mB,EAAI7C,EAAWgE,OAErC9G,KAAKusB,YAAY,GAAK7mB,EACtB1F,KAAKusB,YAAY,GAAK5mB,EAEtB3F,KAAKusB,YAAY,GAAK7mB,EAAI5C,EAAW+D,MACrC7G,KAAKusB,YAAY,GAAK5mB,EAEtB+B,EAAGqjB,cAAcrjB,EAAGqU,aAAc,EAAG/b,KAAKusB,aAE1C7kB,EAAGoU,WAAWpU,EAAGqU,aAAc/b,KAAKwsB,UAEpCxsB,KAAKysB,QAAQ,GAAK3pB,EAAW+D,MAAM7G,KAAK6G,MACxC7G,KAAKysB,QAAQ,GAAK3pB,EAAWgE,OAAO9G,KAAK8G,OACzC9G,KAAKysB,QAAQ,GAAK3pB,EAAW+D,MAAM7G,KAAK6G,MACxC7G,KAAKysB,QAAQ,GAAK3pB,EAAWgE,OAAO9G,KAAK8G,OAEzCY,EAAGqjB,cAAcrjB,EAAGqU,aAAc,EAAG/b,KAAKysB,SAE1C/kB,EAAGsc,SAAS,EAAG,EAAG+I,EAAQ/sB,KAAKwH,cAAcnG,WAAY2rB,EAAQhtB,KAAKwH,cAAcnG,YAGpFqG,EAAGuc,gBAAgBvc,EAAGwc,YAAalI,GAMnCtU,EAAG8P,cAAc9P,EAAGmjB,UACpBnjB,EAAG+P,YAAY/P,EAAGgQ,WAAY5P,EAAQA,SAGtC9H,KAAK6sB,gBAAgBX,EAAQppB,EAAYiqB,EAAOC,GAQhDhtB,KAAK8rB,YAAYvnB,KAAKuD,GACtBkkB,EAAYM,iBAAmB,MAanCxsB,EAAKmjB,mBAAmB5f,UAAUwpB,gBAAkB,SAASX,EAAQppB,EAAY+D,EAAOC,GAGpF,GAAIY,GAAK1H,KAAK0H,GACVqE,EAASmgB,EAAO5C,QAAQ5hB,EAAGkQ,GAE3B7L,KAEAA,EAAS,GAAIjM,GAAK0V,WAAW9N,GAE7BqE,EAAOgJ,YAAcmX,EAAOnX,YAC5BhJ,EAAO4K,SAAWuV,EAAOvV,SACzB5K,EAAO+J,OAEPoW,EAAO5C,QAAQ5hB,EAAGkQ,IAAM7L,GAI5B/L,KAAKwH,cAAc8H,cAAcC,UAAUxD,GAI3CrE,EAAGkU,UAAU7P,EAAOoK,iBAAkBtP,EAAM,GAAIC,EAAO,GACvDY,EAAGkU,UAAU7P,EAAOqK,aAAc,EAAE,GAEjC8V,EAAOvV,SAASN,aAEf6V,EAAOvV,SAASN,WAAWpS,MAAM,GAAKjE,KAAK6G,MAC3CqlB,EAAOvV,SAASN,WAAWpS,MAAM,GAAKjE,KAAK8G,OAC3ColB,EAAOvV,SAASN,WAAWpS,MAAM,GAAKjE,KAAKusB,YAAY,GACvDL,EAAOvV,SAASN,WAAWpS,MAAM,GAAKjE,KAAKusB,YAAY,IAG3DxgB,EAAOqN,eAEP1R,EAAGoU,WAAWpU,EAAGqU,aAAc/b,KAAKypB,cACpC/hB,EAAGuU,oBAAoBlQ,EAAOuK,gBAAiB,EAAG5O,EAAGwU,OAAO,EAAO,EAAG,GAEtExU,EAAGoU,WAAWpU,EAAGqU,aAAc/b,KAAKwsB,UACpC9kB,EAAGuU,oBAAoBlQ,EAAOyK,cAAe,EAAG9O,EAAGwU,OAAO,EAAO,EAAG,GAEpExU,EAAGoU,WAAWpU,EAAGqU,aAAc/b,KAAKktB,aACpCxlB,EAAGuU,oBAAoBlQ,EAAO0K,eAAgB,EAAG/O,EAAGwU,OAAO,EAAO,EAAG,GAErExU,EAAGoU,WAAWpU,EAAGyU,qBAAsBnc,KAAKoc,aAG5C1U,EAAG2T,aAAa3T,EAAG+jB,UAAW,EAAG/jB,EAAG6T,eAAgB,GAEpDvb,KAAKwH,cAAc6b,aAQvBvjB,EAAKmjB,mBAAmB5f,UAAU0oB,kBAAoB,WAElD,GAAIrkB,GAAK1H,KAAK0H,EAGd1H,MAAKypB,aAAe/hB,EAAGwa,eACvBliB,KAAKwsB,SAAW9kB,EAAGwa,eACnBliB,KAAKktB,YAAcxlB,EAAGwa,eACtBliB,KAAKoc,YAAc1U,EAAGwa,eAItBliB,KAAKusB,YAAc,GAAIzsB,GAAKO,cAAc,EAAK,EACV,EAAK,EACL,EAAK,EACL,EAAK,IAE1CqH,EAAGoU,WAAWpU,EAAGqU,aAAc/b,KAAKypB,cACpC/hB,EAAG0a,WAAW1a,EAAGqU,aAAc/b,KAAKusB,YAAa7kB,EAAG2a,aAGpDriB,KAAKysB,QAAU,GAAI3sB,GAAKO,cAAc,EAAK,EACV,EAAK,EACL,EAAK,EACL,EAAK,IAEtCqH,EAAGoU,WAAWpU,EAAGqU,aAAc/b,KAAKwsB,UACpC9kB,EAAG0a,WAAW1a,EAAGqU,aAAc/b,KAAKysB,QAAS/kB,EAAG2a,aAEhDriB,KAAKmtB,WAAa,GAAIrtB,GAAKO,cAAc,EAAK,SACV,EAAK,SACL,EAAK,SACL,EAAK,WAEzCqH,EAAGoU,WAAWpU,EAAGqU,aAAc/b,KAAKktB,aACpCxlB,EAAG0a,WAAW1a,EAAGqU,aAAc/b,KAAKmtB,WAAYzlB,EAAG2a,aAGnD3a,EAAGoU,WAAWpU,EAAGyU,qBAAsBnc,KAAKoc,aAC5C1U,EAAG0a,WAAW1a,EAAGyU,qBAAsB,GAAI7b,cAAa,EAAG,EAAG,EAAG,EAAG,EAAG,IAAKoH,EAAG2a,cASnFviB,EAAKmjB,mBAAmB5f,UAAUE,QAAU,WAExC,GAAImE,GAAK1H,KAAK0H,EAEd1H,MAAK6rB,YAAc,KAEnB7rB,KAAKwqB,QAAU,EACfxqB,KAAKyqB,QAAU,CAGf,KAAK,GAAIhnB,GAAI,EAAGA,EAAIzD,KAAK8rB,YAAYpoB,OAAQD,IACzCzD,KAAK8rB,YAAYroB,GAAGF,SAGxBvD,MAAK8rB,YAAc,KAGnBpkB,EAAGgkB,aAAa1rB,KAAKypB,cACrB/hB,EAAGgkB,aAAa1rB,KAAKwsB,UACrB9kB,EAAGgkB,aAAa1rB,KAAKktB,aACrBxlB,EAAGgkB,aAAa1rB,KAAKoc,cAezBtc,EAAKqsB,cAAgB,SAASzkB,EAAIb,EAAOC,EAAQN,GAM7CxG,KAAK0H,GAAKA,EAQV1H,KAAKqsB,YAAc3kB,EAAG0lB,oBAMtBptB,KAAK8H,QAAUJ,EAAGgd,gBAMlBle,EAAYA,GAAa1G,EAAK2N,WAAW4f,QAEzC3lB,EAAG+P,YAAY/P,EAAGgQ,WAAa1X,KAAK8H,SACpCJ,EAAGoR,cAAcpR,EAAGgQ,WAAYhQ,EAAGqR,mBAAoBvS,IAAc1G,EAAK2N,WAAWC,OAAShG,EAAGgG,OAAShG,EAAGkd,SAC7Gld,EAAGoR,cAAcpR,EAAGgQ,WAAYhQ,EAAGsR,mBAAoBxS,IAAc1G,EAAK2N,WAAWC,OAAShG,EAAGgG,OAAShG,EAAGkd,SAC7Gld,EAAGoR,cAAcpR,EAAGgQ,WAAYhQ,EAAGuR,eAAgBvR,EAAGuQ,eACtDvQ,EAAGoR,cAAcpR,EAAGgQ,WAAYhQ,EAAGwR,eAAgBxR,EAAGuQ,eACtDvQ,EAAGuc,gBAAgBvc,EAAGwc,YAAalkB,KAAKqsB,aAExC3kB,EAAGuc,gBAAgBvc,EAAGwc,YAAalkB,KAAKqsB,aACxC3kB,EAAG4lB,qBAAqB5lB,EAAGwc,YAAaxc,EAAG6lB,kBAAmB7lB,EAAGgQ,WAAY1X,KAAK8H,QAAS,GAG3F9H,KAAKwtB,aAAe9lB,EAAG+lB,qBACvB/lB,EAAGgmB,iBAAiBhmB,EAAGimB,aAAc3tB,KAAKwtB,cAC1C9lB,EAAGkmB,wBAAwBlmB,EAAGwc,YAAaxc,EAAGmmB,yBAA0BnmB,EAAGimB,aAAc3tB,KAAKwtB,cAE9FxtB,KAAK+H,OAAOlB,EAAOC,IAGvBhH,EAAKqsB,cAAc9oB,UAAUC,YAAcxD,EAAKqsB,cAOhDrsB,EAAKqsB,cAAc9oB,UAAU+gB,MAAQ,WAEjC,GAAI1c,GAAK1H,KAAK0H,EAEdA,GAAGyc,WAAW,EAAE,EAAE,EAAG,GACrBzc,EAAG0c,MAAM1c,EAAG2c,mBAUhBvkB,EAAKqsB,cAAc9oB,UAAU0E,OAAS,SAASlB,EAAOC,GAElD,GAAG9G,KAAK6G,QAAUA,GAAS7G,KAAK8G,SAAWA,EAA3C,CAEA9G,KAAK6G,MAAQA,EACb7G,KAAK8G,OAASA,CAEd,IAAIY,GAAK1H,KAAK0H,EAEdA,GAAG+P,YAAY/P,EAAGgQ,WAAa1X,KAAK8H,SACpCJ,EAAGkR,WAAWlR,EAAGgQ,WAAY,EAAGhQ,EAAG2Q,KAAOxR,EAAQC,EAAS,EAAGY,EAAG2Q,KAAM3Q,EAAGmR,cAAe,MAEzFnR,EAAGgmB,iBAAiBhmB,EAAGimB,aAAc3tB,KAAKwtB,cAC1C9lB,EAAGomB,oBAAoBpmB,EAAGimB,aAAcjmB,EAAGqmB,cAAelnB,EAAQC,KAQtEhH,EAAKqsB,cAAc9oB,UAAUE,QAAU,WAEnC,GAAImE,GAAK1H,KAAK0H,EACdA,GAAGsmB,kBAAmBhuB,KAAKqsB,aAC3B3kB,EAAGumB,cAAejuB,KAAK8H,SAEvB9H,KAAKqsB,YAAc,KACnBrsB,KAAK8H,QAAU,MAenBhI,EAAKouB,aAAe,SAASrnB,EAAOC,GAQhC9G,KAAK6G,MAAQA,EAQb7G,KAAK8G,OAASA,EAQd9G,KAAK+Q,OAASP,SAASQ,cAAc,UAQrChR,KAAKoN,QAAUpN,KAAK+Q,OAAOE,WAAW,MAEtCjR,KAAK+Q,OAAOlK,MAAQA,EACpB7G,KAAK+Q,OAAOjK,OAASA,GAGzBhH,EAAKouB,aAAa7qB,UAAUC,YAAcxD,EAAKouB,aAQ/CpuB,EAAKouB,aAAa7qB,UAAU+gB,MAAQ,WAEhCpkB,KAAKoN,QAAQW,aAAa,EAAG,EAAG,EAAG,EAAG,EAAG,GACzC/N,KAAKoN,QAAQ+gB,UAAU,EAAE,EAAGnuB,KAAK6G,MAAO7G,KAAK8G,SAUjDhH,EAAKouB,aAAa7qB,UAAU0E,OAAS,SAASlB,EAAOC,GAEjD9G,KAAK6G,MAAQ7G,KAAK+Q,OAAOlK,MAAQA,EACjC7G,KAAK8G,OAAS9G,KAAK+Q,OAAOjK,OAASA,GAavChH,EAAKsuB,kBAAoB,aAIzBtuB,EAAKsuB,kBAAkB/qB,UAAUC,YAAcxD,EAAKsuB,kBASpDtuB,EAAKsuB,kBAAkB/qB,UAAU6H,SAAW,SAASwb,EAAUlf,GAE9D,GAAI4F,GAAU5F,EAAc4F,OAEzBA,GAAQihB,MAER,IAAIC,GAAa5H,EAAS1kB,MACtByN,EAAYiX,EAASnkB,eAErBlB,EAAamG,EAAcnG,UAE/B+L,GAAQW,aAAa0B,EAAU1K,EAAI1D,EACdoO,EAAUzK,EAAI3D,EACdoO,EAAUxK,EAAI5D,EACdoO,EAAUvK,EAAI7D,EACdoO,EAAUtK,GAAK9D,EACfoO,EAAUrK,GAAK/D,GAEpCvB,EAAKyuB,eAAeC,mBAAmB9H,EAAUtZ,GAEjDA,EAAQqhB,OAER/H,EAASpkB,WAAagsB,GAS1BxuB,EAAKsuB,kBAAkB/qB,UAAUgI,QAAU,SAAS7D,GAEhDA,EAAc4F,QAAQshB,WAa1B5uB,EAAKqO,aAAe,aAWpBrO,EAAKqO,aAAaC,iBAAmB,SAASub,EAAQpP,GAElD,GAAIxJ,GAAS4Y,EAAOhe,eAAiB6E,SAASQ,cAAc,SAI5D,OAFAlR,GAAKqO,aAAawgB,WAAWhF,EAAO7hB,QAASyS,EAAOxJ,GAE7CA,GAYXjR,EAAKqO,aAAaygB,iBAAmB,SAAS9mB,EAASyS,EAAOxJ,GAE1D,GAAI3D,GAAU2D,EAAOE,WAAW,MAE5B/D,EAAOpF,EAAQoF,MAEf6D,EAAOlK,QAAUqG,EAAKrG,OAASkK,EAAOjK,SAAWoG,EAAKpG,UAEtDiK,EAAOlK,MAAQqG,EAAKrG,MACpBkK,EAAOjK,OAASoG,EAAKpG,QAGzBsG,EAAQ+gB,UAAU,EAAG,EAAGjhB,EAAKrG,MAAOqG,EAAKpG,QAEzCsG,EAAQyhB,UAAY,KAAO,SAAmB,EAARtU,GAAWrK,SAAS,KAAKC,OAAO,IACtE/C,EAAQ0hB,SAAS,EAAG,EAAG5hB,EAAKrG,MAAOqG,EAAKpG,QAExCsG,EAAQC,yBAA2B,WACnCD,EAAQiB,UAAUvG,EAAQkE,YAAYwC,OAAQtB,EAAKxH,EAAGwH,EAAKvH,EAAGuH,EAAKrG,MAAOqG,EAAKpG,OAAQ,EAAG,EAAGoG,EAAKrG,MAAOqG,EAAKpG,QAE9GsG,EAAQC,yBAA2B,mBACnCD,EAAQiB,UAAUvG,EAAQkE,YAAYwC,OAAQtB,EAAKxH,EAAGwH,EAAKvH,EAAGuH,EAAKrG,MAAOqG,EAAKpG,OAAQ,EAAG,EAAGoG,EAAKrG,MAAOqG,EAAKpG,SAalHhH,EAAKqO,aAAa4gB,iBAAmB,SAASjnB,EAASyS,EAAOxJ,GAE1D,GAAI3D,GAAU2D,EAAOE,WAAW,MAE5B/D,EAAOpF,EAAQoF,IAEnB6D,GAAOlK,MAAQqG,EAAKrG,MACpBkK,EAAOjK,OAASoG,EAAKpG,OAErBsG,EAAQC,yBAA2B,OAEnCD,EAAQiB,UAAUvG,EAAQkE,YAAYwC,OAAQtB,EAAKxH,EAAGwH,EAAKvH,EAAGuH,EAAKrG,MAAOqG,EAAKpG,OAAQ,EAAG,EAAGoG,EAAKrG,MAAOqG,EAAKpG,OAS9G,KAAK,GAPDkoB,GAAYlvB,EAAKkQ,QAAQuK,GACzB8D,EAAI2Q,EAAU,GAAI1Q,EAAI0Q,EAAU,GAAIhqB,EAAIgqB,EAAU,GAElDC,EAAY7hB,EAAQ8D,aAAa,EAAG,EAAGhE,EAAKrG,MAAOqG,EAAKpG,QAExDooB,EAASD,EAAU9d,KAEd1N,EAAI,EAAGA,EAAIyrB,EAAOxrB,OAAQD,GAAK,EAMpC,GAJAyrB,EAAOzrB,EAAI,IAAM4a,EACjB6Q,EAAOzrB,EAAI,IAAM6a,EACjB4Q,EAAOzrB,EAAI,IAAMuB,GAEZlF,EAAKqO,aAAaghB,eACvB,CACI,GAAIntB,GAAQktB,EAAOzrB,EAAI,EAEvByrB,GAAOzrB,EAAI,IAAM,IAAMzB,EACvBktB,EAAOzrB,EAAI,IAAM,IAAMzB,EACvBktB,EAAOzrB,EAAI,IAAM,IAAMzB,EAI/BoL,EAAQgiB,aAAaH,EAAW,EAAG,IASvCnvB,EAAKqO,aAAakhB,kBAAoB,WAElC,GAAIte,GAAS,GAAIjR,GAAKouB,aAAa,EAAG,EAEtCnd,GAAO3D,QAAQyhB,UAAY,wBAG3B9d,EAAO3D,QAAQ0hB,SAAS,EAAG,EAAG,EAAG,EAGjC,IAAIQ,GAAKve,EAAO3D,QAAQ8D,aAAa,EAAG,EAAG,EAAG,EAE9C,IAAW,OAAPoe,EAEA,OAAO,CAIXve,GAAO3D,QAAQgiB,aAAaE,EAAI,EAAG,EAGnC,IAAIC,GAAKxe,EAAO3D,QAAQ8D,aAAa,EAAG,EAAG,EAAG,EAG9C,OAAQqe,GAAGpe,KAAK,KAAOme,EAAGne,KAAK,IAAMoe,EAAGpe,KAAK,KAAOme,EAAGne,KAAK,IAAMoe,EAAGpe,KAAK,KAAOme,EAAGne,KAAK,IAAMoe,EAAGpe,KAAK,KAAOme,EAAGne,KAAK,IAW1HrR,EAAKqO,aAAaghB,eAAiBrvB,EAAKqO,aAAakhB,oBASrDvvB,EAAKqO,aAAaqhB,eAAiB1vB,EAAKyQ,4BAQxCzQ,EAAKqO,aAAawgB,WAAa7uB,EAAKqO,aAAaqhB,eAAiB1vB,EAAKqO,aAAaygB,iBAAoB9uB,EAAKqO,aAAa4gB,iBAqB1HjvB,EAAK2vB,eAAiB,SAAS5oB,EAAOC,EAAQ2b,GAE1C,GAAIA,EAEA,IAAK,GAAIhf,KAAK3D,GAAKkB,qBAEIyI,SAAfgZ,EAAQhf,KAAkBgf,EAAQhf,GAAK3D,EAAKkB,qBAAqByC,QAKzEgf,GAAU3iB,EAAKkB,oBAGdlB,GAAK4iB,kBAEN5iB,EAAK4iB,gBAAkB1iB,MAS3BA,KAAK+W,KAAOjX,EAAKI,gBAQjBF,KAAKqB,WAAaohB,EAAQphB,WAY1BrB,KAAKsB,kBAAoBmhB,EAAQnhB,kBAQjCtB,KAAKkB,YAAcuhB,EAAQvhB,YAQ3BlB,KAAKuB,WAAakhB,EAAQlhB,aAAc,EASxCvB,KAAK6G,MAAQA,GAAS,IAStB7G,KAAK8G,OAASA,GAAU,IAExB9G,KAAK6G,OAAS7G,KAAKqB,WACnBrB,KAAK8G,QAAU9G,KAAKqB,WAQpBrB,KAAKiB,KAAOwhB,EAAQxhB,MAAQuP,SAASQ,cAAe,UAOpDhR,KAAKoN,QAAUpN,KAAKiB,KAAKgQ,WAAY,MAAQjP,MAAOhC,KAAKkB,cAQzDlB,KAAK0vB,SAAU,EAEf1vB,KAAKiB,KAAK4F,MAAQ7G,KAAK6G,MAAQ7G,KAAKqB,WACpCrB,KAAKiB,KAAK6F,OAAS9G,KAAK8G,OAAS9G,KAAKqB,WAQtCrB,KAAK6mB,MAAQ,EAOb7mB,KAAKiL,YAAc,GAAInL,GAAKsuB,kBAO5BpuB,KAAKwH,eACD4F,QAASpN,KAAKoN,QACdnC,YAAajL,KAAKiL,YAClBzE,UAAW,KACXgH,eAAgB,KAKhBM,aAAa,GAGjB9N,KAAKujB,gBAELvjB,KAAK+H,OAAOlB,EAAOC,GAEhB,yBAA2B9G,MAAKoN,QAC/BpN,KAAKwH,cAAcgG,eAAiB,wBAChC,+BAAiCxN,MAAKoN,QAC1CpN,KAAKwH,cAAcgG,eAAiB,8BAChC,4BAA8BxN,MAAKoN,QACvCpN,KAAKwH,cAAcgG,eAAiB,2BAChC,0BAA4BxN,MAAKoN,QACrCpN,KAAKwH,cAAcgG,eAAiB,yBAC/B,2BAA6BxN,MAAKoN,UACvCpN,KAAKwH,cAAcgG,eAAiB,4BAI5C1N,EAAK2vB,eAAepsB,UAAUC,YAAcxD,EAAK2vB,eAQjD3vB,EAAK2vB,eAAepsB,UAAU2D,OAAS,SAAS3E,GAE5CA,EAAMsC,kBAEN3E,KAAKoN,QAAQW,aAAa,EAAE,EAAE,EAAE,EAAE,EAAE,GAEpC/N,KAAKoN,QAAQG,YAAc,EAE3BvN,KAAKwH,cAAc2F,iBAAmBrN,EAAK+L,WAAWC,OACtD9L,KAAKoN,QAAQC,yBAA2BvN,EAAKwN,iBAAiBxN,EAAK+L,WAAWC,QAE1E6jB,UAAUC,YAAc5vB,KAAKiB,KAAK4uB,eAElC7vB,KAAKoN,QAAQyhB,UAAY,QACzB7uB,KAAKoN,QAAQgX,SAGbpkB,KAAKsB,oBAEDtB,KAAKkB,YAELlB,KAAKoN,QAAQ+gB,UAAU,EAAG,EAAGnuB,KAAK6G,MAAO7G,KAAK8G,SAI9C9G,KAAKoN,QAAQyhB,UAAYxsB,EAAM+N,sBAC/BpQ,KAAKoN,QAAQ0hB,SAAS,EAAG,EAAG9uB,KAAK6G,MAAQ7G,KAAK8G,UAItD9G,KAAKskB,oBAAoBjiB,IAU7BvC,EAAK2vB,eAAepsB,UAAUE,QAAU,SAASusB,GAE1BrmB,SAAfqmB,IAA4BA,GAAa,GAEzCA,GAAc9vB,KAAKiB,KAAKmB,QAExBpC,KAAKiB,KAAKmB,OAAOuG,YAAY3I,KAAKiB,MAGtCjB,KAAKiB,KAAO,KACZjB,KAAKoN,QAAU,KACfpN,KAAKiL,YAAc,KACnBjL,KAAKwH,cAAgB,MAWzB1H,EAAK2vB,eAAepsB,UAAU0E,OAAS,SAASlB,EAAOC,GAEnD9G,KAAK6G,MAAQA,EAAQ7G,KAAKqB,WAC1BrB,KAAK8G,OAASA,EAAS9G,KAAKqB,WAE5BrB,KAAKiB,KAAK4F,MAAQ7G,KAAK6G,MACvB7G,KAAKiB,KAAK6F,OAAS9G,KAAK8G,OAEpB9G,KAAKuB,aACLvB,KAAKiB,KAAKwjB,MAAM5d,MAAQ7G,KAAK6G,MAAQ7G,KAAKqB,WAAa,KACvDrB,KAAKiB,KAAKwjB,MAAM3d,OAAS9G,KAAK8G,OAAS9G,KAAKqB,WAAa,OAajEvB,EAAK2vB,eAAepsB,UAAUihB,oBAAsB,SAASC,EAAenX,EAASnH,GAEjFjG,KAAKwH,cAAc4F,QAAUA,GAAWpN,KAAKoN,QAC7CpN,KAAKwH,cAAcnG,WAAarB,KAAKqB,WACrCkjB,EAAc1c,cAAc7H,KAAKwH,cAAevB,IASpDnG,EAAK2vB,eAAepsB,UAAUkgB,cAAgB,WAEtCzjB,EAAKwN,mBAELxN,EAAKwN,oBAEFxN,EAAKyQ,6BAEJzQ,EAAKwN,iBAAiBxN,EAAK+L,WAAWC,QAAY,cAClDhM,EAAKwN,iBAAiBxN,EAAK+L,WAAWwZ,KAAY,UAClDvlB,EAAKwN,iBAAiBxN,EAAK+L,WAAW2Z,UAAY,WAClD1lB,EAAKwN,iBAAiBxN,EAAK+L,WAAW6Z,QAAY,SAClD5lB,EAAKwN,iBAAiBxN,EAAK+L,WAAW8Z,SAAY,UAClD7lB,EAAKwN,iBAAiBxN,EAAK+L,WAAW+Z,QAAY,SAClD9lB,EAAKwN,iBAAiBxN,EAAK+L,WAAWga,SAAY,UAClD/lB,EAAKwN,iBAAiBxN,EAAK+L,WAAWia,aAAe,cACrDhmB,EAAKwN,iBAAiBxN,EAAK+L,WAAWka,YAAc,aACpDjmB,EAAKwN,iBAAiBxN,EAAK+L,WAAWma,YAAc,aACpDlmB,EAAKwN,iBAAiBxN,EAAK+L,WAAWoa,YAAc,aACpDnmB,EAAKwN,iBAAiBxN,EAAK+L,WAAWqa,YAAc,aACpDpmB,EAAKwN,iBAAiBxN,EAAK+L,WAAWsa,WAAa,YACnDrmB,EAAKwN,iBAAiBxN,EAAK+L,WAAWua,KAAa,MACnDtmB,EAAKwN,iBAAiBxN,EAAK+L,WAAWwa,YAAc,aACpDvmB,EAAKwN,iBAAiBxN,EAAK+L,WAAWya,OAAc,QACpDxmB,EAAKwN,iBAAiBxN,EAAK+L,WAAW0a,YAAc,eAKpDzmB,EAAKwN,iBAAiBxN,EAAK+L,WAAWC,QAAY,cAClDhM,EAAKwN,iBAAiBxN,EAAK+L,WAAWwZ,KAAY,UAClDvlB,EAAKwN,iBAAiBxN,EAAK+L,WAAW2Z,UAAY,cAClD1lB,EAAKwN,iBAAiBxN,EAAK+L,WAAW6Z,QAAY,cAClD5lB,EAAKwN,iBAAiBxN,EAAK+L,WAAW8Z,SAAY,cAClD7lB,EAAKwN,iBAAiBxN,EAAK+L,WAAW+Z,QAAY,cAClD9lB,EAAKwN,iBAAiBxN,EAAK+L,WAAWga,SAAY,cAClD/lB,EAAKwN,iBAAiBxN,EAAK+L,WAAWia,aAAe,cACrDhmB,EAAKwN,iBAAiBxN,EAAK+L,WAAWka,YAAc,cACpDjmB,EAAKwN,iBAAiBxN,EAAK+L,WAAWma,YAAc,cACpDlmB,EAAKwN,iBAAiBxN,EAAK+L,WAAWoa,YAAc,cACpDnmB,EAAKwN,iBAAiBxN,EAAK+L,WAAWqa,YAAc,cACpDpmB,EAAKwN,iBAAiBxN,EAAK+L,WAAWsa,WAAa,cACnDrmB,EAAKwN,iBAAiBxN,EAAK+L,WAAWua,KAAa,cACnDtmB,EAAKwN,iBAAiBxN,EAAK+L,WAAWwa,YAAc,cACpDvmB,EAAKwN,iBAAiBxN,EAAK+L,WAAWya,OAAc,cACpDxmB,EAAKwN,iBAAiBxN,EAAK+L,WAAW0a,YAAc,iBAgBhEzmB,EAAKyuB,eAAiB,aAYtBzuB,EAAKyuB,eAAe9T,eAAiB,SAASC,EAAUtN,GAEpD,GAAI9K,GAAaoY,EAASpY,UAEtBoY,GAAS9E,QAET5V,KAAK+vB,mBAAmBrV,GACxBA,EAAS9E,OAAQ,EAGrB,KAAK,GAAInS,GAAI,EAAGA,EAAIiX,EAAS8B,aAAa9Y,OAAQD,IAClD,CACI,GAAI0N,GAAOuJ,EAAS8B,aAAa/Y,GAC7BqZ,EAAQ3L,EAAK2L,MAEbqB,EAAYhN,EAAK6e,UACjBjO,EAAY5Q,EAAK8e,SAIrB,IAFA7iB,EAAQkQ,UAAYnM,EAAKmM,UAErBnM,EAAK4F,OAASjX,EAAK6c,SAASC,KAChC,CACIxP,EAAQ8iB,WAER,IAAIrT,GAASC,EAAMD,MAEnBzP,GAAQ+iB,OAAOtT,EAAO,GAAIA,EAAO,GAEjC,KAAK,GAAIvY,GAAE,EAAGA,EAAIuY,EAAOnZ,OAAO,EAAGY,IAE/B8I,EAAQgjB,OAAOvT,EAAW,EAAJvY,GAAQuY,EAAW,EAAJvY,EAAQ,GAG7CwY,GAAME,QAEN5P,EAAQgjB,OAAOvT,EAAO,GAAIA,EAAO,IAIjCA,EAAO,KAAOA,EAAOA,EAAOnZ,OAAO,IAAMmZ,EAAO,KAAOA,EAAOA,EAAOnZ,OAAO,IAE5E0J,EAAQijB,YAGRlf,EAAK8L,OAEL7P,EAAQG,YAAc4D,EAAKiN,UAAY9b,EACvC8K,EAAQyhB,UAAY,KAAO,SAAwB,EAAZ1Q,GAAejO,SAAS,KAAKC,OAAO,IAC3E/C,EAAQ6P,QAGR9L,EAAKmM,YAELlQ,EAAQG,YAAc4D,EAAK6Q,UAAY1f,EACvC8K,EAAQkjB,YAAc,KAAO,SAAwB,EAAZvO,GAAe7R,SAAS,KAAKC,OAAO,IAC7E/C,EAAQmjB,cAGX,IAAIpf,EAAK4F,OAASjX,EAAK6c,SAASa,MAE7BrM,EAAKgN,WAAgC,IAAnBhN,EAAKgN,aAEvB/Q,EAAQG,YAAc4D,EAAKiN,UAAY9b,EACvC8K,EAAQyhB,UAAY,KAAO,SAAwB,EAAZ1Q,GAAejO,SAAS,KAAKC,OAAO,IAC3E/C,EAAQ0hB,SAAShS,EAAMpX,EAAGoX,EAAMnX,EAAGmX,EAAMjW,MAAOiW,EAAMhW,SAGtDqK,EAAKmM,YAELlQ,EAAQG,YAAc4D,EAAK6Q,UAAY1f,EACvC8K,EAAQkjB,YAAc,KAAO,SAAwB,EAAZvO,GAAe7R,SAAS,KAAKC,OAAO,IAC7E/C,EAAQojB,WAAW1T,EAAMpX,EAAGoX,EAAMnX,EAAGmX,EAAMjW,MAAOiW,EAAMhW,aAG3D,IAAIqK,EAAK4F,OAASjX,EAAK6c,SAASe,KAGjCtQ,EAAQ8iB,YACR9iB,EAAQqjB,IAAI3T,EAAMpX,EAAGoX,EAAMnX,EAAGmX,EAAM6B,OAAO,EAAE,EAAEhe,KAAKC,IACpDwM,EAAQijB,YAEJlf,EAAK8L,OAEL7P,EAAQG,YAAc4D,EAAKiN,UAAY9b,EACvC8K,EAAQyhB,UAAY,KAAO,SAAwB,EAAZ1Q,GAAejO,SAAS,KAAKC,OAAO,IAC3E/C,EAAQ6P,QAGR9L,EAAKmM,YAELlQ,EAAQG,YAAc4D,EAAK6Q,UAAY1f,EACvC8K,EAAQkjB,YAAc,KAAO,SAAwB,EAAZvO,GAAe7R,SAAS,KAAKC,OAAO,IAC7E/C,EAAQmjB,cAGX,IAAIpf,EAAK4F,OAASjX,EAAK6c,SAASgB,KACrC,CAGI,GAAIpE,GAAkB,EAAduD,EAAMjW,MACVwjB,EAAmB,EAAfvN,EAAMhW,OAEVpB,EAAIoX,EAAMpX,EAAI6T,EAAE,EAChB5T,EAAImX,EAAMnX,EAAI0kB,EAAE,CAEpBjd,GAAQ8iB,WAER,IAAIQ,GAAQ,SACRC,EAAMpX,EAAI,EAAKmX,EACfE,EAAMvG,EAAI,EAAKqG,EACfG,EAAKnrB,EAAI6T,EACTuX,EAAKnrB,EAAI0kB,EACT0G,EAAKrrB,EAAI6T,EAAI,EACbyX,EAAKrrB,EAAI0kB,EAAI,CAEjBjd,GAAQ+iB,OAAOzqB,EAAGsrB,GAClB5jB,EAAQ6jB,cAAcvrB,EAAGsrB,EAAKJ,EAAIG,EAAKJ,EAAIhrB,EAAGorB,EAAIprB,GAClDyH,EAAQ6jB,cAAcF,EAAKJ,EAAIhrB,EAAGkrB,EAAIG,EAAKJ,EAAIC,EAAIG,GACnD5jB,EAAQ6jB,cAAcJ,EAAIG,EAAKJ,EAAIG,EAAKJ,EAAIG,EAAIC,EAAID,GACpD1jB,EAAQ6jB,cAAcF,EAAKJ,EAAIG,EAAIprB,EAAGsrB,EAAKJ,EAAIlrB,EAAGsrB,GAElD5jB,EAAQijB,YAEJlf,EAAK8L,OAEL7P,EAAQG,YAAc4D,EAAKiN,UAAY9b,EACvC8K,EAAQyhB,UAAY,KAAO,SAAwB,EAAZ1Q,GAAejO,SAAS,KAAKC,OAAO,IAC3E/C,EAAQ6P,QAGR9L,EAAKmM,YAELlQ,EAAQG,YAAc4D,EAAK6Q,UAAY1f,EACvC8K,EAAQkjB,YAAc,KAAO,SAAwB,EAAZvO,GAAe7R,SAAS,KAAKC,OAAO,IAC7E/C,EAAQmjB,cAGX,IAAIpf,EAAK4F,OAASjX,EAAK6c,SAASkB,KACrC,CACI,GAAIqT,GAAKpU,EAAMpX,EACXyrB,EAAKrU,EAAMnX,EACXkB,EAAQiW,EAAMjW,MACdC,EAASgW,EAAMhW,OACf6X,EAAS7B,EAAM6B,OAEfyS,EAAYzwB,KAAK0wB,IAAIxqB,EAAOC,GAAU,EAAI,CAC9C6X,GAASA,EAASyS,EAAYA,EAAYzS,EAE1CvR,EAAQ8iB,YACR9iB,EAAQ+iB,OAAOe,EAAIC,EAAKxS,GACxBvR,EAAQgjB,OAAOc,EAAIC,EAAKrqB,EAAS6X,GACjCvR,EAAQkkB,iBAAiBJ,EAAIC,EAAKrqB,EAAQoqB,EAAKvS,EAAQwS,EAAKrqB,GAC5DsG,EAAQgjB,OAAOc,EAAKrqB,EAAQ8X,EAAQwS,EAAKrqB,GACzCsG,EAAQkkB,iBAAiBJ,EAAKrqB,EAAOsqB,EAAKrqB,EAAQoqB,EAAKrqB,EAAOsqB,EAAKrqB,EAAS6X,GAC5EvR,EAAQgjB,OAAOc,EAAKrqB,EAAOsqB,EAAKxS,GAChCvR,EAAQkkB,iBAAiBJ,EAAKrqB,EAAOsqB,EAAID,EAAKrqB,EAAQ8X,EAAQwS,GAC9D/jB,EAAQgjB,OAAOc,EAAKvS,EAAQwS,GAC5B/jB,EAAQkkB,iBAAiBJ,EAAIC,EAAID,EAAIC,EAAKxS,GAC1CvR,EAAQijB,aAEJlf,EAAKgN,WAAgC,IAAnBhN,EAAKgN,aAEvB/Q,EAAQG,YAAc4D,EAAKiN,UAAY9b,EACvC8K,EAAQyhB,UAAY,KAAO,SAAwB,EAAZ1Q,GAAejO,SAAS,KAAKC,OAAO,IAC3E/C,EAAQ6P,QAGR9L,EAAKmM,YAELlQ,EAAQG,YAAc4D,EAAK6Q,UAAY1f,EACvC8K,EAAQkjB,YAAc,KAAO,SAAwB,EAAZvO,GAAe7R,SAAS,KAAKC,OAAO,IAC7E/C,EAAQmjB,aAexBzwB,EAAKyuB,eAAeC,mBAAqB,SAAS9T,EAAUtN,GAExD,GAAImkB,GAAM7W,EAAS8B,aAAa9Y,MAEhC,IAAY,IAAR6tB,EAAJ,CAKAnkB,EAAQ8iB,WAER,KAAK,GAAIzsB,GAAI,EAAO8tB,EAAJ9tB,EAASA,IACzB,CACI,GAAI0N,GAAOuJ,EAAS8B,aAAa/Y,GAC7BqZ,EAAQ3L,EAAK2L,KAEjB,IAAI3L,EAAK4F,OAASjX,EAAK6c,SAASC,KAChC,CAEI,GAAIC,GAASC,EAAMD,MAEnBzP,GAAQ+iB,OAAOtT,EAAO,GAAIA,EAAO,GAEjC,KAAK,GAAIvY,GAAE,EAAGA,EAAIuY,EAAOnZ,OAAO,EAAGY,IAE/B8I,EAAQgjB,OAAOvT,EAAW,EAAJvY,GAAQuY,EAAW,EAAJvY,EAAQ,GAI7CuY,GAAO,KAAOA,EAAOA,EAAOnZ,OAAO,IAAMmZ,EAAO,KAAOA,EAAOA,EAAOnZ,OAAO,IAE5E0J,EAAQijB,gBAIX,IAAIlf,EAAK4F,OAASjX,EAAK6c,SAASa,KAEjCpQ,EAAQokB,KAAK1U,EAAMpX,EAAGoX,EAAMnX,EAAGmX,EAAMjW,MAAOiW,EAAMhW,QAClDsG,EAAQijB,gBAEP,IAAIlf,EAAK4F,OAASjX,EAAK6c,SAASe,KAGjCtQ,EAAQqjB,IAAI3T,EAAMpX,EAAGoX,EAAMnX,EAAGmX,EAAM6B,OAAQ,EAAG,EAAIhe,KAAKC,IACxDwM,EAAQijB,gBAEP,IAAIlf,EAAK4F,OAASjX,EAAK6c,SAASgB,KACrC,CAII,GAAIpE,GAAkB,EAAduD,EAAMjW,MACVwjB,EAAmB,EAAfvN,EAAMhW,OAEVpB,EAAIoX,EAAMpX,EAAI6T,EAAE,EAChB5T,EAAImX,EAAMnX,EAAI0kB,EAAE,EAEhBqG,EAAQ,SACRC,EAAMpX,EAAI,EAAKmX,EACfE,EAAMvG,EAAI,EAAKqG,EACfG,EAAKnrB,EAAI6T,EACTuX,EAAKnrB,EAAI0kB,EACT0G,EAAKrrB,EAAI6T,EAAI,EACbyX,EAAKrrB,EAAI0kB,EAAI,CAEjBjd,GAAQ+iB,OAAOzqB,EAAGsrB,GAClB5jB,EAAQ6jB,cAAcvrB,EAAGsrB,EAAKJ,EAAIG,EAAKJ,EAAIhrB,EAAGorB,EAAIprB,GAClDyH,EAAQ6jB,cAAcF,EAAKJ,EAAIhrB,EAAGkrB,EAAIG,EAAKJ,EAAIC,EAAIG,GACnD5jB,EAAQ6jB,cAAcJ,EAAIG,EAAKJ,EAAIG,EAAKJ,EAAIG,EAAIC,EAAID,GACpD1jB,EAAQ6jB,cAAcF,EAAKJ,EAAIG,EAAIprB,EAAGsrB,EAAKJ,EAAIlrB,EAAGsrB,GAClD5jB,EAAQijB,gBAEP,IAAIlf,EAAK4F,OAASjX,EAAK6c,SAASkB,KACrC,CAEI,GAAIqT,GAAKpU,EAAMpX,EACXyrB,EAAKrU,EAAMnX,EACXkB,EAAQiW,EAAMjW,MACdC,EAASgW,EAAMhW,OACf6X,EAAS7B,EAAM6B,OAEfyS,EAAYzwB,KAAK0wB,IAAIxqB,EAAOC,GAAU,EAAI,CAC9C6X,GAASA,EAASyS,EAAYA,EAAYzS,EAE1CvR,EAAQ+iB,OAAOe,EAAIC,EAAKxS,GACxBvR,EAAQgjB,OAAOc,EAAIC,EAAKrqB,EAAS6X,GACjCvR,EAAQkkB,iBAAiBJ,EAAIC,EAAKrqB,EAAQoqB,EAAKvS,EAAQwS,EAAKrqB,GAC5DsG,EAAQgjB,OAAOc,EAAKrqB,EAAQ8X,EAAQwS,EAAKrqB,GACzCsG,EAAQkkB,iBAAiBJ,EAAKrqB,EAAOsqB,EAAKrqB,EAAQoqB,EAAKrqB,EAAOsqB,EAAKrqB,EAAS6X,GAC5EvR,EAAQgjB,OAAOc,EAAKrqB,EAAOsqB,EAAKxS,GAChCvR,EAAQkkB,iBAAiBJ,EAAKrqB,EAAOsqB,EAAID,EAAKrqB,EAAQ8X,EAAQwS,GAC9D/jB,EAAQgjB,OAAOc,EAAKvS,EAAQwS,GAC5B/jB,EAAQkkB,iBAAiBJ,EAAIC,EAAID,EAAIC,EAAKxS,GAC1CvR,EAAQijB,gBAKpBvwB,EAAKyuB,eAAewB,mBAAqB,SAASrV,GAE9C,GAAsB,WAAlBA,EAASjP,KASb,IAAK,GAJDgmB,IAAS/W,EAASjP,MAAQ,GAAK,KAAQ,IACvCimB,GAAShX,EAASjP,MAAQ,EAAI,KAAQ,IACtCkmB,GAAyB,IAAhBjX,EAASjP,MAAc,IAE3BhI,EAAI,EAAGA,EAAIiX,EAAS8B,aAAa9Y,OAAQD,IAClD,CACI,GAAI0N,GAAOuJ,EAAS8B,aAAa/Y,GAE7B0a,EAA6B,EAAjBhN,EAAKgN,UACjB4D,EAA6B,EAAjB5Q,EAAK4Q,SAwBrB5Q,GAAK6e,YAAe7R,GAAa,GAAK,KAAQ,IAAMsT,EAAM,KAAO,MAAQtT,GAAa,EAAI,KAAQ,IAAMuT,EAAM,KAAO,IAAmB,IAAZvT,GAAoB,IAAMwT,EAAM,IAC5JxgB,EAAK8e,YAAelO,GAAa,GAAK,KAAQ,IAAM0P,EAAM,KAAO,MAAQ1P,GAAa,EAAI,KAAQ,IAAM2P,EAAM,KAAO,IAAmB,IAAZ3P,GAAoB,IAAM4P,EAAM,MASpK7xB,EAAK8xB,oBAEL9xB,EAAK+xB,4BAA8B,EAWnC/xB,EAAKgyB,YAAc,SAAStjB,EAAQhI,GAQhCxG,KAAKqB,WAAa,EASlBrB,KAAK6G,MAAQ,IASb7G,KAAK8G,OAAS,IASd9G,KAAKwG,UAAYA,GAAa1G,EAAK2N,WAAW4f,QAS9CrtB,KAAKiM,WAAY,EAQjBjM,KAAKwO,OAASA,EAEdxO,KAAKI,KAAON,EAAKM,OASjBJ,KAAK4iB,oBAAqB,EAS1B5iB,KAAK2X,eASL3X,KAAK6kB,QAAS,EAOd7kB,KAAKwZ,SAAU,GAAM,GAAM,GAAM,GAE5BhL,KAKAxO,KAAKwO,OAAOujB,UAAY/xB,KAAKwO,OAAOyC,aAAejR,KAAKwO,OAAO3H,OAAS7G,KAAKwO,OAAO1H,SAErF9G,KAAKiM,WAAY,EACjBjM,KAAK6G,MAAQ7G,KAAKwO,OAAOwjB,cAAgBhyB,KAAKwO,OAAO3H,MACrD7G,KAAK8G,OAAS9G,KAAKwO,OAAOyjB,eAAiBjyB,KAAKwO,OAAO1H,OACvD9G,KAAK4V,SAOT5V,KAAKkyB,SAAW,KAOhBlyB,KAAKilB,WAAY,IAIrBnlB,EAAKgyB,YAAYzuB,UAAUC,YAAcxD,EAAKgyB,YAW9ChyB,EAAKgyB,YAAYzuB,UAAU8uB,YAAc,SAAStrB,EAAOC,GAErD9G,KAAKiM,WAAY,EACjBjM,KAAK6G,MAAQA,EACb7G,KAAK8G,OAASA,EACd9G,KAAK4V,SAST9V,EAAKgyB,YAAYzuB,UAAUE,QAAU,WAE7BvD,KAAKkyB,gBAEEpyB,GAAK8xB,iBAAiB5xB,KAAKkyB,gBAC3BpyB,GAAK6O,aAAa3O,KAAKkyB,UAC9BlyB,KAAKkyB,SAAW,KACXvC,UAAUC,aAAY5vB,KAAKwO,OAAOqC,IAAM,KAExC7Q,KAAKwO,QAAUxO,KAAKwO,OAAO4jB,eAEzBtyB,GAAK8xB,iBAAiB5xB,KAAKwO,OAAO4jB,SAE7CpyB,KAAKwO,OAAS,KAEdxO,KAAKqyB,iBASTvyB,EAAKgyB,YAAYzuB,UAAUivB,kBAAoB,SAASC,GAEpDvyB,KAAKiM,WAAY,EACjBjM,KAAKwO,OAAOqC,IAAM,KAClB7Q,KAAKwO,OAAOqC,IAAM0hB,GAQtBzyB,EAAKgyB,YAAYzuB,UAAUuS,MAAQ,WAE/B,IAAK,GAAInS,GAAI,EAAGA,EAAIzD,KAAK2X,YAAYjU,OAAQD,IAEzCzD,KAAKwZ,OAAO/V,IAAK,GAUzB3D,EAAKgyB,YAAYzuB,UAAUgvB,cAAgB,WAEvCryB,KAAK4V,OAGL,KAAK,GAAInS,GAAIzD,KAAK2X,YAAYjU,OAAS,EAAGD,GAAK,EAAGA,IAClD,CACI,GAAI+uB,GAAYxyB,KAAK2X,YAAYlU,GAC7BiE,EAAK5H,EAAKyiB,WAAW9e,EAEtBiE,IAAM8qB,GAEL9qB,EAAGumB,cAAcuE,GAKzBxyB,KAAK2X,YAAYjU,OAAS,EAE1B1D,KAAK4V,SAcT9V,EAAKgyB,YAAYljB,UAAY,SAASsjB,EAAUpjB,EAAatI,GAEzD,GAAIwF,GAAclM,EAAK8xB,iBAAiBM,EAIxC,IAFmBzoB,SAAhBqF,GAA2D,KAA9BojB,EAAS/oB,QAAQ,WAAiB2F,GAAc,IAE5E9C,EACJ,CAGI,GAAIymB,GAAQ,GAAI7hB,MAEZ9B,KAEA2jB,EAAMC,YAAc,IAGxBD,EAAM5hB,IAAMqhB,EACZlmB,EAAc,GAAIlM,GAAKgyB,YAAYW,EAAOjsB,GAC1CwF,EAAYkmB,SAAWA,EACvBpyB,EAAK8xB,iBAAiBM,GAAYlmB,EAGiB,KAA/CkmB,EAAS/oB,QAAQrJ,EAAKiB,cAAgB,OAEtCiL,EAAY3K,WAAa,GAIjC,MAAO2K,IAYXlM,EAAKgyB,YAAYa,WAAa,SAAS5hB,EAAQvK,GAEvCuK,EAAOqhB,UAEPrhB,EAAOqhB,QAAU,UAAYtyB,EAAK8yB,2BAGjB,IAAjB7hB,EAAOlK,QAEPkK,EAAOlK,MAAQ,GAGG,IAAlBkK,EAAOjK,SAEPiK,EAAOjK,OAAS,EAGpB,IAAIkF,GAAclM,EAAK8xB,iBAAiB7gB,EAAOqhB,QAQ/C,OANIpmB,KAEAA,EAAc,GAAIlM,GAAKgyB,YAAY/gB,EAAQvK,GAC3C1G,EAAK8xB,iBAAiB7gB,EAAOqhB,SAAWpmB,GAGrCA,GAOXlM,EAAK6O,gBACL7O,EAAK+yB,cASL/yB,EAAKgzB,mBAAoB,EAEzBhzB,EAAK8yB,wBAA0B,EAc/B9yB,EAAKyL,QAAU,SAASS,EAAaG,EAAOe,EAAMU,GAQ9C5N,KAAK+yB,SAAU,EAEV5mB,IAEDnM,KAAK+yB,SAAU,EACf5mB,EAAQ,GAAIrM,GAAKkD,UAAU,EAAE,EAAE,EAAE,IAGjCgJ,YAAuBlM,GAAKyL,UAE5BS,EAAcA,EAAYA,aAS9BhM,KAAKgM,YAAcA,EAQnBhM,KAAKmM,MAAQA,EAQbnM,KAAK4N,KAAOA,EAQZ5N,KAAKqM,OAAQ,EAQbrM,KAAKgzB,UAAW,EAQhBhzB,KAAKizB,gBAAiB,EAQtBjzB,KAAKkO,gBAAiB,EAStBlO,KAAK6pB,KAAO,KAQZ7pB,KAAK6G,MAAQ,EAQb7G,KAAK8G,OAAS,EASd9G,KAAKkN,KAAOA,GAAQ,GAAIpN,GAAKkD,UAAU,EAAG,EAAG,EAAG,GAE5CgJ,EAAYC,YAERjM,KAAK+yB,UAAS5mB,EAAQ,GAAIrM,GAAKkD,UAAU,EAAG,EAAGgJ,EAAYnF,MAAOmF,EAAYlF,SAClF9G,KAAKkzB,SAAS/mB,KAKtBrM,EAAKyL,QAAQlI,UAAUC,YAAcxD,EAAKyL,QAQ1CzL,EAAKyL,QAAQlI,UAAU8vB,oBAAsB,WAEzC,GAAInnB,GAAchM,KAAKgM,WAEnBhM,MAAK+yB,UAEL/yB,KAAKmM,MAAQ,GAAIrM,GAAKkD,UAAU,EAAG,EAAGgJ,EAAYnF,MAAOmF,EAAYlF,SAGzE9G,KAAKkzB,SAASlzB,KAAKmM,QASvBrM,EAAKyL,QAAQlI,UAAUE,QAAU,SAAS6vB,GAElCA,GAAapzB,KAAKgM,YAAYzI,UAElCvD,KAAKqM,OAAQ,GASjBvM,EAAKyL,QAAQlI,UAAU6vB,SAAW,SAAS/mB,GAavC,GAXAnM,KAAK+yB,SAAU,EAEf/yB,KAAKmM,MAAQA,EACbnM,KAAK6G,MAAQsF,EAAMtF,MACnB7G,KAAK8G,OAASqF,EAAMrF,OAEpB9G,KAAKkN,KAAKxH,EAAIyG,EAAMzG,EACpB1F,KAAKkN,KAAKvH,EAAIwG,EAAMxG,EACpB3F,KAAKkN,KAAKrG,MAAQsF,EAAMtF,MACxB7G,KAAKkN,KAAKpG,OAASqF,EAAMrF,QAEpB9G,KAAK4N,OAASzB,EAAMzG,EAAIyG,EAAMtF,MAAQ7G,KAAKgM,YAAYnF,OAASsF,EAAMxG,EAAIwG,EAAMrF,OAAS9G,KAAKgM,YAAYlF,QAC/G,CACI,IAAKhH,EAAKgzB,kBAEN,KAAM,IAAIjqB,OAAM,wEAA0E7I,KAI9F,aADAA,KAAKqM,OAAQ,GAIjBrM,KAAKqM,MAAQF,GAASA,EAAMtF,OAASsF,EAAMrF,QAAU9G,KAAKgM,YAAYwC,QAAUxO,KAAKgM,YAAYC,UAE7FjM,KAAK4N,OAEL5N,KAAK6G,MAAQ7G,KAAK4N,KAAK/G,MACvB7G,KAAK8G,OAAS9G,KAAK4N,KAAK9G,OACxB9G,KAAKmM,MAAMtF,MAAQ7G,KAAK4N,KAAK/G,MAC7B7G,KAAKmM,MAAMrF,OAAS9G,KAAK4N,KAAK9G,QAG9B9G,KAAKqM,OAAOrM,KAAKqzB,cAUzBvzB,EAAKyL,QAAQlI,UAAUgwB,WAAa,WAE5BrzB,KAAK6pB,OAAK7pB,KAAK6pB,KAAO,GAAI/pB,GAAKsqB,WAEnC,IAAIje,GAAQnM,KAAKkN,KACbomB,EAAKtzB,KAAKgM,YAAYnF,MACtB0sB,EAAKvzB,KAAKgM,YAAYlF,MAE1B9G,MAAK6pB,KAAKG,GAAK7d,EAAMzG,EAAI4tB,EACzBtzB,KAAK6pB,KAAKI,GAAK9d,EAAMxG,EAAI4tB,EAEzBvzB,KAAK6pB,KAAKnd,IAAMP,EAAMzG,EAAIyG,EAAMtF,OAASysB,EACzCtzB,KAAK6pB,KAAKld,GAAKR,EAAMxG,EAAI4tB,EAEzBvzB,KAAK6pB,KAAKjd,IAAMT,EAAMzG,EAAIyG,EAAMtF,OAASysB,EACzCtzB,KAAK6pB,KAAKhd,IAAMV,EAAMxG,EAAIwG,EAAMrF,QAAUysB,EAE1CvzB,KAAK6pB,KAAK/c,GAAKX,EAAMzG,EAAI4tB,EACzBtzB,KAAK6pB,KAAK9c,IAAMZ,EAAMxG,EAAIwG,EAAMrF,QAAUysB,GAc9CzzB,EAAKyL,QAAQqD,UAAY,SAASsjB,EAAUpjB,EAAatI,GAErD,GAAIsB,GAAUhI,EAAK6O,aAAaujB,EAQhC,OANIpqB,KAEAA,EAAU,GAAIhI,GAAKyL,QAAQzL,EAAKgyB,YAAYljB,UAAUsjB,EAAUpjB,EAAatI,IAC7E1G,EAAK6O,aAAaujB,GAAYpqB,GAG3BA,GAYXhI,EAAKyL,QAAQkD,UAAY,SAASC,GAE9B,GAAI5G,GAAUhI,EAAK6O,aAAaD,EAChC,KAAI5G,EAAS,KAAM,IAAIe,OAAM,gBAAkB6F,EAAU,yCACzD,OAAO5G,IAYXhI,EAAKyL,QAAQonB,WAAa,SAAS5hB,EAAQvK,GAEvC,GAAIwF,GAAclM,EAAKgyB,YAAYa,WAAW5hB,EAAQvK,EAEtD,OAAO,IAAI1G,GAAKyL,QAAQS,IAY5BlM,EAAKyL,QAAQioB,kBAAoB,SAAS1rB,EAAS8P,GAE/C9X,EAAK6O,aAAaiJ,GAAM9P,GAW5BhI,EAAKyL,QAAQkoB,uBAAyB,SAAS7b,GAE3C,GAAI9P,GAAUhI,EAAK6O,aAAaiJ,EAGhC,cAFO9X,GAAK6O,aAAaiJ,SAClB9X,GAAK8xB,iBAAiBha,GACtB9P,GAGXhI,EAAKsqB,WAAa,WAEdpqB,KAAKgqB,GAAK,EACVhqB,KAAKiqB,GAAK,EAEVjqB,KAAK0M,GAAK,EACV1M,KAAK2M,GAAK,EAEV3M,KAAK4M,GAAK,EACV5M,KAAK6M,GAAK,EAEV7M,KAAK8M,GAAK,EACV9M,KAAK+M,GAAK,GAqCdjN,EAAK8G,cAAgB,SAASC,EAAOC,EAAQL,EAAUD,EAAWnF,GAwE9D,GAhEArB,KAAK6G,MAAQA,GAAS,IAQtB7G,KAAK8G,OAASA,GAAU,IAQxB9G,KAAKqB,WAAaA,GAAc,EAQhCrB,KAAKmM,MAAQ,GAAIrM,GAAKkD,UAAU,EAAG,EAAGhD,KAAK6G,MAAQ7G,KAAKqB,WAAYrB,KAAK8G,OAAS9G,KAAKqB,YASvFrB,KAAKkN,KAAO,GAAIpN,GAAKkD,UAAU,EAAG,EAAGhD,KAAK6G,MAAQ7G,KAAKqB,WAAYrB,KAAK8G,OAAS9G,KAAKqB,YAQtFrB,KAAKgM,YAAc,GAAIlM,GAAKgyB,YAC5B9xB,KAAKgM,YAAYnF,MAAQ7G,KAAK6G,MAAQ7G,KAAKqB,WAC3CrB,KAAKgM,YAAYlF,OAAS9G,KAAK8G,OAAS9G,KAAKqB,WAC7CrB,KAAKgM,YAAY2L,eACjB3X,KAAKgM,YAAY3K,WAAarB,KAAKqB,WAEnCrB,KAAKgM,YAAYxF,UAAYA,GAAa1G,EAAK2N,WAAW4f,QAE1DrtB,KAAKgM,YAAYC,WAAY,EAE7BnM,EAAKyL,QAAQzF,KAAK9F,KACdA,KAAKgM,YACL,GAAIlM,GAAKkD,UAAU,EAAG,EAAGhD,KAAK6G,MAAQ7G,KAAKqB,WAAYrB,KAAK8G,OAAS9G,KAAKqB,aAS9ErB,KAAKyG,SAAWA,GAAY3G,EAAK4iB,gBAE7B1iB,KAAKyG,SAASsQ,OAASjX,EAAKG,eAChC,CACI,GAAIyH,GAAK1H,KAAKyG,SAASiB,EACvB1H,MAAKgM,YAAYwN,OAAO9R,EAAGkQ,KAAM,EAEjC5X,KAAK0zB,cAAgB,GAAI5zB,GAAKqsB,cAAczkB,EAAI1H,KAAK6G,MAAO7G,KAAK8G,OAAQ9G,KAAKgM,YAAYxF,WAC1FxG,KAAKgM,YAAY2L,YAAYjQ,EAAGkQ,IAAO5X,KAAK0zB,cAAc5rB,QAE1D9H,KAAKgH,OAAShH,KAAK2zB,YACnB3zB,KAAK4a,WAAa,GAAI9a,GAAK4B,MAAmB,GAAb1B,KAAK6G,MAA4B,IAAd7G,KAAK8G,YAIzD9G,MAAKgH,OAAShH,KAAK4zB,aACnB5zB,KAAK0zB,cAAgB,GAAI5zB,GAAKouB,aAAaluB,KAAK6G,MAAQ7G,KAAKqB,WAAYrB,KAAK8G,OAAS9G,KAAKqB,YAC5FrB,KAAKgM,YAAYwC,OAASxO,KAAK0zB,cAAc3iB,MAOjD/Q,MAAKqM,OAAQ,EAEbrM,KAAK6zB,WAAa,GAAIC,QAAOtxB,OAE7BxC,KAAKqzB,cAGTvzB,EAAK8G,cAAcvD,UAAYO,OAAOwE,OAAOtI,EAAKyL,QAAQlI,WAC1DvD,EAAK8G,cAAcvD,UAAUC,YAAcxD,EAAK8G,cAUhD9G,EAAK8G,cAAcvD,UAAU0E,OAAS,SAASlB,EAAOC,EAAQitB,IAEtDltB,IAAU7G,KAAK6G,OAASC,IAAW9G,KAAK8G,UAE5C9G,KAAKqM,MAASxF,EAAQ,GAAKC,EAAS,EAEpC9G,KAAK6G,MAAQA,EACb7G,KAAK8G,OAASA,EACd9G,KAAKmM,MAAMtF,MAAQ7G,KAAKkN,KAAKrG,MAAQA,EAAQ7G,KAAKqB,WAClDrB,KAAKmM,MAAMrF,OAAS9G,KAAKkN,KAAKpG,OAASA,EAAS9G,KAAKqB,WAEjD0yB,IAEA/zB,KAAKgM,YAAYnF,MAAQ7G,KAAK6G,MAAQ7G,KAAKqB,WAC3CrB,KAAKgM,YAAYlF,OAAS9G,KAAK8G,OAAS9G,KAAKqB,YAG7CrB,KAAKyG,SAASsQ,OAASjX,EAAKG,iBAE5BD,KAAK4a,WAAWlV,EAAI1F,KAAK6G,MAAQ,EACjC7G,KAAK4a,WAAWjV,GAAK3F,KAAK8G,OAAS,GAGnC9G,KAAKqM,OAETrM,KAAK0zB,cAAc3rB,OAAO/H,KAAK6G,MAAO7G,KAAK8G,UAQ/ChH,EAAK8G,cAAcvD,UAAU+gB,MAAQ,WAE5BpkB,KAAKqM,QAKNrM,KAAKyG,SAASsQ,OAASjX,EAAKG,gBAE5BD,KAAKyG,SAASiB,GAAGuc,gBAAgBjkB,KAAKyG,SAASiB,GAAGwc,YAAalkB,KAAK0zB,cAAcrH,aAGtFrsB,KAAK0zB,cAActP,UAYvBtkB,EAAK8G,cAAcvD,UAAUswB,YAAc,SAASpP,EAAete,EAAQme,GAEvE,GAAKpkB,KAAKqM,OAAiC,IAAxBkY,EAAcviB,MAAjC,CAOA,GAAIsD,GAAKif,EAAchiB,cACvB+C,GAAG0uB,WACH1uB,EAAG2uB,UAAU,EAAuB,EAApBj0B,KAAK4a,WAAWjV,GAE5BM,GAEAX,EAAG4uB,OAAOjuB,GAGdX,EAAG3D,MAAM,EAAG,GAGZ,KAAK,GAAI8B,GAAI,EAAGA,EAAI8gB,EAAc/gB,SAASE,OAAQD,IAE/C8gB,EAAc/gB,SAASC,GAAGkB,iBAI9B,IAAI+C,GAAK1H,KAAKyG,SAASiB,EAEvBA,GAAGsc,SAAS,EAAG,EAAGhkB,KAAK6G,MAAQ7G,KAAKqB,WAAYrB,KAAK8G,OAAS9G,KAAKqB,YAEnEqG,EAAGuc,gBAAgBvc,EAAGwc,YAAalkB,KAAK0zB,cAAcrH,aAElDjI,GAEApkB,KAAK0zB,cAActP,QAGvBpkB,KAAKyG,SAASmE,YAAYgL,OAAQ,EAElC5V,KAAKyG,SAAS6d,oBAAoBC,EAAevkB,KAAK4a,WAAY5a,KAAK0zB,cAAcrH,YAAapmB,GAElGjG,KAAKyG,SAASmE,YAAYgL,OAAQ,IAatC9V,EAAK8G,cAAcvD,UAAUuwB,aAAe,SAASrP,EAAete,EAAQme,GAExE,GAAKpkB,KAAKqM,OAAiC,IAAxBkY,EAAcviB,MAAjC,CAMA,IAAK,GAAIyB,GAAI,EAAGA,EAAI8gB,EAAc/gB,SAASE,OAAQD,IAE/C8gB,EAAc/gB,SAASC,GAAGkB,iBAG1Byf,IAEApkB,KAAK0zB,cAActP,OAGvB,IAAI+P,GAAiBn0B,KAAKyG,SAASpF,UAEnCrB,MAAKyG,SAASpF,WAAarB,KAAKqB,WAEhCrB,KAAKyG,SAAS6d,oBAAoBC,EAAevkB,KAAK0zB,cAActmB,QAASnH,GAE7EjG,KAAKyG,SAASpF,WAAa8yB,IAS/Br0B,EAAK8G,cAAcvD,UAAU+wB,SAAW,WAEpC,GAAI3B,GAAQ,GAAI7hB,MAEhB,OADA6hB,GAAM5hB,IAAM7Q,KAAKq0B,YACV5B,GASX3yB,EAAK8G,cAAcvD,UAAUgxB,UAAY,WAErC,MAAOr0B,MAAKs0B,YAAYC,aAS5Bz0B,EAAK8G,cAAcvD,UAAUixB,UAAY,WAErC,GAAIt0B,KAAKyG,SAASsQ,OAASjX,EAAKG,eAChC,CACI,GAAIyH,GAAM1H,KAAKyG,SAASiB,GACpBb,EAAQ7G,KAAK0zB,cAAc7sB,MAC3BC,EAAS9G,KAAK0zB,cAAc5sB,OAE5B0tB,EAAc,GAAIC,YAAW,EAAI5tB,EAAQC,EAE7CY,GAAGuc,gBAAgBvc,EAAGwc,YAAalkB,KAAK0zB,cAAcrH,aACtD3kB,EAAGgtB,WAAW,EAAG,EAAG7tB,EAAOC,EAAQY,EAAG2Q,KAAM3Q,EAAGmR,cAAe2b,GAC9D9sB,EAAGuc,gBAAgBvc,EAAGwc,YAAa,KAEnC,IAAIyQ,GAAa,GAAI70B,GAAKouB,aAAarnB,EAAOC,GAC1C8tB,EAAaD,EAAWvnB,QAAQ8D,aAAa,EAAG,EAAGrK,EAAOC,EAK9D,OAJA8tB,GAAWzjB,KAAKnN,IAAIwwB,GAEpBG,EAAWvnB,QAAQgiB,aAAawF,EAAY,EAAG,GAExCD,EAAW5jB,OAIlB,MAAO/Q,MAAK0zB,cAAc3iB,QAgBlCjR,EAAK0pB,eAAiB,SAASzU,EAAa4B,GASxC3W,KAAKoE,QAAUpE,MAOfA,KAAKspB,WAMLtpB,KAAK4V,OAAQ,EAMb5V,KAAKosB,QAAU,EAOfpsB,KAAK2W,SAAWA,MAOhB3W,KAAK+U,YAAcA,OAGvBjV,EAAK0pB,eAAenmB,UAAUC,YAAcxD,EAAK0pB,eAOjD1pB,EAAK0pB,eAAenmB,UAAU+V,aAAe,WAEzC,IAAI,GAAI3V,GAAE,EAAEa,EAAEtE,KAAKspB,QAAQ5lB,OAAUY,EAAFb,EAAKA,IAEpCzD,KAAKspB,QAAQ7lB,GAAGmS,OAAQ,GAcL,mBAAZif,UACe,mBAAXC,SAA0BA,OAAOD,UACxCA,QAAUC,OAAOD,QAAU/0B,GAE/B+0B,QAAQ/0B,KAAOA,GACU,mBAAXi1B,SAA0BA,OAAOC,IAC/CD,OAAO,OAAQ,WAAc,MAAOh1B,GAAKD,KAAOA,MAEhDC,EAAKD,KAAOA,EAGTA,GACRgG,KAAK9F,OAOR,WAi3gBA,QAASi1B,GAAiBC,EAAaC,GAMnCn1B,KAAKo1B,aAAeF,EAMpBl1B,KAAKq1B,WAAaF,EAMlBn1B,KAAKs1B,cAAgB,KAj4gBrB,GAAIv1B,GAAOC,KAYX8zB,EAASA,IAOT3zB,QAAS,QAOTo1B,SAOAC,KAAM,EAONC,OAAQ,EAORC,MAAO,EAOPC,SAAU,EAOVC,KAAM,EAONC,KAAM,EAONC,MAAO,EAOPC,GAAI,EAOJC,KAAM,EAONC,OAAQ,EAORC,OAAQ,EAORC,MAAO,EAOPC,SAAU,EAOVC,KAAM,EAONC,WAAY,EAOZC,WAAY,EAOZC,MAAO,EAOPC,cAAe,EAOfC,QAAS,EAOTC,aAAc,GAOdC,QAAS,GAOTC,QAAS,GAOTC,WAAY,GAOZC,cAAe,GAOfC,aAAc,GAOdC,QAAS,GAOTC,YAAa,GAObC,UAAW,GAOXC,QAAS,GAOTC,KAAM,GAONC,OAAQ,GAORC,UAAW,GAOXC,KAAM,GAONC,OAAQ,GAORC,MAAO,GAOPC,iBAAkB,GAOlBC,SAAU,GAOVC,MAAO,GA2BPhsB,YACIC,OAAO,EACPuZ,IAAI,EACJG,SAAS,EACTE,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,IAgBf9Y,YACI4f,QAAQ,EACR3f,OAAO,EACPkX,QAAQ,GAGZ9kB,KAAMA,SA6GV,IAnGKa,KAAKm3B,QACNn3B,KAAKm3B,MAAQ,SAAepyB,GACxB,MAAW,GAAJA,EAAQ/E,KAAKo3B,KAAKryB,GAAK/E,KAAKq3B,MAAMtyB,KAO5CuyB,SAAS50B,UAAU60B,OAGpBD,SAAS50B,UAAU60B,KAAO,WAEtB,GAAInb,GAAQtc,MAAM4C,UAAU0Z,KAE5B,OAAO,UAAUob,GASb,QAASC,KACL,GAAIC,GAAOC,EAAUzZ,OAAO9B,EAAMjX,KAAKyyB,WACvC9zB,GAAO0C,MAAMnH,eAAgBo4B,GAAQp4B,KAAOm4B,EAASE,GATzD,GAAI5zB,GAASzE,KAAMs4B,EAAYvb,EAAMjX,KAAKyyB,UAAW,EAErD,IAAsB,kBAAX9zB,GAEP,KAAM,IAAI+zB,UAqBd,OAbAJ,GAAM/0B,UAAY,QAAUo1B,GAAEC,GAM1B,MALIA,KAEAD,EAAEp1B,UAAYq1B,GAGZ14B,eAAgBy4B,GAAtB,OAGW,GAAIA,IAEhBh0B,EAAOpB,WAEH+0B,OAQd33B,MAAMyT,UAEPzT,MAAMyT,QAAU,SAAUykB,GAEtB,MAA8C,kBAAvC/0B,OAAOP,UAAU6M,SAASpK,KAAK6yB,KAQzCl4B,MAAM4C,UAAUu1B,UAEjBn4B,MAAM4C,UAAUu1B,QAAU,SAASC,GAE/B,YAEA,IAAa,SAAT74B,MAA4B,OAATA,KAEnB,KAAM,IAAIw4B,UAGd,IAAIM,GAAIl1B,OAAO5D,MACXuxB,EAAMuH,EAAEp1B,SAAW,CAEvB,IAAmB,kBAARm1B,GAEP,KAAM,IAAIL,UAKd,KAAK,GAFDL,GAAUI,UAAU70B,QAAU,EAAI60B,UAAU,GAAK,OAE5C90B,EAAI,EAAO8tB,EAAJ9tB,EAASA,IAEjBA,IAAKq1B,IAELD,EAAI/yB,KAAKqyB,EAASW,EAAEr1B,GAAIA,EAAGq1B,KAWT,kBAAvBrkB,QAAOlU,aAA4D,gBAAvBkU,QAAOlU,YAC9D,CACI,GAAIw4B,GAAa,SAAShiB,GAEtB,GAAI2hB,GAAQ,GAAIj4B,MAEhBgU,QAAOsC,GAAQ,SAAS4hB,GAEpB,GAAoB,gBAAV,GACV,CACIl4B,MAAMqF,KAAK9F,KAAM24B,GACjB34B,KAAK0D,OAASi1B,CAEd,KAAK,GAAIl1B,GAAI,EAAGA,EAAIzD,KAAK0D,OAAQD,IAE7BzD,KAAKyD,GAAK,MAIlB,CACIhD,MAAMqF,KAAK9F,KAAM24B,EAAIj1B,QAErB1D,KAAK0D,OAASi1B,EAAIj1B,MAElB,KAAK,GAAID,GAAI,EAAGA,EAAIzD,KAAK0D,OAAQD,IAE7BzD,KAAKyD,GAAKk1B,EAAIl1B,KAK1BgR,OAAOsC,GAAM1T,UAAYq1B,EACzBjkB,OAAOsC,GAAMzT,YAAcmR,OAAOsC,GAGtCgiB,GAAW,eACXA,EAAW,cAMVtkB,OAAOC,UAERD,OAAOC,WACPD,OAAOC,QAAQC,IAAMF,OAAOC,QAAQskB,OAAS,aAC7CvkB,OAAOC,QAAQukB,KAAOxkB,OAAOC,QAAQskB,OAAS,cAalDlF,EAAOoF,OAUHC,YAAa,SAASC,EAAKC,GAQvB,IANA,GAAIC,GAAQD,EAAKE,MAAM,KACnBC,EAAOF,EAAMtb,MACbyb,EAAIH,EAAM51B,OACVD,EAAI,EACJi2B,EAAUJ,EAAM,GAETG,EAAJh2B,IAAU21B,EAAMA,EAAIM,KAEvBA,EAAUJ,EAAM71B,GAChBA,GAGJ,OAAI21B,GAEOA,EAAII,GAIJ,MAafG,YAAa,SAASP,EAAKC,EAAMp1B,GAQ7B,IANA,GAAIq1B,GAAQD,EAAKE,MAAM,KACnBC,EAAOF,EAAMtb,MACbyb,EAAIH,EAAM51B,OACVD,EAAI,EACJi2B,EAAUJ,EAAM,GAETG,EAAJh2B,IAAU21B,EAAMA,EAAIM,KAEvBA,EAAUJ,EAAM71B,GAChBA,GAQJ,OALI21B,KAEAA,EAAII,GAAQv1B,GAGTm1B,GAcXQ,WAAY,SAAUC,GAElB,MADepwB,UAAXowB,IAAwBA,EAAS,IAC9BA,EAAS,GAAsB,IAAhBl5B,KAAKm5B,UAAkBD,GAWjDE,aAAc,SAAUC,EAASC,GAC7B,MAAQt5B,MAAKm5B,SAAW,GAAOE,EAAUC,GAW7CC,eAAgB,SAAUvR,EAAMwR,GAE5B,GAAIC,GAAI,EACJ1nB,EAAK,CA4BT,OA1BoB,gBAATiW,GAGiB,MAApBA,EAAKxY,OAAO,KAEZiqB,EAAIC,SAAS1R,EAAM,IAAM,IAIrBjW,EAFc,IAAdynB,EAEK1lB,OAAO6lB,WAAaF,EAIpB3lB,OAAO8lB,YAAcH,GAK9B1nB,EAAK2nB,SAAS1R,EAAM,IAKxBjW,EAAKiW,EAGFjW,GAcX8nB,IAAK,SAAUC,EAAKlJ,EAAKiJ,EAAKE,GAE1B,GAAYjxB,SAAR8nB,EAAqB,GAAIA,GAAM,CACnC,IAAY9nB,SAAR+wB,EAAqB,GAAIA,GAAM,GACnC,IAAY/wB,SAARixB,EAAqB,GAAIA,GAAM,CAEnC,IAAIC,GAAS,CAEb,IAAIpJ,EAAM,GAAKkJ,EAAI/2B,OAEf,OAAQg3B,GAEJ,IAAK,GACDD,EAAM,GAAIh6B,OAAM8wB,EAAM,EAAIkJ,EAAI/2B,QAAQyQ,KAAKqmB,GAAOC,CAClD,MAEJ,KAAK,GACD,GAAIG,GAAQj6B,KAAKo3B,MAAM4C,EAASpJ,EAAMkJ,EAAI/2B,QAAU,GAChDm3B,EAAOF,EAASC,CACpBH,GAAM,GAAIh6B,OAAMo6B,EAAK,GAAG1mB,KAAKqmB,GAAOC,EAAM,GAAIh6B,OAAMm6B,EAAM,GAAGzmB,KAAKqmB,EAClE,MAEJ,SACIC,GAAY,GAAIh6B,OAAM8wB,EAAM,EAAIkJ,EAAI/2B,QAAQyQ,KAAKqmB,GAK7D,MAAOC,IAWXK,cAAe,SAAU1B,GAMrB,GAAoB,gBAAV,IAAsBA,EAAI2B,UAAY3B,IAAQA,EAAI3kB,OAExD,OAAO,CAOX,KACI,GAAI2kB,EAAI91B,iBAAqB03B,eAAel1B,KAAKszB,EAAI91B,YAAYD,UAAW,iBAExE,OAAO,EAEb,MAAO43B,GACL,OAAO,EAKX,OAAO,GAWXC,OAAQ,WAEJ,GAAIzY,GAAS0Y,EAAMtqB,EAAKuqB,EAAMC,EAAaC,EACvC72B,EAAS8zB,UAAU,OACnB90B,EAAI,EACJC,EAAS60B,UAAU70B,OACnB63B,GAAO,CAkBX,KAfsB,iBAAX92B,KAEP82B,EAAO92B,EACPA,EAAS8zB,UAAU,OAEnB90B,EAAI,GAIJC,IAAWD,IAEXgB,EAASzE,OACPyD,GAGKC,EAAJD,EAAYA,IAGf,GAAgC,OAA3Bgf,EAAU8V,UAAU90B,IAGrB,IAAK03B,IAAQ1Y,GAET5R,EAAMpM,EAAO02B,GACbC,EAAO3Y,EAAQ0Y,GAGX12B,IAAW22B,IAMXG,GAAQH,IAAStH,EAAOoF,MAAM4B,cAAcM,KAAUC,EAAc56B,MAAMyT,QAAQknB,MAE9EC,GAEAA,GAAc,EACdC,EAAQzqB,GAAOpQ,MAAMyT,QAAQrD,GAAOA,MAIpCyqB,EAAQzqB,GAAOijB,EAAOoF,MAAM4B,cAAcjqB,GAAOA,KAIrDpM,EAAO02B,GAAQrH,EAAOoF,MAAMgC,OAAOK,EAAMD,EAAOF,IAIlC3xB,SAAT2xB,IAEL32B,EAAO02B,GAAQC,GAO/B,OAAO32B,IAgBX+2B,eAAgB,SAAU/2B,EAAQg3B,EAAOC,GAErBjyB,SAAZiyB,IAAyBA,GAAU,EAIvC,KAAK,GAFDC,GAAY/3B,OAAOg4B,KAAKH,GAEnBh4B,EAAI,EAAGA,EAAIk4B,EAAUj4B,OAAQD,IACtC,CACI,GAAIiT,GAAMilB,EAAUl4B,GAChBQ,EAAQw3B,EAAM/kB,IAEbglB,GAAYhlB,IAAOjS,MAOhBR,GACsB,kBAAdA,GAAMH,KAA2C,kBAAdG,GAAMD,IAcjDS,EAAOiS,GAAOzS,EAXa,kBAAhBA,GAAMq3B,MAEb72B,EAAOiS,GAAOzS,EAAMq3B,QAIpB13B,OAAOC,eAAeY,EAAQiS,EAAKzS,MAqBvDw3B,MAAO,SAAUp0B,EAAMw0B,GAEnB,IAAKx0B,GAA0B,gBAAX,GAEhB,MAAOw0B,EAGX,KAAK,GAAInlB,KAAOrP,GAChB,CACI,GAAIy0B,GAAIz0B,EAAKqP,EAEb,KAAIolB,EAAEC,aAAcD,EAAEE,UAAtB,CAKA,GAAIjlB,SAAe1P,GAAKqP,EAWhBmlB,GAAGnlB,GATNrP,EAAKqP,IAAiB,WAATK,QAOF8kB,GAAGnlB,KAAUK,EAEX+c,EAAOoF,MAAMuC,MAAMp0B,EAAKqP,GAAMmlB,EAAGnlB,IAIjCod,EAAOoF,MAAMuC,MAAMp0B,EAAKqP,GAAM,GAAIolB,GAAEx4B,aAXxC+D,EAAKqP,IAgBvB,MAAOmlB,KAsBf/H,EAAOmI,OAAS,SAAUv2B,EAAGC,EAAGu2B,GAE5Bx2B,EAAIA,GAAK,EACTC,EAAIA,GAAK,EACTu2B,EAAWA,GAAY,EAKvBl8B,KAAK0F,EAAIA,EAKT1F,KAAK2F,EAAIA,EAMT3F,KAAKm8B,UAAYD,EAMjBl8B,KAAKo8B,QAAU,EAEXF,EAAW,IAEXl8B,KAAKo8B,QAAqB,GAAXF,GAOnBl8B,KAAK+W,KAAO+c,EAAOwD,QAIvBxD,EAAOmI,OAAO54B,WAQVg5B,cAAe,WAEX,MAAO,GAAK17B,KAAKC,GAAKZ,KAAKo8B,SAY/BtC,OAAQ,SAAUwC,GAEF7yB,SAAR6yB,IAAqBA,EAAM,GAAIxI,GAAOpyB,MAE1C,IAAIo3B,GAAI,EAAIn4B,KAAKC,GAAKD,KAAKm5B,SACvBtmB,EAAI7S,KAAKm5B,SAAWn5B,KAAKm5B,SACzBzb,EAAK7K,EAAI,EAAK,EAAIA,EAAIA,EACtB9N,EAAI2Y,EAAI1d,KAAK8E,IAAIqzB,GACjBnzB,EAAI0Y,EAAI1d,KAAK6E,IAAIszB,EAKrB,OAHAwD,GAAI52B,EAAI1F,KAAK0F,EAAKA,EAAI1F,KAAK2e,OAC3B2d,EAAI32B,EAAI3F,KAAK2F,EAAKA,EAAI3F,KAAK2e,OAEpB2d,GAUXt2B,UAAW,WAEP,MAAO,IAAI8tB,GAAO9wB,UAAUhD,KAAK0F,EAAI1F,KAAK2e,OAAQ3e,KAAK2F,EAAI3F,KAAK2e,OAAQ3e,KAAKk8B,SAAUl8B,KAAKk8B,WAYhGK,MAAO,SAAU72B,EAAGC,EAAGu2B,GAOnB,MALAl8B,MAAK0F,EAAIA,EACT1F,KAAK2F,EAAIA,EACT3F,KAAKm8B,UAAYD,EACjBl8B,KAAKo8B,QAAqB,GAAXF,EAERl8B,MAUXw8B,SAAU,SAAUhuB,GAEhB,MAAOxO,MAAKu8B,MAAM/tB,EAAO9I,EAAG8I,EAAO7I,EAAG6I,EAAO0tB,WAUjDO,OAAQ,SAAUC,GAMd,MAJAA,GAAKh3B,EAAI1F,KAAK0F,EACdg3B,EAAK/2B,EAAI3F,KAAK2F,EACd+2B,EAAKR,SAAWl8B,KAAKm8B,UAEdO,GAYXC,SAAU,SAAUD,EAAME,GAEtB,GAAID,GAAW7I,EAAOnzB,KAAKg8B,SAAS38B,KAAK0F,EAAG1F,KAAK2F,EAAG+2B,EAAKh3B,EAAGg3B,EAAK/2B,EACjE,OAAOi3B,GAAQj8B,KAAKi8B,MAAMD,GAAYA,GAU1CrB,MAAO,SAAUuB,GAWb,MATepzB,UAAXozB,GAAmC,OAAXA,EAExBA,EAAS,GAAI/I,GAAOmI,OAAOj8B,KAAK0F,EAAG1F,KAAK2F,EAAG3F,KAAKk8B,UAIhDW,EAAON,MAAMv8B,KAAK0F,EAAG1F,KAAK2F,EAAG3F,KAAKk8B,UAG/BW,GAWXC,SAAU,SAAUp3B,EAAGC,GAEnB,MAAOmuB,GAAOmI,OAAOa,SAAS98B,KAAM0F,EAAGC,IAY3Co3B,mBAAoB,SAAUC,EAAOC,EAAWX,GAE5C,MAAOxI,GAAOmI,OAAOc,mBAAmB/8B,KAAMg9B,EAAOC,EAAWX,IAWpEzhB,OAAQ,SAAUlN,EAAIE,GAKlB,MAHA7N,MAAK0F,GAAKiI,EACV3N,KAAK2F,GAAKkI,EAEH7N,MAUXk9B,YAAa,SAAUC,GACnB,MAAOn9B,MAAK6a,OAAOsiB,EAAMz3B,EAAGy3B,EAAMx3B,IAQtCuK,SAAU,WACN,MAAO,sBAAwBlQ,KAAK0F,EAAI,MAAQ1F,KAAK2F,EAAI,aAAe3F,KAAKk8B,SAAW,WAAal8B,KAAK2e,OAAS,QAK3HmV,EAAOmI,OAAO54B,UAAUC,YAAcwwB,EAAOmI,OAQ7Cr4B,OAAOC,eAAeiwB,EAAOmI,OAAO54B,UAAW,YAE3CS,IAAK,WACD,MAAO9D,MAAKm8B,WAGhBn4B,IAAK,SAAUC,GAEPA,EAAQ,IAERjE,KAAKm8B,UAAYl4B,EACjBjE,KAAKo8B,QAAkB,GAARn4B,MAW3BL,OAAOC,eAAeiwB,EAAOmI,OAAO54B,UAAW,UAE3CS,IAAK,WACD,MAAO9D,MAAKo8B,SAGhBp4B,IAAK,SAAUC,GAEPA,EAAQ,IAERjE,KAAKo8B,QAAUn4B,EACfjE,KAAKm8B,UAAoB,EAARl4B,MAY7BL,OAAOC,eAAeiwB,EAAOmI,OAAO54B,UAAW,QAE3CS,IAAK,WACD,MAAO9D,MAAK0F,EAAI1F,KAAKo8B,SAGzBp4B,IAAK,SAAUC,GAEPA,EAAQjE,KAAK0F,GAEb1F,KAAKo8B,QAAU,EACfp8B,KAAKm8B,UAAY,GAIjBn8B,KAAK2e,OAAS3e,KAAK0F,EAAIzB,KAYnCL,OAAOC,eAAeiwB,EAAOmI,OAAO54B,UAAW,SAE3CS,IAAK,WACD,MAAO9D,MAAK0F,EAAI1F,KAAKo8B,SAGzBp4B,IAAK,SAAUC,GAEPA,EAAQjE,KAAK0F,GAEb1F,KAAKo8B,QAAU,EACfp8B,KAAKm8B,UAAY,GAIjBn8B,KAAK2e,OAAS1a,EAAQjE,KAAK0F,KAYvC9B,OAAOC,eAAeiwB,EAAOmI,OAAO54B,UAAW,OAE3CS,IAAK,WACD,MAAO9D,MAAK2F,EAAI3F,KAAKo8B,SAGzBp4B,IAAK,SAAUC,GAEPA,EAAQjE,KAAK2F,GAEb3F,KAAKo8B,QAAU,EACfp8B,KAAKm8B,UAAY,GAIjBn8B,KAAK2e,OAAS3e,KAAK2F,EAAI1B,KAYnCL,OAAOC,eAAeiwB,EAAOmI,OAAO54B,UAAW,UAE3CS,IAAK,WACD,MAAO9D,MAAK2F,EAAI3F,KAAKo8B;EAGzBp4B,IAAK,SAAUC,GAEPA,EAAQjE,KAAK2F,GAEb3F,KAAKo8B,QAAU,EACfp8B,KAAKm8B,UAAY,GAIjBn8B,KAAK2e,OAAS1a,EAAQjE,KAAK2F,KAavC/B,OAAOC,eAAeiwB,EAAOmI,OAAO54B,UAAW,QAE3CS,IAAK,WAED,MAAI9D,MAAKo8B,QAAU,EAERz7B,KAAKC,GAAKZ,KAAKo8B,QAAUp8B,KAAKo8B,QAI9B,KAanBx4B,OAAOC,eAAeiwB,EAAOmI,OAAO54B,UAAW,SAE3CS,IAAK,WACD,MAA2B,KAAnB9D,KAAKm8B,WAGjBn4B,IAAK,SAAUC,GAEPA,KAAU,GAEVjE,KAAKu8B,MAAM,EAAG,EAAG,MAe7BzI,EAAOmI,OAAOa,SAAW,SAAU/3B,EAAGW,EAAGC,GAGrC,GAAIZ,EAAE4Z,OAAS,GAAKjZ,GAAKX,EAAE81B,MAAQn1B,GAAKX,EAAE61B,OAASj1B,GAAKZ,EAAEq4B,KAAOz3B,GAAKZ,EAAEs4B,OACxE,CACI,GAAI1vB,IAAM5I,EAAEW,EAAIA,IAAMX,EAAEW,EAAIA,GACxBmI,GAAM9I,EAAEY,EAAIA,IAAMZ,EAAEY,EAAIA,EAE5B,OAAQgI,GAAKE,GAAQ9I,EAAE4Z,OAAS5Z,EAAE4Z,OAIlC,OAAO,GAYfmV,EAAOmI,OAAOqB,OAAS,SAAUv4B,EAAGC,GAChC,MAAQD,GAAEW,GAAKV,EAAEU,GAAKX,EAAEY,GAAKX,EAAEW,GAAKZ,EAAEm3B,UAAYl3B,EAAEk3B,UAWxDpI,EAAOmI,OAAOsB,WAAa,SAAUx4B,EAAGC,GACpC,MAAQ8uB,GAAOnzB,KAAKg8B,SAAS53B,EAAEW,EAAGX,EAAEY,EAAGX,EAAEU,EAAGV,EAAEW,IAAOZ,EAAE4Z,OAAS3Z,EAAE2Z,QAYtEmV,EAAOmI,OAAOc,mBAAqB,SAAUh4B,EAAGi4B,EAAOC,EAAWX,GAa9D,MAXkB7yB,UAAdwzB,IAA2BA,GAAY,GAC/BxzB,SAAR6yB,IAAqBA,EAAM,GAAIxI,GAAOpyB,OAEtCu7B,KAAc,IAEdD,EAAQlJ,EAAOnzB,KAAK68B,SAASR,IAGjCV,EAAI52B,EAAIX,EAAEW,EAAIX,EAAE4Z,OAAShe,KAAK8E,IAAIu3B,GAClCV,EAAI32B,EAAIZ,EAAEY,EAAIZ,EAAE4Z,OAAShe,KAAK6E,IAAIw3B,GAE3BV,GAWXxI,EAAOmI,OAAOwB,oBAAsB,SAAUx4B,EAAGoZ,GAE7C,GAAI/P,GAAK3N,KAAKshB,IAAIhd,EAAES,EAAI2Y,EAAE3Y,EAAI2Y,EAAEqf,WAC5BC,EAAQtf,EAAEqf,UAAYz4B,EAAE0Z,MAE5B,IAAIrQ,EAAKqvB,EAEL,OAAO,CAGX,IAAIpvB,GAAK5N,KAAKshB,IAAIhd,EAAEU,EAAI0Y,EAAE1Y,EAAI0Y,EAAEuf,YAC5BC,EAAQxf,EAAEuf,WAAa34B,EAAE0Z,MAE7B,IAAIpQ,EAAKsvB,EAEL,OAAO,CAGX,IAAIvvB,GAAM+P,EAAEqf,WAAanvB,GAAM8P,EAAEuf,WAE7B,OAAO,CAGX,IAAIE,GAAcxvB,EAAK+P,EAAEqf,UACrBK,EAAcxvB,EAAK8P,EAAEuf,WACrBI,EAAgBF,EAAcA,EAC9BG,EAAgBF,EAAcA,EAC9BG,EAAkBj5B,EAAE0Z,OAAS1Z,EAAE0Z,MAEnC,OAAwCuf,IAAjCF,EAAgBC,GAK3Bn+B,KAAKm8B,OAASnI,EAAOmI,OAmBrBnI,EAAOqK,QAAU,SAAUz4B,EAAGC,EAAGkB,EAAOC,GAEpCpB,EAAIA,GAAK,EACTC,EAAIA,GAAK,EACTkB,EAAQA,GAAS,EACjBC,EAASA,GAAU,EAKnB9G,KAAK0F,EAAIA,EAKT1F,KAAK2F,EAAIA,EAKT3F,KAAK6G,MAAQA,EAKb7G,KAAK8G,OAASA,EAMd9G,KAAK+W,KAAO+c,EAAOmD,SAIvBnD,EAAOqK,QAAQ96B,WAWXk5B,MAAO,SAAU72B,EAAGC,EAAGkB,EAAOC,GAO1B,MALA9G,MAAK0F,EAAIA,EACT1F,KAAK2F,EAAIA,EACT3F,KAAK6G,MAAQA,EACb7G,KAAK8G,OAASA,EAEP9G,MAUXgG,UAAW,WAEP,MAAO,IAAI8tB,GAAO9wB,UAAUhD,KAAK0F,EAAI1F,KAAK6G,MAAO7G,KAAK2F,EAAI3F,KAAK8G,OAAQ9G,KAAK6G,MAAO7G,KAAK8G,SAW5F01B,SAAU,SAAUhuB,GAEhB,MAAOxO,MAAKu8B,MAAM/tB,EAAO9I,EAAG8I,EAAO7I,EAAG6I,EAAO3H,MAAO2H,EAAO1H,SAU/D21B,OAAQ,SAASC,GAOb,MALAA,GAAKh3B,EAAI1F,KAAK0F,EACdg3B,EAAK/2B,EAAI3F,KAAK2F,EACd+2B,EAAK71B,MAAQ7G,KAAK6G,MAClB61B,EAAK51B,OAAS9G,KAAK8G,OAEZ41B,GAUXpB,MAAO,SAASuB,GAWZ,MATepzB,UAAXozB,GAAmC,OAAXA,EAExBA,EAAS,GAAI/I,GAAOqK,QAAQn+B,KAAK0F,EAAG1F,KAAK2F,EAAG3F,KAAK6G,MAAO7G,KAAK8G,QAI7D+1B,EAAON,MAAMv8B,KAAK0F,EAAG1F,KAAK2F,EAAG3F,KAAK6G,MAAO7G,KAAK8G,QAG3C+1B,GAYXC,SAAU,SAAUp3B,EAAGC,GAEnB,MAAOmuB,GAAOqK,QAAQrB,SAAS98B,KAAM0F,EAAGC,IAY5Cm0B,OAAQ,SAAUwC,GAEF7yB,SAAR6yB,IAAqBA,EAAM,GAAIxI,GAAOpyB,MAE1C,IAAImD,GAAIlE,KAAKm5B,SAAWn5B,KAAKC,GAAK,EAC9Byd,EAAI1d,KAAKm5B,QAQb,OANAwC,GAAI52B,EAAI/E,KAAKiF,KAAKyY,GAAK1d,KAAK8E,IAAIZ,GAChCy3B,EAAI32B,EAAIhF,KAAKiF,KAAKyY,GAAK1d,KAAK6E,IAAIX,GAEhCy3B,EAAI52B,EAAI1F,KAAK0F,EAAK42B,EAAI52B,EAAI1F,KAAK6G,MAAQ,EACvCy1B,EAAI32B,EAAI3F,KAAK2F,EAAK22B,EAAI32B,EAAI3F,KAAK8G,OAAS,EAEjCw1B,GASXpsB,SAAU,WACN,MAAO,uBAAyBlQ,KAAK0F,EAAI,MAAQ1F,KAAK2F,EAAI,UAAY3F,KAAK6G,MAAQ,WAAa7G,KAAK8G,OAAS,QAKtHgtB,EAAOqK,QAAQ96B,UAAUC,YAAcwwB,EAAOqK,QAO9Cv6B,OAAOC,eAAeiwB,EAAOqK,QAAQ96B,UAAW,QAE5CS,IAAK,WACD,MAAO9D,MAAK0F,GAGhB1B,IAAK,SAAUC,GAEXjE,KAAK0F,EAAIzB,KAWjBL,OAAOC,eAAeiwB,EAAOqK,QAAQ96B,UAAW,SAE5CS,IAAK,WACD,MAAO9D,MAAK0F,EAAI1F,KAAK6G,OAGzB7C,IAAK,SAAUC,GAIPjE,KAAK6G,MAFL5C,EAAQjE,KAAK0F,EAEA,EAIAzB,EAAQjE,KAAK0F,KAWtC9B,OAAOC,eAAeiwB,EAAOqK,QAAQ96B,UAAW,OAE5CS,IAAK,WACD,MAAO9D,MAAK2F,GAGhB3B,IAAK,SAAUC,GACXjE,KAAK2F,EAAI1B,KAUjBL,OAAOC,eAAeiwB,EAAOqK,QAAQ96B,UAAW,UAE5CS,IAAK,WACD,MAAO9D,MAAK2F,EAAI3F,KAAK8G,QAGzB9C,IAAK,SAAUC,GAIPjE,KAAK8G,OAFL7C,EAAQjE,KAAK2F,EAEC,EAIA1B,EAAQjE,KAAK2F,KAYvC/B,OAAOC,eAAeiwB,EAAOqK,QAAQ96B,UAAW,SAE5CS,IAAK,WACD,MAAuB,KAAf9D,KAAK6G,OAA+B,IAAhB7G,KAAK8G,QAGrC9C,IAAK,SAAUC,GAEPA,KAAU,GAEVjE,KAAKu8B,MAAM,EAAG,EAAG,EAAG,MAgBhCzI,EAAOqK,QAAQrB,SAAW,SAAU/3B,EAAGW,EAAGC,GAEtC,GAAIZ,EAAE8B,OAAS,GAAK9B,EAAE+B,QAAU,EAC5B,OAAO,CAIX,IAAIs3B,IAAU14B,EAAIX,EAAEW,GAAKX,EAAE8B,MAAS,GAChCw3B,GAAU14B,EAAIZ,EAAEY,GAAKZ,EAAE+B,OAAU,EAKrC,OAHAs3B,IAASA,EACTC,GAASA,EAEe,IAAhBD,EAAQC,GAKpBv+B,KAAKq+B,QAAUrK,EAAOqK,QAkBtBrK,EAAOwK,KAAO,SAAU5xB,EAAIC,EAAIC,EAAIC,GAEhCH,EAAKA,GAAM,EACXC,EAAKA,GAAM,EACXC,EAAKA,GAAM,EACXC,EAAKA,GAAM,EAKX7M,KAAKoL,MAAQ,GAAI0oB,GAAOpyB,MAAMgL,EAAIC,GAKlC3M,KAAK8J,IAAM,GAAIgqB,GAAOpyB,MAAMkL,EAAIC,GAMhC7M,KAAK+W,KAAO+c,EAAO0D,MAIvB1D,EAAOwK,KAAKj7B,WAYRk5B,MAAO,SAAU7vB,EAAIC,EAAIC,EAAIC,GAKzB,MAHA7M,MAAKoL,MAAMmxB,MAAM7vB,EAAIC,GACrB3M,KAAK8J,IAAIyyB,MAAM3vB,EAAIC,GAEZ7M,MAcXu+B,WAAY,SAAUC,EAAaC,EAAWC,GAI1C,MAFkBj1B,UAAdi1B,IAA2BA,GAAY,GAEvCA,EAEO1+B,KAAKu8B,MAAMiC,EAAYG,OAAOj5B,EAAG84B,EAAYG,OAAOh5B,EAAG84B,EAAUE,OAAOj5B,EAAG+4B,EAAUE,OAAOh5B,GAGhG3F,KAAKu8B,MAAMiC,EAAY94B,EAAG84B,EAAY74B,EAAG84B,EAAU/4B,EAAG+4B,EAAU94B,IAc3Ei5B,UAAW,SAAUl5B,EAAGC,EAAGq3B,EAAOt5B,GAK9B,MAHA1D,MAAKoL,MAAMmxB,MAAM72B,EAAGC,GACpB3F,KAAK8J,IAAIyyB,MAAM72B,EAAK/E,KAAK8E,IAAIu3B,GAASt5B,EAASiC,EAAKhF,KAAK6E,IAAIw3B,GAASt5B,GAE/D1D,MAgBX6+B,OAAQ,SAAU7B,EAAOC,GAErB,GAAIv3B,GAAI1F,KAAKoL,MAAM1F,EACfC,EAAI3F,KAAKoL,MAAMzF,CAKnB,OAHA3F,MAAKoL,MAAMyzB,OAAO7+B,KAAK8J,IAAIpE,EAAG1F,KAAK8J,IAAInE,EAAGq3B,EAAOC,EAAWj9B,KAAK0D,QACjE1D,KAAK8J,IAAI+0B,OAAOn5B,EAAGC,EAAGq3B,EAAOC,EAAWj9B,KAAK0D,QAEtC1D,MAeXu9B,WAAY,SAAUuB,EAAMC,EAAWztB,GAEnC,MAAOwiB,GAAOwK,KAAKU,iBAAiBh/B,KAAKoL,MAAOpL,KAAK8J,IAAKg1B,EAAK1zB,MAAO0zB,EAAKh1B,IAAKi1B,EAAWztB,IAY/F2tB,QAAS,SAAUH,GAEf,MAAOhL,GAAOwK,KAAKW,QAAQj/B,KAAM8+B,IAYrCI,YAAa,SAAUx5B,EAAGC,GAEtB,OAASD,EAAI1F,KAAKoL,MAAM1F,IAAM1F,KAAK8J,IAAInE,EAAI3F,KAAKoL,MAAMzF,MAAQ3F,KAAK8J,IAAIpE,EAAI1F,KAAKoL,MAAM1F,IAAMC,EAAI3F,KAAKoL,MAAMzF,IAY/Gw5B,eAAgB,SAAUz5B,EAAGC,GAEzB,GAAIy5B,GAAOz+B,KAAK0wB,IAAIrxB,KAAKoL,MAAM1F,EAAG1F,KAAK8J,IAAIpE,GACvC25B,EAAO1+B,KAAK2+B,IAAIt/B,KAAKoL,MAAM1F,EAAG1F,KAAK8J,IAAIpE,GACvC65B,EAAO5+B,KAAK0wB,IAAIrxB,KAAKoL,MAAMzF,EAAG3F,KAAK8J,IAAInE,GACvC65B,EAAO7+B,KAAK2+B,IAAIt/B,KAAKoL,MAAMzF,EAAG3F,KAAK8J,IAAInE,EAE3C,OAAQ3F,MAAKk/B,YAAYx5B,EAAGC,IAAOD,GAAK05B,GAAaC,GAAL35B,GAAeC,GAAK45B,GAAaC,GAAL75B,GAYhFm0B,OAAQ,SAAUwC,GAEF7yB,SAAR6yB,IAAqBA,EAAM,GAAIxI,GAAOpyB,MAE1C,IAAIo3B,GAAIn4B,KAAKm5B,QAKb,OAHAwC,GAAI52B,EAAI1F,KAAKoL,MAAM1F,EAAIozB,GAAK94B,KAAK8J,IAAIpE,EAAI1F,KAAKoL,MAAM1F,GACpD42B,EAAI32B,EAAI3F,KAAKoL,MAAMzF,EAAImzB,GAAK94B,KAAK8J,IAAInE,EAAI3F,KAAKoL,MAAMzF,GAE7C22B,GAaXmD,kBAAmB,SAAUC,EAAUC,GAElBl2B,SAAbi2B,IAA0BA,EAAW,GACzBj2B,SAAZk2B,IAAyBA,KAE7B,IAAIjzB,GAAK/L,KAAKi8B,MAAM58B,KAAKoL,MAAM1F,GAC3BiH,EAAKhM,KAAKi8B,MAAM58B,KAAKoL,MAAMzF,GAC3BiH,EAAKjM,KAAKi8B,MAAM58B,KAAK8J,IAAIpE,GACzBmH,EAAKlM,KAAKi8B,MAAM58B,KAAK8J,IAAInE,GAEzBgI,EAAKhN,KAAKshB,IAAIrV,EAAKF,GACnBmB,EAAKlN,KAAKshB,IAAIpV,EAAKF,GACnBizB,EAAWhzB,EAALF,EAAW,EAAI,GACrBmzB,EAAWhzB,EAALF,EAAW,EAAI,GACrBmzB,EAAMnyB,EAAKE,CAEf8xB,GAAQp7B,MAAMmI,EAAIC,GAIlB,KAFA,GAAIlJ,GAAI,EAEEiJ,GAAME,GAAQD,GAAME,GAC9B,CACI,GAAIkzB,GAAKD,GAAO,CAEZC,IAAMlyB,IAENiyB,GAAOjyB,EACPnB,GAAMkzB,GAGDjyB,EAALoyB,IAEAD,GAAOnyB,EACPhB,GAAMkzB,GAGNp8B,EAAIi8B,IAAa,GAEjBC,EAAQp7B,MAAMmI,EAAIC,IAGtBlJ,IAIJ,MAAOk8B,IAUXrE,MAAO,SAAUuB,GAWb,MATepzB,UAAXozB,GAAmC,OAAXA,EAExBA,EAAS,GAAI/I,GAAOwK,KAAKt+B,KAAKoL,MAAM1F,EAAG1F,KAAKoL,MAAMzF,EAAG3F,KAAK8J,IAAIpE,EAAG1F,KAAK8J,IAAInE,GAI1Ek3B,EAAON,MAAMv8B,KAAKoL,MAAM1F,EAAG1F,KAAKoL,MAAMzF,EAAG3F,KAAK8J,IAAIpE,EAAG1F,KAAK8J,IAAInE,GAG3Dk3B,IAWfj5B,OAAOC,eAAeiwB,EAAOwK,KAAKj7B,UAAW,UAEzCS,IAAK,WACD,MAAOnD,MAAKiF,MAAM5F,KAAK8J,IAAIpE,EAAI1F,KAAKoL,MAAM1F,IAAM1F,KAAK8J,IAAIpE,EAAI1F,KAAKoL,MAAM1F,IAAM1F,KAAK8J,IAAInE,EAAI3F,KAAKoL,MAAMzF,IAAM3F,KAAK8J,IAAInE,EAAI3F,KAAKoL,MAAMzF,OAU5I/B,OAAOC,eAAeiwB,EAAOwK,KAAKj7B,UAAW,SAEzCS,IAAK,WACD,MAAOnD,MAAKkF,MAAM7F,KAAK8J,IAAInE,EAAI3F,KAAKoL,MAAMzF,EAAG3F,KAAK8J,IAAIpE,EAAI1F,KAAKoL,MAAM1F,MAU7E9B,OAAOC,eAAeiwB,EAAOwK,KAAKj7B,UAAW,SAEzCS,IAAK,WACD,OAAQ9D,KAAK8J,IAAInE,EAAI3F,KAAKoL,MAAMzF,IAAM3F,KAAK8J,IAAIpE,EAAI1F,KAAKoL,MAAM1F,MAUtE9B,OAAOC,eAAeiwB,EAAOwK,KAAKj7B,UAAW,aAEzCS,IAAK,WACD,SAAU9D,KAAK8J,IAAIpE,EAAI1F,KAAKoL,MAAM1F,IAAM1F,KAAK8J,IAAInE,EAAI3F,KAAKoL,MAAMzF,OAUxE/B,OAAOC,eAAeiwB,EAAOwK,KAAKj7B,UAAW,KAEzCS,IAAK,WACD,MAAOnD,MAAK0wB,IAAIrxB,KAAKoL,MAAM1F,EAAG1F,KAAK8J,IAAIpE,MAU/C9B,OAAOC,eAAeiwB,EAAOwK,KAAKj7B,UAAW,KAEzCS,IAAK,WACD,MAAOnD,MAAK0wB,IAAIrxB,KAAKoL,MAAMzF,EAAG3F,KAAK8J,IAAInE,MAU/C/B,OAAOC,eAAeiwB,EAAOwK,KAAKj7B,UAAW,QAEzCS,IAAK,WACD,MAAOnD,MAAK0wB,IAAIrxB,KAAKoL,MAAM1F,EAAG1F,KAAK8J,IAAIpE,MAU/C9B,OAAOC,eAAeiwB,EAAOwK,KAAKj7B,UAAW,SAEzCS,IAAK,WACD,MAAOnD,MAAK2+B,IAAIt/B,KAAKoL,MAAM1F,EAAG1F,KAAK8J,IAAIpE,MAU/C9B,OAAOC,eAAeiwB,EAAOwK,KAAKj7B,UAAW,OAEzCS,IAAK,WACD,MAAOnD,MAAK0wB,IAAIrxB,KAAKoL,MAAMzF,EAAG3F,KAAK8J,IAAInE,MAU/C/B,OAAOC,eAAeiwB,EAAOwK,KAAKj7B,UAAW,UAEzCS,IAAK,WACD,MAAOnD,MAAK2+B,IAAIt/B,KAAKoL,MAAMzF,EAAG3F,KAAK8J,IAAInE,MAU/C/B,OAAOC,eAAeiwB,EAAOwK,KAAKj7B,UAAW,SAEzCS,IAAK,WACD,MAAOnD,MAAKshB,IAAIjiB,KAAKoL,MAAM1F,EAAI1F,KAAK8J,IAAIpE,MAUhD9B,OAAOC,eAAeiwB,EAAOwK,KAAKj7B,UAAW,UAEzCS,IAAK,WACD,MAAOnD,MAAKshB,IAAIjiB,KAAKoL,MAAMzF,EAAI3F,KAAK8J,IAAInE,MAUhD/B,OAAOC,eAAeiwB,EAAOwK,KAAKj7B,UAAW,WAEzCS,IAAK,WACD,MAAOnD,MAAK8E,IAAIzF,KAAKg9B,MAAQ,uBAUrCp5B,OAAOC,eAAeiwB,EAAOwK,KAAKj7B,UAAW,WAEzCS,IAAK,WACD,MAAOnD,MAAK6E,IAAIxF,KAAKg9B,MAAQ,uBAUrCp5B,OAAOC,eAAeiwB,EAAOwK,KAAKj7B,UAAW,eAEzCS,IAAK,WACD,MAAOgwB,GAAOnzB,KAAKq/B,KAAKhgC,KAAKg9B,MAAQ,oBAAqBr8B,KAAKC,GAAID,KAAKC,OAoBhFkzB,EAAOwK,KAAKU,iBAAmB,SAAUj6B,EAAGC,EAAGi2B,EAAGb,EAAG2E,EAAWztB,GAE1C7H,SAAds1B,IAA2BA,GAAY,GAC5Bt1B,SAAX6H,IAAwBA,EAAS,GAAIwiB,GAAOpyB,MAEhD,IAAI0f,GAAKpc,EAAEW,EAAIZ,EAAEY,EACb4b,EAAK6Y,EAAEz0B,EAAIs1B,EAAEt1B,EACb0b,EAAKtc,EAAEW,EAAIV,EAAEU,EACb8b,EAAKyZ,EAAEv1B,EAAI00B,EAAE10B,EACb4b,EAAMtc,EAAEU,EAAIX,EAAEY,EAAMZ,EAAEW,EAAIV,EAAEW,EAC5B8b,EAAM2Y,EAAE10B,EAAIu1B,EAAEt1B,EAAMs1B,EAAEv1B,EAAI00B,EAAEz0B,EAC5B+b,EAASN,EAAKI,EAAOD,EAAKF,CAE9B,IAAc,IAAVK,EAEA,MAAO,KAMX,IAHApQ,EAAO5L,GAAM2b,EAAKI,EAAOD,EAAKF,GAAOI,EACrCpQ,EAAO3L,GAAM4b,EAAKD,EAAOF,EAAKK,GAAOC,EAEjCqd,EACJ,CACI,GAAIkB,IAAO7F,EAAEz0B,EAAIs1B,EAAEt1B,IAAMX,EAAEU,EAAIX,EAAEW,IAAM00B,EAAE10B,EAAIu1B,EAAEv1B,IAAMV,EAAEW,EAAIZ,EAAEY,GACzDu6B,IAAQ9F,EAAE10B,EAAIu1B,EAAEv1B,IAAMX,EAAEY,EAAIs1B,EAAEt1B,IAAOy0B,EAAEz0B,EAAIs1B,EAAEt1B,IAAMZ,EAAEW,EAAIu1B,EAAEv1B,IAAMu6B,EACjEE,IAAQn7B,EAAEU,EAAIX,EAAEW,IAAMX,EAAEY,EAAIs1B,EAAEt1B,IAAQX,EAAEW,EAAIZ,EAAEY,IAAMZ,EAAEW,EAAIu1B,EAAEv1B,IAAOu6B,CAEvE,OAAIC,IAAM,GAAW,GAANA,GAAWC,GAAM,GAAW,GAANA,EAE1B7uB,EAIA,KAIf,MAAOA,IAkBXwiB,EAAOwK,KAAKf,WAAa,SAAUx4B,EAAGC,EAAG+5B,EAAWztB,GAEhD,MAAOwiB,GAAOwK,KAAKU,iBAAiBj6B,EAAEqG,MAAOrG,EAAE+E,IAAK9E,EAAEoG,MAAOpG,EAAE8E,IAAKi1B,EAAWztB,IAanFwiB,EAAOwK,KAAKW,QAAU,SAAUl6B,EAAGC,GAE/B,MAAO,GAAIA,EAAEo7B,YAAc,kBAAoBr7B,EAAEi4B,OA6BrDlJ,EAAOtxB,OAAS,SAAUuC,EAAGC,EAAGC,EAAGC,EAAGC,EAAIC,GAEtCL,EAAIA,GAAK,EACTC,EAAIA,GAAK,EACTC,EAAIA,GAAK,EACTC,EAAIA,GAAK,EACTC,EAAKA,GAAM,EACXC,EAAKA,GAAM,EAMXpF,KAAK+E,EAAIA,EAMT/E,KAAKgF,EAAIA,EAMThF,KAAKiF,EAAIA,EAMTjF,KAAKkF,EAAIA,EAMTlF,KAAKmF,GAAKA,EAMVnF,KAAKoF,GAAKA,EAMVpF,KAAK+W,KAAO+c,EAAO2D,QAIvB3D,EAAOtxB,OAAOa,WAkBVg9B,UAAW,SAAUC,GAEjB,MAAOtgC,MAAKu8B,MAAM+D,EAAM,GAAIA,EAAM,GAAIA,EAAM,GAAIA,EAAM,GAAIA,EAAM,GAAIA,EAAM,KAgB9E/D,MAAO,SAAUx3B,EAAGC,EAAGC,EAAGC,EAAGC,EAAIC,GAS7B,MAPApF,MAAK+E,EAAIA,EACT/E,KAAKgF,EAAIA,EACThF,KAAKiF,EAAIA,EACTjF,KAAKkF,EAAIA,EACTlF,KAAKmF,GAAKA,EACVnF,KAAKoF,GAAKA,EAEHpF,MAaXs7B,MAAO,SAAUuB,GAgBb,MAdepzB,UAAXozB,GAAmC,OAAXA,EAExBA,EAAS,GAAI/I,GAAOtxB,OAAOxC,KAAK+E,EAAG/E,KAAKgF,EAAGhF,KAAKiF,EAAGjF,KAAKkF,EAAGlF,KAAKmF,GAAInF,KAAKoF,KAIzEy3B,EAAO93B,EAAI/E,KAAK+E,EAChB83B,EAAO73B,EAAIhF,KAAKgF,EAChB63B,EAAO53B,EAAIjF,KAAKiF,EAChB43B,EAAO33B,EAAIlF,KAAKkF,EAChB23B,EAAO13B,GAAKnF,KAAKmF,GACjB03B,EAAOz3B,GAAKpF,KAAKoF,IAGdy3B,GAWXJ,OAAQ,SAAUx2B,GAId,MAFAA,GAAOu2B,SAASx8B,MAETiG,GAWXu2B,SAAU,SAAUv2B,GAShB,MAPAjG,MAAK+E,EAAIkB,EAAOlB,EAChB/E,KAAKgF,EAAIiB,EAAOjB,EAChBhF,KAAKiF,EAAIgB,EAAOhB,EAChBjF,KAAKkF,EAAIe,EAAOf,EAChBlF,KAAKmF,GAAKc,EAAOd,GACjBnF,KAAKoF,GAAKa,EAAOb,GAEVpF,MAYX0b,QAAS,SAAUrC,EAAWinB,GA6B1B,MA3Bc72B,UAAV62B,IAAuBA,EAAQ,GAAIxgC,MAAKO,aAAa,IAErDgZ,GAEAinB,EAAM,GAAKtgC,KAAK+E,EAChBu7B,EAAM,GAAKtgC,KAAKgF,EAChBs7B,EAAM,GAAK,EACXA,EAAM,GAAKtgC,KAAKiF,EAChBq7B,EAAM,GAAKtgC,KAAKkF,EAChBo7B,EAAM,GAAK,EACXA,EAAM,GAAKtgC,KAAKmF,GAChBm7B,EAAM,GAAKtgC,KAAKoF,GAChBk7B,EAAM,GAAK,IAIXA,EAAM,GAAKtgC,KAAK+E,EAChBu7B,EAAM,GAAKtgC,KAAKiF,EAChBq7B,EAAM,GAAKtgC,KAAKmF,GAChBm7B,EAAM,GAAKtgC,KAAKgF,EAChBs7B,EAAM,GAAKtgC,KAAKkF,EAChBo7B,EAAM,GAAKtgC,KAAKoF,GAChBk7B,EAAM,GAAK,EACXA,EAAM,GAAK,EACXA,EAAM,GAAK,GAGRA,GAcXn5B,MAAO,SAAUo5B,EAAKC,GAOlB,MALe/2B,UAAX+2B,IAAwBA,EAAS,GAAI1M,GAAOpyB,OAEhD8+B,EAAO96B,EAAI1F,KAAK+E,EAAIw7B,EAAI76B,EAAI1F,KAAKiF,EAAIs7B,EAAI56B,EAAI3F,KAAKmF,GAClDq7B,EAAO76B,EAAI3F,KAAKgF,EAAIu7B,EAAI76B,EAAI1F,KAAKkF,EAAIq7B,EAAI56B,EAAI3F,KAAKoF,GAE3Co7B,GAcXl5B,aAAc,SAAUi5B,EAAKC,GAEV/2B,SAAX+2B,IAAwBA,EAAS,GAAI1M,GAAOpyB,MAEhD,IAAIkW,GAAK,GAAK5X,KAAK+E,EAAI/E,KAAKkF,EAAIlF,KAAKiF,GAAKjF,KAAKgF,GAC3CU,EAAI66B,EAAI76B,EACRC,EAAI46B,EAAI56B,CAKZ,OAHA66B,GAAO96B,EAAI1F,KAAKkF,EAAI0S,EAAKlS,GAAK1F,KAAKiF,EAAI2S,EAAKjS,GAAK3F,KAAKoF,GAAKpF,KAAKiF,EAAIjF,KAAKmF,GAAKnF,KAAKkF,GAAK0S,EACxF4oB,EAAO76B,EAAI3F,KAAK+E,EAAI6S,EAAKjS,GAAK3F,KAAKgF,EAAI4S,EAAKlS,IAAM1F,KAAKoF,GAAKpF,KAAK+E,EAAI/E,KAAKmF,GAAKnF,KAAKgF,GAAK4S,EAElF4oB,GAaXvM,UAAW,SAAUvuB,EAAGC,GAKpB,MAHA3F,MAAKmF,IAAMO,EACX1F,KAAKoF,IAAMO,EAEJ3F,MAYX2B,MAAO,SAAU+D,EAAGC,GAShB,MAPA3F,MAAK+E,GAAKW,EACV1F,KAAKkF,GAAKS,EACV3F,KAAKiF,GAAKS,EACV1F,KAAKgF,GAAKW,EACV3F,KAAKmF,IAAMO,EACX1F,KAAKoF,IAAMO,EAEJ3F,MAWX6+B,OAAQ,SAAU7B,GAEd,GAAIv3B,GAAM9E,KAAK8E,IAAIu3B,GACfx3B,EAAM7E,KAAK6E,IAAIw3B,GAEf5b,EAAKphB,KAAK+E,EACVuc,EAAKthB,KAAKiF,EACVw7B,EAAMzgC,KAAKmF,EASf,OAPAnF,MAAK+E,EAAIqc,EAAK3b,EAAIzF,KAAKgF,EAAIQ,EAC3BxF,KAAKgF,EAAIoc,EAAK5b,EAAIxF,KAAKgF,EAAIS,EAC3BzF,KAAKiF,EAAIqc,EAAK7b,EAAIzF,KAAKkF,EAAIM,EAC3BxF,KAAKkF,EAAIoc,EAAK9b,EAAIxF,KAAKkF,EAAIO,EAC3BzF,KAAKmF,GAAKs7B,EAAMh7B,EAAMzF,KAAKoF,GAAKI,EAChCxF,KAAKoF,GAAKq7B,EAAMj7B,EAAMxF,KAAKoF,GAAKK,EAEzBzF,MAWXk0B,OAAQ,SAAUjuB,GAEd,GAAImb,GAAKphB,KAAK+E,EACVsc,EAAKrhB,KAAKgF,EACVsc,EAAKthB,KAAKiF,EACVy7B,EAAK1gC,KAAKkF,CAUd,OARAlF,MAAK+E,EAAKkB,EAAOlB,EAAIqc,EAAKnb,EAAOjB,EAAIsc,EACrCthB,KAAKgF,EAAKiB,EAAOlB,EAAIsc,EAAKpb,EAAOjB,EAAI07B,EACrC1gC,KAAKiF,EAAKgB,EAAOhB,EAAImc,EAAKnb,EAAOf,EAAIoc,EACrCthB,KAAKkF,EAAKe,EAAOhB,EAAIoc,EAAKpb,EAAOf,EAAIw7B,EAErC1gC,KAAKmF,GAAKc,EAAOd,GAAKic,EAAKnb,EAAOb,GAAKkc,EAAKthB,KAAKmF,GACjDnF,KAAKoF,GAAKa,EAAOd,GAAKkc,EAAKpb,EAAOb,GAAKs7B,EAAK1gC,KAAKoF,GAE1CpF,MAUXg0B,SAAU,WAEN,MAAOh0B,MAAKu8B,MAAM,EAAG,EAAG,EAAG,EAAG,EAAG,KAMzCzI,EAAO1tB,eAAiB,GAAI0tB,GAAOtxB,OAGnC1C,KAAK0C,OAASsxB,EAAOtxB,OACrB1C,KAAKsG,eAAiB0tB,EAAO1tB,eAmB7B0tB,EAAOpyB,MAAQ,SAAUgE,EAAGC,GAExBD,EAAIA,GAAK,EACTC,EAAIA,GAAK,EAKT3F,KAAK0F,EAAIA,EAKT1F,KAAK2F,EAAIA,EAMT3F,KAAK+W,KAAO+c,EAAO4D,OAIvB5D,EAAOpyB,MAAM2B,WASTm5B,SAAU,SAAUhuB,GAEhB,MAAOxO,MAAKu8B,MAAM/tB,EAAO9I,EAAG8I,EAAO7I,IAUvCg7B,OAAQ,WAEJ,MAAO3gC,MAAKu8B,MAAMv8B,KAAK2F,EAAG3F,KAAK0F,IAcnC62B,MAAO,SAAU72B,EAAGC,GAKhB,MAHA3F,MAAK0F,EAAIA,GAAK,EACd1F,KAAK2F,EAAIA,IAAc,IAANA,EAAW3F,KAAK0F,EAAI,GAE9B1F,MAcXgE,IAAK,SAAU0B,EAAGC,GAKd,MAHA3F,MAAK0F,EAAIA,GAAK,EACd1F,KAAK2F,EAAIA,IAAc,IAANA,EAAW3F,KAAK0F,EAAI,GAE9B1F,MAYX4gC,IAAK,SAAUl7B,EAAGC,GAId,MAFA3F,MAAK0F,GAAKA,EACV1F,KAAK2F,GAAKA,EACH3F,MAYX6gC,SAAU,SAAUn7B,EAAGC,GAInB,MAFA3F,MAAK0F,GAAKA,EACV1F,KAAK2F,GAAKA,EACH3F,MAYX8gC,SAAU,SAAUp7B,EAAGC,GAInB,MAFA3F,MAAK0F,GAAKA,EACV1F,KAAK2F,GAAKA,EACH3F,MAYX+gC,OAAQ,SAAUr7B,EAAGC,GAIjB,MAFA3F,MAAK0F,GAAKA,EACV1F,KAAK2F,GAAKA,EACH3F,MAYXghC,OAAQ,SAAU3P,EAAKiO,GAGnB,MADAt/B,MAAK0F,EAAIouB,EAAOnzB,KAAKsgC,MAAMjhC,KAAK0F,EAAG2rB,EAAKiO,GACjCt/B,MAYXkhC,OAAQ,SAAU7P,EAAKiO,GAGnB,MADAt/B,MAAK2F,EAAImuB,EAAOnzB,KAAKsgC,MAAMjhC,KAAK2F,EAAG0rB,EAAKiO,GACjCt/B,MAYXihC,MAAO,SAAU5P,EAAKiO,GAIlB,MAFAt/B,MAAK0F,EAAIouB,EAAOnzB,KAAKsgC,MAAMjhC,KAAK0F,EAAG2rB,EAAKiO,GACxCt/B,KAAK2F,EAAImuB,EAAOnzB,KAAKsgC,MAAMjhC,KAAK2F,EAAG0rB,EAAKiO,GACjCt/B,MAWXs7B,MAAO,SAAUuB,GAWb,MATepzB,UAAXozB,GAAmC,OAAXA,EAExBA,EAAS,GAAI/I,GAAOpyB,MAAM1B,KAAK0F,EAAG1F,KAAK2F,GAIvCk3B,EAAON,MAAMv8B,KAAK0F,EAAG1F,KAAK2F,GAGvBk3B,GAWXJ,OAAQ,SAAUC,GAKd,MAHAA,GAAKh3B,EAAI1F,KAAK0F,EACdg3B,EAAK/2B,EAAI3F,KAAK2F,EAEP+2B,GAYXC,SAAU,SAAUD,EAAME,GAEtB,MAAO9I,GAAOpyB,MAAMi7B,SAAS38B,KAAM08B,EAAME,IAW7CU,OAAQ,SAAUv4B,GAEd,MAAQA,GAAEW,IAAM1F,KAAK0F,GAAKX,EAAEY,IAAM3F,KAAK2F,GAY3Cq3B,MAAO,SAAUj4B,EAAGk4B,GAIhB,MAFkBxzB,UAAdwzB,IAA2BA,GAAY,GAEvCA,EAEOnJ,EAAOnzB,KAAKwgC,SAASxgC,KAAKkF,MAAMd,EAAEY,EAAI3F,KAAK2F,EAAGZ,EAAEW,EAAI1F,KAAK0F,IAIzD/E,KAAKkF,MAAMd,EAAEY,EAAI3F,KAAK2F,EAAGZ,EAAEW,EAAI1F,KAAK0F,IAgBnDm5B,OAAQ,SAAUn5B,EAAGC,EAAGq3B,EAAOC,EAAWN,GAEtC,MAAO7I,GAAOpyB,MAAMm9B,OAAO7+B,KAAM0F,EAAGC,EAAGq3B,EAAOC,EAAWN,IAU7DyE,aAAc,WAEV,MAAOzgC,MAAKiF,KAAM5F,KAAK0F,EAAI1F,KAAK0F,EAAM1F,KAAK2F,EAAI3F,KAAK2F,IAUxD07B,eAAgB,WAEZ,MAAQrhC,MAAK0F,EAAI1F,KAAK0F,EAAM1F,KAAK2F,EAAI3F,KAAK2F,GAW9C27B,aAAc,SAAUC,GAEpB,MAAOvhC,MAAKwhC,YAAYV,SAASS,EAAWA,IAUhDC,UAAW,WAEP,IAAKxhC,KAAKyhC,SACV,CACI,GAAIC,GAAI1hC,KAAKohC,cACbphC,MAAK0F,GAAKg8B,EACV1hC,KAAK2F,GAAK+7B,EAGd,MAAO1hC,OAUXyhC,OAAQ,WAEJ,MAAmB,KAAXzhC,KAAK0F,GAAsB,IAAX1F,KAAK2F,GAWjCg8B,IAAK,SAAU58B,GAEX,MAAS/E,MAAK0F,EAAIX,EAAEW,EAAM1F,KAAK2F,EAAIZ,EAAEY,GAWzCi8B,MAAO,SAAU78B,GAEb,MAAS/E,MAAK0F,EAAIX,EAAEY,EAAM3F,KAAK2F,EAAIZ,EAAEW,GAUzCm8B,KAAM,WAEF,MAAO7hC,MAAKu8B,OAAOv8B,KAAK2F,EAAG3F,KAAK0F,IAUpCo8B,MAAO,WAEH,MAAO9hC,MAAKu8B,MAAMv8B,KAAK2F,GAAI3F,KAAK0F,IAUpCq8B,gBAAiB,WAEb,MAAO/hC,MAAKu8B,MAAe,GAATv8B,KAAK2F,EAAQ3F,KAAK0F,IAUxCsyB,MAAO,WAEH,MAAOh4B,MAAKu8B,MAAM57B,KAAKq3B,MAAMh4B,KAAK0F,GAAI/E,KAAKq3B,MAAMh4B,KAAK2F,KAU1DoyB,KAAM,WAEF,MAAO/3B,MAAKu8B,MAAM57B,KAAKo3B,KAAK/3B,KAAK0F,GAAI/E,KAAKo3B,KAAK/3B,KAAK2F,KAUxDuK,SAAU,WAEN,MAAO,cAAgBlQ,KAAK0F,EAAI,MAAQ1F,KAAK2F,EAAI,QAMzDmuB,EAAOpyB,MAAM2B,UAAUC,YAAcwwB,EAAOpyB,MAW5CoyB,EAAOpyB,MAAMk/B,IAAM,SAAU77B,EAAGC,EAAGs3B,GAO/B,MALY7yB,UAAR6yB,IAAqBA,EAAM,GAAIxI,GAAOpyB,OAE1C46B,EAAI52B,EAAIX,EAAEW,EAAIV,EAAEU,EAChB42B,EAAI32B,EAAIZ,EAAEY,EAAIX,EAAEW,EAET22B,GAaXxI,EAAOpyB,MAAMm/B,SAAW,SAAU97B,EAAGC,EAAGs3B,GAOpC,MALY7yB,UAAR6yB,IAAqBA,EAAM,GAAIxI,GAAOpyB,OAE1C46B,EAAI52B,EAAIX,EAAEW,EAAIV,EAAEU,EAChB42B,EAAI32B,EAAIZ,EAAEY,EAAIX,EAAEW,EAET22B,GAaXxI,EAAOpyB,MAAMo/B,SAAW,SAAU/7B,EAAGC,EAAGs3B,GAOpC,MALY7yB,UAAR6yB,IAAqBA,EAAM,GAAIxI,GAAOpyB,OAE1C46B,EAAI52B,EAAIX,EAAEW,EAAIV,EAAEU,EAChB42B,EAAI32B,EAAIZ,EAAEY,EAAIX,EAAEW,EAET22B,GAaXxI,EAAOpyB,MAAMq/B,OAAS,SAAUh8B,EAAGC,EAAGs3B,GAOlC,MALY7yB,UAAR6yB,IAAqBA,EAAM,GAAIxI,GAAOpyB,OAE1C46B,EAAI52B,EAAIX,EAAEW,EAAIV,EAAEU,EAChB42B,EAAI32B,EAAIZ,EAAEY,EAAIX,EAAEW,EAET22B,GAYXxI,EAAOpyB,MAAM47B,OAAS,SAAUv4B,EAAGC,GAE/B,MAAQD,GAAEW,IAAMV,EAAEU,GAAKX,EAAEY,IAAMX,EAAEW,GAYrCmuB,EAAOpyB,MAAMs7B,MAAQ,SAAUj4B,EAAGC,GAG9B,MAAOrE,MAAKkF,MAAMd,EAAEY,EAAIX,EAAEW,EAAGZ,EAAEW,EAAIV,EAAEU,IAYzCouB,EAAOpyB,MAAMsgC,SAAW,SAAUj9B,EAAGu3B,GAIjC,MAFY7yB,UAAR6yB,IAAqBA,EAAM,GAAIxI,GAAOpyB,OAEnC46B,EAAIC,OAAOx3B,EAAEW,GAAIX,EAAEY,IAc9BmuB,EAAOpyB,MAAMugC,YAAc,SAAUl9B,EAAGC,EAAGk9B,EAAG5F,GAI1C,MAFY7yB,UAAR6yB,IAAqBA,EAAM,GAAIxI,GAAOpyB,OAEnC46B,EAAIC,MAAMx3B,EAAEW,EAAIV,EAAEU,EAAIw8B,EAAGn9B,EAAEY,EAAIX,EAAEW,EAAIu8B,IAchDpO,EAAOpyB,MAAMygC,YAAc,SAAUp9B,EAAGC,EAAGo1B,EAAGkC,GAI1C,MAFY7yB,UAAR6yB,IAAqBA,EAAM,GAAIxI,GAAOpyB,OAEnC46B,EAAIC,MAAMx3B,EAAEW,GAAKV,EAAEU,EAAIX,EAAEW,GAAK00B,EAAGr1B,EAAEY,GAAKX,EAAEW,EAAIZ,EAAEY,GAAKy0B,IAYhEtG,EAAOpyB,MAAMmgC,KAAO,SAAU98B,EAAGu3B,GAI7B,MAFY7yB,UAAR6yB,IAAqBA,EAAM,GAAIxI,GAAOpyB,OAEnC46B,EAAIC,OAAOx3B,EAAEY,EAAGZ,EAAEW,IAY7BouB,EAAOpyB,MAAMogC,MAAQ,SAAU/8B,EAAGu3B,GAI9B,MAFY7yB,UAAR6yB,IAAqBA,EAAM,GAAIxI,GAAOpyB,OAEnC46B,EAAIC,MAAMx3B,EAAEY,GAAIZ,EAAEW,IAa7BouB,EAAOpyB,MAAMi7B,SAAW,SAAU53B,EAAGC,EAAG43B,GAEpC,GAAID,GAAW7I,EAAOnzB,KAAKg8B,SAAS53B,EAAEW,EAAGX,EAAEY,EAAGX,EAAEU,EAAGV,EAAEW,EACrD,OAAOi3B,GAAQj8B,KAAKi8B,MAAMD,GAAYA,GAa1C7I,EAAOpyB,MAAM0gC,QAAU,SAAUr9B,EAAGC,EAAGs3B,GAEvB7yB,SAAR6yB,IAAqBA,EAAM,GAAIxI,GAAOpyB,MAE1C,IAAI2gC,GAAMt9B,EAAE48B,IAAI38B,GAAKA,EAAEq8B,gBAOvB,OALY,KAARgB,GAEA/F,EAAIC,MAAM8F,EAAMr9B,EAAEU,EAAG28B,EAAMr9B,EAAEW,GAG1B22B,GAaXxI,EAAOpyB,MAAM4gC,YAAc,SAAUv9B,EAAGC,EAAGs3B,GAE3B7yB,SAAR6yB,IAAqBA,EAAM,GAAIxI,GAAOpyB,MAE1C,IAAI2gC,GAAMt9B,EAAE48B,IAAI38B,EAOhB,OALY,KAARq9B,GAEA/F,EAAIC,MAAM8F,EAAMr9B,EAAEU,EAAG28B,EAAMr9B,EAAEW,GAG1B22B,GAYXxI,EAAOpyB,MAAMqgC,gBAAkB,SAAUh9B,EAAGu3B,GAIxC,MAFY7yB,UAAR6yB,IAAqBA,EAAM,GAAIxI,GAAOpyB,OAEnC46B,EAAIC,MAAY,GAANx3B,EAAEY,EAAQZ,EAAEW,IAYjCouB,EAAOpyB,MAAM8/B,UAAY,SAAUz8B,EAAGu3B,GAEtB7yB,SAAR6yB,IAAqBA,EAAM,GAAIxI,GAAOpyB,MAE1C,IAAIggC,GAAI38B,EAAEq8B,cAOV,OALU,KAANM,GAEApF,EAAIC,MAAMx3B,EAAEW,EAAIg8B,EAAG38B,EAAEY,EAAI+7B,GAGtBpF,GAqBXxI,EAAOpyB,MAAMm9B,OAAS,SAAU95B,EAAGW,EAAGC,EAAGq3B,EAAOC,EAAWN,GAErClzB,SAAdwzB,IAA2BA,GAAY,GAC1BxzB,SAAbkzB,IAA0BA,EAAW,MAErCM,IAEAD,EAAQlJ,EAAOnzB,KAAK68B,SAASR,IAGhB,OAAbL,IAGAA,EAAWh8B,KAAKiF,MAAOF,EAAIX,EAAEW,IAAMA,EAAIX,EAAEW,IAAQC,EAAIZ,EAAEY,IAAMA,EAAIZ,EAAEY,IAGvE,IAAImzB,GAAIkE,EAAQr8B,KAAKkF,MAAMd,EAAEY,EAAIA,EAAGZ,EAAEW,EAAIA,EAK1C,OAHAX,GAAEW,EAAIA,EAAIi3B,EAAWh8B,KAAK8E,IAAIqzB,GAC9B/zB,EAAEY,EAAIA,EAAIg3B,EAAWh8B,KAAK6E,IAAIszB,GAEvB/zB,GAYX+uB,EAAOpyB,MAAM6gC,SAAW,SAAU1lB,EAAQyf,GAItC,GAFY7yB,SAAR6yB,IAAqBA,EAAM,GAAIxI,GAAOpyB,OAEK,mBAA3CkC,OAAOP,UAAU6M,SAASpK,KAAK+W,GAE/B,KAAM,IAAIhU,OAAM,oDAGpB,IAAI25B,GAAe3lB,EAAOnZ,MAE1B,IAAmB,EAAf8+B,EAEA,KAAM,IAAI35B,OAAM,2DAGpB,IAAqB,IAAjB25B,EAGA,MADAlG,GAAIE,SAAS3f,EAAO,IACbyf,CAGX,KAAK,GAAI74B,GAAI,EAAO++B,EAAJ/+B,EAAkBA,IAE9BqwB,EAAOpyB,MAAMk/B,IAAItE,EAAKzf,EAAOpZ,GAAI64B,EAKrC,OAFAA,GAAIyE,OAAOyB,EAAcA,GAElBlG,GAeXxI,EAAOpyB,MAAM+gC,MAAQ,SAASrJ,EAAKsJ,EAAOC,GAEtCD,EAAQA,GAAS,IACjBC,EAAQA,GAAS,GAEjB,IAAIxF,GAAQ,GAAIrJ,GAAOpyB,KAYvB,OAVI03B,GAAIsJ,KAEJvF,EAAMz3B,EAAI20B,SAASjB,EAAIsJ,GAAQ,KAG/BtJ,EAAIuJ,KAEJxF,EAAMx3B,EAAI00B,SAASjB,EAAIuJ,GAAQ,KAG5BxF,GAKXr9B,KAAK4B,MAAQoyB,EAAOpyB,MAyBpBoyB,EAAO8O,QAAU,WAKb5iC,KAAK6iC,KAAO,EAMZ7iC,KAAK8iC,WAEDvK,UAAU70B,OAAS,GAEnB1D,KAAKu8B,MAAMp1B,MAAMnH,KAAMu4B,WAM3Bv4B,KAAKgd,QAAS,EAKdhd,KAAK+W,KAAO+c,EAAO+C,SAIvB/C,EAAO8O,QAAQv/B,WASX0/B,cAAe,SAAUlG,GAENpzB,SAAXozB,IAAwBA,KAE5B,KAAK,GAAIp5B,GAAI,EAAGA,EAAIzD,KAAK8iC,QAAQp/B,OAAQD,IAEN,gBAApBzD,MAAK8iC,QAAQr/B,IAEpBo5B,EAAOt4B,KAAKvE,KAAK8iC,QAAQr/B,IACzBo5B,EAAOt4B,KAAKvE,KAAK8iC,QAAQr/B,EAAI,IAC7BA,MAIAo5B,EAAOt4B,KAAKvE,KAAK8iC,QAAQr/B,GAAGiC,GAC5Bm3B,EAAOt4B,KAAKvE,KAAK8iC,QAAQr/B,GAAGkC,GAIpC,OAAOk3B,IAUXmG,QAAS,WAIL,MAFAhjC,MAAK8iC,QAAU9iC,KAAK+iC,gBAEb/iC,MAYXs7B,MAAO,SAAUuB,GAEb,GAAIhgB,GAAS7c,KAAK8iC,QAAQ/lB,OAW1B,OATetT,UAAXozB,GAAmC,OAAXA,EAExBA,EAAS,GAAI/I,GAAO8O,QAAQ/lB,GAI5BggB,EAAON,MAAM1f,GAGVggB,GAYXC,SAAU,SAAUp3B,EAAGC,GAOnB,IAAK,GAHDjC,GAAS1D,KAAK8iC,QAAQp/B,OACtBu/B,GAAS,EAEJx/B,EAAI,GAAIa,EAAIZ,EAAS,IAAKD,EAAIC,EAAQY,EAAIb,EACnD,CACI,GAAIy/B,GAAKljC,KAAK8iC,QAAQr/B,GAAGiC,EACrBy9B,EAAKnjC,KAAK8iC,QAAQr/B,GAAGkC,EAErBy9B,EAAKpjC,KAAK8iC,QAAQx+B,GAAGoB,EACrB29B,EAAKrjC,KAAK8iC,QAAQx+B,GAAGqB,GAEbA,GAANw9B,GAAeE,EAAJ19B,GAAkBA,GAAN09B,GAAeF,EAAJx9B,KAAkBy9B,EAAKF,IAAOv9B,EAAIw9B,IAAOE,EAAKF,GAAMD,EAAvCx9B,IAEjDu9B,GAAUA,GAIlB,MAAOA,IAsBX1G,MAAO,SAAU1f,GAKb,GAHA7c,KAAK6iC,KAAO,EACZ7iC,KAAK8iC,WAEDvK,UAAU70B,OAAS,EACvB,CAESjD,MAAMyT,QAAQ2I,KAEfA,EAASpc,MAAM4C,UAAU0Z,MAAMjX,KAAKyyB,WAMxC,KAAK,GAHDtO,GAAKqZ,OAAOC,UAGP9/B,EAAI,EAAG8tB,EAAM1U,EAAOnZ,OAAY6tB,EAAJ9tB,EAASA,IAC9C,CACI,GAAyB,gBAAdoZ,GAAOpZ,GAClB,CACI,GAAIoB,GAAI,GAAI/E,MAAK4B,MAAMmb,EAAOpZ,GAAIoZ,EAAOpZ,EAAI,GAC7CA,SAIA,IAAIoB,GAAI,GAAI/E,MAAK4B,MAAMmb,EAAOpZ,GAAGiC,EAAGmX,EAAOpZ,GAAGkC,EAGlD3F,MAAK8iC,QAAQv+B,KAAKM,GAGdA,EAAEc,EAAIskB,IAENA,EAAKplB,EAAEc,GAIf3F,KAAKwjC,cAAcvZ,GAGvB,MAAOjqB,OAYXwjC,cAAe,SAAUvZ,GAOrB,IAAK,GALDwZ,GACAC,EACAC,EACA98B,EAEKpD,EAAI,EAAG8tB,EAAMvxB,KAAK8iC,QAAQp/B,OAAY6tB,EAAJ9tB,EAASA,IAEhDggC,EAAKzjC,KAAK8iC,QAAQr/B,GAIdigC,EAFAjgC,IAAM8tB,EAAM,EAEPvxB,KAAK8iC,QAAQ,GAIb9iC,KAAK8iC,QAAQr/B,EAAI,GAG1BkgC,GAAcF,EAAG99B,EAAIskB,GAAOyZ,EAAG/9B,EAAIskB,IAAO,EAC1CpjB,EAAQ48B,EAAG/9B,EAAIg+B,EAAGh+B,EAClB1F,KAAK6iC,MAAQc,EAAY98B,CAG7B,OAAO7G,MAAK6iC,OAMpB/O,EAAO8O,QAAQv/B,UAAUC,YAAcwwB,EAAO8O,QAW9Ch/B,OAAOC,eAAeiwB,EAAO8O,QAAQv/B,UAAW,UAE5CS,IAAK,WACD,MAAO9D,MAAK8iC,SAGhB9+B,IAAK,SAAS6Y,GAEI,MAAVA,EAEA7c,KAAKu8B,MAAM1f,GAKX7c,KAAKu8B,WAQjBz8B,KAAK8iC,QAAU9O,EAAO8O,QAmBtB9O,EAAO9wB,UAAY,SAAU0C,EAAGC,EAAGkB,EAAOC,GAEtCpB,EAAIA,GAAK,EACTC,EAAIA,GAAK,EACTkB,EAAQA,GAAS,EACjBC,EAASA,GAAU,EAKnB9G,KAAK0F,EAAIA,EAKT1F,KAAK2F,EAAIA,EAKT3F,KAAK6G,MAAQA,EAKb7G,KAAK8G,OAASA,EAMd9G,KAAK+W,KAAO+c,EAAOyD,WAIvBzD,EAAO9wB,UAAUK,WASbwX,OAAQ,SAAUlN,EAAIE,GAKlB,MAHA7N,MAAK0F,GAAKiI,EACV3N,KAAK2F,GAAKkI,EAEH7N,MAUXk9B,YAAa,SAAUC,GAEnB,MAAOn9B,MAAK6a,OAAOsiB,EAAMz3B,EAAGy3B,EAAMx3B,IAatC42B,MAAO,SAAU72B,EAAGC,EAAGkB,EAAOC,GAO1B,MALA9G,MAAK0F,EAAIA,EACT1F,KAAK2F,EAAIA,EACT3F,KAAK6G,MAAQA,EACb7G,KAAK8G,OAASA,EAEP9G,MAYX2B,MAAO,SAAU+D,EAAGC,GAOhB,MALU8D,UAAN9D,IAAmBA,EAAID,GAE3B1F,KAAK6G,OAASnB,EACd1F,KAAK8G,QAAUnB,EAER3F,MAYX4jC,SAAU,SAAUl+B,EAAGC,GAKnB,MAHA3F,MAAK6jC,QAAUn+B,EACf1F,KAAK8jC,QAAUn+B,EAER3F,MAQXg4B,MAAO,WAEHh4B,KAAK0F,EAAI/E,KAAKq3B,MAAMh4B,KAAK0F,GACzB1F,KAAK2F,EAAIhF,KAAKq3B,MAAMh4B,KAAK2F,IAQ7Bo+B,SAAU,WAEN/jC,KAAK0F,EAAI/E,KAAKq3B,MAAMh4B,KAAK0F,GACzB1F,KAAK2F,EAAIhF,KAAKq3B,MAAMh4B,KAAK2F,GACzB3F,KAAK6G,MAAQlG,KAAKq3B,MAAMh4B,KAAK6G,OAC7B7G,KAAK8G,OAASnG,KAAKq3B,MAAMh4B,KAAK8G,SAQlCixB,KAAM,WAEF/3B,KAAK0F,EAAI/E,KAAKo3B,KAAK/3B,KAAK0F,GACxB1F,KAAK2F,EAAIhF,KAAKo3B,KAAK/3B,KAAK2F,IAQ5Bq+B,QAAS,WAELhkC,KAAK0F,EAAI/E,KAAKo3B,KAAK/3B,KAAK0F,GACxB1F,KAAK2F,EAAIhF,KAAKo3B,KAAK/3B,KAAK2F,GACxB3F,KAAK6G,MAAQlG,KAAKo3B,KAAK/3B,KAAK6G,OAC5B7G,KAAK8G,OAASnG,KAAKo3B,KAAK/3B,KAAK8G,SAUjC01B,SAAU,SAAUhuB,GAEhB,MAAOxO,MAAKu8B,MAAM/tB,EAAO9I,EAAG8I,EAAO7I,EAAG6I,EAAO3H,MAAO2H,EAAO1H,SAU/D21B,OAAQ,SAAUC,GAOd,MALAA,GAAKh3B,EAAI1F,KAAK0F,EACdg3B,EAAK/2B,EAAI3F,KAAK2F,EACd+2B,EAAK71B,MAAQ7G,KAAK6G,MAClB61B,EAAK51B,OAAS9G,KAAK8G,OAEZ41B,GAWXuH,QAAS,SAAUt2B,EAAIE,GAEnB,MAAOimB,GAAO9wB,UAAUihC,QAAQjkC,KAAM2N,EAAIE,IAU9C8a,KAAM,SAAUkU,GAEZ,MAAO/I,GAAO9wB,UAAU2lB,KAAK3oB,KAAM68B,IAavC90B,OAAQ,SAAUlB,EAAOC,GAKrB,MAHA9G,MAAK6G,MAAQA,EACb7G,KAAK8G,OAASA,EAEP9G,MAUXs7B,MAAO,SAAUuB,GAEb,MAAO/I,GAAO9wB,UAAUs4B,MAAMt7B,KAAM68B,IAWxCC,SAAU,SAAUp3B,EAAGC,GAEnB,MAAOmuB,GAAO9wB,UAAU85B,SAAS98B,KAAM0F,EAAGC,IAW9Cu+B,aAAc,SAAUl/B,GAEpB,MAAO8uB,GAAO9wB,UAAUkhC,aAAal/B,EAAGhF,OAW5Cs9B,OAAQ,SAAUt4B,GAEd,MAAO8uB,GAAO9wB,UAAUs6B,OAAOt9B,KAAMgF,IAWzCm/B,aAAc,SAAUn/B,EAAGs3B,GAEvB,MAAOxI,GAAO9wB,UAAUmhC,aAAankC,KAAMgF,EAAGs3B,IAYlDiB,WAAY,SAAUv4B,GAElB,MAAO8uB,GAAO9wB,UAAUu6B,WAAWv9B,KAAMgF,IAe7Co/B,cAAe,SAAUvJ,EAAMD,EAAOwC,EAAKC,EAAQgH,GAE/C,MAAOvQ,GAAO9wB,UAAUohC,cAAcpkC,KAAM66B,EAAMD,EAAOwC,EAAKC,EAAQgH,IAW1EC,MAAO,SAAUt/B,EAAGs3B,GAEhB,MAAOxI,GAAO9wB,UAAUshC,MAAMtkC,KAAMgF,EAAGs3B,IAY3CxC,OAAQ,SAAUwC,GAOd,MALY7yB,UAAR6yB,IAAqBA,EAAM,GAAIxI,GAAOpyB,OAE1C46B,EAAI52B,EAAI1F,KAAKukC,QACbjI,EAAI32B,EAAI3F,KAAKwkC,QAENlI,GASXpsB,SAAU,WAEN,MAAO,kBAAoBlQ,KAAK0F,EAAI,MAAQ1F,KAAK2F,EAAI,UAAY3F,KAAK6G,MAAQ,WAAa7G,KAAK8G,OAAS,UAAY9G,KAAKykC,MAAQ,QAW1I7gC,OAAOC,eAAeiwB,EAAO9wB,UAAUK,UAAW,aAE9CS,IAAK,WACD,MAAOnD,MAAKi8B,MAAM58B,KAAK6G,MAAQ,MAUvCjD,OAAOC,eAAeiwB,EAAO9wB,UAAUK,UAAW,cAE9CS,IAAK,WACD,MAAOnD,MAAKi8B,MAAM58B,KAAK8G,OAAS,MAUxClD,OAAOC,eAAeiwB,EAAO9wB,UAAUK,UAAW,UAE9CS,IAAK,WACD,MAAO9D,MAAK2F,EAAI3F,KAAK8G,QAGzB9C,IAAK,SAAUC,GAIPjE,KAAK8G,OAFL7C,GAASjE,KAAK2F,EAEA,EAIA1B,EAAQjE,KAAK2F,KAYvC/B,OAAOC,eAAeiwB,EAAO9wB,UAAUK,UAAW,cAE9CS,IAAK,WACD,MAAO,IAAIgwB,GAAOpyB,MAAM1B,KAAK0F,EAAG1F,KAAKq9B,SAGzCr5B,IAAK,SAAUC,GACXjE,KAAK0F,EAAIzB,EAAMyB,EACf1F,KAAKq9B,OAASp5B,EAAM0B,KAU5B/B,OAAOC,eAAeiwB,EAAO9wB,UAAUK,UAAW,eAE9CS,IAAK,WACD,MAAO,IAAIgwB,GAAOpyB,MAAM1B,KAAK46B,MAAO56B,KAAKq9B,SAG7Cr5B,IAAK,SAAUC,GACXjE,KAAK46B,MAAQ32B,EAAMyB,EACnB1F,KAAKq9B,OAASp5B,EAAM0B,KAU5B/B,OAAOC,eAAeiwB,EAAO9wB,UAAUK,UAAW,QAE9CS,IAAK,WACD,MAAO9D,MAAK0F,GAGhB1B,IAAK,SAAUC,GAEPjE,KAAK6G,MADL5C,GAASjE,KAAK46B,MACD,EAEA56B,KAAK46B,MAAQ32B,EAE9BjE,KAAK0F,EAAIzB,KAUjBL,OAAOC,eAAeiwB,EAAO9wB,UAAUK,UAAW,SAE9CS,IAAK,WACD,MAAO9D,MAAK0F,EAAI1F,KAAK6G,OAGzB7C,IAAK,SAAUC,GAEPjE,KAAK6G,MADL5C,GAASjE,KAAK0F,EACD,EAEAzB,EAAQjE,KAAK0F,KAYtC9B,OAAOC,eAAeiwB,EAAO9wB,UAAUK,UAAW,UAE9CS,IAAK,WACD,MAAO9D,MAAK6G,MAAQ7G,KAAK8G,UAWjClD,OAAOC,eAAeiwB,EAAO9wB,UAAUK,UAAW,aAE9CS,IAAK,WACD,MAAqB,GAAb9D,KAAK6G,MAA4B,EAAd7G,KAAK8G,UAUxClD,OAAOC,eAAeiwB,EAAO9wB,UAAUK,UAAW,WAE9CS,IAAK,WACD,MAAO9D,MAAK0F,EAAI1F,KAAK09B,WAGzB15B,IAAK,SAAUC,GACXjE,KAAK0F,EAAIzB,EAAQjE,KAAK09B,aAU9B95B,OAAOC,eAAeiwB,EAAO9wB,UAAUK,UAAW,WAE9CS,IAAK,WACD,MAAO9D,MAAK2F,EAAI3F,KAAK49B,YAGzB55B,IAAK,SAAUC,GACXjE,KAAK2F,EAAI1B,EAAQjE,KAAK49B,cAW9Bh6B,OAAOC,eAAeiwB,EAAO9wB,UAAUK,UAAW,WAE9CS,IAAK,WAED,MAAO9D,MAAK0F,EAAK/E,KAAKm5B,SAAW95B,KAAK6G,SAY9CjD,OAAOC,eAAeiwB,EAAO9wB,UAAUK,UAAW,WAE9CS,IAAK,WAED,MAAO9D,MAAK2F,EAAKhF,KAAKm5B,SAAW95B,KAAK8G,UAY9ClD,OAAOC,eAAeiwB,EAAO9wB,UAAUK,UAAW,OAE9CS,IAAK,WACD,MAAO9D,MAAK2F,GAGhB3B,IAAK,SAAUC,GACPA,GAASjE,KAAKq9B,QACdr9B,KAAK8G,OAAS,EACd9G,KAAK2F,EAAI1B,GAETjE,KAAK8G,OAAU9G,KAAKq9B,OAASp5B,KAWzCL,OAAOC,eAAeiwB,EAAO9wB,UAAUK,UAAW,WAE9CS,IAAK,WACD,MAAO,IAAIgwB,GAAOpyB,MAAM1B,KAAK0F,EAAG1F,KAAK2F,IAGzC3B,IAAK,SAAUC,GACXjE,KAAK0F,EAAIzB,EAAMyB,EACf1F,KAAK2F,EAAI1B,EAAM0B,KAUvB/B,OAAOC,eAAeiwB,EAAO9wB,UAAUK,UAAW,YAE9CS,IAAK,WACD,MAAO,IAAIgwB,GAAOpyB,MAAM1B,KAAK0F,EAAI1F,KAAK6G,MAAO7G,KAAK2F,IAGtD3B,IAAK,SAAUC,GACXjE,KAAK46B,MAAQ32B,EAAMyB,EACnB1F,KAAK2F,EAAI1B,EAAM0B,KAWvB/B,OAAOC,eAAeiwB,EAAO9wB,UAAUK,UAAW,SAE9CS,IAAK,WACD,OAAS9D,KAAK6G,QAAU7G,KAAK8G,QAGjC9C,IAAK,SAAUC,GAEPA,KAAU,GAEVjE,KAAKu8B,MAAM,EAAG,EAAG,EAAG,MAOhCzI,EAAO9wB,UAAUK,UAAUC,YAAcwwB,EAAO9wB,UAUhD8wB,EAAO9wB,UAAUihC,QAAU,SAAUl/B,EAAG4I,EAAIE,GAOxC,MALA9I,GAAEW,GAAKiI,EACP5I,EAAE8B,OAAS,EAAI8G,EACf5I,EAAEY,GAAKkI,EACP9I,EAAE+B,QAAU,EAAI+G,EAET9I,GAWX+uB,EAAO9wB,UAAU0hC,aAAe,SAAU3/B,EAAGo4B,GAEzC,MAAOrJ,GAAO9wB,UAAUihC,QAAQl/B,EAAGo4B,EAAMz3B,EAAGy3B,EAAMx3B,IAWtDmuB,EAAO9wB,UAAU2lB,KAAO,SAAU5jB,EAAG83B,GAWjC,MATepzB,UAAXozB,GAAmC,OAAXA,EAExBA,EAAS,GAAI/I,GAAOpyB,MAAMqD,EAAE8B,MAAO9B,EAAE+B,QAIrC+1B,EAAON,MAAMx3B,EAAE8B,MAAO9B,EAAE+B,QAGrB+1B,GAWX/I,EAAO9wB,UAAUs4B,MAAQ,SAAUv2B,EAAG83B,GAWlC,MATepzB,UAAXozB,GAAmC,OAAXA,EAExBA,EAAS,GAAI/I,GAAO9wB,UAAU+B,EAAEW,EAAGX,EAAEY,EAAGZ,EAAE8B,MAAO9B,EAAE+B,QAInD+1B,EAAON,MAAMx3B,EAAEW,EAAGX,EAAEY,EAAGZ,EAAE8B,MAAO9B,EAAE+B,QAG/B+1B,GAYX/I,EAAO9wB,UAAU85B,SAAW,SAAU/3B,EAAGW,EAAGC,GAExC,MAAIZ,GAAE8B,OAAS,GAAK9B,EAAE+B,QAAU,GAErB,EAGHpB,GAAKX,EAAEW,GAAKA,EAAIX,EAAE61B,OAASj1B,GAAKZ,EAAEY,GAAKA,EAAIZ,EAAEs4B,QAezDvJ,EAAO9wB,UAAU2hC,YAAc,SAAUzT,EAAIC,EAAIyT,EAAIC,EAAIn/B,EAAGC,GAExD,MAAQD,IAAKwrB,GAAWA,EAAK0T,EAAVl/B,GAAiBC,GAAKwrB,GAAWA,EAAK0T,EAAVl/B,GAWnDmuB,EAAO9wB,UAAU8hC,cAAgB,SAAU//B,EAAGo4B,GAE1C,MAAOrJ,GAAO9wB,UAAU85B,SAAS/3B,EAAGo4B,EAAMz3B,EAAGy3B,EAAMx3B,IAYvDmuB,EAAO9wB,UAAUkhC,aAAe,SAAUn/B,EAAGC,GAGzC,MAAID,GAAEggC,OAAS//B,EAAE+/B,QAEN,EAGHhgC,EAAEW,GAAKV,EAAEU,GAAKX,EAAEY,GAAKX,EAAEW,GAAKZ,EAAE61B,MAAQ51B,EAAE41B,OAAS71B,EAAEs4B,OAASr4B,EAAEq4B,QAY1EvJ,EAAO9wB,UAAUs6B,OAAS,SAAUv4B,EAAGC,GAEnC,MAAQD,GAAEW,GAAKV,EAAEU,GAAKX,EAAEY,GAAKX,EAAEW,GAAKZ,EAAE8B,OAAS7B,EAAE6B,OAAS9B,EAAE+B,QAAU9B,EAAE8B,QAW5EgtB,EAAO9wB,UAAUgiC,eAAiB,SAAUjgC,EAAGC,GAE3C,MAAQD,GAAE8B,QAAU7B,EAAE6B,OAAS9B,EAAE+B,SAAW9B,EAAE8B,QAYlDgtB,EAAO9wB,UAAUmhC,aAAe,SAAUp/B,EAAGC,EAAG63B,GAe5C,MAbepzB,UAAXozB,IAEAA,EAAS,GAAI/I,GAAO9wB,WAGpB8wB,EAAO9wB,UAAUu6B,WAAWx4B,EAAGC,KAE/B63B,EAAOn3B,EAAI/E,KAAK2+B,IAAIv6B,EAAEW,EAAGV,EAAEU,GAC3Bm3B,EAAOl3B,EAAIhF,KAAK2+B,IAAIv6B,EAAEY,EAAGX,EAAEW,GAC3Bk3B,EAAOh2B,MAAQlG,KAAK0wB,IAAItsB,EAAE61B,MAAO51B,EAAE41B,OAASiC,EAAOn3B,EACnDm3B,EAAO/1B,OAASnG,KAAK0wB,IAAItsB,EAAEs4B,OAAQr4B,EAAEq4B,QAAUR,EAAOl3B,GAGnDk3B,GAYX/I,EAAO9wB,UAAUu6B,WAAa,SAAUx4B,EAAGC,GAEvC,MAAID,GAAE8B,OAAS,GAAK9B,EAAE+B,QAAU,GAAK9B,EAAE6B,OAAS,GAAK7B,EAAE8B,QAAU,GAEtD,IAGF/B,EAAE61B,MAAQ51B,EAAEU,GAAKX,EAAEs4B,OAASr4B,EAAEW,GAAKZ,EAAEW,EAAIV,EAAE41B,OAAS71B,EAAEY,EAAIX,EAAEq4B,SAczEvJ,EAAO9wB,UAAUohC,cAAgB,SAAUr/B,EAAG81B,EAAMD,EAAOwC,EAAKC,EAAQgH,GAIpE,MAFkB56B,UAAd46B,IAA2BA,EAAY,KAElCxJ,EAAO91B,EAAE61B,MAAQyJ,GAAazJ,EAAQ71B,EAAE81B,KAAOwJ,GAAajH,EAAMr4B,EAAEs4B,OAASgH,GAAahH,EAASt4B,EAAEq4B,IAAMiH,IAYxHvQ,EAAO9wB,UAAUshC,MAAQ,SAAUv/B,EAAGC,EAAG63B,GAOrC,MALepzB,UAAXozB,IAEAA,EAAS,GAAI/I,GAAO9wB,WAGjB65B,EAAON,MAAM57B,KAAK0wB,IAAItsB,EAAEW,EAAGV,EAAEU,GAAI/E,KAAK0wB,IAAItsB,EAAEY,EAAGX,EAAEW,GAAIhF,KAAK2+B,IAAIv6B,EAAE61B,MAAO51B,EAAE41B,OAASj6B,KAAK0wB,IAAItsB,EAAE81B,KAAM71B,EAAE61B,MAAOl6B,KAAK2+B,IAAIv6B,EAAEs4B,OAAQr4B,EAAEq4B,QAAU18B,KAAK0wB,IAAItsB,EAAEq4B,IAAKp4B,EAAEo4B,OAaxKtJ,EAAO9wB,UAAUiiC,KAAO,SAASpoB,EAAQyf,GAEzB7yB,SAAR6yB,IACAA,EAAM,GAAIxI,GAAO9wB,UAGrB,IAAIq8B,GAAOiE,OAAO4B,UACd9F,EAAOkE,OAAOC,UACd/D,EAAO8D,OAAO4B,UACd3F,EAAO+D,OAAOC,SAoBlB,OAlBA1mB,GAAO+b,QAAQ,SAASuE,GAChBA,EAAMz3B,EAAI25B,IACVA,EAAOlC,EAAMz3B,GAEby3B,EAAMz3B,EAAI05B,IACVA,EAAOjC,EAAMz3B,GAGby3B,EAAMx3B,EAAI65B,IACVA,EAAOrC,EAAMx3B,GAEbw3B,EAAMx3B,EAAI45B,IACVA,EAAOpC,EAAMx3B,KAIrB22B,EAAIC,MAAM6C,EAAMG,EAAMF,EAAOD,EAAMI,EAAOD,GAEnCjD,GAIXx8B,KAAKkD,UAAY8wB,EAAO9wB,UACxBlD,KAAKoG,eAAiB,GAAI4tB,GAAO9wB,UAAU,EAAG,EAAG,EAAG,GAqBpD8wB,EAAOqR,iBAAmB,SAASz/B,EAAGC,EAAGkB,EAAOC,EAAQ6X,GAE1ClV,SAAN/D,IAAmBA,EAAI,GACjB+D,SAAN9D,IAAmBA,EAAI,GACb8D,SAAV5C,IAAuBA,EAAQ,GACpB4C,SAAX3C,IAAwBA,EAAS,GACtB2C,SAAXkV,IAAwBA,EAAS,IAKrC3e,KAAK0F,EAAIA,EAKT1F,KAAK2F,EAAIA,EAKT3F,KAAK6G,MAAQA,EAKb7G,KAAK8G,OAASA,EAKd9G,KAAK2e,OAASA,GAAU,GAMxB3e,KAAK+W,KAAO+c,EAAO6D,kBAGvB7D,EAAOqR,iBAAiB9hC,WASpBi4B,MAAO,WAEH,MAAO,IAAIxH,GAAOqR,iBAAiBnlC,KAAK0F,EAAG1F,KAAK2F,EAAG3F,KAAK6G,MAAO7G,KAAK8G,OAAQ9G,KAAK2e,SAYrFme,SAAU,SAAUp3B,EAAGC,GAEnB,GAAI3F,KAAK6G,OAAS,GAAK7G,KAAK8G,QAAU,EAElC,OAAO,CAGX,IAAI4F,GAAK1M,KAAK0F,CAEd,IAAIA,GAAKgH,GAAMhH,GAAKgH,EAAK1M,KAAK6G,MAC9B,CACI,GAAI8F,GAAK3M,KAAK2F,CAEd,IAAIA,GAAKgH,GAAMhH,GAAKgH,EAAK3M,KAAK8G,OAE1B,OAAO,EAIf,OAAO,IAMfgtB,EAAOqR,iBAAiB9hC,UAAUC,YAAcwwB,EAAOqR,iBAGvDrlC,KAAKqlC,iBAAmBrR,EAAOqR,iBAqB/BrR,EAAOsR,OAAS,SAAUxgC,EAAMgT,EAAIlS,EAAGC,EAAGkB,EAAOC,GAK7C9G,KAAK4E,KAAOA,EAKZ5E,KAAK8E,MAAQF,EAAKE,MAMlB9E,KAAK4X,GAAK,EASV5X,KAAKiB,KAAO,GAAI6yB,GAAO9wB,UAAU0C,EAAGC,EAAGkB,EAAOC,GAS9C9G,KAAK0G,OAAS,GAAIotB,GAAO9wB,UAAU0C,EAAGC,EAAGkB,EAAOC,GAKhD9G,KAAKqlC,SAAW,KAMhBrlC,KAAKiC,SAAU,EAMfjC,KAAKslC,SAAU,EAKftlC,KAAKulC,SAAY7/B,GAAG,EAAOC,GAAG,GAM9B3F,KAAKyE,OAAS,KAKdzE,KAAKukB,cAAgB,KAKrBvkB,KAAK2B,MAAQ,KAMb3B,KAAKwlC,YAAc,EAMnBxlC,KAAKylC,gBAAkB,GAAI3R,GAAOpyB,MAOlC1B,KAAK0lC,MAAQ,EAOb1lC,KAAK2lC,UAAY,GAAI7R,GAAOpyB,OAQhCoyB,EAAOsR,OAAOQ,cAAgB,EAM9B9R,EAAOsR,OAAOS,kBAAoB,EAMlC/R,EAAOsR,OAAOU,eAAiB,EAM/BhS,EAAOsR,OAAOW,qBAAuB,EAErCjS,EAAOsR,OAAO/hC,WAOViD,UAAW,WAEPtG,KAAKwlC,YAAc,GAcvBQ,OAAQ,SAAUvhC,EAAQggB,GAERhb,SAAVgb,IAAuBA,EAAQqP,EAAOsR,OAAOQ,eAEjD5lC,KAAKyE,OAASA,CAEd,IAAIwhC,EAEJ,QAAQxhB,GAEJ,IAAKqP,GAAOsR,OAAOS,kBACf,GAAItsB,GAAIvZ,KAAK6G,MAAQ,EACjBwjB,EAAIrqB,KAAK8G,OAAS,CACtB9G,MAAKqlC,SAAW,GAAIvR,GAAO9wB,WAAWhD,KAAK6G,MAAQ0S,GAAK,GAAIvZ,KAAK8G,OAASujB,GAAK,EAAQ,IAAJA,EAAU9Q,EAAG8Q,EAChG,MAEJ,KAAKyJ,GAAOsR,OAAOU,eACfG,EAAStlC,KAAK2+B,IAAIt/B,KAAK6G,MAAO7G,KAAK8G,QAAU,EAC7C9G,KAAKqlC,SAAW,GAAIvR,GAAO9wB,WAAWhD,KAAK6G,MAAQo/B,GAAU,GAAIjmC,KAAK8G,OAASm/B,GAAU,EAAGA,EAAQA,EACpG,MAEJ,KAAKnS,GAAOsR,OAAOW,qBACfE,EAAStlC,KAAK2+B,IAAIt/B,KAAK6G,MAAO7G,KAAK8G,QAAU,EAC7C9G,KAAKqlC,SAAW,GAAIvR,GAAO9wB,WAAWhD,KAAK6G,MAAQo/B,GAAU,GAAIjmC,KAAK8G,OAASm/B,GAAU,EAAGA,EAAQA,EACpG,MAEJ,KAAKnS,GAAOsR,OAAOQ,cACf5lC,KAAKqlC,SAAW,IAChB,MAEJ,SACIrlC,KAAKqlC,SAAW,OAW5Ba,SAAU,WAENlmC,KAAKyE,OAAS,MASlB0hC,QAAS,SAAU5hB,GAEfvkB,KAAKomC,YAAYzlC,KAAKi8B,MAAMrY,EAAc7e,EAAI1F,KAAKiB,KAAKy8B,WAAY/8B,KAAKi8B,MAAMrY,EAAc5e,EAAI3F,KAAKiB,KAAK28B,cAU/GyI,UAAW,SAAU3gC,EAAGC,GAEpB3F,KAAKomC,YAAYzlC,KAAKi8B,MAAMl3B,EAAI1F,KAAKiB,KAAKy8B,WAAY/8B,KAAKi8B,MAAMj3B,EAAI3F,KAAKiB,KAAK28B,cAQnF0I,OAAQ,WAEAtmC,KAAKyE,QAELzE,KAAKumC,eAGLvmC,KAAK0G,QAEL1G,KAAKwmC,cAGLxmC,KAAKslC,SAELtlC,KAAKiB,KAAK+2B,QAGdh4B,KAAKukB,cAAc9iB,SAASiE,GAAK1F,KAAKiB,KAAKyE,EAC3C1F,KAAKukB,cAAc9iB,SAASkE,GAAK3F,KAAKiB,KAAK0E,GAS/C4gC,aAAc,WAEVvmC,KAAKylC,gBAAgBjJ,SAASx8B,KAAKyE,QAE/BzE,KAAKyE,OAAOrC,QAEZpC,KAAKylC,gBAAgB3E,SAAS9gC,KAAKyE,OAAOrC,OAAOG,eAAewC,EAAG/E,KAAKyE,OAAOrC,OAAOG,eAAe2C,GAGrGlF,KAAKqlC,UAELrlC,KAAK0lC,MAAQ1lC,KAAKylC,gBAAgB//B,EAAI1F,KAAKiB,KAAKyE,EAE5C1F,KAAK0lC,MAAQ1lC,KAAKqlC,SAASxK,KAE3B76B,KAAKiB,KAAKyE,EAAI1F,KAAKylC,gBAAgB//B,EAAI1F,KAAKqlC,SAASxK,KAEhD76B,KAAK0lC,MAAQ1lC,KAAKqlC,SAASzK,QAEhC56B,KAAKiB,KAAKyE,EAAI1F,KAAKylC,gBAAgB//B,EAAI1F,KAAKqlC,SAASzK,OAGzD56B,KAAK0lC,MAAQ1lC,KAAKylC,gBAAgB9/B,EAAI3F,KAAKiB,KAAK0E,EAE5C3F,KAAK0lC,MAAQ1lC,KAAKqlC,SAASjI,IAE3Bp9B,KAAKiB,KAAK0E,EAAI3F,KAAKylC,gBAAgB9/B,EAAI3F,KAAKqlC,SAASjI,IAEhDp9B,KAAK0lC,MAAQ1lC,KAAKqlC,SAAShI,SAEhCr9B,KAAKiB,KAAK0E,EAAI3F,KAAKylC,gBAAgB9/B,EAAI3F,KAAKqlC,SAAShI,UAKzDr9B,KAAKiB,KAAKyE,EAAI1F,KAAKylC,gBAAgB//B,EAAI1F,KAAKiB,KAAKy8B,UACjD19B,KAAKiB,KAAK0E,EAAI3F,KAAKylC,gBAAgB9/B,EAAI3F,KAAKiB,KAAK28B,aASzD6I,iBAAkB,WAEdzmC,KAAK0G,OAAO81B,SAASx8B,KAAK4E,KAAKE,MAAM4B,SAQzC8/B,YAAa,WAETxmC,KAAKulC,QAAQ7/B,GAAI,EACjB1F,KAAKulC,QAAQ5/B,GAAI,EAGb3F,KAAKiB,KAAKyE,GAAK1F,KAAK0G,OAAOhB,IAE3B1F,KAAKulC,QAAQ7/B,GAAI,EACjB1F,KAAKiB,KAAKyE,EAAI1F,KAAK0G,OAAOhB,GAG1B1F,KAAKiB,KAAK25B,OAAS56B,KAAK0G,OAAOk0B,QAE/B56B,KAAKulC,QAAQ7/B,GAAI,EACjB1F,KAAKiB,KAAKyE,EAAI1F,KAAK0G,OAAOk0B,MAAQ56B,KAAK6G,OAGvC7G,KAAKiB,KAAK0E,GAAK3F,KAAK0G,OAAO02B,MAE3Bp9B,KAAKulC,QAAQ5/B,GAAI,EACjB3F,KAAKiB,KAAK0E,EAAI3F,KAAK0G,OAAO02B,KAG1Bp9B,KAAKiB,KAAKo8B,QAAUr9B,KAAK0G,OAAO22B,SAEhCr9B,KAAKulC,QAAQ5/B,GAAI,EACjB3F,KAAKiB,KAAK0E,EAAI3F,KAAK0G,OAAO22B,OAASr9B,KAAK8G,SAahDs/B,YAAa,SAAU1gC,EAAGC,GAEtB3F,KAAKiB,KAAKyE,EAAIA,EACd1F,KAAKiB,KAAK0E,EAAIA,EAEV3F,KAAK0G,QAEL1G,KAAKwmC,eAYbE,QAAS,SAAU7/B,EAAOC,GAEtB9G,KAAKiB,KAAK4F,MAAQA,EAClB7G,KAAKiB,KAAK6F,OAASA,GASvB2V,MAAO,WAEHzc,KAAKyE,OAAS,KACdzE,KAAKiB,KAAKyE,EAAI,EACd1F,KAAKiB,KAAK0E,EAAI,IAMtBmuB,EAAOsR,OAAO/hC,UAAUC,YAAcwwB,EAAOsR,OAO7CxhC,OAAOC,eAAeiwB,EAAOsR,OAAO/hC,UAAW,KAE3CS,IAAK,WACD,MAAO9D,MAAKiB,KAAKyE,GAGrB1B,IAAK,SAAUC,GAEXjE,KAAKiB,KAAKyE,EAAIzB,EAEVjE,KAAK0G,QAEL1G,KAAKwmC,iBAWjB5iC,OAAOC,eAAeiwB,EAAOsR,OAAO/hC,UAAW,KAE3CS,IAAK,WACD,MAAO9D,MAAKiB,KAAK0E,GAGrB3B,IAAK,SAAUC,GAEXjE,KAAKiB,KAAK0E,EAAI1B,EAEVjE,KAAK0G,QAEL1G,KAAKwmC,iBAWjB5iC,OAAOC,eAAeiwB,EAAOsR,OAAO/hC,UAAW,YAE3CS,IAAK,WAED,MADA9D,MAAK2lC,UAAU3hC,IAAIhE,KAAKiB,KAAK4iC,QAAS7jC,KAAKiB,KAAK6iC,SACzC9jC,KAAK2lC,WAGhB3hC,IAAK,SAAUC,GAEY,mBAAZA,GAAMyB,IAAqB1F,KAAKiB,KAAKyE,EAAIzB,EAAMyB,GACnC,mBAAZzB,GAAM0B,IAAqB3F,KAAKiB,KAAK0E,EAAI1B,EAAM0B,GAEtD3F,KAAK0G,QAEL1G,KAAKwmC,iBAWjB5iC,OAAOC,eAAeiwB,EAAOsR,OAAO/hC,UAAW,SAE3CS,IAAK,WACD,MAAO9D,MAAKiB,KAAK4F,OAGrB7C,IAAK,SAAUC,GACXjE,KAAKiB,KAAK4F,MAAQ5C,KAU1BL,OAAOC,eAAeiwB,EAAOsR,OAAO/hC,UAAW,UAE3CS,IAAK,WACD,MAAO9D,MAAKiB,KAAK6F,QAGrB9C,IAAK,SAAUC,GACXjE,KAAKiB,KAAK6F,OAAS7C,KAsB3B6vB,EAAO6S,OAAS,SAAU/hC,GAKtB5E,KAAK4E,KAAOA,EAKZ5E,KAAK4mC,IAAMhiC,EAAKiiC,KAAKC,aAKrB9mC,KAAK+Q,OAAS/Q,KAAK4mC,IAAI71B,OAKvB/Q,KAAK+mC,IAAM/mC,KAAK4mC,IAAIx5B,QAKpBpN,KAAKgnC,WACC,EAAG,OAAQC,EAAG,UAAWC,EAAG,OAAQC,EAAG,UAAWC,EAAG,UAAWC,EAAG,UAAWC,EAAG,UAAWC,EAAG,UAAWC,EAAG,UAAWC,EAAG,UAAWC,EAAG,UAAWC,EAAG,UAAWC,EAAG,UAAWC,EAAG,UAAWC,EAAG,UAAWrP,EAAG,YAC/M,EAAG,OAAQwO,EAAG,UAAWC,EAAG,UAAWC,EAAG,UAAWC,EAAG,UAAWC,EAAG,UAAWC,EAAG,UAAWC,EAAG,UAAWC,EAAG,UAAWC,EAAG,UAAWC,EAAG,UAAWC,EAAG,UAAWC,EAAG,UAAWC,EAAG,UAAWC,EAAG,UAAWrP,EAAG,YAClN,EAAG,OAAQwO,EAAG,UAAWC,EAAG,UAAWC,EAAG,UAAWC,EAAG,UAAWC,EAAG,UAAWC,EAAG,UAAWC,EAAG,UAAWC,EAAG,UAAWC,EAAG,UAAWC,EAAG,UAAWC,EAAG,UAAWC,EAAG,UAAWC,EAAG,UAAWC,EAAG,UAAWrP,EAAG,SAClN,EAAG,OAAQwO,EAAG,OAAQC,EAAG,UAAWC,EAAG,UAAWC,EAAG,UAAWC,EAAG,UAAWC,EAAG,UAAWC,EAAG,UAAWC,EAAG,UAAWC,EAAG,UAAWC,EAAG,UAAWC,EAAG,UAAWC,EAAG,UAAWC,EAAG,UAAWC,EAAG,UAAWrP,EAAG,YAC/M,EAAG,OAAQwO,EAAG,UAAWC,EAAG,UAAWC,EAAG,UAAWC,EAAG,UAAWC,EAAG,UAAWC,EAAG,UAAWC,EAAG,UAAWC,EAAG,UAAWC,EAAG,UAAWC,EAAG,UAAWC,EAAG,UAAWC,EAAG,UAAWC,EAAG,UAAWC,EAAG,UAAWrP,EAAG,UAU5N3E,EAAO6S,OAAOoB,aAAe,EAO7BjU,EAAO6S,OAAOqB,YAAc,EAO5BlU,EAAO6S,OAAOsB,YAAc,EAO5BnU,EAAO6S,OAAOuB,YAAc,EAO5BpU,EAAO6S,OAAOwB,yBAA2B,EAEzCrU,EAAO6S,OAAOtjC,WAiCVyE,QAAS,SAAU4O,EAAKvF,EAAMi3B,EAAYC,EAAaC,GAEhC7+B,SAAf2+B,IAA4BA,EAAa,GACzB3+B,SAAhB4+B,IAA6BA,EAAcD,GAC/B3+B,SAAZ6+B,IAAyBA,EAAU,EAEvC,IAAI/uB,GAAIpI,EAAK,GAAGzN,OAAS0kC,EACrB/d,EAAIlZ,EAAKzN,OAAS2kC,CAEtBroC,MAAK4mC,IAAI7+B,OAAOwR,EAAG8Q,GACnBrqB,KAAK4mC,IAAIxiB,OAGT,KAAK,GAAIze,GAAI,EAAGA,EAAIwL,EAAKzN,OAAQiC,IAI7B,IAAK,GAFD4iC,GAAMp3B,EAAKxL,GAEND,EAAI,EAAGA,EAAI6iC,EAAI7kC,OAAQgC,IAChC,CACI,GAAIR,GAAIqjC,EAAI7iC,EAEF,OAANR,GAAmB,MAANA,IAEblF,KAAK+mC,IAAIlY,UAAY7uB,KAAKgnC,SAASsB,GAASpjC,GAC5ClF,KAAK+mC,IAAIjY,SAASppB,EAAI0iC,EAAYziC,EAAI0iC,EAAaD,EAAYC,IAK3E,MAAOroC,MAAK4mC,IAAIrgC,gBAAgBmQ,IAgBpC8xB,KAAM,SAAU9xB,EAAK7P,EAAOC,EAAQ2hC,EAAWC,EAAYnuB,GAEvDva,KAAK4mC,IAAI7+B,OAAOlB,EAAOC,GAEvB9G,KAAK+mC,IAAIlY,UAAYtU,CAErB,KAAK,GAAI5U,GAAI,EAAOmB,EAAJnB,EAAYA,GAAK+iC,EAE7B1oC,KAAK+mC,IAAIjY,SAAS,EAAGnpB,EAAGkB,EAAO,EAGnC,KAAK,GAAInB,GAAI,EAAOmB,EAAJnB,EAAWA,GAAK+iC,EAE5BzoC,KAAK+mC,IAAIjY,SAASppB,EAAG,EAAG,EAAGoB,EAG/B,OAAO9G,MAAK4mC,IAAIrgC,gBAAgBmQ,KAMxCod,EAAO6S,OAAOtjC,UAAUC,YAAcwwB,EAAO6S,OAe7C7S,EAAO6U,MAAQ,WAKX3oC,KAAK4E,KAAO,KAKZ5E,KAAK0W,IAAM,GAKX1W,KAAK4gC,IAAM,KAKX5gC,KAAK6mC,KAAO,KAKZ7mC,KAAK4oC,OAAS,KAKd5oC,KAAK6oC,MAAQ,KAKb7oC,KAAK8oC,MAAQ,KAKb9oC,KAAK+oC,KAAO,KAKZ/oC,KAAKgpC,KAAO,KAKZhpC,KAAKipC,MAAQ,KAKbjpC,KAAK2B,MAAQ,KAKb3B,KAAKqC,MAAQ,KAKbrC,KAAKkpC,KAAO,KAKZlpC,KAAKmpC,OAAS,KAKdnpC,KAAK8E,MAAQ,KAKb9E,KAAKopC,UAAY,KAKjBppC,KAAKqpC,QAAU,KAKfrpC,KAAKspC,IAAM,MAIfxV,EAAO6U,MAAMtlC,WASTyS,KAAM,aAUNyzB,QAAS,aAQTC,WAAY,aASZC,WAAY,aASZrhC,OAAQ,aAURk+B,OAAQ,aAQRoD,UAAW,aAUX1iC,OAAQ,aAQRe,OAAQ,aAQR4hC,OAAQ,aAQRC,QAAS,aAQTC,YAAa,aAQbC,SAAU,cAKdhW,EAAO6U,MAAMtlC,UAAUC,YAAcwwB,EAAO6U,MAkB5C7U,EAAOiW,aAAe,SAAUnlC,EAAMolC,GAKlChqC,KAAK4E,KAAOA,EAKZ5E,KAAKiqC,UAMLjqC,KAAKkqC,cAAgB,KAEO,mBAAjBF,IAAiD,OAAjBA,IAEvChqC,KAAKkqC,cAAgBF,GAOzBhqC,KAAKmqC,aAAc,EAMnBnqC,KAAKoqC,aAAc,EAMnBpqC,KAAKqqC,UAAW,EAMhBrqC,KAAKsqC,SAMLtqC,KAAK05B,QAAU,GAcf15B,KAAKuqC,cAAgB,GAAIzW,GAAO0W,OAMhCxqC,KAAKyqC,eAAiB,KAMtBzqC,KAAK0qC,kBAAoB,KAMzB1qC,KAAK2qC,iBAAmB,KAMxB3qC,KAAK4qC,iBAAmB,KAMxB5qC,KAAK6qC,iBAAmB,KAMxB7qC,KAAK8qC,iBAAmB,KAMxB9qC,KAAK+qC,oBAAsB,KAM3B/qC,KAAKgrC,qBAAuB,KAM5BhrC,KAAKirC,qBAAuB,KAM5BjrC,KAAKkrC,iBAAmB,KAMxBlrC,KAAKmrC,kBAAoB,KAMzBnrC,KAAKorC,sBAAwB,KAM7BprC,KAAKqrC,mBAAqB,MAI9BvX,EAAOiW,aAAa1mC,WAOhBioC,KAAM,WAEFtrC,KAAK4E,KAAK2mC,QAAQ3K,IAAI5gC,KAAKwrC,MAAOxrC,MAClCA,KAAK4E,KAAK6mC,SAAS7K,IAAI5gC,KAAK0rC,OAAQ1rC,MAET,OAAvBA,KAAKkqC,eAAwD,gBAAvBlqC,MAAKkqC,eAE3ClqC,KAAK4gC,IAAI,UAAW5gC,KAAKkqC,eAAe,IAehDtJ,IAAK,SAAUlqB,EAAKi1B,EAAOC,GAELniC,SAAdmiC,IAA2BA,GAAY,EAE3C,IAAIC,EA8BJ,OA5BIF,aAAiB7X,GAAO6U,MAExBkD,EAAWF,EAEW,gBAAVA,IAEZE,EAAWF,EACXE,EAASjnC,KAAO5E,KAAK4E,MAEC,kBAAV+mC,KAEZE,EAAW,GAAIF,GAAM3rC,KAAK4E,OAG9B5E,KAAKiqC,OAAOvzB,GAAOm1B,EAEfD,IAEI5rC,KAAK4E,KAAKknC,SAEV9rC,KAAKoL,MAAMsL,GAIX1W,KAAKkqC,cAAgBxzB,GAItBm1B,GASXE,OAAQ,SAAUr1B,GAEV1W,KAAK05B,UAAYhjB,IAEjB1W,KAAKgsC,gBAAkB,KAEvBhsC,KAAKyqC,eAAiB,KACtBzqC,KAAKqrC,mBAAqB,KAE1BrrC,KAAK0qC,kBAAoB,KACzB1qC,KAAKirC,qBAAuB,KAC5BjrC,KAAKgrC,qBAAuB,KAC5BhrC,KAAK2qC,iBAAmB,KACxB3qC,KAAK4qC,iBAAmB,KACxB5qC,KAAK+qC,oBAAsB,KAC3B/qC,KAAK6qC,iBAAmB,KACxB7qC,KAAK8qC,iBAAmB,KACxB9qC,KAAKkrC,iBAAmB,KACxBlrC,KAAKmrC,kBAAoB,KACzBnrC,KAAKorC,sBAAwB,YAG1BprC,MAAKiqC,OAAOvzB,IAavBtL,MAAO,SAAUsL,EAAKu1B,EAAYC,GAEXziC,SAAfwiC,IAA4BA,GAAa,GAC1BxiC,SAAfyiC,IAA4BA,GAAa,GAEzClsC,KAAKmsC,WAAWz1B,KAGhB1W,KAAKkqC,cAAgBxzB,EACrB1W,KAAKmqC,YAAc8B,EACnBjsC,KAAKoqC,YAAc8B,EAEf3T,UAAU70B,OAAS,IAEnB1D,KAAKsqC,MAAQ7pC,MAAM4C,UAAUuF,OAAO9C,KAAKyyB,UAAW,MAchE6T,QAAS,SAAUH,EAAYC,GAERziC,SAAfwiC,IAA4BA,GAAa,GAC1BxiC,SAAfyiC,IAA4BA,GAAa,GAG7ClsC,KAAKkqC,cAAgBlqC,KAAK05B,QAC1B15B,KAAKmqC,YAAc8B,EACnBjsC,KAAKoqC,YAAc8B,EAEf3T,UAAU70B,OAAS,IAEnB1D,KAAKsqC,MAAQ7pC,MAAM4C,UAAUuF,OAAO9C,KAAKyyB,UAAW,KAU5D8T,MAAO,aAQP/lC,UAAW,WAEP,GAAItG,KAAKkqC,eAAiBlqC,KAAK4E,KAAKknC,SACpC,CACI,GAAIQ,GAAmBtsC,KAAK05B,OAS5B,IANA15B,KAAKusC,oBAELvsC,KAAKwsC,gBAAgBxsC,KAAKkqC,eAE1BlqC,KAAKuqC,cAAckC,SAASzsC,KAAK05B,QAAS4S,GAEtCtsC,KAAK05B,UAAY15B,KAAKkqC,cAEtB,MAIAlqC,MAAKkqC,cAAgB,KAKrBlqC,KAAK0qC,mBAEL1qC,KAAK4E,KAAKmkC,KAAKtsB,OAAM,GACrBzc,KAAK0qC,kBAAkB5kC,KAAK9F,KAAKgsC,gBAAiBhsC,KAAK4E,MAGb,IAAtC5E,KAAK4E,KAAKmkC,KAAK2D,oBAAkE,IAAtC1sC,KAAK4E,KAAKmkC,KAAK4D,mBAE1D3sC,KAAK4sC,eAKL5sC,KAAK4E,KAAKmkC,KAAK39B,SAMnBpL,KAAK4sC,iBAYjBL,kBAAmB,WAEXvsC,KAAK05B,UAED15B,KAAKqrC,oBAELrrC,KAAKqrC,mBAAmBvlC,KAAK9F,KAAKgsC,gBAAiBhsC,KAAK4E,MAG5D5E,KAAK4E,KAAKukC,OAAO0D,YAEjB7sC,KAAK4E,KAAKgkC,OAAOnsB,QAEjBzc,KAAK4E,KAAKkkC,MAAMrsB,OAAM,GAEtBzc,KAAK4E,KAAKykC,QAAQjlB,QAElBpkB,KAAK4E,KAAKskC,KAAK2D,YAEf7sC,KAAK4E,KAAKjD,MAAM8a,MAAMzc,KAAKmqC,aAEvBnqC,KAAK4E,KAAKkoC,OAEV9sC,KAAK4E,KAAKkoC,MAAMrwB,QAGhBzc,KAAKmqC,cAELnqC,KAAK4E,KAAKE,MAAMglC,WAEZ9pC,KAAKoqC,eAAgB,GAErBpqC,KAAK4E,KAAKikC,MAAMtlC,aAchC4oC,WAAY,SAAUz1B,GAElB,GAAI1W,KAAKiqC,OAAOvzB,GAChB,CACI,GAAIrK,IAAQ,CAOZ,QALIrM,KAAKiqC,OAAOvzB,GAAc,SAAK1W,KAAKiqC,OAAOvzB,GAAa,QAAK1W,KAAKiqC,OAAOvzB,GAAa,QAAK1W,KAAKiqC,OAAOvzB,GAAa,UAEpHrK,GAAQ,GAGRA,KAAU,GAEVqI,QAAQukB,KAAK,gIACN,IAGJ;CAKP,MADAvkB,SAAQukB,KAAK,sDAAwDviB,IAC9D,GAYfq2B,KAAM,SAAUr2B,GAEZ1W,KAAKiqC,OAAOvzB,GAAK9R,KAAO5E,KAAK4E,KAC7B5E,KAAKiqC,OAAOvzB,GAAKkqB,IAAM5gC,KAAK4E,KAAKg8B,IACjC5gC,KAAKiqC,OAAOvzB,GAAKmwB,KAAO7mC,KAAK4E,KAAKiiC,KAClC7mC,KAAKiqC,OAAOvzB,GAAKkyB,OAAS5oC,KAAK4E,KAAKgkC,OACpC5oC,KAAKiqC,OAAOvzB,GAAKmyB,MAAQ7oC,KAAK4E,KAAKikC,MACnC7oC,KAAKiqC,OAAOvzB,GAAKoyB,MAAQ9oC,KAAK4E,KAAKkkC,MACnC9oC,KAAKiqC,OAAOvzB,GAAKqyB,KAAO/oC,KAAK4E,KAAKmkC,KAClC/oC,KAAKiqC,OAAOvzB,GAAKsyB,KAAOhpC,KAAK4E,KAAKokC,KAClChpC,KAAKiqC,OAAOvzB,GAAKuyB,MAAQjpC,KAAK4E,KAAKqkC,MACnCjpC,KAAKiqC,OAAOvzB,GAAK/U,MAAQ3B,KAAK4E,KAAKjD,MACnC3B,KAAKiqC,OAAOvzB,GAAKi1B,MAAQ3rC,KACzBA,KAAKiqC,OAAOvzB,GAAKrU,MAAQrC,KAAK4E,KAAKvC,MACnCrC,KAAKiqC,OAAOvzB,GAAKwyB,KAAOlpC,KAAK4E,KAAKskC,KAClClpC,KAAKiqC,OAAOvzB,GAAKyyB,OAASnpC,KAAK4E,KAAKukC,OACpCnpC,KAAKiqC,OAAOvzB,GAAK5R,MAAQ9E,KAAK4E,KAAKE,MACnC9E,KAAKiqC,OAAOvzB,GAAK0yB,UAAYppC,KAAK4E,KAAKwkC,UACvCppC,KAAKiqC,OAAOvzB,GAAK4yB,IAAMtpC,KAAK4E,KAAK0kC,IACjCtpC,KAAKiqC,OAAOvzB,GAAK2yB,QAAUrpC,KAAK4E,KAAKykC,QACrCrpC,KAAKiqC,OAAOvzB,GAAKA,IAAMA,GAW3Bs2B,OAAQ,SAAUt2B,GAEV1W,KAAKiqC,OAAOvzB,KAEZ1W,KAAKiqC,OAAOvzB,GAAK9R,KAAO,KACxB5E,KAAKiqC,OAAOvzB,GAAKkqB,IAAM,KACvB5gC,KAAKiqC,OAAOvzB,GAAKmwB,KAAO,KACxB7mC,KAAKiqC,OAAOvzB,GAAKkyB,OAAS,KAC1B5oC,KAAKiqC,OAAOvzB,GAAKmyB,MAAQ,KACzB7oC,KAAKiqC,OAAOvzB,GAAKoyB,MAAQ,KACzB9oC,KAAKiqC,OAAOvzB,GAAKqyB,KAAO,KACxB/oC,KAAKiqC,OAAOvzB,GAAKsyB,KAAO,KACxBhpC,KAAKiqC,OAAOvzB,GAAKuyB,MAAQ,KACzBjpC,KAAKiqC,OAAOvzB,GAAK/U,MAAQ,KACzB3B,KAAKiqC,OAAOvzB,GAAKi1B,MAAQ,KACzB3rC,KAAKiqC,OAAOvzB,GAAKrU,MAAQ,KACzBrC,KAAKiqC,OAAOvzB,GAAKwyB,KAAO,KACxBlpC,KAAKiqC,OAAOvzB,GAAKyyB,OAAS,KAC1BnpC,KAAKiqC,OAAOvzB,GAAK5R,MAAQ,KACzB9E,KAAKiqC,OAAOvzB,GAAK0yB,UAAY,KAC7BppC,KAAKiqC,OAAOvzB,GAAK4yB,IAAM,KACvBtpC,KAAKiqC,OAAOvzB,GAAK2yB,QAAU,OAYnCmD,gBAAiB,SAAU91B,GAEvB1W,KAAKgsC,gBAAkBhsC,KAAKiqC,OAAOvzB,GAEnC1W,KAAK+sC,KAAKr2B,GAGV1W,KAAKyqC,eAAiBzqC,KAAKiqC,OAAOvzB,GAAW,MAAK1W,KAAKqsC,MAEvDrsC,KAAK0qC,kBAAoB1qC,KAAKiqC,OAAOvzB,GAAc,SAAK,KACxD1W,KAAKirC,qBAAuBjrC,KAAKiqC,OAAOvzB,GAAiB,YAAK,KAC9D1W,KAAKgrC,qBAAuBhrC,KAAKiqC,OAAOvzB,GAAiB,YAAK,KAC9D1W,KAAK2qC,iBAAmB3qC,KAAKiqC,OAAOvzB,GAAa,QAAK,KACtD1W,KAAK4qC,iBAAmB5qC,KAAKiqC,OAAOvzB,GAAa,QAAK,KACtD1W,KAAK+qC,oBAAsB/qC,KAAKiqC,OAAOvzB,GAAgB,WAAK,KAC5D1W,KAAK6qC,iBAAmB7qC,KAAKiqC,OAAOvzB,GAAa,QAAK,KACtD1W,KAAK8qC,iBAAmB9qC,KAAKiqC,OAAOvzB,GAAa,QAAK,KACtD1W,KAAKkrC,iBAAmBlrC,KAAKiqC,OAAOvzB,GAAa,QAAK,KACtD1W,KAAKmrC,kBAAoBnrC,KAAKiqC,OAAOvzB,GAAc,SAAK,KACxD1W,KAAKorC,sBAAwBprC,KAAKiqC,OAAOvzB,GAAkB,aAAK,KAGhE1W,KAAKqrC,mBAAqBrrC,KAAKiqC,OAAOvzB,GAAe,UAAK1W,KAAKqsC,MAG1C,KAAjBrsC,KAAK05B,SAEL15B,KAAK4E,KAAKykC,QAAQ5sB,QAGtBzc,KAAK05B,QAAUhjB,EACf1W,KAAKqqC,UAAW,EAGhBrqC,KAAKyqC,eAAetjC,MAAMnH,KAAKgsC,gBAAiBhsC,KAAKsqC,OAGjD5zB,IAAQ1W,KAAKkqC,gBAEblqC,KAAKsqC,UAGTtqC,KAAK4E,KAAKqoC,YAAa,GAW3BC,gBAAiB,WACb,MAAOltC,MAAKiqC,OAAOjqC,KAAK05B,UAO5BkT,aAAc,WAEN5sC,KAAKqqC,YAAa,GAASrqC,KAAK2qC,kBAEhC3qC,KAAKqqC,UAAW,EAChBrqC,KAAK2qC,iBAAiB7kC,KAAK9F,KAAKgsC,gBAAiBhsC,KAAK4E,OAItD5E,KAAKqqC,UAAW,GASxBmB,MAAO,WAECxrC,KAAKqqC,UAAYrqC,KAAKkrC,kBAEtBlrC,KAAKkrC,iBAAiBplC,KAAK9F,KAAKgsC,gBAAiBhsC,KAAK4E,OAS9D8mC,OAAQ,WAEA1rC,KAAKqqC,UAAYrqC,KAAKmrC,mBAEtBnrC,KAAKmrC,kBAAkBrlC,KAAK9F,KAAKgsC,gBAAiBhsC,KAAK4E,OAS/D0hC,OAAQ,WAEAtmC,KAAKqqC,SAEDrqC,KAAK4qC,kBAEL5qC,KAAK4qC,iBAAiB9kC,KAAK9F,KAAKgsC,gBAAiBhsC,KAAK4E,MAKtD5E,KAAKgrC,sBAELhrC,KAAKgrC,qBAAqBllC,KAAK9F,KAAKgsC,gBAAiBhsC,KAAK4E,OAUtEilC,YAAa,WAEL7pC,KAAKqqC,SAEDrqC,KAAKorC,uBAELprC,KAAKorC,sBAAsBtlC,KAAK9F,KAAKgsC,gBAAiBhsC,KAAK4E,MAK3D5E,KAAKgrC,sBAELhrC,KAAKgrC,qBAAqBllC,KAAK9F,KAAKgsC,gBAAiBhsC,KAAK4E,OAWtE8kC,UAAW,SAAUyD,GAEbntC,KAAKqqC,UAAYrqC,KAAK+qC,qBAEtB/qC,KAAK+qC,oBAAoBjlC,KAAK9F,KAAKgsC,gBAAiBhsC,KAAK4E,KAAMuoC,IASvEplC,OAAQ,SAAUlB,EAAOC,GAEjB9G,KAAK8qC,kBAEL9qC,KAAK8qC,iBAAiBhlC,KAAK9F,KAAKgsC,gBAAiBnlC,EAAOC,IAShEE,OAAQ,WAEAhH,KAAKqqC,SAEDrqC,KAAK6qC,mBAED7qC,KAAK4E,KAAKwoC,aAAetZ,EAAO2B,QAEhCz1B,KAAK4E,KAAKwI,QAAQihB,OAClBruB,KAAK4E,KAAKwI,QAAQW,aAAa,EAAG,EAAG,EAAG,EAAG,EAAG,GAC9C/N,KAAK6qC,iBAAiB/kC,KAAK9F,KAAKgsC,gBAAiBhsC,KAAK4E,MACtD5E,KAAK4E,KAAKwI,QAAQshB,WAIlB1uB,KAAK6qC,iBAAiB/kC,KAAK9F,KAAKgsC,gBAAiBhsC,KAAK4E,OAM1D5E,KAAKirC,sBAELjrC,KAAKirC,qBAAqBnlC,KAAK9F,KAAKgsC,gBAAiBhsC,KAAK4E,OAWtErB,QAAS,WAELvD,KAAKusC,oBAELvsC,KAAKgsC,gBAAkB,KAEvBhsC,KAAKyqC,eAAiB,KACtBzqC,KAAKqrC,mBAAqB,KAE1BrrC,KAAK0qC,kBAAoB,KACzB1qC,KAAKirC,qBAAuB,KAC5BjrC,KAAKgrC,qBAAuB,KAC5BhrC,KAAK2qC,iBAAmB,KACxB3qC,KAAK4qC,iBAAmB,KACxB5qC,KAAK6qC,iBAAmB,KACxB7qC,KAAKkrC,iBAAmB,KACxBlrC,KAAKmrC,kBAAoB,KACzBnrC,KAAKorC,sBAAwB,KAE7BprC,KAAK4E,KAAO,KACZ5E,KAAKiqC,UACLjqC,KAAKkqC,cAAgB,KACrBlqC,KAAK05B,QAAU,KAMvB5F,EAAOiW,aAAa1mC,UAAUC,YAAcwwB,EAAOiW,aAOnDnmC,OAAOC,eAAeiwB,EAAOiW,aAAa1mC,UAAW,WAEjDS,IAAK,WAED,MAAO9D,MAAKqqC,YAqBpBvW,EAAO0W,OAAS,aAGhB1W,EAAO0W,OAAOnnC,WAMVgqC,UAAW,KAMXC,YAAa,KAUbC,UAAU,EAMVC,kBAAkB,EAUlBC,QAAQ,EAMRC,gBAAgB,EAQhBC,iBAAkB,SAAUC,EAAUC,GAElC,GAAwB,kBAAbD,GAEP,KAAM,IAAI/kC,OAAM,kFAAkF6yB,QAAQ,OAAQmS,KAc1HC,kBAAmB,SAAUF,EAAUG,EAAQC,EAAiBC,EAAU5V,GAEtE,GACI6V,GADAC,EAAYnuC,KAAKouC,iBAAiBR,EAAUI,EAGhD,IAAkB,KAAdG,GAIA,GAFAD,EAAUluC,KAAKqtC,UAAUc,GAErBD,EAAQH,WAAaA,EAErB,KAAM,IAAIllC,OAAM,kBAAoBklC,EAAS,GAAK,QAAU,eAAkBA,EAAc,OAAL,IAAe,qEAK1GG,GAAU,GAAIpa,GAAOua,cAAcruC,KAAM4tC,EAAUG,EAAQC,EAAiBC,EAAU5V,GACtFr4B,KAAKsuC,YAAYJ,EAQrB,OALIluC,MAAKutC,UAAYvtC,KAAKstC,aAEtBY,EAAQK,QAAQvuC,KAAKstC,aAGlBY,GASXI,YAAa,SAAUJ,GAEdluC,KAAKqtC,YAENrtC,KAAKqtC,aAIT,IAAI17B,GAAI3R,KAAKqtC,UAAU3pC,MAEvB,GACIiO,WAEG3R,KAAKqtC,UAAU17B,IAAMu8B,EAAQM,WAAaxuC,KAAKqtC,UAAU17B,GAAG68B,UAEnExuC,MAAKqtC,UAAUzkC,OAAO+I,EAAI,EAAG,EAAGu8B,IAWpCE,iBAAkB,SAAUR,EAAUxgC,GAElC,IAAKpN,KAAKqtC,UAEN,MAAO,EAGK5jC,UAAZ2D,IAAyBA,EAAU,KAKvC,KAHA,GACIqhC,GADA98B,EAAI3R,KAAKqtC,UAAU3pC,OAGhBiO,KAIH,GAFA88B,EAAMzuC,KAAKqtC,UAAU17B,GAEjB88B,EAAIC,YAAcd,GAAYa,EAAIrhC,UAAYA,EAE9C,MAAOuE,EAIf,OAAO,IAYXg9B,IAAK,SAAUf,EAAUxgC,GAErB,MAAoD,KAA7CpN,KAAKouC,iBAAiBR,EAAUxgC,IA4B3CwzB,IAAK,SAAUgN,EAAUI,EAAiBC,GAEtCjuC,KAAK2tC,iBAAiBC,EAAU,MAEhC,IAAIvV,KAEJ,IAAIE,UAAU70B,OAAS,EAEnB,IAAK,GAAID,GAAI,EAAGA,EAAI80B,UAAU70B,OAAQD,IAElC40B,EAAK9zB,KAAKg0B,UAAU90B,GAI5B,OAAOzD,MAAK8tC,kBAAkBF,GAAU,EAAOI,EAAiBC,EAAU5V,IAiB9EuW,QAAS,SAAUhB,EAAUI,EAAiBC,GAE1CjuC,KAAK2tC,iBAAiBC,EAAU,UAEhC,IAAIvV,KAEJ,IAAIE,UAAU70B,OAAS,EAEnB,IAAK,GAAID,GAAI,EAAGA,EAAI80B,UAAU70B,OAAQD,IAElC40B,EAAK9zB,KAAKg0B,UAAU90B,GAI5B,OAAOzD,MAAK8tC,kBAAkBF,GAAU,EAAMI,EAAiBC,EAAU5V,IAY7E0T,OAAQ,SAAU6B,EAAUxgC,GAExBpN,KAAK2tC,iBAAiBC,EAAU,SAEhC,IAAInqC,GAAIzD,KAAKouC,iBAAiBR,EAAUxgC,EAQxC,OANU,KAAN3J,IAEAzD,KAAKqtC,UAAU5pC,GAAGorC,WAClB7uC,KAAKqtC,UAAUzkC,OAAOnF,EAAG,IAGtBmqC,GAUXf,UAAW,SAAUz/B,GAIjB,GAFgB3D,SAAZ2D,IAAyBA,EAAU,MAElCpN,KAAKqtC,UAAV,CAOA,IAFA,GAAI17B,GAAI3R,KAAKqtC,UAAU3pC,OAEhBiO,KAECvE,EAEIpN,KAAKqtC,UAAU17B,GAAGvE,UAAYA,IAE9BpN,KAAKqtC,UAAU17B,GAAGk9B,WAClB7uC,KAAKqtC,UAAUzkC,OAAO+I,EAAG,IAK7B3R,KAAKqtC,UAAU17B,GAAGk9B,UAIrBzhC,KAEDpN,KAAKqtC,UAAU3pC,OAAS,KAWhCorC,gBAAiB,WAEb,MAAO9uC,MAAKqtC,UAAYrtC,KAAKqtC,UAAU3pC,OAAS,GAYpDqrC,KAAM,WAEF/uC,KAAKwtC,kBAAmB,GAY5Bf,SAAU,WAEN,GAAKzsC,KAAKytC,QAAWztC,KAAKqtC,UAA1B,CAKA,GAEI2B,GAFAC,EAAYxuC,MAAM4C,UAAU0Z,MAAMjX,KAAKyyB,WACvC5mB,EAAI3R,KAAKqtC,UAAU3pC,MAQvB,IALI1D,KAAKutC,WAELvtC,KAAKstC,YAAc2B,GAGlBt9B,EAAL,CAMAq9B,EAAWhvC,KAAKqtC,UAAUtwB,QAC1B/c,KAAKwtC,kBAAmB,CAIxB,GACI77B,WAEGq9B,EAASr9B,IAAM3R,KAAKwtC,kBAAoBwB,EAASr9B,GAAG48B,QAAQU,MAAe,MAStFC,OAAQ,WAEAlvC,KAAKstC,cAELttC,KAAKstC,YAAc,OAa3B6B,QAAS,WAELnvC,KAAK6sC,YAEL7sC,KAAKqtC,UAAY,KACbrtC,KAAKstC,cAELttC,KAAKstC,YAAc,OAW3Bp9B,SAAU,WAEN,MAAO,yBAA0BlQ,KAAKytC,OAAQ,iBAAkBztC,KAAK8uC,kBAAmB,MAehGlrC,OAAOC,eAAeiwB,EAAO0W,OAAOnnC,UAAW,iBAE3CS,IAAK,WACD,GAAIsrC,GAAQpvC,IACZ,OAAOA,MAAK0tC,iBAAmB1tC,KAAK0tC,eAAiB,WACjD,MAAO0B,GAAM3C,SAAStlC,MAAMioC,EAAO7W,gBAM/CzE,EAAO0W,OAAOnnC,UAAUC,YAAcwwB,EAAO0W,OAuB7C1W,EAAOua,cAAgB,SAAUgB,EAAQzB,EAAUG,EAAQC,EAAiBC,EAAU5V,GAMlFr4B,KAAK0uC,UAAYd,EAEbG,IAEA/tC,KAAKsvC,SAAU,GAGI,MAAnBtB,IAEAhuC,KAAKoN,QAAU4gC,GAOnBhuC,KAAKuvC,QAAUF,EAEXpB,IAEAjuC,KAAKwuC,UAAYP,GAGjB5V,GAAQA,EAAK30B,SAEb1D,KAAKsqC,MAAQjS,IAKrBvE,EAAOua,cAAchrC,WAKjB+J,QAAS,KAMTkiC,SAAS,EAMTd,UAAW,EAMXlE,MAAO,KAKPkF,UAAW,EAOX/B,QAAQ,EAORgC,OAAQ,KASRlB,QAAS,SAASU,GAEd,GAAIS,GAAeD,CAqBnB,OAnBIzvC,MAAKytC,QAAYztC,KAAK0uC,YAEtBe,EAASzvC,KAAKyvC,OAASzvC,KAAKyvC,OAAO5wB,OAAOowB,GAAaA,EAEnDjvC,KAAKsqC,QAELmF,EAASA,EAAO5wB,OAAO7e,KAAKsqC,QAGhCoF,EAAgB1vC,KAAK0uC,UAAUvnC,MAAMnH,KAAKoN,QAASqiC,GAEnDzvC,KAAKwvC,YAEDxvC,KAAKsvC,SAELtvC,KAAK2vC,UAIND,GAUXC,OAAQ,WACJ,MAAO3vC,MAAK4vC,UAAY5vC,KAAKuvC,QAAQxD,OAAO/rC,KAAK0uC,UAAW1uC,KAAKoN,SAAW,MAOhFwiC,QAAS,WACL,QAAU5vC,KAAKuvC,WAAavvC,KAAK0uC,WAOrCX,OAAQ,WACJ,MAAO/tC,MAAKsvC,SAOhBO,YAAa,WACT,MAAO7vC,MAAK0uC,WAOhBoB,UAAW,WACP,MAAO9vC,MAAKuvC,SAQhBV,SAAU,iBACC7uC,MAAKuvC,cACLvvC,MAAK0uC,gBACL1uC,MAAKoN,SAOhB8C,SAAU,WACN,MAAO,gCAAkClQ,KAAKsvC,QAAS,aAActvC,KAAK4vC,UAAW,YAAc5vC,KAAKytC,OAAS,MAKzH3Z,EAAOua,cAAchrC,UAAUC,YAAcwwB,EAAOua,cAiBpDva,EAAOic,OAAS,SAAUnrC,EAAM+R,EAAU5B,GAKtC/U,KAAK4E,KAAOA,EAMZ5E,KAAK+W,KAAO+c,EAAOkD,aAQnBh3B,KAAKoE,QAAUpE,MAMfA,KAAKspB,WAMLtpB,KAAK4V,OAAQ,EAMb5V,KAAKosB,QAAU,EAKfpsB,KAAKgwC,UAAY,GAAIlc,GAAOpyB,KAM5B,IAAIwD,GAAI,GAAI+qC,KAoBZ,IAfAjwC,KAAK2W,UAEDtV,YAAc0V,KAAM,KAAM9S,OAASyB,EAAG,IAAKC,EAAG,MAC9CujC,MAAQnyB,KAAM,KAAM9S,MAAO,GAC3BisC,OAASn5B,KAAM,KAAM9S,OAASyB,EAAG,EAAKC,EAAG,IACzCwqC,MAAQp5B,KAAM,MAAO9S,OAASiB,EAAEkrC,cAAgBlrC,EAAEmrC,WAAanrC,EAAEorC,UAAyB,GAAdprC,EAAEqrC,WAAiB,GAAsB,GAAjBrrC,EAAEsrC,aAAoBtrC,EAAEurC,eAC5HC,YAAc35B,KAAM,KAAM9S,MAAO,OACjC0sC,WAAa55B,KAAM,YAAa9S,MAAO,KAAM4T,aAAeS,QAAQ,IACpEs4B,WAAa75B,KAAM,YAAa9S,MAAO,KAAM4T,aAAeS,QAAQ,IACpEu4B,WAAa95B,KAAM,YAAa9S,MAAO,KAAM4T,aAAeS,QAAQ,IACpEw4B,WAAa/5B,KAAM,YAAa9S,MAAO,KAAM4T,aAAeS,QAAQ,KAKpE3B,EAEA,IAAK,GAAID,KAAOC,GAEZ3W,KAAK2W,SAASD,GAAOC,EAASD,EAOtC1W,MAAK+U,YAAcA,GAAe,IAItC+e,EAAOic,OAAO1sC,WAMVyS,KAAM,aAUNi7B,cAAe,SAAUlqC,EAAOC,GAE5B9G,KAAK2W,SAAStV,WAAW4C,MAAMyB,EAAImB,EACnC7G,KAAK2W,SAAStV,WAAW4C,MAAM0B,EAAImB,GASvCw/B,OAAQ,SAAU0K,GAEd,GAAuB,mBAAZA,GACX,CACI,GAAItrC,GAAIsrC,EAAQtrC,EAAI1F,KAAK4E,KAAKiC,MAC1BlB,EAAI,EAAIqrC,EAAQrrC,EAAI3F,KAAK4E,KAAKkC,QAE9BpB,IAAM1F,KAAKgwC,UAAUtqC,GAAKC,IAAM3F,KAAKgwC,UAAUrqC,KAE/C3F,KAAK2W,SAASu5B,MAAMjsC,MAAMyB,EAAIA,EAAEurC,QAAQ,GACxCjxC,KAAK2W,SAASu5B,MAAMjsC,MAAM0B,EAAIA,EAAEsrC,QAAQ,GACxCjxC,KAAKgwC,UAAUhsC,IAAI0B,EAAGC,IAI9B3F,KAAK2W,SAASuyB,KAAKjlC,MAAQjE,KAAK4E,KAAKskC,KAAKgI,uBAQ9C3tC,QAAS,WAELvD,KAAK4E,KAAO,OAMpBkvB,EAAOic,OAAO1sC,UAAUC,YAAcwwB,EAAOic,OAM7CnsC,OAAOC,eAAeiwB,EAAOic,OAAO1sC,UAAW,SAE3CS,IAAK,WACD,MAAO9D,MAAK2W,SAAStV,WAAW4C,MAAMyB,GAG1C1B,IAAK,SAASC,GACVjE,KAAK2W,SAAStV,WAAW4C,MAAMyB,EAAIzB,KAS3CL,OAAOC,eAAeiwB,EAAOic,OAAO1sC,UAAW,UAE3CS,IAAK,WACD,MAAO9D,MAAK2W,SAAStV,WAAW4C,MAAM0B,GAG1C3B,IAAK,SAASC,GACVjE,KAAK2W,SAAStV,WAAW4C,MAAM0B,EAAI1B,KAmB3C6vB,EAAOqd,OAAS,SAAUvsC,EAAMxC,GAEbqH,SAAXrH,IAAwBA,EAAS,MAKrCpC,KAAK4E,KAAOA,EAKZ5E,KAAKoC,OAASA,EAMdpC,KAAKytC,QAAS,EAMdztC,KAAKiC,SAAU,EAMfjC,KAAKoxC,cAAe,EAMpBpxC,KAAKqxC,WAAY,EAMjBrxC,KAAKsxC,eAAgB,EAMrBtxC,KAAKuxC,WAAY,EAMjBvxC,KAAKwxC,eAAgB,GAIzB1d,EAAOqd,OAAO9tC,WAOViD,UAAW,aAQXggC,OAAQ,aAQRt/B,OAAQ,aAQRyqC,WAAY,aAOZluC,QAAS,WAELvD,KAAK4E,KAAO,KACZ5E,KAAKoC,OAAS,KACdpC,KAAKytC,QAAS,EACdztC,KAAKiC,SAAU,IAMvB6xB,EAAOqd,OAAO9tC,UAAUC,YAAcwwB,EAAOqd,OAiB7Crd,EAAO4d,cAAgB,SAAS9sC,GAK5B5E,KAAK4E,KAAOA,EAKZ5E,KAAK2xC,WAML3xC,KAAK4xC,KAAO,EAMZ5xC,KAAK6xC,GAAK,GAId/d,EAAO4d,cAAcruC,WAWjBu9B,IAAK,SAAUkR,GAEX,GAAIzZ,GAAO53B,MAAM4C,UAAUuF,OAAO9C,KAAKyyB,UAAW,GAC9CjnB,GAAS,CA6Cb,OA1CsB,kBAAXwgC,GAEPA,EAAS,GAAIA,GAAO9xC,KAAK4E,KAAM5E,OAI/B8xC,EAAOltC,KAAO5E,KAAK4E,KACnBktC,EAAO1vC,OAASpC,MAIe,kBAAxB8xC,GAAkB,YAEzBA,EAAOV,cAAe,EACtB9/B,GAAS,GAGmB,kBAArBwgC,GAAe,SAEtBA,EAAOT,WAAY,EACnB//B,GAAS,GAGuB,kBAAzBwgC,GAAmB,aAE1BA,EAAOR,eAAgB,EACvBhgC,GAAS,GAGmB,kBAArBwgC,GAAe,SAEtBA,EAAOP,WAAY,EACnBjgC,GAAS,GAGuB,kBAAzBwgC,GAAmB,aAE1BA,EAAON,eAAgB,EACvBlgC,GAAS,GAITA,IAEIwgC,EAAOV,cAAgBU,EAAOT,WAAaS,EAAOR,iBAElDQ,EAAOrE,QAAS,IAGhBqE,EAAOP,WAAaO,EAAON,iBAE3BM,EAAO7vC,SAAU,GAGrBjC,KAAK4xC,KAAO5xC,KAAK2xC,QAAQptC,KAAKutC,GAGA,kBAAnBA,GAAa,MAEpBA,EAAOh8B,KAAK3O,MAAM2qC,EAAQzZ,GAGvByZ,GAIA,MAUf/F,OAAQ,SAAU+F,GAId,IAFA9xC,KAAK6xC,GAAK7xC,KAAK4xC,KAER5xC,KAAK6xC,MAER,GAAI7xC,KAAK2xC,QAAQ3xC,KAAK6xC,MAAQC,EAK1B,MAHAA,GAAOvuC,UACPvD,KAAK2xC,QAAQ/oC,OAAO5I,KAAK6xC,GAAI,OAC7B7xC,MAAK4xC,QAYjB/E,UAAW,WAIP,IAFA7sC,KAAK6xC,GAAK7xC,KAAK4xC,KAER5xC,KAAK6xC,MAER7xC,KAAK2xC,QAAQ3xC,KAAK6xC,IAAItuC,SAG1BvD,MAAK2xC,QAAQjuC,OAAS,EACtB1D,KAAK4xC,KAAO,GAUhBtrC,UAAW,WAIP,IAFAtG,KAAK6xC,GAAK7xC,KAAK4xC,KAER5xC,KAAK6xC,MAEJ7xC,KAAK2xC,QAAQ3xC,KAAK6xC,IAAIpE,QAAUztC,KAAK2xC,QAAQ3xC,KAAK6xC,IAAIT,cAEtDpxC,KAAK2xC,QAAQ3xC,KAAK6xC,IAAIvrC,aAYlCggC,OAAQ,WAIJ,IAFAtmC,KAAK6xC,GAAK7xC,KAAK4xC,KAER5xC,KAAK6xC,MAEJ7xC,KAAK2xC,QAAQ3xC,KAAK6xC,IAAIpE,QAAUztC,KAAK2xC,QAAQ3xC,KAAK6xC,IAAIR,WAEtDrxC,KAAK2xC,QAAQ3xC,KAAK6xC,IAAIvL,UAalCyL,WAAY,WAIR,IAFA/xC,KAAK6xC,GAAK7xC,KAAK4xC,KAER5xC,KAAK6xC,MAEJ7xC,KAAK2xC,QAAQ3xC,KAAK6xC,IAAIpE,QAAUztC,KAAK2xC,QAAQ3xC,KAAK6xC,IAAIP,eAEtDtxC,KAAK2xC,QAAQ3xC,KAAK6xC,IAAIE,cAYlC/qC,OAAQ,WAIJ,IAFAhH,KAAK6xC,GAAK7xC,KAAK4xC,KAER5xC,KAAK6xC,MAEJ7xC,KAAK2xC,QAAQ3xC,KAAK6xC,IAAI5vC,SAAWjC,KAAK2xC,QAAQ3xC,KAAK6xC,IAAIN,WAEvDvxC,KAAK2xC,QAAQ3xC,KAAK6xC,IAAI7qC,UAYlCyqC,WAAY,WAIR,IAFAzxC,KAAK6xC,GAAK7xC,KAAK4xC,KAER5xC,KAAK6xC,MAEJ7xC,KAAK2xC,QAAQ3xC,KAAK6xC,IAAI5vC,SAAWjC,KAAK2xC,QAAQ3xC,KAAK6xC,IAAIL,eAEvDxxC,KAAK2xC,QAAQ3xC,KAAK6xC,IAAIJ,cAWlCluC,QAAS,WAELvD,KAAK6sC,YAEL7sC,KAAK4E,KAAO,OAMpBkvB,EAAO4d,cAAcruC,UAAUC,YAAcwwB,EAAO4d,cAiBpD5d,EAAOlkB,MAAQ,SAAUhL,GAKrB5E,KAAK4E,KAAOA,EAEZ9E,KAAK8P,MAAM9J,KAAK9F,KAAM,GAMtBA,KAAKm7B,KAAO,cAMZn7B,KAAKgyC,yBAA0B,EAM/BhyC,KAAKiyC,QAAS,EAKdjyC,KAAKkyC,qBAAuB,EAM5BlyC,KAAKmyC,WAAa,SAMlBnyC,KAAKoyC,UAAY,KAMjBpyC,KAAKqyC,iBAAmB,EAEpBztC,EAAK0tC,QAELtyC,KAAKuyC,YAAY3tC,EAAK0tC,SAK9Bxe,EAAOlkB,MAAMvM,UAAYO,OAAOwE,OAAOtI,KAAK8P,MAAMvM,WAClDywB,EAAOlkB,MAAMvM,UAAUC,YAAcwwB,EAAOlkB,MAS5CkkB,EAAOlkB,MAAMvM,UAAUkvC,YAAc,SAAUD,GAEvCA,EAAgC,0BAEhCtyC,KAAKgyC,wBAA0BM,EAAgC,yBAG/DA,EAAwB,kBAExBtyC,KAAK6P,gBAAkByiC,EAAwB,kBAUvDxe,EAAOlkB,MAAMvM,UAAUioC,KAAO,WAE1BxX,EAAO0e,IAAIC,UAAUzyC,KAAK4E,KAAKmM,OAAQ/Q,KAAK6a,QAE5CiZ,EAAO4e,OAAOC,cAAc3yC,KAAK4E,KAAKmM,OAAQ,QAC9C+iB,EAAO4e,OAAOE,eAAe5yC,KAAK4E,KAAKmM,OAAQ,QAE/C/Q,KAAK6yC,mBAUT/e,EAAOlkB,MAAMvM,UAAUiD,UAAY,WAE/BtG,KAAKkyC,qBAAuB,CAG5B,KAAK,GAAIzuC,GAAI,EAAGA,EAAIzD,KAAKwD,SAASE,OAAQD,IAEtCzD,KAAKwD,SAASC,GAAG6C,aAUzBwtB,EAAOlkB,MAAMvM,UAAUijC,OAAS,WAI5B,IAFA,GAAI7iC,GAAIzD,KAAKwD,SAASE,OAEfD,KAEHzD,KAAKwD,SAASC,GAAG6iC,UAazBxS,EAAOlkB,MAAMvM,UAAU0uC,WAAa,WAEhC,GAAI/xC,KAAK4E,KAAKE,MAAM8jC,OAAOnkC,OAC3B,CACIzE,KAAK4E,KAAKE,MAAM8jC,OAAOnkC,OAAOstC,aAE9B/xC,KAAK4E,KAAKE,MAAM8jC,OAAOtC,QAIvB,KAFA,GAAI7iC,GAAIzD,KAAKwD,SAASE,OAEfD,KAECzD,KAAKwD,SAASC,KAAOzD,KAAK4E,KAAKE,MAAM8jC,OAAOnkC,QAE5CzE,KAAKwD,SAASC,GAAGsuC,iBAK7B,CACI/xC,KAAK4E,KAAKE,MAAM8jC,OAAOtC,QAIvB,KAFA,GAAI7iC,GAAIzD,KAAKwD,SAASE,OAEfD,KAEHzD,KAAKwD,SAASC,GAAGsuC,eAY7Bje,EAAOlkB,MAAMvM,UAAUsB,gBAAkB,WAErC3E,KAAKsC,WAAa,CAElB,KAAK,GAAImB,GAAI,EAAGA,EAAIzD,KAAKwD,SAASE,OAAQD,IAEtCzD,KAAKwD,SAASC,GAAGkB,mBAWzBmvB,EAAOlkB,MAAMvM,UAAUwvC,gBAAkB,WAIjC7yC,KAAKmyC,WAFqB1oC,SAA1B+G,SAASsiC,aAES,yBAEUrpC,SAAvB+G,SAASuiC,UAEI,sBAEStpC,SAAtB+G,SAASwiC,SAEI,qBAEOvpC,SAApB+G,SAASyiC,OAEI,mBAIA,IAGtB,IAAI7D,GAAQpvC,IAEZA,MAAKoyC,UAAY,SAAUc,GACvB,MAAO9D,GAAM+D,iBAAiBD,IAI9BlzC,KAAKmyC,YAEL3hC,SAAS4iC,iBAAiBpzC,KAAKmyC,WAAYnyC,KAAKoyC,WAAW,GAG/D39B,OAAO4+B,OAASrzC,KAAKoyC,UACrB39B,OAAO6+B,QAAUtzC,KAAKoyC,UAEtB39B,OAAO8+B,WAAavzC,KAAKoyC,UACzB39B,OAAO++B,WAAaxzC,KAAKoyC,UAErBpyC,KAAK4E,KAAK6uC,OAAOC,cAEjBC,SAASC,IAAIC,YAAYT,iBAAiB,WACtCtf,EAAOlkB,MAAMvM,UAAU8vC,iBAAiBrtC,KAAKspC,GAASr4B,KAAM,YAGhE48B,SAASC,IAAIE,YAAYV,iBAAiB,WACtCtf,EAAOlkB,MAAMvM,UAAU8vC,iBAAiBrtC,KAAKspC,GAASr4B,KAAM,eAYxE+c,EAAOlkB,MAAMvM,UAAU8vC,iBAAmB,SAAUD,GAEhD,MAAmB,aAAfA,EAAMn8B,MAAsC,SAAfm8B,EAAMn8B,MAAkC,aAAfm8B,EAAMn8B,MAAsC,UAAfm8B,EAAMn8B,UAEtE,aAAfm8B,EAAMn8B,MAAsC,SAAfm8B,EAAMn8B,KAEnC/W,KAAK4E,KAAKmvC,UAAUb,IAEA,aAAfA,EAAMn8B,MAAsC,UAAfm8B,EAAMn8B,OAExC/W,KAAK4E,KAAKovC,UAAUd,SAMxBlzC,KAAKgyC,0BAKLxhC,SAASyiC,QAAUziC,SAASuiC,WAAaviC,SAASwiC,UAAYxiC,SAASsiC,cAA+B,UAAfI,EAAMn8B,KAE7F/W,KAAK4E,KAAKqvC,WAAWf,GAIrBlzC,KAAK4E,KAAKsvC,YAAYhB,MAe9Bpf,EAAOlkB,MAAMvM,UAAUyM,mBAAqB,SAASD,GAEjD,GAAIS,GAAMwjB,EAAOqgB,MAAMC,aAAavkC,EACpC7P,MAAKqyC,iBAAmBve,EAAOqgB,MAAME,SAAS/jC,EAAI+N,EAAG/N,EAAIgO,EAAGhO,EAAItL,GAEhEhF,KAAK+P,sBAAyBO,EAAI+N,EAAI,IAAK/N,EAAIgO,EAAI,IAAKhO,EAAItL,EAAI,KAChEhF,KAAKoQ,sBAAwB0jB,EAAOqgB,MAAMG,YAAYhkC,EAAI+N,EAAG/N,EAAIgO,EAAGhO,EAAItL,EAAG,IAAK,MASpF8uB,EAAOlkB,MAAMvM,UAAUE,QAAW,WAE1BvD,KAAKmyC,YAEL3hC,SAAS+jC,oBAAoBv0C,KAAKmyC,WAAYnyC,KAAKoyC,WAAW,GAGlE39B,OAAO8+B,WAAa,KACpB9+B,OAAO++B,WAAa,KAEpB/+B,OAAO4+B,OAAS,KAChB5+B,OAAO6+B,QAAU,MAQrB1vC,OAAOC,eAAeiwB,EAAOlkB,MAAMvM,UAAW,mBAE1CS,IAAK,WAED,MAAO9D,MAAKqyC,kBAIhBruC,IAAK,SAAUuW,GAENva,KAAK4E,KAAK1D,aAEXlB,KAAK8P,mBAAmByK,MAapC3W,OAAOC,eAAeiwB,EAAOlkB,MAAMvM,UAAW,YAE1CS,IAAK,WAED,MAAOhE,MAAK2N,WAAW4f,UAAYvtB,KAAK2N,WAAWC,QAIvD1J,IAAK,SAAUC,GAIPnE,KAAK2N,WAAW4f,QAFhBppB,EAE0BnE,KAAK2N,WAAWC,OAIhB5N,KAAK2N,WAAWmX,WAgCtDkP,EAAO0gB,MAAQ,SAAU5vC,EAAMxC,EAAQ+4B,EAAMsZ,EAAYC,EAAYC,GAE9ClrC,SAAfgrC,IAA4BA,GAAa,GAC1BhrC,SAAfirC,IAA4BA,GAAa,GACrBjrC,SAApBkrC,IAAiCA,EAAkB7gB,EAAO8gB,QAAQC,QAOtE70C,KAAK4E,KAAOA,EAEG6E,SAAXrH,IAEAA,EAASwC,EAAKE,OAOlB9E,KAAKm7B,KAAOA,GAAQ,QAOpBn7B,KAAKsZ,EAAI,EAETxZ,KAAKqI,uBAAuBrC,KAAK9F,MAE7By0C,GAEAz0C,KAAK4E,KAAKvC,MAAMkG,SAASvI,MACzBA,KAAKsZ,EAAItZ,KAAK4E,KAAKvC,MAAMmB,SAASE,QAI9BtB,IAEAA,EAAOmG,SAASvI,MAChBA,KAAKsZ,EAAIlX,EAAOoB,SAASE,QASjC1D,KAAK+W,KAAO+c,EAAO0C,MAMnBx2B,KAAK80C,YAAchhB,EAAO0C,MAO1Bx2B,KAAK+0C,OAAQ,EAOb/0C,KAAKiyC,QAAS,EAOdjyC,KAAKg1C,eAAgB,EAYrBh1C,KAAKi1C,gBAAiB,EAWtBj1C,KAAKk1C,UAAYphB,EAAOnsB,OAQxB3H,KAAKm1C,OAAS,KAQdn1C,KAAK00C,WAAaA,EASlB10C,KAAKo1C,iBAAkB,EAQvBp1C,KAAK20C,gBAAkBA,EAkBvB30C,KAAKq1C,qBAAuB,KAM5Br1C,KAAKs1C,UAAY,GAAIxhB,GAAO0W,OAM5BxqC,KAAKu1C,YAAc,EAUnBv1C,KAAKw1C,eAAgB,EAOrBx1C,KAAKy1C,aAAe,GAAI3hB,GAAOpyB,MAa/B1B,KAAK01C,QAOL11C,KAAK21C,cAAgB,KAIzB7hB,EAAO0gB,MAAMnxC,UAAYO,OAAOwE,OAAOtI,KAAKqI,uBAAuB9E,WACnEywB,EAAO0gB,MAAMnxC,UAAUC,YAAcwwB,EAAO0gB,MAO5C1gB,EAAO0gB,MAAMoB,YAAc,EAO3B9hB,EAAO0gB,MAAMqB,aAAe,EAO5B/hB,EAAO0gB,MAAMsB,aAAe,EAO5BhiB,EAAO0gB,MAAMuB,eAAiB,GAO9BjiB,EAAO0gB,MAAMwB,gBAAkB,EAgB/BliB,EAAO0gB,MAAMnxC,UAAUu9B,IAAM,SAAUp4B,EAAOytC,GA8B1C,MA5BexsC,UAAXwsC,IAAwBA,GAAS,GAEjCztC,EAAMpG,SAAWpC,OAEjBA,KAAKuI,SAASC,GAEdA,EAAM8Q,EAAItZ,KAAKwD,SAASE,OAEpB1D,KAAK00C,YAA6B,OAAflsC,EAAM0tC,KAEzBl2C,KAAK4E,KAAKykC,QAAQzlB,OAAOpb,EAAOxI,KAAK20C,iBAEhCnsC,EAAM0tC,MAEXl2C,KAAKm2C,UAAU3tC,IAGdytC,GAAUztC,EAAM4tC,QAEjB5tC,EAAM4tC,OAAOC,wBAAwB7tC,EAAOxI,MAG5B,OAAhBA,KAAKm1C,SAELn1C,KAAKm1C,OAAS3sC,IAIfA,GAYXsrB,EAAO0gB,MAAMnxC,UAAU8yC,UAAY,SAAU3tC,GAEzC,GAAIA,EAAMpG,SAAWpC,KACrB,CACI,GAAI0I,GAAQ1I,KAAK01C,KAAKvsC,QAAQX,EAE9B,IAAc,KAAVE,EAGA,MADA1I,MAAK01C,KAAKnxC,KAAKiE,IACR,EAIf,OAAO,GAYXsrB,EAAO0gB,MAAMnxC,UAAUizC,eAAiB,SAAU9tC,GAE9C,GAAIA,EACJ,CACI,GAAIE,GAAQ1I,KAAK01C,KAAKvsC,QAAQX,EAE9B,IAAc,KAAVE,EAGA,MADA1I,MAAK01C,KAAK9sC,OAAOF,EAAO,IACjB,EAIf,OAAO,GAiBXorB,EAAO0gB,MAAMnxC,UAAUkzC,YAAc,SAAU/yC,EAAUyyC,GAErD,GAAIzyC,YAAoBswB,GAAO0gB,MAE3BhxC,EAASgzC,QAAQx2C,KAAMi2C,OAEtB,IAAIx1C,MAAMyT,QAAQ1Q,GAEnB,IAAK,GAAIC,GAAI,EAAGA,EAAID,EAASE,OAAQD,IAEjCzD,KAAK4gC,IAAIp9B,EAASC,GAAIwyC,EAI9B,OAAOzyC,IAeXswB,EAAO0gB,MAAMnxC,UAAUozC,MAAQ,SAAUjuC,EAAOE,EAAOutC,GA8BnD,MA5BexsC,UAAXwsC,IAAwBA,GAAS,GAEjCztC,EAAMpG,SAAWpC,OAEjBA,KAAKyI,WAAWD,EAAOE,GAEvB1I,KAAK02C,UAED12C,KAAK00C,YAA6B,OAAflsC,EAAM0tC,KAEzBl2C,KAAK4E,KAAKykC,QAAQzlB,OAAOpb,EAAOxI,KAAK20C,iBAEhCnsC,EAAM0tC,MAEXl2C,KAAKm2C,UAAU3tC,IAGdytC,GAAUztC,EAAM4tC,QAEjB5tC,EAAM4tC,OAAOC,wBAAwB7tC,EAAOxI,MAG5B,OAAhBA,KAAKm1C,SAELn1C,KAAKm1C,OAAS3sC,IAIfA,GAWXsrB,EAAO0gB,MAAMnxC,UAAUszC,MAAQ,SAAUjuC,GAErC,MAAY,GAARA,GAAaA,GAAS1I,KAAKwD,SAASE,OAE7B,GAIA1D,KAAKsJ,WAAWZ,IAkB/BorB,EAAO0gB,MAAMnxC,UAAU+E,OAAS,SAAU1C,EAAGC,EAAG+Q,EAAKvK,EAAO8lC,GAEzCxoC,SAAXwoC,IAAwBA,GAAS,EAErC,IAAIzpC,GAAQ,GAAIxI,MAAKk1C,UAAUl1C,KAAK4E,KAAMc,EAAGC,EAAG+Q,EAAKvK,EAyBrD,OAvBA3D,GAAMypC,OAASA,EACfzpC,EAAMvG,QAAUgwC,EAChBzpC,EAAMusC,MAAQ9C,EAEdjyC,KAAKuI,SAASC,GAEdA,EAAM8Q,EAAItZ,KAAKwD,SAASE,OAEpB1D,KAAK00C,YAEL10C,KAAK4E,KAAKykC,QAAQzlB,OAAOpb,EAAOxI,KAAK20C,gBAAiB30C,KAAKo1C,iBAG3D5sC,EAAM4tC,QAEN5tC,EAAM4tC,OAAOC,wBAAwB7tC,EAAOxI,MAG5B,OAAhBA,KAAKm1C,SAELn1C,KAAKm1C,OAAS3sC,GAGXA,GAkBXsrB,EAAO0gB,MAAMnxC,UAAUuzC,eAAiB,SAAUC,EAAUngC,EAAKvK,EAAO8lC,GAErDxoC,SAAXwoC,IAAwBA,GAAS,EAErC,KAAK,GAAIxuC,GAAI,EAAOozC,EAAJpzC,EAAcA,IAE1BzD,KAAKoI,OAAO,EAAG,EAAGsO,EAAKvK,EAAO8lC,IAatCne,EAAO0gB,MAAMnxC,UAAUqzC,QAAU,WAI7B,IAFA,GAAIjzC,GAAIzD,KAAKwD,SAASE,OAEfD,KAEHzD,KAAKwD,SAASC,GAAG6V,EAAI7V,GAc7BqwB,EAAO0gB,MAAMnxC,UAAUyzC,YAAc,SAAUpuC,GAS3C,MAPce,UAAVf,IAAuBA,EAAQ,GAE/BA,EAAQ1I,KAAKwD,SAASE,OAAS,IAE/BgF,EAAQ,GAGR1I,KAAKm1C,QAELn1C,KAAKu1C,YAAc7sC,EACnB1I,KAAKm1C,OAASn1C,KAAKwD,SAASxD,KAAKu1C,aAC1Bv1C,KAAKm1C,QAJhB,QAiBJrhB,EAAO0gB,MAAMnxC,UAAU0zC,KAAO,WAE1B,MAAI/2C,MAAKm1C,QAGDn1C,KAAKu1C,aAAev1C,KAAKwD,SAASE,OAAS,EAE3C1D,KAAKu1C,YAAc,EAInBv1C,KAAKu1C,cAGTv1C,KAAKm1C,OAASn1C,KAAKwD,SAASxD,KAAKu1C,aAE1Bv1C,KAAKm1C,QAdhB,QA2BJrhB,EAAO0gB,MAAMnxC,UAAU2zC,SAAW,WAE9B,MAAIh3C,MAAKm1C,QAGoB,IAArBn1C,KAAKu1C,YAELv1C,KAAKu1C,YAAcv1C,KAAKwD,SAASE,OAAS,EAI1C1D,KAAKu1C,cAGTv1C,KAAKm1C,OAASn1C,KAAKwD,SAASxD,KAAKu1C,aAE1Bv1C,KAAKm1C,QAdhB,QA4BJrhB,EAAO0gB,MAAMnxC,UAAU4zC,KAAO,SAAUC,EAAQnuC,GAE5C/I,KAAK8I,aAAaouC,EAAQnuC,GAC1B/I,KAAK02C,WAWT5iB,EAAO0gB,MAAMnxC,UAAU8zC,WAAa,SAAU3uC,GAQ1C,MANIA,GAAMpG,SAAWpC,MAAQA,KAAKo3C,SAAS5uC,GAASxI,KAAKwD,SAASE,SAE9D1D,KAAK+rC,OAAOvjC,GAAO,GAAO,GAC1BxI,KAAK4gC,IAAIp4B,GAAO,IAGbA,GAWXsrB,EAAO0gB,MAAMnxC,UAAUg0C,WAAa,SAAU7uC,GAQ1C,MANIA,GAAMpG,SAAWpC,MAAQA,KAAKo3C,SAAS5uC,GAAS,IAEhDxI,KAAK+rC,OAAOvjC,GAAO,GAAO,GAC1BxI,KAAKy2C,MAAMjuC,EAAO,GAAG,IAGlBA,GAWXsrB,EAAO0gB,MAAMnxC,UAAUi0C,OAAS,SAAU9uC,GAEtC,GAAIA,EAAMpG,SAAWpC,MAAQA,KAAKo3C,SAAS5uC,GAASxI,KAAKwD,SAASE,OAAS,EAC3E,CACI,GAAIqB,GAAI/E,KAAKo3C,SAAS5uC,GAClBxD,EAAIhF,KAAK22C,MAAM5xC,EAAI,EAEnBC,IAEAhF,KAAKi3C,KAAKzuC,EAAOxD,GAIzB,MAAOwD,IAWXsrB,EAAO0gB,MAAMnxC,UAAUk0C,SAAW,SAAU/uC,GAExC,GAAIA,EAAMpG,SAAWpC,MAAQA,KAAKo3C,SAAS5uC,GAAS,EACpD,CACI,GAAIzD,GAAI/E,KAAKo3C,SAAS5uC,GAClBxD,EAAIhF,KAAK22C,MAAM5xC,EAAI,EAEnBC,IAEAhF,KAAKi3C,KAAKzuC,EAAOxD,GAIzB,MAAOwD,IAYXsrB,EAAO0gB,MAAMnxC,UAAUm0C,GAAK,SAAU9uC,EAAOhD,EAAGC,GAE5C,MAAY,GAAR+C,GAAaA,EAAQ1I,KAAKwD,SAASE,OAE5B,IAIP1D,KAAKsJ,WAAWZ,GAAOhD,EAAIA,OAC3B1F,KAAKsJ,WAAWZ,GAAO/C,EAAIA,KAYnCmuB,EAAO0gB,MAAMnxC,UAAUujB,QAAU,WAE7B5mB,KAAKwD,SAASojB,UACd5mB,KAAK02C,WAWT5iB,EAAO0gB,MAAMnxC,UAAU+zC,SAAW,SAAU5uC,GAExC,MAAOxI,MAAKwD,SAAS2F,QAAQX,IAYjCsrB,EAAO0gB,MAAMnxC,UAAUq4B,QAAU,SAAU+b,EAAUC,GAEjD,GAAIhvC,GAAQ1I,KAAKo3C,SAASK,EAE1B,OAAc,KAAV/uC,GAEIgvC,EAASt1C,SAELs1C,EAASt1C,iBAAkB0xB,GAAO0gB,MAElCkD,EAASt1C,OAAO2pC,OAAO2L,GAIvBA,EAASt1C,OAAOuG,YAAY+uC,IAIpC13C,KAAK+rC,OAAO0L,GAEZz3C,KAAKy2C,MAAMiB,EAAUhvC,GAEd+uC,GAlBX,QAiCJ3jB,EAAO0gB,MAAMnxC,UAAUs0C,YAAc,SAAUnvC,EAAOkO,GAElD,GAAI6a,GAAM7a,EAAIhT,MAEd,OAAY,KAAR6tB,GAAa7a,EAAI,IAAMlO,IAEhB,EAEM,IAAR+oB,GAAa7a,EAAI,IAAMlO,IAASkO,EAAI,IAAMlO,GAAMkO,EAAI,KAElD,EAEM,IAAR6a,GAAa7a,EAAI,IAAMlO,IAASkO,EAAI,IAAMlO,GAAMkO,EAAI,KAAOA,EAAI,IAAMlO,GAAMkO,EAAI,IAAIA,EAAI,KAErF,EAEM,IAAR6a,GAAa7a,EAAI,IAAMlO,IAASkO,EAAI,IAAMlO,GAAMkO,EAAI,KAAOA,EAAI,IAAMlO,GAAMkO,EAAI,IAAIA,EAAI,KAAOA,EAAI,IAAMlO,GAAMkO,EAAI,IAAIA,EAAI,IAAIA,EAAI,KAEhI,GAGJ,GAsBXod,EAAO0gB,MAAMnxC,UAAUs2B,YAAc,SAAUnxB,EAAOkO,EAAKzS,EAAO2zC,EAAWC,GAgBzE,GAdcpuC,SAAVouC,IAAuBA,GAAQ,GAEnCD,EAAYA,GAAa,GAYpB53C,KAAK23C,YAAYnvC,EAAOkO,MAAUmhC,GAASD,EAAY,GAExD,OAAO,CAGX,IAAIrmB,GAAM7a,EAAIhT,MAmCd,OAjCY,KAAR6tB,EAEkB,IAAdqmB,EAAmBpvC,EAAMkO,EAAI,IAAMzS,EACjB,GAAb2zC,EAAkBpvC,EAAMkO,EAAI,KAAOzS,EACtB,GAAb2zC,EAAkBpvC,EAAMkO,EAAI,KAAOzS,EACtB,GAAb2zC,EAAkBpvC,EAAMkO,EAAI,KAAOzS,EACtB,GAAb2zC,IAAkBpvC,EAAMkO,EAAI,KAAOzS,GAE/B,IAARstB,EAEa,IAAdqmB,EAAmBpvC,EAAMkO,EAAI,IAAIA,EAAI,IAAMzS,EACzB,GAAb2zC,EAAkBpvC,EAAMkO,EAAI,IAAIA,EAAI,KAAOzS,EAC9B,GAAb2zC,EAAkBpvC,EAAMkO,EAAI,IAAIA,EAAI,KAAOzS,EAC9B,GAAb2zC,EAAkBpvC,EAAMkO,EAAI,IAAIA,EAAI,KAAOzS,EAC9B,GAAb2zC,IAAkBpvC,EAAMkO,EAAI,IAAIA,EAAI,KAAOzS,GAEvC,IAARstB,EAEa,IAAdqmB,EAAmBpvC,EAAMkO,EAAI,IAAIA,EAAI,IAAIA,EAAI,IAAMzS,EACjC,GAAb2zC,EAAkBpvC,EAAMkO,EAAI,IAAIA,EAAI,IAAIA,EAAI,KAAOzS,EACtC,GAAb2zC,EAAkBpvC,EAAMkO,EAAI,IAAIA,EAAI,IAAIA,EAAI,KAAOzS,EACtC,GAAb2zC,EAAkBpvC,EAAMkO,EAAI,IAAIA,EAAI,IAAIA,EAAI,KAAOzS,EACtC,GAAb2zC,IAAkBpvC,EAAMkO,EAAI,IAAIA,EAAI,IAAIA,EAAI,KAAOzS,GAE/C,IAARstB,IAEa,IAAdqmB,EAAmBpvC,EAAMkO,EAAI,IAAIA,EAAI,IAAIA,EAAI,IAAIA,EAAI,IAAMzS,EACzC,GAAb2zC,EAAkBpvC,EAAMkO,EAAI,IAAIA,EAAI,IAAIA,EAAI,IAAIA,EAAI,KAAOzS,EAC9C,GAAb2zC,EAAkBpvC,EAAMkO,EAAI,IAAIA,EAAI,IAAIA,EAAI,IAAIA,EAAI,KAAOzS,EAC9C,GAAb2zC,EAAkBpvC,EAAMkO,EAAI,IAAIA,EAAI,IAAIA,EAAI,IAAIA,EAAI,KAAOzS,EAC9C,GAAb2zC,IAAkBpvC,EAAMkO,EAAI,IAAIA,EAAI,IAAIA,EAAI,IAAIA,EAAI,KAAOzS,KAGjE,GAcX6vB,EAAO0gB,MAAMnxC,UAAUy0C,cAAgB,SAAUtvC,EAAOkO,EAAKzS,EAAO4zC,GAKhE,MAHcpuC,UAAVouC,IAAuBA,GAAQ,IAG9B/jB,EAAOoF,MAAMC,YAAY3wB,EAAOkO,IAAQmhC,GAElC,EAGP/jB,EAAOoF,MAAMC,YAAY3wB,EAAOkO,KAASzS,GAElC,GAGJ,GAmBX6vB,EAAO0gB,MAAMnxC,UAAUW,IAAM,SAAUwE,EAAOkO,EAAKzS,EAAO8zC,EAAYC,EAAcJ,EAAWC,GAS3F,MAPcpuC,UAAVouC,IAAuBA,GAAQ,GAEnCnhC,EAAMA,EAAI6iB,MAAM,KAEG9vB,SAAfsuC,IAA4BA,GAAa,GACxBtuC,SAAjBuuC,IAA8BA,GAAe,IAE5CD,KAAe,GAAUA,GAAcvvC,EAAMusC,SAAYiD,KAAiB,GAAUA,GAAgBxvC,EAAMvG,SAEpGjC,KAAK25B,YAAYnxB,EAAOkO,EAAKzS,EAAO2zC,EAAWC,GAF1D,QAuBJ/jB,EAAO0gB,MAAMnxC,UAAU40C,OAAS,SAAUvhC,EAAKzS,EAAO8zC,EAAYC,EAAcJ,EAAWC,GAEpEpuC,SAAfsuC,IAA4BA,GAAa,GACxBtuC,SAAjBuuC,IAA8BA,GAAe,GACnCvuC,SAAVouC,IAAuBA,GAAQ,GAEnCnhC,EAAMA,EAAI6iB,MAAM,KAChBqe,EAAYA,GAAa,CAEzB,KAAK,GAAIn0C,GAAI,EAAGA,EAAIzD,KAAKwD,SAASE,OAAQD,MAEhCs0C,GAAeA,GAAc/3C,KAAKwD,SAASC,GAAGsxC,UAAaiD,GAAiBA,GAAgBh4C,KAAKwD,SAASC,GAAGxB,UAE/GjC,KAAK25B,YAAY35B,KAAKwD,SAASC,GAAIiT,EAAKzS,EAAO2zC,EAAWC,IAsBtE/jB,EAAO0gB,MAAMnxC,UAAU60C,eAAiB,SAAUxhC,EAAKzS,EAAO8zC,EAAYC,EAAcJ,EAAWC,GAE5EpuC,SAAfsuC,IAA4BA,GAAa,GACxBtuC,SAAjBuuC,IAA8BA,GAAe,GACnCvuC,SAAVouC,IAAuBA,GAAQ,GAEnCD,EAAYA,GAAa,CAEzB,KAAK,GAAIn0C,GAAI,EAAGA,EAAIzD,KAAKwD,SAASE,OAAQD,MAEhCs0C,GAAeA,GAAc/3C,KAAKwD,SAASC,GAAGsxC,UAAaiD,GAAiBA,GAAgBh4C,KAAKwD,SAASC,GAAGxB,WAE3GjC,KAAKwD,SAASC,YAAcqwB,GAAO0gB,MAEnCx0C,KAAKwD,SAASC,GAAGy0C,eAAexhC,EAAKzS,EAAO8zC,EAAYC,EAAcJ,EAAWC,GAIjF73C,KAAK25B,YAAY35B,KAAKwD,SAASC,GAAIiT,EAAI6iB,MAAM,KAAMt1B,EAAO2zC,EAAWC,KAmBrF/jB,EAAO0gB,MAAMnxC,UAAU80C,SAAW,SAAUzhC,EAAKzS,EAAO8zC,EAAYC,EAAcH,GAE3DpuC,SAAfsuC,IAA4BA,GAAa,GACxBtuC,SAAjBuuC,IAA8BA,GAAe,GACnCvuC,SAAVouC,IAAuBA,GAAQ,EAEnC,KAAK,GAAIp0C,GAAI,EAAGA,EAAIzD,KAAKwD,SAASE,OAAQD,IAEtC,KAAMs0C,GAAeA,GAAc/3C,KAAKwD,SAASC,GAAGsxC,UAAaiD,GAAiBA,GAAgBh4C,KAAKwD,SAASC,GAAGxB,WAE1GjC,KAAK83C,cAAc93C,KAAKwD,SAASC,GAAIiT,EAAKzS,EAAO4zC,GAElD,OAAO,CAKnB,QAAO,GAeX/jB,EAAO0gB,MAAMnxC,UAAU+0C,OAAS,SAAUC,EAAUC,EAAQP,EAAYC,GAEpEh4C,KAAKi4C,OAAOI,EAAUC,EAAQP,EAAYC,EAAc,IAe5DlkB,EAAO0gB,MAAMnxC,UAAUk1C,OAAS,SAAUF,EAAUC,EAAQP,EAAYC,GAEpEh4C,KAAKi4C,OAAOI,EAAUC,EAAQP,EAAYC,EAAc,IAe5DlkB,EAAO0gB,MAAMnxC,UAAUm1C,YAAc,SAAUH,EAAUC,EAAQP,EAAYC,GAEzEh4C,KAAKi4C,OAAOI,EAAUC,EAAQP,EAAYC,EAAc,IAe5DlkB,EAAO0gB,MAAMnxC,UAAUo1C,UAAY,SAAUJ,EAAUC,EAAQP,EAAYC,GAEvEh4C,KAAKi4C,OAAOI,EAAUC,EAAQP,EAAYC,EAAc,IAc5DlkB,EAAO0gB,MAAMnxC,UAAUq1C,cAAgB,SAAUC,EAAUC,GAEvD,GAAIvgB,EAEJ,IAAIE,UAAU70B,OAAS,EACvB,CACI20B,IAEA,KAAK,GAAI50B,GAAI,EAAGA,EAAI80B,UAAU70B,OAAQD,IAElC40B,EAAK9zB,KAAKg0B,UAAU90B,IAI5B,IAAK,GAAIA,GAAI,EAAGA,EAAIzD,KAAKwD,SAASE,OAAQD,IAElCzD,KAAKwD,SAASC,GAAGwuC,SAAW2G,GAAe54C,KAAKwD,SAASC,GAAGk1C,IAE5D34C,KAAKwD,SAASC,GAAGk1C,GAAUxxC,MAAMnH,KAAKwD,SAASC,GAAI40B,IAe/DvE,EAAO0gB,MAAMnxC,UAAUw1C,kBAAoB,SAAUrwC,EAAOmwC,EAAUj1C,GAIlE,GAAc,GAAVA,GAEA,GAAI8E,EAAMmwC,EAAS,IAEf,MAAOnwC,GAAMmwC,EAAS,QAGzB,IAAc,GAAVj1C,GAEL,GAAI8E,EAAMmwC,EAAS,IAAIA,EAAS,IAE5B,MAAOnwC,GAAMmwC,EAAS,IAAIA,EAAS,QAGtC,IAAc,GAAVj1C,GAEL,GAAI8E,EAAMmwC,EAAS,IAAIA,EAAS,IAAIA,EAAS,IAEzC,MAAOnwC,GAAMmwC,EAAS,IAAIA,EAAS,IAAIA,EAAS,QAGnD,IAAc,GAAVj1C,GAEL,GAAI8E,EAAMmwC,EAAS,IAAIA,EAAS,IAAIA,EAAS,IAAIA,EAAS,IAEtD,MAAOnwC,GAAMmwC,EAAS,IAAIA,EAAS,IAAIA,EAAS,IAAIA,EAAS,QAKjE,IAAInwC,EAAMmwC,GAEN,MAAOnwC,GAAMmwC,EAIrB,QAAO,GAeX7kB,EAAO0gB,MAAMnxC,UAAUy1C,QAAU,SAAUC,EAAQ3rC,GAE/C,GAAe3D,SAAXsvC,EAAJ,CAMAA,EAASA,EAAOxf,MAAM,IAEtB,IAAIyf,GAAeD,EAAOr1C,MAE1B,IAAgB+F,SAAZ2D,GAAqC,OAAZA,GAAgC,KAAZA,EAE7CA,EAAU,SAKV,IAAuB,gBAAZA,GACX,CACIA,EAAUA,EAAQmsB,MAAM,IACxB,IAAI0f,GAAgB7rC,EAAQ1J,OAIpC,GAAI20B,EAEJ,IAAIE,UAAU70B,OAAS,EACvB,CACI20B,IAEA,KAAK,GAAI50B,GAAI,EAAGA,EAAI80B,UAAU70B,OAAQD,IAElC40B,EAAK9zB,KAAKg0B,UAAU90B,IAO5B,IAAK,GAHDk1C,GAAW,KACX3M,EAAkB,KAEbvoC,EAAI,EAAGA,EAAIzD,KAAKwD,SAASE,OAAQD,IAEtCk1C,EAAW34C,KAAK64C,kBAAkB74C,KAAKwD,SAASC,GAAIs1C,EAAQC,GAExD5rC,GAAWurC,GAEX3M,EAAkBhsC,KAAK64C,kBAAkB74C,KAAKwD,SAASC,GAAI2J,EAAS6rC,GAEhEN,GAEAA,EAASxxC,MAAM6kC,EAAiB3T,IAG/BsgB,GAELA,EAASxxC,MAAMnH,KAAKwD,SAASC,GAAI40B,KAW7CvE,EAAO0gB,MAAMnxC,UAAUiD,UAAY,WAE/B,GAAItG,KAAKi1C,eAGL,MADAj1C,MAAKuD,WACE,CAGX,KAAKvD,KAAKiyC,SAAWjyC,KAAKoC,OAAO6vC,OAG7B,MADAjyC,MAAKk5C,cAAgB,IACd,CAKX,KAFA,GAAIz1C,GAAIzD,KAAKwD,SAASE,OAEfD,KAEHzD,KAAKwD,SAASC,GAAG6C,WAGrB,QAAO,GASXwtB,EAAO0gB,MAAMnxC,UAAUijC,OAAS,WAI5B,IAFA,GAAI7iC,GAAIzD,KAAKwD,SAASE,OAEfD,KAEHzD,KAAKwD,SAASC,GAAG6iC,UAUzBxS,EAAO0gB,MAAMnxC,UAAU0uC,WAAa,WAG5B/xC,KAAKw1C,gBAELx1C,KAAK0F,EAAI1F,KAAK4E,KAAKgkC,OAAO3nC,KAAKyE,EAAI1F,KAAKy1C,aAAa/vC,EACrD1F,KAAK2F,EAAI3F,KAAK4E,KAAKgkC,OAAO3nC,KAAK0E,EAAI3F,KAAKy1C,aAAa9vC,EAKzD,KAFA,GAAIlC,GAAIzD,KAAKwD,SAASE,OAEfD,KAEHzD,KAAKwD,SAASC,GAAGsuC,cAuBzBje,EAAO0gB,MAAMnxC,UAAU6oB,OAAS,SAAUitB,EAAWC,GAMjD,IAJA,GAAI1wC,GAAQ,GACRhF,EAAS1D,KAAKwD,SAASE,OACvBi8B,OAEKj3B,EAAQhF,GACjB,CACI,GAAI8E,GAAQxI,KAAKwD,SAASkF,KAErB0wC,GAAgBA,GAAe5wC,EAAMypC,SAElCkH,EAAU3wC,EAAOE,EAAO1I,KAAKwD,WAE7Bm8B,EAAQp7B,KAAKiE,GAKzB,MAAO,IAAIsrB,GAAOulB,SAAS1Z,IAqB/B7L,EAAO0gB,MAAMnxC,UAAUu1B,QAAU,SAAU+f,EAAU3M,EAAiBoN,GAIlE,GAFoB3vC,SAAhB2vC,IAA6BA,GAAc,GAE3C7gB,UAAU70B,QAAU,EAEpB,IAAK,GAAID,GAAI,EAAGA,EAAIzD,KAAKwD,SAASE,OAAQD,MAEjC21C,GAAgBA,GAAep5C,KAAKwD,SAASC,GAAGwuC,SAEjD0G,EAAS7yC,KAAKkmC,EAAiBhsC,KAAKwD,SAASC,QAKzD,CAKI,IAAK,GAFD40B,IAAQ,MAEH50B,EAAI,EAAGA,EAAI80B,UAAU70B,OAAQD,IAElC40B,EAAK9zB,KAAKg0B,UAAU90B,GAGxB,KAAK,GAAIA,GAAI,EAAGA,EAAIzD,KAAKwD,SAASE,OAAQD,MAEjC21C,GAAgBA,GAAep5C,KAAKwD,SAASC,GAAGwuC,UAEjD5Z,EAAK,GAAKr4B,KAAKwD,SAASC,GACxBk1C,EAASxxC,MAAM6kC,EAAiB3T,MAiBhDvE,EAAO0gB,MAAMnxC,UAAUi2C,cAAgB,SAAUX,EAAU3M,GAEvD,GAAI3T,EAEJ,IAAIE,UAAU70B,OAAS,EACvB,CACI20B,GAAQ,KAER,KAAK,GAAI50B,GAAI,EAAGA,EAAI80B,UAAU70B,OAAQD,IAElC40B,EAAK9zB,KAAKg0B,UAAU90B,IAI5BzD,KAAKu5C,QAAQ,UAAU,EAAMzlB,EAAO0gB,MAAMqB,aAAc8C,EAAU3M,EAAiB3T,IAcvFvE,EAAO0gB,MAAMnxC,UAAUm2C,aAAe,SAAUb,EAAU3M,GAEtD,GAAI3T,EAEJ,IAAIE,UAAU70B,OAAS,EACvB,CACI20B,GAAQ,KAER,KAAK,GAAI50B,GAAI,EAAGA,EAAI80B,UAAU70B,OAAQD,IAElC40B,EAAK9zB,KAAKg0B,UAAU90B,IAI5BzD,KAAKu5C,QAAQ,SAAS,EAAMzlB,EAAO0gB,MAAMqB,aAAc8C,EAAU3M,EAAiB3T,IActFvE,EAAO0gB,MAAMnxC,UAAUo2C,YAAc,SAAUd,EAAU3M,GAErD,GAAI3T,EAEJ,IAAIE,UAAU70B,OAAS,EACvB,CACI20B,GAAQ,KAER,KAAK,GAAI50B,GAAI,EAAGA,EAAI80B,UAAU70B,OAAQD,IAElC40B,EAAK9zB,KAAKg0B,UAAU90B,IAI5BzD,KAAKu5C,QAAQ,SAAS,EAAOzlB,EAAO0gB,MAAMqB,aAAc8C,EAAU3M,EAAiB3T,IAcvFvE,EAAO0gB,MAAMnxC,UAAUq2C,KAAO,SAAUhjC,EAAKijC,GAErC35C,KAAKwD,SAASE,OAAS,IAMf+F,SAARiN,IAAqBA,EAAM,KACjBjN,SAAVkwC,IAAuBA,EAAQ7lB,EAAO0gB,MAAMuB,gBAEhD/1C,KAAK21C,cAAgBj/B,EAIjB1W,KAAKwD,SAASk2C,KAFdC,IAAU7lB,EAAO0gB,MAAMuB,eAEJ/1C,KAAK45C,qBAAqB1hB,KAAKl4B,MAI/BA,KAAK65C,sBAAsB3hB,KAAKl4B,OAGvDA,KAAK02C,YAcT5iB,EAAO0gB,MAAMnxC,UAAUy2C,WAAa,SAAUC,EAAa3sC,GAEnDpN,KAAKwD,SAASE,OAAS,IAM3B1D,KAAKwD,SAASk2C,KAAKK,EAAY7hB,KAAK9qB,IAEpCpN,KAAK02C,YAYT5iB,EAAO0gB,MAAMnxC,UAAUu2C,qBAAuB,SAAU70C,EAAGC,GAEvD,MAAID,GAAE/E,KAAK21C,eAAiB3wC,EAAEhF,KAAK21C,eAExB,GAEF5wC,EAAE/E,KAAK21C,eAAiB3wC,EAAEhF,KAAK21C,eAE7B,EAIH5wC,EAAEuU,EAAItU,EAAEsU,EAED,GAIA,GAcnBwa,EAAO0gB,MAAMnxC,UAAUw2C,sBAAwB,SAAU90C,EAAGC,GAExD,MAAID,GAAE/E,KAAK21C,eAAiB3wC,EAAEhF,KAAK21C,eAExB,EAEF5wC,EAAE/E,KAAK21C,eAAiB3wC,EAAEhF,KAAK21C,eAE7B,GAIA,GAiCf7hB,EAAO0gB,MAAMnxC,UAAUk2C,QAAU,SAAU7iC,EAAKzS,EAAO+1C,EAAYrB,EAAU3M,EAAiB3T,GAE1F,GAAI2hB,IAAelmB,EAAO0gB,MAAMqB,cAAyC,IAAzB71C,KAAKwD,SAASE,OAE1D,MAAO,EAKX,KAAK,GAFDu2C,GAAQ,EAEHx2C,EAAI,EAAGA,EAAIzD,KAAKwD,SAASE,OAAQD,IAEtC,GAAIzD,KAAKwD,SAASC,GAAGiT,KAASzS,IAE1Bg2C,IAEItB,IAEItgB,GAEAA,EAAK,GAAKr4B,KAAKwD,SAASC,GACxBk1C,EAASxxC,MAAM6kC,EAAiB3T,IAIhCsgB,EAAS7yC,KAAKkmC,EAAiBhsC,KAAKwD,SAASC,KAIjDu2C,IAAelmB,EAAO0gB,MAAMsB,cAE5B,MAAO91C,MAAKwD,SAASC,EAKjC,OAAIu2C,KAAelmB,EAAO0gB,MAAMqB,aAErBoE,EAIJ,MAWXnmB,EAAO0gB,MAAMnxC,UAAU62C,eAAiB,SAAUjI,GAO9C,MALsB,iBAAXA,KAEPA,GAAS,GAGNjyC,KAAKu5C,QAAQ,SAAUtH,EAAQne,EAAO0gB,MAAMsB,eAYvDhiB,EAAO0gB,MAAMnxC,UAAU82C,cAAgB,WAEnC,MAAOn6C,MAAKu5C,QAAQ,SAAS,EAAMzlB,EAAO0gB,MAAMsB,eAYpDhiB,EAAO0gB,MAAMnxC,UAAU+2C,aAAe,WAElC,MAAOp6C,MAAKu5C,QAAQ,SAAS,EAAOzlB,EAAO0gB,MAAMsB,eAYrDhiB,EAAO0gB,MAAMnxC,UAAUg3C,OAAS,WAE5B,MAAIr6C,MAAKwD,SAASE,OAAS,EAEhB1D,KAAKwD,SAASxD,KAAKwD,SAASE,OAAS,GAFhD,QAeJowB,EAAO0gB,MAAMnxC,UAAUi3C,UAAY,WAE/B,MAAIt6C,MAAKwD,SAASE,OAAS,EAEhB1D,KAAKwD,SAAS,GAFzB,QAaJswB,EAAO0gB,MAAMnxC,UAAUk3C,YAAc,WAEjC,MAAOv6C,MAAKu5C,QAAQ,SAAS,EAAMzlB,EAAO0gB,MAAMqB,eAUpD/hB,EAAO0gB,MAAMnxC,UAAUm3C,UAAY,WAE/B,MAAOx6C,MAAKu5C,QAAQ,SAAS,EAAOzlB,EAAO0gB,MAAMqB,eAYrD/hB,EAAO0gB,MAAMnxC,UAAUo3C,UAAY,SAAUjvB,EAAY9nB,GAErD,MAA6B,KAAzB1D,KAAKwD,SAASE,OAEP,MAGX8nB,EAAaA,GAAc,EAC3B9nB,EAASA,GAAU1D,KAAKwD,SAASE,OAE1BowB,EAAO4mB,WAAWC,cAAc36C,KAAKwD,SAAUgoB,EAAY9nB,KAiBtEowB,EAAO0gB,MAAMnxC,UAAU0oC,OAAS,SAAUvjC,EAAOjF,EAAS0yC,GAKtD,GAHgBxsC,SAAZlG,IAAyBA,GAAU,GACxBkG,SAAXwsC,IAAwBA,GAAS,GAER,IAAzBj2C,KAAKwD,SAASE,QAAiD,KAAjC1D,KAAKwD,SAAS2F,QAAQX,GAEpD,OAAO,CAGNytC,KAAUztC,EAAM4tC,QAAW5tC,EAAMoyC,cAElCpyC,EAAM4tC,OAAOyE,4BAA4BryC,EAAOxI,KAGpD,IAAIgK,GAAUhK,KAAK2I,YAAYH,EAgB/B,OAdAxI,MAAKs2C,eAAe9tC,GAEpBxI,KAAK02C,UAED12C,KAAKm1C,SAAW3sC,GAEhBxI,KAAK+2C,OAGLxzC,GAAWyG,GAEXA,EAAQzG,SAAQ,IAGb,GAYXuwB,EAAO0gB,MAAMnxC,UAAUmzC,QAAU,SAAUsE,EAAO7E,GAI9C,GAFexsC,SAAXwsC,IAAwBA,GAAS,GAEjCj2C,KAAKwD,SAASE,OAAS,GAAKo3C,YAAiBhnB,GAAO0gB,MACxD,CACI,EAEIsG,GAAMla,IAAI5gC,KAAKwD,SAAS,GAAIyyC,SAEzBj2C,KAAKwD,SAASE,OAAS,EAE9B1D,MAAK01C,QAEL11C,KAAKm1C,OAAS,KAGlB,MAAO2F,IAWXhnB,EAAO0gB,MAAMnxC,UAAUwpC,UAAY,SAAUtpC,EAAS0yC,GAKlD,GAHgBxsC,SAAZlG,IAAyBA,GAAU,GACxBkG,SAAXwsC,IAAwBA,GAAS,GAER,IAAzBj2C,KAAKwD,SAASE,OAAlB,CAKA,EACA,EACSuyC,GAAUj2C,KAAKwD,SAAS,GAAG4yC,QAE5Bp2C,KAAKwD,SAAS,GAAG4yC,OAAOyE,4BAA4B76C,KAAKwD,SAAS,GAAIxD,KAG1E,IAAIgK,GAAUhK,KAAK2I,YAAY3I,KAAKwD,SAAS,GAE7CxD,MAAKs2C,eAAetsC,GAEhBzG,GAAWyG,GAEXA,EAAQzG,SAAQ,SAGjBvD,KAAKwD,SAASE,OAAS,EAE9B1D,MAAK01C,QAEL11C,KAAKm1C,OAAS,OAalBrhB,EAAO0gB,MAAMnxC,UAAU03C,cAAgB,SAAUvvB,EAAY5hB,EAAUrG,EAAS0yC,GAM5E,GAJiBxsC,SAAbG,IAA0BA,EAAW5J,KAAKwD,SAASE,OAAS,GAChD+F,SAAZlG,IAAyBA,GAAU,GACxBkG,SAAXwsC,IAAwBA,GAAS,GAER,IAAzBj2C,KAAKwD,SAASE,OAAlB,CAKA,GAAI8nB,EAAa5hB,GAAyB,EAAb4hB,GAAkB5hB,EAAW5J,KAAKwD,SAASE,OAEpE,OAAO,CAKX,KAFA,GAAID,GAAImG,EAEDnG,GAAK+nB,GACZ,EACSyqB,GAAUj2C,KAAKwD,SAASC,GAAG2yC,QAE5Bp2C,KAAKwD,SAASC,GAAG2yC,OAAOyE,4BAA4B76C,KAAKwD,SAASC,GAAIzD,KAG1E,IAAIgK,GAAUhK,KAAK2I,YAAY3I,KAAKwD,SAASC,GAE7CzD,MAAKs2C,eAAetsC,GAEhBzG,GAAWyG,GAEXA,EAAQzG,SAAQ,GAGhBvD,KAAKm1C,SAAWn1C,KAAKwD,SAASC,KAE9BzD,KAAKm1C,OAAS,MAGlB1xC,IAGJzD,KAAK02C,YAaT5iB,EAAO0gB,MAAMnxC,UAAUE,QAAU,SAAUy3C,EAAiBC,GAEtC,OAAdj7C,KAAK4E,MAAiB5E,KAAKg1C,gBAEPvrC,SAApBuxC,IAAiCA,GAAkB,GAC1CvxC,SAATwxC,IAAsBA,GAAO,GAEjCj7C,KAAKs1C,UAAU7I,SAASzsC,KAAMg7C,EAAiBC,GAE/Cj7C,KAAK6sC,UAAUmO,GAEfh7C,KAAKm1C,OAAS,KACdn1C,KAAKiI,QAAU,KACfjI,KAAKi1C,gBAAiB,EAEjBgG,IAEGj7C,KAAKoC,QAELpC,KAAKoC,OAAOuG,YAAY3I,MAG5BA,KAAK4E,KAAO,KACZ5E,KAAKiyC,QAAS,KAYtBruC,OAAOC,eAAeiwB,EAAO0gB,MAAMnxC,UAAW,SAE1CS,IAAK,WAED,MAAO9D,MAAKu5C,QAAQ,UAAU,EAAMzlB,EAAO0gB,MAAMqB,iBAazDjyC,OAAOC,eAAeiwB,EAAO0gB,MAAMnxC,UAAW,UAE1CS,IAAK,WAED,MAAO9D,MAAKwD,SAASE,UAiB7BE,OAAOC,eAAeiwB,EAAO0gB,MAAMnxC,UAAW,SAE1CS,IAAK,WACD,MAAOgwB,GAAOnzB,KAAKwgC,SAASnhC,KAAK+B,WAGrCiC,IAAK,SAASC,GACVjE,KAAK+B,SAAW+xB,EAAOnzB,KAAK68B,SAASv5B,MA2E7C6vB,EAAOonB,MAAQ,SAAUt2C,GAErBkvB,EAAO0gB,MAAM1uC,KAAK9F,KAAM4E,EAAM,KAAM,WAAW,GAS/C5E,KAAK0G,OAAS,GAAIotB,GAAO9wB,UAAU,EAAG,EAAG4B,EAAKiC,MAAOjC,EAAKkC,QAK1D9G,KAAK4oC,OAAS,KAMd5oC,KAAKm7C,cAAe,EAKpBn7C,KAAKqI,OAASzD,EAAKiC,MAKnB7G,KAAKsI,QAAU1D,EAAKkC,OAEpB9G,KAAK4E,KAAK+mC,MAAMpB,cAAc3J,IAAI5gC,KAAKo7C,YAAap7C,OAIxD8zB,EAAOonB,MAAM73C,UAAYO,OAAOwE,OAAO0rB,EAAO0gB,MAAMnxC,WACpDywB,EAAOonB,MAAM73C,UAAUC,YAAcwwB,EAAOonB,MAQ5CpnB,EAAOonB,MAAM73C,UAAUioC,KAAO,WAE1BtrC,KAAK4oC,OAAS,GAAI9U,GAAOsR,OAAOplC,KAAK4E,KAAM,EAAG,EAAG,EAAG5E,KAAK4E,KAAKiC,MAAO7G,KAAK4E,KAAKkC,QAE/E9G,KAAK4oC,OAAOrkB,cAAgBvkB,KAE5BA,KAAK4oC,OAAOjnC,MAAQ3B,KAAK2B,MAEzB3B,KAAK4E,KAAKgkC,OAAS5oC,KAAK4oC,OAExB5oC,KAAK4E,KAAKvC,MAAMkG,SAASvI,OAa7B8zB,EAAOonB,MAAM73C,UAAU+3C,YAAc,WAEjCp7C,KAAK0F,EAAI,EACT1F,KAAK2F,EAAI,EAET3F,KAAK4oC,OAAOnsB,SAchBqX,EAAOonB,MAAM73C,UAAUg4C,UAAY,SAAU31C,EAAGC,EAAGkB,EAAOC,GAEtD9G,KAAKm7C,cAAe,EACpBn7C,KAAKqI,OAASxB,EACd7G,KAAKsI,QAAUxB,EAEf9G,KAAK0G,OAAO61B,MAAM72B,EAAGC,EAAGkB,EAAOC,GAE/B9G,KAAK0F,EAAIA,EACT1F,KAAK2F,EAAIA,EAEL3F,KAAK4oC,OAAOliC,QAGZ1G,KAAK4oC,OAAOliC,OAAO61B,MAAM72B,EAAGC,EAAGhF,KAAK2+B,IAAIz4B,EAAO7G,KAAK4E,KAAKiC,OAAQlG,KAAK2+B,IAAIx4B,EAAQ9G,KAAK4E,KAAKkC,SAGhG9G,KAAK4E,KAAKykC,QAAQ5C,oBAWtB3S,EAAOonB,MAAM73C,UAAU0E,OAAS,SAAUlB,EAAOC,GAIzC9G,KAAKm7C,eAEDt0C,EAAQ7G,KAAKqI,SAEbxB,EAAQ7G,KAAKqI,QAGbvB,EAAS9G,KAAKsI,UAEdxB,EAAS9G,KAAKsI,UAItBtI,KAAK0G,OAAOG,MAAQA,EACpB7G,KAAK0G,OAAOI,OAASA,EAErB9G,KAAK4E,KAAKgkC,OAAOnC,mBAEjBzmC,KAAK4E,KAAKykC,QAAQ5C,oBAStB3S,EAAOonB,MAAM73C,UAAUymC,SAAW,WAG9B9pC,KAAKuD,SAAQ,GAAM,IAgBvBuwB,EAAOonB,MAAM73C,UAAU28B,KAAO,SAAUrW,EAAQyC,EAASkvB,EAAWC,EAAYC,GAE5D/xC,SAAZ2iB,IAAyBA,EAAU,GACrB3iB,SAAd6xC,IAA2BA,GAAY,GACxB7xC,SAAf8xC,IAA4BA,GAAa,GAC5B9xC,SAAb+xC,IAA0BA,GAAW,GAEpCF,GAsBD3xB,EAAO3jB,YAEHu1C,IAEK5xB,EAAOjkB,EAAIikB,EAAO1mB,eAAe4D,MAAS7G,KAAK0G,OAAOhB,EAEvDikB,EAAOjkB,EAAI1F,KAAK0G,OAAOk0B,MAElBjR,EAAOjkB,EAAI1F,KAAK0G,OAAOk0B,QAE5BjR,EAAOjkB,EAAI1F,KAAK0G,OAAOm0B,OAI3B2gB,IAEK7xB,EAAOhkB,EAAIgkB,EAAO1mB,eAAe6D,OAAU9G,KAAK0G,OAAO02B,IAExDzT,EAAOhkB,EAAI3F,KAAK0G,OAAO22B,OAElB1T,EAAOhkB,EAAI3F,KAAK0G,OAAO22B,SAE5B1T,EAAOhkB,EAAI3F,KAAK0G,OAAO02B,QA1C3Bme,GAAc5xB,EAAOjkB,EAAI0mB,EAAUpsB,KAAK0G,OAAOhB,EAE/CikB,EAAOjkB,EAAI1F,KAAK0G,OAAOk0B,MAAQxO,EAE1BmvB,GAAc5xB,EAAOjkB,EAAI0mB,EAAUpsB,KAAK0G,OAAOk0B,QAEpDjR,EAAOjkB,EAAI1F,KAAK0G,OAAOm0B,KAAOzO,GAG9BovB,GAAY7xB,EAAOhkB,EAAIymB,EAAUpsB,KAAK0G,OAAO02B,IAE7CzT,EAAOhkB,EAAI3F,KAAK0G,OAAO22B,OAASjR,EAE3BovB,GAAY7xB,EAAOhkB,EAAIymB,EAAUpsB,KAAK0G,OAAO22B,SAElD1T,EAAOhkB,EAAI3F,KAAK0G,OAAO02B,IAAMhR,KAsCzCxoB,OAAOC,eAAeiwB,EAAOonB,MAAM73C,UAAW,SAE1CS,IAAK,WACD,MAAO9D,MAAK0G,OAAOG,OAGvB7C,IAAK,SAAUC,GAEPA,EAAQjE,KAAK4E,KAAKiC,QAElB5C,EAAQjE,KAAK4E,KAAKiC,OAGtB7G,KAAK0G,OAAOG,MAAQ5C,EACpBjE,KAAKqI,OAASpE,EACdjE,KAAKm7C,cAAe,KAU5Bv3C,OAAOC,eAAeiwB,EAAOonB,MAAM73C,UAAW,UAE1CS,IAAK,WACD,MAAO9D,MAAK0G,OAAOI,QAGvB9C,IAAK,SAAUC,GAEPA,EAAQjE,KAAK4E,KAAKkC,SAElB7C,EAAQjE,KAAK4E,KAAKkC,QAGtB9G,KAAK0G,OAAOI,OAAS7C,EACrBjE,KAAKsI,QAAUrE,EACfjE,KAAKm7C,cAAe,KAW5Bv3C,OAAOC,eAAeiwB,EAAOonB,MAAM73C,UAAW,WAE1CS,IAAK,WACD,MAAO9D,MAAK0G,OAAOg3B,aAU3B95B,OAAOC,eAAeiwB,EAAOonB,MAAM73C,UAAW,WAE1CS,IAAK,WACD,MAAO9D,MAAK0G,OAAOk3B,cAU3Bh6B,OAAOC,eAAeiwB,EAAOonB,MAAM73C,UAAW,WAE1CS,IAAK,WAED,MAAI9D,MAAK0G,OAAOhB,EAAI,EAET1F,KAAK4E,KAAK0kC,IAAImS,QAAQz7C,KAAK0G,OAAOhB,EAAI1F,KAAK0G,OAAOG,MAAQlG,KAAKshB,IAAIjiB,KAAK0G,OAAOhB,IAI/E1F,KAAK4E,KAAK0kC,IAAImS,QAAQz7C,KAAK0G,OAAOhB,EAAG1F,KAAK0G,OAAOG;IAYpEjD,OAAOC,eAAeiwB,EAAOonB,MAAM73C,UAAW,WAE1CS,IAAK,WAED,MAAI9D,MAAK0G,OAAOf,EAAI,EAET3F,KAAK4E,KAAK0kC,IAAImS,QAAQz7C,KAAK0G,OAAOf,EAAI3F,KAAK0G,OAAOI,OAASnG,KAAKshB,IAAIjiB,KAAK0G,OAAOf,IAIhF3F,KAAK4E,KAAK0kC,IAAImS,QAAQz7C,KAAK0G,OAAOf,EAAG3F,KAAK0G,OAAOI,WA2BpEgtB,EAAO4nB,SAAW,SAAUC,EAAS90C,EAAOC,GAKxC9G,KAAK4E,KAAO+2C,EAAQ/2C,KAKpB5E,KAAK27C,QAAUA,EAGf37C,KAAK6G,MAAQA,EACb7G,KAAK8G,OAASA,EAEd9G,KAAK47C,aAAe,GAAI9nB,GAAO9wB,UAAU,EAAG,EAAG6D,EAAOC,GACtD9G,KAAK67C,YAAc,GAAI/nB,GAAO9wB,UAAU,EAAG,EAAG6D,EAAOC,GACrD9G,KAAK87C,WAAa,GAAIhoB,GAAO9wB,UAAU,EAAG,EAAG6D,EAAOC,GACpD9G,KAAK+7C,WAAa,GAAIjoB,GAAO9wB,UAAU,EAAG,EAAG6D,EAAOC,GAMpD9G,KAAKg8C,eAAiB,GAAIloB,GAAOpyB,MAAM,EAAG,GAC1C1B,KAAKi8C,cAAgB,GAAInoB,GAAOpyB,MAAM,EAAG,GACzC1B,KAAKk8C,aAAe,GAAIpoB,GAAOpyB,MAAM,EAAG,GACxC1B,KAAKm8C,aAAe,GAAIroB,GAAOpyB,MAAM,EAAG,GAMxC1B,KAAKo8C,YAAc,GAAItoB,GAAOpyB,MAAM,EAAG,GACvC1B,KAAKq8C,WAAa,GAAIvoB,GAAOpyB,MAAM,EAAG,GACtC1B,KAAKs8C,mBAAqB,GAAIxoB,GAAOpyB,MAAM,EAAG,GAC9C1B,KAAKu8C,UAAY,GAAIzoB,GAAOpyB,MAAM,EAAG,GACrC1B,KAAKw8C,UAAY,GAAI1oB,GAAOpyB,MAAM,EAAG,GAErC1B,KAAKy8C,YAAc,EACnBz8C,KAAK08C,aAAe,EACpB18C,KAAK28C,cAAgB,EACrB38C,KAAK48C,cAAgB,EAErB58C,KAAK68C,OAASh2C,EAAQC,EACtB9G,KAAK88C,OAASh2C,EAASD,EAEvB7G,KAAK+8C,WAAa,EAElB/8C,KAAKg9C,WAITlpB,EAAO4nB,SAASr4C,WASZqjC,QAAS,SAAU7/B,EAAOC,GAGtB9G,KAAK6G,MAAQA,EACb7G,KAAK8G,OAASA,EAEd9G,KAAK68C,OAASh2C,EAAQC,EACtB9G,KAAK88C,OAASh2C,EAASD,EAEvB7G,KAAKw8C,UAAY,GAAI1oB,GAAOpyB,MAAM,EAAG,GAErC1B,KAAK+7C,WAAWl1C,MAAQ7G,KAAK6G,MAC7B7G,KAAK+7C,WAAWj1C,OAAS9G,KAAK8G,OAE9B9G,KAAK0vB,WAeTutB,kBAAmB,SAAUp2C,EAAOC,EAAQtD,EAAU05C,GAE/BzzC,SAAfyzC,IAA4BA,GAAa,GAE7Cl9C,KAAKy8C,YAAc51C,EACnB7G,KAAK08C,aAAe51C,EAEpB9G,KAAK47C,aAAa/0C,MAAQA,EAC1B7G,KAAK47C,aAAa90C,OAASA,CAE3B,IAAIq2C,GAAQ,GAAIrpB,GAAOspB,UAAUp9C,KAAMA,KAAKg8C,eAAgBh8C,KAAK47C,aAAc57C,KAAKo8C,YAcpF,OAZIc,IAEAl9C,KAAK4E,KAAKE,MAAM87B,IAAIuc,GAGxBn9C,KAAKg9C,OAAOz4C,KAAK44C,GAEO,mBAAb35C,IAAgD,aAAbA,IAE1C25C,EAAM5G,YAAY/yC,GAGf25C,GAWXE,iBAAkB,SAAU75C,EAAU05C,GAEfzzC,SAAfyzC,IAA4BA,GAAa,EAE7C,IAAIC,GAAQ,GAAIrpB,GAAOspB,UAAUp9C,KAAMA,KAAKi8C,cAAej8C,KAAK67C,YAAa77C,KAAKq8C,WAclF,OAZIa,IAEAl9C,KAAK4E,KAAKE,MAAM87B,IAAIuc,GAGxBn9C,KAAKg9C,OAAOz4C,KAAK44C,GAEO,mBAAb35C,IAAgD,aAAbA,IAE1C25C,EAAM5G,YAAY/yC,GAGf25C,GAWXG,gBAAiB,SAAU95C,GAEvB,GAAI25C,GAAQ,GAAIrpB,GAAOspB,UAAUp9C,KAAMA,KAAKk8C,aAAcl8C,KAAK87C,WAAY97C,KAAKq8C,WAWhF,OATAr8C,MAAK4E,KAAKE,MAAM87B,IAAIuc,GAEpBn9C,KAAKg9C,OAAOz4C,KAAK44C,GAEO,mBAAb35C,IAEP25C,EAAM5G,YAAY/yC,GAGf25C,GAWXI,iBAAkB,SAAU/5C,GAExB,GAAI25C,GAAQ,GAAIrpB,GAAOspB,UAAUp9C,KAAMA,KAAKm8C,aAAcn8C,KAAK+7C,WAAY/7C,KAAKw8C,UAWhF,OATAx8C,MAAK4E,KAAKE,MAAM87B,IAAIuc,GAEpBn9C,KAAKg9C,OAAOz4C,KAAK44C,GAEO,mBAAb35C,IAEP25C,EAAM5G,YAAY/yC,GAGf25C,GASX1gC,MAAO,WAIH,IAFA,GAAIhZ,GAAIzD,KAAKg9C,OAAOt5C,OAEbD,KAEEzD,KAAKg9C,OAAOv5C,GAAG+5C,UAGhBx9C,KAAKg9C,OAAOv5C,GAAGhC,SAAW,KAC1BzB,KAAKg9C,OAAOv5C,GAAG9B,MAAQ,KACvB3B,KAAKg9C,OAAOjgC,MAAMtZ,EAAG,KAajCg6C,SAAU,SAAU52C,EAAOC,GAEvB9G,KAAK68C,OAASh2C,EAAQC,EACtB9G,KAAK88C,OAASh2C,EAASD,EAEvB7G,KAAK0vB,QAAQ7oB,EAAOC,IASxB4oB,QAAS,WAEL1vB,KAAK+8C,WAAap8C,KAAK0wB,IAAKrxB,KAAK27C,QAAQ70C,OAAS9G,KAAK8G,OAAU9G,KAAK27C,QAAQ90C,MAAQ7G,KAAK6G,OAE3F7G,KAAK67C,YAAYh1C,MAAQlG,KAAKi8B,MAAM58B,KAAK6G,MAAQ7G,KAAK+8C,YACtD/8C,KAAK67C,YAAY/0C,OAASnG,KAAKi8B,MAAM58B,KAAK8G,OAAS9G,KAAK+8C,YAExD/8C,KAAKq8C,WAAWr4C,IAAIhE,KAAK67C,YAAYh1C,MAAQ7G,KAAK6G,MAAO7G,KAAK67C,YAAY/0C,OAAS9G,KAAK8G,QACxF9G,KAAKs8C,mBAAmBt4C,IAAIhE,KAAK6G,MAAQ7G,KAAK67C,YAAYh1C,MAAO7G,KAAK8G,OAAS9G,KAAK67C,YAAY/0C,QAEhG9G,KAAKu8C,UAAUv4C,IAAIhE,KAAK87C,WAAWj1C,MAAQ7G,KAAK6G,MAAO7G,KAAK87C,WAAWh1C,OAAS9G,KAAK8G,QAErF9G,KAAK87C,WAAWj1C,MAAQlG,KAAKi8B,MAAM58B,KAAK27C,QAAQ90C,MAAQ7G,KAAKs8C,mBAAmB52C,GAChF1F,KAAK87C,WAAWh1C,OAASnG,KAAKi8B,MAAM58B,KAAK27C,QAAQ70C,OAAS9G,KAAKs8C,mBAAmB32C,GAElF3F,KAAK67C,YAAYjY,SAAS5jC,KAAK27C,QAAQj1C,OAAOm9B,QAAS7jC,KAAK27C,QAAQj1C,OAAOo9B,SAC3E9jC,KAAK+7C,WAAWnY,SAAS5jC,KAAK27C,QAAQj1C,OAAOm9B,QAAS7jC,KAAK27C,QAAQj1C,OAAOo9B,SAE1E9jC,KAAKi8C,cAAcj4C,IAAIhE,KAAK67C,YAAYn2C,EAAG1F,KAAK67C,YAAYl2C,GAC5D3F,KAAKm8C,aAAan4C,IAAIhE,KAAK+7C,WAAWr2C,EAAG1F,KAAK+7C,WAAWp2C,IAU7D+3C,UAAW,SAAU/zB,GAEjB3pB,KAAK27C,QAAQgC,YAAYh0B,GAEzBA,EAAOjkB,EAAI1F,KAAK27C,QAAQj1C,OAAOm9B,QAC/Bla,EAAOhkB,EAAI3F,KAAK27C,QAAQj1C,OAAOo9B,SASnCgJ,MAAO,WAUH9sC,KAAK4E,KAAKkoC,MAAM8Q,KAAK59C,KAAK67C,YAAYh1C,MAAQ,MAAQ7G,KAAK67C,YAAY/0C,OAAQ9G,KAAK67C,YAAYn2C,EAAI,EAAG1F,KAAK67C,YAAYl2C,EAAI,IAC5H3F,KAAK4E,KAAKkoC,MAAM+Q,KAAK79C,KAAK67C,YAAa,oBAAoB,KAYnE/nB,EAAO4nB,SAASr4C,UAAUC,YAAcwwB,EAAO4nB,SAuB/C5nB,EAAOspB,UAAY,SAAUzB,EAASl6C,EAAUiF,EAAQ/E,GAEpDmyB,EAAO0gB,MAAM1uC,KAAK9F,KAAM27C,EAAQ/2C,KAAM,KAAM,cAAgB+2C,EAAQ/2C,KAAK0kC,IAAIwU,QAAQ,GAKrF99C,KAAK27C,QAAUA,EAAQA,QAKvB37C,KAAKwoC,KAAOmT,EAOZ37C,KAAKw9C,SAAU,EAKfx9C,KAAKyB,SAAWA,EAKhBzB,KAAK0G,OAASA,EAKd1G,KAAK2B,MAAQA,EAKb3B,KAAK+9C,QAAUr3C,EAAOq3C,QAKtB/9C,KAAKg+C,UAAY,GAAIlqB,GAAOpyB,MAAMgF,EAAOg3B,UAAW,GAKpD19B,KAAKi+C,SAAWv3C,EAAOu3C,SAKvBj+C,KAAKk+C,WAAax3C,EAAOw3C,WAKzBl+C,KAAKm+C,aAAe,GAAIrqB,GAAOpyB,MAAMgF,EAAOg3B,UAAWh3B,EAAO22B,QAK9Dr9B,KAAKo+C,YAAc13C,EAAO03C,aAI9BtqB,EAAOspB,UAAU/5C,UAAYO,OAAOwE,OAAO0rB,EAAO0gB,MAAMnxC,WACxDywB,EAAOspB,UAAU/5C,UAAUC,YAAcwwB,EAAOspB,UAOhDtpB,EAAOspB,UAAU/5C,UAAU0E,OAAS,aAQpC+rB,EAAOspB,UAAU/5C,UAAUypC,MAAQ,WAE/B9sC,KAAK4E,KAAKkoC,MAAM8Q,KAAK59C,KAAK0G,OAAOG,MAAQ,MAAQ7G,KAAK0G,OAAOI,OAAQ9G,KAAK0G,OAAOhB,EAAI,EAAG1F,KAAK0G,OAAOf,EAAI,IACxG3F,KAAK4E,KAAKkoC,MAAM+Q,KAAK79C,KAAK0G,OAAQ,oBAAoB,GAEtD1G,KAAK4E,KAAKkoC,MAAM+Q,KAAK79C,KAAK+9C,QAAS,wBACnC/9C,KAAK4E,KAAKkoC,MAAM+Q,KAAK79C,KAAKg+C,UAAW,wBACrCh+C,KAAK4E,KAAKkoC,MAAM+Q,KAAK79C,KAAKi+C,SAAU,yBAiDxCnqB,EAAOuqB,aAAe,SAAUz5C,EAAMiC,EAAOC,GAQzC9G,KAAK4E,KAAOA,EAQZ5E,KAAKs+C,IAAMxqB,EAAO0e,IAOlBxyC,KAAKwoC,KAAO,KAOZxoC,KAAK6G,MAAQ,EAOb7G,KAAK8G,OAAS,EASd9G,KAAKu+C,SAAW,KAUhBv+C,KAAKw+C,SAAW,KAShBx+C,KAAKy+C,UAAY,KAUjBz+C,KAAK0+C,UAAY,KASjB1+C,KAAK6a,OAAS,GAAIiZ,GAAOpyB,MAUzB1B,KAAK2+C,gBAAiB,EAUtB3+C,KAAK4+C,eAAgB,EAWrB5+C,KAAK6+C,sBAAuB,EAO5B7+C,KAAK8+C,wBAAyB,EAO9B9+C,KAAK++C,sBAAuB,EA0B5B/+C,KAAKg/C,oBAAsB,GAAIlrB,GAAO0W,OAUtCxqC,KAAKi/C,0BAA4B,GAAInrB,GAAO0W,OAU5CxqC,KAAKk/C,0BAA4B,GAAIprB,GAAO0W,OAe5CxqC,KAAKm/C,iBAAmB,KAQxBn/C,KAAKo/C,yBAA2B,KAuBhCp/C,KAAKq/C,iBAAmB,GAAIvrB,GAAO0W,OAWnCxqC,KAAKs/C,mBAAqB,GAAIxrB,GAAO0W,OAWrCxqC,KAAKu/C,kBAAoB,GAAIzrB,GAAO0W,OAUpCxqC,KAAKw/C,kBAAoBx/C,KAAKs+C,IAAImB,uBAOlCz/C,KAAKk1B,YAAc,GAAIpB,GAAOpyB,MAAM,EAAG,GAQvC1B,KAAK0/C,oBAAsB,GAAI5rB,GAAOpyB,MAAM,EAAG,GAS/C1B,KAAK2/C,QAAU9kB,KAAM,EAAGuC,IAAK,EAAGxC,MAAO,EAAGyC,OAAQ,EAAG33B,EAAG,EAAGC,EAAG,GAO9D3F,KAAK0G,OAAS,GAAIotB,GAAO9wB,UAOzBhD,KAAK4/C,YAAc,EAOnB5/C,KAAK6/C,kBAAoB,EAQzB7/C,KAAKkzC,MAAQ,KAeblzC,KAAK8/C,mBACDllB,MAAO,SACPyC,OAAQ,IA6BZr9B,KAAK+/C,eACDC,oBAAoB,EACpBC,oBAAqB,KACrBC,WAAW,EACXC,SAAU,KACVC,4BAA4B,EAC5BC,iBAAiB,EACjBC,gBAAiB,IAQrBtgD,KAAKugD,WAAazsB,EAAOuqB,aAAamC,SAOtCxgD,KAAKygD,qBAAuB3sB,EAAOuqB,aAAamC,SAUhDxgD,KAAK0gD,gBAAiB,EAUtB1gD,KAAK2gD,WAAa,KAOlB3gD,KAAK4gD,kBAAoB,GAAI9sB,GAAOpyB,MAAM,EAAG,GAW7C1B,KAAK6gD,oBAAsB,IAiB3B7gD,KAAK8gD,aAAe,GAAIhtB,GAAO0W,OAO/BxqC,KAAKy9C,SAAW,KAOhBz9C,KAAK+gD,gBAAkB,KAMvB/gD,KAAKghD,kBAAoB,KAOzBhhD,KAAKihD,mBAAqB,KAO1BjhD,KAAKkhD,UAAY,GAAIptB,GAAO9wB,UAO5BhD,KAAKmhD,iBAAmB,GAAIrtB,GAAOpyB,MAAM,EAAG,GAO5C1B,KAAKohD,eAAiB,GAAIttB,GAAOpyB,MAAM,EAAG,GAO1C1B,KAAKqhD,YAAc,EASnBrhD,KAAKshD,gBAAkB,EAOvBthD,KAAKuhD,qBAAuB,IAO5BvhD,KAAKwhD,cAAgB,GAAI1tB,GAAO9wB,UAOhChD,KAAKyhD,YAAc,GAAI3tB,GAAO9wB,UAO9BhD,KAAK0hD,wBAA0B,GAAI5tB,GAAO9wB,UAO1ChD,KAAK2hD,sBAAwB,GAAI7tB,GAAO9wB,UAMxChD,KAAK4hD,SAAU,EAEXh9C,EAAK0tC,QAELtyC,KAAKuyC,YAAY3tC,EAAK0tC,QAG1BtyC,KAAK6hD,WAAWh7C,EAAOC,IAU3BgtB,EAAOuqB,aAAayD,UAAY,EAQhChuB,EAAOuqB,aAAamC,SAAW,EAQ/B1sB,EAAOuqB,aAAa0D,SAAW,EAQ/BjuB,EAAOuqB,aAAa2D,OAAS,EAQ7BluB,EAAOuqB,aAAa4D,WAAa,EAEjCnuB,EAAOuqB,aAAah7C,WAQhBioC,KAAM,WAIF,GAAI4W,GAASliD,KAAK+/C,aAElBmC,GAAOlC,mBAAqBhgD,KAAK4E,KAAK6uC,OAAO0O,aAAeniD,KAAK4E,KAAK6uC,OAAO2O,SAGxEpiD,KAAK4E,KAAK6uC,OAAO4O,MAASriD,KAAK4E,KAAK6uC,OAAO6O,QAAWtiD,KAAK4E,KAAK6uC,OAAO8O,UAIpEL,EAAO/B,SAFPngD,KAAK4E,KAAK6uC,OAAO+O,UAAYxiD,KAAK4E,KAAK6uC,OAAOgP,OAE5B,GAAI3uB,GAAOpyB,MAAM,EAAG,GAIpB,GAAIoyB,GAAOpyB,MAAM,EAAG,IAI1C1B,KAAK4E,KAAK6uC,OAAO8O,SAEjBL,EAAOjC,oBAAsB,SAC7BiC,EAAO5B,gBAAkB,mBAIzB4B,EAAOjC,oBAAsB,GAC7BiC,EAAO5B,gBAAkB,GAK7B,IAAIlR,GAAQpvC,IAEZA,MAAK0iD,mBAAqB,SAASxP,GAC/B,MAAO9D,GAAMuT,kBAAkBzP,IAGnClzC,KAAK4iD,cAAgB,SAAS1P,GAC1B,MAAO9D,GAAMyT,aAAa3P,IAI9Bz+B,OAAO2+B,iBAAiB,oBAAqBpzC,KAAK0iD,oBAAoB,GACtEjuC,OAAO2+B,iBAAiB,SAAUpzC,KAAK4iD,eAAe,GAElD5iD,KAAK+/C,cAAcC,qBAEnBhgD,KAAK8iD,kBAAoB,SAAS5P,GAC9B,MAAO9D,GAAM2T,iBAAiB7P,IAGlClzC,KAAKgjD,iBAAmB,SAAS9P,GAC7B,MAAO9D,GAAM6T,gBAAgB/P,IAGjC1iC,SAAS4iC,iBAAiB,yBAA0BpzC,KAAK8iD,mBAAmB,GAC5EtyC,SAAS4iC,iBAAiB,sBAAuBpzC,KAAK8iD,mBAAmB,GACzEtyC,SAAS4iC,iBAAiB,qBAAsBpzC,KAAK8iD,mBAAmB,GACxEtyC,SAAS4iC,iBAAiB,mBAAoBpzC,KAAK8iD,mBAAmB,GAEtEtyC,SAAS4iC,iBAAiB,wBAAyBpzC,KAAKgjD,kBAAkB,GAC1ExyC,SAAS4iC,iBAAiB,qBAAsBpzC,KAAKgjD,kBAAkB,GACvExyC,SAAS4iC,iBAAiB,oBAAqBpzC,KAAKgjD,kBAAkB,GACtExyC,SAAS4iC,iBAAiB,kBAAmBpzC,KAAKgjD,kBAAkB,IAGxEhjD,KAAK4E,KAAK6mC,SAAS7K,IAAI5gC,KAAKkjD,aAAcljD,MAI1CA,KAAKs+C,IAAI7L,UAAUzyC,KAAK4E,KAAKmM,OAAQ/Q,KAAK6a,QAE1C7a,KAAK0G,OAAO61B,MAAMv8B,KAAK6a,OAAOnV,EAAG1F,KAAK6a,OAAOlV,EAAG3F,KAAK6G,MAAO7G,KAAK8G,QAEjE9G,KAAKmjD,YAAYnjD,KAAK4E,KAAKiC,MAAO7G,KAAK4E,KAAKkC,QAG5C9G,KAAKw/C,kBAAoBx/C,KAAKs+C,IAAImB,qBAAqBz/C,KAAK+/C,cAAcE,qBAE1EjgD,KAAKwoC,KAAO,GAAI1U,GAAO4nB,SAAS17C,KAAMA,KAAK6G,MAAO7G,KAAK8G,QAEvD9G,KAAK4hD,SAAU,EAEX5hD,KAAKghD,oBAELhhD,KAAKwG,UAAYxG,KAAKghD,kBACtBhhD,KAAKghD,kBAAoB,OAYjCzO,YAAa,SAAUD,GAEfA,EAAkB,YAEdtyC,KAAK4hD,QAEL5hD,KAAKwG,UAAY8rC,EAAkB,UAInCtyC,KAAKghD,kBAAoB1O,EAAkB,WAI/CA,EAA4B,sBAE5BtyC,KAAKojD,oBAAsB9Q,EAA4B,qBAGvDA,EAAyB,mBAEzBtyC,KAAKm/C,iBAAmB7M,EAAyB,mBAezDuP,WAAY,SAAUh7C,EAAOC,GAEzB,GAAIrC,GACA+sB,EAAO,GAAIsC,GAAO9wB,SAEG,MAArBhD,KAAK4E,KAAKxC,SAEsB,gBAArBpC,MAAK4E,KAAKxC,OAGjBqC,EAAS+L,SAAS6yC,eAAerjD,KAAK4E,KAAKxC,QAEtCpC,KAAK4E,KAAKxC,QAAwC,IAA9BpC,KAAK4E,KAAKxC,OAAO24B,WAG1Ct2B,EAASzE,KAAK4E,KAAKxC,SAKtBqC,GAaDzE,KAAK2gD,WAAal8C,EAClBzE,KAAK0gD,gBAAiB,EAEtB1gD,KAAKsjD,gBAAgBtjD,KAAKwhD,eAE1BhwB,EAAK3qB,MAAQ7G,KAAKwhD,cAAc36C,MAChC2qB,EAAK1qB,OAAS9G,KAAKwhD,cAAc16C,OAEjC9G,KAAK6a,OAAO7W,IAAIhE,KAAKwhD,cAAc97C,EAAG1F,KAAKwhD,cAAc77C,KAlBzD3F,KAAK2gD,WAAa,KAClB3gD,KAAK0gD,gBAAiB,EAEtBlvB,EAAK3qB,MAAQ7G,KAAKs+C,IAAIiF,aAAa18C,MACnC2qB,EAAK1qB,OAAS9G,KAAKs+C,IAAIiF,aAAaz8C,OAEpC9G,KAAK6a,OAAO7W,IAAI,EAAG,GAevB,IAAIw/C,GAAW,EACXC,EAAY,CAEK,iBAAV58C,GAEP28C,EAAW38C,GAKX7G,KAAK4gD,kBAAkBl7C,EAAI20B,SAASxzB,EAAO,IAAM,IACjD28C,EAAWhyB,EAAK3qB,MAAQ7G,KAAK4gD,kBAAkBl7C,GAG7B,gBAAXoB,GAEP28C,EAAY38C,GAKZ9G,KAAK4gD,kBAAkBj7C,EAAI00B,SAASvzB,EAAQ,IAAM,IAClD28C,EAAYjyB,EAAK1qB,OAAS9G,KAAK4gD,kBAAkBj7C,GAGrD3F,KAAKkhD,UAAU3kB,MAAM,EAAG,EAAGinB,EAAUC,GAErCzjD,KAAK0jD,iBAAiBF,EAAUC,GAAW,IAU/CP,aAAc,WAEVljD,KAAK2jD,aAAY,IAmBrBR,YAAa,SAAUt8C,EAAOC,GAE1B9G,KAAKkhD,UAAU3kB,MAAM,EAAG,EAAG11B,EAAOC,GAE9B9G,KAAK4jD,mBAAqB9vB,EAAOuqB,aAAa2D,QAE9ChiD,KAAK0jD,iBAAiB78C,EAAOC,GAAQ,GAGzC9G,KAAK2jD,aAAY,IAoBrBE,aAAc,SAAUC,EAAQC,EAAQC,EAAOC,GAE3CjkD,KAAKmhD,iBAAiB5kB,MAAMunB,EAAQC,GACpC/jD,KAAKohD,eAAe7kB,MAAc,EAARynB,EAAmB,EAARC,GACrCjkD,KAAK2jD,aAAY,IAwBrBO,kBAAmB,SAAUvL,EAAUvrC,GAEnCpN,KAAKy9C,SAAW9E,EAChB34C,KAAK+gD,gBAAkB3zC,GAY3B+2C,iBAAkB,WAEd,IAAKrwB,EAAO9wB,UAAUgiC,eAAehlC,KAAMA,KAAK0hD,2BAC3C5tB,EAAO9wB,UAAUgiC,eAAehlC,KAAK4E,KAAM5E,KAAK2hD,uBACrD,CACI,GAAI96C,GAAQ7G,KAAK6G,MACbC,EAAS9G,KAAK8G,MAElB9G,MAAK0hD,wBAAwBnlB,MAAM,EAAG,EAAG11B,EAAOC,GAChD9G,KAAK2hD,sBAAsBplB,MAAM,EAAG,EAAGv8B,KAAK4E,KAAKiC,MAAO7G,KAAK4E,KAAKkC,QAElE9G,KAAKwoC,KAAKiV,SAAS52C,EAAOC,GAE1B9G,KAAK8gD,aAAarU,SAASzsC,KAAM6G,EAAOC,GAGpC9G,KAAK4jD,mBAAqB9vB,EAAOuqB,aAAa2D,SAE9ChiD,KAAK4E,KAAK+mC,MAAM5jC,OAAOlB,EAAOC,GAC9B9G,KAAK4E,KAAKmkC,KAAKhhC,OAAOlB,EAAOC,MAqBzCs9C,UAAW,SAAU7F,EAAUE,EAAWD,EAAUE,GAEhD1+C,KAAKu+C,SAAWA,EAChBv+C,KAAKy+C,UAAYA,EAEO,mBAAbD,KAEPx+C,KAAKw+C,SAAWA,GAGK,mBAAdE,KAEP1+C,KAAK0+C,UAAYA,IAWzBp4C,UAAW,WAEP,KAAItG,KAAK4E,KAAKskC,KAAKA,KAAQlpC,KAAKqhD,YAAcrhD,KAAKshD,iBAAnD,CAKA,GAAI+C,GAAerkD,KAAKshD,eACxBthD,MAAKuhD,qBAAuB8C,GAAgB,IAAM,EAAI,IAEtDrkD,KAAKs+C,IAAI7L,UAAUzyC,KAAK4E,KAAKmM,OAAQ/Q,KAAK6a,OAE1C,IAAIypC,GAAYtkD,KAAKwhD,cAAc36C,MAC/B09C,EAAavkD,KAAKwhD,cAAc16C,OAChCJ,EAAS1G,KAAKsjD,gBAAgBtjD,KAAKwhD,eAEnCgD,EAAgB99C,EAAOG,QAAUy9C,GAAa59C,EAAOI,SAAWy9C,EAGhEE,EAAqBzkD,KAAK0kD,0BAE1BF,GAAiBC,KAEbzkD,KAAKy9C,UAELz9C,KAAKy9C,SAAS33C,KAAK9F,KAAK+gD,gBAAiB/gD,KAAM0G,GAGnD1G,KAAK2kD,eAEL3kD,KAAKmkD,mBAIT,IAAIS,GAAkC,EAAvB5kD,KAAKshD,eAGhBthD,MAAKshD,gBAAkB+C,IAEvBO,EAAWjkD,KAAK0wB,IAAIgzB,EAAcrkD,KAAKuhD,uBAG3CvhD,KAAKshD,gBAAkBxtB,EAAOnzB,KAAKsgC,MAAM2jB,EAAU,GAAI5kD,KAAK6gD,qBAC5D7gD,KAAKqhD,YAAcrhD,KAAK4E,KAAKskC,KAAKA,OAUtCW,YAAa,WAET7pC,KAAKsG,YAGLtG,KAAKshD,gBAAkBthD,KAAK6gD,qBAahC6C,iBAAkB,SAAU78C,EAAOC,EAAQiB,GAEvC/H,KAAK6G,MAAQA,EAAQ7G,KAAK4gD,kBAAkBl7C,EAC5C1F,KAAK8G,OAASA,EAAS9G,KAAK4gD,kBAAkBj7C,EAE9C3F,KAAK4E,KAAKiC,MAAQ7G,KAAK6G,MACvB7G,KAAK4E,KAAKkC,OAAS9G,KAAK8G,OAExB9G,KAAK6/C,kBAAoB7/C,KAAK6G,MAAQ7G,KAAK8G,OAC3C9G,KAAK6kD,yBAED98C,IAGA/H,KAAK4E,KAAK6B,SAASsB,OAAO/H,KAAK6G,MAAO7G,KAAK8G,QAG3C9G,KAAK4E,KAAKgkC,OAAOlC,QAAQ1mC,KAAK6G,MAAO7G,KAAK8G,QAG1C9G,KAAK4E,KAAKE,MAAMiD,OAAO/H,KAAK6G,MAAO7G,KAAK8G,UAYhD+9C,uBAAwB,WAEpB7kD,KAAKk1B,YAAYxvB,EAAI1F,KAAK4E,KAAKiC,MAAQ7G,KAAK6G,MAC5C7G,KAAKk1B,YAAYvvB,EAAI3F,KAAK4E,KAAKkC,OAAS9G,KAAK8G,OAE7C9G,KAAK0/C,oBAAoBh6C,EAAI1F,KAAK6G,MAAQ7G,KAAK4E,KAAKiC,MACpD7G,KAAK0/C,oBAAoB/5C,EAAI3F,KAAK8G,OAAS9G,KAAK4E,KAAKkC,OAErD9G,KAAK4/C,YAAc5/C,KAAK6G,MAAQ7G,KAAK8G,OAGjC9G,KAAK4E,KAAKmM,QAEV/Q,KAAKs+C,IAAI7L,UAAUzyC,KAAK4E,KAAKmM,OAAQ/Q,KAAK6a,QAG9C7a,KAAK0G,OAAO61B,MAAMv8B,KAAK6a,OAAOnV,EAAG1F,KAAK6a,OAAOlV,EAAG3F,KAAK6G,MAAO7G,KAAK8G,QAG7D9G,KAAK4E,KAAKkkC,OAAS9oC,KAAK4E,KAAKkkC,MAAMnnC,OAEnC3B,KAAK4E,KAAKkkC,MAAMnnC,MAAM46B,MAAMv8B,KAAKk1B,YAAYxvB,EAAG1F,KAAKk1B,YAAYvvB,IAmBzEm/C,iBAAkB,SAAUnG,EAAgBC,GAElBn1C,SAAlBm1C,IAA+BA,GAAgB,GAEnD5+C,KAAK2+C,eAAiBA,EACtB3+C,KAAK4+C,cAAgBA,EAErB5+C,KAAK2jD,aAAY,IAYrBoB,oBAAqB,SAAUC,GAE3B,MAAoB,qBAAhBA,GAAsD,uBAAhBA,EAE/B,WAEc,sBAAhBA,GAAuD,wBAAhBA,EAErC,YAIA,MAYfN,uBAAwB,WAEpB,GAAIO,GAAsBjlD,KAAKw/C,kBAC3B0F,EAAsBllD,KAAK6+C,oBAE/B7+C,MAAKw/C,kBAAoBx/C,KAAKs+C,IAAImB,qBAAqBz/C,KAAK+/C,cAAcE,qBAE1EjgD,KAAK6+C,qBAAwB7+C,KAAK2+C,iBAAmB3+C,KAAKmlD,aACrDnlD,KAAK4+C,gBAAkB5+C,KAAKolD,UAEjC,IAAIC,GAAUJ,IAAwBjlD,KAAKw/C,kBACvC8F,EAAqBJ,IAAwBllD,KAAK6+C,oBAmBtD,OAjBIyG,KAEItlD,KAAK6+C,qBAEL7+C,KAAKi/C,0BAA0BxS,WAI/BzsC,KAAKk/C,0BAA0BzS,aAInC4Y,GAAWC,IAEXtlD,KAAKg/C,oBAAoBvS,SAASzsC,KAAMilD,EAAqBC,GAG1DG,GAAWC,GAWtB3C,kBAAmB,SAAUzP,GAEzBlzC,KAAKkzC,MAAQA,EAEblzC,KAAK2jD,aAAY,IAWrBd,aAAc,SAAU3P,GAEpBlzC,KAAKkzC,MAAQA,EAEblzC,KAAK2jD,aAAY,IAUrB4B,UAAW,WAEP,GAAIpF,GAAWngD,KAAK+/C,cAAcI,QAE9BA,IAEA1rC,OAAO0rC,SAASA,EAASz6C,EAAGy6C,EAASx6C,IAyB7C+pB,QAAS,WAEL1vB,KAAKulD,YACLvlD,KAAK2jD,aAAY,IAUrBgB,aAAc,WAEV,GAAIn+C,GAAYxG,KAAK4jD,gBAErB,IAAIp9C,IAAcstB,EAAOuqB,aAAa2D,OAGlC,WADAhiD,MAAKwlD,YAoDT,IAhDAxlD,KAAKulD,YAEDvlD,KAAK+/C,cAAcK,6BAInB5vC,SAASi1C,gBAAgBhhC,MAAMg6B,UAAYhqC,OAAO8lB,YAAc,MAGhEv6B,KAAK6+C,qBAEL7+C,KAAK0lD,aAIDl/C,IAAcstB,EAAOuqB,aAAayD,UAElC9hD,KAAK2lD,cAEAn/C,IAAcstB,EAAOuqB,aAAa0D,UAElC/hD,KAAK4lD,cAAgB5lD,KAAK6lD,gBAC3B7lD,KAAK+/C,cAAcM,iBAKnBrgD,KAAK8lD,YAAW,GAChB9lD,KAAK+lD,cACL/lD,KAAK8lD,cAIL9lD,KAAK8lD,aAGJt/C,IAAcstB,EAAOuqB,aAAamC,UAEvCxgD,KAAK6G,MAAQ7G,KAAK4E,KAAKiC,MACvB7G,KAAK8G,OAAS9G,KAAK4E,KAAKkC,QAEnBN,IAAcstB,EAAOuqB,aAAa4D,aAEvCjiD,KAAK6G,MAAS7G,KAAK4E,KAAKiC,MAAQ7G,KAAKmhD,iBAAiBz7C,EAAK1F,KAAKohD,eAAe17C,EAC/E1F,KAAK8G,OAAU9G,KAAK4E,KAAKkC,OAAS9G,KAAKmhD,iBAAiBx7C,EAAK3F,KAAKohD,eAAez7C,IAIpF3F,KAAK+/C,cAAcM,kBACnB75C,IAAcstB,EAAOuqB,aAAa0D,UAAYv7C,IAAcstB,EAAOuqB,aAAa4D,YACrF,CACI,GAAIv7C,GAAS1G,KAAKsjD,gBAAgBtjD,KAAKyhD,YACvCzhD,MAAK6G,MAAQlG,KAAK0wB,IAAIrxB,KAAK6G,MAAOH,EAAOG,OACzC7G,KAAK8G,OAASnG,KAAK0wB,IAAIrxB,KAAK8G,OAAQJ,EAAOI,QAI/C9G,KAAK6G,MAAqB,EAAb7G,KAAK6G,MAClB7G,KAAK8G,OAAuB,EAAd9G,KAAK8G,OAEnB9G,KAAKgmD,gBAoBT1C,gBAAiB,SAAU7+C,GAEvB,GAAIiC,GAASjC,GAAU,GAAIqvB,GAAO9wB,UAC9B29C,EAAa3gD,KAAK6lD,eAClBtC,EAAevjD,KAAKs+C,IAAIiF,aACxB0C,EAAejmD,KAAKs+C,IAAI2H,YAE5B,IAAKtF,EAKL,CAEI,GAAIuF,GAAavF,EAAWwF,uBAE5Bz/C,GAAO61B,MAAM2pB,EAAWrrB,KAAMqrB,EAAW9oB,IAAK8oB,EAAWr/C,MAAOq/C,EAAWp/C,OAE3E,IAAIs/C,GAAKpmD,KAAK8/C,iBAEd,IAAIsG,EAAGxrB,MACP,CACI,GAAIyrB,GAA4B,WAAbD,EAAGxrB,MAAqBqrB,EAAe1C,CAC1D78C,GAAOk0B,MAAQj6B,KAAK0wB,IAAI3qB,EAAOk0B,MAAOyrB,EAAax/C,OAGvD,GAAIu/C,EAAG/oB,OACP,CACI,GAAIgpB,GAA6B,WAAdD,EAAG/oB,OAAsB4oB,EAAe1C,CAC3D78C,GAAO22B,OAAS18B,KAAK0wB,IAAI3qB,EAAO22B,OAAQgpB,EAAav/C,aApBzDJ,GAAO61B,MAAM,EAAG,EAAGgnB,EAAa18C,MAAO08C,EAAaz8C,OA4BxD,OAJAJ,GAAO61B,MACH57B,KAAKi8B,MAAMl2B,EAAOhB,GAAI/E,KAAKi8B,MAAMl2B,EAAOf,GACxChF,KAAKi8B,MAAMl2B,EAAOG,OAAQlG,KAAKi8B,MAAMl2B,EAAOI,SAEzCJ,GAcX4/C,YAAa,SAAU/K,EAAYC,GAE/B,GAAI+K,GAAevmD,KAAKsjD,gBAAgBtjD,KAAKyhD,aACzC1wC,EAAS/Q,KAAK4E,KAAKmM,OACnB4uC,EAAS3/C,KAAK2/C,MAElB,IAAIpE,EACJ,CACIoE,EAAO9kB,KAAO8kB,EAAO/kB,MAAQ,CAE7B,IAAI4rB,GAAez1C,EAAOo1C,uBAE1B,IAAInmD,KAAK6G,MAAQ0/C,EAAa1/C,QAAU7G,KAAK6+C,qBAC7C,CACI,GAAI4H,GAAcD,EAAa3rB,KAAO0rB,EAAa7gD,EAC/CghD,EAAcH,EAAa1/C,MAAQ,EAAM7G,KAAK6G,MAAQ,CAE1D6/C,GAAa/lD,KAAK2+B,IAAIonB,EAAY,EAElC,IAAI7rC,GAAS6rC,EAAaD,CAE1B9G,GAAO9kB,KAAOl6B,KAAKi8B,MAAM/hB,GAG7B9J,EAAO0T,MAAMkiC,WAAahH,EAAO9kB,KAAO,KAEpB,IAAhB8kB,EAAO9kB,OAEP8kB,EAAO/kB,QAAU2rB,EAAa1/C,MAAQ2/C,EAAa3/C,MAAQ84C,EAAO9kB,MAClE9pB,EAAO0T,MAAMmiC,YAAcjH,EAAO/kB,MAAQ,MAIlD,GAAI4gB,EACJ,CACImE,EAAOviB,IAAMuiB,EAAOtiB,OAAS,CAE7B,IAAImpB,GAAez1C,EAAOo1C,uBAE1B,IAAInmD,KAAK8G,OAASy/C,EAAaz/C,SAAW9G,KAAK6+C,qBAC/C,CACI,GAAI4H,GAAcD,EAAappB,IAAMmpB,EAAa5gD,EAC9C+gD,EAAcH,EAAaz/C,OAAS,EAAM9G,KAAK8G,OAAS,CAE5D4/C,GAAa/lD,KAAK2+B,IAAIonB,EAAY,EAElC,IAAI7rC,GAAS6rC,EAAaD,CAC1B9G,GAAOviB,IAAMz8B,KAAKi8B,MAAM/hB,GAG5B9J,EAAO0T,MAAMoiC,UAAYlH,EAAOviB,IAAM,KAEnB,IAAfuiB,EAAOviB,MAEPuiB,EAAOtiB,SAAWkpB,EAAaz/C,OAAS0/C,EAAa1/C,OAAS64C,EAAOviB,KACrErsB,EAAO0T,MAAMqiC,aAAenH,EAAOtiB,OAAS,MAKpDsiB,EAAOj6C,EAAIi6C,EAAO9kB,KAClB8kB,EAAOh6C,EAAIg6C,EAAOviB,KAYtBooB,WAAY,WAERxlD,KAAK+lD,YAAY,GAAI,GAErB,IAAIr/C,GAAS1G,KAAKsjD,gBAAgBtjD,KAAKyhD,YACvCzhD,MAAK0jD,iBAAiBh9C,EAAOG,MAAOH,EAAOI,QAAQ,IAYvDk/C,aAAc,WAELhmD,KAAK6+C,uBAEN7+C,KAAK6G,MAAQitB,EAAOnzB,KAAKsgC,MAAMjhC,KAAK6G,MAAO7G,KAAKu+C,UAAY,EAAGv+C,KAAKw+C,UAAYx+C,KAAK6G,OACrF7G,KAAK8G,OAASgtB,EAAOnzB,KAAKsgC,MAAMjhC,KAAK8G,OAAQ9G,KAAKy+C,WAAa,EAAGz+C,KAAK0+C,WAAa1+C,KAAK8G,SAG7F9G,KAAK+lD,cAEA/lD,KAAK+/C,cAAcG,YAEhBlgD,KAAK4lD,cAAgB5lD,KAAKo/C,yBAE1Bp/C,KAAKsmD,aAAY,GAAM,GAIvBtmD,KAAKsmD,YAAYtmD,KAAK+mD,sBAAuB/mD,KAAKgnD,sBAI1DhnD,KAAK6kD,0BAYTkB,YAAa,SAAUkB,EAAUC,GAEZz9C,SAAbw9C,IAA0BA,EAAWjnD,KAAK6G,MAAQ,MACpC4C,SAAdy9C,IAA2BA,EAAYlnD,KAAK8G,OAAS,KAEzD,IAAIiK,GAAS/Q,KAAK4E,KAAKmM,MAElB/Q,MAAK+/C,cAAcG,YAEpBnvC,EAAO0T,MAAMkiC,WAAa,GAC1B51C,EAAO0T,MAAMoiC,UAAY,GACzB91C,EAAO0T,MAAMmiC,YAAc,GAC3B71C,EAAO0T,MAAMqiC,aAAe,IAGhC/1C,EAAO0T,MAAM5d,MAAQogD,EACrBl2C,EAAO0T,MAAM3d,OAASogD,GAW1BvD,YAAa,SAAU9L,GAEfA,IAEA73C,KAAKwhD,cAAc36C,MAAQ,EAC3B7G,KAAKwhD,cAAc16C,OAAS,GAGhC9G,KAAKshD,gBAAkBthD,KAAKuhD,sBAUhC9kC,MAAO,SAAUwvB,GAETA,GAEAjsC,KAAKwoC,KAAK/rB,SAWlBipC,WAAY,WAER1lD,KAAK6G,MAAQ7G,KAAKs+C,IAAIiF,aAAa18C,MACnC7G,KAAK8G,OAAS9G,KAAKs+C,IAAIiF,aAAaz8C,QAWxCg/C,WAAY,SAAUqB,GAElB,GAIIpK,GAJAr2C,EAAS1G,KAAKsjD,gBAAgBtjD,KAAKyhD,aACnC56C,EAAQH,EAAOG,MACfC,EAASJ,EAAOI,MAMhBi2C,GAFAoK,EAEaxmD,KAAK2+B,IAAKx4B,EAAS9G,KAAK4E,KAAKkC,OAAUD,EAAQ7G,KAAK4E,KAAKiC,OAIzDlG,KAAK0wB,IAAKvqB,EAAS9G,KAAK4E,KAAKkC,OAAUD,EAAQ7G,KAAK4E,KAAKiC,OAG1E7G,KAAK6G,MAAQlG,KAAKi8B,MAAM58B,KAAK4E,KAAKiC,MAAQk2C,GAC1C/8C,KAAK8G,OAASnG,KAAKi8B,MAAM58B,KAAK4E,KAAKkC,OAASi2C,IAWhD4I,YAAa,WAET,GAAIj/C,GAAS1G,KAAKsjD,gBAAgBtjD,KAAKyhD,YAEvCzhD,MAAK6G,MAAQH,EAAOG,MACpB7G,KAAK8G,OAASJ,EAAOI,OAEjB9G,KAAK4lD,eAML5lD,KAAKw+C,WAELx+C,KAAK6G,MAAQlG,KAAK0wB,IAAIrxB,KAAK6G,MAAO7G,KAAKw+C,WAGvCx+C,KAAK0+C,YAEL1+C,KAAK8G,OAASnG,KAAK0wB,IAAIrxB,KAAK8G,OAAQ9G,KAAK0+C,cAcjD0I,uBAAwB,WAEpB,GAAIC,GAAW72C,SAASQ,cAAc,MAMtC,OAJAq2C,GAAS5iC,MAAMk7B,OAAS,IACxB0H,EAAS5iC,MAAM2H,QAAU,IACzBi7B,EAAS5iC,MAAM6iC,WAAa,OAErBD,GAmBXE,gBAAiB,SAAUpmD,EAAWqmD,GAElC,GAAIxnD,KAAK4lD,aAEL,OAAO,CAGX,KAAK5lD,KAAK+/C,cAAcC,mBACxB,CAEI,GAAI5Q,GAAQpvC,IAIZ,YAHAynD,YAAW,WACPrY,EAAM6T,mBACP,IAIP,GAA2C,mBAAvCjjD,KAAK+/C,cAAcO,gBACvB,CACI,GAAIxX,GAAQ9oC,KAAK4E,KAAKkkC,KAEtB,IAAIA,EAAM4e,eACN5e,EAAM4e,gBAAkB5e,EAAM6e,eAC7BH,GAAmBA,KAAoB,GAGxC,WADA1e,GAAM4e,cAAcE,mBAAmB,kBAAmB5nD,KAAKunD,gBAAiBvnD,MAAOmB,GAAW,IAKjF,mBAAdA,IAA6BnB,KAAK4E,KAAKwoC,aAAetZ,EAAO2B,SAEpEz1B,KAAK4E,KAAKvC,MAAMwlD,SAAW1mD,EAG/B,IAAIkmD,GAAWrnD,KAAKm/C,gBAEfkI,KAEDrnD,KAAK8nD,uBAEL9nD,KAAKo/C,yBAA2Bp/C,KAAKonD,yBACrCC,EAAWrnD,KAAKo/C,yBAGpB,IAAI2I,IACAC,cAAeX,EAKnB,IAFArnD,KAAKq/C,iBAAiB5S,SAASzsC,KAAM+nD,GAEjC/nD,KAAKo/C,yBACT,CAGI,GAAIruC,GAAS/Q,KAAK4E,KAAKmM,OACnB3O,EAAS2O,EAAO4vC,UACpBv+C,GAAO6lD,aAAaZ,EAAUt2C,GAC9Bs2C,EAASa,YAAYn3C,GAYzB,MATI/Q,MAAK4E,KAAK6uC,OAAO0U,mBAEjBd,EAASrnD,KAAK4E,KAAK6uC,OAAO2U,mBAAmBC,QAAQC,sBAIrDjB,EAASrnD,KAAK4E,KAAK6uC,OAAO2U,sBAGvB,GAWXG,eAAgB,WAEZ,MAAKvoD,MAAK4lD,cAAiB5lD,KAAK+/C,cAAcC,oBAK9CxvC,SAASxQ,KAAK4E,KAAK6uC,OAAO+U,qBAEnB,IALI,GAgBfV,qBAAsB,WAElB,GAAIT,GAAWrnD,KAAKo/C,wBAEpB,IAAIiI,GAAYA,EAAS1G,WACzB,CAGI,GAAIv+C,GAASilD,EAAS1G,UACtBv+C,GAAO6lD,aAAajoD,KAAK4E,KAAKmM,OAAQs2C,GACtCjlD,EAAOuG,YAAY0+C,GAGvBrnD,KAAKo/C,yBAA2B,MAYpCqJ,eAAgB,SAAUC,GAEtB,GAAIC,KAAkB3oD,KAAKo/C,yBACvBiI,EAAWrnD,KAAKo/C,0BAA4Bp/C,KAAKm/C,gBAEjDuJ,IAEIC,GAAiB3oD,KAAKojD,sBAAwBtvB,EAAOuqB,aAAayD,YAG9DuF,IAAarnD,KAAK4E,KAAKmM,SAEvB/Q,KAAKihD,oBACD2H,YAAavB,EAAS5iC,MAAM5d,MAC5BgiD,aAAcxB,EAAS5iC,MAAM3d,QAGjCugD,EAAS5iC,MAAM5d,MAAQ,OACvBwgD,EAAS5iC,MAAM3d,OAAS,SAO5B9G,KAAKihD,qBAELoG,EAAS5iC,MAAM5d,MAAQ7G,KAAKihD,mBAAmB2H,YAC/CvB,EAAS5iC,MAAM3d,OAAS9G,KAAKihD,mBAAmB4H,aAEhD7oD,KAAKihD,mBAAqB,MAI9BjhD,KAAK0jD,iBAAiB1jD,KAAKkhD,UAAUr6C,MAAO7G,KAAKkhD,UAAUp6C,QAAQ,GACnE9G,KAAK+lD,gBAYbhD,iBAAkB,SAAU7P,GAExBlzC,KAAKkzC,MAAQA,EAETlzC,KAAK4lD,cAEL5lD,KAAKyoD,gBAAe,GAEpBzoD,KAAK2kD,eACL3kD,KAAK2jD,aAAY,GAEjB3jD,KAAK8oD,gBAAgBrc,SAASzsC,KAAK6G,MAAO7G,KAAK8G,UAI/C9G,KAAKyoD,gBAAe,GAEpBzoD,KAAK8nD,uBAEL9nD,KAAK2kD,eACL3kD,KAAK2jD,aAAY,GAEjB3jD,KAAK+oD,gBAAgBtc,SAASzsC,KAAK6G,MAAO7G,KAAK8G,SAGnD9G,KAAKs/C,mBAAmB7S,SAASzsC,OAYrCijD,gBAAiB,SAAU/P,GAEvBlzC,KAAKkzC,MAAQA,EAEblzC,KAAK8nD,uBAELpzC,QAAQukB,KAAK,+FAEbj5B,KAAKu/C,kBAAkB9S,SAASzsC,OAmBpC29C,YAAa,SAAUh0B,EAAQ9iB,EAAOC,EAAQkiD,GAM1C,GAJcv/C,SAAV5C,IAAuBA,EAAQ7G,KAAK6G,OACzB4C,SAAX3C,IAAwBA,EAAS9G,KAAK8G,QACxB2C,SAAdu/C,IAA2BA,GAAY,IAEtCr/B,IAAWA,EAAc,MAE1B,MAAOA,EAMX,IAHAA,EAAOhoB,MAAM+D,EAAI,EACjBikB,EAAOhoB,MAAMgE,EAAI,EAEZgkB,EAAO9iB,OAAS,GAAO8iB,EAAO7iB,QAAU,GAAgB,GAATD,GAA0B,GAAVC,EAEhE,MAAO6iB,EAGX,IAAIs/B,GAAUpiD,EACVqiD,EAAWv/B,EAAO7iB,OAASD,EAAS8iB,EAAO9iB,MAE3CsiD,EAAWx/B,EAAO9iB,MAAQC,EAAU6iB,EAAO7iB,OAC3CsiD,EAAUtiD,EAEVuiD,EAAgBF,EAAUtiD,CA0B9B,OAtBIwiD,GAFAA,EAEeL,GAICA,EAGhBK,GAEA1/B,EAAO9iB,MAAQlG,KAAKq3B,MAAMixB,GAC1Bt/B,EAAO7iB,OAASnG,KAAKq3B,MAAMkxB,KAI3Bv/B,EAAO9iB,MAAQlG,KAAKq3B,MAAMmxB,GAC1Bx/B,EAAO7iB,OAASnG,KAAKq3B,MAAMoxB,IAOxBz/B,GAWXpmB,QAAS,WAELvD,KAAK4E,KAAK6mC,SAASM,OAAO/rC,KAAKkjD,aAAcljD,MAE7CyU,OAAO8/B,oBAAoB,oBAAqBv0C,KAAK0iD,oBAAoB,GACzEjuC,OAAO8/B,oBAAoB,SAAUv0C,KAAK4iD,eAAe,GAErD5iD,KAAK+/C,cAAcC,qBAEnBxvC,SAAS+jC,oBAAoB,yBAA0Bv0C,KAAK8iD,mBAAmB,GAC/EtyC,SAAS+jC,oBAAoB,sBAAuBv0C,KAAK8iD,mBAAmB,GAC5EtyC,SAAS+jC,oBAAoB,qBAAsBv0C,KAAK8iD,mBAAmB,GAC3EtyC,SAAS+jC,oBAAoB,mBAAoBv0C,KAAK8iD,mBAAmB,GAEzEtyC,SAAS+jC,oBAAoB,wBAAyBv0C,KAAKgjD,kBAAkB,GAC7ExyC,SAAS+jC,oBAAoB,qBAAsBv0C,KAAKgjD,kBAAkB,GAC1ExyC,SAAS+jC,oBAAoB,oBAAqBv0C,KAAKgjD,kBAAkB,GACzExyC,SAAS+jC,oBAAoB,kBAAmBv0C,KAAKgjD,kBAAkB,MAOnFlvB,EAAOuqB,aAAah7C,UAAUC,YAAcwwB,EAAOuqB,aAYnDz6C,OAAOC,eAAeiwB,EAAOuqB,aAAah7C,UAAW,kBAEjDS,IAAK,WACD,GAAI9D,KAAK0gD,gBACJ1gD,KAAK4lD,eAAiB5lD,KAAKo/C,yBAE5B,MAAO,KAGX,IAAIuB,GAAa3gD,KAAK4E,KAAKmM,QAAU/Q,KAAK4E,KAAKmM,OAAO4vC,UACtD,OAAOA,IAAc,QA0C7B/8C,OAAOC,eAAeiwB,EAAOuqB,aAAah7C,UAAW,aAEjDS,IAAK,WAED,MAAO9D,MAAKugD,YAIhBv8C,IAAK,SAAUC,GAaX,MAXIA,KAAUjE,KAAKugD,aAEVvgD,KAAK4lD,eAEN5lD,KAAK0jD,iBAAiB1jD,KAAKkhD,UAAUr6C,MAAO7G,KAAKkhD,UAAUp6C,QAAQ,GACnE9G,KAAK2jD,aAAY,IAGrB3jD,KAAKugD,WAAat8C,GAGfjE,KAAKugD,cAcpB38C,OAAOC,eAAeiwB,EAAOuqB,aAAah7C,UAAW,uBAEjDS,IAAK,WAED,MAAO9D,MAAKygD,sBAIhBz8C,IAAK,SAAUC,GAmBX,MAjBIA,KAAUjE,KAAKygD,uBAGXzgD,KAAK4lD,cAEL5lD,KAAKyoD,gBAAe,GACpBzoD,KAAKygD,qBAAuBx8C,EAC5BjE,KAAKyoD,gBAAe,GAEpBzoD,KAAK2jD,aAAY,IAIjB3jD,KAAKygD,qBAAuBx8C,GAI7BjE,KAAKygD,wBAgBpB78C,OAAOC,eAAeiwB,EAAOuqB,aAAah7C,UAAW,oBAEjDS,IAAK,WAED,MAAO9D,MAAK4lD,aAAe5lD,KAAKygD,qBAAuBzgD,KAAKugD,cAkBpE38C,OAAOC,eAAeiwB,EAAOuqB,aAAah7C,UAAW,yBAEjDS,IAAK,WAED,MAAO9D,MAAK8+C,wBAIhB96C,IAAK,SAAUC,GAEPA,IAAUjE,KAAK8+C,yBAEf9+C,KAAK8+C,uBAAyB76C,EAC9BjE,KAAK2jD,aAAY,OA0B7B//C,OAAOC,eAAeiwB,EAAOuqB,aAAah7C,UAAW,uBAEjDS,IAAK,WAED,MAAO9D,MAAK++C,sBAIhB/6C,IAAK,SAAUC,GAEPA,IAAUjE,KAAK++C,uBAEf/+C,KAAK++C,qBAAuB96C,EAC5BjE,KAAK2jD,aAAY,OAa7B//C,OAAOC,eAAeiwB,EAAOuqB,aAAah7C,UAAW,gBAEjDS,IAAK,WACD,SAAU0M,SAA4B,mBAClCA,SAAkC,yBAClCA,SAA+B,sBAC/BA,SAA8B,wBAY1C5M,OAAOC,eAAeiwB,EAAOuqB,aAAah7C,UAAW,cAEjDS,IAAK,WACD,MAA4D,aAArD9D,KAAK+kD,oBAAoB/kD,KAAKw/C,sBAY7C57C,OAAOC,eAAeiwB,EAAOuqB,aAAah7C,UAAW,eAEjDS,IAAK,WACD,MAA4D,cAArD9D,KAAK+kD,oBAAoB/kD,KAAKw/C,sBAe7C57C,OAAOC,eAAeiwB,EAAOuqB,aAAah7C,UAAW,kBAEjDS,IAAK,WACD,MAAQ9D,MAAK8G,OAAS9G,KAAK6G,SAenCjD,OAAOC,eAAeiwB,EAAOuqB,aAAah7C,UAAW,mBAEjDS,IAAK,WACD,MAAQ9D,MAAK6G,MAAQ7G,KAAK8G,UA6BlCgtB,EAAOw1B,KAAO,SAAUziD,EAAOC,EAAQL,EAAUrE,EAAQupC,EAAOzqC,EAAaC,EAAWooD,GAiZpF,MA3YAvpD,MAAK4X,GAAKkc,EAAOyB,MAAMhxB,KAAKvE,MAAQ,EAKpCA,KAAKsyC,OAAS,KAKdtyC,KAAKupD,cAAgBA,EAMrBvpD,KAAKoC,OAAS,GAWdpC,KAAK6G,MAAQ,IAWb7G,KAAK8G,OAAS,IASd9G,KAAKqB,WAAa,EAMlBrB,KAAKqI,OAAS,IAMdrI,KAAKsI,QAAU,IAMftI,KAAKkB,aAAc,EAMnBlB,KAAKmB,WAAY,EAMjBnB,KAAKoB,uBAAwB,EAM7BpB,KAAKyG,SAAW,KAMhBzG,KAAKotC,WAAatZ,EAAO0B,KAKzBx1B,KAAK2rC,MAAQ,KAMb3rC,KAAK8rC,UAAW,EAMhB9rC,KAAKwpD,WAAY,EAMjBxpD,KAAKypD,IAAM,KAKXzpD,KAAK4gC,IAAM,KAKX5gC,KAAK6mC,KAAO,KAKZ7mC,KAAK6oC,MAAQ,KAKb7oC,KAAK8oC,MAAQ,KAKb9oC,KAAK+oC,KAAO,KAKZ/oC,KAAKgpC,KAAO,KAKZhpC,KAAK0pD,IAAM,KAKX1pD,KAAK2B,MAAQ,KAKb3B,KAAKipC,MAAQ,KAKbjpC,KAAKqC,MAAQ,KAKbrC,KAAKkpC,KAAO,KAKZlpC,KAAKmpC,OAAS,KAKdnpC,KAAK8E,MAAQ,KAKb9E,KAAKqpC,QAAU,KAKfrpC,KAAK2xC,QAAU,KAKf3xC,KAAKspC,IAAM,KAKXtpC,KAAKyzC,OAAS3f,EAAO61B,OAKrB3pD,KAAK4oC,OAAS,KAKd5oC,KAAK+Q,OAAS,KAKd/Q,KAAKoN,QAAU,KAKfpN,KAAK8sC,MAAQ,KAKb9sC,KAAKopC,UAAY,KAKjBppC,KAAKoI,OAAS,KASdpI,KAAK4pD,YAAa,EAOlB5pD,KAAK6pD,UAAW,EAOhB7pD,KAAK8pD,aAAc,EAOnB9pD,KAAK+pD,UAAY,EAKjB/pD,KAAKurC,QAAU,KAKfvrC,KAAKyrC,SAAW,KAKhBzrC,KAAKgqD,OAAS,KAKdhqD,KAAKiqD,QAAU,KAMfjqD,KAAKkqD,SAAU,EAMflqD,KAAKmqD,aAAc,EAQnBnqD,KAAKoqD,gBAAkB,EAOvBpqD,KAAKqqD,iBAAmB,EAMxBrqD,KAAKsqD,WAAa,EAMlBtqD,KAAKuqD,WAAa,EAMlBvqD,KAAKwqD,WAAa,EAMlBxqD,KAAKitC,YAAa,EAQlBjtC,KAAKyqD,mBAAqB,GAAI32B,GAAO0W,OAKrCxqC,KAAK0qD,mBAAoB,EAMzB1qD,KAAK2qD,qBAAuB,EAGH,IAArBpyB,UAAU70B,QAAwC,gBAAjB60B,WAAU,GAE3Cv4B,KAAKuyC,YAAYha,UAAU,KAI3Bv4B,KAAKsyC,QAAWsY,aAAa,GAER,mBAAV/jD,KAEP7G,KAAKqI,OAASxB,GAGI,mBAAXC,KAEP9G,KAAKsI,QAAUxB,GAGK,mBAAbL,KAEPzG,KAAKotC,WAAa3mC,GAGA,mBAAXrE,KAEPpC,KAAKoC,OAASA,GAGS,mBAAhBlB,KAEPlB,KAAKkB,YAAcA,GAGE,mBAAdC,KAEPnB,KAAKmB,UAAYA,GAGrBnB,KAAKspC,IAAM,GAAIxV,GAAO+2B,sBAAsB5a,KAAK6a,MAAQnqD,KAAKm5B,UAAU5pB,aAExElQ,KAAK2rC,MAAQ,GAAI7X,GAAOiW,aAAa/pC,KAAM2rC,IAG/C3rC,KAAKyzC,OAAOsX,UAAU/qD,KAAKsrC,KAAMtrC,MAE1BA,MAIX8zB,EAAOw1B,KAAKjmD,WAQRkvC,YAAa,SAAUD,GAEnBtyC,KAAKsyC,OAASA,EAEgB7oC,SAA1B6oC,EAAoB,cAEpBtyC,KAAKsyC,OAAOsY,aAAc,GAG1BtY,EAAc,QAEdtyC,KAAKqI,OAASiqC,EAAc,OAG5BA,EAAe,SAEftyC,KAAKsI,QAAUgqC,EAAe,QAG9BA,EAAiB,WAEjBtyC,KAAKotC,WAAakF,EAAiB,UAGnCA,EAAe,SAEftyC,KAAKoC,OAASkwC,EAAe,QAG7BA,EAAoB,cAEpBtyC,KAAKkB,YAAcoxC,EAAoB,aAGvCA,EAAkB,YAElBtyC,KAAKmB,UAAYmxC,EAAkB,WAGnCA,EAAmB,aAEnBtyC,KAAKqB,WAAaixC,EAAmB,YAGrCA,EAA8B,wBAE9BtyC,KAAKoB,sBAAwBkxC,EAA8B,uBAG3DA,EAAsB,gBAEtBtyC,KAAKupD,cAAgBjX,EAAsB,cAG/C,IAAI0Y,KAAS/a,KAAK6a,MAAQnqD,KAAKm5B,UAAU5pB,WAErCoiC,GAAa,OAEb0Y,EAAO1Y,EAAa,MAGxBtyC,KAAKspC,IAAM,GAAIxV,GAAO+2B,oBAAoBG,EAE1C,IAAIrf,GAAQ,IAER2G,GAAc,QAEd3G,EAAQ2G,EAAc,OAG1BtyC,KAAK2rC,MAAQ,GAAI7X,GAAOiW,aAAa/pC,KAAM2rC,IAU/CL,KAAM,WAEEtrC,KAAK8rC,WAKT9rC,KAAKurC,QAAU,GAAIzX,GAAO0W,OAC1BxqC,KAAKyrC,SAAW,GAAI3X,GAAO0W,OAC3BxqC,KAAKgqD,OAAS,GAAIl2B,GAAO0W,OACzBxqC,KAAKiqD,QAAU,GAAIn2B,GAAO0W,OAE1BxqC,KAAK8rC,UAAW,EAEhB9rC,KAAKgpC,KAAOlV,EAAOnzB,KAEnBX,KAAK2B,MAAQ,GAAImyB,GAAOuqB,aAAar+C,KAAMA,KAAKqI,OAAQrI,KAAKsI,SAC7DtI,KAAKqC,MAAQ,GAAIyxB,GAAOlkB,MAAM5P,MAE9BA,KAAKirD,gBAELjrD,KAAK8E,MAAQ,GAAIgvB,GAAOonB,MAAMl7C,MAC9BA,KAAK4gC,IAAM,GAAI9M,GAAOo3B,kBAAkBlrD,MACxCA,KAAK6mC,KAAO,GAAI/S,GAAOq3B,kBAAkBnrD,MACzCA,KAAK6oC,MAAQ,GAAI/U,GAAOs3B,MAAMprD,MAC9BA,KAAK+oC,KAAO,GAAIjV,GAAOu3B,OAAOrrD,MAC9BA,KAAKkpC,KAAO,GAAIpV,GAAOw3B,KAAKtrD,MAC5BA,KAAKmpC,OAAS,GAAIrV,GAAOy3B,aAAavrD,MACtCA,KAAK8oC,MAAQ,GAAIhV,GAAO03B,MAAMxrD,MAC9BA,KAAKipC,MAAQ,GAAInV,GAAO23B,aAAazrD,MACrCA,KAAKqpC,QAAU,GAAIvV,GAAO8gB,QAAQ50C,KAAMA,KAAKupD,eAC7CvpD,KAAKopC,UAAY,GAAItV,GAAO43B,UAAU1rD,MACtCA,KAAKoI,OAAS,GAAI0rB,GAAO6S,OAAO3mC,MAChCA,KAAK2xC,QAAU,GAAI7d,GAAO4d,cAAc1xC,MACxCA,KAAK0pD,IAAM,GAAI51B,GAAO63B,IAAI3rD,MAE1BA,KAAKkpC,KAAKoC,OACVtrC,KAAKqC,MAAMipC,OACXtrC,KAAK8E,MAAMwmC,OACXtrC,KAAK2B,MAAM2pC,OACXtrC,KAAK8oC,MAAMwC,OACXtrC,KAAKipC,MAAMqC,OACXtrC,KAAK2rC,MAAML,OAEPtrC,KAAKsyC,OAAoB,aAEzBtyC,KAAK8sC,MAAQ,GAAIhZ,GAAOoF,MAAM0yB,MAAM5rD,MACpCA,KAAK8sC,MAAMxB,QAIXtrC,KAAK8sC,OAAUxmC,UAAW,aAAgBggC,OAAQ,aAAgB7pB,MAAO,cAG7Ezc,KAAK6rD,kBAEL7rD,KAAKwpD,WAAY,EAIbxpD,KAAKypD,IAFLzpD,KAAKsyC,QAAUtyC,KAAKsyC,OAAwB,gBAEjC,GAAIxe,GAAOg4B,sBAAsB9rD,KAAMA,KAAKsyC,OAAwB,iBAIpE,GAAIxe,GAAOg4B,sBAAsB9rD,MAAM,GAGtDA,KAAKitC,YAAa,EAEdx4B,OAAc,SAETA,OAAqB,cAAMA,OAAqB,eAAMA,OAAqB,aAAEs3C,YAE9Et3C,OAAOu3C,QAIfhsD,KAAKypD,IAAIr+C,UAUbygD,gBAAiB,WAEb,IAAIp3C,OAAqB,eAAKA,OAAqB,aAAEw3C,WAArD,CAKA,GAAIx4C,GAAIqgB,EAAO3zB,QACXke,EAAI,SACJtZ,EAAI,aACJE,EAAI,CAkBR,IAhBIjF,KAAKotC,aAAetZ,EAAO4B,OAE3BrX,EAAI,QACJpZ,KAEKjF,KAAKotC,YAActZ,EAAO6B,WAE/BtX,EAAI,YAGJre,KAAKyzC,OAAOyY,WAEZnnD,EAAI,WACJE,KAGAjF,KAAKyzC,OAAOgP,OAChB,CAWI,IAAK,GAVDpqB,IACA,oBAAsB5kB,EAAI,cAAgB3T,KAAKK,QAAU,MAAQke,EAAI,MAAQtZ,EAAI,wCACjF,sBACA,sBACA,uCACA,sBACA,sBACA,uBAGKtB,EAAI,EAAO,EAAJA,EAAOA,IAIf40B,EAAK9zB,KAFDU,EAAJxB,EAEU,mCAIA,mCAIlBiR,SAAQC,IAAIxN,MAAMuN,QAAS2jB,OAEtB5jB,QAAgB,SAErBC,QAAQC,IAAI,WAAalB,EAAI,cAAgB3T,KAAKK,QAAU,MAAQke,EAAI,MAAQtZ,EAAI,yBAW5FkmD,cAAe,WAiCX,GA7BIjrD,KAAK+Q,OAFL/Q,KAAKsyC,OAAiB,SAERxe,EAAO4e,OAAOtqC,OAAOpI,KAAK6G,MAAO7G,KAAK8G,OAAQ9G,KAAKsyC,OAAiB,UAIpExe,EAAO4e,OAAOtqC,OAAOpI,KAAK6G,MAAO7G,KAAK8G,QAGpD9G,KAAKsyC,OAAoB,YAEzBtyC,KAAK+Q,OAAO0T,MAAQzkB,KAAKsyC,OAAoB,YAI7CtyC,KAAK+Q,OAAO0T,MAAM,uBAAyB,4BAG3CzkB,KAAKyzC,OAAO2O,WAIRpiD,KAAK+Q,OAAO8e,aAFZ7vB,KAAKotC,aAAetZ,EAAO2B,QAEA,GAKA,GAI/Bz1B,KAAKotC,aAAetZ,EAAO6B,UAAY31B,KAAKotC,aAAetZ,EAAO2B,QAAWz1B,KAAKotC,aAAetZ,EAAO0B,MAAQx1B,KAAKyzC,OAAOz4B,SAAU,EAC1I,CACI,IAAIhb,KAAKyzC,OAAO1iC,OAeZ,KAAM,IAAIlI,OAAM,iEAbZ7I,MAAKotC,aAAetZ,EAAO0B,OAE3Bx1B,KAAKotC,WAAatZ,EAAO2B,QAG7Bz1B,KAAKyG,SAAW,GAAI3G,MAAK2vB,eAAezvB,KAAK6G,MAAO7G,KAAK8G,QAAU7F,KAAQjB,KAAK+Q,OACZ7P,YAAelB,KAAKkB,YACpBG,WAAcrB,KAAKqB,WACnBC,mBAAqB,IACzFtB,KAAKoN,QAAUpN,KAAKyG,SAAS2G,YAUjCpN,MAAKotC,WAAatZ,EAAO4B,MAEzB11B,KAAKyG,SAAW,GAAI3G,MAAK0iB,cAAcxiB,KAAK6G,MAAO7G,KAAK8G,QAAU7F,KAAQjB,KAAK+Q,OACX7P,YAAelB,KAAKkB,YACpBG,WAAcrB,KAAKqB,WACnBF,UAAanB,KAAKmB,UAClBC,sBAAyBpB,KAAKoB,wBAClGpB,KAAKoN,QAAU,KAEfpN,KAAK+Q,OAAOqiC,iBAAiB,mBAAoBpzC,KAAK8jB,YAAYoU,KAAKl4B,OAAO,GAC9EA,KAAK+Q,OAAOqiC,iBAAiB,uBAAwBpzC,KAAKmsD,gBAAgBj0B,KAAKl4B,OAAO,EAGtFA,MAAKotC,aAAetZ,EAAO6B,WAE3B31B,KAAKqC,MAAMwlD,SAAW7nD,KAAKmB,UAE3B2yB,EAAO4e,OAAO0Z,SAASpsD,KAAK+Q,OAAQ/Q,KAAKoC,QAAQ,GACjD0xB,EAAO4e,OAAOE,eAAe5yC,KAAK+Q,UAY1C+S,YAAa,SAAUovB,GAEnBA,EAAMmZ,iBAENrsD,KAAKyG,SAASqd,aAAc,GAUhCqoC,gBAAiB,WAEbnsD,KAAKyG,SAAS6c,cAEdtjB,KAAK6oC,MAAMyjB,kBAEXtsD,KAAKyG,SAASqd,aAAc,GAWhCwiB,OAAQ,SAAU4C,GAId,GAFAlpC,KAAKkpC,KAAK5C,OAAO4C,GAEblpC,KAAKitC,WAYL,MAVAjtC,MAAKusD,YAAY,EAAMvsD,KAAKkpC,KAAKsjB,YAGjCxsD,KAAKqC,MAAMsC,kBAGX3E,KAAKysD,aAAazsD,KAAKkpC,KAAKwjB,WAAa1sD,KAAKkpC,KAAKsjB,iBAEnDxsD,KAAKitC,YAAa,EAMtB,IAAIjtC,KAAKwqD,WAAa,IAAMxqD,KAAK0qD,kBAGzB1qD,KAAKkpC,KAAKA,KAAOlpC,KAAK2qD,uBAGtB3qD,KAAK2qD,qBAAuB3qD,KAAKkpC,KAAKA,KAAO,IAG7ClpC,KAAKyqD,mBAAmBhe,YAI5BzsC,KAAKsqD,WAAa,EAClBtqD,KAAKwqD,WAAa,EAGlBxqD,KAAKysD,aAAazsD,KAAKkpC,KAAKwjB,WAAa1sD,KAAKkpC,KAAKsjB,gBAGvD,CAEI,GAAIG,GAAkC,IAAvB3sD,KAAKkpC,KAAKwjB,WAAsB1sD,KAAKkpC,KAAKsjB,UAGzDxsD,MAAKsqD,YAAc3pD,KAAK2+B,IAAI3+B,KAAK0wB,IAAe,EAAXs7B,EAAc3sD,KAAKkpC,KAAK0jB,SAAU,EAIvE,IAAI/lC,GAAQ,CASZ,KAPA7mB,KAAKqqD,iBAAmB1pD,KAAKq3B,MAAMh4B,KAAKsqD,WAAaqC,GAEjD3sD,KAAK0qD,oBAEL1qD,KAAKqqD,iBAAmB1pD,KAAK0wB,IAAI,EAAGrxB,KAAKqqD,mBAGtCrqD,KAAKsqD,YAAcqC,IAEtB3sD,KAAKsqD,YAAcqC,EACnB3sD,KAAKoqD,gBAAkBvjC,EAEvB7mB,KAAKusD,YAAY,EAAMvsD,KAAKkpC,KAAKsjB,YAGjCxsD,KAAKqC,MAAMsC,kBAEXkiB,KAEI7mB,KAAK0qD,mBAA+B,IAAV7jC,KAO9BA,EAAQ7mB,KAAKuqD,WAEbvqD,KAAKwqD,aAEA3jC,EAAQ7mB,KAAKuqD,aAGlBvqD,KAAKwqD,WAAa,GAGtBxqD,KAAKuqD,WAAa1jC,EAGlB7mB,KAAKysD,aAAazsD,KAAKsqD,WAAaqC,KAY5CJ,YAAa,SAAUM,GAEd7sD,KAAKkqD,SAAYlqD,KAAK8pD,aA8BvB9pD,KAAK2B,MAAMkoC,cACX7pC,KAAK2rC,MAAM9B,cACX7pC,KAAK8sC,MAAMxmC,cA9BPtG,KAAK6pD,WAEL7pD,KAAK8pD,aAAc,GAGvB9pD,KAAK2B,MAAM2E,YACXtG,KAAK8sC,MAAMxmC,YACXtG,KAAK8E,MAAM8jC,OAAOtiC,YAClBtG,KAAKqpC,QAAQ/iC,YACbtG,KAAK2rC,MAAMrlC,UAAUumD,GACrB7sD,KAAK2xC,QAAQrrC,UAAUumD,GACvB7sD,KAAKqC,MAAMiE,YAEXtG,KAAK2rC,MAAMrF,SACXtmC,KAAKqC,MAAMikC,SACXtmC,KAAKmpC,OAAO7C,OAAOumB,GACnB7sD,KAAKipC,MAAM3C,SACXtmC,KAAK8oC,MAAMxC,SACXtmC,KAAKqpC,QAAQ/C,SACbtmC,KAAKopC,UAAU9C,SACftmC,KAAK2xC,QAAQrL,SAEbtmC,KAAKqC,MAAM0vC,aACX/xC,KAAK2xC,QAAQI,eA2BrB0a,aAAc,SAAUtf,GAEhBntC,KAAK4pD,aAKT5pD,KAAK2rC,MAAMjC,UAAUyD,GACrBntC,KAAKyG,SAASO,OAAOhH,KAAKqC,OAE1BrC,KAAK2xC,QAAQ3qC,OAAOmmC,GACpBntC,KAAK2rC,MAAM3kC,OAAOmmC,GAClBntC,KAAK2xC,QAAQF,WAAWtE,KAU5B2f,WAAY,WAER9sD,KAAK6pD,UAAW,EAChB7pD,KAAK8pD,aAAc,EACnB9pD,KAAK+pD,UAAY,GASrBgD,YAAa,WAET/sD,KAAK6pD,UAAW,EAChB7pD,KAAK8pD,aAAc,GAUvBkD,KAAM,WAEFhtD,KAAK8pD,aAAc,EACnB9pD,KAAK+pD,aASTxmD,QAAS,WAELvD,KAAKypD,IAAIz+C,OAEThL,KAAK2rC,MAAMpoC,UACXvD,KAAKipC,MAAM1lC,UAEXvD,KAAK2B,MAAM4B,UACXvD,KAAKqC,MAAMkB,UACXvD,KAAK8oC,MAAMvlC,UACXvD,KAAKqpC,QAAQ9lC,UAEbvD,KAAK2rC,MAAQ,KACb3rC,KAAK6oC,MAAQ,KACb7oC,KAAK8oC,MAAQ,KACb9oC,KAAK+oC,KAAO,KACZ/oC,KAAKipC,MAAQ,KACbjpC,KAAKqC,MAAQ,KACbrC,KAAKkpC,KAAO,KACZlpC,KAAK8E,MAAQ,KACb9E,KAAK8rC,UAAW,EAEhB9rC,KAAKyG,SAASlD,SAAQ,GACtBuwB,EAAO4e,OAAOua,cAAcjtD,KAAK+Q,QAEjC+iB,EAAOyB,MAAMv1B,KAAK4X,IAAM;EAW5Bq8B,WAAY,SAAUf,GAGblzC,KAAKkqD,UAENlqD,KAAKkqD,SAAU,EACflqD,KAAKkpC,KAAK+K,aACVj0C,KAAKipC,MAAMikB,UACXltD,KAAKurC,QAAQkB,SAASyG,GAGlBlzC,KAAKyzC,OAAO0Z,SAAWntD,KAAKyzC,OAAO2Z,MAEnCptD,KAAK4pD,YAAa,KAa9B1V,YAAa,SAAUhB,GAGflzC,KAAKkqD,UAAYlqD,KAAKmqD,cAEtBnqD,KAAKkqD,SAAU,EACflqD,KAAKkpC,KAAKgL,cACVl0C,KAAK8oC,MAAMrsB,QACXzc,KAAKipC,MAAMokB,YACXrtD,KAAKyrC,SAASgB,SAASyG,GAGnBlzC,KAAKyzC,OAAO0Z,SAAWntD,KAAKyzC,OAAO2Z,MAEnCptD,KAAK4pD,YAAa,KAa9B7V,UAAW,SAAUb,GAEjBlzC,KAAKgqD,OAAOvd,SAASyG,GAEhBlzC,KAAKqC,MAAM2vC,yBAEZhyC,KAAKi0C,WAAWf,IAYxBc,UAAW,SAAUd,GAEjBlzC,KAAKiqD,QAAQxd,SAASyG,GAEjBlzC,KAAKqC,MAAM2vC,yBAEZhyC,KAAKk0C,YAAYhB,KAO7Bpf,EAAOw1B,KAAKjmD,UAAUC,YAAcwwB,EAAOw1B,KAQ3C1lD,OAAOC,eAAeiwB,EAAOw1B,KAAKjmD,UAAW,UAEzCS,IAAK,WACD,MAAO9D,MAAKkqD,SAGhBlmD,IAAK,SAAUC,GAEPA,KAAU,GAENjE,KAAKkqD,WAAY,IAEjBlqD,KAAKkqD,SAAU,EACflqD,KAAKipC,MAAMikB,UACXltD,KAAKkpC,KAAK+K,aACVj0C,KAAKurC,QAAQkB,SAASzsC,OAE1BA,KAAKmqD,aAAc,IAIfnqD,KAAKkqD,UAELlqD,KAAKkqD,SAAU,EACflqD,KAAK8oC,MAAMrsB,QACXzc,KAAKipC,MAAMokB,YACXrtD,KAAKkpC,KAAKgL,cACVl0C,KAAKyrC,SAASgB,SAASzsC,OAE3BA,KAAKmqD,aAAc,MA6B/Br2B,EAAO03B,MAAQ,SAAU5mD,GAKrB5E,KAAK4E,KAAOA,EAMZ5E,KAAKstD,UAAY,KAMjBttD,KAAKutD,WAAa,KAQlBvtD,KAAKwtD,iBAMLxtD,KAAKytD,SAAW,EAShBztD,KAAK0tD,SAAU,EAMf1tD,KAAK2tD,mBAAqB75B,EAAO03B,MAAMoC,oBAMvC5tD,KAAKyB,SAAW,KAKhBzB,KAAK6tD,MAAQ,KAOb7tD,KAAK8tD,OAAS,KAKd9tD,KAAK2B,MAAQ,KAMb3B,KAAK+tD,YAAc,GAMnB/tD,KAAKguD,QAAU,IAMfhuD,KAAKiuD,cAAgB,IAMrBjuD,KAAKkuD,SAAW,IAMhBluD,KAAKmuD,gBAAkB,IAMvBnuD,KAAKouD,iBAAmB,IASxBpuD,KAAKquD,sBAAuB,EAM5BruD,KAAKsuD,WAAa,IAQlBtuD,KAAKuuD,YAAc,IAKnBvuD,KAAKwuD,SAAW,KAKhBxuD,KAAKyuD,SAAW,KAKhBzuD,KAAK0uD,SAAW,KAKhB1uD,KAAK2uD,SAAW,KAKhB3uD,KAAK4uD,SAAW,KAKhB5uD,KAAK6uD,SAAW,KAKhB7uD,KAAK8uD,SAAW,KAKhB9uD,KAAK+uD,SAAW,KAKhB/uD,KAAKgvD,SAAW,KAKhBhvD,KAAKivD,UAAY,KASjBjvD,KAAKkvD,YASLlvD,KAAK0nD,cAAgB,KAOrB1nD,KAAK2nD,aAAe,KAUpB3nD,KAAKkwC,MAAQ,KAOblwC,KAAKmvD,SAAW,KAUhBnvD,KAAKovD,MAAQ,KAUbpvD,KAAKqvD,UAAY,KAOjBrvD,KAAKsvD,QAAU,KAQftvD,KAAKuvD,aAAc,EAMnBvvD,KAAKwvD,OAAS,KAMdxvD,KAAKyvD,KAAO,KAMZzvD,KAAK0vD,MAAQ,KAMb1vD,KAAK2vD,OAAS,KAQd3vD,KAAK4vD,cAAgB,EAMrB5vD,KAAK6vD,iBAAmB,GAAI/7B,GAAOulB,SAMnCr5C,KAAK8vD,YAAc,GAAIh8B,GAAOpyB,MAM9B1B,KAAK+vD,aAAe,EAMpB/vD,KAAKgwD,aAAe,KAMpBhwD,KAAKiwD,GAAK,EAMVjwD,KAAKkwD,GAAK,GAQdp8B,EAAO03B,MAAM2E,sBAAwB,EAMrCr8B,EAAO03B,MAAM4E,sBAAwB,EAMrCt8B,EAAO03B,MAAMoC,oBAAsB,EAOnC95B,EAAO03B,MAAM6E,aAAe,GAE5Bv8B,EAAO03B,MAAMnoD,WAQTioC,KAAM,WAEFtrC,KAAK2nD,aAAe,GAAI7zB,GAAOw8B,QAAQtwD,KAAK4E,KAAM,GAClD5E,KAAKuwD,aACLvwD,KAAKuwD,aAELvwD,KAAKkwC,MAAQ,GAAIpc,GAAO08B,MAAMxwD,KAAK4E,MACnC5E,KAAKovD,MAAQ,GAAIt7B,GAAO28B,MAAMzwD,KAAK4E,MACnC5E,KAAKqvD,UAAY,GAAIv7B,GAAO48B,UAAU1wD,KAAK4E,MAEvCkvB,EAAO68B,WAEP3wD,KAAKmvD,SAAW,GAAIr7B,GAAO68B,SAAS3wD,KAAK4E,OAGzCkvB,EAAO88B,UAEP5wD,KAAKsvD,QAAU,GAAIx7B,GAAO88B,QAAQ5wD,KAAK4E,OAG3C5E,KAAKwvD,OAAS,GAAI17B,GAAO0W,OACzBxqC,KAAKyvD,KAAO,GAAI37B,GAAO0W,OACvBxqC,KAAK0vD,MAAQ,GAAI57B,GAAO0W,OACxBxqC,KAAK2vD,OAAS,GAAI77B,GAAO0W,OAEzBxqC,KAAK2B,MAAQ,GAAImyB,GAAOpyB,MAAM,EAAG,GACjC1B,KAAK6tD,MAAQ,GAAI/5B,GAAOpyB,MACxB1B,KAAKyB,SAAW,GAAIqyB,GAAOpyB,MAC3B1B,KAAKgwD,aAAe,GAAIl8B,GAAOpyB,MAE/B1B,KAAK8tD,OAAS,GAAIh6B,GAAOmI,OAAO,EAAG,EAAG,IAEtCj8B,KAAK0nD,cAAgB1nD,KAAK2nD,aAE1B3nD,KAAKstD,UAAY98C,SAASQ,cAAc,UACxChR,KAAKstD,UAAUzmD,MAAQ,EACvB7G,KAAKstD,UAAUxmD,OAAS,EACxB9G,KAAKutD,WAAavtD,KAAKstD,UAAUr8C,WAAW,MAE5CjR,KAAKkwC,MAAM9kC,QACXpL,KAAKovD,MAAMhkD,QACXpL,KAAKqvD,UAAUjkD,QACfpL,KAAK2nD,aAAala,QAAS,EAEvBztC,KAAKmvD,UAELnvD,KAAKmvD,SAAS/jD,OAGlB,IAAIgkC,GAAQpvC,IAEZA,MAAK6wD,mBAAqB,SAAU3d,GAChC9D,EAAM0hB,kBAAkB5d,IAG5BlzC,KAAK4E,KAAKmM,OAAOqiC,iBAAiB,QAASpzC,KAAK6wD,oBAAoB,IASxEttD,QAAS,WAELvD,KAAKkwC,MAAMllC,OACXhL,KAAKovD,MAAMpkD,OACXhL,KAAKqvD,UAAUrkD,OAEXhL,KAAKmvD,UAELnvD,KAAKmvD,SAASnkD,OAGdhL,KAAKsvD,SAELtvD,KAAKsvD,QAAQtkD,OAGjBhL,KAAKwtD,iBAELxtD,KAAK4E,KAAKmM,OAAOwjC,oBAAoB,QAASv0C,KAAK6wD,qBAkBvDE,gBAAiB,SAAUpY,EAAUvrC,GAEjCpN,KAAKwtD,cAAcjpD,MAAOo0C,SAAUA,EAAUvrC,QAASA,KAW3D4jD,mBAAoB,SAAUrY,EAAUvrC,GAIpC,IAFA,GAAI3J,GAAIzD,KAAKwtD,cAAc9pD,OAEpBD,KAEH,GAAIzD,KAAKwtD,cAAc/pD,GAAGk1C,WAAaA,GAAY34C,KAAKwtD,cAAc/pD,GAAG2J,UAAYA,EAGjF,WADApN,MAAKwtD,cAAc5kD,OAAOnF,EAAG,IAezC8sD,WAAY,WAER,GAAIvwD,KAAKkvD,SAASxrD,QAAUowB,EAAO03B,MAAM6E,aAGrC,MADA37C,SAAQukB,KAAK,6CAA+CnF,EAAO03B,MAAM6E,aAAe,sBACjF,IAGX,IAAIz4C,GAAK5X,KAAKkvD,SAASxrD,OAAS,EAC5BstC,EAAU,GAAIld,GAAOw8B,QAAQtwD,KAAK4E,KAAMgT,EAK5C,OAHA5X,MAAKkvD,SAAS3qD,KAAKysC,GACnBhxC,KAAK,UAAY4X,GAAMo5B,EAEhBA,GAUX1K,OAAQ,WAOJ,GALItmC,KAAKmvD,UAELnvD,KAAKmvD,SAAS7oB,SAGdtmC,KAAKytD,SAAW,GAAKztD,KAAK+vD,aAAe/vD,KAAKytD,SAG9C,WADAztD,MAAK+vD,cAIT/vD,MAAK6tD,MAAMnoD,EAAI1F,KAAKyB,SAASiE,EAAI1F,KAAKgwD,aAAatqD,EACnD1F,KAAK6tD,MAAMloD,EAAI3F,KAAKyB,SAASkE,EAAI3F,KAAKgwD,aAAarqD,EAEnD3F,KAAKgwD,aAAaxzB,SAASx8B,KAAKyB,UAChCzB,KAAK2nD,aAAarhB,SAEdtmC,KAAKsvD,SAAWtvD,KAAKsvD,QAAQ7hB,QAE7BztC,KAAKsvD,QAAQhpB,QAGjB,KAAK,GAAI7iC,GAAI,EAAGA,EAAIzD,KAAKkvD,SAASxrD,OAAQD,IAEtCzD,KAAKkvD,SAASzrD,GAAG6iC,QAGrBtmC,MAAK+vD,aAAe,GAexBtzC,MAAO,SAAUw0C,GAEb,GAAKjxD,KAAK4E,KAAKknC,WAAY9rC,KAAKuvD,YAAhC,CAKa9lD,SAATwnD,IAAsBA,GAAO,GAEjCjxD,KAAK2nD,aAAalrC,QAEdzc,KAAKmvD,UAELnvD,KAAKmvD,SAAS1yC,MAAMw0C,GAGpBjxD,KAAKsvD,SAELtvD,KAAKsvD,QAAQ7yC,OAGjB,KAAK,GAAIhZ,GAAI,EAAGA,EAAIzD,KAAKkvD,SAASxrD,OAAQD,IAEtCzD,KAAKkvD,SAASzrD,GAAGgZ,OAGiB,UAAlCzc,KAAK4E,KAAKmM,OAAO0T,MAAM0wB,SAEvBn1C,KAAK4E,KAAKmM,OAAO0T,MAAM0wB,OAAS,WAGhC8b,IAEAjxD,KAAKwvD,OAAOrgB,UACZnvC,KAAKyvD,KAAKtgB,UACVnvC,KAAK0vD,MAAMvgB,UACXnvC,KAAK2vD,OAAOxgB,UACZnvC,KAAKwvD,OAAS,GAAI17B,GAAO0W,OACzBxqC,KAAKyvD,KAAO,GAAI37B,GAAO0W,OACvBxqC,KAAK0vD,MAAQ,GAAI57B,GAAO0W,OACxBxqC,KAAK2vD,OAAS,GAAI77B,GAAO0W,OACzBxqC,KAAKwtD,kBAGTxtD,KAAK+vD,aAAe,IAWxBmB,WAAY,SAAUxrD,EAAGC,GAErB3F,KAAKgwD,aAAazzB,MAAM72B,EAAGC,GAC3B3F,KAAK6tD,MAAMtxB,MAAM,EAAG,IAaxB40B,aAAc,SAAUje,GAEpB,GAAIlzC,KAAK+tD,aAAe,GAAK/tD,KAAKoxD,oBAAoBpxD,KAAK+tD,cAAgB/tD,KAAK+tD,YAE5E,MAAO,KAGX,KAAK/tD,KAAKwuD,SAAS/gB,OAEf,MAAOztC,MAAKwuD,SAASpjD,MAAM8nC,EAG/B,KAAKlzC,KAAKyuD,SAAShhB,OAEf,MAAOztC,MAAKyuD,SAASrjD,MAAM8nC,EAG/B,KAAK,GAAIzvC,GAAI,EAAGA,EAAIzD,KAAKkvD,SAASxrD,OAAQD,IAC1C,CACI,GAAIutC,GAAUhxC,KAAKkvD,SAASzrD,EAE5B,KAAKutC,EAAQvD,OAET,MAAOuD,GAAQ5lC,MAAM8nC,GAI7B,MAAO,OAaXme,cAAe,SAAUne,GAErB,GAAIlzC,KAAKwuD,SAAS/gB,QAAUztC,KAAKwuD,SAAS8C,aAAepe,EAAMoe,WAE3D,MAAOtxD,MAAKwuD,SAAS+C,KAAKre,EAG9B,IAAIlzC,KAAKyuD,SAAShhB,QAAUztC,KAAKyuD,SAAS6C,aAAepe,EAAMoe,WAE3D,MAAOtxD,MAAKyuD,SAAS8C,KAAKre,EAG9B,KAAK,GAAIzvC,GAAI,EAAGA,EAAIzD,KAAKkvD,SAASxrD,OAAQD,IAC1C,CACI,GAAIutC,GAAUhxC,KAAKkvD,SAASzrD,EAE5B,IAAIutC,EAAQvD,QAAUuD,EAAQsgB,aAAepe,EAAMoe,WAE/C,MAAOtgB,GAAQugB,KAAKre,GAI5B,MAAO,OAYXse,YAAa,SAAUte,GAEnB,GAAIlzC,KAAKwuD,SAAS/gB,QAAUztC,KAAKwuD,SAAS8C,aAAepe,EAAMoe,WAE3D,MAAOtxD,MAAKwuD,SAASxjD,KAAKkoC,EAG9B,IAAIlzC,KAAKyuD,SAAShhB,QAAUztC,KAAKyuD,SAAS6C,aAAepe,EAAMoe,WAE3D,MAAOtxD,MAAKyuD,SAASzjD,KAAKkoC,EAG9B,KAAK,GAAIzvC,GAAI,EAAGA,EAAIzD,KAAKkvD,SAASxrD,OAAQD,IAC1C,CACI,GAAIutC,GAAUhxC,KAAKkvD,SAASzrD,EAE5B,IAAIutC,EAAQvD,QAAUuD,EAAQsgB,aAAepe,EAAMoe,WAE/C,MAAOtgB,GAAQhmC,KAAKkoC,GAI5B,MAAO,OAYXke,oBAAqB,SAAUK,GAEbhoD,SAAVgoD,IAAuBA,EAAQzxD,KAAKkvD,SAASxrD,OAIjD,KAAK,GAFDmjB,GAAQ4qC,EAEHhuD,EAAI,EAAGA,EAAIzD,KAAKkvD,SAASxrD,QAAUmjB,EAAQ,EAAGpjB,IACvD,CACI,GAAIutC,GAAUhxC,KAAKkvD,SAASzrD,EAExButC,GAAQvD,QAER5mB,IAIR,MAAQ4qC,GAAQ5qC,GAWpB6qC,WAAY,SAAUC,GAEDloD,SAAbkoD,IAA0BA,GAAW,EAEzC,KAAK,GAAIluD,GAAI,EAAGA,EAAIzD,KAAKkvD,SAASxrD,OAAQD,IAC1C,CACI,GAAIutC,GAAUhxC,KAAKkvD,SAASzrD,EAE5B,IAAIutC,EAAQvD,SAAWkkB,EAEnB,MAAO3gB,GAIf,MAAO,OAeX4gB,yBAA0B,SAAUN,GAEhC,IAAK,GAAI7tD,GAAI,EAAGA,EAAIzD,KAAKkvD,SAASxrD,OAAQD,IAC1C,CACI,GAAIutC,GAAUhxC,KAAKkvD,SAASzrD,EAE5B,IAAIutC,EAAQsgB,aAAeA,EAEvB,MAAOtgB,GAIf,MAAO,OAcX6gB,iBAAkB,SAAUC,GAExB,IAAK,GAAIruD,GAAI,EAAGA,EAAIzD,KAAKkvD,SAASxrD,OAAQD,IAC1C,CACI,GAAIutC,GAAUhxC,KAAKkvD,SAASzrD,EAE5B,IAAIutC,EAAQ8gB,YAAcA,EAEtB,MAAO9gB,GAIf,MAAO,OAYX+gB,iBAAkB,SAAUxtC,EAAeysB,EAASnU,GAEjCpzB,SAAXozB,IAAwBA,EAAS,GAAI/I,GAAOpyB,MAEhD,IAAI4D,GAAKif,EAAchiB,eACnBqV,EAAK,GAAKtS,EAAGP,EAAIO,EAAGJ,EAAII,EAAGL,GAAKK,EAAGN,EAEvC,OAAO63B,GAAON,MACVj3B,EAAGJ,EAAI0S,EAAKo5B,EAAQtrC,GAAKJ,EAAGL,EAAI2S,EAAKo5B,EAAQrrC,GAAKL,EAAGF,GAAKE,EAAGL,EAAIK,EAAGH,GAAKG,EAAGJ,GAAK0S,EACjFtS,EAAGP,EAAI6S,EAAKo5B,EAAQrrC,GAAKL,EAAGN,EAAI4S,EAAKo5B,EAAQtrC,IAAMJ,EAAGF,GAAKE,EAAGP,EAAIO,EAAGH,GAAKG,EAAGN,GAAK4S,IAa1Fo6C,QAAS,SAAUztC,EAAeysB,EAASihB,GAEvC,IAAK1tC,EAAc2tC,aAEf,OAAO,CAOX,IAJAlyD,KAAK+xD,iBAAiBxtC,EAAeysB,EAAShxC,KAAK8vD,aAEnDmC,EAAWz1B,SAASx8B,KAAK8vD,aAErBvrC,EAAcriB,SAAWqiB,EAAcriB,QAAQ46B,SAE/C,MAAQvY,GAAcriB,QAAQ46B,SAAS98B,KAAK8vD,YAAYpqD,EAAG1F,KAAK8vD,YAAYnqD,EAE3E,IAAI4e,YAAyBuP,GAAOq+B,WACzC,CACI,GAAItrD,GAAQ0d,EAAc1d,MACtBC,EAASyd,EAAczd,OACvB4F,GAAM7F,EAAQ0d,EAAcrc,OAAOxC,CAEvC,IAAI1F,KAAK8vD,YAAYpqD,GAAKgH,GAAM1M,KAAK8vD,YAAYpqD,EAAIgH,EAAK7F,EAC1D,CACI,GAAI8F,IAAM7F,EAASyd,EAAcrc,OAAOvC,CAExC,IAAI3F,KAAK8vD,YAAYnqD,GAAKgH,GAAM3M,KAAK8vD,YAAYnqD,EAAIgH,EAAK7F,EAEtD,OAAO,OAId,IAAIyd,YAAyBzkB,MAAK6H,OACvC,CACI,GAAId,GAAQ0d,EAAczc,QAAQqE,MAAMtF,MACpCC,EAASyd,EAAczc,QAAQqE,MAAMrF,OACrC4F,GAAM7F,EAAQ0d,EAAcrc,OAAOxC,CAEvC,IAAI1F,KAAK8vD,YAAYpqD,GAAKgH,GAAM1M,KAAK8vD,YAAYpqD,EAAIgH,EAAK7F,EAC1D,CACI,GAAI8F,IAAM7F,EAASyd,EAAcrc,OAAOvC,CAExC,IAAI3F,KAAK8vD,YAAYnqD,GAAKgH,GAAM3M,KAAK8vD,YAAYnqD,EAAIgH,EAAK7F,EAEtD,OAAO,OAId,IAAIyd,YAAyBuP,GAAOnX,SAErC,IAAK,GAAIlZ,GAAI,EAAGA,EAAI8gB,EAAc/H,aAAa9Y,OAAQD,IACvD,CACI,GAAI0N,GAAOoT,EAAc/H,aAAa/Y,EAEtC,IAAK0N,EAAK8L,MAMN9L,EAAK2L,OAAS3L,EAAK2L,MAAMggB,SAAS98B,KAAK8vD,YAAYpqD,EAAG1F,KAAK8vD,YAAYnqD,GAEvE,OAAO,EAOnB,IAAK,GAAIlC,GAAI,EAAG8tB,EAAMhN,EAAc/gB,SAASE,OAAY6tB,EAAJ9tB,EAASA,IAE1D,GAAIzD,KAAKgyD,QAAQztC,EAAc/gB,SAASC,GAAIutC,EAASihB,GAEjD,OAAO,CAIf,QAAO,GASXnB,kBAAmB,WAIf9wD,KAAK0nD,cAAc0K,4BAM3Bt+B,EAAO03B,MAAMnoD,UAAUC,YAAcwwB,EAAO03B,MAQ5C5nD,OAAOC,eAAeiwB,EAAO03B,MAAMnoD,UAAW,KAE1CS,IAAK,WACD,MAAO9D,MAAKiwD,IAGhBjsD,IAAK,SAAUC,GACXjE,KAAKiwD,GAAKtvD,KAAKq3B,MAAM/zB,MAW7BL,OAAOC,eAAeiwB,EAAO03B,MAAMnoD,UAAW,KAE1CS,IAAK,WACD,MAAO9D,MAAKkwD,IAGhBlsD,IAAK,SAAUC,GACXjE,KAAKkwD,GAAKvvD,KAAKq3B,MAAM/zB,MAW7BL,OAAOC,eAAeiwB,EAAO03B,MAAMnoD,UAAW,cAE1CS,IAAK,WACD,MAAQ9D,MAAKytD,SAAW,GAAKztD,KAAK+vD,aAAe/vD,KAAKytD,YAW9D7pD,OAAOC,eAAeiwB,EAAO03B,MAAMnoD,UAAW,yBAE1CS,IAAK,WACD,MAAO9D,MAAKkvD,SAASxrD,OAAS1D,KAAKoxD,yBAW3CxtD,OAAOC,eAAeiwB,EAAO03B,MAAMnoD,UAAW,uBAE1CS,IAAK,WACD,MAAO9D,MAAKoxD,yBAWpBxtD,OAAOC,eAAeiwB,EAAO03B,MAAMnoD,UAAW,UAE1CS,IAAK,WACD,MAAO9D,MAAK4E,KAAKgkC,OAAO3nC,KAAKyE,EAAI1F,KAAK0F,KAW9C9B,OAAOC,eAAeiwB,EAAO03B,MAAMnoD,UAAW,UAE1CS,IAAK,WACD,MAAO9D,MAAK4E,KAAKgkC,OAAO3nC,KAAK0E,EAAI3F,KAAK2F,KAyB9CmuB,EAAO08B,MAAQ,SAAU5rD,GAKrB5E,KAAK4E,KAAOA,EAMZ5E,KAAK8oC,MAAQlkC,EAAKkkC,MAKlB9oC,KAAKgsC,gBAAkBhsC,KAAK4E,KAK5B5E,KAAKqyD,kBAAoB,KAKzBryD,KAAKsyD,gBAAkB,KAKvBtyD,KAAKuyD,iBAAmB,KAKxBvyD,KAAKwyD,kBAAoB,KAKzBxyD,KAAKyyD,mBAAqB,KAK1BzyD,KAAK0yD,SAAU,EASf1yD,KAAK2yD,OAAS,GAMd3yD,KAAK4yD,WAAa,EAOlB5yD,KAAK0tD,SAAU,EAMf1tD,KAAK6yD,QAAS,EAMd7yD,KAAK8yD,eAAgB,EAMrB9yD,KAAK+yD,YAAc,GAAIj/B,GAAO0W,OAQ9BxqC,KAAKkzC,MAAQ,KAMblzC,KAAKgzD,aAAe,KAMpBhzD,KAAKizD,aAAe,KAMpBjzD,KAAKkzD,WAAa,KAMlBlzD,KAAKmzD,YAAc,KAMnBnzD,KAAKozD,aAAe,KAMpBpzD,KAAKqzD,cAAgB,KAOrBrzD,KAAKszD,YAAc,MAQvBx/B,EAAO08B,MAAM+C,UAAY,GAMzBz/B,EAAO08B,MAAMgD,YAAc,EAM3B1/B,EAAO08B,MAAMiD,cAAgB,EAM7B3/B,EAAO08B,MAAMkD,aAAe,EAM5B5/B,EAAO08B,MAAMmD,YAAc,EAM3B7/B,EAAO08B,MAAMoD,eAAiB,EAM9B9/B,EAAO08B,MAAMqD,SAAW,EAMxB//B,EAAO08B,MAAMsD,WAAa,GAE1BhgC,EAAO08B,MAAMntD,WAMT+H,MAAO,WAEH,KAAIpL,KAAK4E,KAAK6uC,OAAO+O,SAAWxiD,KAAK4E,KAAK6uC,OAAOgP,UAAW,IAMlC,OAAtBziD,KAAKgzD,aAAT,CAMA,GAAI5jB,GAAQpvC,IAEZA,MAAKgzD,aAAe,SAAU9f,GAC1B,MAAO9D,GAAM2kB,YAAY7gB,IAG7BlzC,KAAKizD,aAAe,SAAU/f,GAC1B,MAAO9D,GAAM4kB,YAAY9gB,IAG7BlzC,KAAKkzD,WAAa,SAAUhgB,GACxB,MAAO9D,GAAM6kB,UAAU/gB,IAG3BlzC,KAAKk0D,iBAAmB,SAAUhhB,GAC9B,MAAO9D,GAAM+kB,gBAAgBjhB,IAGjClzC,KAAKmzD,YAAc,SAAUjgB,GACzB,MAAO9D,GAAMglB,WAAWlhB,IAG5BlzC,KAAKozD,aAAe,SAAUlgB,GAC1B,MAAO9D,GAAMilB,YAAYnhB,IAG7BlzC,KAAKqzD,cAAgB,SAAUngB,GAC3B,MAAO9D,GAAMklB,aAAaphB,GAG9B,IAAIniC,GAAS/Q,KAAK4E,KAAKmM,MAEvBA,GAAOqiC,iBAAiB,YAAapzC,KAAKgzD,cAAc,GACxDjiD,EAAOqiC,iBAAiB,YAAapzC,KAAKizD,cAAc,GACxDliD,EAAOqiC,iBAAiB,UAAWpzC,KAAKkzD,YAAY,GAE/ClzD,KAAK4E,KAAK6uC,OAAO2O,WAElB3tC,OAAO2+B,iBAAiB,UAAWpzC,KAAKk0D,kBAAkB,GAC1DnjD,EAAOqiC,iBAAiB,YAAapzC,KAAKozD,cAAc,GACxDriD,EAAOqiC,iBAAiB,WAAYpzC,KAAKmzD,aAAa,GAG1D,IAAIoB,GAAav0D,KAAK4E,KAAK6uC,OAAO8gB,UAE9BA,KAEAxjD,EAAOqiC,iBAAiBmhB,EAAYv0D,KAAKqzD,eAAe,GAErC,eAAfkB,EAEAv0D,KAAKszD,YAAc,GAAIr+B,GAAgB,GAAG,GAAI,GAE1B,mBAAfs/B,IAELv0D,KAAKszD,YAAc,GAAIr+B,GAAgB,EAAG,OAWtD8+B,YAAa,SAAU7gB,GAEnBlzC,KAAKkzC,MAAQA,EAETlzC,KAAK0yD,SAELxf,EAAMmZ,iBAGNrsD,KAAKqyD,mBAELryD,KAAKqyD,kBAAkBvsD,KAAK9F,KAAKgsC,gBAAiBkH,GAGjDlzC,KAAK8oC,MAAM4kB,SAAY1tD,KAAK0tD,UAKjCxa,EAAkB,WAAI,EAEtBlzC,KAAK8oC,MAAM6e,aAAav8C,MAAM8nC,KASlC8gB,YAAa,SAAU9gB,GAEnBlzC,KAAKkzC,MAAQA,EAETlzC,KAAK0yD,SAELxf,EAAMmZ,iBAGNrsD,KAAKw0D,mBAELx0D,KAAKw0D,kBAAkB1uD,KAAK9F,KAAKgsC,gBAAiBkH,GAGjDlzC,KAAK8oC,MAAM4kB,SAAY1tD,KAAK0tD,UAKjCxa,EAAkB,WAAI,EAEtBlzC,KAAK8oC,MAAM6e,aAAa4J,KAAKre,KASjC+gB,UAAW,SAAU/gB,GAEjBlzC,KAAKkzC,MAAQA,EAETlzC,KAAK0yD,SAELxf,EAAMmZ,iBAGNrsD,KAAKsyD,iBAELtyD,KAAKsyD,gBAAgBxsD,KAAK9F,KAAKgsC,gBAAiBkH,GAG/ClzC,KAAK8oC,MAAM4kB,SAAY1tD,KAAK0tD,UAKjCxa,EAAkB,WAAI,EAEtBlzC,KAAK8oC,MAAM6e,aAAa38C,KAAKkoC,KAUjCihB,gBAAiB,SAAUjhB,GAElBlzC,KAAK8oC,MAAM6e,aAAa8M,aAErBz0D,KAAKsyD,iBAELtyD,KAAKsyD,gBAAgBxsD,KAAK9F,KAAKgsC,gBAAiBkH,GAGpDA,EAAkB,WAAI,EAEtBlzC,KAAK8oC,MAAM6e,aAAa38C,KAAKkoC,KAWrCkhB,WAAY,SAAUlhB,GAElBlzC,KAAKkzC,MAAQA,EAETlzC,KAAK0yD,SAELxf,EAAMmZ,iBAGVrsD,KAAK8oC,MAAM6e,aAAa8M,YAAa,EAEjCz0D,KAAKuyD,kBAELvyD,KAAKuyD,iBAAiBzsD,KAAK9F,KAAKgsC,gBAAiBkH,GAGhDlzC,KAAK8oC,MAAM4kB,SAAY1tD,KAAK0tD,SAK7B1tD,KAAK8yD,gBAEL5f,EAAkB,WAAI,EAEtBlzC,KAAK8oC,MAAM6e,aAAa38C,KAAKkoC,KAWrCohB,aAAc,SAAUphB,GAEhBlzC,KAAKszD,cACLpgB,EAAQlzC,KAAKszD,YAAYoB,UAAUxhB,IAGvClzC,KAAKkzC,MAAQA,EAETlzC,KAAK0yD,SAELxf,EAAMmZ,iBAIVrsD,KAAK4yD,WAAa9+B,EAAOnzB,KAAKsgC,OAAOiS,EAAMyhB,OAAQ,GAAI,GAEnD30D,KAAKyyD,oBAELzyD,KAAKyyD,mBAAmB3sD,KAAK9F,KAAKgsC,gBAAiBkH,IAW3DmhB,YAAa,SAAUnhB,GAEnBlzC,KAAKkzC,MAAQA,EAETlzC,KAAK0yD,SAELxf,EAAMmZ,iBAGVrsD,KAAK8oC,MAAM6e,aAAa8M,YAAa,EAEjCz0D,KAAKwyD,mBAELxyD,KAAKwyD,kBAAkB1sD,KAAK9F,KAAKgsC,gBAAiBkH,IAGjDlzC,KAAK8oC,MAAM4kB,UAAY1tD,KAAK0tD,SAarCkH,mBAAoB,WAEhB,GAAI50D,KAAK4E,KAAK6uC,OAAOsf,YACrB,CACI,GAAI8B,GAAU70D,KAAK4E,KAAKmM,MAExB8jD,GAAQD,mBAAqBC,EAAQD,oBAAsBC,EAAQC,uBAAyBD,EAAQE,yBAEpGF,EAAQD,oBAER,IAAIxlB,GAAQpvC,IAEZA,MAAKg1D,mBAAqB,SAAU9hB,GAChC,MAAO9D,GAAM6lB,kBAAkB/hB,IAGnC1iC,SAAS4iC,iBAAiB,oBAAqBpzC,KAAKg1D,oBAAoB,GACxExkD,SAAS4iC,iBAAiB,uBAAwBpzC,KAAKg1D,oBAAoB,GAC3ExkD,SAAS4iC,iBAAiB,0BAA2BpzC,KAAKg1D,oBAAoB,KAWtFC,kBAAmB,SAAU/hB,GAEzB,GAAI2hB,GAAU70D,KAAK4E,KAAKmM,MAEpBP,UAAS0kD,qBAAuBL,GAAWrkD,SAAS2kD,wBAA0BN,GAAWrkD,SAAS4kD,2BAA6BP,GAG/H70D,KAAK6yD,QAAS,EACd7yD,KAAK+yD,YAAYtmB,UAAS,EAAMyG,KAKhClzC,KAAK6yD,QAAS,EACd7yD,KAAK+yD,YAAYtmB,UAAS,EAAOyG,KASzCmiB,mBAAoB,WAEhB7kD,SAAS8kD,gBAAkB9kD,SAAS8kD,iBAAmB9kD,SAAS+kD,oBAAsB/kD,SAASglD,sBAE/FhlD,SAAS8kD,kBAET9kD,SAAS+jC,oBAAoB,oBAAqBv0C,KAAKg1D,oBAAoB,GAC3ExkD,SAAS+jC,oBAAoB,uBAAwBv0C,KAAKg1D,oBAAoB,GAC9ExkD,SAAS+jC,oBAAoB,0BAA2Bv0C,KAAKg1D,oBAAoB,IAQrFhqD,KAAM,WAEF,GAAI+F,GAAS/Q,KAAK4E,KAAKmM,MAEvBA,GAAOwjC,oBAAoB,YAAav0C,KAAKgzD,cAAc,GAC3DjiD,EAAOwjC,oBAAoB,YAAav0C,KAAKizD,cAAc,GAC3DliD,EAAOwjC,oBAAoB,UAAWv0C,KAAKkzD,YAAY,GACvDniD,EAAOwjC,oBAAoB,YAAav0C,KAAKozD,cAAc,GAC3DriD,EAAOwjC,oBAAoB,WAAYv0C,KAAKmzD,aAAa,EAEzD,IAAIoB,GAAav0D,KAAK4E,KAAK6uC,OAAO8gB,UAE9BA,IAEAxjD,EAAOwjC,oBAAoBggB,EAAYv0D,KAAKqzD,eAAe,GAG/D5+C,OAAO8/B,oBAAoB,UAAWv0C,KAAKk0D,kBAAkB,GAE7D1jD,SAAS+jC,oBAAoB,oBAAqBv0C,KAAKg1D,oBAAoB,GAC3ExkD,SAAS+jC,oBAAoB,uBAAwBv0C,KAAKg1D,oBAAoB,GAC9ExkD,SAAS+jC,oBAAoB,0BAA2Bv0C,KAAKg1D,oBAAoB,KAMzFlhC,EAAO08B,MAAMntD,UAAUC,YAAcwwB,EAAO08B,MAoC5Cv7B,EAAgB5xB,aAChB4xB,EAAgB5xB,UAAUC,YAAc2xB,EAExCA,EAAgB5xB,UAAUqxD,UAAY,SAAUxhB,GAG5C,IAAKje,EAAgBwgC,iBAAmBviB,EACxC,CACI,GAAIwiB,GAAa,SAAUv6B,GAEvB,MAAO,YACH,GAAI1nB,GAAIzT,KAAKs1B,cAAc6F,EAC3B,OAAoB,kBAAN1nB,GAAmBA,EAAIA,EAAEykB,KAAKl4B,KAAKs1B,gBAKzD,KAAK,GAAI+D,KAAQ6Z,GAEP7Z,IAAQpE,GAAgB5xB,WAE1BO,OAAOC,eAAeoxB,EAAgB5xB,UAAWg2B,GAC7Cv1B,IAAK4xD,EAAWr8B,IAI5BpE,GAAgBwgC,iBAAkB,EAItC,MADAz1D,MAAKs1B,cAAgB4d,EACdlzC,MAIX4D,OAAO+xD,iBAAiB1gC,EAAgB5xB,WACpC0T,MAAU9S,MAAO,SACjBkxB,WAAerxB,IAAK,WAAc,MAAO9D,MAAKq1B,aAC9Cs/B,QACI7wD,IAAK,WACD,MAAQ9D,MAAKo1B,cAAgBp1B,KAAKs1B,cAAcs9B,YAAc5yD,KAAKs1B,cAAcsgC,SAAY,IAGrGC,QACI/xD,IAAK,WACD,MAAQ9D,MAAKo1B,aAAep1B,KAAKs1B,cAAcwgC,aAAgB,IAGvEC,QAAY9xD,MAAO,KAyBvB6vB,EAAO48B,UAAY,SAAU9rD,GAKzB5E,KAAK4E,KAAOA,EAMZ5E,KAAK8oC,MAAQlkC,EAAKkkC,MAKlB9oC,KAAKgsC,gBAAkBhsC,KAAK4E,KAK5B5E,KAAKg2D,oBAAsB,KAK3Bh2D,KAAKi2D,oBAAsB,KAK3Bj2D,KAAKk2D,kBAAoB,KAKzBl2D,KAAK0yD,SAAU,EAQf1yD,KAAK2yD,OAAS,GAQd3yD,KAAKkzC,MAAQ,KAOblzC,KAAK0tD,SAAU,EAMf1tD,KAAKm2D,iBAAmB,KAMxBn2D,KAAKo2D,iBAAmB,KAMxBp2D,KAAKq2D,eAAiB,MAI1BviC,EAAO48B,UAAUrtD,WAMb+H,MAAO,WAEH,GAA8B,OAA1BpL,KAAKm2D,iBAAT,CAMA,GAAI/mB,GAAQpvC,IAEZ,IAAIA,KAAK4E,KAAK6uC,OAAO4b,UACrB,CACIrvD,KAAKm2D,iBAAmB,SAAUjjB,GAC9B,MAAO9D,GAAMknB,cAAcpjB,IAG/BlzC,KAAKo2D,iBAAmB,SAAUljB,GAC9B,MAAO9D,GAAMmnB,cAAcrjB,IAG/BlzC,KAAKq2D,eAAiB,SAAUnjB,GAC5B,MAAO9D,GAAMonB,YAAYtjB,GAG7B,IAAIniC,GAAS/Q,KAAK4E,KAAKmM,MAEvBA,GAAOqiC,iBAAiB,gBAAiBpzC,KAAKm2D,kBAAkB,GAChEplD,EAAOqiC,iBAAiB,gBAAiBpzC,KAAKo2D,kBAAkB,GAChErlD,EAAOqiC,iBAAiB,cAAepzC,KAAKq2D,gBAAgB,GAG5DtlD,EAAOqiC,iBAAiB,cAAepzC,KAAKm2D,kBAAkB,GAC9DplD,EAAOqiC,iBAAiB,cAAepzC,KAAKo2D,kBAAkB,GAC9DrlD,EAAOqiC,iBAAiB,YAAapzC,KAAKq2D,gBAAgB,GAE1DtlD,EAAO0T,MAAM,uBAAyB,OACtC1T,EAAO0T,MAAM,oBAAsB,UAW3C6xC,cAAe,SAAUpjB,GAErBlzC,KAAKkzC,MAAQA,EAETlzC,KAAK0yD,SAELxf,EAAMmZ,iBAGNrsD,KAAKg2D,qBAELh2D,KAAKg2D,oBAAoBlwD,KAAK9F,KAAKgsC,gBAAiBkH,GAGnDlzC,KAAK8oC,MAAM4kB,SAAY1tD,KAAK0tD,UAKjCxa,EAAMoe,WAAape,EAAM4e,UAEC,UAAtB5e,EAAMujB,aAAiD,IAAtBvjB,EAAMujB,YAEvCz2D,KAAK8oC,MAAM6e,aAAav8C,MAAM8nC,GAI9BlzC,KAAK8oC,MAAMqoB,aAAaje,KAUhCqjB,cAAe,SAAUrjB,GAErBlzC,KAAKkzC,MAAQA,EAETlzC,KAAK0yD,SAELxf,EAAMmZ,iBAGNrsD,KAAKi2D,qBAELj2D,KAAKi2D,oBAAoBnwD,KAAK9F,KAAKgsC,gBAAiBkH,GAGnDlzC,KAAK8oC,MAAM4kB,SAAY1tD,KAAK0tD,UAKjCxa,EAAMoe,WAAape,EAAM4e,UAEC,UAAtB5e,EAAMujB,aAAiD,IAAtBvjB,EAAMujB,YAEvCz2D,KAAK8oC,MAAM6e,aAAa4J,KAAKre,GAI7BlzC,KAAK8oC,MAAMuoB,cAAcne,KAUjCsjB,YAAa,SAAUtjB,GAEnBlzC,KAAKkzC,MAAQA,EAETlzC,KAAK0yD,SAELxf,EAAMmZ,iBAGNrsD,KAAKk2D,mBAELl2D,KAAKk2D,kBAAkBpwD,KAAK9F,KAAKgsC,gBAAiBkH,GAGjDlzC,KAAK8oC,MAAM4kB,SAAY1tD,KAAK0tD,UAKjCxa,EAAMoe,WAAape,EAAM4e,UAEC,UAAtB5e,EAAMujB,aAAiD,IAAtBvjB,EAAMujB,YAEvCz2D,KAAK8oC,MAAM6e,aAAa38C,KAAKkoC,GAI7BlzC,KAAK8oC,MAAM0oB,YAAYte,KAS/BloC,KAAM,WAEF,GAAI+F,GAAS/Q,KAAK4E,KAAKmM,MAEvBA,GAAOwjC,oBAAoB,gBAAiBv0C,KAAKm2D,kBACjDplD,EAAOwjC,oBAAoB,gBAAiBv0C,KAAKo2D,kBACjDrlD,EAAOwjC,oBAAoB,cAAev0C,KAAKq2D,gBAE/CtlD,EAAOwjC,oBAAoB,cAAev0C,KAAKm2D,kBAC/CplD,EAAOwjC,oBAAoB,cAAev0C,KAAKo2D,kBAC/CrlD,EAAOwjC,oBAAoB,YAAav0C,KAAKq2D,kBAMrDviC,EAAO48B,UAAUrtD,UAAUC,YAAcwwB,EAAO48B,UAgChD58B,EAAO4iC,aAAe,SAAUt0D,EAAQu0D,GAKpC32D,KAAKoC,OAASA,EAKdpC,KAAK4E,KAAOxC,EAAOwC,KAMnB5E,KAAKkzC,MAAQ,KAMblzC,KAAK42D,QAAS,EAMd52D,KAAK62D,MAAO,EAMZ72D,KAAK82D,SAAW,EAShB92D,KAAK+2D,SAAW,EAMhB/2D,KAAKg3D,OAAS,EAQdh3D,KAAKi3D,QAAU,EAQfj3D,KAAKk3D,QAAS,EAQdl3D,KAAKm3D,UAAW,EAQhBn3D,KAAKo3D,SAAU,EAMfp3D,KAAKiE,MAAQ,EAKbjE,KAAK22D,WAAaA,EAQlB32D,KAAKwvD,OAAS,GAAI17B,GAAO0W,OAQzBxqC,KAAKyvD,KAAO,GAAI37B,GAAO0W,OAQvBxqC,KAAKq3D,QAAU,GAAIvjC,GAAO0W,QAI9B1W,EAAO4iC,aAAarzD,WAWhB+H,MAAO,SAAU8nC,EAAOjvC,GAEhBjE,KAAK42D,SAKT52D,KAAK42D,QAAS,EACd52D,KAAK62D,MAAO,EACZ72D,KAAK82D,SAAW92D,KAAK4E,KAAKskC,KAAKA,KAC/BlpC,KAAK+2D,SAAW,EAChB/2D,KAAKi3D,QAAU,EAEfj3D,KAAKkzC,MAAQA,EACblzC,KAAKiE,MAAQA,EAEbjE,KAAKk3D,OAAShkB,EAAMgkB,OACpBl3D,KAAKm3D,SAAWjkB,EAAMikB,SACtBn3D,KAAKo3D,QAAUlkB,EAAMkkB,QAErBp3D,KAAKwvD,OAAO/iB,SAASzsC,KAAMiE,KAa/B+G,KAAM,SAAUkoC,EAAOjvC,GAEfjE,KAAK62D,OAKT72D,KAAK42D,QAAS,EACd52D,KAAK62D,MAAO,EACZ72D,KAAKg3D,OAASh3D,KAAK4E,KAAKskC,KAAKA,KAE7BlpC,KAAKkzC,MAAQA,EACblzC,KAAKiE,MAAQA,EAEbjE,KAAKk3D,OAAShkB,EAAMgkB,OACpBl3D,KAAKm3D,SAAWjkB,EAAMikB,SACtBn3D,KAAKo3D,QAAUlkB,EAAMkkB,QAErBp3D,KAAKyvD,KAAKhjB,SAASzsC,KAAMiE,KAW7BqzD,SAAU,SAAUrzD,GAEhBjE,KAAKiE,MAAQA,EAEbjE,KAAKq3D,QAAQ5qB,SAASzsC,KAAMiE,IAYhCszD,YAAa,SAAUR,GAInB,MAFAA,GAAWA,GAAY,IAEf/2D,KAAK42D,QAAW52D,KAAK82D,SAAWC,EAAY/2D,KAAK4E,KAAKskC,KAAKA,MAYvEsuB,aAAc,SAAUT,GAIpB,MAFAA,GAAWA,GAAY,IAEf/2D,KAAK62D,MAAS72D,KAAKg3D,OAASD,EAAY/2D,KAAK4E,KAAKskC,KAAKA,MASnEzsB,MAAO,WAEHzc,KAAK42D,QAAS,EACd52D,KAAK62D,MAAO,EAEZ72D,KAAK82D,SAAW92D,KAAK4E,KAAKskC,KAAKA,KAC/BlpC,KAAK+2D,SAAW,EAChB/2D,KAAKi3D,QAAU,EAEfj3D,KAAKk3D,QAAS,EACdl3D,KAAKm3D,UAAW,EAChBn3D,KAAKo3D,SAAU,GAUnB7zD,QAAS,WAELvD,KAAKwvD,OAAOrgB,UACZnvC,KAAKyvD,KAAKtgB,UACVnvC,KAAKq3D,QAAQloB,UAEbnvC,KAAKoC,OAAS,KACdpC,KAAK4E,KAAO,OAMpBkvB,EAAO4iC,aAAarzD,UAAUC,YAAcwwB,EAAO4iC,aAUnD9yD,OAAOC,eAAeiwB,EAAO4iC,aAAarzD,UAAW,YAEjDS,IAAK,WAED,MAAI9D,MAAK62D,KAEE,GAGJ72D,KAAK4E,KAAKskC,KAAKA,KAAOlpC,KAAK82D,YAoB1ChjC,EAAOw8B,QAAU,SAAU1rD,EAAMgT,GAK7B5X,KAAK4E,KAAOA,EAKZ5E,KAAK4X,GAAKA,EAMV5X,KAAK+W,KAAO+c,EAAOsD,QAMnBp3B,KAAKiyC,QAAS,EAMdjyC,KAAKsxD,WAAa,EAMlBtxD,KAAK8xD,UAAY,KAMjB9xD,KAAKyE,OAAS,KASdzE,KAAK2yD,OAAS,KAWd3yD,KAAKy3D,WAAa,GAAI3jC,GAAO4iC,aAAa12D,KAAM8zB,EAAOw8B,QAAQkD,aAa/DxzD,KAAK03D,aAAe,GAAI5jC,GAAO4iC,aAAa12D,KAAM8zB,EAAOw8B,QAAQmD,eAajEzzD,KAAK23D,YAAc,GAAI7jC,GAAO4iC,aAAa12D,KAAM8zB,EAAOw8B,QAAQoD,cAahE1zD,KAAK43D,WAAa,GAAI9jC,GAAO4iC,aAAa12D,KAAM8zB,EAAOw8B,QAAQqD,aAa/D3zD,KAAK63D,cAAgB,GAAI/jC,GAAO4iC,aAAa12D,KAAM8zB,EAAOw8B,QAAQsD,gBAalE5zD,KAAK83D,aAAe,GAAIhkC,GAAO4iC,aAAa12D,KAAM8zB,EAAOw8B,QAAQyH,eAOjE/3D,KAAKg4D,WAAY,EAMjBh4D,KAAKi4D,YAMLj4D,KAAKk4D,UAAY,EAMjBl4D,KAAKm4D,aAAc,EAKnBn4D,KAAKy0D,YAAa,EAKlBz0D,KAAKo4D,QAAU,GAKfp4D,KAAKq4D,QAAU,GAKfr4D,KAAKs4D,MAAQ,GAKbt4D,KAAKu4D,MAAQ,GAKbv4D,KAAKw4D,QAAU,GAKfx4D,KAAKy4D,QAAU,GAMfz4D,KAAK04D,aAAe,EAMpB14D,KAAK24D,aAAe,EAMpB34D,KAAK44D,UAAY,EAMjB54D,KAAK64D,UAAY,EAMjB74D,KAAK0F,EAAI,GAMT1F,KAAK2F,EAAI,GAKT3F,KAAK84D,QAAkB,IAAPlhD,EAQhB5X,KAAK42D,QAAS,EAQd52D,KAAK62D,MAAO,EAMZ72D,KAAK82D,SAAW,EAMhB92D,KAAKg3D,OAAS,EAMdh3D,KAAK+4D,gBAAkB,EAMvB/4D,KAAKg5D,aAAe,EAMpBh5D,KAAKi5D,iBAAmB31B,OAAOC,UAM/BvjC,KAAKk5D,aAAe,KAMpBl5D,KAAKytC,QAAS,EAMdztC,KAAK4V,OAAQ,EAKb5V,KAAKyB,SAAW,GAAIqyB,GAAOpyB,MAK3B1B,KAAKm5D,aAAe,GAAIrlC,GAAOpyB,MAK/B1B,KAAKo5D,WAAa,GAAItlC,GAAOpyB,MAO7B1B,KAAK8tD,OAAS,GAAIh6B,GAAOmI,OAAO,EAAG,EAAG,IAOtCj8B,KAAKq5D,kBAAoB,KAQzBr5D,KAAKs5D,wBAA0B,MASnCxlC,EAAOw8B,QAAQiD,UAAY,EAO3Bz/B,EAAOw8B,QAAQkD,YAAc,EAO7B1/B,EAAOw8B,QAAQoD,aAAe,EAO9B5/B,EAAOw8B,QAAQmD,cAAgB,EAQ/B3/B,EAAOw8B,QAAQqD,YAAc,EAQ7B7/B,EAAOw8B,QAAQsD,eAAiB,GAOhC9/B,EAAOw8B,QAAQyH,cAAgB,GAE/BjkC,EAAOw8B,QAAQjtD,WAQXk2D,aAAc,WAEVv5D,KAAK42D,QAAS,EACd52D,KAAK62D,MAAO,EAER72D,KAAK84D,UAEL94D,KAAKy3D,WAAWh7C,QAChBzc,KAAK03D,aAAaj7C,QAClBzc,KAAK23D,YAAYl7C,QACjBzc,KAAK43D,WAAWn7C,QAChBzc,KAAK63D,cAAcp7C,QACnBzc,KAAK83D,aAAar7C,UAa1B+8C,cAAe,SAAUtmB,GAErBlzC,KAAK2yD,OAASzf,EAAMyf,MAIpB,IAAI8G,GAAUvmB,EAAMumB,OAEJhwD,UAAZgwD,IAOA3lC,EAAOw8B,QAAQkD,YAAciG,EAE7Bz5D,KAAKy3D,WAAWrsD,MAAM8nC,GAItBlzC,KAAKy3D,WAAWzsD,KAAKkoC,GAGrBpf,EAAOw8B,QAAQoD,aAAe+F,EAE9Bz5D,KAAK23D,YAAYvsD,MAAM8nC,GAIvBlzC,KAAK23D,YAAY3sD,KAAKkoC,GAGtBpf,EAAOw8B,QAAQmD,cAAgBgG,EAE/Bz5D,KAAK03D,aAAatsD,MAAM8nC,GAIxBlzC,KAAK03D,aAAa1sD,KAAKkoC,GAGvBpf,EAAOw8B,QAAQqD,YAAc8F,EAE7Bz5D,KAAK43D,WAAWxsD,MAAM8nC,GAItBlzC,KAAK43D,WAAW5sD,KAAKkoC,GAGrBpf,EAAOw8B,QAAQsD,eAAiB6F,EAEhCz5D,KAAK63D,cAAczsD,MAAM8nC,GAIzBlzC,KAAK63D,cAAc7sD,KAAKkoC,GAGxBpf,EAAOw8B,QAAQyH,cAAgB0B,EAE/Bz5D,KAAK83D,aAAa1sD,MAAM8nC,GAIxBlzC,KAAK83D,aAAa9sD,KAAKkoC,GAKvBA,EAAMkkB,SAAWp3D,KAAKy3D,WAAWb,QAEjC52D,KAAK23D,YAAYvsD,MAAM8nC,GAG3BlzC,KAAK62D,MAAO,EACZ72D,KAAK42D,QAAS,GAEV52D,KAAKy3D,WAAWb,QAAU52D,KAAK23D,YAAYf,QAAU52D,KAAK03D,aAAad,QAAU52D,KAAK43D,WAAWhB,QAAU52D,KAAK63D,cAAcjB,QAAU52D,KAAK83D,aAAalB,UAE1J52D,KAAK62D,MAAO,EACZ72D,KAAK42D,QAAS,KAUtBxrD,MAAO,SAAU8nC,GAyDb,MAvDIA,GAAiB,YAEjBlzC,KAAK8xD,UAAY5e,EAAM4e,WAG3B9xD,KAAKsxD,WAAape,EAAMoe,WACxBtxD,KAAKyE,OAASyuC,EAAMzuC,OAEhBzE,KAAK84D,QAEL94D,KAAKw5D,cAActmB,IAInBlzC,KAAK42D,QAAS,EACd52D,KAAK62D,MAAO,GAGhB72D,KAAKi4D,YACLj4D,KAAKytC,QAAS,EACdztC,KAAKy0D,YAAa,EAClBz0D,KAAK4V,OAAQ,EACb5V,KAAKq5D,kBAAoB,KACzBr5D,KAAKs5D,wBAA0B,KAG/Bt5D,KAAKi5D,iBAAmBj5D,KAAK4E,KAAKskC,KAAKA,KAAOlpC,KAAK82D,SACnD92D,KAAK82D,SAAW92D,KAAK4E,KAAKskC,KAAKA,KAC/BlpC,KAAKg4D,WAAY,EAGjBh4D,KAAKuxD,KAAKre,GAAO,GAGjBlzC,KAAKm5D,aAAa58B,MAAMv8B,KAAK0F,EAAG1F,KAAK2F,IAEjC3F,KAAK4E,KAAKkkC,MAAM6kB,qBAAuB75B,EAAO03B,MAAM2E,uBACpDnwD,KAAK4E,KAAKkkC,MAAM6kB,qBAAuB75B,EAAO03B,MAAMoC,qBACnD5tD,KAAK4E,KAAKkkC,MAAM6kB,qBAAuB75B,EAAO03B,MAAM4E,uBAAiE,IAAxCpwD,KAAK4E,KAAKkkC,MAAM4wB,uBAE9F15D,KAAK4E,KAAKkkC,MAAMpjC,EAAI1F,KAAK0F,EACzB1F,KAAK4E,KAAKkkC,MAAMnjC,EAAI3F,KAAK2F,EACzB3F,KAAK4E,KAAKkkC,MAAMrnC,SAAS86B,MAAMv8B,KAAK0F,EAAG1F,KAAK2F,GAC5C3F,KAAK4E,KAAKkkC,MAAM0mB,OAAO/iB,SAASzsC,KAAMkzC,GACtClzC,KAAK4E,KAAKkkC,MAAMooB,WAAWlxD,KAAK0F,EAAG1F,KAAK2F,IAG5C3F,KAAKm4D,aAAc,EACnBn4D,KAAKg5D,eAEqB,OAAtBh5D,KAAKk5D,cAELl5D,KAAKk5D,aAAaS,gBAAgB35D,MAG/BA,MAQXsmC,OAAQ,WAEAtmC,KAAKytC,SAGDztC,KAAK4V,QAED5V,KAAK4E,KAAKkkC,MAAM+mB,iBAAiB5V,MAAQ,GAEzCj6C,KAAK45D,2BAA0B,GAGnC55D,KAAK4V,OAAQ,GAGb5V,KAAKg4D,aAAc,GAASh4D,KAAK+2D,UAAY/2D,KAAK4E,KAAKkkC,MAAMolB,YAEzDluD,KAAK4E,KAAKkkC,MAAM6kB,qBAAuB75B,EAAO03B,MAAM2E,uBACpDnwD,KAAK4E,KAAKkkC,MAAM6kB,qBAAuB75B,EAAO03B,MAAMoC,qBACnD5tD,KAAK4E,KAAKkkC,MAAM6kB,qBAAuB75B,EAAO03B,MAAM4E,uBAAiE,IAAxCpwD,KAAK4E,KAAKkkC,MAAM4wB,sBAE9F15D,KAAK4E,KAAKkkC,MAAM6mB,OAAOljB,SAASzsC,MAGpCA,KAAKg4D,WAAY,GAIjBh4D,KAAK4E,KAAKkkC,MAAMulB,sBAAwBruD,KAAK4E,KAAKskC,KAAKA,MAAQlpC,KAAKk4D,YAEpEl4D,KAAKk4D,UAAYl4D,KAAK4E,KAAKskC,KAAKA,KAAOlpC,KAAK4E,KAAKkkC,MAAMwlB,WAEvDtuD,KAAKi4D,SAAS1zD,MACVmB,EAAG1F,KAAKyB,SAASiE,EACjBC,EAAG3F,KAAKyB,SAASkE,IAGjB3F,KAAKi4D,SAASv0D,OAAS1D,KAAK4E,KAAKkkC,MAAMylB,aAEvCvuD,KAAKi4D,SAAS4B,WAc9BtI,KAAM,SAAUre,EAAO4mB,GAEnB,IAAI95D,KAAK4E,KAAKkkC,MAAMixB,WAApB,CAyDA,GApDkBtwD,SAAdqwD,IAA2BA,GAAY,GAEtBrwD,SAAjBypC,EAAMyf,SAEN3yD,KAAK2yD,OAASzf,EAAMyf,QAGpBmH,GAEA95D,KAAKw5D,cAActmB,GAGvBlzC,KAAKo4D,QAAUllB,EAAMklB,QACrBp4D,KAAKq4D,QAAUnlB,EAAMmlB,QAErBr4D,KAAKs4D,MAAQplB,EAAMolB,MACnBt4D,KAAKu4D,MAAQrlB,EAAMqlB,MAEnBv4D,KAAKw4D,QAAUtlB,EAAMslB,QACrBx4D,KAAKy4D,QAAUvlB,EAAMulB,QAEjBz4D,KAAK84D,SAAW94D,KAAK4E,KAAKkkC,MAAMoH,MAAM2iB,SAAWiH,IAEjD95D,KAAK04D,aAAexlB,EAAM0lB,WAAa1lB,EAAM8mB,cAAgB9mB,EAAM+mB,iBAAmB,EACtFj6D,KAAK24D,aAAezlB,EAAM2lB,WAAa3lB,EAAMgnB,cAAgBhnB,EAAMinB,iBAAmB,EAEtFn6D,KAAK44D,WAAa54D,KAAK04D,aACvB14D,KAAK64D,WAAa74D,KAAK24D,cAG3B34D,KAAK0F,GAAK1F,KAAKs4D,MAAQt4D,KAAK4E,KAAKjD,MAAMkZ,OAAOnV,GAAK1F,KAAK4E,KAAKkkC,MAAMnnC,MAAM+D,EACzE1F,KAAK2F,GAAK3F,KAAKu4D,MAAQv4D,KAAK4E,KAAKjD,MAAMkZ,OAAOlV,GAAK3F,KAAK4E,KAAKkkC,MAAMnnC,MAAMgE,EAEzE3F,KAAKyB,SAAS86B,MAAMv8B,KAAK0F,EAAG1F,KAAK2F,GACjC3F,KAAK8tD,OAAOpoD,EAAI1F,KAAK0F,EACrB1F,KAAK8tD,OAAOnoD,EAAI3F,KAAK2F,GAEjB3F,KAAK4E,KAAKkkC,MAAM6kB,qBAAuB75B,EAAO03B,MAAM2E,uBACpDnwD,KAAK4E,KAAKkkC,MAAM6kB,qBAAuB75B,EAAO03B,MAAMoC,qBACnD5tD,KAAK4E,KAAKkkC,MAAM6kB,qBAAuB75B,EAAO03B,MAAM4E,uBAAiE,IAAxCpwD,KAAK4E,KAAKkkC,MAAM4wB,uBAE9F15D,KAAK4E,KAAKkkC,MAAM4e,cAAgB1nD,KAChCA,KAAK4E,KAAKkkC,MAAMpjC,EAAI1F,KAAK0F,EACzB1F,KAAK4E,KAAKkkC,MAAMnjC,EAAI3F,KAAK2F,EACzB3F,KAAK4E,KAAKkkC,MAAMrnC,SAAS86B,MAAMv8B,KAAK4E,KAAKkkC,MAAMpjC,EAAG1F,KAAK4E,KAAKkkC,MAAMnjC,GAClE3F,KAAK4E,KAAKkkC,MAAMglB,OAAOpoD,EAAI1F,KAAK4E,KAAKkkC,MAAMpjC,EAC3C1F,KAAK4E,KAAKkkC,MAAMglB,OAAOnoD,EAAI3F,KAAK4E,KAAKkkC,MAAMnjC,GAG/C3F,KAAKy0D,WAAaz0D,KAAK4E,KAAKjD,MAAM+E,OAAOo2B,SAAS98B,KAAKs4D,MAAOt4D,KAAKu4D,OAG/Dv4D,KAAK4E,KAAK+kC,OAEV,MAAO3pC,KAKX,KAFA,GAAIyD,GAAIzD,KAAK4E,KAAKkkC,MAAM0kB,cAAc9pD,OAE/BD,KAEHzD,KAAK4E,KAAKkkC,MAAM0kB,cAAc/pD,GAAGk1C,SAAS7yC,KAAK9F,KAAK4E,KAAKkkC,MAAM0kB,cAAc/pD,GAAG2J,QAASpN,KAAMA,KAAK0F,EAAG1F,KAAK2F,EAAGm0D,EAgBnH,OAZ0B,QAAtB95D,KAAKk5D,cAAyBl5D,KAAKk5D,aAAakB,aAAc,EAE1Dp6D,KAAKk5D,aAAa5yB,OAAOtmC,SAAU,IAEnCA,KAAKk5D,aAAe,MAGnBl5D,KAAK4E,KAAKkkC,MAAM+mB,iBAAiB5V,MAAQ,GAE9Cj6C,KAAK45D,0BAA0BE,GAG5B95D,OAYX45D,0BAA2B,SAAUE,GAYjC,IATA,GAAIO,GAAuB/2B,OAAOC,UAC9B+2B,EAAyB,GACzBC,EAAkB,KAKlBC,EAAcx6D,KAAK4E,KAAKkkC,MAAM+mB,iBAAiB4K,MAE5CD,GAGHA,EAAYE,SAAU,EAElBF,EAAYG,cAAcL,EAAwBD,GAAsB,KAGxEG,EAAYE,SAAU,GAEjBZ,GAAaU,EAAYI,iBAAiB56D,MAAM,KAC/C85D,GAAaU,EAAYK,iBAAiB76D,MAAM,MAElDq6D,EAAuBG,EAAY7wC,OAAOuvB,cAC1CohB,EAAyBE,EAAYM,WACrCP,EAAkBC,IAI1BA,EAAcx6D,KAAK4E,KAAKkkC,MAAM+mB,iBAAiB9Y,IASnD,KAFA,GAAIyjB,GAAcx6D,KAAK4E,KAAKkkC,MAAM+mB,iBAAiB4K,MAE7CD,IAEGA,EAAYE,SACbF,EAAYG,cAAcL,EAAwBD,GAAsB,KAEnEP,GAAaU,EAAYI,iBAAiB56D,MAAM,KAC/C85D,GAAaU,EAAYK,iBAAiB76D,MAAM,MAElDq6D,EAAuBG,EAAY7wC,OAAOuvB,cAC1CohB,EAAyBE,EAAYM,WACrCP,EAAkBC,GAI1BA,EAAcx6D,KAAK4E,KAAKkkC,MAAM+mB,iBAAiB9Y,IA4CnD,OAxCwB,QAApBwjB,EAGIv6D,KAAKk5D,eAELl5D,KAAKk5D,aAAa6B,mBAAmB/6D,MACrCA,KAAKk5D,aAAe,MAKE,OAAtBl5D,KAAKk5D,cAGLl5D,KAAKk5D,aAAeqB,EACpBA,EAAgBS,oBAAoBh7D,OAKhCA,KAAKk5D,eAAiBqB,EAGlBA,EAAgBj0B,OAAOtmC,SAAU,IAEjCA,KAAKk5D,aAAe,OAMxBl5D,KAAKk5D,aAAa6B,mBAAmB/6D,MAGrCA,KAAKk5D,aAAeqB,EACpBv6D,KAAKk5D,aAAa8B,oBAAoBh7D,OAKpB,OAAtBA,KAAKk5D,cAUjB+B,MAAO,SAAU/nB,GAEblzC,KAAKy0D,YAAa,EAClBz0D,KAAKuxD,KAAKre,GAAO,IAUrBloC,KAAM,SAAUkoC,GAEZ,MAAIlzC,MAAKm4D,aAAen4D,KAAKy0D,eAEzBvhB,GAAMmZ,kBAINrsD,KAAK84D,QAEL94D,KAAKw5D,cAActmB,IAInBlzC,KAAK42D,QAAS,EACd52D,KAAK62D,MAAO,GAGhB72D,KAAKg3D,OAASh3D,KAAK4E,KAAKskC,KAAKA,MAEzBlpC,KAAK4E,KAAKkkC,MAAM6kB,qBAAuB75B,EAAO03B,MAAM2E,uBACpDnwD,KAAK4E,KAAKkkC,MAAM6kB,qBAAuB75B,EAAO03B,MAAMoC,qBACnD5tD,KAAK4E,KAAKkkC,MAAM6kB,qBAAuB75B,EAAO03B,MAAM4E,uBAAiE,IAAxCpwD,KAAK4E,KAAKkkC,MAAM4wB,uBAE9F15D,KAAK4E,KAAKkkC,MAAM2mB,KAAKhjB,SAASzsC,KAAMkzC,GAGhClzC,KAAK+2D,UAAY,GAAK/2D,KAAK+2D,UAAY/2D,KAAK4E,KAAKkkC,MAAMklB,UAGnDhuD,KAAKg3D,OAASh3D,KAAK+4D,gBAAkB/4D,KAAK4E,KAAKkkC,MAAMmlB,cAGrDjuD,KAAK4E,KAAKkkC,MAAM4mB,MAAMjjB,SAASzsC,MAAM,GAKrCA,KAAK4E,KAAKkkC,MAAM4mB,MAAMjjB,SAASzsC,MAAM,GAGzCA,KAAK+4D,gBAAkB/4D,KAAKg3D,SAKhCh3D,KAAK4X,GAAK,IAEV5X,KAAKytC,QAAS,GAGlBztC,KAAKy0D,YAAa,EAClBz0D,KAAK8xD,UAAY,KACjB9xD,KAAKsxD,WAAa,KAElBtxD,KAAKo5D,WAAW78B,MAAMv8B,KAAK0F,EAAG1F,KAAK2F,GAE/B3F,KAAK84D,WAAY,GAEjB94D,KAAK4E,KAAKkkC,MAAMoyB,kBAGpBl7D,KAAK4E,KAAKkkC,MAAM+mB,iBAAiB/W,QAAQ,mBAAoB94C,MAEzDA,KAAKq5D,oBAELr5D,KAAKs5D,wBAA0Bt5D,KAAKk5D,cAGxCl5D,KAAKk5D,aAAe,KAEbl5D,OAYXu3D,YAAa,SAAUR,GAInB,MAFAA,GAAWA,GAAY/2D,KAAK4E,KAAKkkC,MAAMqlB,gBAE/BnuD,KAAK42D,UAAW,GAAS52D,KAAK82D,SAAWC,EAAY/2D,KAAK4E,KAAKskC,KAAKA,MAYhFsuB,aAAc,SAAUT,GAIpB,MAFAA,GAAWA,GAAY/2D,KAAK4E,KAAKkkC,MAAMslB,iBAE/BpuD,KAAK62D,MAAS72D,KAAKg3D,OAASD,EAAY/2D,KAAK4E,KAAKskC,KAAKA,MAqBnE0e,mBAAoB,SAAUzsB,EAAMwd,EAAU3M,EAAiBmvB,GAE3D,GAAKn7D,KAAK42D,OAAV,CAOA,IAAK,GAFDwE,GAAep7D,KAAKq5D,kBAAoBr5D,KAAKq5D,sBAExC51D,EAAI,EAAGA,EAAI23D,EAAY13D,OAAQD,IAEpC,GAAI23D,EAAY33D,GAAG03B,OAASA,EAC5B,CACIigC,EAAYxyD,OAAOnF,EAAG,EACtB,OAIR23D,EAAY72D,MACR42B,KAAMA,EACN+9B,aAAcl5D,KAAKk5D,aACnBvgB,SAAUA,EACV3M,gBAAiBA,EACjBmvB,aAAcA,MAUtB/I,wBAAyB,WAErB,GAAIgJ,GAAcp7D,KAAKq5D,iBAEvB,IAAK+B,EAAL,CAKA,IAAK,GAAI33D,GAAI,EAAGA,EAAI23D,EAAY13D,OAAQD,IACxC,CACI,GAAI43D,GAAaD,EAAY33D,EAEzB43D,GAAWnC,eAAiBl5D,KAAKs5D,yBAEjC+B,EAAW1iB,SAASxxC,MAAMk0D,EAAWrvB,gBAAiBqvB,EAAWF,cAIzEn7D,KAAKq5D,kBAAoB,KACzBr5D,KAAKs5D,wBAA0B,OAQnC78C,MAAO,WAECzc,KAAK84D,WAAY,IAEjB94D,KAAKytC,QAAS,GAGlBztC,KAAK8xD,UAAY,KACjB9xD,KAAKsxD,WAAa,KAClBtxD,KAAK4V,OAAQ,EACb5V,KAAKg5D,aAAe,EACpBh5D,KAAKg4D,WAAY,EACjBh4D,KAAKi4D,SAASv0D,OAAS,EACvB1D,KAAKm4D,aAAc,EAEnBn4D,KAAKu5D,eAEDv5D,KAAKk5D,cAELl5D,KAAKk5D,aAAaoC,iBAAiBt7D,MAGvCA,KAAKk5D,aAAe,MAQxBqC,cAAe,WAEXv7D,KAAK44D,UAAY,EACjB54D,KAAK64D,UAAY,IAMzB/kC,EAAOw8B,QAAQjtD,UAAUC,YAAcwwB,EAAOw8B,QAW9C1sD,OAAOC,eAAeiwB,EAAOw8B,QAAQjtD,UAAW,YAE5CS,IAAK,WAED,MAAI9D,MAAK62D,KAEE,GAGJ72D,KAAK4E,KAAKskC,KAAKA,KAAOlpC,KAAK82D,YAY1ClzD,OAAOC,eAAeiwB,EAAOw8B,QAAQjtD,UAAW,UAE5CS,IAAK,WAED,MAAO9D,MAAK4E,KAAKE,MAAM8jC,OAAOljC,EAAI1F,KAAK0F,KAY/C9B,OAAOC,eAAeiwB,EAAOw8B,QAAQjtD,UAAW,UAE5CS,IAAK,WAED,MAAO9D,MAAK4E,KAAKE,MAAM8jC,OAAOjjC,EAAI3F,KAAK2F,KAqB/CmuB,EAAO28B,MAAQ,SAAU7rD,GAKrB5E,KAAK4E,KAAOA,EAOZ5E,KAAK0tD,SAAU,EASf1tD,KAAKw7D,sBAKLx7D,KAAKgsC,gBAAkBhsC,KAAK4E,KAK5B5E,KAAKy7D,mBAAqB,KAK1Bz7D,KAAK07D,kBAAoB,KAKzB17D,KAAK27D,iBAAmB,KAKxB37D,KAAK47D,mBAAqB,KAK1B57D,KAAK67D,mBAAqB,KAK1B77D,KAAK87D,oBAAsB,KAM3B97D,KAAKqsD,gBAAiB,EAMtBrsD,KAAKkzC,MAAQ,KAMblzC,KAAK+7D,cAAgB,KAMrB/7D,KAAKg8D,aAAe,KAMpBh8D,KAAKi8D,YAAc,KAMnBj8D,KAAKk8D,cAAgB,KAMrBl8D,KAAKm8D,cAAgB,KAMrBn8D,KAAKo8D,eAAiB,KAMtBp8D,KAAKg8D,aAAe,MAIxBloC,EAAO28B,MAAMptD,WAMT+H,MAAO,WAEH,GAA2B,OAAvBpL,KAAK+7D,cAAT,CAMA,GAAI3sB,GAAQpvC,IAERA,MAAK4E,KAAK6uC,OAAO2b,QAEjBpvD,KAAK+7D,cAAgB,SAAU7oB,GAC3B,MAAO9D,GAAMitB,aAAanpB,IAG9BlzC,KAAKg8D,aAAe,SAAU9oB,GAC1B,MAAO9D,GAAMktB,YAAYppB,IAG7BlzC,KAAKi8D,YAAc,SAAU/oB,GACzB,MAAO9D,GAAMmtB,WAAWrpB,IAG5BlzC,KAAKk8D,cAAgB,SAAUhpB,GAC3B,MAAO9D,GAAMotB,aAAatpB,IAG9BlzC,KAAKm8D,cAAgB,SAAUjpB,GAC3B,MAAO9D,GAAMqtB,aAAavpB,IAG9BlzC,KAAKo8D,eAAiB,SAAUlpB,GAC5B,MAAO9D,GAAMstB,cAAcxpB,IAG/BlzC,KAAK4E,KAAKmM,OAAOqiC,iBAAiB,aAAcpzC,KAAK+7D,eAAe,GACpE/7D,KAAK4E,KAAKmM,OAAOqiC,iBAAiB,YAAapzC,KAAKg8D,cAAc,GAClEh8D,KAAK4E,KAAKmM,OAAOqiC,iBAAiB,WAAYpzC,KAAKi8D,aAAa,GAChEj8D,KAAK4E,KAAKmM,OAAOqiC,iBAAiB,cAAepzC,KAAKo8D,gBAAgB,GAEjEp8D,KAAK4E,KAAK6uC,OAAO2O,WAElBpiD,KAAK4E,KAAKmM,OAAOqiC,iBAAiB,aAAcpzC,KAAKk8D,eAAe,GACpEl8D,KAAK4E,KAAKmM,OAAOqiC,iBAAiB,aAAcpzC,KAAKm8D,eAAe,OAUhFQ,uBAAwB,WAEpB38D,KAAK48D,mBAAqB,SAAU1pB,GAChCA,EAAMmZ,kBAGV77C,SAAS4iC,iBAAiB,YAAapzC,KAAK48D,oBAAoB,IAiBpEC,qBAAsB,SAAUlkB,EAAUvrC,GAEtCpN,KAAKw7D,mBAAmBj3D,MAAOo0C,SAAUA,EAAUvrC,QAASA,KAYhE0vD,wBAAyB,SAAUnkB,EAAUvrC,GAIzC,IAFA,GAAI3J,GAAIzD,KAAKw7D,mBAAmB93D,OAEzBD,KAEH,GAAIzD,KAAKw7D,mBAAmB/3D,GAAGk1C,WAAaA,GAAY34C,KAAKw7D,mBAAmB/3D,GAAG2J,UAAYA,EAG3F,MADApN,MAAKw7D,mBAAmB5yD,OAAOnF,EAAG,IAC3B,CAIf,QAAO,GASX44D,aAAc,SAAUnpB,GAIpB,IAFA,GAAIzvC,GAAIzD,KAAKw7D,mBAAmB93D,OAEzBD,KAECzD,KAAKw7D,mBAAmB/3D,GAAGk1C,SAAS7yC,KAAK9F,KAAKw7D,mBAAmB/3D,GAAG2J,QAASpN,KAAMkzC,IAEnFlzC,KAAKw7D,mBAAmB5yD,OAAOnF,EAAG,EAM1C,IAFAzD,KAAKkzC,MAAQA,EAERlzC,KAAK4E,KAAKkkC,MAAM4kB,SAAY1tD,KAAK0tD,QAAtC,CAKI1tD,KAAKy7D,oBAELz7D,KAAKy7D,mBAAmB31D,KAAK9F,KAAKgsC,gBAAiBkH,GAGnDlzC,KAAKqsD,gBAELnZ,EAAMmZ,gBAMV,KAAK,GAAI5oD,GAAI,EAAGA,EAAIyvC,EAAM6pB,eAAer5D,OAAQD,IAE7CzD,KAAK4E,KAAKkkC,MAAMqoB,aAAaje,EAAM6pB,eAAet5D,MAW1Di5D,cAAe,SAAUxpB,GASrB,GAPAlzC,KAAKkzC,MAAQA,EAETlzC,KAAK87D,qBAEL97D,KAAK87D,oBAAoBh2D,KAAK9F,KAAKgsC,gBAAiBkH,GAGnDlzC,KAAK4E,KAAKkkC,MAAM4kB,SAAY1tD,KAAK0tD,QAAtC,CAKI1tD,KAAKqsD,gBAELnZ,EAAMmZ,gBAKV,KAAK,GAAI5oD,GAAI,EAAGA,EAAIyvC,EAAM6pB,eAAer5D,OAAQD,IAE7CzD,KAAK4E,KAAKkkC,MAAM0oB,YAAYte,EAAM6pB,eAAet5D,MAWzD+4D,aAAc,SAAUtpB,GAEpBlzC,KAAKkzC,MAAQA,EAETlzC,KAAK47D,oBAEL57D,KAAK47D,mBAAmB91D,KAAK9F,KAAKgsC,gBAAiBkH,GAGlDlzC,KAAK4E,KAAKkkC,MAAM4kB,SAAY1tD,KAAK0tD,SAKlC1tD,KAAKqsD,gBAELnZ,EAAMmZ,kBAWdoQ,aAAc,SAAUvpB,GAEpBlzC,KAAKkzC,MAAQA,EAETlzC,KAAK67D,oBAEL77D,KAAK67D,mBAAmB/1D,KAAK9F,KAAKgsC,gBAAiBkH,GAGnDlzC,KAAKqsD,gBAELnZ,EAAMmZ,kBAUdiQ,YAAa,SAAUppB,GAEnBlzC,KAAKkzC,MAAQA,EAETlzC,KAAK07D,mBAEL17D,KAAK07D,kBAAkB51D,KAAK9F,KAAKgsC,gBAAiBkH,GAGlDlzC,KAAKqsD,gBAELnZ,EAAMmZ,gBAGV,KAAK,GAAI5oD,GAAI,EAAGA,EAAIyvC,EAAM6pB,eAAer5D,OAAQD,IAE7CzD,KAAK4E,KAAKkkC,MAAMuoB,cAAcne,EAAM6pB,eAAet5D,KAU3D84D,WAAY,SAAUrpB,GAElBlzC,KAAKkzC,MAAQA,EAETlzC,KAAK27D,kBAEL37D,KAAK27D,iBAAiB71D,KAAK9F,KAAKgsC,gBAAiBkH,GAGjDlzC,KAAKqsD,gBAELnZ,EAAMmZ,gBAMV,KAAK,GAAI5oD,GAAI,EAAGA,EAAIyvC,EAAM6pB,eAAer5D,OAAQD,IAE7CzD,KAAK4E,KAAKkkC,MAAM0oB,YAAYte,EAAM6pB,eAAet5D,KASzDuH,KAAM,WAEEhL,KAAK4E,KAAK6uC,OAAO2b,QAEjBpvD,KAAK4E,KAAKmM,OAAOwjC,oBAAoB,aAAcv0C,KAAK+7D,eACxD/7D,KAAK4E,KAAKmM,OAAOwjC,oBAAoB,YAAav0C,KAAKg8D,cACvDh8D,KAAK4E,KAAKmM,OAAOwjC,oBAAoB,WAAYv0C,KAAKi8D,aACtDj8D,KAAK4E,KAAKmM,OAAOwjC,oBAAoB,aAAcv0C,KAAKk8D,eACxDl8D,KAAK4E,KAAKmM,OAAOwjC,oBAAoB,aAAcv0C,KAAKm8D,eACxDn8D,KAAK4E,KAAKmM,OAAOwjC,oBAAoB,cAAev0C,KAAKo8D;GAOrEtoC,EAAO28B,MAAMptD,UAAUC,YAAcwwB,EAAO28B,MAe5C38B,EAAOkpC,aAAe,SAAUrzC,GAK5B3pB,KAAK2pB,OAASA,EAKd3pB,KAAK4E,KAAO+kB,EAAO/kB,KAMnB5E,KAAK0tD,SAAU,EAMf1tD,KAAK06D,SAAU,EASf16D,KAAK86D,WAAa,EAMlB96D,KAAKi9D,eAAgB,EAMrBj9D,KAAKk9D,gBAAiB,EAMtBl9D,KAAKo6D,WAAY,EAMjBp6D,KAAKm9D,qBAAsB,EAM3Bn9D,KAAKo9D,mBAAoB,EAMzBp9D,KAAKm3C,YAAa,EAMlBn3C,KAAKq9D,WAAa,KAMlBr9D,KAAKs9D,YAAa,EAMlBt9D,KAAKu9D,eAAgB,EAMrBv9D,KAAKw9D,MAAQ,EAMbx9D,KAAKy9D,MAAQ,EAMbz9D,KAAK09D,YAAc,EAMnB19D,KAAK29D,YAAc,EAUnB39D,KAAK49D,kBAAmB,EAUxB59D,KAAK69D,mBAAoB,EAMzB79D,KAAK89D,kBAAoB,IAMzB99D,KAAK+9D,WAAY,EAMjB/9D,KAAKg+D,WAAa,KAMlBh+D,KAAKi+D,aAAe,KAQpBj+D,KAAKk+D,qBAAsB,EAK3Bl+D,KAAKm+D,YAAa,EAKlBn+D,KAAKo+D,WAAa,GAAItqC,GAAOpyB,MAK7B1B,KAAKq+D,gBAAiB,EAKtBr+D,KAAKs+D,eAAiB,GAAIxqC,GAAOpyB,MAKjC1B,KAAKu+D,UAAY,GAAIzqC,GAAOpyB,MAM5B1B,KAAKw+D,WAAa,GAAI1qC,GAAOpyB,MAM7B1B,KAAKy+D,YAAa,EAMlBz+D,KAAK0+D,aAAc,EAMnB1+D,KAAK2+D,WAAa,GAAI7qC,GAAOpyB,MAM7B1B,KAAK4+D,gBAEL5+D,KAAK4+D,aAAar6D,MACdqT,GAAI,EACJlS,EAAG,EACHC,EAAG,EACHixD,QAAQ,EACRC,MAAM,EACNgI,QAAQ,EACRC,OAAO,EACPC,SAAU,EACVC,QAAS,EACTlI,SAAU,EACVE,OAAQ,EACRiI,aAAc,EACd7E,WAAW,KAKnBtmC,EAAOkpC,aAAa35D,WAShB+H,MAAO,SAAU6iC,EAAUgvB,GAMvB,GAJAhvB,EAAWA,GAAY,EACDxkC,SAAlBwzD,IAA+BA,GAAgB,GAG/Cj9D,KAAK0tD,WAAY,EACrB,CAEI1tD,KAAK4E,KAAKkkC,MAAM+mB,iBAAiBjvB,IAAI5gC,MACrCA,KAAKi9D,cAAgBA,EACrBj9D,KAAK86D,WAAa7sB,CAElB,KAAK,GAAIxqC,GAAI,EAAO,GAAJA,EAAQA,IAEpBzD,KAAK4+D,aAAan7D,IACdmU,GAAInU,EACJiC,EAAG,EACHC,EAAG,EACHixD,QAAQ,EACRC,MAAM,EACNgI,QAAQ,EACRC,OAAO,EACPC,SAAU,EACVC,QAAS,EACTlI,SAAU,EACVE,OAAQ,EACRiI,aAAc,EACd7E,WAAW,EAInBp6D,MAAKq9D,WAAa,GAAIvpC,GAAOpyB,MAC7B1B,KAAK0tD,SAAU,EACf1tD,KAAK0+D,aAAc,EASvB,MALA1+D,MAAK2pB,OAAOysB,OAAO8oB,eAAet+B,IAAI5gC,KAAKm/D,aAAcn/D,MACzDA,KAAK2pB,OAAOysB,OAAOgpB,mBAAmBx+B,IAAI5gC,KAAKq/D,iBAAkBr/D,MAEjEA,KAAKs/D,SAAU,EAERt/D,KAAK2pB,QAUhBw1C,aAAc,WAENn/D,KAAKy+D,YAKLz+D,KAAK0+D,cAAgB1+D,KAAK0tD,SAE1B1tD,KAAKoL,SAWbi0D,iBAAkB,WAEVr/D,KAAKy+D,aAKLz+D,KAAK0tD,SAEL1tD,KAAK0+D,aAAc,EACnB1+D,KAAKgL,QAILhL,KAAK0+D,aAAc,IAS3BjiD,MAAO,WAEHzc,KAAK0tD,SAAU,EACf1tD,KAAKs/D,SAAU,CAEf,KAAK,GAAI77D,GAAI,EAAO,GAAJA,EAAQA,IAEpBzD,KAAK4+D,aAAan7D,IACdmU,GAAInU,EACJiC,EAAG,EACHC,EAAG,EACHixD,QAAQ,EACRC,MAAM,EACNgI,QAAQ,EACRC,OAAO,EACPC,SAAU,EACVC,QAAS,EACTlI,SAAU,EACVE,OAAQ,EACRiI,aAAc,EACd7E,WAAW,IASvBpvD,KAAM,WAGEhL,KAAK0tD,WAAY,IAOjB1tD,KAAK0tD,SAAU,EACf1tD,KAAK4E,KAAKkkC,MAAM+mB,iBAAiB9jB,OAAO/rC,QAShDuD,QAAS,WAEDvD,KAAK2pB,SAED3pB,KAAKk9D,iBAELl9D,KAAK4E,KAAKmM,OAAO0T,MAAM0wB,OAAS,UAChCn1C,KAAKk9D,gBAAiB,GAG1Bl9D,KAAK0tD,SAAU,EAEf1tD,KAAK4E,KAAKkkC,MAAM+mB,iBAAiB9jB,OAAO/rC,MAExCA,KAAK4+D,aAAal7D,OAAS,EAC3B1D,KAAKg+D,WAAa,KAClBh+D,KAAKi+D,aAAe,KACpBj+D,KAAK2pB,OAAS,OAgBtBgxC,cAAe,SAAU4E,EAAWC,EAAiBC,GAIjD,MAF4Bh2D,UAAxBg2D,IAAqCA,GAAsB,GAEnC,IAAxBz/D,KAAK2pB,OAAOhoB,MAAM+D,GAAmC,IAAxB1F,KAAK2pB,OAAOhoB,MAAMgE,GAAW3F,KAAK86D,WAAa96D,KAAK4E,KAAKkkC,MAAM8mB,eAErF,GAIN6P,IAAwBz/D,KAAK69D,oBAAqB79D,KAAK49D,oBAKxD59D,KAAK86D,WAAayE,GAAcv/D,KAAK86D,aAAeyE,GAAav/D,KAAK2pB,OAAOuvB,cAAgBsmB,IAEtF,GALA,GAkBfE,eAAgB,WAEZ,MAAQ1/D,MAAK69D,mBAAqB79D,KAAK49D,kBAY3C+B,SAAU,SAAU3uB,GAIhB,MAFAA,GAAUA,GAAW,EAEdhxC,KAAK4+D,aAAa5tB,GAAStrC,GAYtCk6D,SAAU,SAAU5uB,GAIhB,MAFAA,GAAUA,GAAW,EAEdhxC,KAAK4+D,aAAa5tB,GAASrrC,GAWtCk6D,YAAa,SAAU7uB,GAInB,MAFAA,GAAUA,GAAW,EAEdhxC,KAAK4+D,aAAa5tB,GAAS4lB,QAWtCkJ,UAAW,SAAU9uB,GAIjB,MAFAA,GAAUA,GAAW,EAEdhxC,KAAK4+D,aAAa5tB,GAAS6lB,MAWtCkJ,gBAAiB,SAAU/uB,GAIvB,MAFAA,GAAUA,GAAW,EAEdhxC,KAAK4+D,aAAa5tB,GAAS8lB,UAUtCkJ,cAAe,SAAUhvB,GAIrB,MAFAA,GAAUA,GAAW,EAEdhxC,KAAK4+D,aAAa5tB,GAASgmB,QAWtCiJ,YAAa,SAAUv3D,GAEnB,GAAI1I,KAAK0tD,QACT,CACI,GAAcjkD,SAAVf,EAYA,MAAO1I,MAAK4+D,aAAal2D,GAAOm2D,MAVhC,KAAK,GAAIp7D,GAAI,EAAO,GAAJA,EAAQA,IAEpB,GAAIzD,KAAK4+D,aAAan7D,GAAGo7D,OAErB,OAAO,EAUvB,OAAO,GAUXqB,WAAY,SAAUx3D,GAElB,GAAI1I,KAAK0tD,QACT,CACI,GAAcjkD,SAAVf,EAYA,MAAO1I,MAAK4+D,aAAal2D,GAAOo2D,KAVhC,KAAK,GAAIr7D,GAAI,EAAO,GAAJA,EAAQA,IAEpB,GAAIzD,KAAK4+D,aAAan7D,GAAGq7D,MAErB,OAAO,EAUvB,OAAO,GAUXqB,gBAAiB,SAAUnvB,GAIvB,MAFAA,GAAUA,GAAW,EAEdhxC,KAAK4+D,aAAa5tB,GAAS+tB,UAUtCqB,eAAgB,SAAUpvB,GAItB,MAFAA,GAAUA,GAAW,EAEdhxC,KAAK4+D,aAAa5tB,GAASguB,SAUtCqB,eAAgB,SAAUrvB,GAItB,MAFAA,GAAUA,GAAW,EAEdhxC,KAAK4+D,aAAa5tB,GAASopB,WAatCQ,iBAAkB,SAAU5pB,EAASsvB,GAEjC,MAAKtvB,GAAQ4lB,QAAW52D,KAAK0tD,SAAY1tD,KAAK2pB,QAAW3pB,KAAK2pB,OAAOvnB,QAAWpC,KAAK2pB,OAAO1nB,SAAYjC,KAAK2pB,OAAOvnB,OAAOH,SAMvHjC,KAAK4E,KAAKkkC,MAAMkpB,QAAQhyD,KAAK2pB,OAAQqnB,EAAShxC,KAAK2+D,aAElCl1D,SAAb62D,IAA0BA,GAAW,IAEpCA,GAAYtgE,KAAK69D,kBAEX79D,KAAKugE,WAAWvgE,KAAK2+D,WAAWj5D,EAAG1F,KAAK2+D,WAAWh5D,IAInD,IAdJ,GA+Bfk1D,iBAAkB,SAAU7pB,EAASsvB,GAEjC,MAAKtgE,MAAK0tD,SAAY1tD,KAAK2pB,QAAW3pB,KAAK2pB,OAAOvnB,QAAWpC,KAAK2pB,OAAO1nB,SAAYjC,KAAK2pB,OAAOvnB,OAAOH,SAMpGjC,KAAK4E,KAAKkkC,MAAMkpB,QAAQhyD,KAAK2pB,OAAQqnB,EAAShxC,KAAK2+D,aAElCl1D,SAAb62D,IAA0BA,GAAW,IAEpCA,GAAYtgE,KAAK49D,iBAEX59D,KAAKugE,WAAWvgE,KAAK2+D,WAAWj5D,EAAG1F,KAAK2+D,WAAWh5D,IAInD,IAdJ,GA+Bf46D,WAAY,SAAU76D,EAAGC,EAAGqrC,GAGxB,GAAIhxC,KAAK2pB,OAAO7hB,QAAQkE,YAAYwC,OACpC,CACI,GAAU,OAAN9I,GAAoB,OAANC,EAClB,CAEI3F,KAAK4E,KAAKkkC,MAAMipB,iBAAiB/xD,KAAK2pB,OAAQqnB,EAAShxC,KAAK2+D,WAE5D,IAAIj5D,GAAI1F,KAAK2+D,WAAWj5D,EACpBC,EAAI3F,KAAK2+D,WAAWh5D,EAgB5B,GAb6B,IAAzB3F,KAAK2pB,OAAOzhB,OAAOxC,IAEnBA,IAAM1F,KAAK2pB,OAAO7hB,QAAQqE,MAAMtF,MAAQ7G,KAAK2pB,OAAOzhB,OAAOxC,GAGlC,IAAzB1F,KAAK2pB,OAAOzhB,OAAOvC,IAEnBA,IAAM3F,KAAK2pB,OAAO7hB,QAAQqE,MAAMrF,OAAS9G,KAAK2pB,OAAOzhB,OAAOvC,GAGhED,GAAK1F,KAAK2pB,OAAO7hB,QAAQqE,MAAMzG,EAC/BC,GAAK3F,KAAK2pB,OAAO7hB,QAAQqE,MAAMxG,EAE3B3F,KAAK2pB,OAAO7hB,QAAQ8F,OAEpBlI,GAAK1F,KAAK2pB,OAAO7hB,QAAQ8F,KAAKlI,EAC9BC,GAAK3F,KAAK2pB,OAAO7hB,QAAQ8F,KAAKjI,EAG1BD,EAAI1F,KAAK2pB,OAAO7hB,QAAQoF,KAAKxH,GAAKA,EAAI1F,KAAK2pB,OAAO7hB,QAAQoF,KAAK0tB,OAASj1B,EAAI3F,KAAK2pB,OAAO7hB,QAAQoF,KAAKvH,GAAKA,EAAI3F,KAAK2pB,OAAO7hB,QAAQoF,KAAKmwB,QAIvI,MAFAr9B,MAAKwgE,IAAM96D,EACX1F,KAAKygE,IAAM96D,GACJ,CAIf3F,MAAKwgE,IAAM96D,EACX1F,KAAKygE,IAAM96D,EAEX3F,KAAK4E,KAAKkkC,MAAMykB,WAAWp/B,UAAU,EAAG,EAAG,EAAG,GAC9CnuB,KAAK4E,KAAKkkC,MAAMykB,WAAWl/C,UAAUrO,KAAK2pB,OAAO7hB,QAAQkE,YAAYwC,OAAQ9I,EAAGC,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAElG,IAAI2K,GAAMtQ,KAAK4E,KAAKkkC,MAAMykB,WAAWr8C,aAAa,EAAG,EAAG,EAAG,EAE3D,IAAIZ,EAAIa,KAAK,IAAMnR,KAAK89D,kBAEpB,OAAO,EAIf,OAAO,GAWXx3B,OAAQ,SAAU0K,GAEd,MAAoB,QAAhBhxC,KAAK2pB,QAA0ClgB,SAAvBzJ,KAAK2pB,OAAOvnB,OAMnCpC,KAAK0tD,SAAY1tD,KAAK2pB,OAAO1nB,SAAYjC,KAAK2pB,OAAOvnB,OAAOH,QAM7DjC,KAAK+9D,WAAa/9D,KAAK0gE,oBAAsB1vB,EAAQp5B,GAE9C5X,KAAK2gE,WAAW3vB,GAElBhxC,KAAK4+D,aAAa5tB,EAAQp5B,IAAIinD,OAE/B7+D,KAAK66D,iBAAiB7pB,IAEtBhxC,KAAK4+D,aAAa5tB,EAAQp5B,IAAIlS,EAAIsrC,EAAQtrC,EAAI1F,KAAK2pB,OAAOjkB,EAC1D1F,KAAK4+D,aAAa5tB,EAAQp5B,IAAIjS,EAAIqrC,EAAQrrC,EAAI3F,KAAK2pB,OAAOhkB,GACnD,IAIP3F,KAAK+6D,mBAAmB/pB,IACjB,GAXV,QARDhxC,KAAK+6D,mBAAmB/pB,IACjB,GATX,QAuCJgqB,oBAAqB,SAAUhqB,GAEP,OAAhBhxC,KAAK2pB,SAML3pB,KAAK4+D,aAAa5tB,EAAQp5B,IAAIinD,UAAW,GAAS7tB,EAAQp7B,SAE1D5V,KAAK4+D,aAAa5tB,EAAQp5B,IAAIinD,QAAS,EACvC7+D,KAAK4+D,aAAa5tB,EAAQp5B,IAAIknD,OAAQ,EACtC9+D,KAAK4+D,aAAa5tB,EAAQp5B,IAAImnD,SAAW/+D,KAAK4E,KAAKskC,KAAKA,KACxDlpC,KAAK4+D,aAAa5tB,EAAQp5B,IAAIlS,EAAIsrC,EAAQtrC,EAAI1F,KAAK2pB,OAAOjkB,EAC1D1F,KAAK4+D,aAAa5tB,EAAQp5B,IAAIjS,EAAIqrC,EAAQrrC,EAAI3F,KAAK2pB,OAAOhkB,EAEtD3F,KAAKi9D,eAAiBj9D,KAAK4+D,aAAa5tB,EAAQp5B,IAAIwiD,aAAc,IAElEp6D,KAAK4E,KAAKmM,OAAO0T,MAAM0wB,OAAS,UAChCn1C,KAAKk9D,gBAAiB,GAGtBl9D,KAAK2pB,QAAU3pB,KAAK2pB,OAAOysB,QAE3Bp2C,KAAK2pB,OAAOysB,OAAOwqB,qBAAqB5gE,KAAK2pB,OAAQqnB,KAajE+pB,mBAAoB,SAAU/pB,GAEN,OAAhBhxC,KAAK2pB,SAMT3pB,KAAK4+D,aAAa5tB,EAAQp5B,IAAIinD,QAAS,EACvC7+D,KAAK4+D,aAAa5tB,EAAQp5B,IAAIknD,OAAQ,EACtC9+D,KAAK4+D,aAAa5tB,EAAQp5B,IAAIonD,QAAUh/D,KAAK4E,KAAKskC,KAAKA,KAEnDlpC,KAAKi9D,eAAiBj9D,KAAK4+D,aAAa5tB,EAAQp5B,IAAIwiD,aAAc,IAElEp6D,KAAK4E,KAAKmM,OAAO0T,MAAM0wB,OAAS,UAChCn1C,KAAKk9D,gBAAiB,GAGtBl9D,KAAK2pB,QAAU3pB,KAAK2pB,OAAOysB,QAE3Bp2C,KAAK2pB,OAAOysB,OAAOyqB,oBAAoB7gE,KAAK2pB,OAAQqnB,KAY5D2oB,gBAAiB,SAAU3oB,GAEvB,GAAoB,OAAhBhxC,KAAK2pB,OAAT,CAMA,IAAK3pB,KAAK4+D,aAAa5tB,EAAQp5B,IAAIg/C,QAAU52D,KAAK4+D,aAAa5tB,EAAQp5B,IAAIinD,OAC3E,CACI,GAAI7+D,KAAK69D,oBAAsB79D,KAAKugE,WAAW,KAAM,KAAMvvB,GAEvD,MAGJhxC,MAAK4+D,aAAa5tB,EAAQp5B,IAAIg/C,QAAS,EACvC52D,KAAK4+D,aAAa5tB,EAAQp5B,IAAIi/C,MAAO,EACrC72D,KAAK4+D,aAAa5tB,EAAQp5B,IAAIk/C,SAAW92D,KAAK4E,KAAKskC,KAAKA,KAEpDlpC,KAAK2pB,QAAU3pB,KAAK2pB,OAAOysB,QAE3Bp2C,KAAK2pB,OAAOysB,OAAO0qB,qBAAqB9gE,KAAK2pB,OAAQqnB,GAIzDA,EAAQp7B,OAAQ,EAGZ5V,KAAK+9D,WAAa/9D,KAAKo6D,aAAc,GAErCp6D,KAAK+gE,UAAU/vB,GAGfhxC,KAAKm3C,YAELn3C,KAAK2pB,OAAOwtB,aAKpB,MAAOn3C,MAAKk+D,sBAUhB5C,iBAAkB,SAAUtqB,GAEJ,OAAhBhxC,KAAK2pB,QAOL3pB,KAAK4+D,aAAa5tB,EAAQp5B,IAAIg/C,QAAU5lB,EAAQ6lB,OAEhD72D,KAAK4+D,aAAa5tB,EAAQp5B,IAAIg/C,QAAS,EACvC52D,KAAK4+D,aAAa5tB,EAAQp5B,IAAIi/C,MAAO,EACrC72D,KAAK4+D,aAAa5tB,EAAQp5B,IAAIo/C,OAASh3D,KAAK4E,KAAKskC,KAAKA,KACtDlpC,KAAK4+D,aAAa5tB,EAAQp5B,IAAIqnD,aAAej/D,KAAK4+D,aAAa5tB,EAAQp5B,IAAIo/C,OAASh3D,KAAK4+D,aAAa5tB,EAAQp5B,IAAIk/C,SAG9G92D,KAAK66D,iBAAiB7pB,GAGlBhxC,KAAK2pB,QAAU3pB,KAAK2pB,OAAOysB,QAE3Bp2C,KAAK2pB,OAAOysB,OAAO4qB,mBAAmBhhE,KAAK2pB,OAAQqnB,GAAS,IAM5DhxC,KAAK2pB,QAAU3pB,KAAK2pB,OAAOysB,QAE3Bp2C,KAAK2pB,OAAOysB,OAAO4qB,mBAAmBhhE,KAAK2pB,OAAQqnB,GAAS,GAI5DhxC,KAAKi9D,gBAELj9D,KAAK4E,KAAKmM,OAAO0T,MAAM0wB,OAAS,UAChCn1C,KAAKk9D,gBAAiB,IAK9BlsB,EAAQp7B,OAAQ,EAGZ5V,KAAK+9D,WAAa/9D,KAAKo6D,WAAap6D,KAAK0gE,oBAAsB1vB,EAAQp5B,IAEvE5X,KAAKihE,SAASjwB,KAY1B2vB,WAAY,SAAU3vB,GAElB,GAAIA,EAAQ6lB,KAGR,MADA72D,MAAKihE,SAASjwB,IACP,CAGX,IAAIt+B,GAAK1S,KAAKkhE,eAAelwB,EAAQtrC,GAAK1F,KAAKw+D,WAAW94D,EAAI1F,KAAKo+D,WAAW14D,EAC1EiN,EAAK3S,KAAKmhE,eAAenwB,EAAQrrC,GAAK3F,KAAKw+D,WAAW74D,EAAI3F,KAAKo+D,WAAWz4D,CA+D9E,OA7DI3F,MAAK2pB,OAAO6rB,eAERx1C,KAAKm9D,sBAELn9D,KAAK2pB,OAAO8rB,aAAa/vC,EAAIgN,GAG7B1S,KAAKo9D,oBAELp9D,KAAK2pB,OAAO8rB,aAAa9vC,EAAIgN,GAG7B3S,KAAKg+D,YAELh+D,KAAKohE,kBAGLphE,KAAKi+D,cAELj+D,KAAKqhE,oBAGLrhE,KAAKs9D,aAELt9D,KAAK2pB,OAAO8rB,aAAa/vC,EAAI/E,KAAKi8B,OAAO58B,KAAK2pB,OAAO8rB,aAAa/vC,EAAK1F,KAAK09D,YAAc19D,KAAKw9D,OAAUx9D,KAAKw9D,OAASx9D,KAAKw9D,MAASx9D,KAAK09D,YAAc19D,KAAKw9D,MAC7Jx9D,KAAK2pB,OAAO8rB,aAAa9vC,EAAIhF,KAAKi8B,OAAO58B,KAAK2pB,OAAO8rB,aAAa9vC,EAAK3F,KAAK29D,YAAc39D,KAAKy9D,OAAUz9D,KAAKy9D,OAASz9D,KAAKy9D,MAASz9D,KAAK29D,YAAc39D,KAAKy9D,MAC7Jz9D,KAAKu+D,UAAUv6D,IAAIhE,KAAK2pB,OAAO8rB,aAAa/vC,EAAG1F,KAAK2pB,OAAO8rB,aAAa9vC,MAKxE3F,KAAKm9D,sBAELn9D,KAAK2pB,OAAOjkB,EAAIgN,GAGhB1S,KAAKo9D,oBAELp9D,KAAK2pB,OAAOhkB,EAAIgN,GAGhB3S,KAAKg+D,YAELh+D,KAAKohE,kBAGLphE,KAAKi+D,cAELj+D,KAAKqhE,oBAGLrhE,KAAKs9D,aAELt9D,KAAK2pB,OAAOjkB,EAAI/E,KAAKi8B,OAAO58B,KAAK2pB,OAAOjkB,EAAK1F,KAAK09D,YAAc19D,KAAKw9D,OAAUx9D,KAAKw9D,OAASx9D,KAAKw9D,MAASx9D,KAAK09D,YAAc19D,KAAKw9D,MACnIx9D,KAAK2pB,OAAOhkB,EAAIhF,KAAKi8B,OAAO58B,KAAK2pB,OAAOhkB,EAAK3F,KAAK29D,YAAc39D,KAAKy9D,OAAUz9D,KAAKy9D,OAASz9D,KAAKy9D,MAASz9D,KAAK29D,YAAc39D,KAAKy9D,MACnIz9D,KAAKu+D,UAAUv6D,IAAIhE,KAAK2pB,OAAOjkB,EAAG1F,KAAK2pB,OAAOhkB,KAItD3F,KAAK2pB,OAAOysB,OAAOkrB,aAAa70B,SAASzsC,KAAK2pB,OAAQqnB,EAASt+B,EAAIC,EAAI3S,KAAKu+D,YAErE,GAWXgD,SAAU,SAAUvwB,EAASwwB,GAKzB,MAHAxwB,GAAUA,GAAW,EACrBwwB,EAAQA,GAAS,IAETxhE,KAAK4+D,aAAa5tB,GAAS6tB,QAAU7+D,KAAKyhE,aAAazwB,GAAWwwB,GAW9EE,QAAS,SAAU1wB,EAASwwB,GAKxB,MAHAxwB,GAAUA,GAAW,EACrBwwB,EAAQA,GAAS,IAETxhE,KAAK4+D,aAAa5tB,GAAS8tB,OAAU9+D,KAAK4E,KAAKskC,KAAKA,KAAOlpC,KAAK4+D,aAAa5tB,GAASguB,QAAUwC,GAW5GjK,YAAa,SAAUvmB,EAASwwB,GAK5B,MAHAxwB,GAAUA,GAAW,EACrBwwB,EAAQA,GAAS,IAETxhE,KAAK4+D,aAAa5tB,GAAS4lB,QAAU52D,KAAKi/D,aAAajuB,GAAWwwB,GAW9EhK,aAAc,SAAUxmB,EAASwwB,GAK7B,MAHAxwB,GAAUA,GAAW,EACrBwwB,EAAQA,GAAS,IAETxhE,KAAK4+D,aAAa5tB,GAAS6lB,MAAS72D,KAAK4E,KAAKskC,KAAKA,KAAOlpC,KAAK4+D,aAAa5tB,GAASgmB,OAASwK,GAU1GC,aAAc,SAAUzwB,GAIpB,MAFAA,GAAUA,GAAW,EAEjBhxC,KAAK4+D,aAAa5tB,GAAS6tB,OAEpB7+D,KAAK4E,KAAKskC,KAAKA,KAAOlpC,KAAK4+D,aAAa5tB,GAAS+tB,SAGrD,IAUXE,aAAc,SAAUjuB,GAIpB,MAFAA,GAAUA,GAAW,EAEjBhxC,KAAK4+D,aAAa5tB,GAAS4lB,OAEpB52D,KAAK4E,KAAKskC,KAAKA,KAAOlpC,KAAK4+D,aAAa5tB,GAAS8lB,SAGrD,IAsBX6K,WAAY,SAAUC,EAAYzqB,EAAY0qB,EAAcC,EAAgB9D,EAAYC,GAEjEx0D,SAAfm4D,IAA4BA,GAAa,GAC1Bn4D,SAAf0tC,IAA4BA,GAAa,GACxB1tC,SAAjBo4D,IAA8BA,GAAe,GAC1Bp4D,SAAnBq4D,IAAgCA,EAAiB,KAClCr4D,SAAfu0D,IAA4BA,EAAa,MACxBv0D,SAAjBw0D,IAA8BA,EAAe,MAEjDj+D,KAAKw+D,WAAa,GAAI1qC,GAAOpyB,MAC7B1B,KAAK+9D,WAAY,EACjB/9D,KAAKm3C,WAAaA,EAClBn3C,KAAKo+D,WAAa,GAAItqC,GAAOpyB,MAC7B1B,KAAKq+D,eAAiBuD,EAEtB5hE,KAAK69D,kBAAoBgE,EACzB7hE,KAAK89D,kBAAoBgE,EAErB9D,IAEAh+D,KAAKg+D,WAAaA,GAGlBC,IAEAj+D,KAAKi+D,aAAeA,IAS5B8D,YAAa,WAET,GAAI/hE,KAAK4+D,aAEL,IAAK,GAAIn7D,GAAI,EAAO,GAAJA,EAAQA,IAEpBzD,KAAK4+D,aAAan7D,GAAG22D,WAAY,CAIzCp6D,MAAK+9D,WAAY,EACjB/9D,KAAKo6D,WAAY,EACjBp6D,KAAK0gE,kBAAoB,IAS7BK,UAAW,SAAU/vB,GAEjB,GAAItrC,GAAI1F,KAAK2pB,OAAOjkB,EAChBC,EAAI3F,KAAK2pB,OAAOhkB,CAMpB,IAJA3F,KAAKo6D,WAAY,EACjBp6D,KAAK0gE,kBAAoB1vB,EAAQp5B,GACjC5X,KAAK4+D,aAAa5tB,EAAQp5B,IAAIwiD,WAAY,EAEtCp6D,KAAK2pB,OAAO6rB,cAERx1C,KAAKq+D,gBAELr+D,KAAK2pB,OAAOia,SAASoN,EAAQtrC,EAAGsrC,EAAQrrC,GACxC3F,KAAKw+D,WAAWjiC,MAAMv8B,KAAK2pB,OAAO8rB,aAAa/vC,EAAIsrC,EAAQtrC,EAAG1F,KAAK2pB,OAAO8rB,aAAa9vC,EAAIqrC,EAAQrrC,IAInG3F,KAAKw+D,WAAWjiC,MAAMv8B,KAAK2pB,OAAO8rB,aAAa/vC,EAAIsrC,EAAQtrC,EAAG1F,KAAK2pB,OAAO8rB,aAAa9vC,EAAIqrC,EAAQrrC,OAI3G,CACI,GAAI3F,KAAKq+D,eACT,CACI,GAAI33D,GAAS1G,KAAK2pB,OAAO3jB,WAEzBhG,MAAK2pB,OAAOjkB,EAAI1F,KAAKkhE,eAAelwB,EAAQtrC,IAAM1F,KAAK2pB,OAAOjkB,EAAIgB,EAAOm9B,SACzE7jC,KAAK2pB,OAAOhkB,EAAI3F,KAAKmhE,eAAenwB,EAAQrrC,IAAM3F,KAAK2pB,OAAOhkB,EAAIe,EAAOo9B,SAG7E9jC,KAAKw+D,WAAWjiC,MAAMv8B,KAAK2pB,OAAOjkB,EAAI1F,KAAKkhE,eAAelwB,EAAQtrC,GAAI1F,KAAK2pB,OAAOhkB,EAAI3F,KAAKmhE,eAAenwB,EAAQrrC,IAGtH3F,KAAK2gE,WAAW3vB,GAEZhxC,KAAKm3C,aAELn3C,KAAKy+D,YAAa,EAClBz+D,KAAK2pB,OAAOwtB,cAGhBn3C,KAAKs+D,eAAet6D,IAAI0B,EAAGC,GAC3B3F,KAAK2pB,OAAOysB,OAAO4rB,qBAAqBhiE,KAAK2pB,OAAQqnB,EAAStrC,EAAGC,IASrEu7D,eAAgB,SAAUx7D,GAQtB,MANI1F,MAAKm+D,aAELz4D,GAAK1F,KAAK4E,KAAKjD,MAAM6mC,KAAKqT,YAAYn2C,EACtCA,GAAK1F,KAAK4E,KAAKjD,MAAM6mC,KAAK8T,mBAAmB52C,GAG1CA,GASXy7D,eAAgB,SAAUx7D,GAQtB,MANI3F,MAAKm+D,aAELx4D,GAAK3F,KAAK4E,KAAKjD,MAAM6mC,KAAKqT,YAAYl2C,EACtCA,GAAK3F,KAAK4E,KAAKjD,MAAM6mC,KAAK8T,mBAAmB32C,GAG1CA,GASXs7D,SAAU,SAAUjwB,GAEhBhxC,KAAKo6D,WAAY,EACjBp6D,KAAK0gE,kBAAoB,GACzB1gE,KAAK4+D,aAAa5tB,EAAQp5B,IAAIwiD,WAAY,EAC1Cp6D,KAAKy+D,YAAa,EAEdz+D,KAAKu9D,gBAEDv9D,KAAK2pB,OAAO6rB,eAEZx1C,KAAK2pB,OAAO8rB,aAAa/vC,EAAI/E,KAAKi8B,OAAO58B,KAAK2pB,OAAO8rB,aAAa/vC,EAAK1F,KAAK09D,YAAc19D,KAAKw9D,OAAUx9D,KAAKw9D,OAASx9D,KAAKw9D,MAASx9D,KAAK09D,YAAc19D,KAAKw9D,MAC7Jx9D,KAAK2pB,OAAO8rB,aAAa9vC,EAAIhF,KAAKi8B,OAAO58B,KAAK2pB,OAAO8rB,aAAa9vC,EAAK3F,KAAK29D,YAAc39D,KAAKy9D,OAAUz9D,KAAKy9D,OAASz9D,KAAKy9D,MAASz9D,KAAK29D,YAAc39D,KAAKy9D,QAI7Jz9D,KAAK2pB,OAAOjkB,EAAI/E,KAAKi8B,OAAO58B,KAAK2pB,OAAOjkB,EAAK1F,KAAK09D,YAAc19D,KAAKw9D,OAAUx9D,KAAKw9D,OAASx9D,KAAKw9D,MAASx9D,KAAK09D,YAAc19D,KAAKw9D,MACnIx9D,KAAK2pB,OAAOhkB,EAAIhF,KAAKi8B,OAAO58B,KAAK2pB,OAAOhkB,EAAK3F,KAAK29D,YAAc39D,KAAKy9D,OAAUz9D,KAAKy9D,OAASz9D,KAAKy9D,MAASz9D,KAAK29D,YAAc39D,KAAKy9D,QAI3Iz9D,KAAK2pB,OAAOysB,OAAO6rB,oBAAoBjiE,KAAK2pB,OAAQqnB,GAEhDhxC,KAAK66D,iBAAiB7pB,MAAa,GAEnChxC,KAAK+6D,mBAAmB/pB,IAWhCkxB,YAAa,SAAUC,EAAiBC,GAEZ34D,SAApB04D,IAAiCA,GAAkB,GACjC14D,SAAlB24D,IAA+BA,GAAgB,GAEnDpiE,KAAKm9D,oBAAsBgF,EAC3BniE,KAAKo9D,kBAAoBgF,GAe7BC,WAAY,SAAU7E,EAAOC,EAAO6E,EAAQC,EAAW7E,EAAaC,GAEjDl0D,SAAX64D,IAAwBA,GAAS,GACnB74D,SAAd84D,IAA2BA,GAAY,GACvB94D,SAAhBi0D,IAA6BA,EAAc,GAC3Bj0D,SAAhBk0D,IAA6BA,EAAc,GAE/C39D,KAAKw9D,MAAQA,EACbx9D,KAAKy9D,MAAQA,EACbz9D,KAAK09D,YAAcA,EACnB19D,KAAK29D,YAAcA,EACnB39D,KAAKs9D,WAAagF,EAClBtiE,KAAKu9D,cAAgBgF,GAQzBC,YAAa,WAETxiE,KAAKs9D,YAAa,EAClBt9D,KAAKu9D,eAAgB,GASzB6D,gBAAiB,WAETphE,KAAK2pB,OAAO6rB,eAERx1C,KAAK2pB,OAAO8rB,aAAa/vC,EAAI1F,KAAKg+D,WAAWnjC,KAE7C76B,KAAK2pB,OAAO8rB,aAAa/vC,EAAI1F,KAAKg+D,WAAWnjC,KAEvC76B,KAAK2pB,OAAO8rB,aAAa/vC,EAAI1F,KAAK2pB,OAAO9iB,MAAS7G,KAAKg+D,WAAWpjC,QAExE56B,KAAK2pB,OAAO8rB,aAAa/vC,EAAI1F,KAAKg+D,WAAWpjC,MAAQ56B,KAAK2pB,OAAO9iB,OAGjE7G,KAAK2pB,OAAO8rB,aAAa9vC,EAAI3F,KAAKg+D,WAAW5gC,IAE7Cp9B,KAAK2pB,OAAO8rB,aAAa9vC,EAAI3F,KAAKg+D,WAAW5gC,IAEvCp9B,KAAK2pB,OAAO8rB,aAAa9vC,EAAI3F,KAAK2pB,OAAO7iB,OAAU9G,KAAKg+D,WAAW3gC,SAEzEr9B,KAAK2pB,OAAO8rB,aAAa9vC,EAAI3F,KAAKg+D,WAAW3gC,OAASr9B,KAAK2pB,OAAO7iB,UAKlE9G,KAAK2pB,OAAOkR,KAAO76B,KAAKg+D,WAAWnjC,KAEnC76B,KAAK2pB,OAAOjkB,EAAI1F,KAAKg+D,WAAWt4D,EAAI1F,KAAK2pB,OAAOa,QAE3CxqB,KAAK2pB,OAAOiR,MAAQ56B,KAAKg+D,WAAWpjC,QAEzC56B,KAAK2pB,OAAOjkB,EAAI1F,KAAKg+D,WAAWpjC,OAAS56B,KAAK2pB,OAAO9iB,MAAQ7G,KAAK2pB,OAAOa,UAGzExqB,KAAK2pB,OAAOyT,IAAMp9B,KAAKg+D,WAAW5gC,IAElCp9B,KAAK2pB,OAAOhkB,EAAI3F,KAAKg+D,WAAW5gC,IAAMp9B,KAAK2pB,OAAOc,QAE7CzqB,KAAK2pB,OAAO0T,OAASr9B,KAAKg+D,WAAW3gC,SAE1Cr9B,KAAK2pB,OAAOhkB,EAAI3F,KAAKg+D,WAAW3gC,QAAUr9B,KAAK2pB,OAAO7iB,OAAS9G,KAAK2pB,OAAOc,YAUvF42C,kBAAmB,WAEXrhE,KAAK2pB,OAAO6rB,eAAiBx1C,KAAKi+D,aAAazoB,eAE3Cx1C,KAAK2pB,OAAO8rB,aAAa/vC,EAAI1F,KAAKi+D,aAAaxoB,aAAa/vC,EAE5D1F,KAAK2pB,OAAO8rB,aAAa/vC,EAAI1F,KAAKi+D,aAAaxoB,aAAa/vC,EAEtD1F,KAAK2pB,OAAO8rB,aAAa/vC,EAAI1F,KAAK2pB,OAAO9iB,MAAU7G,KAAKi+D,aAAaxoB,aAAa/vC,EAAI1F,KAAKi+D,aAAap3D,QAE9G7G,KAAK2pB,OAAO8rB,aAAa/vC,EAAK1F,KAAKi+D,aAAaxoB,aAAa/vC,EAAI1F,KAAKi+D,aAAap3D,MAAS7G,KAAK2pB,OAAO9iB,OAGxG7G,KAAK2pB,OAAO8rB,aAAa9vC,EAAI3F,KAAKi+D,aAAaxoB,aAAa9vC,EAE5D3F,KAAK2pB,OAAO8rB,aAAa9vC,EAAI3F,KAAKi+D,aAAaxoB,aAAa9vC,EAEtD3F,KAAK2pB,OAAO8rB,aAAa9vC,EAAI3F,KAAK2pB,OAAO7iB,OAAW9G,KAAKi+D,aAAaxoB,aAAa9vC,EAAI3F,KAAKi+D,aAAan3D,SAE/G9G,KAAK2pB,OAAO8rB,aAAa9vC,EAAK3F,KAAKi+D,aAAaxoB,aAAa9vC,EAAI3F,KAAKi+D,aAAan3D,OAAU9G,KAAK2pB,OAAO7iB,UAKzG9G,KAAK2pB,OAAOkR,KAAO76B,KAAKi+D,aAAapjC,KAErC76B,KAAK2pB,OAAOjkB,EAAI1F,KAAKi+D,aAAapjC,KAAO76B,KAAK2pB,OAAOa,QAEhDxqB,KAAK2pB,OAAOiR,MAAQ56B,KAAKi+D,aAAarjC,QAE3C56B,KAAK2pB,OAAOjkB,EAAI1F,KAAKi+D,aAAarjC,OAAS56B,KAAK2pB,OAAO9iB,MAAQ7G,KAAK2pB,OAAOa,UAG3ExqB,KAAK2pB,OAAOyT,IAAMp9B,KAAKi+D,aAAa7gC,IAEpCp9B,KAAK2pB,OAAOhkB,EAAI3F,KAAKi+D,aAAa7gC,IAAMp9B,KAAK2pB,OAAOc,QAE/CzqB,KAAK2pB,OAAO0T,OAASr9B,KAAKi+D,aAAa5gC,SAE5Cr9B,KAAK2pB,OAAOhkB,EAAI3F,KAAKi+D,aAAa5gC,QAAUr9B,KAAK2pB,OAAO7iB,OAAS9G,KAAK2pB,OAAOc,aA0B7FqJ,EAAOkpC,aAAa35D,UAAUC,YAAcwwB,EAAOkpC,aAsBnDlpC,EAAO88B,QAAU,SAAUhsD,GAKvB5E,KAAK4E,KAAOA,EAMZ5E,KAAKyiE,oBAMLziE,KAAK0iE,YAOL1iE,KAAK2iE,SAAU,EAOf3iE,KAAK0tD,SAAU,EAOf1tD,KAAK4iE,2BAA6BjzC,UAAUkzC,qBAAuBlzC,UAAUmzC,gBAA8D,IAA3CnzC,UAAUozC,UAAU55D,QAAQ,eAAwBwmB,UAAUqzC,YAQ9JhjE,KAAKijE,wBAQLjjE,KAAKkjE,mBAKLljE,KAAKgsC,gBAAkBhsC,KAKvBA,KAAKmjE,kBAAoB,KAKzBnjE,KAAKojE,qBAAuB,KAK5BpjE,KAAKqjE,eAAiB,KAKtBrjE,KAAKsjE,aAAe,KAKpBtjE,KAAKujE,eAAiB,KAKtBvjE,KAAKwjE,gBAAkB,KAMvBxjE,KAAKyjE,oBAAsB,KAM3BzjE,KAAK0jE,qBAAuB,KAM5B1jE,KAAK2jE,WACD,GAAI7vC,GAAO8vC,UAAUh/D,EAAM5E,MAC3B,GAAI8zB,GAAO8vC,UAAUh/D,EAAM5E,MAC3B,GAAI8zB,GAAO8vC,UAAUh/D,EAAM5E,MAC3B,GAAI8zB,GAAO8vC,UAAUh/D,EAAM5E,QAKnC8zB,EAAO88B,QAAQvtD,WAUXwgE,aAAc,SAAUz2D,EAAS02D,GAEJ,mBAAdA,KAEP9jE,KAAKmjE,kBAAoD,kBAAxBW,GAAUC,UAA4BD,EAAUC,UAAY/jE,KAAKmjE,kBAClGnjE,KAAKojE,qBAA0D,kBAA3BU,GAAUE,aAA+BF,EAAUE,aAAehkE,KAAKojE,qBAC3GpjE,KAAKqjE,eAA8C,kBAArBS,GAAUtU,OAAyBsU,EAAUtU,OAASxvD,KAAKqjE,eACzFrjE,KAAKsjE,aAA0C,kBAAnBQ,GAAUrU,KAAuBqU,EAAUrU,KAAOzvD,KAAKsjE,aACnFtjE,KAAKujE,eAA8C,kBAArBO,GAAUG,OAAyBH,EAAUG,OAASjkE,KAAKujE,eACzFvjE,KAAKwjE,gBAAgD,kBAAtBM,GAAUzM,QAA0ByM,EAAUzM,QAAUr3D,KAAKwjE,gBAC5FxjE,KAAKgsC,gBAAkB5+B,IAW/BhC,MAAO,WAEH,IAAIpL,KAAK2iE,QAAT,CAMA3iE,KAAK2iE,SAAU,CAEf,IAAIvzB,GAAQpvC,IAEZA,MAAKkkE,oBAAsB,SAAUhxB,GACjC,MAAO9D,GAAM+0B,mBAAmBjxB,IAGpClzC,KAAKokE,uBAAyB,SAAUlxB,GACpC,MAAO9D,GAAMi1B,sBAAsBnxB,IAGvCz+B,OAAO2+B,iBAAiB,mBAAoBpzC,KAAKkkE,qBAAqB,GACtEzvD,OAAO2+B,iBAAiB,sBAAuBpzC,KAAKokE,wBAAwB,KAWhFD,mBAAoB,SAAUjxB,GAE1B,GAAIoxB,GAASpxB,EAAMoc,OACnBtvD,MAAK0iE,SAASn+D,KAAK+/D,GACnBtkE,KAAK2jE,UAAUW,EAAO57D,OAAO67D,QAAQD,IAWzCD,sBAAuB,SAAUnxB,GAE7B,GAAIsxB,GAAatxB,EAAMoc,OAEvB,KAAK,GAAI7rD,KAAKzD,MAAK0iE,SAEX1iE,KAAK0iE,SAASj/D,GAAGiF,QAAU87D,EAAW97D,OAEtC1I,KAAK0iE,SAAS95D,OAAOnF,EAAE,EAI/BzD,MAAK2jE,UAAUa,EAAW97D,OAAO+7D,cASrCn+B,OAAQ,WAEJtmC,KAAK0kE,gBAEL1kE,KAAK2kE,KAAKC,aACV5kE,KAAK6kE,KAAKD,aACV5kE,KAAK8kE,KAAKF,aACV5kE,KAAK+kE,KAAKH,cAUdF,cAAe,WAEX,GAAI/0C,UAAuB,YAEvB,GAAIq1C,GAAcr1C,UAAUqzC,kBAE3B,IAAIrzC,UAA6B,kBAElC,GAAIq1C,GAAcr1C,UAAUkzC,wBAE3B,IAAIlzC,UAA0B,eAE/B,GAAIq1C,GAAcr1C,UAAUmzC,gBAGhC,IAAIkC,EACJ,CACIhlE,KAAK0iE,WAIL,KAAK,GAFDuC,IAAkB,EAEbxhE,EAAI,EAAGA,EAAIuhE,EAAYthE,eAEjBshE,GAAYvhE,KAAOzD,KAAKijE,qBAAqBx/D,KAEpDwhE,GAAkB,EAClBjlE,KAAKijE,qBAAqBx/D,SAAYuhE,GAAYvhE,IAGlDuhE,EAAYvhE,IAEZzD,KAAK0iE,SAASn+D,KAAKygE,EAAYvhE,IAIzB,IAANA,GAdgCA,KAoBxC,GAAIwhE,EACJ,CAII,IAAK,GAFDC,GADAC,GAAqBC,cAAgBC,eAGhC/gE,EAAI,EAAGA,EAAItE,KAAK2jE,UAAUjgE,OAAQY,IAIvC,GAFA4gE,EAAYllE,KAAK2jE,UAAUr/D,GAEvB4gE,EAAUI,UAEV,IAAK,GAAIC,GAAI,EAAGA,EAAIvlE,KAAK0iE,SAASh/D,OAAQ6hE,IAElCvlE,KAAK0iE,SAAS6C,GAAG78D,QAAUw8D,EAAUx8D,QAErCy8D,EAAiBC,WAAWF,EAAUx8D,QAAS,EAC/Cy8D,EAAiBE,WAAW/gE,IAAK,EAMjD,KAAK,GAAIm1B,GAAI,EAAGA,EAAIz5B,KAAK2jE,UAAUjgE,OAAQ+1B,IAIvC,GAFAyrC,EAAYllE,KAAK2jE,UAAUlqC,IAEvB0rC,EAAiBE,WAAW5rC,GAAhC,CAKIz5B,KAAK0iE,SAASh/D,OAAS,GAEvBwhE,EAAUT,YAGd,KAAK,GAAI/iC,GAAI,EAAGA,EAAI1hC,KAAK0iE,SAASh/D,SAE1ByhE,EAAiBE,WAAW5rC,GAFMiI,IAC1C,CAMI,GAAI8jC,GAASxlE,KAAK0iE,SAAShhC,EAE3B,IAAI8jC,EACJ,CACI,GAAIL,EAAiBC,WAAWI,EAAO98D,OACvC,CACIw8D,EAAUT,YACV,UAIAS,EAAUX,QAAQiB,GAClBL,EAAiBC,WAAWI,EAAO98D,QAAS,EAC5Cy8D,EAAiBE,WAAW5rC,IAAK,MAKrCyrC,GAAUT,kBAYlCgB,aAAc,SAAUxhE,GAEpB,IAAK,GAAIR,GAAI,EAAGA,EAAIzD,KAAK2jE,UAAUjgE,OAAQD,IAEvCzD,KAAK2jE,UAAUlgE,GAAGiiE,SAAWzhE,GAUrC+G,KAAM,WAEFhL,KAAK2iE,SAAU,EAEfluD,OAAO8/B,oBAAoB,mBAAoBv0C,KAAKkkE,qBACpDzvD,OAAO8/B,oBAAoB,sBAAuBv0C,KAAKokE,yBAQ3D3nD,MAAO,WAEHzc,KAAKsmC,QAEL,KAAK,GAAI7iC,GAAI,EAAGA,EAAIzD,KAAK2jE,UAAUjgE,OAAQD,IAEvCzD,KAAK2jE,UAAUlgE,GAAGgZ,SAY1B86C,YAAa,SAAUZ,EAAYI,GAE/B,IAAK,GAAItzD,GAAI,EAAGA,EAAIzD,KAAK2jE,UAAUjgE,OAAQD,IAEvC,GAAIzD,KAAK2jE,UAAUlgE,GAAG8zD,YAAYZ,EAAYI,MAAc,EAExD,OAAO,CAIf,QAAO,GAWXS,aAAc,SAAUb,EAAYI,GAEhC,IAAK,GAAItzD,GAAI,EAAGA,EAAIzD,KAAK2jE,UAAUjgE,OAAQD,IAEvC,GAAIzD,KAAK2jE,UAAUlgE,GAAG+zD,aAAab,EAAYI,MAAc,EAEzD,OAAO,CAIf,QAAO,GAUXH,OAAQ,SAAUD,GAEd,IAAK,GAAIlzD,GAAI,EAAGA,EAAIzD,KAAK2jE,UAAUjgE,OAAQD,IAEvC,GAAIzD,KAAK2jE,UAAUlgE,GAAGmzD,OAAOD,MAAgB,EAEzC,OAAO,CAIf,QAAO,GAQXpzD,QAAS,WAELvD,KAAKgL,MAEL,KAAK,GAAIvH,GAAI,EAAGA,EAAIzD,KAAK2jE,UAAUjgE,OAAQD,IAEvCzD,KAAK2jE,UAAUlgE,GAAGF,YAO9BuwB,EAAO88B,QAAQvtD,UAAUC,YAAcwwB,EAAO88B,QAQ9ChtD,OAAOC,eAAeiwB,EAAO88B,QAAQvtD,UAAW,UAE5CS,IAAK,WACD,MAAO9D,MAAK2iE,WAWpB/+D,OAAOC,eAAeiwB,EAAO88B,QAAQvtD,UAAW,aAE5CS,IAAK,WACD,MAAO9D,MAAK4iE,4BAWpBh/D,OAAOC,eAAeiwB,EAAO88B,QAAQvtD,UAAW,iBAE5CS,IAAK,WACD,MAAO9D,MAAK0iE,SAASh/D,UAW7BE,OAAOC,eAAeiwB,EAAO88B,QAAQvtD,UAAW,QAE5CS,IAAK,WACD,MAAO9D,MAAK2jE,UAAU,MAW9B//D,OAAOC,eAAeiwB,EAAO88B,QAAQvtD,UAAW,QAE5CS,IAAK,WACD,MAAO9D,MAAK2jE,UAAU,MAW9B//D,OAAOC,eAAeiwB,EAAO88B,QAAQvtD,UAAW,QAE5CS,IAAK,WACD,MAAO9D,MAAK2jE,UAAU,MAW9B//D,OAAOC,eAAeiwB,EAAO88B,QAAQvtD,UAAW,QAE5CS,IAAK,WACD,MAAO9D,MAAK2jE,UAAU,MAK9B7vC,EAAO88B,QAAQ+U,SAAW,EAC1B7xC,EAAO88B,QAAQgV,SAAW,EAC1B9xC,EAAO88B,QAAQiV,SAAW,EAC1B/xC,EAAO88B,QAAQkV,SAAW,EAC1BhyC,EAAO88B,QAAQmV,SAAW,EAC1BjyC,EAAO88B,QAAQoV,SAAW,EAC1BlyC,EAAO88B,QAAQqV,SAAW,EAC1BnyC,EAAO88B,QAAQsV,SAAW,EAC1BpyC,EAAO88B,QAAQuV,SAAW,EAC1BryC,EAAO88B,QAAQwV,SAAW,EAC1BtyC,EAAO88B,QAAQyV,UAAY,GAC3BvyC,EAAO88B,QAAQ0V,UAAY,GAC3BxyC,EAAO88B,QAAQ2V,UAAY,GAC3BzyC,EAAO88B,QAAQ4V,UAAY,GAC3B1yC,EAAO88B,QAAQ6V,UAAY,GAC3B3yC,EAAO88B,QAAQ8V,UAAY,GAE3B5yC,EAAO88B,QAAQ+V,OAAS,EACxB7yC,EAAO88B,QAAQgW,OAAS,EACxB9yC,EAAO88B,QAAQiW,OAAS,EACxB/yC,EAAO88B,QAAQkW,OAAS,EACxBhzC,EAAO88B,QAAQmW,OAAS,EACxBjzC,EAAO88B,QAAQoW,OAAS,EACxBlzC,EAAO88B,QAAQqW,OAAS,EACxBnzC,EAAO88B,QAAQsW,OAAS,EACxBpzC,EAAO88B,QAAQuW,OAAS,EACxBrzC,EAAO88B,QAAQwW,OAAS,EAMxBtzC,EAAO88B,QAAQyW,UAAY,EAC3BvzC,EAAO88B,QAAQ0W,UAAY,EAC3BxzC,EAAO88B,QAAQ2W,UAAY,EAC3BzzC,EAAO88B,QAAQ4W,UAAY,EAC3B1zC,EAAO88B,QAAQ6W,oBAAsB,EACrC3zC,EAAO88B,QAAQ8W,qBAAuB,EACtC5zC,EAAO88B,QAAQ+W,qBAAuB,EACtC7zC,EAAO88B,QAAQgX,sBAAwB,EACvC9zC,EAAO88B,QAAQiX,aAAe,EAC9B/zC,EAAO88B,QAAQkX,cAAgB,EAC/Bh0C,EAAO88B,QAAQmX,0BAA4B,GAC3Cj0C,EAAO88B,QAAQoX,2BAA6B,GAE5Cl0C,EAAO88B,QAAQqX,kBAAoB,GACnCn0C,EAAO88B,QAAQsX,mBAAqB,GACpCp0C,EAAO88B,QAAQuX,gBAAkB,GACjCr0C,EAAO88B,QAAQwX,kBAAoB,GAGnCt0C,EAAO88B,QAAQyX,qBAAuB,EACtCv0C,EAAO88B,QAAQ0X,qBAAuB,EACtCx0C,EAAO88B,QAAQ2X,sBAAwB,EACvCz0C,EAAO88B,QAAQ4X,sBAAwB,EAIvC10C,EAAO88B,QAAQ6X,QAAU,EACzB30C,EAAO88B,QAAQ8X,aAAe,EAC9B50C,EAAO88B,QAAQ+X,aAAe,EAC9B70C,EAAO88B,QAAQgY,eAAiB,EAChC90C,EAAO88B,QAAQiY,SAAW,EAC1B/0C,EAAO88B,QAAQkY,SAAW,EAC1Bh1C,EAAO88B,QAAQmY,SAAW,EAC1Bj1C,EAAO88B,QAAQoY,SAAW,EAC1Bl1C,EAAO88B,QAAQqY,aAAe,EAC9Bn1C,EAAO88B,QAAQsY,YAAc,EAC7Bp1C,EAAO88B,QAAQuY,wBAA0B,GACzCr1C,EAAO88B,QAAQwY,yBAA2B,GAC1Ct1C,EAAO88B,QAAQyY,cAAgB,GAC/Bv1C,EAAO88B,QAAQ0Y,gBAAkB,GACjCx1C,EAAO88B,QAAQ2Y,gBAAkB,GACjCz1C,EAAO88B,QAAQ4Y,iBAAmB,GAClC11C,EAAO88B,QAAQ6Y,mBAAqB,EACpC31C,EAAO88B,QAAQ8Y,mBAAqB,EACpC51C,EAAO88B,QAAQ+Y,oBAAsB,EACrC71C,EAAO88B,QAAQgZ,oBAAsB,EAiBrC91C,EAAO8vC,UAAY,SAAUh/D,EAAMilE,GAK/B7pE,KAAK4E,KAAOA,EAMZ5E,KAAK0I,MAAQ,KAMb1I,KAAKslE,WAAY,EAKjBtlE,KAAKgsC,gBAAkBhsC,KAKvBA,KAAKmjE,kBAAoB,KAKzBnjE,KAAKojE,qBAAuB,KAK5BpjE,KAAKqjE,eAAiB,KAKtBrjE,KAAKsjE,aAAe,KAKpBtjE,KAAKujE,eAAiB,KAKtBvjE,KAAKwjE,gBAAkB,KAKvBxjE,KAAK0lE,SAAW,IAMhB1lE,KAAK8pE,WAAaD,EAMlB7pE,KAAK+pE,QAAU,KAMf/pE,KAAKgqE,eAAiB,KAMtBhqE,KAAKiqE,YAMLjqE,KAAKkqE,YAAc,EAMnBlqE,KAAKmqE,SAMLnqE,KAAKoqE,SAAW,GAIpBt2C,EAAO8vC,UAAUvgE,WAUbwgE,aAAc,SAAUz2D,EAAS02D,GAEJ,mBAAdA,KAEP9jE,KAAKmjE,kBAAoD,kBAAxBW,GAAUC,UAA4BD,EAAUC,UAAY/jE,KAAKmjE,kBAClGnjE,KAAKojE,qBAA0D,kBAA3BU,GAAUE,aAA+BF,EAAUE,aAAehkE,KAAKojE,qBAC3GpjE,KAAKqjE,eAA8C,kBAArBS,GAAUtU,OAAyBsU,EAAUtU,OAASxvD,KAAKqjE,eACzFrjE,KAAKsjE,aAA0C,kBAAnBQ,GAAUrU,KAAuBqU,EAAUrU,KAAOzvD,KAAKsjE,aACnFtjE,KAAKujE,eAA8C,kBAArBO,GAAUG,OAAyBH,EAAUG,OAASjkE,KAAKujE,eACzFvjE,KAAKwjE,gBAAgD,kBAAtBM,GAAUzM,QAA0ByM,EAAUzM,QAAUr3D,KAAKwjE,kBAapG6G,UAAW,SAAU1T,GAEjB,MAAI32D,MAAKiqE,SAAStT,GAEP32D,KAAKiqE,SAAStT,GAId,MAUfiO,WAAY,WAER,GAAK5kE,KAAKslE,WAActlE,KAAK4E,KAAKkkC,MAAM4kB,SAAY1tD,KAAK4E,KAAKkkC,MAAMwmB,QAAQ5B,WAAY1tD,KAAK+pE,QAAQO,WAActqE,KAAK+pE,QAAQO,YAActqE,KAAKgqE,gBAAnJ,CAKA,IAAK,GAAIvmE,GAAI,EAAGA,EAAIzD,KAAKkqE,YAAazmE,IACtC,CACI,GAAI8mE,GAAeC,MAAMxqE,KAAK+pE,QAAQtQ,QAAQh2D,IAAMzD,KAAK+pE,QAAQtQ,QAAQh2D,GAAGQ,MAAQjE,KAAK+pE,QAAQtQ,QAAQh2D,EAErG8mE,KAAiBvqE,KAAKiqE,SAASxmE,GAAGQ,QAEb,IAAjBsmE,EAEAvqE,KAAKyqE,kBAAkBhnE,EAAG8mE,GAEJ,IAAjBA,EAELvqE,KAAK0qE,gBAAgBjnE,EAAG8mE,GAIxBvqE,KAAK2qE,mBAAmBlnE,EAAG8mE,IAKvC,IAAK,GAAI7hE,GAAQ,EAAGA,EAAQ1I,KAAKoqE,SAAU1hE,IAC3C,CACI,GAAIzE,GAAQjE,KAAK+pE,QAAQa,KAAKliE,EAEzBzE,GAAQ,GAAKA,EAAQjE,KAAK0lE,UAAsB,EAARzhE,GAAaA,GAASjE,KAAK0lE,SAEpE1lE,KAAK6qE,kBAAkBniE,EAAOzE,GAI9BjE,KAAK6qE,kBAAkBniE,EAAO,GAItC1I,KAAKgqE,eAAiBhqE,KAAK+pE,QAAQO,YAUvC/F,QAAS,SAAUiB,GAEf,GAAIsF,IAAmB9qE,KAAKslE,SAE5BtlE,MAAKslE,WAAY,EACjBtlE,KAAK0I,MAAQ88D,EAAO98D,MAEpB1I,KAAK+pE,QAAUvE,EAEfxlE,KAAKiqE,YACLjqE,KAAKkqE,YAAc1E,EAAO/L,QAAQ/1D,OAElC1D,KAAKmqE,SACLnqE,KAAKoqE,SAAW5E,EAAOoF,KAAKlnE,MAE5B,KAAK,GAAIqB,GAAI,EAAGA,EAAI/E,KAAKoqE,SAAUrlE,IAE/B/E,KAAKmqE,MAAMplE,GAAKygE,EAAOoF,KAAK7lE,EAGhC,KAAK,GAAI4xD,KAAc6O,GAAO/L,QAE1B9C,EAAat8B,SAASs8B,EAAY,IAClC32D,KAAKiqE,SAAStT,GAAc,GAAI7iC,GAAO4iC,aAAa12D,KAAM22D,EAG1DmU,IAAmB9qE,KAAK8pE,WAAW3G,mBAEnCnjE,KAAK8pE,WAAW3G,kBAAkBr9D,KAAK9F,KAAK8pE,WAAW99B,gBAAiBhsC,KAAK0I,OAG7EoiE,GAAmB9qE,KAAKmjE,mBAExBnjE,KAAKmjE,kBAAkBr9D,KAAK9F,KAAKgsC,kBAUzCy4B,WAAY,WAER,GAAIqG,GAAkB9qE,KAAKslE,UACvByF,EAAqB/qE,KAAK0I,KAE9B1I,MAAKslE,WAAY,EACjBtlE,KAAK0I,MAAQ,KAEb1I,KAAK+pE,QAAUtgE,MAEf,KAAK,GAAIhG,GAAI,EAAGA,EAAIzD,KAAKkqE,YAAazmE,IAElCzD,KAAKiqE,SAASxmE,GAAGF,SAGrBvD,MAAKiqE,YACLjqE,KAAKkqE,YAAc,EAEnBlqE,KAAKmqE,SACLnqE,KAAKoqE,SAAW,EAEZU,GAAmB9qE,KAAK8pE,WAAW1G,sBAEnCpjE,KAAK8pE,WAAW1G,qBAAqBt9D,KAAK9F,KAAK8pE,WAAW99B,gBAAiB++B,GAG3ED,GAAmB9qE,KAAKojE,sBAExBpjE,KAAKojE,qBAAqBt9D,KAAK9F,KAAKgsC,kBAU5CzoC,QAAS,WAELvD,KAAK+pE,QAAUtgE,MAEf,KAAK,GAAIhG,GAAI,EAAGA,EAAIzD,KAAKkqE,YAAazmE,IAElCzD,KAAKiqE,SAASxmE,GAAGF,SAGrBvD,MAAKiqE,YACLjqE,KAAKkqE,YAAc,EAEnBlqE,KAAKmqE,SACLnqE,KAAKoqE,SAAW,EAEhBpqE,KAAKmjE,kBAAoB,KACzBnjE,KAAKojE,qBAAuB,KAC5BpjE,KAAKqjE,eAAiB,KACtBrjE,KAAKsjE,aAAe,KACpBtjE,KAAKujE,eAAiB,KACtBvjE,KAAKwjE,gBAAkB,MAU3BqH,kBAAmB,SAAUniE,EAAOzE,GAE5BjE,KAAKmqE,MAAMzhE,KAAWzE,IAK1BjE,KAAKmqE,MAAMzhE,GAASzE,EAEhBjE,KAAK8pE,WAAWvG,gBAEhBvjE,KAAK8pE,WAAWvG,eAAez9D,KAAK9F,KAAK8pE,WAAW99B,gBAAiBhsC,KAAM0I,EAAOzE,GAGlFjE,KAAKujE,gBAELvjE,KAAKujE,eAAez9D,KAAK9F,KAAKgsC,gBAAiBhsC,KAAM0I,EAAOzE,KAYpEwmE,kBAAmB,SAAU9T,EAAY1yD,GAEjCjE,KAAK8pE,WAAWzG,gBAEhBrjE,KAAK8pE,WAAWzG,eAAev9D,KAAK9F,KAAK8pE,WAAW99B,gBAAiB2qB,EAAY1yD,EAAOjE,KAAK0I,OAG7F1I,KAAKqjE,gBAELrjE,KAAKqjE,eAAev9D,KAAK9F,KAAKgsC,gBAAiB2qB,EAAY1yD,GAG3DjE,KAAKiqE,SAAStT,IAEd32D,KAAKiqE,SAAStT,GAAYvrD,MAAM,KAAMnH,IAY9CymE,gBAAiB,SAAU/T,EAAY1yD,GAE/BjE,KAAK8pE,WAAWxG,cAEhBtjE,KAAK8pE,WAAWxG,aAAax9D,KAAK9F,KAAK8pE,WAAW99B,gBAAiB2qB,EAAY1yD,EAAOjE,KAAK0I,OAG3F1I,KAAKsjE,cAELtjE,KAAKsjE,aAAax9D,KAAK9F,KAAKgsC,gBAAiB2qB,EAAY1yD,GAGzDjE,KAAKiqE,SAAStT,IAEd32D,KAAKiqE,SAAStT,GAAY3rD,KAAK,KAAM/G,IAY7C0mE,mBAAoB,SAAUhU,EAAY1yD,GAElCjE,KAAK8pE,WAAWtG,iBAEhBxjE,KAAK8pE,WAAWtG,gBAAgB19D,KAAK9F,KAAK8pE,WAAW99B,gBAAiB2qB,EAAY1yD,EAAOjE,KAAK0I,OAG9F1I,KAAKwjE,iBAELxjE,KAAKwjE,gBAAgB19D,KAAK9F,KAAKgsC,gBAAiB2qB,EAAY1yD,GAG5DjE,KAAKiqE,SAAStT,IAEd32D,KAAKiqE,SAAStT,GAAYW,SAASrzD,IAY3C+mE,KAAM,SAAUC,GAEZ,MAAIjrE,MAAKmqE,MAAMc,GAEJjrE,KAAKmqE,MAAMc,IAGf,GAWXrU,OAAQ,SAAUD,GAEd,MAAI32D,MAAKiqE,SAAStT,GAEP32D,KAAKiqE,SAAStT,GAAYC,QAG9B,GAWXC,KAAM,SAAUF,GAEZ,MAAI32D,MAAKiqE,SAAStT,GAEP32D,KAAKiqE,SAAStT,GAAYE,MAG9B,GAYXW,aAAc,SAAUb,EAAYI,GAEhC,MAAI/2D,MAAKiqE,SAAStT,GAEP32D,KAAKiqE,SAAStT,GAAYa,aAAaT,GAFlD,QAeJQ,YAAa,SAAUZ,EAAYI,GAE/B,MAAI/2D,MAAKiqE,SAAStT,GAEP32D,KAAKiqE,SAAStT,GAAYY,YAAYR,GAFjD,QAeJmU,YAAa,SAAUvU,GAEnB,MAAI32D,MAAKiqE,SAAStT,GAEP32D,KAAKiqE,SAAStT,GAAY1yD,MAG9B,MASXwY,MAAO,WAEH,IAAK,GAAInY,GAAI,EAAGA,EAAItE,KAAKmqE,MAAMzmE,OAAQY,IAEnCtE,KAAKmqE,MAAM7lE,GAAK,IAO5BwvB,EAAO8vC,UAAUvgE,UAAUC,YAAcwwB,EAAO8vC,UAgBhD9vC,EAAOq3C,IAAM,SAAUvmE,EAAMwmE,GAKzBprE,KAAK4E,KAAOA,EAOZ5E,KAAKqrE,UAAW,EAMhBrrE,KAAKkzC,MAAQ,KAMblzC,KAAK42D,QAAS,EAMd52D,KAAK62D,MAAO,EAMZ72D,KAAKk3D,QAAS,EAMdl3D,KAAKo3D,SAAU,EAMfp3D,KAAKm3D,UAAW,EAKhBn3D,KAAK82D,SAAW,EAQhB92D,KAAK+2D,SAAW,EAMhB/2D,KAAKg3D,OAAS,MAMdh3D,KAAKi3D,QAAU,EAKfj3D,KAAKsrE,QAAUF,EAKfprE,KAAKwvD,OAAS,GAAI17B,GAAO0W,OAKzBxqC,KAAKurE,eAAiB,KAKtBvrE,KAAKwrE,cAAgB,KAKrBxrE,KAAKyvD,KAAO,GAAI37B,GAAO0W,OAMvBxqC,KAAKyrE,WAAY,EAMjBzrE,KAAK0rE,SAAU,GAInB53C,EAAOq3C,IAAI9nE,WAQPijC,OAAQ,WAECtmC,KAAKqrE,UAENrrE,KAAK42D,SAEL52D,KAAK+2D,SAAW/2D,KAAK4E,KAAKskC,KAAKA,KAAOlpC,KAAK82D,SAC3C92D,KAAKi3D,UAEDj3D,KAAKurE,gBAELvrE,KAAKurE,eAAezlE,KAAK9F,KAAKwrE,cAAexrE,QAazD2rE,eAAgB,SAAUz4B,GAEjBlzC,KAAKqrE,WAEVrrE,KAAKkzC,MAAQA,EAGTlzC,KAAK42D,SAKT52D,KAAKk3D,OAAShkB,EAAMgkB,OACpBl3D,KAAKo3D,QAAUlkB,EAAMkkB,QACrBp3D,KAAKm3D,SAAWjkB,EAAMikB,SAEtBn3D,KAAK42D,QAAS,EACd52D,KAAK62D,MAAO,EACZ72D,KAAK82D,SAAW92D,KAAK4E,KAAKskC,KAAKA,KAC/BlpC,KAAK+2D,SAAW,EAChB/2D,KAAKi3D,QAAU,EAIfj3D,KAAKyrE,WAAY,EAEjBzrE,KAAKwvD,OAAO/iB,SAASzsC,SAWzB4rE,aAAc,SAAU14B,GAEflzC,KAAKqrE,WAEVrrE,KAAKkzC,MAAQA,EAETlzC,KAAK62D,OAKT72D,KAAK42D,QAAS,EACd52D,KAAK62D,MAAO,EACZ72D,KAAKg3D,OAASh3D,KAAK4E,KAAKskC,KAAKA,KAC7BlpC,KAAK+2D,SAAW/2D,KAAK4E,KAAKskC,KAAKA,KAAOlpC,KAAK82D,SAI3C92D,KAAK0rE,SAAU,EAEf1rE,KAAKyvD,KAAKhjB,SAASzsC,SAavByc,MAAO,SAAUw0C,GAEAxnD,SAATwnD,IAAsBA,GAAO,GAEjCjxD,KAAK42D,QAAS,EACd52D,KAAK62D,MAAO,EACZ72D,KAAKg3D,OAASh3D,KAAK4E,KAAKskC,KAAKA,KAC7BlpC,KAAK+2D,SAAW,EAChB/2D,KAAKqrE,UAAW,EAChBrrE,KAAKyrE,WAAY,EACjBzrE,KAAK0rE,SAAU,EAEXza,IAEAjxD,KAAKwvD,OAAO3iB,YACZ7sC,KAAKyvD,KAAK5iB,YACV7sC,KAAKurE,eAAiB,KACtBvrE,KAAKwrE,cAAgB,OAa7BvM,aAAc,SAAUlI,GAIpB,MAFiBttD,UAAbstD,IAA0BA,EAAW,IAEjC/2D,KAAK42D,QAAU52D,KAAK+2D,SAAWA,GAY3C8U,WAAY,SAAU9U,GAIlB,MAFiBttD,UAAbstD,IAA0BA,EAAW,KAEhC/2D,KAAK42D,QAAY52D,KAAK4E,KAAKskC,KAAKA,KAAOlpC,KAAKg3D,OAAUD,IAgBvEnzD,OAAOC,eAAeiwB,EAAOq3C,IAAI9nE,UAAW,YAExCS,IAAK,WAED,GAAI41B,GAAU15B,KAAKyrE,SAEnB,OADAzrE,MAAKyrE,WAAY,EACV/xC,KAgBf91B,OAAOC,eAAeiwB,EAAOq3C,IAAI9nE,UAAW,UAExCS,IAAK,WAED,GAAI41B,GAAU15B,KAAK0rE,OAEnB,OADA1rE,MAAK0rE,SAAU,EACRhyC,KAcf91B,OAAOC,eAAeiwB,EAAOq3C,IAAI9nE,UAAW,WAExCS,IAAK,WAED,MAAO9D,MAAKqrE,UAIhBrnE,IAAK,SAAUC,GAEXA,IAAUA,EAENA,IAAUjE,KAAKqrE,WAEVpnE,GAEDjE,KAAKyc,OAAM,GAGfzc,KAAKqrE,SAAWpnE,MAM5B6vB,EAAOq3C,IAAI9nE,UAAUC,YAAcwwB,EAAOq3C,IAkB1Cr3C,EAAO68B,SAAW,SAAU/rD,GAKxB5E,KAAK4E,KAAOA,EAOZ5E,KAAK0tD,SAAU,EAKf1tD,KAAKkzC,MAAQ,KAKblzC,KAAK8rE,WAAa,KAKlB9rE,KAAKgsC,gBAAkBhsC,KAKvBA,KAAKqjE,eAAiB,KAKtBrjE,KAAK+rE,gBAAkB,KAKvB/rE,KAAKsjE,aAAe,KAMpBtjE,KAAKgsE,SAMLhsE,KAAKisE,YAOLjsE,KAAKksE,WAAa,KAOlBlsE,KAAKmsE,YAAc,KAOnBnsE,KAAKosE,SAAW,KAMhBpsE,KAAK6xC,GAAK,EAMV7xC,KAAKqsE,GAAK,GAIdv4C,EAAO68B,SAASttD,WAWZwgE,aAAc,SAAUz2D,EAASoiD,EAAQC,EAAM6c,GAE3CtsE,KAAKgsC,gBAAkB5+B,EAED,mBAAXoiD,KAEPxvD,KAAKqjE,eAAiB7T,GAGN,mBAATC,KAEPzvD,KAAKsjE,aAAe7T,GAGD,mBAAZ6c,KAEPtsE,KAAK+rE,gBAAkBO,IAa/BC,OAAQ,SAAUnB,GASd,MAPKprE,MAAKgsE,MAAMZ,KAEZprE,KAAKgsE,MAAMZ,GAAW,GAAIt3C,GAAOq3C,IAAInrE,KAAK4E,KAAMwmE,GAEhDprE,KAAKwsE,cAAcpB,IAGhBprE,KAAKgsE,MAAMZ,IAetBqB,QAAS,SAAU7wC,GAEf,GAAIiB,KAEJ,KAAK,GAAInmB,KAAOklB,GAEZiB,EAAOnmB,GAAO1W,KAAKusE,OAAO3wC,EAAKllB,GAGnC,OAAOmmB,IAUX6vC,UAAW,SAAUtB,GAEbprE,KAAKgsE,MAAMZ,KAEXprE,KAAKgsE,MAAMZ,GAAW,KAEtBprE,KAAK2sE,iBAAiBvB,KAW9BwB,iBAAkB,WAEd,MAAO5sE,MAAKysE,SAAUI,GAAM/4C,EAAO68B,SAAS56B,GAAI+2C,KAAQh5C,EAAO68B,SAAS36B,KAAM6E,KAAQ/G,EAAO68B,SAAS96B,KAAM+E,MAAS9G,EAAO68B,SAAS76B,SAUzI1qB,MAAO,WAEH,IAAIpL,KAAK4E,KAAK6uC,OAAO2O,UAKG,OAApBpiD,KAAKksE,WAAT,CAMA,GAAI98B,GAAQpvC,IAEZA,MAAKksE,WAAa,SAAUh5B,GACxB,MAAO9D,GAAMu8B,eAAez4B,IAGhClzC,KAAKosE,SAAW,SAAUl5B,GACtB,MAAO9D,GAAMw8B,aAAa14B,IAG9BlzC,KAAKmsE,YAAc,SAAUj5B,GACzB,MAAO9D,GAAM29B,gBAAgB75B,IAGjCz+B,OAAO2+B,iBAAiB,UAAWpzC,KAAKksE,YAAY,GACpDz3D,OAAO2+B,iBAAiB,QAASpzC,KAAKosE,UAAU,GAChD33D,OAAO2+B,iBAAiB,WAAYpzC,KAAKmsE,aAAa,KAS1DnhE,KAAM,WAEFyJ,OAAO8/B,oBAAoB,UAAWv0C,KAAKksE,YAC3Cz3D,OAAO8/B,oBAAoB,QAASv0C,KAAKosE,UACzC33D,OAAO8/B,oBAAoB,WAAYv0C,KAAKmsE,aAE5CnsE,KAAKksE,WAAa,KAClBlsE,KAAKosE,SAAW,KAChBpsE,KAAKmsE,YAAc,MAUvB5oE,QAAS,WAELvD,KAAKgL,OAELhL,KAAKgtE,gBAELhtE,KAAKgsE,MAAMtoE,OAAS,EACpB1D,KAAK6xC,GAAK,GAad26B,cAAe,SAAUpB,GAErB,GAAuB,gBAAZA,GAEP,IAAK,GAAI10D,KAAO00D,GAEZprE,KAAKisE,SAASb,EAAQ10D,KAAQ,MAKlC1W,MAAKisE,SAASb,IAAW,GAUjCuB,iBAAkB,SAAUvB,SAEjBprE,MAAKisE,SAASb,IASzB4B,cAAe,WAEXhtE,KAAKisE,aAST3lC,OAAQ,WAIJ,IAFAtmC,KAAK6xC,GAAK7xC,KAAKgsE,MAAMtoE,OAEd1D,KAAK6xC,MAEJ7xC,KAAKgsE,MAAMhsE,KAAK6xC,KAEhB7xC,KAAKgsE,MAAMhsE,KAAK6xC,IAAIvL,UAahCqlC,eAAgB,SAAUz4B,GAEtBlzC,KAAKkzC,MAAQA,EAERlzC,KAAK4E,KAAKkkC,MAAM4kB,SAAY1tD,KAAK0tD,UAMlC1tD,KAAKisE,SAAS/4B,EAAMo4B,UAEpBp4B,EAAMmZ,iBAGLrsD,KAAKgsE,MAAM94B,EAAMo4B,WAElBtrE,KAAKgsE,MAAM94B,EAAMo4B,SAAW,GAAIx3C,GAAOq3C,IAAInrE,KAAK4E,KAAMsuC,EAAMo4B,UAGhEtrE,KAAKgsE,MAAM94B,EAAMo4B,SAASK,eAAez4B,GAEzClzC,KAAKqsE,GAAKn5B,EAAMo4B,QAEZtrE,KAAKqjE,gBAELrjE,KAAKqjE,eAAev9D,KAAK9F,KAAKgsC,gBAAiBkH,KAYvD65B,gBAAiB,SAAU75B,GAEvBlzC,KAAK8rE,WAAa54B,EAEblzC,KAAK4E,KAAKkkC,MAAM4kB,SAAY1tD,KAAK0tD,SAKlC1tD,KAAK+rE,iBAEL/rE,KAAK+rE,gBAAgBjmE,KAAK9F,KAAKgsC,gBAAiBihC,OAAOC,aAAah6B,EAAMi6B,UAAWj6B,IAY7F04B,aAAc,SAAU14B,GAEpBlzC,KAAKkzC,MAAQA,EAERlzC,KAAK4E,KAAKkkC,MAAM4kB,SAAY1tD,KAAK0tD,UAKlC1tD,KAAKisE,SAAS/4B,EAAMo4B,UAEpBp4B,EAAMmZ,iBAGLrsD,KAAKgsE,MAAM94B,EAAMo4B,WAElBtrE,KAAKgsE,MAAM94B,EAAMo4B,SAAW,GAAIx3C,GAAOq3C,IAAInrE,KAAK4E,KAAMsuC,EAAMo4B,UAGhEtrE,KAAKgsE,MAAM94B,EAAMo4B,SAASM,aAAa14B,GAEnClzC,KAAKsjE,cAELtjE,KAAKsjE,aAAax9D,KAAK9F,KAAKgsC,gBAAiBkH,KAWrDz2B,MAAO,SAAUw0C,GAEAxnD,SAATwnD,IAAsBA,GAAO,GAEjCjxD,KAAKkzC,MAAQ,IAIb,KAFA,GAAIzvC,GAAIzD,KAAKgsE,MAAMtoE,OAEZD,KAECzD,KAAKgsE,MAAMvoE,IAEXzD,KAAKgsE,MAAMvoE,GAAGgZ,MAAMw0C,IAehCgO,aAAc,SAAUmM,EAASrU,GAE7B,MAAI/2D,MAAKgsE,MAAMZ,GAEJprE,KAAKgsE,MAAMZ,GAASnM,aAAalI,GAIjC,MAcf8U,WAAY,SAAUT,EAASrU,GAE3B,MAAI/2D,MAAKgsE,MAAMZ,GAEJprE,KAAKgsE,MAAMZ,GAASS,WAAW9U,GAI/B,MAYfH,OAAQ,SAAUwU,GAEd,MAAIprE,MAAKgsE,MAAMZ,GAEJprE,KAAKgsE,MAAMZ,GAASxU,OAIpB,OAanBhzD,OAAOC,eAAeiwB,EAAO68B,SAASttD,UAAW,YAE7CS,IAAK,WAED,MAA4B,MAAxB9D,KAAKkzC,MAAMi6B,SAEJ,GAIAF,OAAOC,aAAaltE,KAAK8rE,WAAWqB,aAavDvpE,OAAOC,eAAeiwB,EAAO68B,SAASttD,UAAW,WAE7CS,IAAK,WAED,MAAO9D,MAAKgsE,MAAMhsE,KAAKqsE,OAM/Bv4C,EAAO68B,SAASttD,UAAUC,YAAcwwB,EAAO68B,SAE/C78B,EAAO68B,SAASjpB,EAAI,IAAI0lC,WAAW,GACnCt5C,EAAO68B,SAAShpB,EAAI,IAAIylC,WAAW,GACnCt5C,EAAO68B,SAAS/oB,EAAI,IAAIwlC,WAAW,GACnCt5C,EAAO68B,SAAS9oB,EAAI,IAAIulC,WAAW,GACnCt5C,EAAO68B,SAAS7oB,EAAI,IAAIslC,WAAW,GACnCt5C,EAAO68B,SAASl4B,EAAI,IAAI20C,WAAW,GACnCt5C,EAAO68B,SAAS0c,EAAI,IAAID,WAAW,GACnCt5C,EAAO68B,SAAS2c,EAAI,IAAIF,WAAW,GACnCt5C,EAAO68B,SAAS4c,EAAI,IAAIH,WAAW,GACnCt5C,EAAO68B,SAAS6c,EAAI,IAAIJ,WAAW,GACnCt5C,EAAO68B,SAAS8c,EAAI,IAAIL,WAAW,GACnCt5C,EAAO68B,SAAS+c,EAAI,IAAIN,WAAW,GACnCt5C,EAAO68B,SAASgd,EAAI,IAAIP,WAAW,GACnCt5C,EAAO68B,SAASid,EAAI,IAAIR,WAAW,GACnCt5C,EAAO68B,SAASkd,EAAI,IAAIT,WAAW,GACnCt5C,EAAO68B,SAASmd,EAAI,IAAIV,WAAW,GACnCt5C,EAAO68B,SAASod,EAAI,IAAIX,WAAW,GACnCt5C,EAAO68B,SAASqd,EAAI,IAAIZ,WAAW,GACnCt5C,EAAO68B,SAASsd,EAAI,IAAIb,WAAW,GACnCt5C,EAAO68B,SAASud,EAAI,IAAId,WAAW,GACnCt5C,EAAO68B,SAASwd,EAAI,IAAIf,WAAW,GACnCt5C,EAAO68B,SAASyd,EAAI,IAAIhB,WAAW,GACnCt5C,EAAO68B,SAAS0d,EAAI,IAAIjB,WAAW,GACnCt5C,EAAO68B,SAAS2d,EAAI,IAAIlB,WAAW,GACnCt5C,EAAO68B,SAAS4d,EAAI,IAAInB,WAAW,GACnCt5C,EAAO68B,SAAS6d,EAAI,IAAIpB,WAAW,GACnCt5C,EAAO68B,SAAS8d,KAAO,IAAIrB,WAAW,GACtCt5C,EAAO68B,SAASxrC,IAAM,IAAIioD,WAAW,GACrCt5C,EAAO68B,SAAS+d,IAAM,IAAItB,WAAW,GACrCt5C,EAAO68B,SAASge,MAAQ,IAAIvB,WAAW,GACvCt5C,EAAO68B,SAASie,KAAO,IAAIxB,WAAW,GACtCt5C,EAAO68B,SAASke,KAAO,IAAIzB,WAAW,GACtCt5C,EAAO68B,SAASme,IAAM,IAAI1B,WAAW,GACrCt5C,EAAO68B,SAASoe,MAAQ,IAAI3B,WAAW,GACvCt5C,EAAO68B,SAASqe,MAAQ,IAAI5B,WAAW,GACvCt5C,EAAO68B,SAASse,KAAO,IAAI7B,WAAW,GACtCt5C,EAAO68B,SAASue,SAAW,GAC3Bp7C,EAAO68B,SAASwe,SAAW,GAC3Br7C,EAAO68B,SAASye,SAAW,GAC3Bt7C,EAAO68B,SAAS0e,SAAW,GAC3Bv7C,EAAO68B,SAAS2e,SAAW,IAC3Bx7C,EAAO68B,SAAS4e,SAAW,IAC3Bz7C,EAAO68B,SAAS6e,SAAW,IAC3B17C,EAAO68B,SAAS8e,SAAW,IAC3B37C,EAAO68B,SAAS+e,SAAW,IAC3B57C,EAAO68B,SAASgf,SAAW,IAC3B77C,EAAO68B,SAASif,gBAAkB,IAClC97C,EAAO68B,SAASkf,WAAa,IAC7B/7C,EAAO68B,SAASmf,aAAe,IAC/Bh8C,EAAO68B,SAASof,gBAAkB,IAClCj8C,EAAO68B,SAASqf,eAAiB,IACjCl8C,EAAO68B,SAASsf,cAAgB,IAChCn8C,EAAO68B,SAASuf,GAAK,IACrBp8C,EAAO68B,SAASwf,GAAK,IACrBr8C,EAAO68B,SAASyf,GAAK,IACrBt8C,EAAO68B,SAAS0f,GAAK,IACrBv8C,EAAO68B,SAAS2f,GAAK,IACrBx8C,EAAO68B,SAAS4f,GAAK,IACrBz8C,EAAO68B,SAAS6f,GAAK,IACrB18C,EAAO68B,SAAS8f,GAAK,IACrB38C,EAAO68B,SAAS+f,GAAK,IACrB58C,EAAO68B,SAASggB,IAAM,IACtB78C,EAAO68B,SAASigB,IAAM,IACtB98C,EAAO68B,SAASkgB,IAAM,IACtB/8C,EAAO68B,SAASmgB,IAAM,IACtBh9C,EAAO68B,SAASogB,IAAM,IACtBj9C,EAAO68B,SAASqgB,IAAM,IACtBl9C,EAAO68B,SAASsgB,MAAQ,IACxBn9C,EAAO68B,SAASugB,OAAS,IACzBp9C,EAAO68B,SAASwgB,MAAQ,IACxBr9C,EAAO68B,SAASygB,WAAa,IAC7Bt9C,EAAO68B,SAAS0gB,OAAS,IACzBv9C,EAAO68B,SAAS2gB,cAAgB,IAChCx9C,EAAO68B,SAAS4gB,MAAQ,IACxBz9C,EAAO68B,SAAS6gB,aAAe,IAC/B19C,EAAO68B,SAAS8gB,eAAiB,IACjC39C,EAAO68B,SAAS+gB,eAAiB,IACjC59C,EAAO68B,SAASghB,OAAS,IACzB79C,EAAO68B,SAASihB,UAAY,EAC5B99C,EAAO68B,SAASkhB,IAAM,EACtB/9C,EAAO68B,SAASmhB,MAAQ,GACxBh+C,EAAO68B,SAASohB,MAAQ,GACxBj+C,EAAO68B,SAASqhB,MAAQ,GACxBl+C,EAAO68B,SAASshB,QAAU,GAC1Bn+C,EAAO68B,SAASuhB,IAAM,GACtBp+C,EAAO68B,SAASwhB,UAAY,GAC5Br+C,EAAO68B,SAASyhB,IAAM,GACtBt+C,EAAO68B,SAAS0hB,SAAW,GAC3Bv+C,EAAO68B,SAAS2hB,QAAU,GAC1Bx+C,EAAO68B,SAAS4hB,UAAY,GAC5Bz+C,EAAO68B,SAAS6hB,IAAM,GACtB1+C,EAAO68B,SAAS8hB,KAAO,GACvB3+C,EAAO68B,SAAS96B,KAAO,GACvB/B,EAAO68B,SAAS56B,GAAK,GACrBjC,EAAO68B,SAAS76B,MAAQ,GACxBhC,EAAO68B,SAAS36B,KAAO,GACvBlC,EAAO68B,SAAS+hB,KAAO,GACvB5+C,EAAO68B,SAASgiB,MAAQ,GACxB7+C,EAAO68B,SAASiiB,OAAS,GACzB9+C,EAAO68B,SAASkiB,OAAS,GACzB/+C,EAAO68B,SAASmiB,KAAO,GACvBh/C,EAAO68B,SAASoiB,SAAW,IAQ3Bj/C,EAAOk/C,UAAY,aAanBl/C,EAAOk/C,UAAUC,MAAQ,aAEzBn/C,EAAOk/C,UAAUC,MAAM5vE,WAenB25B,OAEIl5B,IAAK,WAED,MAAOgwB,GAAOnzB,KAAKuyE,UAAUp/C,EAAOnzB,KAAKwgC,SAASnhC,KAAK+B;EAI3DiC,IAAK,SAASC,GAEVjE,KAAK+B,SAAW+xB,EAAOnzB,KAAK68B,SAAS1J,EAAOnzB,KAAKuyE,UAAUjvE,OAmBvE6vB,EAAOk/C,UAAUG,UAAY,aAE7Br/C,EAAOk/C,UAAUG,UAAU9vE,WAiBvB+vE,KAAM,SAAUj4C,EAAMk4C,EAAWC,EAAMC,GAEnC,MAAIvzE,MAAKwzE,WAEExzE,KAAKwzE,WAAWJ,KAAKj4C,EAAMk4C,EAAWC,EAAMC,GAFvD,SAqBRz/C,EAAOk/C,UAAUS,SAAW,aAE5B3/C,EAAOk/C,UAAUS,SAASpwE,WAatBqwE,UAAU,EASVC,UAEI7vE,IAAK,WASD,MAPK9D,MAAK0zE,UAAa1zE,KAAK4zE,mBAExB5zE,KAAK+C,QAAQy5B,SAASx8B,KAAKgG,aAC3BhG,KAAK+C,QAAQ2C,GAAK1F,KAAK4E,KAAKgkC,OAAO3nC,KAAKyE,EACxC1F,KAAK+C,QAAQ4C,GAAK3F,KAAK4E,KAAKgkC,OAAO3nC,KAAK0E,GAGrC3F,KAAK4E,KAAKE,MAAM8jC,OAAO3nC,KAAKs8B,WAAWv9B,KAAK+C,YAmB/D+wB,EAAOk/C,UAAUa,OAAS,aAE1B//C,EAAOk/C,UAAUa,OAAOxwE,WAUpBmnB,SAEI1mB,IAAK,WAED,MAAO9D,MAAKkI,OAAOxC,EAAI1F,KAAK6G,QAcpC4jB,SAEI3mB,IAAK,WAED,MAAO9D,MAAKkI,OAAOvC,EAAI3F,KAAK8G,SAapC+zB,MAEI/2B,IAAK,WAED,MAAO9D,MAAK0F,EAAI1F,KAAKwqB,UAa7BoQ,OAEI92B,IAAK,WAED,MAAQ9D,MAAK0F,EAAI1F,KAAK6G,MAAS7G,KAAKwqB,UAa5C4S,KAEIt5B,IAAK,WAED,MAAO9D,MAAK2F,EAAI3F,KAAKyqB,UAa7B4S,QAEIv5B,IAAK,WAED,MAAQ9D,MAAK2F,EAAI3F,KAAK8G,OAAU9G,KAAKyqB,WAmBjDqJ,EAAOk/C,UAAUc,WAAa,aAY9BhgD,EAAOk/C,UAAUc,WAAWzwE,UAAU8zC,WAAa,WAO/C,MALIn3C,MAAKoC,QAELpC,KAAKoC,OAAO+0C,WAAWn3C,MAGpBA,MAcX8zB,EAAOk/C,UAAUc,WAAWzwE,UAAUg0C,WAAa,WAO/C,MALIr3C,MAAKoC,QAELpC,KAAKoC,OAAOi1C,WAAWr3C,MAGpBA,MAcX8zB,EAAOk/C,UAAUc,WAAWzwE,UAAUi0C,OAAS,WAO3C,MALIt3C,MAAKoC,QAELpC,KAAKoC,OAAOk1C,OAAOt3C,MAGhBA,MAcX8zB,EAAOk/C,UAAUc,WAAWzwE,UAAUk0C,SAAW,WAO7C,MALIv3C,MAAKoC,QAELpC,KAAKoC,OAAOm1C,SAASv3C,MAGlBA,MAeX8zB,EAAOk/C,UAAUe,KAAO,aAUxBjgD,EAAOk/C,UAAUe,KAAKC,QAAU,SAAUC,GAGtCngD,EAAOoF,MAAMsC,eAAex7B,KAAM8zB,EAAOk/C,UAAUe,KAAK1wE,WAExDrD,KAAKi0E,aAEL,KAAK,GAAIxwE,GAAI,EAAGA,EAAIwwE,EAAWvwE,OAAQD,IACvC,CACI,GAAImU,GAAKq8D,EAAWxwE,GAChBi4B,GAAU,CAEH,aAAP9jB,IAEA8jB,GAAU,GAGd5H,EAAOoF,MAAMsC,eAAex7B,KAAM8zB,EAAOk/C,UAAUp7D,GAAIvU,UAAWq4B,GAElE17B,KAAKi0E,WAAWr8D,IAAM,IAa9Bkc,EAAOk/C,UAAUe,KAAKj+D,KAAO,SAAUlR,EAAMc,EAAGC,EAAG+Q,EAAKvK,GAEpDnM,KAAK4E,KAAOA,EAEZ5E,KAAK0W,IAAMA,EAEX1W,KAAKyB,SAASuC,IAAI0B,EAAGC,GACrB3F,KAAK8E,MAAQ,GAAIgvB,GAAOpyB,MAAMgE,EAAGC,GACjC3F,KAAKk0E,iBAAmB,GAAIpgD,GAAOpyB,MAAMgE,EAAGC,GAE5C3F,KAAKo2C,OAAS,GAAItiB,GAAOqgD,OAAOn0E,MAEhCA,KAAK+C,QAAU,GAAI+wB,GAAO9wB,UAEtBhD,KAAKi0E,WAAWG,cAGhBp0E,KAAKk2C,KAAOl2C,KAAKk2C,MAGjBl2C,KAAKi0E,WAAWd,YAEhBnzE,KAAKwzE,WAAa,GAAI1/C,GAAOugD,iBAAiBr0E,OAG9CA,KAAKi0E,WAAWK,aAAuB,OAAR59D,GAE/B1W,KAAKu0E,YAAY79D,EAAKvK,GAGtBnM,KAAKi0E,WAAWO,gBAEhBx0E,KAAKy1C,aAAe,GAAI3hB,GAAOpyB,MAAMgE,EAAGC,KAKhDmuB,EAAOk/C,UAAUe,KAAKztE,UAAY,WAE9B,GAAItG,KAAKi1C,eAGL,WADAj1C,MAAKuD,SAOT,IAHAvD,KAAKk0E,iBAAiBlwE,IAAIhE,KAAK8E,MAAMY,EAAG1F,KAAK8E,MAAMa,GACnD3F,KAAKy0E,iBAAmBz0E,KAAK+B,UAExB/B,KAAKiyC,SAAWjyC,KAAKoC,OAAO6vC,OAG7B,MADAjyC,MAAKk5C,cAAgB,IACd,CAGXl5C,MAAK8E,MAAMy3B,MAAMv8B,KAAK4E,KAAKgkC,OAAOljC,EAAI1F,KAAKuC,eAAe4C,GAAInF,KAAK4E,KAAKgkC,OAAOjjC,EAAI3F,KAAKuC,eAAe6C,IAEnGpF,KAAKiC,UAELjC,KAAKk5C,cAAgBl5C,KAAK4E,KAAKvC,MAAM6vC,wBAGrClyC,KAAK8H,UAEL9H,KAAK8H,QAAQoG,gBAAiB,GAG9BlO,KAAKwzE,YAELxzE,KAAKwzE,WAAWltC,SAGhBtmC,KAAKk2C,MAELl2C,KAAKk2C,KAAK5vC,WAGd,KAAK,GAAI7C,GAAI,EAAGA,EAAIzD,KAAKwD,SAASE,OAAQD,IAEtCzD,KAAKwD,SAASC,GAAG6C,WAGrB,QAAO,GAIXwtB,EAAOk/C,UAAUe,KAAK1wE,WAMlBuB,KAAM,KAQNu2B,KAAM,GAON84C,cAQA36D,EAAG,EAQH88B,OAAQ3sC,OAQR+pE,WAAY/pE,OAUZiN,IAAK,GAQL5R,MAAO,KAOPgoC,OAAO,EAOPonC,iBAAkB,KAOlBO,iBAAkB,EAQlBv7B,cAAe,EAQfw7B,OAAO,EAWPz/B,gBAAgB,EAMhBlyC,QAAS,KAMT4xE,SAAS,EAaT1iC,QAEInuC,IAAK,WAED,MAAO9D,MAAK20E,SAIhB3wE,IAAK,SAAUC,GAEPA,GAEAjE,KAAK20E,SAAU,EAEX30E,KAAKk2C,MAAQl2C,KAAKk2C,KAAKn/B,OAAS+c,EAAO8gB,QAAQggC,MAE/C50E,KAAKk2C,KAAKgH,aAGdl9C,KAAKiC,SAAU,IAIfjC,KAAK20E,SAAU,EAEX30E,KAAKk2C,MAAQl2C,KAAKk2C,KAAKn/B,OAAS+c,EAAO8gB,QAAQggC,MAE/C50E,KAAKk2C,KAAK2+B,kBAGd70E,KAAKiC,SAAU,KAc3BqkC,OAAQ,aAURyL,WAAY,WAEJ/xC,KAAK80E,cAEL90E,KAAK0W,IAAI1P,SAGThH,KAAKi0E,WAAWG,aAEhBtgD,EAAOk/C,UAAUoB,YAAYriC,WAAWjsC,KAAK9F,MAG7CA,KAAKi0E,WAAWO,eAEhB1gD,EAAOk/C,UAAUwB,cAAcziC,WAAWjsC,KAAK9F,KAGnD,KAAK,GAAIyD,GAAI,EAAGA,EAAIzD,KAAKwD,SAASE,OAAQD,IAEtCzD,KAAKwD,SAASC,GAAGsuC,eAmB7Bje,EAAOk/C,UAAU+B,KAAO,aAExBjhD,EAAOk/C,UAAU+B,KAAK1xE,WASlB2xE,SAAU,KAMVC,MAAO,KAmBP/nE,KAAM,SAASskB,EAAM4J,GAEJ3xB,SAAT2xB,IAAsBA,GAAO,GAE7B5J,GAEI4J,GAA0B,OAAlBp7B,KAAKg1E,SAEbh1E,KAAKg1E,SAASz4C,MAAM/K,EAAK9rB,EAAG8rB,EAAK7rB,EAAG6rB,EAAK3qB,MAAO2qB,EAAK1qB,QAIrD9G,KAAKg1E,SAFA55C,GAA0B,OAAlBp7B,KAAKg1E,SAEF,GAAIlhD,GAAO9wB,UAAUwuB,EAAK9rB,EAAG8rB,EAAK7rB,EAAG6rB,EAAK3qB,MAAO2qB,EAAK1qB,QAItD0qB,EAGpBxxB,KAAKk1E,eAILl1E,KAAKi1E,MAAQ,KACbj1E,KAAKg1E,SAAW,KAEhBh1E,KAAKm1E,eAWbD,WAAY,WAER,GAAKl1E,KAAKg1E,SAAV,CAKAh1E,KAAKi1E,MAAQnhD,EAAO9wB,UAAUs4B,MAAMt7B,KAAKg1E,SAAUh1E,KAAKi1E,OACxDj1E,KAAKi1E,MAAMvvE,GAAK1F,KAAKo1E,OAAO1vE,EAC5B1F,KAAKi1E,MAAMtvE,GAAK3F,KAAKo1E,OAAOzvE,CAE5B,IAAI2I,GAAK3N,KAAK2+B,IAAIt/B,KAAKo1E,OAAO1vE,EAAG1F,KAAKi1E,MAAMvvE,GACxC6I,EAAK5N,KAAK2+B,IAAIt/B,KAAKo1E,OAAOzvE,EAAG3F,KAAKi1E,MAAMtvE,GACxCqI,EAAKrN,KAAK0wB,IAAIrxB,KAAKo1E,OAAOx6C,MAAO56B,KAAKi1E,MAAMr6C,OAAStsB,EACrDL,EAAKtN,KAAK0wB,IAAIrxB,KAAKo1E,OAAO/3C,OAAQr9B,KAAKi1E,MAAM53C,QAAU9uB,CAE3DvO,MAAK8H,QAAQoF,KAAKxH,EAAI4I,EACtBtO,KAAK8H,QAAQoF,KAAKvH,EAAI4I,EACtBvO,KAAK8H,QAAQoF,KAAKrG,MAAQmH,EAC1BhO,KAAK8H,QAAQoF,KAAKpG,OAASmH,EAE3BjO,KAAK8H,QAAQqE,MAAMtF,MAAQlG,KAAK0wB,IAAIrjB,EAAIhO,KAAKg1E,SAASnuE,OACtD7G,KAAK8H,QAAQqE,MAAMrF,OAASnG,KAAK0wB,IAAIpjB,EAAIjO,KAAKg1E,SAASluE,QAEvD9G,KAAK8H,QAAQjB,MAAQ7G,KAAK8H,QAAQqE,MAAMtF,MACxC7G,KAAK8H,QAAQhB,OAAS9G,KAAK8H,QAAQqE,MAAMrF,OAEzC9G,KAAK8H,QAAQurB,gBAiBrBS,EAAOk/C,UAAUqC,MAAQ,aAEzBvhD,EAAOk/C,UAAUqC,MAAMhyE,WAUnBwyD,QAEI/xD,IAAK,WAED,MAAO9D,MAAK8E,MAAMY,EAAI1F,KAAKk0E,iBAAiBxuE,IAcpDivD,QAEI7wD,IAAK,WAED,MAAO9D,MAAK8E,MAAMa,EAAI3F,KAAKk0E,iBAAiBvuE,IAYpDowD,QAEIjyD,IAAK,WAED,MAAO9D,MAAK+B,SAAW/B,KAAKy0E,oBAmBxC3gD,EAAOk/C,UAAUsC,QAAU,aAE3BxhD,EAAOk/C,UAAUsC,QAAQjyE,WAQrBu3C,cAAc,EAWdr3C,QAAS,SAAUy3C,GAEf,GAAkB,OAAdh7C,KAAK4E,OAAiB5E,KAAK46C,aAA/B,CAEwBnxC,SAApBuxC,IAAiCA,GAAkB,GAEvDh7C,KAAK46C,cAAe,EAEhB56C,KAAKo2C,QAELp2C,KAAKo2C,OAAOm/B,mBAAmBv1E,MAG/BA,KAAKoC,SAEDpC,KAAKoC,iBAAkB0xB,GAAO0gB,MAE9Bx0C,KAAKoC,OAAO2pC,OAAO/rC,MAInBA,KAAKoC,OAAOuG,YAAY3I,OAI5BA,KAAK8oC,OAEL9oC,KAAK8oC,MAAMvlC,UAGXvD,KAAKwzE,YAELxzE,KAAKwzE,WAAWjwE,UAGhBvD,KAAKk2C,MAELl2C,KAAKk2C,KAAK3yC,UAGVvD,KAAKo2C,QAELp2C,KAAKo2C,OAAO7yC,SAGhB,IAAIE,GAAIzD,KAAKwD,SAASE,MAEtB,IAAIs3C,EAEA,KAAOv3C,KAEHzD,KAAKwD,SAASC,GAAGF,QAAQy3C,OAK7B,MAAOv3C,KAEHzD,KAAK2I,YAAY3I,KAAKwD,SAASC,GAInCzD,MAAKi1E,QAELj1E,KAAKi1E,MAAQ,MAGbj1E,KAAKo1E,SAELp1E,KAAKo1E,OAAS,MAGdthD,EAAO0hD,OAASx1E,KAAK0W,cAAeod,GAAO0hD,OAE3Cx1E,KAAK0W,IAAI++D,eAAe1pC,OAAO/rC,KAAK01E,YAAa11E,MAGjD8zB,EAAO6hD,YAAc31E,KAAK41E,UAE1B51E,KAAK41E,YAGT51E,KAAK+0C,OAAQ,EACb/0C,KAAKiyC,QAAS,EACdjyC,KAAKiC,SAAU,EAEfjC,KAAKiI,QAAU,KACfjI,KAAKmL,KAAO,KACZnL,KAAK4E,KAAO,KAGZ5E,KAAKmC,YAAa,EAGlBnC,KAAK4B,kBAAoB,KACzB5B,KAAK6B,yBAA2B,KAChC7B,KAAKkC,QAAU,KACflC,KAAKoC,OAAS,KACdpC,KAAKqC,MAAQ,KACbrC,KAAKuC,eAAiB,KACtBvC,KAAK8C,WAAa,KAClB9C,KAAK+C,QAAU,KACf/C,KAAKiD,eAAiB,KACtBjD,KAAKkD,MAAQ,KAEblD,KAAK2D,uBAEL3D,KAAK46C,cAAe,EACpB56C,KAAKi1C,gBAAiB,KA4B9BnhB,EAAOqgD,OAAS,SAAUxqD,GAKtB3pB,KAAKoC,OAASunB,GAMlBmK,EAAOqgD,OAAO9wE,WAOVE,QAAS,WAELvD,KAAK61E,QAAU,KAEX71E,KAAK81E,YAAwB91E,KAAK81E,WAAW3mC,UAC7CnvC,KAAK+1E,iBAAwB/1E,KAAK+1E,gBAAgB5mC,UAClDnvC,KAAKg2E,qBAAwBh2E,KAAKg2E,oBAAoB7mC,UACtDnvC,KAAKi2E,qBAAwBj2E,KAAKi2E,oBAAoB9mC,UACtDnvC,KAAKk2E,WAAwBl2E,KAAKk2E,UAAU/mC,UAC5CnvC,KAAKm2E,YAAwBn2E,KAAKm2E,WAAWhnC,UAC7CnvC,KAAKo2E,gBAAwBp2E,KAAKo2E,eAAejnC,UACjDnvC,KAAKq2E,gBAAwBr2E,KAAKq2E,eAAelnC,UAEjDnvC,KAAKs2E,cAAwBt2E,KAAKs2E,aAAannC,UAC/CnvC,KAAKu2E,aAAwBv2E,KAAKu2E,YAAYpnC,UAC9CnvC,KAAKw2E,cAAwBx2E,KAAKw2E,aAAarnC,UAC/CnvC,KAAKy2E,YAAwBz2E,KAAKy2E,WAAWtnC,UAC7CnvC,KAAK02E,cAAwB12E,KAAK02E,aAAavnC,UAC/CnvC,KAAK22E,eAAwB32E,KAAK22E,cAAcxnC,UAChDnvC,KAAK42E,aAAwB52E,KAAK42E,YAAYznC,UAE9CnvC,KAAK62E,mBAAwB72E,KAAK62E,kBAAkB1nC,UACpDnvC,KAAK82E,sBAAwB92E,KAAK82E,qBAAqB3nC,UACvDnvC,KAAK+2E,kBAAwB/2E,KAAK+2E,iBAAiB5nC,WAS3D+vB,eAAgB,KAKhBE,mBAAoB,KAKpB4X,mBAAoB,KAKpB1hC,UAAW,KAKX2hC,SAAU,KAKVC,UAAW,KAKXC,cAAe,KAKfC,cAAe,KAKfC,YAAa,KAKbC,WAAY,KAKZC,YAAa,KAKbC,UAAW,KAKXC,YAAa,KAKbnW,aAAc,KAKdoW,WAAY,KAKZC,iBAAkB,KAKlBC,oBAAqB,KAKrBC,gBAAiB,MAIrB/jD,EAAOqgD,OAAO9wE,UAAUC,YAAcwwB,EAAOqgD,MAK7C,KAAK,GAAI96C,KAAQvF,GAAOqgD,OAAO9wE,UAEtBywB,EAAOqgD,OAAO9wE,UAAU23B,eAAe3B,IACjB,IAAvBA,EAAKlwB,QAAQ,OACqB,OAAlC2qB,EAAOqgD,OAAO9wE,UAAUg2B,KAK5B,SAAWA,EAAMy+C,GACb,YAGAl0E,QAAOC,eAAeiwB,EAAOqgD,OAAO9wE,UAAWg2B,GAC3Cv1B,IAAK,WACD,MAAO9D,MAAK83E,KAAa93E,KAAK83E,GAAW,GAAIhkD,GAAO0W,WAK5D1W,EAAOqgD,OAAO9wE,UAAUg2B,EAAO,aAAe,WAC1C,MAAOr5B,MAAK83E,GAAW93E,KAAK83E,GAASrrC,SAAStlC,MAAMnH,KAAK83E,GAAUv/C,WAAa,OAGrFc,EAAM,IAAMA,EAgBnBvF,GAAOk/C,UAAUwB,cAAgB,aAQjC1gD,EAAOk/C,UAAUwB,cAAcziC,WAAa,WAEpC/xC,KAAKw1C,gBAELx1C,KAAKyB,SAASiE,GAAK1F,KAAK4E,KAAKgkC,OAAO3nC,KAAKyE,EAAI1F,KAAKy1C,aAAa/vC,GAAK1F,KAAK4E,KAAKgkC,OAAOjnC,MAAM+D,EAC3F1F,KAAKyB,SAASkE,GAAK3F,KAAK4E,KAAKgkC,OAAO3nC,KAAK0E,EAAI3F,KAAKy1C,aAAa9vC,GAAK3F,KAAK4E,KAAKgkC,OAAOjnC,MAAMgE,IAKnGmuB,EAAOk/C,UAAUwB,cAAcnxE,WAM3B00E,gBAAgB,EAmBhBviC,eAEI1xC,IAAK,WAED,MAAO9D,MAAK+3E,gBAIhB/zE,IAAK,SAAUC,GAEPA,GAEAjE,KAAK+3E,gBAAiB,EACtB/3E,KAAKy1C,aAAazxC,IAAIhE,KAAK0F,EAAG1F,KAAK2F,IAInC3F,KAAK+3E,gBAAiB,IAalCtiC,aAAc,GAAI3hB,GAAOpyB,OAiB7BoyB,EAAOk/C,UAAUgF,OAAS,aAE1BlkD,EAAOk/C,UAAUgF,OAAO30E,WAUpB40E,OAAQ,EASRC,UAAW,IAWXC,OAAQ,SAAS7/B,GAYb,MAVIt4C,MAAK+0C,QAEL/0C,KAAKi4E,QAAU3/B,EAEXt4C,KAAKi4E,QAAU,GAEfj4E,KAAKo4E,QAINp4E,MAWXq4E,KAAM,SAAS//B,GAYX,MAVIt4C,MAAK+0C,QAEL/0C,KAAKi4E,QAAU3/B,EAEXt4C,KAAKi4E,OAASj4E,KAAKk4E,YAEnBl4E,KAAKi4E,OAASj4E,KAAKk4E,YAIpBl4E,OAiBf8zB,EAAOk/C,UAAUsF,SAAW,aAE5BxkD,EAAOk/C,UAAUsF,SAASj1E,WAYtBswE,UAEI7vE,IAAK,WAED,MAAO9D,MAAK4E,KAAKE,MAAM8jC,OAAO3nC,KAAKs8B,WAAWv9B,KAAK+C,YAmB/D+wB,EAAOk/C,UAAUuF,aAAe,aAEhCzkD,EAAOk/C,UAAUuF,aAAal1E,WAU1BylC,MAAO,KAcP0vC,cAEI10E,IAAK,WAED,MAAQ9D,MAAK8oC,OAAS9oC,KAAK8oC,MAAM4kB,SAIrC1pD,IAAK,SAAUC,GAEPA,EAEmB,OAAfjE,KAAK8oC,OAEL9oC,KAAK8oC,MAAQ,GAAIhV,GAAOkpC,aAAah9D,MACrCA,KAAK8oC,MAAM19B,SAENpL,KAAK8oC,QAAU9oC,KAAK8oC,MAAM4kB,SAE/B1tD,KAAK8oC,MAAM19B,QAKXpL,KAAK8oC,OAAS9oC,KAAK8oC,MAAM4kB,SAEzB1tD,KAAK8oC,MAAM99B,UAuB/B8oB,EAAOk/C,UAAUyF,QAAU,aAQ3B3kD,EAAOk/C,UAAUyF,QAAQnyE,UAAY,WAGjC,IAAItG,KAAK0zE,UAAY1zE,KAAK4zE,oBAEtB5zE,KAAK+C,QAAQy5B,SAASx8B,KAAKgG,aAE3BhG,KAAK+C,QAAQ2C,GAAK1F,KAAK4E,KAAKgkC,OAAO3nC,KAAKyE,EACxC1F,KAAK+C,QAAQ4C,GAAK3F,KAAK4E,KAAKgkC,OAAO3nC,KAAK0E,EAEpC3F,KAAK0zE,WAGD1zE,KAAK4E,KAAKE,MAAM8jC,OAAO3nC,KAAKs8B,WAAWv9B,KAAK+C,UAE5C/C,KAAKmC,YAAa,EAClBnC,KAAK4E,KAAKE,MAAM8jC,OAAOpD,eAIvBxlC,KAAKmC,YAAa,GAItBnC,KAAK4zE,kBAGL,GAAI5zE,KAAK04E,mBAAqB14E,KAAK4E,KAAKE,MAAM4B,OAAO62B,WAAWv9B,KAAK+C,SAEjE/C,KAAK04E,mBAAoB,EACzB14E,KAAKo2C,OAAOuiC,uBAAuB34E,UAElC,KAAKA,KAAK04E,oBAAsB14E,KAAK4E,KAAKE,MAAM4B,OAAO62B,WAAWv9B,KAAK+C,WAGxE/C,KAAK04E,mBAAoB,EACzB14E,KAAKo2C,OAAOwiC,uBAAuB54E,MAE/BA,KAAK64E,iBAGL,MADA74E,MAAKo4E,QACE,CAMvB,QAAO,GAIXtkD,EAAOk/C,UAAUyF,QAAQp1E,WAmBrBuwE,kBAAkB,EAQlBiF,iBAAiB,EAMjBH,mBAAmB,EAQnBI,SAEIh1E,IAAK,WAED,MAAO9D,MAAK4E,KAAKE,MAAM4B,OAAO62B,WAAWv9B,KAAKgG,gBAmB1D8tB,EAAOk/C,UAAU+F,SAAW,aAQ5BjlD,EAAOk/C,UAAU+F,SAASzyE,UAAY,WAElC,MAAItG,MAAKg5E,SAAW,IAEhBh5E,KAAKg5E,UAAYh5E,KAAK4E,KAAKskC,KAAK+vC,iBAE5Bj5E,KAAKg5E,UAAY,IAEjBh5E,KAAKo4E,QACE,IAIR,GAIXtkD,EAAOk/C,UAAU+F,SAAS11E,WAatB0xC,OAAO,EAePikC,SAAU,EAaVE,OAAQ,SAAUjB,GAkBd,MAhBexuE,UAAXwuE,IAAwBA,EAAS,GAErCj4E,KAAK+0C,OAAQ,EACb/0C,KAAKiyC,QAAS,EACdjyC,KAAKiC,SAAU,EAEY,gBAAhBjC,MAAKi4E,SAEZj4E,KAAKi4E,OAASA,GAGdj4E,KAAKo2C,QAELp2C,KAAKo2C,OAAO+iC,mBAAmBn5E,MAG5BA,MAiBXo4E,KAAM,WAWF,MATAp4E,MAAK+0C,OAAQ,EACb/0C,KAAKiyC,QAAS,EACdjyC,KAAKiC,SAAU,EAEXjC,KAAKo2C,QAELp2C,KAAKo2C,OAAOgjC,kBAAkBp5E,MAG3BA,OAiBf8zB,EAAOk/C,UAAUsB,YAAc,aAE/BxgD,EAAOk/C,UAAUsB,YAAYjxE,WAMzByxE,cAAc,EAMdM,OAAQ,KAgBRb,YAAa,SAAU79D,EAAKvK,EAAOktE,GAE/BltE,EAAQA,GAAS,GAEZktE,GAAmC5vE,SAAlB4vE,IAAgCr5E,KAAKwzE,YAEvDxzE,KAAKwzE,WAAWxoE,OAGpBhL,KAAK0W,IAAMA,EACX1W,KAAK80E,cAAe,CACpB,IAAIjsC,GAAQ7oC,KAAK4E,KAAKikC,MAElB3V,GAAW,EACX20B,GAAY7nD,KAAK8H,QAAQkE,YAAYxF,SAEzC,IAAIstB,EAAOltB,eAAiB8P,YAAeod,GAAOltB,cAE9C5G,KAAK0W,IAAMA,EAAIA,IACf1W,KAAKoM,WAAWsK,OAEf,IAAIod,EAAOwlD,YAAc5iE,YAAeod,GAAOwlD,WAEhDt5E,KAAK80E,cAAe,EAEpB90E,KAAKoM,WAAWsK,EAAI5O,SAEhB+gC,EAAM0wC,aAAa7iE,EAAIA,IAAKod,EAAOs3B,MAAMt0B,cAEzC5D,GAAYlzB,KAAKwzE,WAAWgG,cAAc3wC,EAAM4wC,aAAa/iE,EAAIA,IAAKod,EAAOs3B,MAAMt0B,YAAa3qB,QAGnG,IAAI2nB,EAAO0hD,OAAS9+D,YAAeod,GAAO0hD,MAC/C,CACIx1E,KAAK80E,cAAe,CAGpB,IAAIzoE,GAAQqK,EAAI5O,QAAQuE,KACxBrM,MAAKoM,WAAWsK,EAAI5O,SACpB9H,KAAKkzB,SAASxc,EAAI5O,QAAQqE,MAAMmvB,SAChC5kB,EAAI++D,eAAe70C,IAAI5gC,KAAK01E,YAAa11E,MACzCA,KAAK8H,QAAQuE,MAAQA,MAEpB,IAAIqK,YAAe5W,MAAKyL,QAEzBvL,KAAKoM,WAAWsK,OAGpB,CACI,GAAIgjE,GAAM7wC,EAAMzU,SAAS1d,GAAK,EAE9B1W,MAAK0W,IAAMgjE,EAAIhjE,IACf1W,KAAKoM,WAAW,GAAItM,MAAKyL,QAAQmuE,EAAIC,OAErCzmD,GAAYlzB,KAAKwzE,WAAWgG,cAAcE,EAAIE,UAAWztE,GAGzD+mB,IAEAlzB,KAAKo1E,OAASthD,EAAO9wB,UAAUs4B,MAAMt7B,KAAK8H,QAAQqE,QAGjD07C,IAED7nD,KAAK8H,QAAQkE,YAAYxF,UAAY,IAa7C0sB,SAAU,SAAU/mB,GAEhBnM,KAAKo1E,OAASjpE,EAEdnM,KAAK8H,QAAQqE,MAAMzG,EAAIyG,EAAMzG,EAC7B1F,KAAK8H,QAAQqE,MAAMxG,EAAIwG,EAAMxG,EAC7B3F,KAAK8H,QAAQqE,MAAMtF,MAAQsF,EAAMtF,MACjC7G,KAAK8H,QAAQqE,MAAMrF,OAASqF,EAAMrF,OAElC9G,KAAK8H,QAAQoF,KAAKxH,EAAIyG,EAAMzG,EAC5B1F,KAAK8H,QAAQoF,KAAKvH,EAAIwG,EAAMxG,EAC5B3F,KAAK8H,QAAQoF,KAAKrG,MAAQsF,EAAMtF,MAChC7G,KAAK8H,QAAQoF,KAAKpG,OAASqF,EAAMrF,OAE7BqF,EAAM0tE,SAEF75E,KAAK8H,QAAQ8F,MAEb5N,KAAK8H,QAAQ8F,KAAKlI,EAAIyG,EAAM2tE,kBAC5B95E,KAAK8H,QAAQ8F,KAAKjI,EAAIwG,EAAM4tE,kBAC5B/5E,KAAK8H,QAAQ8F,KAAK/G,MAAQsF,EAAM6tE,YAChCh6E,KAAK8H,QAAQ8F,KAAK9G,OAASqF,EAAM8tE,aAIjCj6E,KAAK8H,QAAQ8F,MAASlI,EAAGyG,EAAM2tE,kBAAmBn0E,EAAGwG,EAAM4tE,kBAAmBlzE,MAAOsF,EAAM6tE,YAAalzE,OAAQqF,EAAM8tE,aAG1Hj6E,KAAK8H,QAAQjB,MAAQsF,EAAM6tE,YAC3Bh6E,KAAK8H,QAAQhB,OAASqF,EAAM8tE,YAC5Bj6E,KAAK8H,QAAQqE,MAAMtF,MAAQsF,EAAM6tE,YACjCh6E,KAAK8H,QAAQqE,MAAMrF,OAASqF,EAAM8tE,cAE5B9tE,EAAM0tE,SAAW75E,KAAK8H,QAAQ8F,OAEpC5N,KAAK8H,QAAQ8F,KAAO,MAGpB5N,KAAKg1E,UAELh1E,KAAKk1E,aAGTl1E,KAAK8H,QAAQoG,gBAAiB,EAE9BlO,KAAK8H,QAAQurB,aAETrzB,KAAKmqB,gBAELnqB,KAAKk6E,gBAAiB,IAgB9BxE,YAAa,SAAUtzE,EAAQyE,EAAOC,GAElC9G,KAAK8H,QAAQqE,MAAMpE,OAAOlB,EAAOC,GACjC9G,KAAK8H,QAAQorB,SAASlzB,KAAK8H,QAAQqE,QASvCgpE,WAAY,WAEJn1E,KAAKo1E,QAELp1E,KAAKkzB,SAASlzB,KAAKo1E,SAkB3BjpE,OAEIrI,IAAK,WACD,MAAO9D,MAAKwzE,WAAWrnE,OAG3BnI,IAAK,SAAUC,GACXjE,KAAKwzE,WAAWrnE,MAAQlI,IAkBhCk2E,WAEIr2E,IAAK,WACD,MAAO9D,MAAKwzE,WAAW2G,WAG3Bn2E,IAAK,SAAUC,GACXjE,KAAKwzE,WAAW2G,UAAYl2E,KAkBxC6vB,EAAOk/C,UAAUoH,QAAU,aAE3BtmD,EAAOk/C,UAAUoH,QAAQ/2E,WAerBg3E,QAAS,SAAU91D,GAEf,MAAOuP,GAAO9wB,UAAUu6B,WAAWv9B,KAAKgG,YAAaue,EAAcve,eAkB3E8tB,EAAOk/C,UAAUoB,YAAc,aAQ/BtgD,EAAOk/C,UAAUoB,YAAY9tE,UAAY,WAErC,MAAItG,MAAK00E,OAAS10E,KAAKiyC,QAEnBjyC,KAAK8E,MAAMy3B,MAAMv8B,KAAKoC,OAAOX,SAASiE,EAAI1F,KAAKyB,SAASiE,EAAG1F,KAAKoC,OAAOX,SAASkE,EAAI3F,KAAKyB,SAASkE,GAClG3F,KAAKuC,eAAe4C,GAAKnF,KAAK8E,MAAMY,EACpC1F,KAAKuC,eAAe6C,GAAKpF,KAAK8E,MAAMa,EAEpC3F,KAAKk0E,iBAAiBlwE,IAAIhE,KAAK8E,MAAMY,EAAG1F,KAAK8E,MAAMa,GACnD3F,KAAKy0E,iBAAmBz0E,KAAK+B,SAEzB/B,KAAKk2C,MAELl2C,KAAKk2C,KAAK5vC,YAGdtG,KAAK00E,OAAQ,GAEN,IAGX10E,KAAKk0E,iBAAiBlwE,IAAIhE,KAAK8E,MAAMY,EAAG1F,KAAK8E,MAAMa,GACnD3F,KAAKy0E,iBAAmBz0E,KAAK+B,SAExB/B,KAAK20E,SAAY30E,KAAKoC,OAAO6vC,QAM3B,GAJHjyC,KAAKk5C,cAAgB,IACd,KAafplB,EAAOk/C,UAAUoB,YAAYriC,WAAa,WAElC/xC,KAAKiyC,QAAUjyC,KAAKk2C,MAEpBl2C,KAAKk2C,KAAKnE,cAKlBje,EAAOk/C,UAAUoB,YAAY/wE,WAqBzB6yC,KAAM,KAONxwC,GAEI5B,IAAK,WAED,MAAO9D,MAAKyB,SAASiE,GAIzB1B,IAAK,SAAUC,GAEXjE,KAAKyB,SAASiE,EAAIzB,EAEdjE,KAAKk2C,OAASl2C,KAAKk2C,KAAKtgC,QAExB5V,KAAKk2C,KAAKokC,QAAS,KAY/B30E,GAEI7B,IAAK,WAED,MAAO9D,MAAKyB,SAASkE,GAIzB3B,IAAK,SAAUC,GAEXjE,KAAKyB,SAASkE,EAAI1B,EAEdjE,KAAKk2C,OAASl2C,KAAKk2C,KAAKtgC,QAExB5V,KAAKk2C,KAAKokC,QAAS,MAoBnCxmD,EAAOk/C,UAAUuH,MAAQ,aAkBzBzmD,EAAOk/C,UAAUuH,MAAMl3E,UAAUoZ,MAAQ,SAAU/W,EAAGC,EAAGsyE,GA+BrD,MA7BexuE,UAAXwuE,IAAwBA,EAAS,GAErCj4E,KAAK8E,MAAMd,IAAI0B,EAAGC,GAClB3F,KAAKyB,SAASuC,IAAI0B,EAAGC,GAErB3F,KAAK00E,OAAQ,EACb10E,KAAKiyC,QAAS,EACdjyC,KAAKiC,SAAU,EACfjC,KAAKmC,YAAa,EAEdnC,KAAKi0E,WAAWwE,UAEhBz4E,KAAK04E,mBAAoB,GAGzB14E,KAAKi0E,WAAW8E,WAEhB/4E,KAAK+0C,OAAQ,EACb/0C,KAAKi4E,OAASA,GAGdj4E,KAAKi0E,WAAWG,aAEZp0E,KAAKk2C,MAELl2C,KAAKk2C,KAAKz5B,MAAM/W,EAAGC,GAAG,GAAO,GAI9B3F,MAeX8zB,EAAOk/C,UAAUwH,YAAc,aAE/B1mD,EAAOk/C,UAAUwH,YAAYn3E,WAMzBzB,kBAAmB5B,KAAKy6E,eAMxB54E,yBAA0B7B,KAU1B06E,SAAU,KAUVC,SAAU,KASVF,eAAgB,SAAUn1E,GAElBtF,KAAK06E,WAEDp1E,EAAGP,EAAI/E,KAAK06E,SAASh1E,IAErBJ,EAAGP,EAAI/E,KAAK06E,SAASh1E,GAGrBJ,EAAGJ,EAAIlF,KAAK06E,SAAS/0E,IAErBL,EAAGJ,EAAIlF,KAAK06E,SAAS/0E,IAIzB3F,KAAK26E,WAEDr1E,EAAGP,EAAI/E,KAAK26E,SAASj1E,IAErBJ,EAAGP,EAAI/E,KAAK26E,SAASj1E,GAGrBJ,EAAGJ,EAAIlF,KAAK26E,SAASh1E,IAErBL,EAAGJ,EAAIlF,KAAK26E,SAASh1E,KA+BjCi1E,eAAgB,SAAUvwE,EAAME,EAAMC,EAAMC,GAE3BhB,SAATc,EAGAA,EAAOC,EAAOC,EAAOJ,EAEPZ,SAATe,IAGLA,EAAOC,EAAOF,EACdA,EAAOF,GAGE,OAATA,EAEArK,KAAK06E,SAAW,KAIZ16E,KAAK06E,SAEL16E,KAAK06E,SAAS12E,IAAIqG,EAAME,GAIxBvK,KAAK06E,SAAW,GAAI5mD,GAAOpyB,MAAM2I,EAAME,GAIlC,OAATC,EAEAxK,KAAK26E,SAAW,KAIZ36E,KAAK26E,SAEL36E,KAAK26E,SAAS32E,IAAIwG,EAAMC,GAIxBzK,KAAK26E,SAAW,GAAI7mD,GAAOpyB,MAAM8I,EAAMC,KAkBvDqpB,EAAOk/C,UAAU6H,SAAW,aAE5B/mD,EAAOk/C,UAAU6H,SAASx3E,WAWtBwkD,UAEI/jD,IAAK,WAED,OAAQ9D,KAAK8H,QAAQkE,YAAYxF,WAIrCxC,IAAK,SAAUC,GAEPA,EAEIjE,KAAK8H,UAEL9H,KAAK8H,QAAQkE,YAAYxF,UAAY,GAKrCxG,KAAK8H,UAEL9H,KAAK8H,QAAQkE,YAAYxF,UAAY,MAyBzDstB,EAAOo3B,kBAAoB,SAAUtmD,GAMjC5E,KAAK4E,KAAOA,EAMZ5E,KAAK8E,MAAQ9E,KAAK4E,KAAKE,OAI3BgvB,EAAOo3B,kBAAkB7nD,WASrBy3E,SAAU,SAAUC,GAEhB,MAAO/6E,MAAK8E,MAAM87B,IAAIm6C,IAoB1BtoD,MAAO,SAAU/sB,EAAGC,EAAG+Q,EAAKvK,EAAO2uC,GAI/B,MAFcrxC,UAAVqxC,IAAuBA,EAAQ96C,KAAK8E,OAEjCg2C,EAAMla,IAAI,GAAI9M,GAAOljB,MAAM5Q,KAAK4E,KAAMc,EAAGC,EAAG+Q,EAAKvK,KAmB5Dwd,OAAQ,SAAUjkB,EAAGC,EAAG+Q,EAAKvK,EAAO2uC,GAIhC,MAFcrxC,UAAVqxC,IAAuBA,EAAQ96C,KAAK8E,OAEjCg2C,EAAM1yC,OAAO1C,EAAGC,EAAG+Q,EAAKvK,IAanC6uE,MAAO,SAAUD,GAEb,MAAO/6E,MAAK4E,KAAKukC,OAAO/gC,OAAO2yE,IAenCjgC,MAAO,SAAU14C,EAAQ+4B,EAAMsZ,EAAYC,EAAYC,GAEnD,MAAO,IAAI7gB,GAAO0gB,MAAMx0C,KAAK4E,KAAMxC,EAAQ+4B,EAAMsZ,EAAYC,EAAYC,IAiB7EsmC,aAAc,SAAUtmC,EAAiBvyC,EAAQ+4B,EAAMsZ,GAEnD,MAAO,IAAI3gB,GAAO0gB,MAAMx0C,KAAK4E,KAAMxC,EAAQ+4B,EAAMsZ,GAAY,EAAME,IAevE/pC,YAAa,SAAUxI,EAAQ+4B,EAAMsZ,GAMjC,MAJehrC,UAAXrH,IAAwBA,EAAS,MACxBqH,SAAT0xB,IAAsBA,EAAO,SACd1xB,SAAfgrC,IAA4BA,GAAa,GAEtC,GAAI3gB,GAAO/kB,YAAY/O,KAAK4E,KAAMxC,EAAQ+4B,EAAMsZ,IAc3DymC,MAAO,SAAUxkE,EAAKquB,EAAQuuC,EAAM/O,GAEhC,MAAOvkE,MAAK4E,KAAKqkC,MAAMrI,IAAIlqB,EAAKquB,EAAQuuC,EAAM/O,IAclDt7B,MAAO,SAAUvyB,EAAKquB,EAAQuuC,EAAM/O,GAEhC,MAAOvkE,MAAK4E,KAAKqkC,MAAMrI,IAAIlqB,EAAKquB,EAAQuuC,EAAM/O,IAWlD4W,YAAa,SAAUzkE,GAEnB,MAAO1W,MAAK4E,KAAKqkC,MAAMmyC,UAAU1kE,IAiBrC2kE,WAAY,SAAU31E,EAAGC,EAAGkB,EAAOC,EAAQ4P,EAAKvK,EAAO2uC,GAInD,MAFcrxC,UAAVqxC,IAAuBA,EAAQ96C,KAAK8E,OAEjCg2C,EAAMla,IAAI,GAAI9M,GAAOq+B,WAAWnyD,KAAK4E,KAAMc,EAAGC,EAAGkB,EAAOC,EAAQ4P,EAAKvK,KAkBhFmvE,KAAM,SAAU51E,EAAGC,EAAG+Q,EAAKvK,EAAO0Q,EAAQi+B,GAItC,MAFcrxC,UAAVqxC,IAAuBA,EAAQ96C,KAAK8E,OAEjCg2C,EAAMla,IAAI,GAAI9M,GAAOynD,KAAKv7E,KAAK4E,KAAMc,EAAGC,EAAG+Q,EAAKvK,EAAO0Q,KAelE+gC,KAAM,SAAUl4C,EAAGC,EAAGi4C,EAAMn5B,EAAOq2B,GAI/B,MAFcrxC,UAAVqxC,IAAuBA,EAAQ96C,KAAK8E,OAEjCg2C,EAAMla,IAAI,GAAI9M,GAAO0nD,KAAKx7E,KAAK4E,KAAMc,EAAGC,EAAGi4C,EAAMn5B,KAoB5DkuC,OAAQ,SAAUjtD,EAAGC,EAAG+Q,EAAKiiC,EAAU3M,EAAiByvC,EAAWC,EAAUC,EAAWC,EAAS9gC,GAI7F,MAFcrxC,UAAVqxC,IAAuBA,EAAQ96C,KAAK8E,OAEjCg2C,EAAMla,IAAI,GAAI9M,GAAO+nD,OAAO77E,KAAK4E,KAAMc,EAAGC,EAAG+Q,EAAKiiC,EAAU3M,EAAiByvC,EAAWC,EAAUC,EAAWC,KAaxHlhE,SAAU,SAAUhV,EAAGC,EAAGm1C,GAItB,MAFcrxC,UAAVqxC,IAAuBA,EAAQ96C,KAAK8E,OAEjCg2C,EAAMla,IAAI,GAAI9M,GAAOnX,SAAS3c,KAAK4E,KAAMc,EAAGC,KAiBvDm2E,QAAS,SAAUp2E,EAAGC,EAAGo2E,GAErB,MAAO/7E,MAAK4E,KAAKwkC,UAAUxI,IAAI,GAAI9M,GAAO43B,UAAUswB,OAAOC,QAAQj8E,KAAK4E,KAAMc,EAAGC,EAAGo2E,KA0BxFG,UAAW,SAAUC,EAAMC,EAAgBC,EAAiBC,EAAOC,EAAaC,EAAUC,EAAUC,EAASC,GAEzG,MAAO,IAAI7oD,GAAO8oD,UAAU58E,KAAK4E,KAAMu3E,EAAMC,EAAgBC,EAAiBC,EAAOC,EAAaC,EAAUC,EAAUC,EAASC,IAgCnIE,WAAY,SAAUn3E,EAAGC,EAAGw2E,EAAMv+B,EAAMj1B,EAAMmyB,GAI1C,MAFcrxC,UAAVqxC,IAAuBA,EAAQ96C,KAAK8E,OAEjCg2C,EAAMla,IAAI,GAAI9M,GAAO6hD,WAAW31E,KAAK4E,KAAMc,EAAGC,EAAGw2E,EAAMv+B,EAAMj1B,KAqBxEm0D,QAAS,SAAUpmE,EAAKqmE,EAAWC,EAAYn2E,EAAOC,GAElD,MAAO,IAAIgtB,GAAOmpD,QAAQj9E,KAAK4E,KAAM8R,EAAKqmE,EAAWC,EAAYn2E,EAAOC,IAc5EH,cAAe,SAAUE,EAAOC,EAAQ4P,EAAKwmE,IAE7BzzE,SAARiN,GAA6B,KAARA,KAAcA,EAAM1W,KAAK4E,KAAK0kC,IAAIwU,QACxCr0C,SAAfyzE,IAA4BA,GAAa,EAE7C,IAAIp1E,GAAU,GAAIgsB,GAAOltB,cAAc5G,KAAK4E,KAAMiC,EAAOC,EAAQ4P,EAOjE,OALIwmE,IAEAl9E,KAAK4E,KAAKikC,MAAMs0C,iBAAiBzmE,EAAK5O,GAGnCA,GAcXs1E,MAAO,SAAU1mE,EAAK2mE,GAElB,MAAO,IAAIvpD,GAAO0hD,MAAMx1E,KAAK4E,KAAM8R,EAAK2mE,IAgB5Cv2C,WAAY,SAAUjgC,EAAOC,EAAQ4P,EAAKwmE,GAEnBzzE,SAAfyzE,IAA4BA,GAAa,IACjCzzE,SAARiN,GAA6B,KAARA,KAAcA,EAAM1W,KAAK4E,KAAK0kC,IAAIwU,OAE3D,IAAIh2C,GAAU,GAAIgsB,GAAOwlD,WAAWt5E,KAAK4E,KAAM8R,EAAK7P,EAAOC,EAO3D,OALIo2E,IAEAl9E,KAAK4E,KAAKikC,MAAMy0C,cAAc5mE,EAAK5O,GAGhCA,GAYXokB,OAAQ,SAAUA,GAEd,GAAImM,GAAO53B,MAAM4C,UAAUuF,OAAO9C,KAAKyyB,UAAW,GAE9CrM,EAAS,GAAI4H,GAAOic,OAAO7jB,GAAQlsB,KAAK4E,KAI5C,OAFAsnB,GAAOpW,KAAK3O,MAAM+kB,EAAQmM,GAEnBnM,GAcX4lB,OAAQ,SAAUA,GAEd,MAAO9xC,MAAK4E,KAAK+sC,QAAQ/Q,IAAIkR,KAMrChe,EAAOo3B,kBAAkB7nD,UAAUC,YAAcwwB,EAAOo3B,kBAgBxDp3B,EAAOq3B,kBAAoB,SAAUvmD,GAMjC5E,KAAK4E,KAAOA,EAMZ5E,KAAK8E,MAAQ9E,KAAK4E,KAAKE,OAI3BgvB,EAAOq3B,kBAAkB9nD,WAerBovB,MAAO,SAAU/sB,EAAGC,EAAG+Q,EAAKvK,GAExB,MAAO,IAAI2nB,GAAOljB,MAAM5Q,KAAK4E,KAAMc,EAAGC,EAAG+Q,EAAKvK,IAclDwd,OAAQ,SAAUjkB,EAAGC,EAAG+Q,EAAKvK,GAEzB,MAAO,IAAI2nB,GAAOnsB,OAAO3H,KAAK4E,KAAMc,EAAGC,EAAG+Q,EAAKvK,IAanD6uE,MAAO,SAAU5hD,GAEb,MAAO,IAAItF,GAAOypD,MAAMnkD,EAAKp5B,KAAK4E,KAAM5E,KAAK4E,KAAKukC,SAetD2R,MAAO,SAAU14C,EAAQ+4B,EAAMsZ,EAAYC,EAAYC,GAEnD,MAAO,IAAI7gB,GAAO0gB,MAAMx0C,KAAK4E,KAAMxC,EAAQ+4B,EAAMsZ,EAAYC,EAAYC,IAa7E/pC,YAAa,SAAUxI,EAAQ+4B,EAAMsZ,GAKjC,MAHahrC,UAAT0xB,IAAsBA,EAAO,SACd1xB,SAAfgrC,IAA4BA,GAAa,GAEtC,GAAI3gB,GAAO/kB,YAAY/O,KAAK4E,KAAMxC,EAAQ+4B,EAAMsZ,IAc3DymC,MAAO,SAAUxkE,EAAKquB,EAAQuuC,EAAM/O,GAEhC,MAAOvkE,MAAK4E,KAAKqkC,MAAMrI,IAAIlqB,EAAKquB,EAAQuuC,EAAM/O,IAWlD4W,YAAa,SAAUzkE,GAEnB,MAAO1W,MAAK4E,KAAKqkC,MAAMmyC,UAAU1kE,IAcrCuyB,MAAO,SAAUvyB,EAAKquB,EAAQuuC,EAAM/O,GAEhC,MAAOvkE,MAAK4E,KAAKqkC,MAAMrI,IAAIlqB,EAAKquB,EAAQuuC,EAAM/O,IAgBlD8W,WAAY,SAAU31E,EAAGC,EAAGkB,EAAOC,EAAQ4P,EAAKvK,GAE5C,MAAO,IAAI2nB,GAAOq+B,WAAWnyD,KAAK4E,KAAMc,EAAGC,EAAGkB,EAAOC,EAAQ4P,EAAKvK,IAgBtEmvE,KAAM,SAAU51E,EAAGC,EAAG+Q,EAAKvK,EAAO0Q,GAE9B,MAAO,IAAIiX,GAAOynD,KAAKv7E,KAAK4E,KAAMc,EAAGC,EAAG+Q,EAAKvK,EAAO0Q,IAcxD+gC,KAAM,SAAUl4C,EAAGC,EAAGi4C,EAAMn5B,GAExB,MAAO,IAAIqP,GAAO0nD,KAAKx7E,KAAK4E,KAAMc,EAAGC,EAAGi4C,EAAMn5B,IAmBlDkuC,OAAQ,SAAUjtD,EAAGC,EAAG+Q,EAAKiiC,EAAU3M,EAAiByvC,EAAWC,EAAUC,EAAWC,GAEpF,MAAO,IAAI9nD,GAAO+nD,OAAO77E,KAAK4E,KAAMc,EAAGC,EAAG+Q,EAAKiiC,EAAU3M,EAAiByvC,EAAWC,EAAUC,EAAWC,IAY9GlhE,SAAU,SAAUhV,EAAGC,GAEnB,MAAO,IAAImuB,GAAOnX,SAAS3c,KAAK4E,KAAMc,EAAGC,IAiB7Cm2E,QAAS,SAAUp2E,EAAGC,EAAGo2E,GAErB,MAAO,IAAIjoD,GAAO43B,UAAUswB,OAAOC,QAAQj8E,KAAK4E,KAAMc,EAAGC,EAAGo2E,IA0BhEG,UAAW,SAAUC,EAAMC,EAAgBC,EAAiBC,EAAOC,EAAaC,EAAUC,EAAUC,EAASC,GAEzG,MAAO,IAAI7oD,GAAO8oD,UAAU58E,KAAK4E,KAAMu3E,EAAMC,EAAgBC,EAAiBC,EAAOC,EAAaC,EAAUC,EAAUC,EAASC,IAgCnIE,WAAY,SAAUn3E,EAAGC,EAAGw2E,EAAMv+B,EAAMj1B,EAAM60D,GAE1C,MAAO,IAAI1pD,GAAO6hD,WAAW31E,KAAK4E,KAAMc,EAAGC,EAAGw2E,EAAMv+B,EAAMj1B,EAAM60D,IAoBpEV,QAAS,SAAUpmE,EAAKqmE,EAAWC,EAAYn2E,EAAOC,GAElD,MAAO,IAAIgtB,GAAOmpD,QAAQj9E,KAAK4E,KAAM8R,EAAKqmE,EAAWC,EAAYn2E,EAAOC,IAc5EH,cAAe,SAAUE,EAAOC,EAAQ4P,EAAKwmE,IAE7BzzE,SAARiN,GAA6B,KAARA,KAAcA,EAAM1W,KAAK4E,KAAK0kC,IAAIwU,QACxCr0C,SAAfyzE,IAA4BA,GAAa,EAE7C,IAAIp1E,GAAU,GAAIgsB,GAAOltB,cAAc5G,KAAK4E,KAAMiC,EAAOC,EAAQ4P,EAOjE,OALIwmE,IAEAl9E,KAAK4E,KAAKikC,MAAMs0C,iBAAiBzmE,EAAK5O,GAGnCA,GAgBXg/B,WAAY,SAAUjgC,EAAOC,EAAQ4P,EAAKwmE,GAEnBzzE,SAAfyzE,IAA4BA,GAAa,IACjCzzE,SAARiN,GAA6B,KAARA,KAAcA,EAAM1W,KAAK4E,KAAK0kC,IAAIwU,OAE3D,IAAIh2C,GAAU,GAAIgsB,GAAOwlD,WAAWt5E,KAAK4E,KAAM8R,EAAK7P,EAAOC,EAO3D,OALIo2E,IAEAl9E,KAAK4E,KAAKikC,MAAMy0C,cAAc5mE,EAAK5O,GAGhCA,GAYXokB,OAAQ,SAAUA,GAEd,GAAImM,GAAO53B,MAAM4C,UAAUuF,OAAO9C,KAAKyyB,UAAW,GAE9CrM,EAAS,GAAI4H,GAAOic,OAAO7jB,GAAQlsB,KAAK4E,KAI5C,OAFAsnB,GAAOpW,KAAK3O,MAAM+kB,EAAQmM,GAEnBnM,IAMf4H,EAAOq3B,kBAAkB9nD,UAAUC,YAAcwwB,EAAOq3B,kBA6CxDr3B,EAAOnsB,OAAS,SAAU/C,EAAMc,EAAGC,EAAG+Q,EAAKvK,GAEvCzG,EAAIA,GAAK,EACTC,EAAIA,GAAK,EACT+Q,EAAMA,GAAO,KACbvK,EAAQA,GAAS,KAMjBnM,KAAK+W,KAAO+c,EAAOmC,OAMnBj2B,KAAK80C,YAAchhB,EAAOmC,OAE1Bn2B,KAAK6H,OAAO7B,KAAK9F,KAAMF,KAAK6O,aAAwB,WAEpDmlB,EAAOk/C,UAAUe,KAAKj+D,KAAKhQ,KAAK9F,KAAM4E,EAAMc,EAAGC,EAAG+Q,EAAKvK,IAI3D2nB,EAAOnsB,OAAOtE,UAAYO,OAAOwE,OAAOtI,KAAK6H,OAAOtE,WACpDywB,EAAOnsB,OAAOtE,UAAUC,YAAcwwB,EAAOnsB,OAE7CmsB,EAAOk/C,UAAUe,KAAKC,QAAQluE,KAAKguB,EAAOnsB,OAAOtE,WAC7C,QACA,YACA,WACA,SACA,aACA,OACA,QACA,UACA,gBACA,SACA,WACA,eACA,UACA,WACA,cACA,UACA,cACA,QACA,cACA,aAGJywB,EAAOnsB,OAAOtE,UAAUo6E,iBAAmB3pD,EAAOk/C,UAAUoB,YAAY9tE,UACxEwtB,EAAOnsB,OAAOtE,UAAUq6E,kBAAoB5pD,EAAOk/C,UAAU+F,SAASzyE,UACtEwtB,EAAOnsB,OAAOtE,UAAUs6E,iBAAmB7pD,EAAOk/C,UAAUyF,QAAQnyE,UACpEwtB,EAAOnsB,OAAOtE,UAAUu6E,cAAgB9pD,EAAOk/C,UAAUe,KAAKztE,UAS9DwtB,EAAOnsB,OAAOtE,UAAUiD,UAAY,WAEhC,MAAKtG,MAAKy9E,oBAAuBz9E,KAAK09E,qBAAwB19E,KAAK29E,mBAK5D39E,KAAK49E,iBAHD,GAyCf9pD,EAAOljB,MAAQ,SAAUhM,EAAMc,EAAGC,EAAG+Q,EAAKvK,GAEtCzG,EAAIA,GAAK,EACTC,EAAIA,GAAK,EACT+Q,EAAMA,GAAO,KACbvK,EAAQA,GAAS,KAMjBnM,KAAK+W,KAAO+c,EAAOqC,MAEnBr2B,KAAK6H,OAAO7B,KAAK9F,KAAMF,KAAK6O,aAAwB,WAEpDmlB,EAAOk/C,UAAUe,KAAKj+D,KAAKhQ,KAAK9F,KAAM4E,EAAMc,EAAGC,EAAG+Q,EAAKvK,IAI3D2nB,EAAOljB,MAAMvN,UAAYO,OAAOwE,OAAOtI,KAAK6H,OAAOtE,WACnDywB,EAAOljB,MAAMvN,UAAUC,YAAcwwB,EAAOljB,MAE5CkjB,EAAOk/C,UAAUe,KAAKC,QAAQluE,KAAKguB,EAAOljB,MAAMvN,WAC5C,QACA,YACA,WACA,SACA,aACA,OACA,UACA,gBACA,eACA,WACA,cACA,UACA,QACA,aAGJywB,EAAOljB,MAAMvN,UAAUs6E,iBAAmB7pD,EAAOk/C,UAAUyF,QAAQnyE,UACnEwtB,EAAOljB,MAAMvN,UAAUu6E,cAAgB9pD,EAAOk/C,UAAUe,KAAKztE,UAQ7DwtB,EAAOljB,MAAMvN,UAAUiD,UAAY,WAE/B,MAAKtG,MAAK29E,mBAKH39E,KAAK49E,iBAHD,GAiEf9pD,EAAOq+B,WAAa,SAAUvtD,EAAMc,EAAGC,EAAGkB,EAAOC,EAAQ4P,EAAKvK,GAE1DzG,EAAIA,GAAK,EACTC,EAAIA,GAAK,EACTkB,EAAQA,GAAS,IACjBC,EAASA,GAAU,IACnB4P,EAAMA,GAAO,KACbvK,EAAQA,GAAS,KAMjBnM,KAAK+W,KAAO+c,EAAOwC,WAMnBt2B,KAAK80C,YAAchhB,EAAOmC,OAM1Bj2B,KAAK69E,QAAU,GAAI/pD,GAAOpyB,KAE1B,IAAIo8E,GAAMl5E,EAAKikC,MAAMzU,SAAS,aAAa,EAE3Ct0B,MAAKi+E,aAAaj4E,KAAK9F,KAAM,GAAIF,MAAKyL,QAAQuyE,EAAInE,MAAO9yE,EAAOC,GAEhEgtB,EAAOk/C,UAAUe,KAAKj+D,KAAKhQ,KAAK9F,KAAM4E,EAAMc,EAAGC,EAAG+Q,EAAKvK,IAI3D2nB,EAAOq+B,WAAW9uD,UAAYO,OAAOwE,OAAOtI,KAAKi+E,aAAa16E,WAC9DywB,EAAOq+B,WAAW9uD,UAAUC,YAAcwwB,EAAOq+B,WAEjDr+B,EAAOk/C,UAAUe,KAAKC,QAAQluE,KAAKguB,EAAOq+B,WAAW9uD,WACjD,QACA,YACA,WACA,SACA,aACA,UACA,gBACA,SACA,WACA,eACA,UACA,WACA,cACA,UACA,cACA,QACA,aAGJywB,EAAOq+B,WAAW9uD,UAAUo6E,iBAAmB3pD,EAAOk/C,UAAUoB,YAAY9tE,UAC5EwtB,EAAOq+B,WAAW9uD,UAAUq6E,kBAAoB5pD,EAAOk/C,UAAU+F,SAASzyE,UAC1EwtB,EAAOq+B,WAAW9uD,UAAUs6E,iBAAmB7pD,EAAOk/C,UAAUyF,QAAQnyE,UACxEwtB,EAAOq+B,WAAW9uD,UAAUu6E,cAAgB9pD,EAAOk/C,UAAUe,KAAKztE,UAQlEwtB,EAAOq+B,WAAW9uD,UAAUiD,UAAY,WAYpC,MAVuB,KAAnBtG,KAAK69E,QAAQn4E,IAEb1F,KAAKsqB,aAAa5kB,GAAK1F,KAAK69E,QAAQn4E,EAAI1F,KAAK4E,KAAKskC,KAAK80C,gBAGpC,IAAnBh+E,KAAK69E,QAAQl4E,IAEb3F,KAAKsqB,aAAa3kB,GAAK3F,KAAK69E,QAAQl4E,EAAI3F,KAAK4E,KAAKskC,KAAK80C,gBAGtDh+E,KAAKy9E,oBAAuBz9E,KAAK09E,qBAAwB19E,KAAK29E,mBAK5D39E,KAAK49E,iBAHD,GAkBf9pD,EAAOq+B,WAAW9uD,UAAU46E,WAAa,SAASv4E,EAAGC,GAEjD3F,KAAK69E,QAAQ75E,IAAI0B,EAAGC,IAUxBmuB,EAAOq+B,WAAW9uD,UAAU66E,WAAa,WAErCl+E,KAAK69E,QAAQ75E,IAAI,EAAG,IAYxB8vB,EAAOq+B,WAAW9uD,UAAUE,QAAU,SAASy3C,GAE3ClnB,EAAOk/C,UAAUsC,QAAQjyE,UAAUE,QAAQuC,KAAK9F,KAAMg7C,GAEtDl7C,KAAKi+E,aAAa16E,UAAUE,QAAQuC,KAAK9F,OAe7C8zB,EAAOq+B,WAAW9uD,UAAUoZ,MAAQ,SAAS/W,EAAGC,GAO5C,MALAmuB,GAAOk/C,UAAUuH,MAAMl3E,UAAUoZ,MAAM3W,KAAK9F,KAAM0F,EAAGC,GAErD3F,KAAKsqB,aAAa5kB,EAAI,EACtB1F,KAAKsqB,aAAa3kB,EAAI,EAEf3F,MA4CX8zB,EAAOynD,KAAO,SAAU32E,EAAMc,EAAGC,EAAG+Q,EAAKvK,EAAO0Q,GAE5C7c,KAAK6c,UACL7c,KAAK6c,OAASA,EACd7c,KAAKm+E,qBAAsB,EAC3Bn+E,KAAKo+E,yBAA2B,KAChC14E,EAAIA,GAAK,EACTC,EAAIA,GAAK,EACT+Q,EAAMA,GAAO,KACbvK,EAAQA,GAAS,KAMjBnM,KAAK+W,KAAO+c,EAAOuD,KAMnBr3B,KAAK69E,QAAU,GAAI/pD,GAAOpyB,MAE1B5B,KAAKy7E,KAAKz1E,KAAK9F,KAAMF,KAAK6O,aAAwB,UAAG3O,KAAK6c,QAE1DiX,EAAOk/C,UAAUe,KAAKj+D,KAAKhQ,KAAK9F,KAAM4E,EAAMc,EAAGC,EAAG+Q,EAAKvK,IAI3D2nB,EAAOynD,KAAKl4E,UAAYO,OAAOwE,OAAOtI,KAAKy7E,KAAKl4E,WAChDywB,EAAOynD,KAAKl4E,UAAUC,YAAcwwB,EAAOynD,KAE3CznD,EAAOk/C,UAAUe,KAAKC,QAAQluE,KAAKguB,EAAOynD,KAAKl4E,WAC3C,QACA,YACA,WACA,SACA,aACA,OACA,QACA,UACA,gBACA,eACA,UACA,WACA,cACA,UACA,cACA,QACA,cACA,aAGJywB,EAAOynD,KAAKl4E,UAAUo6E,iBAAmB3pD,EAAOk/C,UAAUoB,YAAY9tE,UACtEwtB,EAAOynD,KAAKl4E,UAAUq6E,kBAAoB5pD,EAAOk/C,UAAU+F,SAASzyE,UACpEwtB,EAAOynD,KAAKl4E,UAAUs6E,iBAAmB7pD,EAAOk/C,UAAUyF,QAAQnyE,UAClEwtB,EAAOynD,KAAKl4E,UAAUu6E,cAAgB9pD,EAAOk/C,UAAUe,KAAKztE,UAQ5DwtB,EAAOynD,KAAKl4E,UAAUiD,UAAY,WAY9B,MAVuB,KAAnBtG,KAAK69E,QAAQn4E,IAEb1F,KAAKsqB,aAAa5kB,GAAK1F,KAAK69E,QAAQn4E,EAAI1F,KAAK4E,KAAKskC,KAAK80C,gBAGpC,IAAnBh+E,KAAK69E,QAAQl4E,IAEb3F,KAAKsqB,aAAa3kB,GAAK3F,KAAK69E,QAAQl4E,EAAI3F,KAAK4E,KAAKskC,KAAK80C,gBAGtDh+E,KAAKy9E,oBAAuBz9E,KAAK09E,qBAAwB19E,KAAK29E,mBAK5D39E,KAAK49E,iBAHD,GAaf9pD,EAAOynD,KAAKl4E,UAAUijC,OAAS,WAEvBtmC,KAAKm+E,qBAELn+E,KAAKq+E,gBAAgBv4E,KAAK9F,OAgBlC8zB,EAAOynD,KAAKl4E,UAAUoZ,MAAQ,SAAS/W,EAAGC,GAOtC,MALAmuB,GAAOk/C,UAAUuH,MAAMl3E,UAAUoZ,MAAM3W,KAAK9F,KAAM0F,EAAGC,GAErD3F,KAAKsqB,aAAa5kB,EAAI,EACtB1F,KAAKsqB,aAAa3kB,EAAI,EAEf3F,MAUX4D,OAAOC,eAAeiwB,EAAOynD,KAAKl4E,UAAW,mBAEzCS,IAAK,WAED,MAAO9D,MAAKs+E,kBAIhBt6E,IAAK,SAAUC,GAEPA,GAA0B,kBAAVA,IAEhBjE,KAAKm+E,qBAAsB,EAC3Bn+E,KAAKs+E,iBAAmBr6E,IAIxBjE,KAAKm+E,qBAAsB,EAC3Bn+E,KAAKs+E,iBAAmB,SAapC16E,OAAOC,eAAeiwB,EAAOynD,KAAKl4E,UAAW,YAEzCS,IAAK,WAKD,IAAK,GAFD4E,GAAOgE,EAAIC,EAAIC,EAAIC,EAAIhG,EAAOC,EAAQ0qB,EADtC+sD,KAGK96E,EAAI,EAAGA,EAAIzD,KAAK6c,OAAOnZ,OAAQD,IAEpCiF,EAAY,EAAJjF,EAERiJ,EAAK1M,KAAK8oB,SAASpgB,GAAS1I,KAAK2B,MAAM+D,EACvCiH,EAAK3M,KAAK8oB,SAASpgB,EAAQ,GAAK1I,KAAK2B,MAAMgE,EAC3CiH,EAAK5M,KAAK8oB,SAASpgB,EAAQ,GAAK1I,KAAK2B,MAAM+D,EAC3CmH,EAAK7M,KAAK8oB,SAASpgB,EAAQ,GAAK1I,KAAK2B,MAAMgE,EAE3CkB,EAAQitB,EAAOnzB,KAAK69E,WAAW9xE,EAAIE,GACnC9F,EAASgtB,EAAOnzB,KAAK69E,WAAW7xE,EAAIE,GAEpCH,GAAM1M,KAAK8E,MAAMY,EACjBiH,GAAM3M,KAAK8E,MAAMa,EACjB6rB,EAAO,GAAIsC,GAAO9wB,UAAU0J,EAAIC,EAAI9F,EAAOC,GAC3Cy3E,EAASh6E,KAAKitB,EAGlB,OAAO+sD,MAuCfzqD,EAAO+nD,OAAS,SAAUj3E,EAAMc,EAAGC,EAAG+Q,EAAKiiC,EAAU3M,EAAiByvC,EAAWC,EAAUC,EAAWC,GAElGl2E,EAAIA,GAAK,EACTC,EAAIA,GAAK,EACT+Q,EAAMA,GAAO,KACbiiC,EAAWA,GAAY,KACvB3M,EAAkBA,GAAmBhsC,KAErC8zB,EAAOljB,MAAM9K,KAAK9F,KAAM4E,EAAMc,EAAGC,EAAG+Q,EAAKglE,GAOzC17E,KAAK+W,KAAO+c,EAAOoC,OAMnBl2B,KAAK80C,YAAchhB,EAAOmC,OAO1Bj2B,KAAKy+E,aAAe,KAOpBz+E,KAAK0+E,YAAc,KAOnB1+E,KAAK2+E,aAAe,KAOpB3+E,KAAK4+E,WAAa,KAOlB5+E,KAAK6+E,YAAc,KAOnB7+E,KAAK8+E,WAAa,KAOlB9+E,KAAK++E,YAAc,KAOnB/+E,KAAKg/E,UAAY,KAOjBh/E,KAAKi/E,kBAAoB,GAOzBj/E,KAAKk/E,iBAAmB,GAOxBl/E,KAAKm/E,kBAAoB,GAOzBn/E,KAAKo/E,gBAAkB,GAMvBp/E,KAAKq3E,YAAc,GAAIvjD,GAAO0W,OAM9BxqC,KAAKs3E,WAAa,GAAIxjD,GAAO0W,OAM7BxqC,KAAKu3E,YAAc,GAAIzjD,GAAO0W,OAM9BxqC,KAAKw3E,UAAY,GAAI1jD,GAAO0W,OAQ5BxqC,KAAKq/E,iBAAkB,EAOvBr/E,KAAKs/E,cAAe,EAOpBt/E,KAAKu/E,UAAW,EAEhBv/E,KAAKw4E,cAAe,EAEpBx4E,KAAK8oC,MAAM19B,MAAM,GAAG,GAEpBpL,KAAK8oC,MAAMm0B,eAAgB,EAE3Bj9D,KAAKw/E,UAAU/D,EAAWC,EAAUC,EAAWC,GAE9B,OAAbjjC,GAEA34C,KAAKw3E,UAAU52C,IAAI+X,EAAU3M,GAIjChsC,KAAKo2C,OAAOihC,YAAYz2C,IAAI5gC,KAAKy/E,mBAAoBz/E,MACrDA,KAAKo2C,OAAOkhC,WAAW12C,IAAI5gC,KAAK0/E,kBAAmB1/E,MACnDA,KAAKo2C,OAAOmhC,YAAY32C,IAAI5gC,KAAK2/E,mBAAoB3/E,MACrDA,KAAKo2C,OAAOohC,UAAU52C,IAAI5gC,KAAK4/E,iBAAkB5/E,MAEjDA,KAAKo2C,OAAO4gC,mBAAmBp2C,IAAI5gC,KAAK6/E,iBAAkB7/E,OAI9D8zB,EAAO+nD,OAAOx4E,UAAYO,OAAOwE,OAAO0rB,EAAOljB,MAAMvN,WACrDywB,EAAO+nD,OAAOx4E,UAAUC,YAAcwwB,EAAO+nD,MAG7C,IAAIiE,GAAa,OACbC,EAAY,MACZC,EAAa,OACbC,EAAW,IAOfnsD,GAAO+nD,OAAOx4E,UAAU68E,YAAc,WAElClgF,KAAKw/E,UAAU,KAAM,KAAM,KAAM,OAUrC1rD,EAAO+nD,OAAOx4E,UAAUw8E,iBAAmB,WAEvC7/E,KAAKw4E,cAAe,GAaxB1kD,EAAO+nD,OAAOx4E,UAAU88E,cAAgB,SAAUx0C,EAAOx/B,EAAOi0E,GAE5D,GAAIC,GAAW,MAAQ10C,EAAQ,OAEjB,QAAVx/B,GAEAnM,KAAKqgF,GAAYl0E,EAEbi0E,GAEApgF,KAAKsgF,iBAAiB30C,IAK1B3rC,KAAKqgF,GAAY,MAazBvsD,EAAO+nD,OAAOx4E,UAAUi9E,iBAAmB,SAAU30C,GAEjD,GAAI3rC,KAAKs/E,aAEL,OAAO,CAGX,IAAIe,GAAW,MAAQ10C,EAAQ,QAC3Bx/B,EAAQnM,KAAKqgF,EAEjB,OAAqB,gBAAVl0E,IAEPnM,KAAKm6E,UAAYhuE,GACV,GAEe,gBAAVA,IAEZnM,KAAKmM,MAAQA,GACN,IAIA,GAiBf2nB,EAAO+nD,OAAOx4E,UAAUm8E,UAAY,SAAU/D,EAAWC,EAAUC,EAAWC,GAE1E57E,KAAKmgF,cAAcL,EAAYrE,EAAWz7E,KAAK8oC,MAAMm3B,eACrDjgE,KAAKmgF,cAAcJ,EAAWrE,GAAW17E,KAAK8oC,MAAMm3B,eACpDjgE,KAAKmgF,cAAcH,EAAYrE,EAAW37E,KAAK8oC,MAAM+2B,eACrD7/D,KAAKmgF,cAAcF,EAAUrE,EAAS57E,KAAK8oC,MAAMg3B,cAarDhsC,EAAO+nD,OAAOx4E,UAAUk9E,cAAgB,SAAU50C,EAAO1C,EAAOu3C,GAE5D,GAAIC,GAAW,KAAO90C,EAAQ,QAC1B+0C,EAAY,KAAO/0C,EAAQ,aAE3B1C,aAAiBnV,GAAO6sD,OAAS13C,YAAiBnV,GAAO8sD,aAEzD5gF,KAAKygF,GAAYx3C,EACjBjpC,KAAK0gF,GAA+B,gBAAXF,GAAsBA,EAAS,KAIxDxgF,KAAKygF,GAAY,KACjBzgF,KAAK0gF,GAAa,KAa1B5sD,EAAO+nD,OAAOx4E,UAAUw9E,eAAiB,SAAUl1C,GAE/C,GAAI80C,GAAW,KAAO90C,EAAQ,QAC1B1C,EAAQjpC,KAAKygF,EAEjB,IAAIx3C,EACJ,CACI,GAAIy3C,GAAY,KAAO/0C,EAAQ,cAC3B60C,EAASxgF,KAAK0gF,EAGlB,OADAz3C,GAAMmqC,KAAKoN,IACJ,EAIP,OAAO,GAsBf1sD,EAAO+nD,OAAOx4E,UAAUy9E,UAAY,SAAUC,EAAWC,EAAYC,EAAWC,EAAYC,EAAUC,EAAWC,EAASC,GAEtHthF,KAAKugF,cAAcT,EAAYiB,EAAWC,GAC1ChhF,KAAKugF,cAAcR,EAAWoB,EAAUC,GACxCphF,KAAKugF,cAAcP,EAAYiB,EAAWC,GAC1ClhF,KAAKugF,cAAcN,EAAUoB,EAASC,IAY1CxtD,EAAO+nD,OAAOx4E,UAAUk+E,aAAe,SAAUt4C,EAAOu3C,GAEpDxgF,KAAKugF,cAAcT,EAAY72C,EAAOu3C,IAY1C1sD,EAAO+nD,OAAOx4E,UAAUm+E,YAAc,SAAUv4C,EAAOu3C,GAEnDxgF,KAAKugF,cAAcR,EAAW92C,EAAOu3C,IAYzC1sD,EAAO+nD,OAAOx4E,UAAUo+E,aAAe,SAAUx4C,EAAOu3C,GAEpDxgF,KAAKugF,cAAcP,EAAY/2C,EAAOu3C,IAY1C1sD,EAAO+nD,OAAOx4E,UAAUq+E,WAAa,SAAUz4C,EAAOu3C,GAElDxgF,KAAKugF,cAAcN,EAAUh3C,EAAOu3C,IAYxC1sD,EAAO+nD,OAAOx4E,UAAUo8E,mBAAqB,SAAU91D,EAAQqnB,GAGvDA,EAAQwmB,iBAKZx3D,KAAKsgF,iBAAiBR,KAElB9/E,KAAKq/E,iBAAoBruC,EAAQ8nB,WAKrC94D,KAAK6gF,eAAef,GAEhB9/E,KAAKq3E,aAELr3E,KAAKq3E,YAAY5qC,SAASzsC,KAAMgxC,MAaxCld,EAAO+nD,OAAOx4E,UAAUq8E,kBAAoB,SAAU/1D,EAAQqnB,GAE1DhxC,KAAKsgF,iBAAiBP,GAEtB//E,KAAK6gF,eAAed,GAEhB//E,KAAKs3E,YAELt3E,KAAKs3E,WAAW7qC,SAASzsC,KAAMgxC,IAYvCld,EAAO+nD,OAAOx4E,UAAUs8E,mBAAqB,SAAUh2D,EAAQqnB,GAE3DhxC,KAAKsgF,iBAAiBN,GAEtBhgF,KAAK6gF,eAAeb,GAEhBhgF,KAAKu3E,aAELv3E,KAAKu3E,YAAY9qC,SAASzsC,KAAMgxC,IAYxCld,EAAO+nD,OAAOx4E,UAAUu8E,iBAAmB,SAAUj2D,EAAQqnB,EAAS6tB,GAUlE,GARA7+D,KAAK6gF,eAAeZ,GAGhBjgF,KAAKw3E,WAELx3E,KAAKw3E,UAAU/qC,SAASzsC,KAAMgxC,EAAS6tB,IAGvC7+D,KAAKs/E,aAKT,GAAIt/E,KAAKu/E,SAELv/E,KAAKsgF,iBAAiBP,OAG1B,CACI,GAAI4B,GAAY3hF,KAAKsgF,iBAAiBL,EACjC0B,IAKG3hF,KAAKsgF,iBAFLzhB,EAEsBihB,EAIAC,KA6BtCjsD,EAAO/kB,YAAc,SAAUnK,EAAMxC,EAAQ+4B,EAAMsZ,IAEhChrC,SAAXrH,GAAmC,OAAXA,KAAmBA,EAASwC,EAAKE,OAE7DhF,KAAKiP,YAAYjJ,KAAK9F,MAEtB8zB,EAAO0gB,MAAM1uC,KAAK9F,KAAM4E,EAAMxC,EAAQ+4B,EAAMsZ,GAM5Cz0C,KAAK+W,KAAO+c,EAAOoD,aAIvBpD,EAAO/kB,YAAY1L,UAAYywB,EAAOoF,MAAMgC,QAAO,EAAMpH,EAAO/kB,YAAY1L,UAAWywB,EAAO0gB,MAAMnxC,UAAWvD,KAAKiP,YAAY1L,WAEhIywB,EAAO/kB,YAAY1L,UAAUC,YAAcwwB,EAAO/kB,YAoBlD+kB,EAAO8tD,SAAW,SAAUh9E,EAAMc,EAAGC,EAAG+Q,EAAKvK,GAEzC2nB,EAAOnsB,OAAO7B,KAAK9F,KAAM4E,EAAMc,EAAGC,EAAG+Q,EAAKvK,GAM1CnM,KAAK6hF,WAAY,EAMjB7hF,KAAK8hF,UAAY,KAMjB9hF,KAAK+hF,GAAK,EAMV/hF,KAAKgiF,WAAY,EAMjBhiF,KAAKiiF,UAAY,KAMjBjiF,KAAKkiF,GAAK,GAIdpuD,EAAO8tD,SAASv+E,UAAYO,OAAOwE,OAAO0rB,EAAOnsB,OAAOtE,WACxDywB,EAAO8tD,SAASv+E,UAAUC,YAAcwwB,EAAO8tD,SAQ/C9tD,EAAO8tD,SAASv+E,UAAUijC,OAAS,WAE3BtmC,KAAK6hF,YAEL7hF,KAAK+hF,KAED/hF,KAAK+hF,GAEL/hF,KAAK2B,MAAMqC,IAAIhE,KAAK8hF,UAAU9hF,KAAK+hF,IAAIr8E,EAAG1F,KAAK8hF,UAAU9hF,KAAK+hF,IAAIp8E,GAIlE3F,KAAK6hF,WAAY,GAIrB7hF,KAAKgiF,YAELhiF,KAAKkiF,KAEDliF,KAAKkiF,GAELliF,KAAKgC,MAAQhC,KAAKiiF,UAAUjiF,KAAKkiF,IAAIzuE,EAIrCzT,KAAKgiF,WAAY,IAY7BluD,EAAO8tD,SAASv+E,UAAU8+E,OAAS,aASnCruD,EAAO8tD,SAASv+E,UAAU++E,aAAe,SAASjxE,GAE9CnR,KAAKiiF,UAAY9wE,EACjBnR,KAAKkiF,GAAK/wE,EAAKzN,OAAS,EACxB1D,KAAKgC,MAAQhC,KAAKiiF,UAAUjiF,KAAKkiF,IAAIzuE,EACrCzT,KAAKgiF,WAAY,GAUrBluD,EAAO8tD,SAASv+E,UAAUg/E,aAAe,SAASlxE,GAE9CnR,KAAK8hF,UAAY3wE,EACjBnR,KAAK+hF,GAAK5wE,EAAKzN,OAAS,EACxB1D,KAAK2B,MAAMqC,IAAIhE,KAAK8hF,UAAU9hF,KAAK+hF,IAAIr8E,EAAG1F,KAAK8hF,UAAU9hF,KAAK+hF,IAAIp8E,GAClE3F,KAAK6hF,WAAY,GAgBrB/tD,EAAO8tD,SAASv+E,UAAUoZ,MAAQ,SAAS/W,EAAGC,EAAGsyE,GAU7C,MARAnkD,GAAOk/C,UAAUuH,MAAMl3E,UAAUoZ,MAAM3W,KAAK9F,KAAM0F,EAAGC,EAAGsyE,GAExDj4E,KAAKgC,MAAQ,EACbhC,KAAK2B,MAAMqC,IAAI,GAEfhE,KAAK6hF,WAAY,EACjB7hF,KAAKgiF,WAAY,EAEVhiF,MAsBX8zB,EAAOwlD,WAAa,SAAU10E,EAAM8R,EAAK7P,EAAOC,IAE9B2C,SAAV5C,GAAiC,IAAVA,KAAeA,EAAQ,MACnC4C,SAAX3C,GAAmC,IAAXA,KAAgBA,EAAS,KAKrD9G,KAAK4E,KAAOA,EAKZ5E,KAAK0W,IAAMA,EAKX1W,KAAK6G,MAAQA,EAKb7G,KAAK8G,OAASA,EAMd9G,KAAK+Q,OAAS+iB,EAAO4e,OAAOtqC,OAAOvB,EAAOC,EAAQ,IAAI,GAMtD9G,KAAKoN,QAAUpN,KAAK+Q,OAAOE,WAAW,MAAQjP,OAAO,IAKrDhC,KAAK+mC,IAAM/mC,KAAKoN,QAKhBpN,KAAKsiF,UAAYtiF,KAAKoN,QAAQ8D,aAAa,EAAG,EAAGrK,EAAOC,GAOxD9G,KAAKmR,KAAO,KAERnR,KAAKsiF,YAELtiF,KAAKmR,KAAOnR,KAAKsiF,UAAUnxE,MAM/BnR,KAAKkvB,OAAS,KAKVlvB,KAAKmR,OAEDnR,KAAKsiF,UAAUnxE,KAAK6K,QAEpBhc,KAAKgc,OAAShc,KAAKsiF,UAAUnxE,KAAK6K,OAClChc,KAAKkvB,OAAS,GAAI3uB,aAAYP,KAAKgc,SAI/BvH,OAAoB,aAEpBzU,KAAKgc,OAAS,GAAIxb,aAAYR,KAAKsiF,UAAUnxE,KAAKzN,QAClD1D,KAAKkvB,OAAS,GAAI3uB,aAAYP,KAAKgc,SAInChc,KAAKkvB,OAASlvB,KAAKsiF,UAAUnxE,MASzCnR,KAAKgM,YAAc,GAAIlM,MAAKgyB,YAAY9xB,KAAK+Q,QAM7C/Q,KAAK8H,QAAU,GAAIhI,MAAKyL,QAAQvL,KAAKgM,aAMrChM,KAAKuiF,aAAe,GAAIzuD,GAAO0uD,MAAM,EAAG,EAAG,EAAG37E,EAAOC,EAAQ,cAE7D9G,KAAK8H,QAAQqE,MAAQnM,KAAKuiF,aAM1BviF,KAAK+W,KAAO+c,EAAOgD,WAKnB92B,KAAKyiF,sBAAuB,EAK5BziF,KAAK4V,OAAQ,EAGb5V,KAAK0iF,IAAM1iF,KAAKokB,MAMhBpkB,KAAK2iF,OAAS,KAMd3iF,KAAK4iF,KAAO,GAAI9uD,GAAOpyB,MAMvB1B,KAAK6iF,MAAQ,GAAI/uD,GAAOpyB,MAMxB1B,KAAK8iF,OAAS,GAAIhvD,GAAOpyB,MAMzB1B,KAAK+iF,QAAU,EAMf/iF,KAAKgjF,QAAWC,KAAM,EAAGvpD,QAAS,GAMlC15B,KAAKkjF,QAAU,GAAIpvD,GAAOpyB,MAM1B1B,KAAKmjF,OAAS,EAMdnjF,KAAKojF,OAAS,EAMdpjF,KAAKqjF,OAAS,EAMdrjF,KAAKsjF,QAAU,GAAIxvD,GAAOmI,OAM1Bj8B,KAAKujF,YAAczvD,EAAO4e,OAAOtqC,OAAOvB,EAAOC,EAAQ,IAAI,IAI/DgtB,EAAOwlD,WAAWj2E,WAYdkuD,KAAM,SAAU7rD,EAAGC,GAYf,MAVU,KAAND,GAEA1F,KAAKwjF,MAAM99E,GAGL,IAANC,GAEA3F,KAAKyjF,MAAM99E,GAGR3F,MAaXwjF,MAAO,SAAU7mD,GAEb,GAAI13B,GAAIjF,KAAKujF,YACTx8C,EAAM9hC,EAAEgM,WAAW,MACnBoZ,EAAIrqB,KAAK8G,OACT+J,EAAM7Q,KAAK+Q,MAIf,IAFAg2B,EAAI5Y,UAAU,EAAG,EAAGnuB,KAAK6G,MAAO7G,KAAK8G,QAEtB,EAAX61B,EACJ,CACIA,EAAWh8B,KAAKshB,IAAI0a,EAGpB,IAAIpjB,GAAIvZ,KAAK6G,MAAQ81B,CAGrBoK,GAAI14B,UAAUwC,EAAK,EAAG,EAAG8rB,EAAUtS,EAAG9Q,EAAG,EAAGojB,EAAUtS,GAGtD0c,EAAI14B,UAAUwC,EAAK8rB,EAAU,EAAGpjB,EAAG8Q,EAAG,EAAG,EAAG9Q,EAAG8Q,OAGnD,CAEI,GAAI9Q,GAAIvZ,KAAK6G,MAAQ81B,CAGrBoK,GAAI14B,UAAUwC,EAAK0I,EAAG,EAAGojB,EAAUtS,EAAG,EAAG,EAAGsS,EAAUtS,GAGtD0c,EAAI14B,UAAUwC,EAAK,EAAG,EAAG0I,EAAG8Q,EAAGsS,EAAU,EAAGpjB,EAAG8Q,GAKnD,MAFArqB,MAAKokB,QAEEpkB,KAAKo7B,KAAKp7B,KAAKujF,cAa1BE,MAAO,SAAU9mD,GAEb,GAAI13B,GAAIjF,KAAKujF,YACTx8C,EAAM9hC,EAAEgM,WAAW,MACnBsI,EAAIvZ,KAAK6G,MACTgK,EAAM7Q,KAAK+Q,MAIf,IAFAg2B,EAAI5Y,UAAU,EAAG,EAAGnuB,KAAK6G,MAAO7G,KAAK8G,QAEtB,EAAX61B,EACJ,CACIA,EAAWh8B,KAAKshB,IAAI0a,EAGpB,IAAItS,GAAIrqB,KAAK8G,OAAS61B,CAGtBoK,GAAI14B,UAAUwC,EAAK,EAAG,EAAG0I,EAAGojB,EAAU,EAAGtS,EAAG9Q,EAAGojB,GAG/CoK,EAAI14B,UAAUwC,EAAK,EAAG8rB,EAAUpjB,EAAG8Q,EAAG,EAAG,EAAG9Q,EAAG8Q,OAGnD,CAEI,GAAIA,GAAIrqB,KAAK8G,OAAS61B,CAGtBoK,GAAI14B,UAAUwC,EAAK,EAAGwZ,EAAG9Q,EAAGojB,EAAU,EAAG,EAAGpjB,EAAGojB,GAG/CoK,EAAI14B,UAAUwC,EAAK,EAAG,EAAG0I,EAAG8Q,EAAG,EAAGsS,EAAUpjB,EAAG8Q;CAKnD,MAFArqB,MAAKokB,QAEEpkB,KAAKo7B,KAAKp7B,KAAKujF,cAY1B3iD,IAAK,SAAUm6C,GAEX,GAAIt6E,MAAMyT,QAAQ6mE,GAEd,IAAK,GAAIt3E,GAAI,EAAGA,EAAIs3E,EAAOr3E,OAAQD,IAE3Bs3E,EAAOt3E,GAAgB,aAEvBs3E,EAAOt3E,GAAG8wE,YAAYv0E,UAM9B+6E,GAAOxG,YAAYv0E,KAGvB,OAAOA,OAcX+oC,KAAM,SAAUv6B,GAOZ,MALsB,gBAAXA,KAEPA,EAASxO,KAAK4E,KAAKikC,MAAMzU,SAAS5lB,IAGlCA,GAEAxO,KAAK+H,OAAOyG,EAAO3H,MAAO2H,EAAO1H,QACjC9G,KAAK0iF,MAOT1iF,KAAK0jF,KAAKl1E,GAEVxO,KAAKsmC,SAEEtmC,MAdP,QAqCJokB,MAAO,SAAU1e,EAAGC,EAAGkB,EAAOC,GAW1B,MATU2C,UAAN/D,IAAmBA,EAAI,GACjB+D,SAAN9D,IAAmBA,EAAI,GACb8D,SAAV5C,IAAuBA,EAAQ7G,KAAK6G,OACzB4C,SAAX3C,IAAwBA,EAAS9G,KAAK8G,QAE1C9G,KAAKoN,QAAQ+gB,UAAUzoB,EAAGC,EAAGkB,EAAOC,GAEpC9G,KAAK4V,OAAQ,EAEN5V,MAcXid,KAAM,SAAUoB,EAAGC,EAAGtZ,EAAGD,GAQrB,MANU0E,UAAN1E,IAAmBA,EAAI,GAE3B/E,KAAKoN,QAAQyhB,UAAY,QAAUxQ,EAAI,IAAMC,EAAI,IAAMtZ,EAAI,IAAMD,EAAI,IACrE/E,KAAKoN,QAAQ0hB,SAAS,EAAG,EAAG9uB,KAAK6G,MAAO7G,KAAK8G,QAC7C9G,KAAK4V,OAAQ,EAEN5V,MA4BXuG,gBAAiB,SAAUmQ,GAEvB,GAAI+b,GAAQ,GAAI7hB,MAEhB6hB,GAAM5hB,IAAM7Q,KAAK+Q,OAAOwjB,UAAU,YAElC,IAAI6E,GAAMp5B,KAAK4E,KAAKikC,MAAM86C,SAASjtE,EAAK,GAAI+b,EAE5C,OAAO,IAAI3yB,MAAKyL,QAAQ6tB,EAAIugD,OAUhC5xE,OAAQ,SAAUlB,EAAOC,GA6BrB,OA3BID,IAAU7G,KAAK6G,OAASC,IAAW9G,KAAK8G,UAExC9G,KAAK6G,MAAQA,EACb7G,KAAK8G,OAASA,EAEd9G,KAAK+Q,OAAOlK,MAAQA,EACpB7G,KAAK+Q,OAAOjK,OAASA,EAErB9G,KAAKujF,YAAY18E,MAAQA,EACzB7G,KAAKujF,YAAYz8E,OAASA,EAE1B9G,KAAKgM,YAAYnF,MAAQA,EACzB7G,KAAKgM,YAAYlF,OAASA,EAE1B9G,KAAKuiF,aAAa17E,MAAQA,EAC1B7G,KAAKuiF,aAAaz7E,OAASA,EAE3B9G,KAAK8H,QAAQjB,MAAQA,EACrB7G,KAAK8H,QAAQhB,OAASA,EAEtB9G,KAAK8H,QAAQoF,KAAKrG,MAAQA,EAC1B7G,KAAK8H,QAAQoF,KAAKpG,OAASA,EAE3B9G,KAAKsmC,SACLtmC,KAAK4V,OAAQ,GAGV5V,MAgBXsmC,OAAQ,SAAU5gC,EAAGC,EAAGkB,EAAOC,GA4B3B,MA1BU2C,UAAN/D,IAAmBA,EAAI,GACjB+D,SAAN9D,IAAmBA,EAAI,GACb8D,SAAV5C,IAAuBA,EAAQlG,KAAK2+B,IAAI,EAAGt/B,KAAK6G,QACrC4C,SAAX3C,IAAwBA,EAASnG,KAAK2+B,IAAI,EAAGt/B,KAAK8G,SAEtD9G,KAAKsiF,UAAYtiF,KAAKoN,QAAQ8D,aAAaxL,EAAGC,EAAGkB,EAAOC,GACxD9G,KAAKmR,KAAOnR,KAAKsiF,UAAUnxE,KAEvBnR,KAAKsiF,UAAUnxE,KAAK6K,QAEpBhc,KAAKgc,OAAShc,KAAKsiF,UAAUnxE,KAAK6K,OAClChc,KAAKkvB,OAAS,GAAI3uB,aAAYP,KAAKgc,SAI/BvH,OAAoB,aAEpBzU,KAAKgc,OAAS,GAAIxb,aAAYR,KAAKsiF,UAAUnxE,KAAKzN,QAClD1D,KAAKkvB,OAAS,GAAI3uB,aAAYP,KAAKgc,SAInChc,KAAKkvB,OAASlvB,KAAKsiF,UAAUnxE,KAI9BnR,MAuBX4jF,gBAAiB,SAAUjrC,EAAU3M,EAAiBtmC,EAAGC,EAAGkB,EAAOC,GAErD2C,SAAN/D,IAAmBA,EAAI,GACjB+D,SAAN9D,IAAmBA,EAAI,GACb8D,SAAV5C,IAAuBA,EAAQ7G,KAAK6G,OACzB4C,SAAX3C,IAAwBA,EAAS9G,KAAK8G,OAQ1C,KAAK,GANDyS,GAAI7T,EAAImB,EACRwjB,EAAI1kB,EAAImB,EACR+8E,EAAQ/vD,EAAOqgB,MAAM2vC,cACrBxyE,GAAW+M,EAAG,EAAGC,EAAG,EAAGtZ,EAAG,EAAGD,EAAG,GAChC6Q,GAAQ,EAEHxQ,EAAKO,EAAQ0kB,EAALjlB,EAAQA,IAErB,IAAK,GAAID,GAAKO,EAAQ6T,EAALpU,EAAQA,IAErB2uB,EAAOqgB,MAAM4vC,YAAY/jF,KAAKgkF,WAAW7+E,EAAIC,GAAKy+E,GAElDvyE,EAASqnC,EAAS7yC,KAAKkmC,EAAiB63C,EAAO1+E,EAAIC,GAE/CkM,KAAW,GAAoB,OAAXA,GAA8B7H,SAAX6H,IAEvCtR,KAAKikF,WAAW9+E,EAAIC,EAAIkM,EAAO+M,EAAG/M,EAAOgN,EAAGhN,EAAOtM,EAAGsM,EAAOvM,GAAG,GAChE6Q,GAAQ,EAWpB,OANIA,KAEA5V,KAAKoN,QAAQgiB,aAAapvB,KAAKsiF,UAAW,EAAG,GAC7CtiF,KAAK4V,OAAQ,GAGV5V,MAoBXkkF,aAAc,SAAUvrC,EAAU3M,EAAiBtmC,EAAGC,EAAGkB,EAAOC,GAElD2C,SAAN/D,IAAmBA,EAAI,GACjB+D,SAAN9D,IAAmBA,EAAI,GACb8D,SAAV5C,IAAuBA,EAAQ7G,KAAK6G,OACzB4C,SAAX3C,IAAwBA,EAAS9G,KAAK8G,OAQ1C,KAAK,GANDyS,GAAI7T,EAAImB,EACRwjB,EAAI1kB,EAAImB,EACR+8E,EAAQ,EACRvyE,EAAS,EACTsE,GAAQ,EAEHxQ,EAAKO,EAAQ0kB,EAALjlB,EAAQA,IAErB,IAAK,GAAID,GAAKO,EAAQ6T,EAALpU,EAAQA,IAErB0+E,EAAQ7jF,KAAKgkF,WAAW7+E,EAAIC,GAC5BkM,EAASqnC,EAAS7yC,KAAKkmC,EAAiB63C,EAAO1+E,EAAIC,GAE/CkM,IAAWuyE,IAEX7jF,KAAKkvB,OAAO9pB,EAAKpF,KAAK6G,MAAQ1B,GAAMmM,EACpCsE,GAAQ,EAWpB,OANIA,KAEA5V,KAAKoN,QAAQgiB,aAAapvB,KAAKsiF,UAAW,EAAG,GAC7CtiF,KAAK4V,OAAQ,GAGV5V,MAoBXmkF,WAAY,SAAUC,EAAIC,EAAIhjE,EAAID,EAAIkjE,EAAIC,EAAI/iE,EAAID,EAAIijE,GAElD,GAAI5kD,GAAK,EACLC,EAAK,EACLtmB,EAAIvZ,KAAK6G,MACTwjB,EAAIrqB,KAAK8G,OACT0H,EAASslB,EAAOqgB,MAAMswC,UAAUL,EAAIC,EAAIhjE,EAAID,EAEjC3X,UAAX+6E,GAAwBA,YAAkB1wD,GAAO9wB,YAEjD48B,EAAK4kD,EAAO9+E,EACZm6B,EAAK2kD,EAAO7+E,EACZ4T,EAAIirE,EAAO39E,MACXwjB,EAAIm6D,EAAO19E,OAGf,KAAK,GAAInB,GAAI,EAAO0kB,EAAJ1kB,EAAOA,IAEnB,IAAK,GAAID,GAAI,EAAO6T,EAAJ7T,EAAOA,IAEf1F,KAAKgkF,WAAWpkD,EAAKl6B,EAAGm6B,EAAKl6B,KAAO6I,GAEpCxO,KAAKikF,WAAWrkD,EAAKl6B,EAAGm6B,EAAKl6B,EAAG2+E,EAAIC,EAAI/iE,EAAID,GAAI,EAQ5D,OAHAvhB,MAAKoN,QAAQgiB,aAAapvB,KAAKsiF,UAAW,EAAG,GAC7CtiF,KAAK4V,OAAQ,EAEN5V,MAcX0kF,OAAQ,SAAUr6D,EAAG6X,EAAGzI,EAAG+qD,GAMvB,IAJU/6E,SAAN4gB,GAAyB,OAANA,KAAcA,GAAI,IAC/B5gB,SAANy4B,GAAyB,OAANA,KAAcA,GAAI,IAC/Bz4B,SAANgwB,GAAyB,OAANA,KAAcA,GAAI,GAEpCpP,GAAM6X,GAAMzI,EAAjB,CAKehwB,SAAX+6E,IAEAA,EAAS,GAAI1wD,GAAO9wB,UAAU,EAAG,EAAGhD,KAAK6G,MAAO7G,KAAK8G,QAKzD,KAAK,GAFD+8E,GAAQ/vD,EAAOqgB,MAAM2vC,cAEhBn+E,EAAI6+E,EAAO7+E,EAAGA,EAAI6+E,EAAOnnD,OAAQ13B,IAEtC,IAAK,GAAID,GAAI8+E,EAAO9+E,EAAGA,EAAI8+E,EAAO5pD,MAAOl1B,IAErCouB,EAAOqgB,MAAM4vC,YAAY/jF,KAAKgkF,WAAWt+E,EAAGC,GAAIk+E,GAAO,GAEnDx5D,IAEAw5D,EAAMx5D,EAAIA,GAGV6X,IAEA2hD,EAAM3hD,EAAIA,GAGVzI,IAEAoqD,EAAMpqD,EAAIA,GAGd3F,EAAOqgB,MAAMwwC,SAASd,EAAMx5D,EAAGw5D,EAAM3hD,EAAG2hD,EAAMpqD,EAAGoqD,GACjD7jF,KAAKikF,WAAWv+E,EAAGC,EAAGk+E,EAAMxlE,EAAGwlE,EAAMvlE,EAAGulE,EAAM7+E,EAAG6+E,EAAM9+E,GAAG,EAOlE,OAHA/E,MAAKoN,QAAQgiB,aAAapvB,KAAKsiF,UAAW,EAAG,GAC7CtiF,KAAK4V,OAAQ,EAEN5V,OAgBX4kF,SAAU,SAAUv6D,EAAG6X,EAAGzI,EAAG+qD,GAMzB,IAJU/6E,SAAN4gB,GAAyB,OAANA,KAAcA,GAAI,IAC/B5gB,SAANy4B,GAAyB,OAANA,KAAcA,GAAI,IAC/Bz4B,SAANgwB,GAAyB,OAANA,KAAcA,GAAI,GAEpCpP,GAAM6X,GAAMzI,EAAjB,CAKehwB,SAAX+6E,IAEAA,EAAS,GAAI1wD,GAAO9wB,UAAU,EAAG,EAAGhD,KAAK6G,MAAO7G,KAAK8G,QAKzD,KAAK,GAFD+8E,GAAQ/vD,EAAOqgB,MAAM2vC,cAEhBn+E,EAAI6+E,EAAO7+E,EAAGA,EAAI6+E,EAAOnnD,OAAQ13B,IAEtC,IAAK,GAAID,GAAI8+E,EAAO9+E,EAAGA,EAAI8+E,EAAO5pD,MAAOl1B,IAErCouB,EAAOqgB,MAAM4vC,YAAY/jF,KAAKgkF,WAAWt+E,EAAGC,GAAIk+E,GAAO,GAEnDx5D,IAEAw5D,EAAMx5D,EAAIrqB,KAAK4E,KAAKokC,KAAKhJ,KAAK6jD,EAAMx5D,EAAIA,EAAG,EAAG,IAG9C6X,IAEA2hD,EAAM3hD,EAAIliC,KAAK4E,KAAKokC,KAAK67C,WAAWhB,EAAM3hD,EAAIA,EAAG,EAAG,IAGpDzI,IAEAoqD,EAAMpqD,EAAIz5B,KAAK4E,KAAKokC,KAAK67C,WAAWhB,EAAMpqD,EAAIA,EAAG,EAAG,IAGxD3F,EAAOqgB,MAAMwwC,SAASd,EAAMx5D,EAAGw5D,EAAM3hD,EAAG2hD,EAAMpqD,EAAGoqD,GACjD7jF,KAAKikF,WAAWv+E,EAAGC,EAAGk+E,EAAMxlE,EAAGwlE,EAAMvlE,EAAGulE,EAAM7+E,EAAG6+E,EAAM9+E,GAAG,EAOlE,OAHA/E,MAAKoN,QAAQgiB,aAAapvB,KAAKsiF,UAAW,EAAG,GAC7CtiF,KAAK4V,OAAQ,EAEN5V,OAiBXikF,WAAY,SAAUv+E,EAAGC,EAAGm/E,EAAKC,EAAOC,EAAMhjF,EAAOijF,GAsBjD,MApBkBx7E,UAAdw7E,IAA2BA,GAAY,GAEvCv/E,GAAK,GAAKA,GAAK1F,KAAK6G,OAASlB,GAAK,GAAKA,GAAK3F,KAAK8G,SAI7C9G,KAAKkvB,OAAOvpB,EAAI3F,KAAK6G,MAAQnB,GAF7BouB,EAAO61B,OAAOu7B,cAEqBljF,GAAS,GAAOgjF,GAAQ,GAAOD,GAAS,EAAKD,EAI7CA,GAAO,GAAOC,GAAS,GAAOC,GAAQ,EAAKhjF,EAG9EijF,IAEAjlF,KAAKoN,QAAQgiB,aAAapvB,KAAKsiF,UAAW,EAAG,GAC7CtiF,KAAK4V,OAAQ,IAId5V,MAiBXmlF,SAAU,SAAUz/E,EAAGC,EAAGm/E,EAAKC,EAAOC,EAAMC,GAExC,MAAOjlF,MAAKikF,WAAWv+E,EAAGC,EAAGm/E,EAAKC,EAAOC,EAAM,IAAKC,IAexDG,SAAU,SAAU1/E,EAAGC,EAAG22B,GAEjBA,IAEDA,EAAMxI,EAAOqgB,MAAM2vC,cAGvB,IAAIp7E,MAAWhD,EAAKC,EAAI3F,KAAK6G,MAS7B,OAPA6B,IAAS,EAET4zB,EAAIje,EAAIre,KAAKmR,KAAKzI,GAClB4zB,EAAIhe,EAAIte,KAAKmR,OAAOzI,GACpB4zB,EAAIt3B,EAAIhF,KAAKmR,OAAOzI,GACpB4zB,EAAIv3B,EAAI/E,KAAKmR,OAAOzI,GAEb4zB,GAeX0nD,WAAY,SAAUt+E,EAAGC,GAErB,MAAID,IAAK,GAAKA,GAAK1F,KAAK6G,OAASlB,GAAK,GAAKA,GAAK3F,KAAK8G,OAE1C9G,KAAKkvB,OAAOvpB,EAAI3F,KAAK6G,MAAQnB,GAFxC,QAoBJ2/E,YAAa,SAAU3/E,EAAGC,EAAG22B,EAAKgpD,EAAKC,GAEnC,MAAOzxD,GAAOqgB,MAAM4vC,YAAY/jF,KAAKgkF,WAAWt+E,EAAGC,GAAI22B,EAAKgpD,EAAKC,IAWrEC,UAAW,SAAUh0D,GAEjB,MAAOxxB,MAAKoN,QAAQ8D,aAAasgB,EAAK9rB,EAAG8rB,EAAK7rB,EAAG6rB,EAAK3qB,MAAO2qB,EAAK1qB,SAmBtE2+E,cAAe,SAAUC,GAEHj8E,SAAdi8E,IAA2BA,EAAY,EAE3C,IAAI7B,GAAQ/vD,EAAOqgB,MAAM2vC,cAErBp+E,EAAI,EACJC,EAAI,EACJ8N,EAAI,EACJkyE,GAAO,CAEO,KAAdD,GAEAjyE,EAAI,GACJ9N,EAAI3F,KAAK8G,QAEU,IAAd4+E,IAELjyE,EAAI,GACJ/N,EAAI1F,KAAK6G,MAGb,GAEIitB,GAAOqgB,MAAM4vC,YAAY/jF,KAAKgkF,WAAWt+E,EAAGC,GAAIk+E,GAE9B,IAAd6B,GAAiC,IAAdA,GAGnBhgF,IAEIA,IAAM1F,KAAK6G,QAEXnB,EAAI,EACJC,GAAK8N,GAED9N,GAAK3F,KAAK8G,QAAe,GAALnB,KAEpBggF,GAAO,MAII,IAAdD,GAAiC,IAAdA,KAGxB//E,IAEIA,IAAM3F,KAAK8G,SAEXnB,EAAI,EACJD,GAAK+N,GAED/N,GAAK1F,KAAK6G,OAAc,GAALnB,KAEnBigF,GAAO,WAKJ,IAAZ9B,EAAM9+E,IAAY4gF,EAKzB,OAHA9B,GAAMn+E,EAAIA,EACVm+E,EAAMl+E,EAAIA,EAEHk+E,GAYX79E,UAAW,SAAUwrB,GAOjB,MALa/nB,UAAT+nB,IAAsBA,EAAO,GAAIsC,GAAO9wB,WAE5CwuB,EAAK9rB,EAAI1F,KAAKylF,cAAc,GAAG//E,EAG3B8rB,EAAK9rB,IAAM1F,KAAK6G,MAET2qB,EAAK+K,MAAM,EAAG,EAAG,EAAG,IAG/B/K,EAAK7rB,EAAI3F,KAAKylF,cAAc,GAAG9/E,EAC/B6rB,EAAK3qB,MAAS7G,KAAKylF,cAAc,GAAG//E,EAAI8rB,EAAK9rB,EAAK,EAClD8rB,EAAK1qB,OAAU9G,KAAKylF,cAAc,GAAG9/E,EAAI6rB,EAAK7rB,EAAK,EAE5C6rB,IAgBX0rB,WAAY,SAAUx3C,EAAGC,EAAGigF,EAASC,EAASn7D,EAAQE,GAElDF,EAASA,GAAU,EACnBE,EAASA,GAAU,CAEnB,IAAI6H,GAAQzyB,KAAK4E,KAAKg8B,IAAInO,MAAM/sB,EAAGC,EAAG3F,KAKtC,OAHAyyB,GAAMvqB,OAAOlE,IAAI4hF,EAASC,GAC1BpzD,EAAM9wB,MAAMqC,IAAI0mB,EAAQE,GAEjB6H,GAiCX2I,KAAM,SAAU5sB,EAAQ9I,EAAGC,EAAGkB,EAAOC,EAAQ3B,EAAIC,EAAIo+C,EAAUC,EAAW5kB,EAAQ+mD,EAASC,EAASn7D,EAAQE,EAAQ5oB,EAAO4J,EAAW05B,GAMlI,IAJe77B,SAAX+E,GAAmC,OAAXA,KAAmBA,EAASxO,MAExDA,KAAK2iF,OAASn0E,EAEVA,YAAkBslB,GAAOnsB,QAAU6G,YAAkBslB,GAAOljB,OAASpC,YAAkBslB,GAAO0nD,KAG9Fx7E,KAAK4iF,KAAK5+E,IAAIwK,EAAO1G,QAAQoF,KAAKxH,EAAG8I,EAAO1G,QAAQoF,KAAKvH,GACzD3F,KAAK6iF,MAAM7+E,IAAIwK,EAAO1G,QAAQoF,KAAKrG,MAAO2H,EAAO1G,QAAQoF,KAAKpG,QAC9D9G,KAAK8iF,OAAO9+E,IAAIwK,EAAO7M,MAAM+D,EAAG8I,EAAO7M,MAAMgE,GAC7C3F,KAAKkjF,QAAQl/E,IAAIwK,EAAOtG,OAAOxC,EAAG8I,EAAOtG,OAAOvC,GAChD3F,KAAK+iF,QAAUv0E,EAAOzM,SACtB/B,KAAKgjF,OAAOtpD,QAAUlrB,EAAOxM,MAC7BhC,KAAK2iF,OAASn0E,EAAO1G,QAAQkE,YAAYwC,QAE9B/E,SAAPtE,GAA2B,OAAPA,KAAeA,EAAKqJ,EAAO9I,IACxC+D,SAAPrE,GAA2B,OAAPA,KAAeA,EAAKoJ,EAAO7I,GAE/C6I,EAAO1G,QAAQ8F,OAGfzI,GAAMqJ,EAAO1G,QAAQ8F,KAAKlI,EAAI8I,EAAOtG,OAAOxC,EAAI8I,EAAO1G,QAAQ8F,KAAK/G,MACpEzB,GAAMoJ,EAAO1G,QAAQ8F,KAAKjI,EAAI6I,EAAOtG,OAAOvC,EAAI6I,EAAO1G,QAAQ8F,KAAK9G,QAGpD,WAAhB0H,EAAO/C,OAEH+C,EAAO9C,aAAe8C,EAAO/C,OAE7B+C,EAAO9C,WAAa8C,EAAO/C,KAC3B+C,EAAO7C,cAAgB7L,KAAKqO,aAAaC,iBAAiBI,EAAQA,EAAO/C,OAG7EzL,KAAK2iF,OAASn0E,EAAO7C,mBAI7B,CAQI,GANA3L,KAAK4iF,KAAK5+E,IAAI,GACdhE,KAAK8iF,OAAO9+E,IAAI,GAChBhE,KAAKkjF,QAAQl/E,IAAI,GACjBhE,KAAK+iF,QAAU,EACf/iF,KAAKgjF,OAAOtpD,QAAU,EAElBlrB,YAAkBslB,GAAOwlD,WAEzBt5E,KAAK2iF,OAASn0E,EAAOuC,WAEpB,IAAsB,gBAAXvC,GAChB,CAGI,GAFAA,EAASxO,KAAK4E,KAAKikC,MAAMzU,SAAS5lB,GAEnB,OAAXA,EAEA,MAIAxO,MAAK2iF,OAASn0E,EAItBxO,KAAK6iF,MAAM7+E,IAAIhE,KAAK2iF,OAAO97E,MAAO7G,KAAK2iF,OAAO77E,QA6DlD,OAzDU2C,SAAN/D,GAAyB,OAANA,KAAcA,EAAI,IAC/B+D,SAAN9D,GAAyB,OAANA,KAAcA,EAAI,GAGrCkB,IAEA7G,KAAK6iF,MAAMn9E,EAAImB,GAGfC,IAEA9G,KAAK6iF,MAAMl9E,EAAImB,IAIR2C,SAAPtE,GAA2B,OAAPA,KAAeA,EAAKO,IACjC+D,SAAPrE,GAA2B,OAAPA,KAAeA,EAAKO,IAC3B8D,SAAb+5C,GAAuC,OAAbA,KAAqBA,EAAWxjD,KAAK6iF,MAAMn9E,IACvD+D,SAAdg6C,GAAyC,OAAdA,KAAsBA,EAAYzjD,KAAK6iF,MAAMl9E,GAGtD,gBAAXk5B,KAEP7+B,KAAK+iF,QAAUlkD,GAII,gBAAZ+mD,KAEP5lF,KAAKkjF,QAAQx9E,EAAIkgF,GAGE,gBAAZC,KAEP7lF,KAAKkjF,QAAQv9E,EAAIkgF,GAIC,gBAAXn7D,KAEP1qB,KAAK8iF,OAAOp9E,EAAIglB,GAGE,gBAAXE,KAEP5qB,KAAK8iF,OAAOn9E,EAAIilB,GAIC,gBAAV5oB,KAEPhC,KAAKgjF,OAAOtpD,QAAU13B,GAGRyH,SAAdmC,IAA2BA,EAAY,MAC3BnC,SAAZ67B,IAAyBA,GAAU,GAEnCtlC,KAAKgjF,OAAOtpD,SAAW,GAAuB,IAAlB15B,KAAK8iF,OAAOp9E,GAA6B,IAAlB1F,KAAK8iF,OAAOn9E,GAA4B,IAAjB3F,KAAK6iF,MAAMn9E,GAA4B,IAAjB1F,KAAK6iF,MAAMl9E,EAA/G,QAMA3F,KAAKgjF,OAAOC,KAAOjjF,KAAKoN,QAAQG,YAEhCvN,KAAKoN,QAAQihB,OAEbruB,KAAKoN,QAAQG,YAAcvN,KAAKgjF,OAAOtpD,QAEnC9tB,IAEA5L,KAAKoN,QAAQC,yBAA2BzB,GAGxC05B,IAEAngC,GAAM,EACNC,GAAM,GAGVpF,KAAKoN,QAAQ6mB,UAAU9uB,EAAIC,GAE3BpF,KAAKoN,QAAQzL,MAAM3B,KAAK8iF,OAAOp9E,EAAG1F,KAAK8iF,OAAOn9E,GAE9C3F,KAAKoN,QAAQyxB,OAAO7+B,KAAK+iF,SAEzB/iF,KAAKoN,QAAQiB,UAAUrO,KAAK2iF,OAAQ3iF,KAAK4iF,KAAKl9E,EAAIA,EAAG1F,KAAK4iF,KAAKj9E,EAAIA,EAAG3F,KAAK6iF,MAAMn9E,EAAG1F,KAAK6iF,MAAMl9E,GAAI69C,EAAWxjD,KAAKkjF,QAAQx9E,GAAI+9C,EAAYzjD,KAAKkjF,QAAQv9E,EAAG69C,EAAUC,GAErKzjD,KAAKoN,QAAQshB,UAEb1uB,KAAKoN,QAAQG,YAAcvN,KAAKgjF,OAAOC,KAEvCjjF,KAAK4V,OAAQ,EAEN5V,OAiBX8lF,SAAU,SAAUt3E,EAAQq0B,EAAMn9B,EAAGC,EAAG3D,EAAO4J,EAAW05B,GAEtD,MAAOtlC,MAAKo7B,KAAK5sB,EAAQq0B,EAAKn9B,EAAGm9B,EAAKl9B,EAAGk9B,EAAKh8B,MAAOg8B,EAAK/7B,OAAQpB,EAAGC,EAAGk9B,EAAKh8B,MAAOg8B,EAAK/7B,OAAQ,EAAG,EAAG,EAAG,EAAG,EAAG9E,EAAO4J,EAAW05B,IAmBtIo+C,KAAM,SAAUl1E,EAAQ9I,EAAGC,EAAGkB,EAAOC,EAAQ8E,EAAW05B,GAGpD,MAAOtlC,MAAKo7B,KAAK5sB,EAAQ,KAAM,KAAM,KAAM,KAAM9I,EAAGC,EAAGkB,EAAOC,EAAQ,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM8E,EAAW05B,IAiBzHygD,UAAW,SAAUjrC,EAAOlvC,EAAW05B,GAOnC,MALIwV,GAAMb,MAAQ,GAEda,EAAMxB,cAAct5C,KAAKo7B,KAAMp7B,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM4L,EAAW05B,GAGjItlC,MAgBXgmF,OAAQ,SAAUzrE,EAAO0rE,EAAMvgF,EAAGC,GAEhB8D,SAAV8Q,GAAiC,OAAVA,EAEvBva,KAAKoN,QAAQ84E,YAAc,iBAI3BlmF,KAAKoN,QAAQ84E,YAAc3rE,EAC3Bva,KAAKoN,QAAQ+4E,WAAaF,GAAQ,EAClCjmF,KAAKoN,QAAQg5E,cAAgB1gF,GAAK,GAClC1F,KAAKoN,QAAQi5E,cAAgB1gF,GAAK,KAe1C2gF,UAAW,SAAU93E,EAAQrD,EAAMo7E,EAAYC,GAoB3C,MAlBiB/8E,UAAb+8E,GAAuC,OAAbA,EAE1BxmF,KAAK0jF,KAAKv4E,GAAMs7E,kBAIhBzmF,KAAK0jF,KAAKv4E,EAAMq7E,EAAS9gF,EAAG8gF,EAAS7gF,EAAG6gF,EAAS3/E,MAAO2/E,EAAS1/E,QAAQ2/E,kBAG1Dh9E,SAAf88E,GAA2C,OAAfA,EAE5BvmF,KAAK0jF,KAAKl1E,GAAQk4E,aAIlB1mF,KAAK0jF,KAAKl1E,EAAQ+3E,EAAW7gF,EAAG6gF,EAAW5gF,EAAG4gF,EAAW1/E,MAAO0/E,EAAWz/E,QAAQ4/E,aAGhF1mF,MA0BX2mF,QAAS,SAAUC,EAAavoE,EAAGC,EAAGtZ,EAAGD,EAAGgD,EAAQu8E,EAAIC,EAAI/iE,GA2BxD,MAzBU/X,UAAN1E,IAAmBA,EAAI,KACZ0E,SAAX1B,IAAwBA,GAAS,GAC1B0B,SAAP66E,IAAoBA,EAAKjmE,GAClB5U,SAAP86E,IAAoBA,EAAKjmE,GAClB7U,SAAP+X,IAAoBA,EAAKxc,GAEzB+C,GAEA6+E,EAAY7+E,OAAO/H,KAAK6G,MAAO7G,KAAK8G,QAGxC9G,KAAK4jF,gBACD,SAAUC,EAAOn+E,EAAGC,GAMhB,MAJIk+E,GAAMxlE,IAAMA,GAAKwlE,EAAMvlE,IAAMA,GAAKulE,EAAM7+E,IAAMA,GAE9C4hF,EAAY3C,WAAWv+E,EAAGC,EAAG2+E,EAAIC,EAAI/iE,EAAIzc,GAAG,IAEzC,GAEX/E,MAEJ4mF,EAAYx5E,QAAQgiB,aAAaw3D,EAAYtE,UAAW,EAAG,GAC3DsE,EAAYhxE,OAAQ,EAEbgxE,GAeXp1D,KAAM,SAAU9rB,EAAGC,EAAGkB,EAAOC,EAAQ+nB,GASjC,MAPyB,mBAAdA,KAEP7uB,KAAKoN,QAAQyhB,UAAYA,GAG7B7uB,KAAKoN,QAAQ0hB,SAASppB,EAAGC,EAAGkB,EAAOC,GAE5B9G,MAkBX49C,KAAM,SAAUA,EAAMl4C,EAAGC,EAAGw2E,EAAM5hE,EAAOyrE,GAE3Bv8E,SAAN/D,IAAmBA,EAAI,GACjB+D,SAAN9D,IAAmBA,EAAI,GACd8D,SAAT0yE,IAAsBA,EAAO,gBACnB1yE,SAAV8Q,IAAuBA,EAAQ,oBACpB9Q,SAAXu8E,IAAwBA,GAAS,EAErC,IAAIa,GAAW7mF,KAAKoN,QAAQ+uE,IAE5Bn8E,MAAKoN,QAAQ+uE,KAAOA,EAEhB6J,IAEAhmF,KAAKoN,QAAQyhB,UAAY,aACzB7uB,KAAKoN,QAAQ05E,SAASlpC,EAAMl4C,EAAI,EAAGC,EAAI,IAG3C3F,KAAKoN,QAAQyhB,UAAYtU,EACzBva,KAAKoN,QAAQ05E,SAASlpC,EAAMl4C,EAAGC,GAE/B3F,KAAKoN,QAAQ+uE,KAAO0K,GAcxB/4B,OAAQ,SAAUpoD,EAAGC,EAAGgZ,EAAQkQ,GAa5B,MAXyB,mBAAdA,KAEP7uB,KAAKoN,QAAQyhB,UAAYA,GAG7B7uB,KAAKoN,QAAQ8iB,YACblwB,KAAKoN,QAAQqjB,IAAI/qB,EAAGC,EAAGgZ,EAAQ,EAAa,EAAVhe,KAAKC,IAAQ,GAC/CZ,KAAKoN,QAAQijB,YAEbrwB,KAAKoN,QAAQ6P,OAENjd,MAaX+mF,YAAa,SAAUjoD,EAAMrM,EAAOna,GAIhC,GAFe7O,SAAX6O,IAAwBA,EAAS,YAEhB,gBAAVma,KAEPA,EAAQzyB,KAAK4E,KAAKikC,MAAMzU,SAAS3B,IAFrC,CAUA,GAAI5rB,GAAQi4B,EAAKp7B,MAqBjB,OAnBe,cAAX4U,GAA0BzR,EAAQ4rB,EAAM5rB,QAExCA,EAAQ4rB,EAAM5rB,OAGlB7G,KAAKoN,QAAQyhB,UAAY7uB,KAAKoN,QAAQ45E,cAAcv0D,EAAOna,GAE3DtY,KAAKsjF,QAAU,GAAIxvD,GAAOmI,OAAO6C,EAAK1zB,MAAM1F,EAAGo5B,EAAK1zB,MAAMzF,EAAG8sB,EAAM3rB,QAEnE9G,KAAKsjF,QAAQvmD,mBAAmB+B,EAAK9B,MAAQ,oBAAoB,EAAOh9B,KAAK4iF,MAE7E5iF,KAAKoN,QAAQihB,OACbruB,KAAKoN,QAAQ6mB,UAAUj0B,KAAK4iF,KAAKl9E,EAAG1F,KAAK4iF,KAAKj9E,GAC9C3F,KAAKoN,QAAQyxB,OAAOC,EAAK9B,OACzBh9B,KAAKoN,QAAQ0hB,SAAS,EAAG,EAAGjoB,EAAO4rB,EAAM3rB,QACzC9G,KAAKoN,QAAQshB,UAEb1uB,KAAK4V,OAAQ,EAEN5V,OAYXgH,OAAQ,WAQJ,OANKhH,KAAKyiF,sBAAwBziF,KAAK4V,QAEnC5V,KAAKgM,YAAY4J,QACjB5V,KAAK4V,OAAQ,GAGV5V,MAUX0mF,WAAY,WAGR,MADA1mF,MAAKoN,QAAQC,yBAA2B,cACjCrN,MAUXinF,gBAAiB,WAGb,MADAjnF,MAAKoN,QAAQC,yBAA2B,cACjCrN,MAUXknF,cAAe,WAGX,MADAlnF,MAAKoN,QAAQC,yBAA2B,YACjCrN,MAUXmnF,eAAgB,WAGZ,MADAnnF,MAAKoN,QAAQC,yBAA2B,aACjCrN,MAUXymF,gBAAiB,WAGb,MADAzmF,MAAKoN,QAAQC,yBAA2B,cACjCrN,MAUXonF,qBAAsB,WAGlB,MADApnF,MAAKoN,QAAQC,yBAA2B,mBACjCrN,MAUXqnF,mBAAoB,WAGhB,MADArnF,MAAKoN,QAAQC,yBAA2B,iBACjCrN,MAUXsnF,oBAAqB,WAGjB,MADAtnF,MAAKoN,QAAQC,yBAA2B,kBACjCrN,MAUXunF,qBAAsB,WAGlB,MADAvnF,MAAKoN,QAAQC,yBAA2B,mBACjCrN,MAUXwnF,SAAU,WAGN,MADAxnF,MAAKoN,QAAQC,yBAA2B,MACjCrN,MAUXynF,SAAU,WAGN,MADAznF,MAAKoN,QAAQC,yBAA2B,UACjCrN,MAUX0nF,cAAe,WAGX,MADA1nF,MAAKoN,QAAQC,yBAA2B,WACjCrN,MAUX2nF,YAAa,WAGT,MADA3nF,MAAKoN,QAAQC,yBAA2B,SACjCrN,MAUX4nF,aAAc,WAGV,MADA5nF,MAAKoN,QAAQC,yBAA2B,UACjCrN,MAUX6nF,YAAa,WAGT,MADA7nF,MAAKoN,QAAQC,yBAA2B,SACjCrN,MAUX8nF,aAAc,WAGV,MADA9nF,MAAKoN,QAAQC,yBAA2B,UACjCrN,MAUX+nF,gBAAiB,WAGb,MADA/nF,MAAKoN,QAAQC,yBAA2B,cACjCrN,MAUXgoF,eAAgB,WAGZ,MADAhoF,MAAKoN,QAAQC,yBAA2B,aACjCrN,MAUXioF,eAAgB,WAGZ,MADAjoF,MAAKoN,QAAQC,yBAA2B,aACjCrN,MAUXkoF,eAAgB,WAGZ,MADAloF,MAAKoN,QAAQC,yBAA2B,aACjCrN,MAUXmoF,gBAAiB,WAGb,MADAnoF,MAAKoN,QAAQC,yBAA2B,aACjCrN,MAUXooF,eAAgB,WAGZ,MADApoF,MAAKoN,QAAQC,yBAA2B,YACjCrN,MAUXqoF,SAAU,WAGN,MADAroF,MAAKoN,QAAQC,yBAA2B,MACjCrN,MAUXsoF,gBAAiB,WAGb,MADAtoF,MAAKoN,QAAQC,yBAA2B,aACjCrN,MAUXuoF,WAAY,WAGR,MADAvoF,MAAKoN,QAAQC,yBAA2B,QACjCrN,MAUXwoF,gBAAiB,WAGb,MADAxoF,MAAKoN,QAAQC,yBAA2B,aACjCrN,OAUf4D,OAAOC,eAAeiwB,EAAOwlD,WAAWj2E,UAAW,YAE/CS,IAAK,WAEDgwB,EAAO4e,OAAO+1C,oBAAoBzoF,KAAKoN,UAI3CpJ,IAAK,SAAUC,GAEX6vB,EAAO4e,OAAOg2C,oBAAoB1oF,KAAKoN,QAASnJ,MAkBxD6vB,EAAOwlD,WAAWqP,aAAe,SAAUC,EAAYC,EAAYn+D,EAAQE,EAAQk+D,EAAOC,GAStF,MAP0B,gBAAfH,KAA2BA,EAAa,GACzB,gBAAfC,KAA2BA,EAAa,GAC7B,gBAAXn+D,KAAuBA,EAAS,GACrB,gBAAXE,KAAuBA,EAAS,GACtB,gBAAVk+D,KAAsBA,EAAQ,GACpB,gBAAVC,KAAsBA,EAAQ,IAEhCnpD,GAAIlV,EAAQmV,GAAIjV,EAAQF,OAAQA,EAAQE,OAAQA,EAAQk+D,MAAOA,EAAOC,MAAOA,EAAOH,WAAYA,EAAYC,WAAYA,EAAY1jF,GAAIyjF,EAAYxjF,GAAIyjF,IAIrK/0D,EAAOwlD,WAAWj2E,UAAUC,YAAcwwB,EAAOwlD,WAajDx5E,KAAK6c,SAAW,WAEZ7c,KAAKqI,uBAAuBrC,KAAK9F,MAEjCA,KAAKmC,YAAa,EAQlBnC,KAAKoe,UAAY,EAQjBpe,KAAKsd,UAAY,EASjBtd,KAAK+hB,UAAY,EASjB/hB,KAAKwc,gBASLxc,KAAKyL,KAAO,SASZzL,KAAK4L,UAAY9L,KAAK+L,WAAWC,OASjC9L,KAAKgpF,YAAc,KASnBhpF,KAAKib,UAQLjb,KAAKkE,QAAS,EAQdlE,KAAKipF,cAAgB,EAErBjpF,KAAKkpF,aAAe,GAAIppF,MAAKkD,UAAU,EAAE,EAAE,EAAE,GAS7ChD,KAAK4V,OAAQ,EASb5V,KAAKmpF,YAAa,EASlBnpF,KAAKopF,mBAAoB,GAK7BtpF,KAAK6c,SAAStZ,UAAYO,OAAOwE,OAAQtI,KAAKqI,uBAAuB9E,WACrEvD,KAAK6c,SAAStZ,UAAUC,YAAcxD,KAAK6c,SAW3C7c,KAAK6c,SAAStZ,UAAUgmF,UAAY,SAAS/rE,EAAW/C,EAAOvY,GAsB3D,MApBAhC,MAAKsd,UAAYA,GAAa,EAC9Btd,KAAK+hB,UAAYxH,GAAS,EAC1Bva,KAAKgiB,UAAuBvY,SAAVzH,EAAuB,EAAIA,EAEzChC,KAAKgpF,cAEDhpF,KAAKgpF,YAAYlsE,MAAMD,OAAOnZ,OAG9B1D,KAAKspF,UAAU,GAAIxpF,MAAK8iC,QAAQ5iC,KAAKgpF,YAAYlsE,MAAMD,OAAOE,MAAM,OAKpE/c,KAAKgpF,YAAY1rE,UAAYtd,KAAKsd,UAClCtd,KAAKgpF,YAAYjnE,UAAY/hB,KAAK+hB,UAClC/hB,KAAKgpF,YAAYhnE,UAAYhiB,KAAKgiB,YAInChiB,MAWXF,KAAK6c,SAAStZ,UAAU8sB,OAAS,SAASzqB,EAAGC,GAIzC,MAFA3F,MAAKspF,UAAU,GAAIxpF,MAAK8iC,SAASl9B,EAAGC,KAE7B3F,MAYXF,KAAK6c,SAAStZ,UAAU+sB,OAAS,SAAS1qB,EAAGC,GAUzC,MARK3F,MAAKgpF,aAENhpF,KAAKmwB,OAAO,EAAG,GAGnBnwB,KAAKgpF,YAAYlsE,MAAMD,OAAOtY,KAAKmB,EAAGC,GACtC3F,KAAK4V,OAAQ,EAEN5V,MAcXF,KAAK6c,SAAStZ,UAAUiuB,iBAAmB,SAASnS,EAAKC,EAAKC,EAAKC,GAE3Dtf,KAAKgpF,YAEwC,IAAzChpF,KAAKgpF,YAAYlsE,MAAMD,OAAOnZ,SAE9B1D,KAAKgpF,YAAYlsE,MAAMD,QAAU,EAAG,IAKxC7c,KAAKmwB,OAAO,EAAE,EAGlB,IAAIvQ,GACAC,EACAlO,EAAI,GACJkL,EAAS7c,KAAKgpF,YAAYlsE,MAAMD,MAEd,KAAlBA,EAAOnZ,QAEP1D,KAAKmwB,OAAO,EAAG,EAMnB,KAAK,GAHDlR,GAAQpC,EAAOA,EAAOnZ,OAAS,GAC/Bwb,EAAQrC,EAAOA,EAAOnZ,OAAS,GAC/BY,EAAI,EACCb,EAAI,EAAQkO,GAALlO,IAAUA,EAEtBa,EAAIb,EAAIkO,EAERiO,EAAKX,GAAWE,EAAMF,GAAS3a,EAC/Bub,EAAKX,GAAWE,EAAMF,GAAS5a,EAE/BuY,EAAOtY,KAAMqb,GAAST,GAASE,EAAMF,GAAO7a,EAAOsb,GAAMtb,EAC5Cub,GAAST,GAASE,EAAMF,GAAO9a,EAAOub,GAAMvb,EAK7D,OAFAtE,MAAK4V,OAAQ,EAEN5V,MAeXF,KAAK6c,SAAStZ,UAAU4tB,cAAgB,SAAS9R,EAAKC,EAAKmqE,EAAMC,EAAMnqE,EAAKC,GAEpEtf,KAAKgpF,YAEwC,IAAzChpF,KAAKgpF,YAAYlsE,MAAMD,OAAOnZ,SAE9B1D,KAAKgpF,YAAYlsE,MAAMD,QAAU,EAAG,IAKxC7c,KAAKmwB,OAAO,EAAE,EAelB,KAAK,GAXDs5D,GACAC,EACAC,EACAC,EACAC,EALAl4E,EAAI,GAMJkL,EAAS7c,KAAKgpF,YAAYlsE,MAAMD,OAEhCoC,EAAQpC,EAAOA,EAAOnZ,OAAO,GAC7Bwb,EAAQrC,EAAOA,EAAOnZ,OAAO,GAC7BY,EAAI,EAECb,EAAI,EAAQkO,GAALlO,IAAUA,EAEtBa,EAAIb,EAAIkO,EAER83E,EAAM,EAAInlF,EACVolF,EAAMD,EAAKA,EACXE,EAAMD,EAAMD,EAEZG,EAAKtlF,EAAIA,EACTulF,EAAKD,EAAKtlF,EAEVuY,EAAOtY,KAAMolF,EAAM1qE,EAAQ,EAAIyqE,EAAMplF,EAAI6a,EAAM,EAAIsqE,EAAKG,EAAKL,EAAOM,EAAKxqE,EAC5DsqE,EAAMzqE,EAAQ,EAAIwqE,EAAMplF,EAAI8a,EAAM,EAAIqqE,EAAKG,EAAKJ,EAAOK,EAAKvqE,EAK7E,OAFAtf,MAAK4V,OAAQ,EAEN5V,MAgBXF,KAAK6c,SAAStZ,UAAUymF,MAAQ,SAASp9E,EAAIC,EAAIC,EAAIC,EAAI8R,GAEjD3e,KAAKgpF,YAEwC,IAAzChpF,KAAKgpF,YAAYlsE,MAAMD,OAAOnZ,QAE9B1D,KAAKgpF,YAAYlsE,MAAMD,OAAOtY,KAAKmI,EAAIC,GAK3C3M,KAAKmwB,OAAOzjB,EAAIC,EAGpB,IAAIkQ,GAAS7c,KAAKgpF,YAAYlsE,MAAMD,OAChCoC,EAAQpC,EAAOA,EAAOnZ,OAAO,GAC7Bwb,EAAQrC,EAAOA,EAAOnZ,OAAO,GAC7B0d,EAAKlC,EAAQvS,EACb0U,EAAKpC,EAAQvS,EACb6U,EAAK1U,EAAOF,EACZ6U,EAAK5U,EAAOF,EACZq9E,EAAKppF,KAAKshB,IAAIb,EAAKI,EAAKH,EAAKE,EAEjC,IAAS,KAALwoE,GAA0B,IAAXprE,GAEX9B,EAAOA,EAAOnZ,OAAO,KAAOgJ,GAAMmQ,EAAOA,EAAOnZ,OAAO,KAAOiJ,IAE9DkQ,EAAOtY,KAAKmI,EAAIC,OAIxB,CACI,GAAIq9E,GAAK5oE,EAAKA,EAAKC,EAAKA,EACpB4oE,EAAK1oE,EAAKA,EAAKC,EAAKA,EACpB0oE,EAAK9oE,EAAKG,EAAKF,EAAKG,EACpB2oE,EAAKxrE,EAAShe,KAAKiF,KAAKokF,GAAMD,EAC9BK,EAAKzrE,EAAShe,KAAKiF,KAAKqkF,GAAMF,EAC9BM,EAAKF,EAAKD,EAAKF,EACfM,EAAKF,EAAKF,EAAKD,EACf37E,EAAK67E,EAAK3oE,EAAK4oE,EAAK/oE,EACpB9S,EAAK47E,EAAK5oE,EAAK6oE,EAAKhpE,EACpB1O,EAAK2O,GAAM+oE,EAAKC,GAChB13E,EAAKyO,GAAMgpE,EAAKC,GAChBE,EAAK/oE,GAAM2oE,EAAKG,GAChBE,EAAKjpE,GAAM4oE,EAAKG,GAChBG,EAAa9pF,KAAKkF,MAAM8M,EAAKpE,EAAImE,EAAKpE,GACtCo8E,EAAa/pF,KAAKkF,MAAM2kF,EAAKj8E,EAAIg8E,EAAKj8E,EAE1CtO,MAAKywB,IAAIniB,EAAK5B,EAAI6B,EAAK5B,EAAIgS,EAAQ8rE,EAAYC,EAAUrpE,EAAKE,EAAKC,EAAKJ,GAK5E,MAFAphB,MAAK4V,OAAQ,EAEN5V,MAeXF,KAAK6c,SAAStZ,UAAUotB,IAAM,SAASniB,EAAIC,EAAIoQ,EAAQ8rE,EAAYC,EAAUC,GAGzE,GAAIF,IAAeC,EAEf,MAAO1qF,KAGWyJ,UAAlBkhF,IAA+BA,GAAgB,IAE9CA,GAA6BF,GAAZC,EAElBA,GAAsB,EAAV/pF,KAAKC,GAEZ+pF,GAA+BD,GAAdD,IAEtBA,GAAwB,EAAV9pF,KAAKC,GAGvB,IAAIgqF,GAAQD,EAA0C,IAAzBF,EAAaC,GAAkBA,EAAWD,EACnEI,EAAqD,GAA7ClqF,KAAKo3B,KAAKp3B,KAAKshB,IAAI2oE,IAAoB,EAAVjqF,KAAKC,IAG9C,IAAc,IAAVgqF,EAEA,MAAO5qF,KAGX,IAAI8qF,GAASx8E,EAAK3N,KAAK8E,IAAIglF,GAAc9rE,EACrCosE,EAASx8E,EAAK5N,KAAK6E,IAAIilF,GAAc9rE,CAErCgsE,IAAiB3qF,KAAKgrF,QAEtBhrF,KAAKmwB,OAAO7hB,EAAIC,GAIhBvO,KAAKmwB,OAAO26D,EAAQC,EAgBxB,KAAK,GAZDluE,GAAS7c,KAAKgpF,YAAYlsE,MAAMD,OAEhCouE,EAAQL,GAAgB,EAAPC,GACjBK,EAAiB,EAARD,EAETE,EAASxqF,KAAK8E,IAAIwlF,GAClBG,EAASzqF,KAAK6E,IAAIylF,GAElBI,EAAWR,EAAO,EAElBS,EAAaD,EAAW,EAAKA,EAExB5nF,EAAI,EAAQ4nF,GAAL5nF,EAAeA,IAC/B,CACI,GAAI8nF,GAAQ9nF,EAAI6nF,EAAY7nF,EAExBu5B,EAAS,EAAUytD,EAAcS,EAASK,EAE1CtmF,EAAItE,KAAK8E,IAAIu3B,GACbkF,GAAKvhC,KAAK6E,IAAIw3B,EAElBngB,GAAOtY,MAAQ4mF,EAAUlmF,EAAMmmF,EAASlpD,GAAOvjB,EAASrQ,GACzC68E,GAAUjpD,EAAMkpD,EAASnmF,GAAO0Z,EAASpQ,GAK5D,MAFAvO,MAAK4V,OAAQ,EAEN5V,MAYXF,KAAK6c,SAAStZ,UAAUmoF,UAAY,SAASjxE,EAAOvY,GAgBhD,MAdAhC,MAAKgrF,SAAU,EACfhrF,KAAKme,UAAY5D,GAAS,EAC1Bva,KAAKoe,UAAuB3U,SAAVzH,EAAuB,EAAIA,EAEzChC,KAAKgpF,aAEDhpF,KAAKgpF,YAAYlsE,MAAMD,OAAOnZ,QAAU,IAExC1D,KAAKgpF,YAAY/rE,KAAOjd,KAAKgrF,QAC7BhrF,KAAKgpF,YAAY7qE,UAAYne,KAAKme,UAClCne,KAAKgpF,YAAY5qE,UAAYpe,KAAKoe,WAInCpe,MASXF,KAAK6c,SAAStZ,UAAUooF,QAAU,WAM9B,MAJAzrF,MAAKgrF,SAAU,EACfhrF,KAAKme,UAAY,KACjBne,KAAKoe,UAAY,EAEVpe,MAYXF,KAAK6c,SAAStZ,UAAUqoF,SAAW,SAAShmF,EAAGC,EAAGkB,EAAOC,GAIrD,MAFA9G,MAAKspF,UAAU,GAAIxpF,MAAKkD,UAAU0C,EAAGC,EAAGkB,EAAOC,IAExC9G,MAWXF,KAAK6c,SAAStZ,UAAUsoF,gBAAkB,SAASjmF,EAAGC,EAAGkB,EAAOC,EAAQ6X,GAIpE,MAFA3e,MAAKspF,UAAU,GAAIxpF,MAAKqlC,iBAAiBz/B,EAAGC,EAAGkB,EAAOC,EAAQ6X,IAEvD3e,MAYXF,KAAK6c,SAAStZ,UAAUuoF,WAAa,SAASlmF,EAAGC,EAAGu2B,GAIhD,MAFAl8B,MAAKspF,UAAU,GAAIxpF,MAAKm8B,OAAOv2B,EAAGC,EAAGu2B,IAE9Bl8B,MAaXF,KAAK6c,SAAStZ,UAAUwoF,YAAc,SAASnmF,EAAGC,EAAGkB,EAAOC,GAIxD,MAFA9G,MAAKspF,UAAU,GAAIxpF,MAAKq+B,QAAQz4B,EAAGC,EAAGkB,EAAOC,IAEtC9G,MAUXF,KAAK6c,SAAStZ,UAAUyoF,YAAc,SAASC,IAEvCA,YAAgBj4D,GAAO8O,SAAWmpD,YAAgBjsF,MAAK8iC,WAEvDmpD,EAAOA,EAAKlvE,OAKhB,IAAIA,GAASkvE,CAEb,KAAKtrF,MAAMyT,QAAQ2I,GACnB,CAGIA,EAAS,GAAIpc,OAAM83B,UAAU70B,OAE7B,KAAK,GAAID,GAAI,EAAGA,EAAIoZ,EAAOnZ,SAAUD,EAEjCoZ,EAAOpZ,GAAK80B,UAAU90B,GAM9B,MAFAzD,MAAKspF,UAAU,GAAIx1D,GAAO8O,QAAQ/lB,IAE3B7c,MASXF,KAAK6c,SAAStZ,UAAU+gB,MAAQ,WAS5B,MAPApkB,MAAKsd,UAAY,EACjBtd,KAAKgrF,SAAU,EAEfhrF,KAAK4V,OAAQ,EACb5V,KAAKuc,YAAa,EAClBvc,KAAKwc,gBAEExc,MAYXF,KAAK6c,SAAStZ,UAAUkD,gBAAkB,SAASlF,EAAYmF,GAE3DnF,EAAaA,GAAc,CAE3B,IAAIqF,GAAS1G,KAAKgG,YAEdgmF,EAAe,GAAIlsF,MAAKouB,aAAaxnB,EAAOG,MAAQxF,EAAYqF,EAAOI,OAASzF,GAEhFyG,EAAUhI,KAAKyL,QAAQonB,WAAWq5D,EAAaj7E,OAAQvK,EAS3D,OARAsB,GAAQkE,YAAY3K,WAAaA,EAEjC2qF,EAAa5+E,QAAQzL,MAAMN,EAAYA,GAEvC2qF,EAAa5+E,QAAQ6mB,WAAWvtB,EAAOhB,GAAGgB,EAAOf,GAEjD7F,KAAKyuB,eAAe9T,eAAeza,KAAMgsF,EAAa5+E,SAE/CtF,GAUXhI,KAAK6c,SAAStZ,UAAUuE,aAAe,SAASJ,GAG5C,GAAIxH,KAAKiC,WAAY,GAAwB,IAAfjC,KAAKgC,OAAehC,KAAKkE,UAAW,EAAlE,CAEA,GAAIlE,KAAKmD,eAiBL,OAfInD,KAAK4V,OAAS5V,KAAKopF,qBAEnBppF,KAAK0E,wBAGL1E,KAAKisF,4BAELjsF,KAAKopF,mBAAoB,EACzBppF,KAAK4V,OAAQ,GAGjB5V,KAAKyH,cAAcnF,WAAatC,KAAKsC,eAErCxC,MAAK6H,OAAOtE,UAAUuE,aAAa9B,KAAK9F,KAAKyH,cAAeD,EAa5D,IAPAA,EAAcoD,YAAYI,OAC1BxD,EAAc2b,iBAAiBqB,aAAaxkB,KAAK4L,WAE7C5L,KAAKkD,OAAOsE,EAAcyD,YAAYC,SAASlL,KAAKkD,MAAOsE,GAC3DxH,KAAKmE,UAAUqD,EAAcsD,cAAcC,WAAW/K,KAAKwE,cAG3DxE,KAAK4L,YAAcpE,EAAcoD,YAAYuC,iBACjD,CACI3F,EAAcoD,YAAYuC,iBAAmBnN,KAAK4L,SAClD,IAAI4a,GAAiB1mB,KAAKolB,gBAAgB1d,EAAcoD,YAAYuC,iBACpE3F,GAAcoD,YAAYlD,GAAG+e,UAAUD,EAAe,GAAIA,EAAe,IAa7E,GATIxmB,KAAKmpF,aAELnpF,KAAK4V,OAAQ,EACb5V,KAAKmpF,YAAa,GAGtBrpF,KAAK0a,cAAcC,eAAeza,KAAMwH,GAGpCxH,KAAKwD,SAASE,OAClB,CACI8D,EAAcoD,YAAYQ,OAG1B,KAAK,GAAI3H,GAAI,EAAGA,EAAIzD,KAAKwD,SAASE,OAAQD,IAEtCzD,KAAKwD,SAASC,GAAGmE,aAAaJ,EAGlCA,GAAcoD,YAAYI,OAG1BhL,KAAKmE,UAAUqD,EAAcsD,cAAcQ,YAC3CtL,KAAKkD,OAAOsE,EAAcyD,YAAYI,QAAQrL,KAAKmL,KAAM3D,GAE7DA,EAAc6b,YAEd7b,EAAcoD,YAAYQ,UAWlCtL,KAAK6c,SAAStZ,UAAUwE,cAAgB,SAASL,GAG7C,GAAIxH,KAAKiC,WAAY,GAAwB,IAAfjC,KAAKgC,OAAehC,KAAKkE,UAAW,EAAlE,CAQA,GALIlE,KAAKksF,YAAclsF,KAAKyL,OACxBzL,KAAK4V,OAAQ,EACb5V,KAAKksF,UAAYlsF,KAAKyL,MAGtBzL,KAAKmD,eAgBL,OAdInD,KAAK4V,OAAS5V,KAAKopF,qBAEnBppF,KAAK0E,wBAGL1E,KAAKisF,4BAELjsF,KAAKopF,mBAAoB,EACzBppF,KAAK4V,OAAQ,GAGjB5V,KAAKyH,cAAczF,MAAQhC,KAAKgC,UAChClC,MAAK6H,OAAOtE,UAAUwE,cAAc/B,KAAK9F,KAAKyH,cAAeD,EAM7D,IAAI4F,GAAU5F,EAAc4F,QACxBqC,EAAYzP,KAAKuC,cAEjBvC,MAAK4L,YAAcpE,EAAc2F,mBAEjC3F,EAAc2F,iBAAmBnN,KAAK4L,UACtCwB,EAAQC,yBAA2BvN,KAAKwN,iBAAiB9F,EAAc2F,mBAGvEnN,KAAKkD,OAELsE,EAAcyD,YAAYC,SAASlL,KAAKkD,MAAOsE,EAGnD,IAAInG,GAAamG,EAAcnG,UAE/B+L,GAAQW,aAAa0B,EAAU1K,EAAI1D,EACdoO,EAAUzK,EAAI3D,EACdoO,EAAUxK,EAAI5D,EACdoO,EAAUvK,EAAI7D,EACdoO,EAAUtK,GAAK9D,EACfoO,EAAUrK,GAAK/D,GAEpCvB,KAAKyuB,eAAe9T,eAAeza,KAAMoN,EAGzC,KAAK,GAAI3J,GAAI,EAAGA,EAAIzD,KAAKwD,SAASE,OAAQD,IAEtCzD,KAAKwD,SAASC,GAAGoE,cAAcL,EAG/BxH,MAAKkD,OAELsE,EAAcyD,YAAYI,QAAQ7D,KAW9C1H,KAAK6c,SAAStZ,UAAU2C,UAAY,SAASC,GAEzC,IAAIjG,KAAKiD,eACT,CAGI,IAAKjD,KAAKmC,WAEN,MAAOrC,MAAKoG,cAGhBlG,MAAK4V,QAEL5V,KAAKmsF,oBACLnsF,KAAKmpF,YAAa,EAClBnpF,KAAKopF,mBAAoB,EACzBppF,KAAK4V,OAAQ,EAGjB,IAAIlP,GAAS1G,KAAKkpF,aAEd58E,EAAK5F,EAAOhB,EACZ6G,EAAK7F,EAAOG,MAAQH,EAAOhB,EAE3B8G,EAAK9F,EAAOf,EACZ8G,EAAK/F,EAAOI,OAASJ,EAAOf,EAE5BpD,EAAiB0D,GAAUjG,KAAKuC,eAEhCwC,EAAIxC,EAAewC,EACnBC,EAAIzC,EAAeyC,EACnBC,EAAI1C,EAAe0C,EACnBC,EAAI3C,EAAe2C,EACnBC,EAAK5C,EAAe4C,GACpBC,EAAK7C,EAAe6C,GAEpBsH,EAAK3H,EAAIwH,EAAKtH,EAAIwH,EAAKtH,EACvBwH,EAAKzH,EAAIuH,EAAKzH,EAAIuH,EAAKnH,EAEvBwH,EAAK7H,EAAIuH,EAAKrH,EAAIwH,EAAKtH,EACvB0H,EAAK3H,EAAIuH,EAAKzH,EAAIsH,EAAKlH,EAEvB0H,EAAK/H,EAAIuH,EAAKrH,EAAIuH,EAAKrH,EACvB4H,EAAK7H,EAAIsH,EAAKxH,EAAIsH,EAAKlH,EAEvB4H,EAAMjI,EAAIwH,EAAKtH,EAAIuH,EAAKrH,EACxB8H,EAAM/H,EAAIsH,EAAKxH,EAAIuH,EAAKnH,EAExBoF,EAAOkC,EACPjC,EAAOkC,EAEPtC,EAAOqC,EACPnC,EAAOoC,CAEXtC,GAAYA,EAALuC,EAAYA,EAAKvC,EACxBA,EAAYA,EAALyC,EAAYA,EAAKzC,EACxBA,EAAYA,EAAL2C,EAAYA,EAAK3C,EAExBE,EAAYA,EAALsC,EAAYA,EAAKtC,EACxBA,EAAYA,EAALwC,EAAYA,EAAKxC,EACxBA,EAAYA,EAAL0C,EAAYA,EAAK1C,EAExBC,EAAOoC,EAAKpC,EAAOoC,EAAKpC,EACxBA,EAAOsC,EAAKtC,EAAOsC,EAAKtC,EACxBA,EAAOwC,EAAKxC,EAAOwC,EAAKxC,EAExBC,EAAOoC,EAAKpC,EAAOoC,EAAKpC,EACxBA,EAAOsC,EAAKtC,EAAOsC,EAAKtC,EACxBA,EAAOwC,EAAKxC,EAAOwC,EAAKxC,EAExBzK,KAAK+C,QAAQ2C,EAAI2E,EACjBrK,KAAK+C,QAAQ8D,MAAQ2D,EAAOH,EAE5BrK,KAAK+C,QAAQ4C,EAAI4E,EACjBvK,KAAK+C,QAAQ+D,OAAS2D,EAAOF,EAEzBvK,KAAKiD,eAAiBjD,KAAK+C,QAG/B,MAAO/C,MAAKiD,gBAShBnD,KAAK6c,SAAStZ,UAAUyhC,cAAgB,SAAU3H,GAE9Cn9B,KAAKuC,eAAe+E,aAAa61B,EAAQivD,UAIzC,KAAK,GAFD5vE,GAAexc,KAAKwc,aAEf/Y,EAAI,EAAGA,EAAI+Y,EAAa9Y,OAAQD,IACzC,CACI,GAAI0N,GAAOqL,EAAa/Y,EAExB,IAAK0N,EAAK8L,MAMN9L,EAAK2L,OAEA3L,EAAK2L,MAAMggB,SAAUsvD,UAAU1mF,EAAG0mF,UAAUzmF,GAE7C,OAAO,EAKnB,OAAO,GAQX7F,KAAK6c,SAAStZ,UAAU8oF,kBAAoB,WAExC,GAAI9hF,GAAOC,IACPE,GAAQF,IAERC,EAAOD,IACPG,GAAQH,GAEZ,IAAItK,KAAKwc,aAAa9Y,OAIlB,IAAK,GAFDoZ,GAAOD,EAAQnX,EAAGC,EAAG4T,EAAG8Q,EAEnB5mB,EAAI,EAAGA,EAAIzD,KAAKwc,aAAa9Y,OAAQD,IAC9C,CACI,GAAI0N,GAAOnR,KAAKwc,aAAa/Y,GACzBsT,EAAO5F,EAAK4F,KACZuG,EAAYnM,EAAKmM,SAGrB,IAFAR,EAAQ3L,EAAK2L,MAET/F,IAASjX,KAAK6c,SAASa,MAAQzG,IAASjX,KAAK6c,SAASkB,KAEtDnY,EAAIoX,EAAMpX,EAAI4X,EAAY,EAC1B3X,EAAImX,EAAMnX,EAAI2X,EAAY,EAC1B/D,EAAIuD,EAAMjW,MAAQyW,EAClB+M,EAAIvN,EAAMhW,OAASwW,EAEnBjT,EAAWA,EAAJ3E,EAAWA,EAAI2E,EACtBG,EAAO9E,EAAI6T,EAAI/O,EAAO9E,EAAI6T,EAAI/O,EAE9BD,EAAWA,EAAJ5E,EAAWA,EAAI4E,EACtBE,EAAO9E,EAAI0kB,EAAI5f,EAAO9E,EAAI0kB,EAAI5f,MAE7B,IAAIsM,IAASjX,KAAK6c,SAASe,KAE5BhY,EAAIoX,EAAMpX,EACVC,EAAImX,EAAMnX,EACV4T,EAAIuD,EAAM6B,OAASrB,EAAY,EAC/B+M,EAAIvN,EAAM6B,OAASrB,EAAY,EAE/BjT,EAAeA,EAAR3E,EAAI6T,EAAW7T,EAAI6T,EAAIlP,EAC9BG,EAAO9E,EAAI6T,EAAI/O,EAAO9E,EAAI6T,EAAI/O,EAE9BD,EAAeA,EAAR5E,EAAI0kB,EAAW1kB,EAAI0kB,EAAI9f,EAC9BE,EAAO9E,EAAI0kB,EAAI5f,EAAO9E,EAAI0kB,EAAI5f,MAE7B,IAAIsM,IAASjX,KAAK6c,SAASgB,KAE5BjY,EAAIoX,EAAMpX,EACVC,EAAImX,EAAMnX,EACV4T,EAAIuD,EAAMjW,MAAQyW,EAAY,EAC9B+M,EAAIvN,EAAMhW,OAASwW,EAAY,EAE/BjT,EAAeA,EAAR3E,EAAI6T,EAAW7T,EAAI6T,EAAIlP,EAC9BG,EAAO9E,EAAI6T,EAAI/O,EAAO9E,EAAI6T,EAAI/O,EAE9BD,EAAeA,EAAR5E,EAAI0kB,EAAW1kB,EAAI0kB,EAAI9f,EAC9BE,EAAO9E,EAAI0kB,EAAI5f,EAAO9E,EAAI0kB,EAAI5f,MAGlC,CAEIoS,EAASC,EAAMD,MAEf,KAAK,GAAIvY,GAAI,EAAGA,EAAIuY,EAAOnZ,OAAQY,IAE3BuY,EAAOvY,YAAcwvB,GAAOpyB,OAE5BgE,EAAImX,EAAOvY,GAAGoB,EACdC,EAAIkX,EAAOvY,GAAGqB,IAIdD,EAAImX,EAAOvY,GACXqB,EAAIkX,EAAOvY,EAAI,GAEXA,EAAIuY,EAAOnZ,OAAS,GAEpBY,KAIR+F,EAAuBA,EAAhB3E,EAAI4X,EAAmB5X,EAAI4X,EAAYjT,EAC9CG,EAAO9E,EAAI4X,EAAY9S,EAAO9E,EAAI4X,EAAY9S,EAE9CD,EAAuBA,EAAhB5E,EAAI2X,EAAmB3X,EAAI2X,EAAY/S,EAC9CE,EAAO9E,EAAI2X,EAAY7S,EAAO9E,EAAI2X,EAAY7S,OAO1DJ,GAAO,EACPG,EAAO,EACPD,EAAO,EACPE,EAAO,CAGX,IAAI2hB,GAAUpsB,KAAKipF,aAEnBjpF,MAAKkpF,aAAaxjF,EAAI2E,EAAO+hB,EAC7BpsB,KAAKkpF,aAAariF,MAAS2D,EAAOH,EAAkB,EAAV+hB,EAE1CpsB,KAAKkpF,aAAavjF,EAAI4E,EAAO6hB,EAC7BpsB,KAAKkpF,aAAapiF,OAAU2D,EAAOF,EAAkB,EAAV6hB,GAS/CtsB,KAAK6c,SAAStZ,UAAUqB,sBAAwB,WAE5C,GAAIgC,GAAS1G,KAAKmG,gBAElB,IAAKnG,KAAKyH,cAYNzH,KAAKyH,cAAcuU,OAAOjU,OAAOrB,EAAOG,MAAOH,EAAOI,YAX1D,CACI,GAAIklF,GAAe,GAAIlsF,MAAKouB,aAAaxnB,EAAOG,MAAOH,EAAOI,QAC1DgB,EAAUhI,KAAKyL,QAAQonB,WAAWq5D,EAAaj7E,OAEnD/Q,MAAKyH,cAAgB,GAAI3H,MAAK6H,OAAOG,GACrC9H,KAAKyH,cAAcuU,OAASgwE,EAE5BhsF,KAAKyH,cAAclF,eAAiBvC,KAAKuC,eAQ7CvC,KAAKyH,cAAcS,OAAOxC,IAAMgB,EAAOhB,EAAIgB,EAAOG,OAClD7G,KAAKyH,cAAcS,OAAOvC,IAAMe,EAAOf,EAAIe,EAAOI,QAGlD9G,KAAKyH,cAAcuU,OAAO5O,QAAQ6mB,WAAWvtB,EAAOhB,GAAIgB,EAAOf,GAG/D3F,KAAKsC,WAAa,EAGlBxC,KAAKyuB,eAAe9T,eAAeza,KAAMA,KAAKyH,cAAcuU,OAAO5O,SACnEpN,KAAKyH,cAAczF,MAAQhC,KAAKgC,OASpClC,KAAK6c,SAAStZ,UAAU4oF,0BAA4B,WAEhD,GAAII,GAAersF,KAAKyH,cACpBK,EAAUukF,EAAavkF,QACvBiJ,EAASs7E,EAAarwE,OAAOjL,MAEjCjJ,GAAQkE,YAAYnF,MAAQkK,EAAOlK,MACnCiB,EAAQkE,YAAYlF,OAASiK,EAAOjK,OACpCgB,EAAQoF,KAAKrG,MAAQiB,EAAQqE,MAAMtF,MAAQkK,EAAOlK,MAClDiB,EAAQoF,KAAKpG,OAASgB,EAAQqE,MAAMrF,OAASiK,EAAOjK,OAEpDulF,EAAahkF,OAAS0I,EAAOlK,MAC7BwlF,EAAa/jF,QAAUyI,EAAOjK,OAG9BgB,EAAQkE,YAAY4J,SAQxB9V,KAAK6c,SAAStZ,UAAUipF,oBAAsB,WAE1CtsF,KAAKyH,cAAcK,QAAQvE,SAAQ,GACnCvD,KAAKyH,cAAgB,MAUzB3H,KAAK6c,SAAStZ,UAAUimF,UAAY,SAASxsE,GAErC9c,KAAKgpF,aAGDhpF,KAAKgpF,YAAYlsE,MAAMD,OAAOnZ,QAAU,GAExC1D,KAAKwc,aAAawB,MAI1Bhe,KAAKgpF,YAAc,KAGflsE,YAAiBgX,GAAO8O,UAExB9lB,EAAQA,EAAMwe,QACdxe,EAAMkmB,UAGV,IAAI7xB,GAAO,GAAIrR,MAAKysF,aAAavsF,KAAKsd,UAAWtd,KAAK+hB,UAAW/hB,KAAKgiB,UAAWhiB,KAAKme,UAAWne,KAAKoe,UAAWpe,KAAKgrF,QAASluE,EAY/H,OAVA9c,MAAKwc,aAAajY,KAAK4M,GAEnBA,EAAK4F,OAASjX,KAAK6c,SAASC,OAE5BzL,EAAK2L,MAAME,OAAShd,KAAKgrF,QACzBhrF,KAAKgpF,YAAc73E,GAGvBnR,KAAK4V,OAAQ,EAENzE,GAcXvN,OAAOC,eAAe/D,KAAK6c,SAAStZ,UAAW,iBAE3CS,IAAK,WACD,MAAQ9D,MAAKmD,gBAGjBa,IAAK,SAASC,GAEVjE,KAAKmD,eAAiBc,EAElBjE,KAAKmD,eAELnD,KAAK0E,yBAIL1E,KAAKssF,sBACLtsF,KAAK4V,OAAQ,MA0CzB9V,KAAKysF,aAAe,SAASjvE,EAAWyE,EAAWC,EAAW7D,EAAWC,EAAWnB,EAAMH,GAKtF9c,KAAKsd,UAAYA,EAKjBtd,KAAK+hB,UAAYA,EAKjB/hB,KAAKgiB,UAAYA,EAKjBhiB,KAAKiwB,UAAYlO,EAKjB/hB,KAAKme,UAAYA,EAKjBne,KAAKoe,UAAYA,EAKjBpe,KAAKgwB,UAAY7R,EAKjBne,KAAKid,KAAOA,EAKZjd,KAAK8c,MAAQA,EAKb9c,KAAK+W,KAAO+F,EAAM/F,MAItBjX,KAAKysF,aAAalpF,UAAUC,YAAcxD,KAAKysF,aAO/CzsF,KAAKysF,aAAalpF,UAAUi4B,MAAQ,WAEhC,MAAO,IAAIixD,cACPvsF,KAAKsd,UACLtd,KAAK+hB,UACL/hB,KAAKgiB,UACLhiB,KAAKme,UACLne,KAAKoe,UACLpe,KAAKid,KACLjd,KAAK8c,QA+BbgX,EAAOnX,SAAW,SAAU/X,EAAMc,EAAGC,GAEvB8D,SAAN/D,IAAmBA,EAAI,GACjB+D,SAAN9D,IAAmBA,EAAI,GAM3B3F,KAAK+W,KAAO+c,EAAOsC,SAMnBp2B,KAAK80C,YAAchhB,EAAOmC,OAE1Bn2B,KAAK6c,SAAS7W,KAAK9F,MAEnB8zB,EAAOk/C,UAAUe,KAAKj+D,KAAKhQ,KAAK9F,KAAM4E,EAAMc,EAAGC,EAAG,GAAI,OAI1DmuB,EAAOnX,SAAStZ,UAAYO,OAAOwE,OAAOtI,KAAK6c,SAAStZ,WACxDywB,EAAOnX,SAAStZ,UAAUC,YAAcwwB,EAAOnX,SAE/CmX,EAAOk/C,UAAUe,KAAKC,QAAQluE,KAAKguB,EAAOnX,SAAStZ,WAC/C,QACA,WACA,SACA,UACA,gBACA,eACA,UACA,WACA,cACA,UAGJywB,EAAOnX,SAAStZ,UAAUo6E,iBAAmB3pD,EAAOk/C,UAAUoB,YAAY9tE,UAC1EwtB,EAAOnX,SAAStZ,UAAUq6E,kBAAoB5pD,EAAOk/C,UAAU+F,SAASzyE,UACxEwtB,EAAOnX,SAAStZ,UAAUs6E,iBAAmB7pD,EAAOk/C,UAAUyF,QAAQnyE,UACtEwtB,EAAOnX,SAAStZ,UAAUu6E,cAAgB9pD,EAAOk/C,UAAUe,KAAKztE,UAQhEwtB,EAAOnX,SAAStZ,UAAUiD,UAAY,WAElC,MAAKtG,MAAKy9E,oBAAuBz9E,KAAK09E,qBAAwB19E,KAAK29E,mBAK5D39E,KAAK49E,iBAHD,GAaf9pD,EAAOnX,SAAStZ,UAAUE,QAAU,SAASy3C,GAEzCh7C,KAAKokB,QAEL0P,EAAOk/C,UAAUsC,QAAQjyE,UAAUE,QAAQuC,KAAK9F,KAAMg7C,IAW1DlnB,EAAOnX,SAAStZ,UAAUmpF,aAAe,SAAS3vE,EAAQ4vE,GAEzChjF,SAATgjF,IAAsBA,GAAO,EAEjC,IAAIC,GAAW,GAAI54D,GAAO8O,QAAQ/lB,EAElC,IAAI4vE,EACJ,CACI,GAAIE,GAAe,GAAI74D,GAAOpyB,MAAM1B,KAAK4E,KAAKgkC,OAAOljC,EAAImX,EAAO,GAAGnX,EAAG1F,KAAK4E,KAAKgkC,OAAOjjC,EAAIkX,EAAO,GAAGlX,GACjGinF,EAAK,GAAI94D,GAAOpyB,MAAMmb,EAAO,GAAGnX,EAAImX,EAAO,GAAGnX,EAAGmX,EAAO,GAAGlX,EAAIkX,EAAO,GAAGlX,GACzEknF,EAAK,GAAI/4D,GAAOpyB,MAAMmb,EAAO,GAAGnX,EAAImX,EAAO,GAAGnX,EAAGmX,EAAO,GAAGlX,EAAIkX,EAAO,GAAGlX,GACzEmnF,EAAaD,EAAGjrD,MAAMgrD,EAEtBD,GAAahrD,IAAImrD,GAAc,GAE/B9sF,KAAK8rF,YAAYY,OAKrB1sF,MAAK8rF,YAAYY,IAazB54D,EAAOnX,SAAStZ,UAAU0pF,cAAgB,SAASjkE,EAAUtN,EAASixE,GAErDhjF,SAATgjF,IAAsBA,GAAO,EAEjC,IAIIhpF,GAJAupF,EAAS,GAAIl5D,GAAOpyB,MACpBurF,EAAS,GAAIn5D,GAAOpyB,MACpBwrF,EAAS,GAAIp5D,GAAOpyB,MACpBmb,IAGJ,IAAKrB,EAyBD,GAAIsN,EAAS,YAAcgL,GAAOpyB,MAE9B,IAAK+B,EAAI,EAAGA,EAAI+X,EAAQ9X,OAAQ,EAAGD,IAE/BoZ,EAAOtY,KAAKukB,EAAStN,EAAY,EAAJ/X,KAC7BoZ,EAAOtY,KAAKukB,EAAStN,EAAY,EAAJ/X,EAAQ,KACrCoZ,EAAOtY,KAAKukB,EAAStN,EAAY,EAAJ/X,EAAQ,KAEf,IAAlBoZ,EAAOnZ,SAEP1D,KAAKwsF,aAAa3vE,EAAQ4vE,GAC1B5vE,UAMR,KAAKpZ,EAAI,EAAGA,EAAI+X,EAAQ9X,OAAQD,IAE5BupF,EAAOtnF,EAAIojB,EAAsB,EAAbtN,EAAQ/X,IAC5BupF,EAAOrnF,EAAImjB,EAAsB,EAAbtN,EAAQ/X,GAAS,GACrCoZ,EAAOtY,KAAKyoF,EAAOvwD,YAEG,IAAlB5f,EAAOnZ,SAEP1D,KAAKwsF,aAAa3vE,EAAQ4vE,GAC1B5vE,UAjDZ,IAAIiM,EAAS,YAAcgL,GAAOpyB,MAE9B,IAAK+B,EAAI,EAAGA,EAAIqlB,EAASplB,OAAS,EAAGD,IAEjCzD,KAAKwsF,cAAc1jE,EAAa,EAAJrlB,GAAQqlB,EAAa,EAAJrlB,EAAQ,GAAIqlB,EAAa,EAAJrlB,EAAQ,IAAKgpF,OAKnF,KAAKhpF,EAAI,EAAGA,EAAIqlB,EAASplB,OAAS,EAAGD,IAEjCupF,EAAOtnF,EAAIojB,EAAa,EAAJrlB,EAAQ,GAC5BupF,EAAOrnF,EAAImjB,EAAa,EAAJrlB,EAAQ,GAC5BwpF,EAAOvnF,EAAIojB,EAAa,EAAJrlB,EAAQ,GAC5BwpF,EAAOtnF,EAAImjB,EAAa,EAAJrlB,EAAQ,GAC5BypF,EAAOxnF,EAAIojB,EAAa,EAAJrlB,EAAQ,GAC5BypF,EAAOvnF,EAAImjB,EAAa,EAAJrlB,EAAQ,GAC5BzD,KAAKwsF,cAAcQ,EAAQC,EAAQC,GAAST,IA4D5D34D,EAAOltB,cAAgB,SAAUhC,EAAMiC,EAAOC,EAAQ4P,EAAKlQ,EAAWnF,GAEtDoI,SAARiN,IAAqBA,EAAM,IACbjN,SAAdjD,IAA2BA,EAAYstB,EAAOrmB,WAAW4f,SAC1C5jB,SAAfpI,IAA4BA,EAAa,GAK7CrB,KAAK4E,KAAOA,EAKZ5E,KAAK0W,IAAMA,EAKX1W,KAAK+W,KAAO+c,EAAO2C,cAMnBz2B,KAAK+G,YAAc,GAAIjH,MAAK0C,OAE5B1C,KAAK8G,cAAcd,KAAK9F,KAAM6G,EAAOC,EAAQ9G,KAAK4E,KAAK6B,SAAUD,EAAWnF,GAE5ErB,KAAKgH,OAAS8sB,EAAOltB,cAAcvD,UAAU2D,QAIjD8sB,EAAOltB,cAAcvD,UAAYO,OAAOwE,OAAOtI,KAAK8G,cAAcvD,WAClEywB,EAAOltB,cAAcvD,UAAUC,YAAcwwB,EAAOltB,cAepDktB,EAAOltB,cAAcvD,UAAU8pF,SAAW,SAAU5oE,EAAe7e,EAAGC,EAAGye,GAErEG,EAAc5f,kBAEd3E,KAAK+G,YAAYy1B,SAASjY,EAAchiB,gBACxCvC,KAAK+G,YAAY5B,GAAKO,EACtB1F,KAAK+G,YAAY3B,GAAKO,EAElB3F,KAAKyG,SAASsQ,OAASjX,KAAKG,eAE5BD,KAAK2zB,YAAYpP,EAAevkB,KAAK+G,YAAaqd,GAIlDpkB,KAAK4zB,aAAarP,EAAevkB,KAAK+G,YAAaqd,IAkB3D0P,EAAOltB,cAAcvD,UAAU+pF,YAAc,SAAU7oE,EAAe7e,EAAGC,EAAGye,GAExEpkB,KAAK+G,YAAYitB,WAAWC,UAAUvuB,EAAGC,GAErC3F,KAAKyG,SAASsQ,OAASjX,KAAKG,eAE5BD,KAAK2zB,YAAYpP,EAAevkB,KAAK+G,YAAaqd,GAIlDpkB,KAAK4zB,aAAarP,EAAevkB,KAAK+G,YAAaqd,IAoB3D0P,EAAOltB,cAAcvD,UAAU2D,OAAS,SAAUud,EAAete,EAAQme,GAIjEpkB,KAAK+G,YAAYy1B,SAFN/yB,SAAXxD,GAAmC,OAAXA,EAEEse,EAAchiB,eAId0D,GAG1BjG,KAAKyG,SAASsQ,OAASjX,KAAKG,eAE5BD,KAAK2zB,YAAYpP,EAAevkB,KAAK+G,YAAaqd,GAIlDpkB,KAAK4zB,aAAarP,EAAevkB,KAAK+G,YAAaqd,IA2C3D0P,EAAO0nD,KAAO,SAAU52E,EAAMc,EAAGC,EAAGi4C,EAAMn5B,GAEtC/e,EAAIA,GAAK,EACTC,EAAIA,GAAK,EACTi4C,EAAOA,EAAK1tC,YAAc,GAC1BuU,EAAQA,MAMRzkB,KAAK+W,KAAO+c,EAAOuC,KAMnBr2B,KAAK80C,YAAchhB,EAAOmC,OAO1Bj2B,KAAKosB,QAAU,GAAI0H,GAAOpyB,MAQ1B1B,KAAKqtF,WAAa,KAKlBrtF,KAAK+Q,OAASP,SAASQ,cAAc,UAKrChR,KAAKoN,QAAUpN,KAAK+Q,OAAOE,WAAW,MAKtCjR,KAAKgpB,UAKLhpB,KAAKstF,gBAQLttF,KAAKutF,WAAY,EAMjBvtF,KAAKwtF,KAAO5oF,EAAK6B,SAASpF,WAM1BrB,KAAKytF,MAAQ7vC,EAMb59C,KAAK0tF,gBAAkB,KAMvB1tF,KAAK2tF,aAAe,EAMpB3tF,KAAK4tF,WAAa,EAMlB5tF,KAAKqI,OAAS,EAMdrI,KAAKsI,QAAU,EAEfwrB,EAAOnsB,OAAO7B,KAAK9F,KAAM4E,EAAMc,EAAGC,EAAG7F,KAAKyL,QAAQonB,WAAW3yB,KAAK+Q,SAElE/Q,KAAK6tF,SAASppE,GAED,KAATm5B,GAEA59C,KAAK8tF,cAKbh6D,EAAO0nD,KAAKn4E,UAAYO,OAAOwE,OAAO0rB,EAAOnsB,OAAOtE,WACpDywB,EAAO0nD,KAAKn4E,UAAUC,YAAcwwB,EAAO0nD,KAQ3C1nD,EAAO0nD,KAAKn4E,UAAUiD,UAAY,WAE9B,MAAKtG,MAAKy9E,oBAAuBz9E,KAAK09E,qBAAwB19E,KAAK29E,mBAK5D39E,KAAK49E,iBAHD,GAaf9pD,EAAO0nD,KAAKn4E,UAAUijC,OAAS,aAU/BxS,EAAO0nD,KAAKn4E,UAAUE,QAAU,SAAUy3C,GAEtCh7C,KAAK8H,QAAQvE,SAAQ,GAEjBvD,KAAK+Q,QAAU/Q,KAAK+Q,OAAO4vC,WAE3B3gD,KAAK+Q,OAAO4vC,WAAWh4C,YAAY3I,KAAK+Q,SAIxC/Q,KAAK+Q,OAAS,KACd/Q,KAAKoN,QAAU,MAGnB0mB,EAAOk/C,UAAUsC,QAAQjyE,UAAUE,QAAQuC,KAAK9F,KAAMg7C,IAmB1DlnB,EAAO0nD,KAAKn4E,UAAU0qF,UAAY,SAAUroF,EAAGC,EAAG4U,EAAO0rE,EAAM+H,EAAcC,GAiBzE,MAfUxkF,UAAN/D,IAAmBA,EAAI,GACjB+D,SAAN9D,IAAmBA,EAAI,GACb8D,SAAV8Q,IAAuBA,EAAQ,oBACtB9Q,SAATw8E,IAAsBA,EAAO,GACZx8E,SAAjBukF,IAA8BA,GAAe,GAC9BvkF,SAAfwkF,IAA4BA,GAAa,GAE7CjuF,KAAKykB,MAAM2hE,cAAgB1gF,EAC3B1F,KAAKykB,MAAM4hE,cAAgB1gF,EAC3B3F,KAAKykB,MAAMyhE,YAAc3rE,EACzBva,KAAKykB,MAAM0hE,WAAaF,EACxBjmF,KAAKykB,MAAMupE,aAAeA,EAC1BhuF,KAAKykB,MAAMwpE,WAAaA,EACxBjuF,KAAK4V,OAAQ,EAEN5V,MA0BX8zB,EAAO0nD,KAAKn4E,UAAUwqF,SAAW,SAAUppE,GAEvCA,EAAQA,MACRA,EAAM03D,KAAO13D,EAAM03D,MAAQ,kBAC3B13D,EAAM5U,gBAAkB4U,EAAM5U,iBAAmB,KACjD4U,EAAMxH,KAAOwH,EAAMxH,MAAQ,QAC3BwH,EAAM+4D,MAAQ/4D,EAAM+4D,OAAS,OAC7B/4D,EAAMypE,aAAezpE,EAAMypE,cAAgB,OAC3CzpE,EAAM0pE,aAAe1pE,EAAM0pE,cAAgB,MAC3C1pE,EAAM8L,OAAS9L,EAAM8L,QAAU,QAC/B9L,EAAM2pE,gBAAkB3pE,EAAM2pE,iBAAmB,EACjD3pE,EAAM4pE,SAAW5pE,EAAM4pE,WAAY,EACnC5pE,EAAM6pE,cAAgB7pE,EAAM6pE,eAAiB,IAC7C7pE,EAAM2hE,cAAgB3hE,EAAM2hE,eAAiB,EAC7C3hE,EAAM4hE,cAAgB5hE,EAAM4hE,eAAiB,EAC7C5hE,EAAMyhE,YAAczhE,EAAMyhE,aAAe,gBACzCzhE,EAAM0hE,WAAa1hE,EAAM0hE,YAAc,EACvC1hE,EAAM8pE,KAAO9pE,EAAM8pE,MAAQ,CAE3B,IAAIta,GAAaj0E,KAAKwuF,iBAAiB/pE,EAAM03D,KAiC7C,OA/BI13D,GAAMgqE,YAENxa,EAAWwa,UAAYhqE,EAAMgqE,WAG7BhqE,EAAMiqE,cAENza,EAAWya,YAAcjqE,EAAMiqE,aAG/BjqE,EAAMkqE,aAEN1a,EAAW0a,WAAalqE,EAAMkqE,YAG9BlqE,EAAMmqE,WAEwB,gBAAnBnqE,GAAMmqE,WAEbnqE,EAAMmqE,SAAWnqE,EAAMmqE,SAAW,MAGtC3a,EAAW2a,SAAWnqE,EAAMmqE,UAGhC5uF,KAAK0tF,gBAAkBzZ,EAEvBxvD,EAAM03D,KAAOn8E,KAAK6uF,iBAAiB7uF,KAAK0tF,iBACxC1tF,KAAKykB,MAAQA,EACbzkB,KAAK4V,OAAQ,EAEN5V,MAUX8zB,EAAO0nD,KAAKn4E,UAAUyqF,WAAa,WAE/B9tF,KAAK8H,QAAQkE,YAAY3K,WAAarB,KAAKwtF,KAE3CxtF,KAAKoN,QAAQ+uE,KAAOn8E,KAAKykB,MAAM03D,IAE/B,IAAI2S,GAAa9uF,KAAK49C,IAElB59C,MAAKykB,MAAM4pE,WAEXS,EAAa9uF,KAAK+uF,YAAY/uF,KAAK49C,MAYvC,KAAK,GARDoxC,GAAQF,EAAWv1D,MAAM,kBAGzBg1D,EAAOvuF,KAAKykB,MAAM8pE,KAClBU,KACAC,EAAe,EACfC,EAAiBnvF,KAAKovF,wBAAwBpvF,KAAKykB,MAAM03D,MAEpD14E,EAAI,EAAGA,EAAIurF,EAAMtrF,OAAQD,IAClC,CACI,GAAa,IAAT8qF,EAGA,GAAIjxE,GAAYtd,KAAKoN,QAAQiiF,YAAYL,EAAMvrF,IAAIoD,MAAQ7G,KAAKykB,MAAM2pE,gBAAkBpuF,KAAKosB,QAAQ1mB,MAGzG,CAEI,GAAIo5B,GAAOkwD,EAAMvrF,GAAG81B,MAAM,UACtBjc,EAAYtd,KAAKosB,QAAQ1mB,EAAI1F,KAAKykB,MAAM2pE,eAE5C,IAAI3tF,MAAMyT,QAAQq6E,GAId,IAAK,GAFDe,GAAM,EAEDrqF,EAAI,EAAGA,EAAI65B,EAAKp7B,OAAQuB,IACjC,CACI,GAAIsqF,GAAU5uF,KAAKo3B,KAAK/3B,KAAKoN,QAAQiiF,YAAYvwD,EAAK75B,IAAI4B,MAEtD5B,GAAI,IAEJqqF,GAAOf,EAAKtpF,EAAI,IAGpBqY,EAAYgyE,EAAMC,MAKtB,KAAK,GAAItqF,GAAI,EAAGA,EAAI65B,EAAKp7B,OAAQuB,IACjC,CAEIqY,GAAa3c,KAAKo3B,KAAK/3B,KAAKoN,QAAQiiF,YAAYvwD,EAAK75B,IAAI4B,MAEzD,IAAI8Y,GAAO3f,KAAK4E,KAAKokC,KAAKwmD,WAAWlyE,EAAWixE,GAAQjxE,CAExDA,IAAaqC,GAKzBsvE,EAAWxrF,GAAK9C,KAAKo3B,KAAKza,GAC1B4xE,EAAevuF,KAAK2+B,IAAI4vD,EAAcD,EAAWxrF,IAGrD,GAAIoD,GAAQqoF,EAAelvF,KAAKykB,MAAM2pE,eAEtCpuF,MAAK+Q,OAAOlK,MAAQA,EAAQ7G,KAAKwtF,IAGjC,IAAIiC,GAAaN,EAAeP,SAAW5uF,KAAKykB,MAAM2pE,gBAAkBpuF,KAAKosB,QAAQzmB,EACjFmB,EAAS2oF,EAAaT,EAAMtrF,OAC5BgsF,EAAc1vF,KAAK2tF,YAQvB,IANkB,EAAd+B,GAAmB/uF,KAAKshB,IAAIytE,GAAeD,IAE3CC,GAAeD,GAIC,IAAhBC,EACJ,CACI,GAAI/vE,GAAO+vE,GAAeV,EAAMtrF,OAAS,EACzCoD,IAAU6Y,EAGd3f,KAAK+Q,OAAOjK,OAASA,EAAS9G,KAAKwtF,KAEnCxtF,KAAKoN,QAAQzL,MAAM3B,KAAKwtF,KAAMxtF,KAAKwtF,MAE/B79D,UAAUC,YAEV5vB,KAAKoN,QAAQ+gB,UAAU,EAAG,EAAGnuB,KAAK+Q,OAAOlK,MAAO7G,KAAK+Q,OAAOjK,QAG5D9G,KAAKykB,MAAM5U,kBAEX7P,KAAKoN,QAAQyhB,UAAY7uB,KAAKykB,MAAM5U,gBACpC7P,KAAKoN,QAAQ0hB,SAAS,EAAG,EAAG9uB,KAAK+Q,OAAOlK,MAAO7G,KAAK+Q,OAAOjK,SAG/D9G,KAAKoN,QAAQyhB,UAAY7uB,KAAKykB,MAAMxH,KACpCjd,KAAKoN,QAAQ+uE,KAAOn8E,KAAKykB,MAAM03D,KAC/Bn8E,KAAKoN,QAAQkjB,YAActwB,KAAKykB,MAAM8L,OACtCvwB,KAAKoN,QAAQuiF,aAAe,aAE5B3vF,KAAKoN,QAAQkQ,UAAYtd,KAAKykB,MAAM2pE,gBACpCpuF,KAAKoN,QAAQwiF,QAAU,QACvB5vF,KAAKoN,QAAQyiF,SAAW,OAExB,IAAIC,GACAC,CAKJ,KAHA/vF,KAAK4tF,WAAa,EAGbnqF,EAAI,EAAGA,EAAIurF,EAAMtrF,OAAQD,IAI1BqsF,EAAgB9vF,KAAKykB,MAAM2pE,gBAAkB,EAC7C2B,EAAiB/vF,KAAKykB,MAAM2pE,gBAAkB,EAAI3qF,EAAIgsF,EAAcN,EAAea,OAE/EvsF,EAAI,IAEJssF,GAAkBL,EAAcjsF,GAGX,UAArBzD,KAAKykB,MAAM+4D,MAEXsS,GAAiBZ,EAAeD,EAAWxrF,GAEjB,WAArBzD,KAAKykB,MAAM+4D,QAEhBsS,IAAkBZ,EAAeD,EAAWxrF,IAAM,GAGlDzD,KAAKutF,YAELuC,EAAgBnvF,KAAKi8B,MAAMkzD,GAC3BC,EAAgBpvF,KAAKi8B,MAAMmzD,IAG3B/vF,KAAKgpB,OAAOtlB,OAAS,GAAK1D,KAAKstF,aAAa5pF,OAAS,EAErD1D,KAAKiwF,WAAWjB,EAAMvrF,GAAIqsF,EAAeC,IAIrC/vF,KAAKykB,MAAM8L,QAAUvwB,KAAKykB,MAAM2pE,kBAEhCpuF,KAAKkwF,aAAalwF,KAAKykB,MAAMupE,cAEhB,IAATO,EAEAvuF,KAAKoN,QAAQ+iF,WAAWnB,EAAMvrF,GAAIqsF,EAAeC,GAIjD/vF,KAAKowF,cAAcpB,EAAMvrF,GAAIqsF,EAAeC,GAAe,IAI/D/vF,KAAKykB,MAAMxH,OAEXjd,KAAKkwF,aAAalwF,KAAKykB,MAAMwpE,YAEhB,IAATM,EAEAvuF,KAAKoN,QAAQ05E,SAASkI,EAAMvrF,GAAIqsF,EAAeC,GAI/C/vF,KAAKowF,cAAcpB,EAAMvrF,GAAIqsF,EAAeC,GAAe,IAM3E/vF,MAAK0Z,iBAeToa,EAAO0nD,KAAKn4E,UAAU+sF,cAAgB,SAAUtxD,EAAMp5B,EAAGC,EAAGsX,GAExD,GAAI2gC,GAAO9e,EAAKvF,MAAM,UAClBg1D,EAAOvuF,KAAKykB,MAAM8pE,KAClB8B,EAAO,CAEX,IAAI5vF,MAAMyT,QAAQq6E,GAId,IAAK,GAFDe,GAAM,EAEDrqF,EAAI,EAAGA,EAAI24C,EAAKl6C,OAAQuB,IAEzBA,EAAI,IAEJqqF,GAAOf,EAAKtpF,EAAI,IAGpBorF,EAAO3qF,EAAI4pF,EAEPryE,EAEAjd,KAAKoN,QAAQ05E,SAASlpC,EAAK34C,GAAIorF,EAAM1qF,GAIrC3F,KAAKoN,QAAQ+iF,WAAWvyC,EAAK34C,GAAIorF,EAAM1qF,OAM/C,KAAK,GAAIV,GAAI,EAAGA,EAAI24C,EAAKl6C,OAAQuB,IACjC,CACI,GAAIsqF,GAAU5uF,KAAKo3B,KAAK/3B,KAAKoN,QAAQiiF,YAAYzxC,EAAK34C,IAAI4B,MAG1DwpF,GAAOrwF,KAAK4E,KAAKokC,KAAKwmD,WAAW9pF,EAAG6oF,GAEhCtxE,EAEAjd,KAAKoN,QAAQ05E,SAASlpC,EAAK34C,GAAIorF,EAAM1qF,GAIrC3F,KAAKoN,QAAQ+iF,WAAWvyC,EAAK34C,GAAIorF,EAAM1qF,GAG3CD,EAAI2qF,EAAOd,IAavBz7D,EAAO0nD,KAAKn4E,UAAU6sF,aAAe,SAAUvkD,GAEvCA,GAEA3rC,KAAKoN,QAAQg5E,cAAgBpmF,KAAKykB,MAAM2hE,cACxCpmF,KAAKoN,QAAQi5E,cAAgBrmF,KAAKykB,MAAM4hE,cACxCrmF,KAAKoN,QAAQ84E,YAAclmF,KAAKykB,MAAMyhE,YACtClmF,KAAKoN,QAAQ+4E,WAAanmF,KAAKykB,MAAM0hE,aAIrCnmF,KAAKoN,QAAQg5E,cAAgB,EAC7BpmF,KAAKoN,QAAQi5E,cAAgB,EAC7BrmF,KAAKoN,QAAQ84E,YAAc,EAC3BlmF,KAAKoN,QAAQ+4E,WAAa;EAWlCryD,EAAO0nD,KAAKn4E,UAAU4sF,WAAa,SAAUnxD,EAAMp5B,EAAGC,GAElD,IAAK,GAAIlC,GAAI,EAAGA,EAAIq7B,EAAKp7B,OAAQD,IACjC,CACI,GAAI6sF,GAASxxD,EAAKr7B,EAEdzD,MAAKykB,MAAM8L,QAAUvwB,KAAKykB,MAAM2pE,kBAE5BpuF,KAAKstF,aAAattF,KAAK4tF,cAEvB5tF,KAAKoN,QAAQkjB,YAActwB,KAAKstF,aAAattF,KAAK4tF,aAGtD5tF,KAAKkwF,aAAalwF,KAAKykB,MAAMupE,cAC7BhuF,KAAKoN,QAAQ+iF,WAAWG,EAAQ5qF,EAAGC,IAGnC3F,KAAKykB,MAAMxH,OAEPjd,KAAKgpB,OAAOhpB,KAAK4tF,cAEjB5tF,KAAKoN,QAAQyhB,UAAY7uB,KAAKgpB,OAAOhpB,KAAK4tF,aAG9C5tF,KAAKkwF,aAAalwF,KAAKykB,MAAMwpE,YAC7BjuF,KAAKoN,QAAQ05E,SAASwJ,EAAQ5qF,EAAGC,IAGrCD,GAAK1F,KAAKoN,QAAQiiF,YAAYiB,GAAQzpF,MAEtC7G,KAAK4tF,eAWb95D,EAAO0nD,KAAKn4E,UAAUktF,YAAc,WAMhC,MAJAvwF,MAAKgpB,UACLhpB,KAAKstF,gBACLttF,KAAK4V,OAAQ,EAEN5V,MAmBX8zB,EAAO0nD,KAAKn4E,UAAUmtF,SAAW,SAAUj2E,EAAO9Y,GAK9C,MAHAzB,MAAKgpB,OAAOvnB,GAAY8Y,EACxBva,KAAK4V,OAAQ,EAEN5V,MAqBX8zB,EAAO0nD,KAAKn4E,UAAUotF,eAAiB,SAAUl2E,EAAO9Y,GAKpD,MAHAzB,MAAKstF,aAAa7rF,GAAY8Y,EAC9Bva,KAAK4V,OAAQ,EAEN5V,MAWX8zB,EAAO0nD,KAAKn4E,UAAU0rF,YAAc,SAAUnxC,GAK1C,IAAK,GAHDtsC,GAAS,GACT09E,EAAQpxC,EAAKrkB,MAAM,MAEd91B,EAAI,EAAGA,EAAIurF,EAAMtrF,OAAQD,IAClC,CAII,IAAK,GAHDitF,GAAY1wF,KAAKykB,MAAM6pE,cACvBqC,EAAQ3B,EAAMvrF,GAAG81B,MAAM,KAElBj1B,EAAI,EAAGA,EAAIqsF,EAAMjtF,OAAQY,IAClC,CACI,GAAIssF,GAAY5wF,KAAKoN,QAAQiiF,YAAYsB,EAAMrsF,IAAIuC,MAC/CgqF,EAAqBD,EAAY5wF,KAAKoN,QAAQiiF,YAAY,KAAKxoF,KAE/DgqF,GAAqBH,GAGjBpsF,EAAI,IAEJgN,GAAU,MAEdA,GAAUq/E,EAAMrsF,GAAK,IACrBosF,EAAY1wF,KAAKykB,MAAM6pE,cAAgBsC,IAIvCF,GAAaG,EACbv/E,GAAUq/E,EAAMrsF,GAAK,KAIzBb,EAAIurF,EAAMtrF,OAAO,IAEjB4N,GAAU,MAIlB,MAAOA,IAWXwiB,EAAO0nD,KAAKn4E,UAAUytF,WAAa,SAAU7c,GAEzC,GAAIkI,GAAOn8E,KAAK6uF,iBAAiB5a,EAE7Bj0E,MAAKykB,MAAM03D,OAASA,IAEpBn8E,KAAKykB,MAAM03D,KAAOA,EAClBn8E,KAAK4V,OAAQ,EAET5V,KAAKoC,QAELpC,KAAK2E,oBAajBmvB,EAAO0nD,KAAKn4E,UAAUmrF,iBAAmB,SAAUrS,GAU/C,GAAIz6C,GAAIy6C,EAAK4U,MAAM,uSAEnB,OAAIrvD,IAGIy6C,KAAMA,EACNsS,UAAW/sD,EAAE,IAAM,SACnBgtD,YAAahtD,EAAE,IAAM,SACrBitD,WAAYjtD,EAAE,IAAM,SACpBktD,SAAUltD,EAAE,IAAM,SAClBsvD,WAAYtvD,EAAE,KAKlBhtB,QAAQukB,KAAK,sCAAwCkjD,IAEjDA,KAAMA,KAalBroD,EAAO0nD,KAAKn4E,UAAUwrF,iBAAmB,SAAU5a,GAE/C,GACIxgE,GADA6lB,IAwBJ,OArBA7lB,GAAIwgE,EAAWwa,UACXh7E,GAAW,WAANA,GAAkB6lB,EAAM/0B,KAAKkP,GAEtCA,EAAIwgE,EAAWya,YACXj7E,GAAW,WAANA,GAAkB6lB,EAAM/0B,KAAKkP,GAEtCA,EAAIwgE,EAAW0a,WACXl7E,GAAW,WAANA,GAAkB6lB,EAAM/0B,KAAKkP,GAEtCA,EAAIwgE,EAAW2a,SACXn7E,GAAW,WAANA,GAAkB6lB,EAAM/0B,KAAKkP,GAEtCA,EAAIwgE,EAAW+c,WACXv9E,GAAK6lB,EAAM/0B,KAAKkP,GAEf6lB,EAAM51B,QAGP41B,EAAM/0B,KAAK0vE,EAAWkI,MAGnB7iD,EAAMnlB,KAAK,MAatB2f,EAAO0nD,KAAKn4E,UAAU4tF,QAAU,SAAUrzC,GAKtC,MAHA59C,MAAK49C,KAAOA,EAAK1tC,YAAc,GAC/BlQ,KAAK4V,OAAQ,EAEN5V,MAyBX8zB,EAAO0nD,KAAKn4E,UAAU6tF,UAAY,SAAUC,GAExC,IAAK1wF,MAAMyT,QAAQi9E,GAEf,MAAOnxF,KAMP,KAAK,GAFDkiC,GAAI,GAECz+B,EAAI,EAAGA,EAAI0tF,EAAKztF,OAAQD,IAEzBhD,MAAMyT,QAAQi9E,EAAK1tF,KAEnBy+B,GAAKivD,EAAK1tF,GAAG0Q,KAAK,KAEd1Q,EAAI0tF,EAAKztF,OAAS,IAElBw+B,GAAK,QAKTA,GAAKivD,EAAK1tF,GAENA,EAAI0tF,EAAKztF,OAAS,IAElBw+B,GAAK,KASrB,OAHAliC,MAAK49C,KAAO1b,EACZliC,KAAK4V,OAAQ,EAEN5V,MAmCX8zB,EAAO0nD,KAAKn4E,UAAU+tF,cAAgB,SAAU1rF,EAAGC,EAAGkB,EAAOC,GAyBzD,MAvBU2C,UAAN/D,EAEA1F,KAAKqtF,WAAa,MAIbrtF,KAAKqtF,WAMNrtF,KAAKqtF,WAAW9wD,MAAM72B,EAAGC,EAAGkB,EAAOC,GAJnC9G,KAAKqtF,WAAa,GAAIv5D,GAAO9wB,UAAU0C,EAAGC,EAAGkB,EAAOC,GAOpD9G,KAAKykB,MAAM6pE,cAAgBznF,IAE3B7G,KAAKykB,MAAM6pE,cAAgBznF,IAInC7G,KAAK0Z,gBAEE1Z,MAUX8zB,EAAO0nD,KAAKn4E,UAAUqW,cAAgB,WAElC,GAAIigE,GAAO35E,KAAK8H,QAAQkE,YACpBkB,EAAOlN,KAAK8H,QAAQoF,KACpBf,EAAQnM,KAAK8H,QAAQqE,MAErBoN,EAAIvZ,KAAK+Q,OAAOlK,MAChBwjB,EAAIrqB,KAAK+Q,OAAOjK,MAiBpB,IAfA6yE,EAAK9yE,MAAQ0S,EACbogE,EAAK7yE,OAASujB,EAEdnd,EAAKrG,MAAQ0S,EACbrM,EAAKpG,OAASujB,EAEdle,EAAMtF,MAAQ0S,EACdpN,EAAMrF,OAASujB,EAEfrqB,KAAK8H,QAAQjB,MAAQ0S,EACrBvZ,KAAK8H,QAAQhB,OAASujB,EAEtBrqB,KAAKqI,OAASkR,EACdvZ,KAAKsI,QAAU+hB,EAEXrqB,KAAKqtF,WACT,CACI,GAAI3nF,GAAI1F,KAAKqtF,WAAW3nF,EACpBC,EAAI3F,KAAKqtF,WAAW1nF,CAGQ,WAA5B3F,KAAKykB,MAAMypE,aAEXxoF,EAAI1F,KAAKqtF,WAAWxmF,MAAQ7G,KAAK+Q,OAAOlK,MAEP,WAA5B7G,KAAKykB,MAAMypE,eAEhBxoF,EAAI1F,KAAKqtF,WAAW3vD,UAAa19B,KAAK+Q,OAAOlK,MAAQ,GAGzB,WAA5B7G,KAAKykB,MAAM0pE,aAEXxoF,EAAI3F,KAAKqtF,WAAWvmF,OAAS9G,KAAK+Q,OAAOjK,OAER,WAA5B9G,KAAKykB,MAAM0pE,eAEhBxoF,EAAI3F,KAAKqtF,WAAWzvD,WAAc59B,KAAK+Q,OAAOjK,OAAS,GAG3D9G,KAAK8B,MAAM4D,GAAKA,EAChB1F,KAAK8B,MAAM6D,GAAKA,EAIpB3F,KAAKmC,WAAoB,IAANoX,GAAiB,IAAN8Q,EAE9BrqB,KAAK8H,QAAQkE,YAAY4J,SAW7Bke,EAAO0nD,KAAKn4E,UAAUuE,aAAe,SAAUJ,GAEvCxH,KAAK4V,QAEL5V,KAAK8tF,aACL9tF,KAAK4V,OAAQ,GAGjB9V,KAAK6H,OAAOtE,UAAUuE,aAAa9B,KAAK9F,KAAMwH,IAWlDssB,EAAO0nD,KAAKn4E,UAAUwE,cAAgB,SAAUL,GAExCxH,KAAK4V,QAEL5V,KAAK8tF,aACL9tF,KAAK4V,OAAQ,GAGjB9V,KAAK6H,OAAOtE,UAAUwE,cAAc/B,KAAK9F,KAAMwH,IAWnDssB,EAAO0nD,KAAKn4E,UAAU+rF,wBAA0B,SAAUX,GAEtD,GAAI4C,GAAav9D,EAAO0nD,KAAK8V,oBAAoB7C,EAEjD,KAAK4C,EACL,CACIA,IAEA,IAAItgF,GAAS+iB,EAAO0nD,KAAK+V,qBACrBnkF,EAAU0mB,EAAO0nD,KAAKgW,qBAE1BpkF,GAAQ+uE,KAAOsS,CAEf,IAAI5nF,GAAQlG,KAAKo3B,KAAK3qB,EAAQiiF,YAAY,QAAQxoF,OAC9C4qF,EAAW9wF,KAAKo3B,KAAK3qB,EAAQiiF,YAAY,QAAQxoF,OACjDC,EAAS,EAAI2qF,CAgBjB,IAdAA,EAAsB,IAAXA,EAAiB,EAE5B1gF,EAAOlK,MAAQA,EACfkK,EAAOjK,OAASA,EAEhBsG,EAAQyhB,UAAY,OACpBzhB,EAAQ0hB,SAAS,EAAG,EAAGjoB,EAAOC,GAE9BsG,EAAQ+uE,KAAOsS,EAEfrhF,EAAQuiF,aAAe,aACvBviF,EAAQyhB,UAAY,OACpBzhB,EAAQ05E,SAAS,OAAQ,EAAG2K,IAEvBrkF,EAAQ8D,aAAa,EAAG,EAAGrK,EAAOC,GAQnC,MANAuqF,GAAWrB,OAASyB,EACpBJ,EAAWK,QAAUD,EAAW,EAChCJ,EAAWzC,SAAWyC,EAAWrB,OAASqB,EAAWK,QAErD59D,EAAO0nD,KAAK8V,oBAAoB7C,GAAa4C,EAEtCA,CAGX,IAII5tF,GAAGa,EAJHqtF,EAAYvkF,EAAQ8D,aAAa,EAAG,EAAGrK,EAAOC,GAAQqK,KACtD+d,EAASyiE,EAAUjuF,OACnBo7B,EAAe,EAARj4B,EAIP+qF,EAAM,EACN5mF,GAAO,CAGX,KAAKvH,EAAI,EAAOguF,EAAJhuF,EAAcA,IAC1B,CACI,IAAKa,EAAI,EAAOw6B,EAAJx6B,EAAUA,GAAK,EAEvB,GAA2B,MAAvBqtF,EAAUC,EAAMttF,GACpB,CACI0G,GAAO,CACP,OAIR,GAAKA,EAMD,KAJA4mF,IAAO9yD,EAcf,IANAuyD,EAAWrB,OAASyB,EAAWhuF,EAE/BmuF,EAAM1iE,EAAS4P,EACf9zB,GAAO,EAGFvH,EAAIqD,EAAQrD,EAAIguF,EAAUhuF,IAC/B,CACI,IAAKa,EAAI,EAAOw6B,EAAJx6B,EAAUA,GAAK,EAEvB,GAA2B,MAAvBqtF,EAAUC,EAAMttF,GACpB,CACI0G,GAAO,CACP,OAIR,GAAKA,EAMD,KAJA4mF,IAAO9yD,EAQfuyD,EAAWK,QAAUjuF,EAAIguF,EAEzBJ,EAAWK,SAAW,EACtBL,EAAWzC,SAAWyC,EAAWrB,OAASqB,EAAWK,QAErD59D,EAAO0nD,KAAK8V,oBAAoB7C,GAAa4C,EAGjD,MAAOA,IAYXv9D,EAAO0nD,KAAKn4E,UAAU2C,UAAY,SAAUC,GAQxC,MANIjG,MAAK4V,QAEL5V,KAAK8tF,aACL9tF,KAAK4V,OAAQ,GAGV9V,KAAK6H,OAAOtE,UAAU2C,UAAUF,KAAK9F,KAAMiG,IAYtDrC,OAAOC,eAAeiwB,EAAO0nD,KAAKn4E,UAAW,QAEzCS,IAAK,WACD,MAAO9D,MAAKytF,OAGhBzpF,IAAK,SAASC,GAENA,IAAUjE,KAAKytF,QAEfztF,KAAKytF,MAAQxpF,EAAMiM,YAAc,GACjClQ,KAAK4V,OAAQ,EAET5V,KAAKoC,QAELpC,KAAK2E,sBAmBrBf,OAAOC,eAAeiwB,EAAO0nD,KAAKn4E,UAAW,WAEzCS,IAAK,WACD,MAAO9D,MAAK6uF,iBAAiB7uF,KAAK0tF,kBAGtC1pF,IAAK,SAAUC,GAEXA,EAAQA,GAAS,kBACjBjE,KAAK0tF,gBAAkB1tF,KAAKwuF,iBAAiBvqF,GAC7CjE,KAAK8wF,WAAW9wF,KAAK0tF,oBAgB7B9pF,OAAOC,eAAeiwB,EAAO0nD,KAAKn4E,UAAW,QAEzCS,IAAK,WACD,MAAO9D,MAAK0tF,gBAAgBsD,YAGhChtF,IAAK,SAASC,GAEVA,EAAQA,GAAS,QACjBA,EAAQA,EAAM2J,OAGT,2DAA2DikF,KAAK5tF,IAAW,QAAQ4tF,KAAK5tF,KAEzFA,EAAQ,IAAMA,EAAQ,KAG1BjE,KAAK0tF,gBAAgBsD,WAAa/sF,EAClCjE,KAAK8wF,WAAW9wF,KAAK0tF,oBAe7B9pF,OAAOC,eAAeiwB,EAAO0nD,KAAKn4E,UAAW,YAEzCS,IAAK,WAED,GAAI6kB,GAAO3oB,KAAK0tF,gBAAgBkB,QAEhC,OAAIjmE,IAAQ,cAAckpE,KAAKlpE,GAEpB0R,SAAS1R,EAAM,IAIfA,GAKf3kB,IAAK,SAASC,GAEVA,EAAQA,GAAS,IAEI,gBAAVA,KAEPA,GAAgB,MAGpBjE,KAAK0tF,gBAAgBkB,SAAW3qF,EAChCjE,KAAK8wF,WAAW9wF,KAAK0tF,oBAW7B9pF,OAAOC,eAAeiwB,EAAO0nD,KAAKn4E,UAAW,cAEzCS,IAAK,WACD,MAAO9D,MAAK0tF,gBAAgBiB,YAAc,UAG9C3qF,IAAK,SAASC,GAEVA,EAAQA,GAAS,SACjBjE,KAAK0tF,gBAAgBiB,WAAa1qF,EAClCjE,KAAK8wF,WAAW9wF,KAAK0tF,oBAW7B9pF,OAAOC,eAAeiwB,EAAO0nD,KAAKn4E,UAAW,aAEzCS,IAAK,WACD,MAAO9D,MAAK0tF,gBAAgBe,WAAa,UAG7CzqF,IAAK,SAASC,GAEVA,EAAQA,GAAS,SACjBjE,KAAK0tF,gBAAgBe,UAAYxqF,EACjCjE,KAAK8wF,WAAW9wF,KAAK0tF,oBAW7B9pF,OAAOC,eAAeiwB,EAAO0nD,KAAKn4E,UAAW,eAEzCS,IAAK,WACD,MAAO9D,MAAK0tF,gBAAgBgB,aAAe,UAG/C1qF,IAAK,SAASC,GAEVA,EAAQA,GAAS,SACjBjE,KAAK0tF,gBAAgBgB,YAAczqF,EACnCjE,KAAK8wF,WAAW9wF,KAAK0tF,oBAU7B9pF,OAAOC,eAAeiwB,EAAO0nD,KAAKn4E,UAAW,QAEzCS,IAAK,WACD,MAAO9D,MAAKykB,MAAMxH,MAGtBjZ,IAAK,SAASC,GAENA,IAAUjE,KAAKykB,MAAMxH,OAErBjd,KAAKykB,MAAMxH,KAAOhZ,EAClBjE,KAAK4V,OAAQ,MAczBhS,OAAOC,eAAeiwB,EAAO0nD,KAAKn4E,UAAW,SAEzCS,IAAK,WACD,MAAO9D,MAAKykB,MAAM+4D,OAGtBx5E,IAAK,SAASC,GAENA,IAAUjE,KAAKykB,MAAM+4D,QAErBx9E,KAAKykB,MAAM+4D,MAAQv5E,EACnBjE,KAAK4V,OAAQ,MAazBhS,OAAOC,eAAeiwB,EAAO0nD,KAAKn4E,UAAW,cAEzCS,IAAK,WACD,MAAO9D,MAAKwtF,MAGhBxpF,IAAK,SAASC,GAENA,IAAUjE,KAAKwtF,OAEfxtF,KAAKwtF,KAAOvpF,EACZjE,KAAK4V,OAAQ,MAgBzBhS,OAAOC,eAAeiwB,EAAO0nD,KAAKn4E,UAAW,QAEzCS,IAAK,WACD,MAAO9D,MAAKykB,MAAM8pE,MAGtBvqF,IAAK,SAASC,GAENA,IAAUjE,KAAKykB,MAAM8pE,OAErBvuF,KAAKykB,MAAM8pE,KAAOtqF,EAClBjE,KAAK4V,OAAQ,MAYzBhS,OAAOC,eAAeiwB,EAAO0nD,KAAKn4E,UAAW,gBAEzCS,IAAK,WACD,MAAO9D,MAAKykB,MAAMypE,cAGtBlqF,IAAK,SAASC,GAENA,IAAUjE,KAAKykB,MAAMypE,eAErBluF,KAAKykB,MAAMypE,aAAejqF,EAC1BjE,KAAK4V,OAAQ,MAYzBhS,OAAOC,eAAeiwB,EAAO0nD,KAAKn4E,UAAW,gBAEzCS,IAAK,WACD,MAAO9D,MAAKykB,MAAM0pE,cAGtBnqF,IAAK,SAASC,GAENA,IAAUjE,KAAKykB,MAAM0pE,eAErBnuF,KAAKykB,MAAM0pE,aAAelqF,EAC1BjE,KAAK4V,OAAQ,MAWzBhS,OAAOC,eAAeiwB,EAAO0nD,KAAKn4E,UAAW,UAEzCS,IAAK,WACD,MAAO9D,MAAKykB,MAAM8L,QAGtBvsB,IAAK,SAASC,GAENA,IAAUjE,KAAKykB,MAAM8L,SAErBvwB,KAAKykB,MAAM8L,OAAStsB,EACpBjE,KAAK4V,OAAQ,MAWzBhS,OAAOC,eAAeiwB,EAAO0nD,KAAKn4E,UAAW,mBAEzCS,IAAK,WACD,MAAO9D,MAAKykB,MAAM2pE,iBAGtBpqF,IAAK,SAASC,GAENA,IAAUjE,KAAKykB,MAAM2pE,kBAErBpuF,KAAKykB,MAAM2pE,gBAAkBnqF,EAC7BjE,KAAK4V,OAAQ,MAWzBhS,OAAOC,eAAeiwB,EAAO0nD,KAAKn4E,UAAW,YAEzCS,IAAK,WACD,MAAO9D,MAAKykB,MAAM4pE,UAGtBrqF,IAAK,SAASC,GAENA,IAAUjE,KAAKykB,MAAM4pE,WAErBruF,KAAKykB,MAAM4pE,SAAWpqF,EACtBjE,KAAK4V,OAAQ,MAWzBhS,OAAOC,eAAeiwB,EAAO0nD,KAAKn4E,UAAW,iBAEzCS,IAAK,WACD,MAAO9D,MAAKykB,MAAM6pE,eAGtBtqF,IAAK,SAASC,GAENA,IAAUjE,KAAKykB,MAAM6pE,gBAErBtuF,KAAKykB,MAAM6pE,cAAgBrqF,EAC3BjE,KAAK4V,OAAQ,MAWzBhS,OAAOC,eAAeiwB,EAAO0nD,KAAKn4E,UAAW,eAEzCS,IAAK,WACD,MAAO9D,MAAK2tF,cAGhB3pF,IAAK,SAASC,GAENA,IAAUjE,KAAK2tF,eAEf3tF,KAAK2tF,aAAemE,WAAW7tF,GAC/BjE,KAAK4V,OAAQ,EAET5V,KAAKoC,QAELpC,KAAK2E,sBAYrBf,OAAOC,eAAeiwB,EAAO0nD,KAAKn4E,UAAW,iBAEzCS,IAAK,WACD,MAAO9D,MAAKykB,MAAM2hE,eAGtBpiF,IAAK,SAASC,GAENA,IAAUjE,KAAKykB,MAAM2hE,gBAErBpmF,KAAKykB,MAAM2hE,cAAgBniF,EAC3BjE,KAAK4V,OAAQ,MAWzBhS,OAAOC,eAAeiwB,EAAO0nD,KAAKn4E,UAAW,iBAEzCS,IAAK,WACD,MAAO9D,MAAKykB,MAAM4hE,eAGtBriF,IAAK,SAASC,GAENA,IAAUjE,KAAKykB,MAAM4hE,gBAErBrmF,KAAKykB,MAAM4hE,cAAgBpiF,EAC3BjE,KAAK4V,OAAQ,MAWzBhS,OAAOC,eAAeiwB,EAAO0nD,KAAKn4E,UAAW,eAEzCS,IAAK,WACD,MAAO9D,MAAKykB,MAAMyhE,aAGtBliF,IAAK,SAASC,GAENA,IAAUjE,KAAKykB,MAAMyhE,cAErBlmF,KAAKykB,MAAMyhE,YAAcjiF,EACzBjE,KAAK4V,OAAQ,MAWzBhS,OAAOC,eAAeiwB,EAAO0nD,KAAKn4E,UAAW,cAEzCS,IAAK,WACD,MAAO9D,MAAKykB,MAAM0hE,YAGtBniF,IAAK,SAASC,GAENA,IAAUjE,KAAKykB,MAAM0hE,aAErBnmF,KAAKykB,MAAM0hE,WAAaliF,EACxBjE,KAAK4V,OAAQ,MAWzBhS,OAAOC,eAAeiwB,EAAO0nD,KAAKn4E,UAAW,gBAEzCS,IAAK,WACD,MAAO9D,MAAKykB,MAAMupE,cAGtBhqF,IAAK,SAASC,GAENA,IAAUjE,KAAKykB,MAAMupE,eAErBhuF,KAAKykB,MAAMupE,aAAe/pF,EAC1BjE,KAAK4V,OAAQ,MAWzBhS,OAAOC,eAAeiwB,EAAO0nD,KAAKn4E,UAAW,cAEzCS,IAAK,WACD,MAAO9D,MAAKykB,MAAMwpE,YAGtBjqF,IAAK,SAASC,GAENA,IAAUjE,KAAKykB,MAAMwpE,aAErBjuF,KAAKykB,MAAMwpE,WAAahqF,EACxBjE,KAAK4V,OAAQ,MAWzBhS,OAAOC,eAAeiwB,EAAO0nD,KAAKn4E,UAAW,SAEzCS,IAAK,WAQD,MANI9D,MAAK4V,QAEL5V,KAAK8tF,aACL9tF,KAAK4V,OAAQ,GAGV5V,KAAK2B,MAAM+D,EAAI1F,KAAK8H,QAAQqE,MAAMtF,OAG7C7C,IAAK,SAASC,GAEVjE,KAAK2B,MAAM+D,EAAIzB,EAAQjE,KAAK8H,QAAQqE,MAAMtF,MAC1C7G,KAAKqI,OAASpE,KAStBL,OAAOC,eAAeiwB,EAAO0nD,KAAKn4E,UAAW,UAEzCS,IAAK,WAQD,MANI9D,MAAK4V,QAEL5V,KAAK8tF,aACL9tF,KAAK4V,OAAQ,GAGV5V,KAAK2B,MAAMgE,EAAI3F,KAAK8H,QAAQqE,MAAMrF,QAG7C9C,IAAK,SAASC,GAEVjE,KAAK2B,MAAMgE,EAAI1B,EAAQjE,KAAK8H,QAAQqE,MAAMrF,OAC1C9G,KAAKsI,QAAUrE,KAKvB6vB,EAAO0nD,KAAK8V,uBAEZx9D,EAAO0nD,KAAK+V,qBAAuB/gF,SAASQ,cAAc,UAC1D8iB,EAAO0nD,KAAKgW,sBAAwB19D,EAAO0nD,KAAK+V,qBAAqBtgF,WAAW,MAqDhF6iB,EAAO6hD,WAAa,SAAU/wE,EAAMc,EAAGC,EAAGw2E,EAAMv+B,EAAMj1B,EAAM60D,GAExD93E,EAAIA,GAAK,EACTC,EAAIA,GAAK,EACTw2E,EAAOA,GAAQ,GACfv+B,EAAOA,GAAQ,GACfj1B,EAAOA,GAAQ,GACf60D,EAAQA,GAAS,OAEjB19E,KAAKqI,uBAAuBrC,KAAK9F,MAMjCA,KAAK+W,KAAO+c,EAAOyC,WAMnBv2B,KAAK80C,YAAchhB,EAAOmC,OAM1Bj2B,KAAK+xF,UAAY,EAMjB/xF,KAAKgyF,WAAa,EAKlBhyF,KAAKkI,OAAS,GAAI4rB,GAAOpyB,MAMzB1B,KAAKiyF,YAAc,GAAIn+D,GAAOpyB,MAM9B1B,KAAK41E,WAML51E,KAAKkyF,UAAY,EAMjBlyF,KAAKytF,MAAQ7vC,EAMb59C,KAAKmyF,MAAQvtF,EAAKikC,MAAMupD,cAAcjW,GAMtCn8E,KAAKqyF,MAAQlW,EAMbn8E,KAAKsyF,UAAY3pE,EAMjB3oB,KAAKuyF,OAAS/U,EAMdx9E,KAAKwyF,MAAQ,SAEbxyF,KAAK8tF,aAKL9tF,KAAK4V,OAAQ,EAEbke,EAAOk/C,UAAUe,KAAKj+D,KAAKhQ,KAAK9F,KAAM4E,EAAMc,EAAGC,EAAG,GAAI,OAI1DmuB,EAAO6hD,WAAWtyE,UAAYO,OAAOwE,OAAOtI,KAAKqI,uBAAuB9E,WACxEywB,EAAO6hD,WAAWtyE,UAAUC,YAAcwwB,EAAO6hD,WAEjD7hD,EAAOk/C,UAAUe,KAAKC,QAAQluE,KAAKguB,EAAO6hD,WAAWtyE,WACjD,QACA,WACA,SACA,UACA,gBACA,eACA,UACA,WACA,cACA,UAGJywB,EAAO6hD,WAAWtyE,UAAUo6E,iBAAmB3pD,EAAOk/C,UAAUoB,YAAY9tE,UAC5EwtB,EAAO6hD,WAAWtyE,UAAUq6E,kBAAoB5pD,EAAOk/C,UAAU+F,SAASzyE,UAC1EwtB,EAAO6hD,WAAWtyE,UAAUs6E,iBAAmB7pD,EAAOk/C,UAAUyF,QAAQnyE,UACxEwtB,EAAO6hD,WAAWtyE,UAAUu6E,cAAgB9pD,EAAOk/C,UAAUe,KAAKztE,UASlEwtB,EAAO6hD,WAAWtyE,UAAUiD,UAAY,WAEpC,MAAKtG,MAAKy9E,oBAAuBz9E,KAAK09E,qBAAwB19E,KAAK29E,mBAK5D39E,KAAK49E,iBAHD,GAWf9pD,EAAO6hD,WAAWtyE,UAAU0uC,WAAa,WAErCje,EAAOk/C,UAAUoB,YAAYriC,WAAWjsC,KAAK9F,MAC7C8zB,EAAOk/C,UAAUwB,cAAcziC,WAAWjsC,KAAK9F,MAE3CA,KAAKk2C,MAAQl2C,KAAKk2C,KAAKn/B,OAAS+c,EAAO8gB,QAAQC,SAE1C70C,KAAK+xF,YAAc/xF,KAAKk2C,KAAKu8C,aAAiBzyF,KAAKgyF,aAAehyF,KAAKk2C,KAAKw8C,eAE7E1yF,KAAKk2C,KAAKxP,QAAQ1mC,KAAK+xF,UAAW/xF,KAAKgyF,aAcnDl+D,EAAO6hD,WAAWtyE,UAAU4tF,QAAU,SAAUrzC,GAE5C59C,KAAK49C,KAAOA,GAehB9pB,EAAO6hD,WAAWtyE,UAAUsvF,SAAW,SAAUxhF,EAAMxP,EAAOi8C,GAU1D,IAAK,GARDl4C,GAAI,EACJ6T,EAAI,EACJq5E,EAAY,GACZC,EAAe,KACfr0C,EAAYx+C,KAAKkyF,UAAY,EAAKlyF,KAAKkyF,UAAY,KACnD5V,KAGK74E,EAAI,EAAGA,EAAIm6C,EAAKl6C,OAAQD,IACjC,CACI,GAAIqG,GAAOrG,IAAMm6C,EAAKl6C,OAAS,GAAK,GAAO,CAE3C,IAAI,iBAAiBovF,KAAKl1C,EAAKm1C,OAAOtvF,IAElC,OAASoD,MAAO0S,EAAGqkC,KAAMA,EAAKztC,OAAO,EAAG1M,GAAIqG,IAAKA,EAAKwyE,MAAOA,EAI7D,IAAInP,GAAWvvB,EAAKwvB,WAAW3pE,GAC3BuvF,EAAW7hF,EAAKmrE,MAAMnP,GAEtBloE,EAAI,CAER,IAAK+tF,EAAL,CAOA,GAAIC,GAAWJ,GAAgBG,EAASC,QAAQJ,GAAiBG,EAASC,QAAQJ,GAAgB,CASlG,IANAD,EAAY,OAAOE,KAAKl1C,EAAKm1C,OAAOtvF,IAAMA,EAAImvF,EAG9C3tF,GAAKguF,EAAUD,EAASlrF,QAAQjB,MAAQmsF,EAAStW,SAAW/6E,EAGxD68C,GAAcjlC,EAAItU,GAAMu5C,GAAao0C,EAAY,GAGjD,OAAS/rF,MAAO0S,EAAGqkC,KAAMA,EAAKztC,OAAO,EAAG1M,GAAKA,EAAImvF,IAAa9oF,IAAKA,EAAKwyE,MAAOA,EAI/E/iE,IAAKy5E,EAASE,SAAWvxF,EAEzB26E,EAAM/3E,KAAKmB,EAAKstF,EAAStW,QAAU/6E,GAEnC+D,GAAKstF,EAASE,SAAWvxF,EAEzBkxF,EAAe1lB,GAK3B,OAAStmE,MAAO0S,EAAGqkC,KAAMA,EAAM9zC,IAAKA,EAAKwyE,MAAOA,IAUpDxoD,EAAO6hD,WAAWtyE,UAAUyqF,WAAa,WAErC,GAAI38E,GAAOnR,KAAKmyF,MAAMhW,IAEtB,IAAKhrE,EAAL,CAKA,GAAIysC,GAAO59C,KAAK49C,KACZj8C,EAAQ3B,KAAKsyF,UAAYnhF,EAAKwX,KAC9BqmE,KAEArpF,EAAI,CAER3F,MAAK+xF,UAAY,CAEjB,GACA,CACI,GAAIjzD,GAAO9+B,KAAK2yF,SAASxhF,EAAMxP,EAAOi8C,EAEtC9e,GAAKn5B,EAAIA,EAETqpF,EAAMzqF,KAAKu6B,GAEPA,EAAKj4B,MAAQ7G,KAAK+xF,YAElB/xF,KAAK+xF,UAAYjzD,EAAKj4B,OAG1BlB,GAAMwL,EAAKs+E,WAAa9tF,EAExBi8C,EAAOA,EAAKztC,OAAO2uB,EAAK8e,KAAKl6C,OAAS,SAEjCo7B,EAAKh1B,OAAQ,EAEtB9J,MAAKgyF,WAAarsF,CAOlB,KAAK,GALDmzB,GAAI,EACJ0kD,EAAQ,EACRtrE,EAAKlS,KAAK+xF,UAAY/xF,KAAKkI,OAAOxC,EAClCyM,EAAKnS,KAAKgyF,WAAahyF,KAAKkI,OAAOvC,EAE9BlC,EAAI,EAAGA,EAAIurF,EAAMtrF,OAAQD,IAClC,CACI,GAAIq7B,GAAOkwD,EAAMvrF,EAEG,WAAhBzD,KAAKuyF,OAEL/U,EAAQx9E,KAAK+xF,UAAYjzD,EAAKj4B,MAET,WAAhB7G,KAAKuyF,SAEV/U,GAASx9E,KAAK+xF,UAAYjzD,EAAKj4B,OAAS,EAG5C,KAAK,GAAI5B,GAAI,EAAGA,EAAI65B,EAAK8e,KAAKl6C,OAAQuB,IACtC,CACI,GAAIkoE,GAAWruC,EAAK8e,KAAKwvB,WAAWnoE,GAChC+tF,EAAW7hF,EAAKmrE,MAAMnP,GAEtB7uD,EAAIte,KAAK41E,QAAQ98C,EAEjBxa,GAGAA,EAAExW,QAAUkrF,EAASlrF,SAOrBwW,EAAI,GAAIxe,MAAK6H,OAAOqrF,EAASlrF,SAC7BwW,EAAE6c,KAAO2D,EAAK8e,KAAK34C,GACnBjF,KAAK41E,QAAQrxE,KAAK+Z,IAItBA,EAAE7c,SAASiE,EAAKo5B,EAAKw9C,MAAMr3E,GAAKu4E,EAAStrE,EACzCoM,EAAE7c,SAASkE,EAAKm5B,EAAKn5B,EAAKqtF,EAASrW,QAAUh7E,EAAUwQ,EAEvDmM,EAAE3c,MAAMqC,IAAIrC,GACZ2c,EAAE7S,KAAOzL,KAAKyL,KAET6S,EAAElc,QAEHpC,KAAKuI,SAAS+V,GAGlBwa,KAMR,IAAKr1B,EAAIq1B,EAAGr1B,EAAIzD,KAAK41E,QAAQlyE,OAAQD,IAEjCzD,KAAK2I,YAAY3I,KAAK41E,QAAQnyE,MAkBtCqwB,EAAO6hD,WAAWtyE,UAAU8vF,YAAc,WAKtC,IAAK,GAHD5hE,GAAMvxB,KAAK41E,QAAQlyE,OACnB0vF,KAEK3vF,EAAI,EAAGA,EAAIzD,KAAK41E,QAAQlyE,OAAQD,IAEjCzD,KAAK41E,QAAQnyE,GAAGrB,SAAWpC,KAE3BA,KAAK41E,QAAQnyE,GAAGF,UAIhB6vF,EAAK7uF,KAAKvE,KAAK41E,QAAQnyE,GAS/B,OALAzD,MAAK41E,WACL51E,KAAK41E,QAAUwd,EAEfpzF,KAAK8tF,aAEEv8D,EAAM6hE,EAAK1vF,QAUtBowB,EAAO6hD,WAAWtyE,UAAUsB,gBAAkB,YAEtC3E,KAAK4V,QAAU5V,KAAKkI,OAAOo1B,OAAOt9B,KAAKiyF,gBAEvCjyF,KAAK8tF,aACL9tF,KAAK4V,OAAQ,EACb5V,KAAKiyF,YAAYz1D,SAASx8B,KAAKkI,SAGnCpI,KAAKqI,uBAAuB9E,UAAUsB,gBAAgBmB,KAAK9F,OAQ/D4D,OAAOC,eAAeiwB,EAAO6hD,WAAWtyE,UAAW,SAE/CS,IAAK,WACD,MAAO9D,MAAKuyF,QAGhBvuF,IAAK,SAASC,GAENA,IAAUjE,KAAKuyF,QAAqB,SAAVtuF,GAA8B,WAAVA,GAAgC,UAAVA,IAEpEjE,KAAKuyF,OAAStuF,EACdjE,KAAK8tF,iBAWjBlqF,OAAOC,eAAeiwB,EAAO6hD,WAAWtyE,UAAW,QAE/CS,IAAK,WACD,MAAO9D,MAAKwyF,OAGhBxuF,IAAK,SAASC,GAENA,IAAUjE,KAAKwyF,QAEfxyF,KAAKwyF,MAAQvuF,EACbjE,KAAK8tF,iBAWjBlqF,OAAOC,eAAeiwB,EAAO6hD,WAAWtyE,UAAW,QAE/CS,IAAK,WACD,MAAO9D,MAAKqyF,OAGhBruF,IAAK,SAASC,GAENA,IAAUjE,KAAKqyF,QAEfryF,KAAKqyF,MAAQpuF,EAAM2J,OACnB5N,KAAK8tF,iBAWjBlqF,OAAOC,eAAeiwB,EAAO6hD,WAAWtyE,UAAW,YAE/CS,IAAK,WACD,MAAO9D,MAAKsyF,WAGhBtuF,IAAK,SAASC,GAEVA,EAAQo2B,SAASp2B,EAAO,IAEpBA,IAAUjE,KAAKsyF,WAAaruF,EAAQ,IAEpCjE,KAAKsyF,UAAYruF,EACjBjE,KAAK8tF,iBAWjBlqF,OAAOC,eAAeiwB,EAAO6hD,WAAWtyE,UAAW,QAE/CS,IAAK,WACD,MAAO9D,MAAKytF,OAGhBzpF,IAAK,SAASC,GAENA,IAAUjE,KAAKytF,QAEfztF,KAAKytF,MAAQxpF,EAAMiM,YAAc,GACjClQ,KAAK8tF,iBAoBjBlqF,OAAOC,eAAeiwB,EAAO6hD,WAAWtyE,UAAW,YAE/CS,IAAK,WAED,MAAO9D,MAAKkyF,WAIhBluF,IAAK,SAASC,GAENA,IAAUjE,KAAKkyF,YAEflyF,KAAKkyF,UAAYjuF,EACjBjE,KAAK8tF,iBA+BjBh6D,EAAO8oD,UAAY,SAAUh4E,EAAM8R,EAAK0lE,EAAgBC,EAAiBC,EAAOC,EAAaC,EAAUC,EAAUC,EAASC,GAEtH,IAAK/3E,EAAKikC,MAAMwqD,cAAc38E,GAE1B,OAAO,GAGSjN,SAAhB8yE,GAA6C,OAAhBA,KAE7BA,EAAc33E,EAAKikC,MAAMzU,SAAS1d,GAAK7P,MAAQu1E,GAMnDp8E,KAAKo8E,eAAiBA,EAKtBp8E,KAAKq8E,gBAAkBA,EAKvBr8E,KAAKszF,kBAAoB9W,GAAY,EAKrCx8E,KAAKuzF,kBAAoB9W,GAAY,EAKrCz8E,KAAKwzF,gBAAkBjX,EAMvBv8E,KAAKwqB,QAAUkyD,GAAW,EAM1B18E,KAAKyqB,QAAUkyD,GAAW,EAK1B38E,KAAKw9E,MAAQ,OAMbx9E,KAAKyzF,WAAY,EAMjBzzF,KAAK0zF,eAAgB,EAMrB1zF,KAAK2zF,eAAiB,EAMtB3zF,KAAK4zF,eAAiB,EAOtB5zF,KAAK6zF,WAAa,EAKlB7zF,KAAK8zF,QAAUlvF,EAAKikC,MAAMzU,SAAS1d,GAMnC1W,KAAKytF,MAAQ,GAMbztF,KAAK+zF,YAKL/zF,KAAK45E,UAAY,GAAI9lD,GAAOkgE,SAO5B,KAAK,GAJDC,GAAWj0F,KAAKwqB,QAChB0pE,EAAWl0F,KAAKyqB,QAChBpM,EAAI,EAECpZ,EAAI,EAAGA,EAAIq3E,EAAM54E,OAAQuB,IAClC,CACI,GAAIkH,GAAQnM,KAAK45E,UAAUua,SAAS,GAAIrgE,GAAO0uD,MAAMv9E,EAAGgvF,EAAUC,EAAUl0F,KAAKo8E,eAAgBp8E,KAAKq8E,iBAEtGr8E,MAAK+zF,SAASzX,EAAMlP,WAAWnoE,IAAMkH,EAAMzD,MAE3C2V,IAEIA,IAAMre,KAAKwzF,iBAEXn1E,EAAI,EACJ41E,EAAWj0F,KAAKwqB,QAChB0pE,GAAYl0F,KAAKq8E,gBAAkBr8E,KAAKuzF,mBAIxCU,GAAYj0F,KAAKo8E,eAAiBp8E,KAAKszF,kBAI/C1uF,EAAKikC,MAAMurD,gBAAgB19E,EAAK1W,KAAK45E,WAMrC55E,KAAKq0F,MAAQ,GAAIvgE,GAAOljB,MAAMhM,EAAM,EAAG,EAAG8R,EAAK,GAE/Cod,EAAOltB,cAAcd,KAAK9F,KAAM4E,EAAM,IAAK,IAAK,GAAIkvB,EAAOrmB,WAAWmX,SAKtE5kB,KAAK+W,KAAO+c,EAAOqD,WAIvBrD,EAAO8oD,UAAUv5E,UAAYO,OAAOwE,OAAO0rB,EAAOltB,cAAcvD,WAChEywB,EAAO8oD,UAAUv5E,UAAUC,YAAcwwB,EAAO8oD,UAOhD9oD,EAAO8oD,UAAU0X,WAAa,OAO9BxgE,EAAO8oD,UAAU2X,YAAc,QAO/BzgE,EAAO8oD,UAAU4X,aAAe,SAOhC1gE,EAAO8oD,UAAU6X,UAAY,oGAO7B3gE,EAAO8oD,UAAU8X,UAAY,+DAO7B5gE,EAAO8oD,UAAU+X,UAAY,wCAO7B7gE,EAAO8oD,UAAUgY,UAAY,wCAO7B9gE,EAAO8oD,UAAUiY,UAAY,mDAO7B/gE,EAAO8oD,UAAUkY,UAAY,oDAO7BhhE,EAAO8oD,UAAUmY,UAAY,oDAO7BjhE,EAAO8oD,UAAUoY,UAAY,yCAO7BlhE,EAAO8oD,UAAUqY,UAAY,kDAO7BnhE,EAAO8oD,UAAUsY,WAAa,6BAO9BphE,EAAO8oD,UAAUuY,WAAa,oDAW9BrhE,EAAO8oD,UAAUv5E,UAAU+xF,cAAgB,SAAUvuF,EAAOwuF,GAElC5rF,SAAlB4rF,IAA+BA,EAAgB,QAEnDr1F,KAAK6zF,WAAahtF,EAClB7G,KAAKw9E,MAAQ6X,GAgBjBvhE,EAAO8oD,UAAUv5E,UAAU4tF,QAAU,SAAUqE,EAAS7B,EAAW8B,EAAkB7F,EAAa2F,EAAeG,GAE7Gx1F,KAAKyzF,UAAYA,IAAa,EAC9BzzF,KAAK2zF,eAAiB4B,GAAoB,EAC1Cv1F,KAAK4zF,eAAiBlE,GAAe,EACrC1vF,KAAKw9E,MAAQ6X,GAAiB,OAI1Br1F,KAAK0zF,cAFL8B,GAEqB,GAIA,EAGrBF,EAAQ5xF,OAAS,IAEjB1D,KAAK49C,KAAO03C,IAWpBxhE,EAAO8oD,UAAUv5E,UAAUoyF,mBAAqB,WAE5C,GAAInnF,GAAK,EACLC,EAAK,CAKT,IAFAvO,KAAKokB,QAEDpkB,KAAKyzF,UACT,CACI,GAAIzE,GAAQhvF,KAAKytF,MAAMl0D,MAAM,KAEzBv5B,MAAK6zF,WAAa,EAElB7zF,KAAK+H,OAAO/H,KAAK6zF,WAAa7E,EAAMtrF,QAAU1D,KAAKq8E,gBAAkBr8E,KAAK4zF,gBAAmB5zF,KAAK4zF,gBAAgB,GAIlH5zF,KAAK+H,OAAO/H,KAAK01F,kBAAoB11F,KAAKo8E,eAAiBp8E,KAAK2zF,gBAAkB3E,EAAMtrF,QAAU1D,KAAKq8E,gBAAkBr8E,KAAK4zF,gBAAmB5zF,KAAK4zF,gBAAgB,EAI1K,KAAK,GAAInwF,GAAI,EAAGA,EAAIurF,EAAMtrF,OAAQD,IAG9B6K,EAAK,EAGDtO,KAAKw9E,QAAU1pD,EAAO8oD,UAAU2X,YAEhCjmF,EAAKtO,KAAK6G,MAASmoF,EAAMvrF,GAAGC,QAAU1D,KAAKo8E,eAAiBp8E,KAAK2zF,gBAE5D3zF,KAAKw9E,QAAU1pD,EAAO8oD,UAAU4X,eAErClmF,EAAMtO,KAAK6G,MAAQ,EAAOmoF,EAAMvrF,GAAGC,QAAU1D,KAAKo8E,eAAiBp8E,KAAK2zF,gBAAmB,EAC3FrlF,GAAMtO,KAAK2zF,eAAiB,GAIvB,EAALrlF,IAEAA,EAAK,GAGTtO,KAAK21F,UAAU3G,EAAMvrF,GAAI6K,EAAIC,EAAIvO,KAAK2zF,gBAEtCplF,GAAMvO,KAAKq8E,gBAAkBr8E,KAAK4zF,mBAKlC5zF,MAAK6zF,WAAa,EAElB7zF,KAAK+H,OAAO/H,KAAK6zF,WAAY7zF,KAAKq8E,iBAAiB,GAInDr8E,KAAK+H,OAAO/H,KAAKytF,MAAM/pF,QAAU1D,KAAKo8E,eAAiBp8E,KAAK2zF,gBAAiB3zF,KAAKq8E,iBAAiB,GAIvG/tE,EAAK,EAEDtO,KAAKw9E,QAAU1pD,EAAO8oD,UAAU2X,YAEhCjmF,EAAKtO,KAAK6G,MAAS7G,KAAKytF,MAAM/pF,QAAU1D,KAAKo8E,eAAiBp8E,KAAK2zF,gBAE9D3zF,KAAKw9E,QAAU1pD,EAAO8oD,UAAU4X,eAErClmF,EAAMtO,KAAK6G,MAAQ,EAAO7G,KAAKytF,MAAM/pF,QAAU1D,KAAKo8E,eAAiBp8E,KAAK2zF,gBAAmB,EAC7FrlF,GAAMtO,KAAK2zF,eAAiB,GAIvB,EAALrlF,IAEAA,EAAK,GAGTtO,KAAK21F,UAAU31F,KAAKytF,MAAOn/E,EAAI,EAAGtO,KAAK2zF,eAG3C3zF,MAAKkO,gBAAiB,GAe1B4lB,EAAO8oD,UAAUv5E,UAAUsyF,UAAY,SAAU72D,EAAMp5B,EAAGC,EAAGguF,GAEzD,IAAK,GAAI1uF,GAAI,EAAGA,EAAI65B,EAAKp7B,OAAQuB,IAG7B,GAAuB,MAAnB65B,EAAKi0D,OAAO9tF,GAEZS,GAAK1F,KAAKo8E,eAAiBuX,MAK3B,IAAI3zF,KAAK+zF,SAASj1D,EAAKsuC,WAAWnoE,KAAO,IAErCjF,KAAKq0F,MAAMloF,MAAQnM,KAAK+zF,SAASj1D,EAAKsuC,WAAWnoE,IACjDjF,KAAKmtF,SAASntF,KAAKq0F,MAAO3uF,EAAGC,GAAG,GAEhCD,GAAK1F,KAAKo8E,eAAiBuX,EAEvBjuF,EAAI1F,KAAK6G,OAET,OAcpBitB,EAAO8oD,UAAUv5E,UAAUqyF,eAAiB,WAExC,GAAIE,GAAc,CAElB,IAAI51F,KAAKytF,MAAM/pF,OAAS,EAIpB,IAAK,GAFDsrF,GAAQhvF,KAAKytF,MAAMl0D,MAAM,MAEpB91B,EAAI,EAAGA,EAAIurF,EAAMtrF,OAAQD,IAE1BurF,EAAMvrF,GAAGC,OAASkyF,IAElBA,EAAc5G,EAAMvrF,GAAGC,OAKnC,OAAOkyF,IAYX9hE,EAAO8oD,UAAUv5E,UAAUwyF,4BAA8B,SAAUC,GAI/D,IAAK,GAFDC,GAAY,GAEP9wF,EAAI,EAAGA,EAAIjF,KAAKytF,MAAM/pF,OAAQuB,IACvC,CACI,GAAI+wF,GAAQh2F,KAAKytF,MAAMxoF,GACnBgxF,EAAOD,EAAM5oB,WAAW,IAExBptE,KAAK+zF,SAASkC,IAAS,IAAOH,GAAqB,OAAVE,KAEzCD,EAAYA,EAAUl3E,OAAOm3E,IAIrC,MAAOD,IAcXjiE,EAAO8oD,UAAUv5E,UAAU6yF,aAAe,SAAUxwF,EAAGC,GAEnD,GAAI3F,KAAKwqB,UAAY9kB,GAAK1F,KAAKyqB,UAAY9kB,EAA3C,CAWA,IANA,GAAIwwF,GAAQzwF,EAAI1F,KAAKwqB,QACjB4rE,EAAQzwF,EAAI3F,KAAKyqB,QAEjB4rE,EAASr2F,KAAK4E,KAAKikC,MAAM4wC,aAAaz5E,KAAKq0F,MAAM39E,KAAK4/E,YACtD7yF,EAAI4yF,EAAO3yF,OAERD,KAEH4yF,EAAO5yF,GAAGiC,GAAKywF,EACfE,EAAO5yF,GAAGkC,GAAKywF,CAGnBp2F,MAAKy1F,uBAQT7xF,OAAOC,eAAeiwB,EAAO8oD,UAAUv5E,UAAW,QAE9CS,IAAK,WAED,MAAO9D,MAAKytF,OAIhBzpF,IAAK,SAAUC,GAEX,GAAIsyF,EAIAA,GAFAv2F,KAAK0zF,cAEKzvF,EAAMuyF,cAINvyF,EAGVsyF,IAAYv2F,KAAKytF,QAEjBztF,KAAKytF,MAAQ8I,EAEbv2F,KAAK61F,4BAA4B71F,KAAKyzF,WAEtCzzF,KAAKy1F,yBAWjB7xF,OAAOC,eAAeiwB,EAAO8oD,UAAUv5E,UAAW,YAE9CS,IAAK,WAED,MAAO9D,MAAKq0F,MAAMxsC,UAItB7jD,IAAK,SAAUC,GAEXjE,KAAKq0F,MAAMxsC,SAAW5jD,EACtBjE,KAAKy1F,wBAoBb31F,KAAK22F,MAAQ,SAAS3uF,GAElBhI,KAAKqI,uBAAuBrC,KAAM9F,MASlCA,KAAK8H,QAAUA,EAGf9H,KAAK4pB,IAAM,GAAI9pB,MAAKO,cAAc,EAAG,EACH,EAAG,EACH,EAAG,EACH,EAAG,IAErCL,KAAK8oB,SAAW,GAAIhpB,MAAKO,cAAc,EAAG,EACF,IAAK,EACL,IAAK,IACL,EAAG,MAE3CL,KAAKgpB,OAAS,GAAIlpB,MAAKO,cAAc,EAAG,EAAG,EAAG,IAE9CL,KAAKwb,QAAU,GAAI1b,MAAKQ,aAAa,EAAG,EAAG,EAAG,IAQ9CN,KAAK4V,OAAQ,EASb5V,KAAK4L,UAAY9L,KAAK+L,WAAWC,OAQjC9L,KAAK02F,cAAgB,EAErB12F,KAAK22F,SAAW72F,KAAK22F,MAAMG,UAAUv6E,gBAKzCvc,KAAK22F,MAAMpzF,UAAYO,OAAOwE,OAAOtI,KAAKqI,uBAAuB9E,WACjEvD,KAAK22F,MAAMpzF,UAAUC,YAAcxD,KAAK22F,MAExC32F,KAAK22F,MAAMpzF,UAAUuE,aAAe,SAASJ,IAGrCxH,KAAKiC,SAAWjC,KAAKgC,OAAS,IAGlCwF,EAAcoD,YAAYI,OAGtBhL,KAAK62F,eAAc72F,KAAK82F,WAAWtvF,GAEvCA,EAAc8H,cAAcC,UAAU/H,EAAc8H,cAAc4Y,aAElEloB,KAAK+2F,aAAavvF,GAIlBA,EAAcoD,YAAYQ,UAK9BtL,KAAK22F,MAAMpzF,UAAUyzF,WAAa,SAAStvF,GAGvC,GAAIE,GAAKF,EAAcE,EAEvB1H,MAAK62F,cAAgBnvF,EAAGwa,eACxBliB,KAAKg3F,aAAetvF,EAAGwa,eACvBliB,KAAKi3F,UAAYvvF,EAAGwa,eACpBliB,KAAKk3F,aAAexvF,EAAGwa,eAEvBxa,EAAGoU,WAAWpU,EAAGqU,aAAc/b,KAAK62F,eACpCnvF,EAAG0a,WAAW1a,EAAGqU,aAAc/b,KAAK8oB,SAAUphB,EAAGgiB,cAEjDhiB,EAAGoU,WAAWpU,EAAGqU,aAAc/b,KAAKi3F,WACpCvvF,EAAG0a,WAAW1a,EAAGqU,aAAe/b,KAAK4pB,IAAKliB,EAAG2a,aAE7C3a,EAAGoU,WAAWpU,EAAGqU,aAAc/b,KAAKk3F,cACpCxvF,EAAG0a,WAAW1a,EAAGqU,aAAc/b,KAAKgpB,OAAQthB,EAAG2a,aAE/C3a,EAAGoU,WAAWpU,EAAGyU,qBAAsBnc,KAAKg3F,cAC5CtvF,EAAG0a,WAAW1a,EAAGyU,qBAAsBnc,KAAKwb,QAAS9T,EAAG2a,cAG5DviB,KAAK22F,MAAMpzF,UAAU0zF,aAAe,SAASvvF,GAEzC,GAAIE,GAAKF,EAAcE,GACnBkT,EAAapT,EAAcoT,WAC3BC,EAASrT,EAAcqT,OACvB9O,EAASvE,EAAc8H,cAAc4Y,YAErCyuE,EAAW32F,KAAK22F,WAAa72F,KAAK22F,MAAMG,UAAUv6E,eAAiB3U,EAAG2U,eAAiB3U,EAAG+jB,SAI9FjkB,GAAc2b,iBAAiBqB,aAAaxkB,KAAK4L,WAIjDlE,EAAG4P,iBAAiBvL,EAAOmO,mBAAmB,EAAOla,KAAKuC,eAAemZ,SAAQ,IACjFhU,EAAGkU,UAAU7P,EAAOoK,iBAAkByE,EAAWlV,GAAIkV,EAAWjV,GAChE+B,EAAGkU,UAAU7P,EAAOqK,cAAeyE,EAAOnV,GAAImV,EAAOlV,GACrD+B,EAAGiU,UAAU5P,EAAO/J,MAAOhC,KAAKsC,YAE5BtC,KAAK4V,OAgCL5V,KAAK4V,OAAQ,EACblO,EAAGoU,WAAWpU,EAAGqU,aAAc/b,KAAK62F,eACpCnvF,EAAG0a,WAAW1a,EAAGqU,aAAc/b,KAAK8oB,SAAUphB,EAAG2a,aACjD3a,EAAGuU,oBAAoBlQ,EAAOuK,gBAAiB,EAAG5O,EAAGwU,OAAO,EAAO,EAAG,GAGtExU,EAAGoU,WAAWpU,EAAGqU,aAAc/b,KAAKi3F,WACpCvvF,EAAG0a,WAAW1a,EAAGqU,aAAc/b,KAAK4pB,IAAKliB,EAAG2a,aAC5C3a,EAAGuU,oBAAoBlQ,EAAOyK,cAAe,EAAG9O,EAAGwU,OAAO,EAAO,EAAG,GAEpExU,EAAG8P,cAAc9P,EAAGmjB,UAGjB7qB,KAAK8H,QAAQkE,YAAYwN,OAAO9R,EAAGkQ,IAElCpQ,EAAcf,SAASiT,cAAc1Z,KAAK8H,QAAQkE,aAIlDtE,EAAG+P,YAAY/P,EAAGgQ,WAAY1X,KAAK8H,QAAQkE,YAAY2L,YAAYjQ,EAAGkQ,KAI1ElQ,EAAGoU,WAAWpU,EAAGyU,qBAAsBnc,KAAKg3F,cAC5CtvF,EAAG0a,WAAW1a,EAAGyU,qBAAsBnc,KAAKwb,QAAS9T,EAAG2a,eArDxD3a,EAAGoU,WAAWpU,EAAGqU,aAAc/b,KAAK62F,eACpCnvF,EAAGqjB,cAAcrjB,EAAGqU,aAAc,EAAG/b,KAAK8oB,UAC1CphB,EAAGuU,oBAAoBlQ,EAAOuK,gBAAiB,EAAG5O,EAAGwU,OAAO,EAAO,EAAG,GAGtExU,EAAGoU,WAAWpU,EAAGqU,aAAc/b,KAAKi3F,WACpCvvF,EAAGuU,oBAAoBlQ,EAAOyK,cAAe,EAAG9O,EAAGwU,OAAO,EAAO,EAAG,GAEpExU,EAAG8P,cAAc9P,EAAGmjB,UAGjB7qB,KAAK8H,QAAQkE,YAAYwN,OAAO9R,EAAGkQ,IAElCpQ,EAAcf,SAASiT,cAAc1Z,KAAK8H,QAAQkE,aAKlDtE,EAAG+P,YAAY/P,EAAGgQ,WAAY1X,KAAK8H,QAAQkE,YAAY2L,YAAYjQ,EAAGkQ,KAI1ElQ,EAAGoU,WAAWpU,EAAGyU,qBAAsBnc,KAAKg3F,eAqChDtvF,EAAG2T,aAAas7E,EAAU32F,KAAKwb,QAAQ9X,OAAQgE,EAAG6T,eAAgB,IAOtEzb,KAAK22F,MAAMpzF,UAAUwE,cAAgB,SAASL,GAE1C,GAAI4F,GAAU5F,EAAc4F,QAExBqC,EAAYzP,KAAKuC,cAEjBiF,GAAcsG,YAEdV,EAAQW,aAAa0B,EAAU1K,EAAG0K,EAAUzK,EAAGyK,EAAUxK,EAAGwK,EAAUvK,EAAkB,EAAfuK,EAAUtK,GAAuB,EAAfsK,EAAUrK,IAIrGgI,EAAQW,aAAa0B,EAAU1K,EAAG0K,EAAUzK,EAAGyK,EAAUxK,EAAGwK,EAAUvK,EAAGuK,EAAUtK,GAAIsK,EAAUrK,IAGjGpF,KAAK22F,WAAa72F,KAAK22F,MAAMG,UAAUv6E,eAEvCrc,KAAKm3F,2BAA2B/pF,GAIhCpN,KAAKo3F,uBAAuBhqF,IAIpCtN,KAAK22F,MAAMpzF,UAAU8zF,2BAA6B,SAAS/pF,GAGvD,GAAI0b,GAAW9oB,KAAK8oB,SAChBc,EAAM5pB,KAAK4pB,IAEXlmB,EAASolB,EAASplB,OAAS,CAC/B1D,MAAK6mB,OAEL,KAAK,GAAIpjB,GAAI,EAAOC,EAAS,EAAbD,EAAgBA,IAAK,CAEjC,GAAIiF,GAAY,EAAJjF,CACZzD,MAAKq3F,0BAA0BjqF,EAAS0b,EAAUc,EAAKlhB,EAAQA,EAAQ,EAAKA,EAAQ,KAI5F5I,KAAK22F,MAAMpzF,UAAU+zF,uBAAyB,SAAShqF,GAGnD,GAAI0b,GAAW9oB,KAAK8oB,SAChBc,EAAM5pB,KAAK4pB,IACXpO,EAAUxb,KAAKwb,QAEf9X,EAAS8X,EAAQ9X,MACrB1D,MAAK6mB,OAEL,KAAK,GAAIpjB,GAAI,EAAOC,EAAJD,EAAYA,GAAK,EAAG,CAEhC,GAAI6zF,GAAsB,EAAb97E,EAAQ/X,GAAQuF,EAA0B,EAAjBwS,EAAQ/X,EAAI,GAAQyF,EAA0B,EAAjBsS,EAAQ/X,EAAI,EAC/EzD,MAAKq3F,0BAA0BjqF,EAAS0b,EAAUc,EAAK0tE,EAAQtuF,EAAQE,KAI/EpJ,KAAK22F,MAAMpzF,UAAUg0F,0BAA4B,SAASjqF,EAAS0b,EAAUc,EAAK0tE,EAAQtuF,EAAQE,GAE9F,GAAIquF,GAAgBv3F,KAAK8H,QAAQkE,YAAYwC,OACzCgpF,EAAex3F,KAAK8H,QAAQjB,MAC5B4wF,EAAgBz3F,KAAK8H,QAAQhB,OAE7BkjB,EAAKlB,EAASwuE,GAAS5qF,EAAKoc,EAAS9f,GAAS4D,EAAKkc,EAAS5f,GAC5D+gB,EAAKnB,EAASwuE,EAAS,GAAI3qF,EAAKmc,EAAS9f,EAAS,GAAI6D,EAAKic,EAAS5f,EAAS,GAE7EwuF,EAAK9tE,EAAI0tE,GAAUE,EAAcG,EAAK/tE,EAAI5gB,GAAUwuF,EAAcI,EAAKhuE,EAAI1gB,GAAUsuF,EACrFK,EAAKjuE,EAAI0tE,EAAS,GAAKG,EAAeK,EAAKluE,EAAI5gB,EAAS,GAAKyuF,EAAeM,EAAKnuE,EAAI1gB,EAAS,GAAKuuF,CAEvG,IAAIz3F,KAAK02F,cAAgB,EAAG,CACxB,GAAIsB,GAAWh4F,KAAK02F,cAAgB12F,KAAKuC,eAAewC,EACpDkzF,EAAWj4F,KAAK02F,cAAgB12F,KAAKuC,eAAe2C,EACpD2+B,GAAW7Z,EAAKtd,EAAKE,GAAM,EAC3Bk3B,GAAW7Z,EAAKtd,EAAKE,GAAM,EAE3BqrF,EAAQluE,EAAK6Z,EACbs0D,EAAQluE,EAAK6Z,EAEbliB,EAAOjhB,KAAKiF,KAAKsyF,EAAQA,EAAQC,EAAQA,EAC7CnuE,GAAK6Z,EAAWq0D,EAAQt2E,GAASA,EAAOo2E,GACxC/tE,EAAK6Z,EAAWq0D,EAAQv2E,GAASA,EAAOq2E,GAIxCC,EAAQxrF,EAAKm3B,EACbs0D,EAAQxrF,EAAKm3B,EAEbliB,EAAOjhB,KAAKiF,KAAKsyF,EAAQA,EAAQC,EAAQA,GACzCzrF,EAAKm3B,EAAWq0D,EAAQt2E,GAASA,EAAOo2E,GACxCrrF,EAAKm3B,EAAWq0D,EAAQv2E,GAASA,EAAOq2E,GAExCC,EAAQtrF,EAAKi3B,EACbs0D,EAAQtrF,EAAKi3B,EAEbliB,EAAOjhB,KAAKiF,KAAKsyF,EAAQA,EAAQC,EAAQA,GACzCvrF,EAAKi3B,EAAWq0D,EAAQt2E,GAASA,EAAOo2E,GACxCnrF,EAAKi3B,EAAWq0D,EAAQv2E,GAASA,EAAOq2E,GAG5C7qF,EAAQihB,OACRjhB,EAAQ8iB,YAGR9iB,EAAQ+iB,OAAOnG,EAAIC,GACnB7c,EAAQgjB,OAAO1jB,EAAIC,GACnBS,EAAQgjB,OAAOxjB,EAAIC,GAEnBO,EAAQijB,YAERjjB,EAAQqhB,MAGR,IAAI2pE,GAAUV,EAAKI,EAAYD,EAAKD,EAAYD,EAAKI,EAAYD,EAAKF,EAAYC,EAAKF,EAAYD,EAAKK,EACpGM,EAAUruE,EAAK8tE,EAAYD,EAAKjrF,EAAYF,EAAKqrF,EAAYD,EAAKlrF,EAAYirF,EAAKnrF,EAAYsd,EAAK+tE,EACpGO,EAAUZ,EAAKhrF,EAAYsd,EAAK4tE,EAAYD,EAAK/qF,EAAYF,EAAKkrF,EAAY5tE,EAAK2tE,EAAYD,EAAK9qF,EACpG2rF,EAAUb,EAAKI,EAAKlrF,EAAOirF,EAAKnrF,EAAKkrF,EAAO5tE,EAAK2tE,EAAKI,EAAO/tE,EAAK8tE,EAAKF,EAAOC,EAAKF,EAAK/qF,EAAO8qF,EAAKhrF,EAAKqrF,EACzGS,EAAUvuE,EAAK6tE,EAAYD,EAAKhrF,EAAYF,EAAKorF,EAAYD,EAAKjrF,EAAYgrF,EAAKlrF,EAAYsd,EAAK8tE,EACpGU,EAAUf,EAAK/qF,EAAYsd,EAAK2tE,EAAYD,EAAK9qF,EAAYF,EAAKirF,EAAY3tE,EAAK0tE,EAAYD,EAAK7qF,EACpG6rF,EAAUhB,EAAKI,EAAKjrF,EAAOgrF,EAAKlrF,EAAKirF,EAAO3tE,EAAK0tE,EAAKI,EAAO9tE,EAAK6tE,EAAKF,EAAOC,EAAKF,EAAK9qF,EAAO6qF,EAAK/qF,EAAKorF,CAE7G3qF,GAAQqC,UAAU4oF,EAASD,EAAOI,EAASJ,EACvCE,EAASF,EAAOK,EAASL,EACzBG,EAASH,EAAOM,EAASN,GAE7BhrF,EAAQiB,UAAUkpF,EAAe,EAAG,GACpCnqF,EAAQshB,WAYZ5uB,KAAK22F,MAAMpzF,UAAUs1F,gBAAkB,SAASC,GAE5C,GAAIxrF,GAAUpN,KAAKoN,QACf0b,EAAW8vE,EAAM9vE,SAEjBplB,EAASolB,EAASplB,OAAO,CAC7B1D,MAAK6mB,QAELzZ,EAAQ8iB,WACR,KAAK,GAAIzsB,GAAE,EAAOC,EAAO,EAAXD,EAAcA,IAC5B,CAEI,GAAIiF,GAAU,EAAFjF,EAERumB,EAAKlB,EAASpgB,GAAUgE,EAAKoc,EAASpgB,EAAM,GAAIkE,EAAKkc,EAASpgB,EAAM,GACpEuhB,EAAKnB,EAASpgB,EAAM,GAAIiE,EAAKmc,EAASpgB,EAAM,GAAImE,EAAKic,EAASpgB,EAAM,EAExE0E,GAAQ+iB,OAAOnG,EAAIC,GACnB7c,EAAQgjB,OAAO1jB,EAAIC,GACnBS,EAAQgjB,OAAOxjB,EAAIC,GAGvBO,EAAQyhB,UAAY,UACpBzhB,EAAQ6P,OACR7P,EAAQijB,aAyBZvwB,KAAK22F,MAAMpzF,UAAU6I,gBAAkB,WAEnClM,KAAK64F,aAAc,GAUvB/4F,KAAK22F,MAAMpzF,UAAU2C,UAAY,SAASC,GAkBtC,IAAK,GAhBD1D,GAAiB0D,GAAUjG,KAAKuC,eAEhCwC,EAAIxC,EAAewC,EACnBC,EAAIzC,EAAeyC,EACnBC,EAAI1C,EAAe0C,EACnBC,EAAI3C,EAAe2C,EACnBC,EAAK5C,EAAe4C,GACpBC,EAAK7C,EAAe6C,GAEpBoF,GAAQF,IACRG,GAAQH,IAERD,EAAOC,IACPC,EAAOD,IAEPwe,EAAW9oB,KAAK8oB,SACXrlB,EAAI,EAAGkO,EAAImX,EAASplB,OAAYiO,EAAJlO,EAAOA,GAAK,EACjD,CACI,GAAIq1F,GAAOhwE,EAASrlB,GAAIs1F,EAAOjwE,EAASrlB,EAAI,GACxCiC,EAAKX,EAAI+zF,EAAS7zF,EAAI8zF,EAAQ5zF,EAC9BQ,EAAKT,EAAI6zF,EAAS/zF,EAAI8zF,EAAQ1zF,CAElCiF,GAAWA,EAAJ3E,EAAWA,EAAI2E,EACtBE,EAAWA,EAAJ5E,EAAWA,EAAI4E,EAEtBC,EAAO9E,EAAI8E,EAAO9E,EAAI8E,EACtBC,EAAO9E,EAAI8E,EAAO9E,EAAI8E,EAG1B,GAAIJ,KAAUC,KAAqBA,MAATG,EAEtB,MAAO3K,MAAKoG,cAGhB,IAAIQ,GAAS1G,KAAK+C,OAWlB,OATA2D,GAAOhB,EAAI2E,EACX3D,EAAOG,MAAQ2D,EAAOH,EAEtB3D,EAAOf,EAAI4E,EACX7D,EAAOI,OAAS2D,EAAOF,EAGvBvK,KAAKiD,eAAiByD,EAEfA,GAUX5G,KAAK22F,MAAMG,WACPv6E,eAAgB,EAChBoP,UAAW,GAiBf3rB,KAAKy7E,KAAO,SAASzzE,EAAS+U,GAE1B/c,KAAK22F,MAAM3wF,KAAM9F,KAAM8H,GACvB9H,KAAK6c,OAASA,EAEd7c,KAAK8oB,SAAW,GAAIhpB,MAAKO,aAA6B,EAAhBwc,EAAOnZ,QAC7C1D,KAAK4pB,IAAM,GAAI9pB,MAAKO,aAA6B,EAAhBwc,EAAOnZ,QACxC1D,KAAKgpB,OAAS,GAAIlpB,MAAKO,aAA6B,EAAhBwc,EAAOnZ,QAC3C1D,KAAKwb,QAAU,GAAI1b,MAAKQ,YAA4B,EAAhBuc,EAAOnZ,QAG3C1D,KAAK0vB,WAKT5vB,KAAKy7E,KAAKl4E,UAAYO,OAAOwE,OAAQtI,KAAK22F,MAAMpzF,WAChDvD,KAAKy7E,KAAKl4E,UAAUC,YAAcxD,KAAKy7E,KAOvCz7E,KAAKy7E,KAAKl4E,UAAUqsB,QAAU,WAE1B,GAAI7S,GAAS7c,KAAK6c,MAClB,MAAGA,EAAOnZ,OAAS,GAAnB,CAEA,GAAIkmB,GAAM5pB,KAAK4pB,IAEXxJ,EAAYvD,EAAO,GACnBrB,EAAUxb,KAAKwb,QACfwN,EAAShpB,KAAKgpB,MAElBhpB,MAAK6mB,OAAO,GAEZ+C,EAAI,GAAK,EACTA,EAAI,GAAK,EACTA,EAAI,GAAK,EACTA,EAAI,GAAK,EAETZ,EAAO,GAAK,EACZA,EAAO,GAAK,EAEZxN,EAAQ,GAAK,EACbA,EAAQ,GAAK,CAKb,KAAK,GAFD2hB,GAAOz0B,EAAO4vC,EADd2B,EAAQp9B,EAAOnZ,OAGVD,EAAI,EAAOw2C,EAAJx2C,EAAWA,IAEvB05B,EAAQtgB,EAAOpZ,GACfiF,EAAY,EAAJjF,EAER60C,EAAS70C,GAAKw2C,EAAM,GAEjBx2C,EAAE,GAEDmmB,EAAIlhB,GAAS4vC,EACb1uB,EAAIlhB,EAAM,GAAK,EAEfkhB,EAAIlhB,EAAM,GAAK4vC,EACf1uB,EAAIlhB,EAAM,GAAK,IAIfkhB,EAAIlhB,GAAS4vC,EACb1uB,EAAIlhB,EAAM,GAAK,EAEfkhB,EAAIlhB,EAAM,GAAK4vC,EACf1uB,EAAIlhB,EAAM,GAAK,GAGnBA,EAAY,EAAJjF,EACRulB,EAAOtgB,GAAS,EAChBsgB,EAAOtgB,EAAM,GAAK,EAElBA,EAAY,EAAJjF,EACR+X,EAAQ9S,GAASA,EACjB8S,EAAQ9S,EAAQ,GAAKA,EAAQ,EAE7B0X,EAAY+c,IAUpBr9B,KAAKy7E,KAAKl4E,UAAUsB,gBAAkB,WAGlC,GAAIkY,GAAS7c,KAAK6c,MAClB,MAAGA,EAAOnZ,OAAS,GAAnB,CAEA,GACIs1F,GADA54E,EAAYvD,EAAO,GAEnBglB,GAAQn8B,EAAE,EAAGC,EAAE,EAEnB3F,MAAK6mB,OAAO,EAMZ,KAAK,GAFDsW,GAAOz0B,EAAOuwF,EAAOC,EAAYC,EAFjCrwE,EAAW9oB,KAAK8oB,SAChBmxB,EAAQp9B,EAAOnZ,OAGVD,EAAI,EAAOw2C,EAAJx2C,EAAWA,IAEvB05B,EAAQtgB,EAAOpZ,GACfiF,EAAY,EAAJjF,EAIJu1F,EAFDv1F,EAAIoZ,EAAOnZ,OAAO,EAELmZ,EAAOpZ,EAAE,GAIT05B,EAGhB0E,EAAKl8B,IAAMqzF,EAAUtzF,EAAI0a,EAAU1a,GACnCm8B,EAAKn8B,EAAIszF,EAAUrzF,EAAIya,EAAUza,EAEjCszF,EAAgC,IAAvB,EAAKx1F,GAAKw2C,EAAM,IAEtBg/C,EAAQ,IAAGA,EAAQ,GAEtBC,EAAav4F,KAAKiF,KAAKi8B,EAAKn8B,EAAIm8B,EAAKn8B,EAAIm8B,EAAKl8B,EAAIk8B,EAAKl8B,GACvDwzF,EAAMn5F,KAAK8H,QAAQhB,OAAS,EAC5B+6B,EAAKn8B,GAAKwzF,EACVr3D,EAAKl8B,GAAKuzF,EAEVr3D,EAAKn8B,GAAKyzF,EACVt3D,EAAKl8B,GAAKwzF,EAEVrwE,EAASpgB,GAASy0B,EAAMz3B,EAAIm8B,EAAKn8B,EACjCojB,EAASpgB,EAAM,GAAKy0B,EAAMx3B,EAAIk8B,EAAKl8B,EACnCmjB,EAASpgB,EAAM,GAAKy0B,EAAMz3B,EAAIm8B,EAAKn8B,EACnCojB,EAASpgB,EAAM,GAAKy0B,EAAMx3B,EAAIk8B,EAAKl8B,EAEnCya,EAAY+c,CAGhBr9B,MAAKqI,uBAAuB9E,UAAUsB,gBAAgBmB,KAAM9F,QAQhEF,KAAKy7E,KAAKl4E,UAAU+I,WAAa,SAAStE,GAGtC9H,KAAK8H,QAAUA,GA4CnBgsB,EAAOynD,KAAO,SAAU32E,EAAMc,EAAGC,EAAG+Q,EAAKvK,EAAO0Q,GAE5C7c,KAAK6c,UACL7c,KAAK6c,OAASA,EACd7c,KAAKm+E,qBAAsB,EAC3Bn+E,KAAKo+E,yBAA2B,KAChC14E,EAAIA,GAAK,EACTC,EAAIA,GAAK,EACT+Q,EAAMA,GAAO,KACbvK,EAAQA,GAAS,KAMjBnM,KAAK+W,KAAO+c,EAAOuD,KAMnBr3B,KAAK69E,QAAU,GAAI/pD,GAAOpyB,MAE1B5B,KAAKy7E,KAAKz1E,KAAK9F,KAAMF,KAAK6O,aAAwB,UAAG3O,KAAK6c,QAE1DiX,EAAOk/C,UAAUe,KAAKj+D,KAAKhQ,KAAK9F,KAAM4E,EAAMc,EAAGC,EAAG+Q,EAAKvK,IAI3D2nB,EAAOynD,KAAKl4E,UAAYO,OAAOwE,OAAOtI,KAAKy7E,KAAKl4E,WAChDywB,EAAOynD,KAAKl4E,UAAUC,YAAcwwB,EAAOynD,KAE3CznD,EAAOk/C,UAAUe,KAAKC,QAAQluE,KAAKguB,EAAOynD,KAAKl4E,WAC3C,QACA,YACA,WACA,SACA,aACA,OACA,QACA,UACA,gBACA,eACA,UACA,WACA,cACA,UACA,cACA,QACA,cACA,aAGJywB,EAAOynD,KAAKl4E,UAAUo6E,iBAAmB3pD,EAAOk/C,UAAUoB,YAAY9tE,UACtEwtB,EAAOynD,KAAKl4E,UAAUq6E,kBAAoB5pD,EAAOk/C,UAAU+F,SAASzyE,UACpEwtB,EAAOynD,KAAKl4E,UAAUs6E,iBAAmB7pD,EAAOk/C,UAAUyF,QAAQnyE,UAClEwtB,EAAOynD,KAAKl4E,UAAUu6E,cAAgB9pD,EAAOk/C,UAAUe,KAAKztE,UAQ5DwtB,EAAOynD,KAAKl4E,UAAUiD,UAAY,WAY9B,MAVuB,KAAnBtG,KAAK69E,QAAQn4E,IAEb1F,KAAKsqB,aAAa5kB,GAAK1F,KAAK69E,QAAQn4E,EAAI1F,KAAK4E,KAAKskC,KAAK80C,gBAGpC,IAAnBh+E,KAAK69E,QAAQl4E,IAEb3F,KAAKsqB,aAAa3kB,GAAK3F,KAAK69E,QAAQl4E,EAAI3F,KAAK4E,KAAKskC,KAAK80C,gBAGtDh+E,KAAKy9E,oBAAuBz9E,KAAK09E,qBAAwB19E,KAAK29E,mBAK5D39E,KAAK49E,iBAHD,GAaf9pD,EAAOynD,KAAKl4E,UAAUijC,OAAS,WAEvBtmC,KAAKm+E,qBAELn+E,KAAKq+E,gBAAgBv4E,KAAK9F,OAgBlC8zB,EAAOynD,KAAKl4E,UAAUoZ,MAAQ,SAAS/W,EAAGC,GAOtC,MALAmuB,GAAOk/C,UAAUuH,MAAMl3E,UAAUoZ,MAAM3W,KAAK9F,KAAM0F,EAAGC,GAErD3F,KAAKsqB,aAAa5kB,EAAI,EACtB1F,KAAKsqB,aAAa3kB,EAAI,EAEf3F,MAUX4D,OAAOC,eAAeiwB,EAAOynD,KAAKl4E,UAAW,mBAEzCS,IAAK,WAED,MAAO9D,MAAKs+E,kBAIhBt6E,IAAK,SAAUC,GAEPA,GAA0B,kBAAVA,IAEhBjE,KAAKm+E,qBAAsB,EAC3Bn+E,KAAKs+E,iBAAmBr6E,IAIxBjE,KAAKm+E,qBAAsB,EAC3Bn+E,KAAKs+E,iBAAmB,SAapC16E,OAAOC,eAAeiwB,EAAOynD,KAAKl4E,UAAW,YAEzCS,IAAK,WAKD,IAAK,GAFD4E,GAAOgE,EAAIC,EAAIC,EAAIC,EAAIhG,EAAOC,EAAQ0qB,EADtC+sD,KAGK96E,EAAI,EAAGA,EAAIzD,KAAK6c,OAAOnZ,OAAQD,IAEpCiF,EAAY,EAAJjF,EAERiJ,EAAK1M,KAAK8oB,SAASpgB,GAAS1I,KAAK2B,MAAM+D,EACvCiH,EAAK3M,KAAK8oB,SAASpgB,EAAQ,GAAK1I,KAAK2B,MAAMgE,EAC3CiH,EAAK5M,KAAK8oB,SAASpgB,EAAQ,GAAK1I,KAAK2B,MAAM+D,EAC3CmH,EAAK7M,KAAK8oB,SAASpgB,EAAQ,GAAK1I,KAAK2B,MAAMgE,EAE3CkB,EAAQitB,EAAOnzB,KAAK69E,WAAW9xE,EAAIE,GACnC9F,EAASgtB,EAAOnzB,KAAK69E,WAAW7xE,EAAIE,GAEpCH,GAAM1M,KAAK8E,MAAMY,EACjBiH,GAAM3M,KAAK8E,MAAMa,EACjB6rB,EAAO,GAAIsC,GAAO9wB,UAAU0J,EAAIC,EAAI9F,EAAOC,GAC3Cy3E,EAASh6E,KAAKitB,EAGlB,OAAO+sD,MAmBfz+E,KAAKi+E,aAAe,SAASj2E,EAASjB,EAAOC,GAEzChH,KAAK6H,OAAO7B,KAAK9F,KAAM8H,GAQvB9H,KAAKqI,OAASxB,GAAS,IAQvB7G,KAAKsI,QAAUxB,GAAU,IAQzB9G,KAAK2qB,UAAY,GAAI7qB,MAAK4B,MAAM,EAAG,GAQnC1B,KAAKuqB,gBAAkB,GAAIzqB,MAAK4B,MAAM,EAAG,GAQzC1B,KAAKsqB,aAAe,GAAIxqB,MAAK4B,MAS7B1B,KAAKmC,YAAa,EASlBnC,KAAKyL,KAAO,SASZzL,KAAKo5F,cAAe,EASpBp5F,KAAK4L,UAAY9L,KAAK+L,WAAWC,OAQjC9L,KAAKgsF,aAAe,KAQpBhsF,KAAKmqB,cAAgB,KAQrBnqB,KAAKq5F,YAAc,KAUnBr5F,KAAKk6E,gBAAiB,EAEtBl6E,KAAKs5F,WAAa,EAClBt5F,KAAKu5F,YAAc,GAIvBz5F,KAAKi+E,aAAa16E,UAAYO,OAAOwE,OAAOtI,KAAK6H,OAAOtE,WACxDvD,KAAKi+E,aAAa16E,UAAUC,YAAcxD,KAAKi+E,aAE/Cj+E,KAAKi+E,aAAa16E,UAAU+I,WAAa,SAAStE,GAE1C9H,KAAK8H,UAAYA,IAEjB9H,KAAK8H,QAAUA,EACf9H,KAAKk6E,gBAAiB,EACtBl6E,KAAK0L,WAAa,WAY1B5L,KAAKi+E,aAAa16E,UAAUuE,aAAe,SAASJ,GAEhD,GAAIxH,KAAKiC,WAAY,GAAwB,IAAfjC,KAAKgC,MAAnC,CAkBA,GAbIhC,KAAKkD,QAELsE,EAAcoD,YAAYI,OAC1BxD,EAAcyD,YAAYC,SAASlL,KAAKmL,KAAM3D,GAC9CA,EAAcoD,YAAYQ,SAG1BpL,KAAKmE,WAELqD,EAAcoD,YAAYC,QAC1BrD,EAAcsD,cAAcC,WAAW/K,KAAKwE,eAG5CxE,KAAKk6E,eACT,CAGI,GAFAl6E,KAAKw5F,uBAAsB,IAEvBx5F,KAAKmqB,cAUL,MARInqB,MAAKmqB,cAAcsvE,cAEnBjyF,EAAcf,SAASiT,cAAc1Z,KAAKmqB,cAAcne,aACxDhM,KAAKmqB,cAAcsvE,aAAc,GAS7CjyF,EAAcoD,YAAYsf,mBAAmBlqB,KAE7C,KAAK,GAAIyD,GAAI,EAAGA,EAAIzD,KAAKwD,SAASE,OAAQD,IAEtCzD,KAAKwD,SAASC,GAAGmE,aAAaJ,EAGlCA,GAAcoD,YAAYI,OAEtBhL,KAAKmE,UAELqD,EAAcsD,cAAcQ,YAG5BtL,KAAKkD,OAELsE,EAAcyD,YAAYI,QAAQrL,KAAKkD,MAAOsE,GAGlDA,EAAcoD,YAAYQ,UAW9BtL,KAAKi+E,aAAa16E,UAAUwE,cAAgB,SAASL,GAEjD,GAAIxH,KAAKiC,WAAY,GAAwB,IAAfjC,KAAKgC,MAAnC,CAKA,GAAIoL,GAAU5F,EAAc4F,OAExBpN,MAAKkD,OAELsE,EAAcyD,YAAYC,SAASlL,KAAKkD,MAAOsE,GAGnD4F,EAAQG,YAAcvN,KAAKsC,UAE3B,IAAIgD,GAAKtF,KAAKuC,eACVlB,EAAamG,EAAcnG,UAS/B,IAPA+L,EAAQW,aAAazI,EAAGP,EAAI1D,EACPiE,EAAGN,EAAI3D,EACPiE,EAAGL,EAAI5D,EACPiE,EAAGJ,EAAI7D,EACPiE,EAAGH,GAAK9D,EACRiE,EAAGF,GAAK/D,GAEzBrB,KAAKk6E,eACT,CAGI,GAFAl6E,KAAKw5F,uBAAsB,IAEvBx5F,KAAKmqB,cAML,MAJAnqB,MAAKq5F,YAAcjsF,EAAQ45E,cAAchnF,KAAKmqB,cAAcne,YAAYwC,OAAQ,UAQxF,GAAIkrF,GAAmBlyF,EAAc2F,gBAGjCnN,MAAK4L,YAAcpE,EAAc2F,mBAEjC3F,EAAc2F,iBAAmBnN,KAAK4L,UACtCwB,EAAQC,yBAA2BvN,KAAKwN,iBAAiB9F,EAAc2F,kBAG3E,IAAImd,GAAetqB,KAAKsqB,aACpBK,EAAY3qB,KAAK2qB,SAErBL,GAAa5kB,GAAK1F,KAAKmqB,cAAcne,YAAYnF,MACjDyjB,EAAa3kB,GAAK3F,KAAKmqB,cAAcne,YAAYlF,OAGjDsG,EAAQzL,MAAMgpB,EAAUjlB,EAAGilB,EAAUhlB,GACrCyH,EAAQ6mB,UAAU3J,EAAa5kB,EAAK1F,KAAKkI,OAAOxC,GAAK1F,KAAKqI,OAASiiB,EAAa3kB,EAAK3F,KAAKkI,OAAOvC,GAAK3F,KAAKsI,SAE3G8E,EAAQyhB,UAAY7uB,KAAKq5F,WAEzB,IAAIl0F,IAAMmlB,EAAa5kB,EACnBN,GAAMklB,EAAa3kB,EACnB2tB,EAAKtzB,KAAKqI,OAASsiB,EAAUjlB,EAC7B6tB,EAAKvzB,KAAKsI,QAAUqiB,EAAUhlB,CAG9B6B,GAAcsG,YAQlBV,EAAQ0hB,SAAS3pB,EAAIC,EAAIkuB,EAAIC,GAG7BnmB,EAAQzL,MAAM,EAAIgpB,EAAUjlB,EAAG,EAAIilB,EAAUhlB,GAC7CyH,EAAQ6mB,WAAW3J,EAAa5kB,EAAK1F,KAAKkI,OAAOxC,EAAI1F,KAAKqI,QAAUiiB,EAAa3kB,EAAK3F,KAAKkI,OAAOvC,EAAI3F,KAAKsI,SAEvGtI,KAAKkD,OAELsE,EAAcyD,YAAYI,QAAQ7D,EAGtC,KAAK,GAAI/D,GAAI,EAAGA,EAAIzD,KAAKwD,SAASE,OAAQD,IAEtCzD,KAAKwD,SAASC,GAAGoE,cAAcL,EAI/BkyF,KAAqB15F,KAAK4L,YAE1BpE,EAAc2F,iBAAmBusF,EACjCtsF,EAAQC,yBAA2BvN,KAAKwN,iBAAiBosF,MAYjE55F,KAAKi+E,aAAa16E,UAAU6I,gBAAkB,aAW9CpM,KAAKi+E,aAAa16E,UAAUm2F,sBAAwB,SAASG,GAEzD,GAAK35F,KAAK8H,QAAQkE,YAAYC,UAA9B,CAKA,GAAInE,GAAU9H,KAAK8H,QACfqE,EAAQrE,EAAQqE,MAEhBy8C,EAAc5oD,KAAKo1E,OAAO4E,YAC1BnxB,EAAe7oD,KAAKo1E,OAAO6E,YAE3BtsE,EAAK,EACLE,EAAK,CAEL7N,MAAKo1E,OAAOyE,UAEZlsE,EAAK3N,KAAKo1E,OAAO0E,kBACjBjsE,EAAK7N,KAAKo1E,OAAO2E,mBAGjB4f,IAEA/wC,EAAc9oD,KAAKsR,kBAAkBw3C,GACrCC,EAAe/oD,KAAKsR,kBAAkBy3C,IAGtC7oD,KAAKgsF,cAELhsF,KAAKgsF,aAAajkF,OAAO6gD,EAAaC,GACtC7oD,KAAKmqB,cAAcne,YAAYnF,MAAQ+hD,EACvC5oD,KAAKmqB,cAAcne,YAAYlF,OAAS+hD,EACxC7oD,KAAKmqB,cAAcsvE,aAAc,IAIjCz5F,KAAKgsF,aAAe,GAAIlsF,MAAKouB,aAAa06B,EAAaC,GACvD7oD,KAAKmqB,cAAgBrqB,KAAKyL,QAAQonB,WAAW3yB,KAAKgsF,aAAaj7E,QAC/D/Q,KAAKmqB,cAAgBrqB,KAAKyL,QAAQonB,WAAW3yB,KAAKgsF,aAAaj7E,QAC/D/Q,KAAKmqB,cAAc6I,UAAW,EAC9BhzB,KAAKmqB,cAAcsvE,aAAc,GAGjCz5F,KAAKo5F,eAELp5F,KAAKgsF,aAAa5+E,QAAQkjB,YAAc,UACxCtwB,KAAKgsF,aAAa5+E,QAAQojB,WAAW,EAAG,EAAGo4B,EAAaC,GAI5D;GAAItvC,GAAIzR,EAAQoF,KAAKrG,MACjBwjB,EAAIviB,EAAQoF,KAAKpG,QAEjByS,IAAMqvC,GAAev+B,IAAMw+B,KAE3BtvC,EAAIqvC,EACJv+B,EAAIw+B,GAGR7oD,KAAKgsF,aAAa5+E,QAAQiB,UAAUvG,EAAQkE,YAAYwC,OACjC1G,EAAQoF,KAAKxH,EACboC,EAAQoF,KAAKvH,EACbmC,EAAQoF,KAAKrG,MACbiB,EAAQoF,KAAKpG,OACb6G,EACAE,EACA0L,EACA8Q,GAEvBrqB,KAAKuqB,gBAAgB7kB,EAAIyG,EAAMtF,MAAQ+hD,EACvC5oD,KAAKuqB,gBAAgB5kB,EAAIwG,EAAMrF,OAAS+hD,EAExC7oD,KAAKk6E,gBAAiB,EAEtBl6E,KAAKmqB,cAAcne,YAAYiZ,WAAY,IAU/CnlB,KAAKi+E,aAAa16E,UAAU2C,UAAY,WAEpC,GAAIa,GAAQ7G,KAAKqI,OACbvB,EAAS9G,KAAKsI,QAEdgE,EAAKzF,GAAS,EAAE7G,KAAKkI,OAAOxC,GAC5B6G,EAAK1F,GAAS7G,KAAKkI,OAAOxC,EAE1B8G,EAAK1F,GAAU,EAAE9G,KAAKkI,OAAOvC,GAC7B8G,EAAK3F,GAAU9G,KAAKkI,OAAOvC,EAE3BpD,EAAiBvC,KAAKuC,eAEtBwC,EAAIxC,EAAewC,EACnBC,EAAIzC,EAAeyC,EACnBC,EAAI1C,EAAe0C,EACnBC,EAAI3C,EAAe2C,EACnBC,EAAK5C,EAAe4C,GACpBC,EAAK7C,EAAe6C,GAEpBsH,EAAK3H,EAAIwH,EAAKtH,EAAIwH,EAAKtH,EACvBwH,EAAKzH,EAAIuH,EAAKzH,EAAIuH,EAAKnH,EAEvBwH,EAAK7H,EAAIuH,EAAKrH,EAAIwH,EAAKtH,EACvB0H,EAAK3H,EAAIuH,EAAKzH,EAAIsH,EAAKlH,EAEvB0H,EAAK/H,EAAIuH,EAAKrH,EAAIuH,EAAKrH,EACvB4H,EAAK7H,EAAIsH,EAAKxH,EAAIsH,EAAKlH,EAEvB4H,EAAMjI,EAAIwH,EAAKtH,EAAIuH,EAAKrH,EACxB8H,EAAM/H,EAAIsH,EAAKxH,EAAIuH,EAAKnH,EAExBoF,GAAQF,IACRG,GAAQH,IAERD,EAAOC,IACPC,EAAOD,GAEXD,GAAYA,EAALqC,EAAYA,EAAKrC,EACxBA,EAAYA,EAALuC,EAAYA,EAAKvC,EACxBA,EAAYA,EAALyC,EAAYA,EAAKzC,EACxBA,EAAYA,EAAL2C,EAAYA,EAAK3C,EAExBE,EAAYA,EAALoC,EAAYA,EAAKpC,EACxBA,EAAYA,EAALsC,EAAYA,EAAKtC,EACxBA,EAAYA,EAALwC,EAAYA,EAAKxC,EACxBA,EAAYA,EAAL0C,EAAYA,EAAK1C,EAExBC,EAAOkC,EAAKlC,EAAOkC,EAAKlC,EACxBA,EAAOoC,EAAKpC,EAAOoC,EAAKpC,EACxBA,EAAOsC,EAAKtC,EAAOsC,EAAKtC,EACxBA,EAAOwC,EAAKxC,EAAOwC,EAAKxC,EAExBC,EAAOkC,EAAKlC,EAAOkC,EAAKlC,EACxBA,EAAOoC,EAAKpC,EAAOoC,EAAKpC,EACxBA,EAAOsC,EAAKtC,EAAOsC,EAAKtC,EACxBA,EAAOwC,EAAKxC,EAAOwC,EAAKxC,CAExB,IAAI/D,GAAS1G,KAAK+C,OAWlB,OATA2D,GAAOhB,EAAI2E,EACX3D,EAAOG,MAAQ2D,EAAOH,EAEtB3D,EAAOf,EAAI4E,EACX7D,EAAOI,OAAS2D,EAAOF,EAGvBvK,KAAKiD,eAAiByD,EAEfA,GAGX5G,KAAKi+E,aAAa16E,UAAUE,QAAU,WAElCzD,KAAK6H,OAAOtE,UAAUE,QAAQuC,KAAK9F,MAEnCA,KAAK2qB,UAAY,KACjB3qB,KAAKuqB,gBAAkB,KACvBvqB,KAAKsqB,aAAe,KAEhBtqB,KAAKmqB,gBAELnqB,KAAKmqB,cAAc5mB,SAAQ,GAC3BvD,KAAKmqB,cAAgB,OAW7BvmB,OAAOC,eAAe/D,KAAKi+E,aAAa16E,UAAW,SAE/CS,IAAK,WACD,MAAO9D,MAAKqI,QAGhBrE,IAAK,SAASC,GACVjE,KAAKqI,OAASpE,KAWtBL,OAAOC,eAAe/D,KAAKi+E,aAAa16E,UAAW,UAE/CS,IAAK,WACD,MAAQ9D,MAAKsI,SAGjBtE,IAAK,SAASC,GACVjE,KAAKsI,QAAUrE,KA+DvB6vB,EAAOq+B,WAAa,SAAUvtD,EAAMc,EAAGC,EAAGkB,EAAOC,EAAQ4P,EAAKvK,GAE1DzG,EAAIA,GAAK,EACTC,EAAIA,GAAK,EACTkB,EAAQA,GAAS,IACjBC,EAASA,GAAU,IACnB4P,EAAMA,GAAO,KACbvK,EAAQA,GAAS,KAMjBnM,KAAK+W,KAAO+c,EAAOwC,WAMnBt2B,KAAK80C,YAAchhB,EAAOmC,OAM1Bj2B,KAAK69E,QAAU,GAAI/pD,GAAOpyB,KAE1B,IAAIo8E,GAAMl5E,EAAKikC,MAAMzU,SAAS,aAAa,EAE3Ct0B,MAAKi+E,aAAaj4E,KAAK9F,KAAM,GAAIF,MAAKyL,QAAQuyE,EAAInE,MAAO9yE,EAAOC,GAEhEgtB,EAAOk/C,UAAUe,KAAKj+D,KAAKhQ,KAAK9F,KAAM4E,EAAMc,EAAGC,EAAG+Q,EAAKvK,IAI3D2nB,EAAOq+B,WAAW9uD,UAAYO,OAAOwE,OAAOtI,KAAKi+E,aAAa16E,WAC9DywB,EAAOq+B,WAAW9uD,UAAUC,YAAcwwB,EAAOq+B,WAEjDr+B,EAAOk/C,UAAUe,KAAKC,QAAQluE,KAAKguB,EAAOq+B,WAAW9uD,WACjD,QACA,YACA,WACA,SACA,aACA,UACA,gBACA,SACA,WACA,eACA,UACA,WACA,cACA,UACA,cACA,QACA,aAGJywB,EAAOq+B,WAAW9uD,UAAUo6E,iBAAmB3pD,EAAOk/C,UAAUoB,YAAY9tE,UAC5EwtB,EAAOq+B,WAAW9uD,UAAUq6E,kBAAoB5pD,EAAOk/C,UAAU+F,SAASzyE,UAC1EwtB,EAAOq+B,WAAW9uD,UAAUs6E,iBAAmB7pD,EAAOk/C,UAAUyF,QAAQnyE,UACxEwtB,EAAOq+B,WAAW9uD,UAAUu6E,cAAgB9pD,EAAOk/C,UAAUe,KAAKztE,UAQlEwtB,EAAOq+B,WAAW9uD,UAAUiD,UAAY,WAYpC,MAVuB,KAAnBtG,KAAK69E,QAAQn4E,IAEb1F,KAAKsqB,aAAa5kB,GAAK1F,KAAK69E,QAAQn4E,EAAI1F,KAAK4E,KAAKskC,KAAK80C,gBAGpC,IAAnBh+E,KAAK69E,QAAQl4E,IAEb3F,KAAKsqB,aAAa3kB,GAAK3F,KAAK69E,QAAQl4E,EAAI3F,KAAK4E,KAAKskC,KAAK80C,gBAGtDh+E,KAAKy9E,oBAAuBz9E,KAAK09E,qBAAwB19E,KAAK29E,mBAK5D39E,KAAK49E,iBAHD,GAkBf9pD,EAAOq+B,WAAW9uD,UAAU46E,WAAa,SAASv4E,EAAGC,GAEjD3F,KAAK69E,QAAQ75E,IAAI0B,EAAGC,IAUxBmuB,EAAOq+B,WAAW9uD,UAAU66E,WAAa,WAErCl+E,KAAK69E,QAAQ75E,IAAI,EAAG,IAYxB8vB,EAAOq+B,WAAW9uD,UAAUE,QAAU,SAASy3C,GAE3ClnB,EAAOk/C,UAAUsC,QAAQjyE,UAAUE,QAAQuC,KAAK9F,KAAMg7C,GAEtDl7C,KAAKi+E,aAAa16E,UAAUE,QAAQuC,KAAK9F,OAe7C8zB,EAAOq+B,WAAW9uD,UAAUoZ,MAAQ,SAAS/W,EAAGC,GAO5C,MALAmuB,GAAOk/C,UAAUuH,MAAMl3E,UAAUoZ,MAAM3W,KAAK9F,KAAM0F,EAAGC,GAErD3F,KAAKsqB,aAAa5kB,EAAI,EACtB1F,KAAKsqB,aAAa3kB,EAAI,EAEf3F,MAiCX8zB,EAAO61B,OAAS,WAOZ3pD,KAAK45F,cAAgB,EAOrB55F,KAAK65F,aAAc,EAQnB75F,KAAKuiD,SAAU,EAMfviD,KAAKotD,KAAM,EAMXptD,KAAKoiD,UAAW,EAMhBpiD,KAAK0zC,aAAc,EAMnB1zC,KAAKmtD,SAAU,EAMfntD,KAAK85F,MAAO,EAMZ95F,KAAK+5F,YAAa,EAMlB/5F,KAAKg6F,UAAW,EAMhBh6F,KAAKi6F,QAAS,EAMdj6F,KAAKk6F,WAAY,EAMjBl6F,KAAKwiD,SAAU,EAMfxiD,KAAKm6F,UAAW,EAMhBn6F,KAAKo6F,OAAQ,EAMbp6F,KAAKq6F,OAAQ,EAMbr6F,KAAKs6F,SAAU,EAMft6F,KAAKu6F,cAAe,EAQpBv6F,KAAK+Q,QAAS,EAMd/Q,KAAKw6F,kBAAoB,KAMzBx6F,KAAKgb,OAAQ,EAMbhb,KAAKy6F,MAAO,EAMZz6F,KAAK06F,YAAa,EAMlB16F,KAAK26F,cAAe,EAMpB36F,KAAK46F,QAAS,EAMd56F,KAAK66F,OAAQ,EAMb76F,KAAK+yD,aAAc,EAMnB/yD,KAAK86F,YAAa,EAMlB96F,KAAK+6F,WAAY,EAMjB/6F,KAAKg7F,cAAe,EAMpBh7F,KAAKi7F,YAAa,EAQlBj7F,KAAKovD,OAAQ,EAMbpvD,KAAKqvD,WAAY,EAOjBrvD,KAAKu0D,WAAa,KAQlBv0D,KAAKk7F,OAAQ,EAMbl7F,KAAKyiD,QAAS,EAMdziD,KAAKm7F,cAAgB,EAMrBn7F,KAAKo7F,UAAW,EAMhBp7F,KAAKq7F,SAAU,EAMfr7F,KAAKs7F,eAAiB,EAMtBt7F,KAAKu7F,IAAK,EAMVv7F,KAAKw7F,UAAY,EAMjBx7F,KAAKy7F,SAAU,EAMfz7F,KAAK07F,eAAiB,EAMtB17F,KAAK27F,cAAe,EAMpB37F,KAAK47F,QAAS,EAMd57F,KAAK67F,OAAQ,EAMb77F,KAAK87F,QAAS,EAMd97F,KAAKsiD,QAAS,EAMdtiD,KAAK+7F,MAAO,EAQZ/7F,KAAKg8F,WAAY,EAMjBh8F,KAAKksD,UAAW,EAMhBlsD,KAAKi8F,KAAM,EAMXj8F,KAAKk8F,MAAO,EAMZl8F,KAAKm8F,KAAM,EAMXn8F,KAAKo8F,KAAM,EAOXp8F,KAAKq8F,KAAM,EAMXr8F,KAAKs8F,MAAO,EAQZt8F,KAAKu8F,UAAW,EAMhBv8F,KAAKw8F,WAAY,EAMjBx8F,KAAKy8F,UAAW,EAMhBz8F,KAAK08F,WAAY,EAMjB18F,KAAK28F,UAAW,EAMhB38F,KAAK48F,UAAW,EAQhB58F,KAAK68F,QAAS,EAMd78F,KAAK88F,SAAU,EAMf98F,KAAKqiD,MAAO,EAQZriD,KAAK+8F,WAAa,EAMlB/8F,KAAKg9F,cAAe,EAMpBh9F,KAAKklF,eAAgB,EAMrBllF,KAAKi9F,cAAe,EAMpBj9F,KAAKmiD,YAAa,EAMlBniD,KAAKooD,kBAAoB,GAMzBpoD,KAAKwoD,iBAAmB,GAMxBxoD,KAAKmoD,oBAAqB,GAM9Br0B,EAAO61B,OAAS,GAAI71B,GAAO61B,OAc3B71B,EAAO61B,OAAOuzC,cAAgB,GAAIppE,GAAO0W,OAgBzC1W,EAAO61B,OAAOoB,UAAY,SAAUpS,EAAUvrC,EAAS+vF,GAEnD,GAAIC,GAAap9F,KAAKq9F,WAEtB,IAAIr9F,KAAK45F,gBAAkBwD,EAEvBzkD,EAAS7yC,KAAKsH,EAASpN,UAEtB,IAAIo9F,EAAWE,UAAYH,EAE5BC,EAAWG,OAASH,EAAWG,WAC/BH,EAAWG,OAAOh5F,MAAMo0C,EAAUvrC,QAGtC,CACIgwF,EAAWE,SAAWF,EAAWllE,KAAKl4B,MACtCo9F,EAAWG,OAASH,EAAWG,WAC/BH,EAAWG,OAAOh5F,MAAMo0C,EAAUvrC,GAElC,IAAI+/C,GAAoC,mBAAnB14C,QAAO04C,QACxB/K,EAAWzyB,UAAsB,UAET,cAAxBnf,SAASgtF,YAAqD,gBAAxBhtF,SAASgtF,WAG/C/oF,OAAOgzC,WAAW21C,EAAWE,SAAU,GAElCnwC,IAAY/K,EAIjB5xC,SAAS4iC,iBAAiB,cAAegqD,EAAWE,UAAU,IAI9D9sF,SAAS4iC,iBAAiB,mBAAoBgqD,EAAWE,UAAU,GACnE7oF,OAAO2+B,iBAAiB,OAAQgqD,EAAWE,UAAU,MAajExpE,EAAO61B,OAAO0zC,YAAc,WAExB,GAAID,GAAap9F,KAAKq9F,WAEtB,IAAK7sF,SAAS0lC,MAIT,IAAKl2C,KAAK45F,cACf,CACI55F,KAAK45F,cAAgB3pD,KAAK6a,MAE1Bt6C,SAAS+jC,oBAAoB,cAAe6oD,EAAWE,UACvD9sF,SAAS+jC,oBAAoB,mBAAoB6oD,EAAWE,UAC5D7oF,OAAO8/B,oBAAoB,OAAQ6oD,EAAWE,UAE9Ct9F,KAAKy9F,cACLz9F,KAAK65F,aAAc,EAEnB75F,KAAKk9F,cAAczwD,SAASzsC,KAG5B,KADA,GAAI+D,GACIA,EAAOq5F,EAAWG,OAAO1jC,SACjC,CACI,GAAIlhB,GAAW50C,EAAK,GAChBqJ,EAAUrJ,EAAK,EACnB40C,GAAS7yC,KAAKsH,EAASpN,MAI3BA,KAAKq9F,YAAc,KACnBr9F,KAAKy9F,YAAc,KACnBz9F,KAAKk9F,cAAgB,UA1BrBzoF,QAAOgzC,WAAW21C,EAAWE,SAAU,KAsC/CxpE,EAAO61B,OAAO8zC,YAAc,WAOxB,QAASC,KAEL,GAAIx9D,GAAKvQ,UAAUozC,SAEf,oBAAmB+vB,KAAK5yD,GAExBuT,EAAOkqD,MAAO,EAET,SAAS7K,KAAK5yD,IAAO,kBAAkB4yD,KAAK5yD,IAAO,sBAAsB4yD,KAAK5yD,GAEnFuT,EAAOmqD,QAAS,EAIX,UAAU9K,KAAK5yD,GAEpBuT,EAAO+O,SAAU,EAEZ,OAAOswC,KAAK5yD,GAEjBuT,EAAO0mD,UAAW,EAEb,kBAAkBrH,KAAK5yD,GAE5BuT,EAAO2Z,KAAM,EAER,QAAQ0lC,KAAK5yD,GAElBuT,EAAO2mD,OAAQ,EAEV,SAAStH,KAAK5yD,GAEnBuT,EAAO4mD,OAAQ,EAEV,UAAUvH,KAAK5yD,KAEpBuT,EAAO6mD,SAAU,IAGjB,iBAAiBxH,KAAK5yD,IAAO,YAAY4yD,KAAK5yD,MAE9CuT,EAAO+O,SAAU,EACjB/O,EAAO2Z,KAAM,EACb3Z,EAAO4mD,OAAQ,EACf5mD,EAAO6mD,SAAU,EACjB7mD,EAAO8mD,cAAe,EAG1B,IAAIwB,GAAO,OAAOjJ,KAAK5yD,IAEnBuT,EAAO6mD,SAAW7mD,EAAO4mD,OAAU5mD,EAAO2mD,QAAU2B,GAAStoD,EAAO0mD,YAEpE1mD,EAAO8O,SAAU,IAIjB9O,EAAO8mD,cAAkB,cAAczH,KAAK5yD,IAAS,SAAS4yD,KAAK5yD,MAEnEuT,EAAO8O,SAAU,GAQzB,QAASs7C,KAELpqD,EAAO1iC,SAAW0D,OAAiC,0BAAKg/B,EAAO2O,QAE/D,KACI3O,EAAOknD,eAAiBA,aAAamD,QACvC,MAAOC,GACLtqD,EAAOknD,cAAe,EAG1BlnD,EAAOgnD,QAAShmF,OAAa,MAAOA,OAAmB,YAAOA,OAAiB,UAAOA,OAAa,MACnGg/B,EAAOinD,aAAejmF,OAA0B,kBAEhDg/B,EAAOz4B,MAAQ,WAAgB,IAAM,GAAIjK,GAASP,SAASQ,cAAe,SAAyE,OAA7BD,GAAO8e,cAAe,IAAiBpb,OAAOupF,wBAA2BjtF,EAAOE,WAAY,UAAaF,EAAOE,WAAY,uBAA4B,MAAOgqB,GAAM,OAAO,MAClSwY,EAAOz4B,QAAUy4B,EAAOz4B,MAExBy4B,EAAOmnD,SAAWnmF,OAAe,OAEjCg/B,EAAOsf,YAAc,sBAAwBviD,WAAY,yBAA2BA,WAAY,4BAA8BA,UAE9HijC,EAAOwnD,WAAsC,eAAxBzqF,SAASytF,YAA+B,GAAQ,EAErEtuE,UAAUqrE,aAAerrE,UAAUqrE,cAAgBrrE,UAAUuuE,oBAAsBvuE,UAAUwuE,iBAAmBxuE,UAAUyuE,gBAAkBzuE,UAAU0uE,cAEtJ5pF,OAAO6pF,IAAM7pF,OAAO6pF,KAAO7pF,OAAO8pF,WAAa9pF,OAAO+pF,QAAU/pF,OAAOgqF,MAEvEhrD,EAAOunD,aAAevnD,EAAOunD,gBAAkBrrE,UAAUqrE,gBAAkBvmF,OAAO6pF,IAG9E7qD,EAAO4nD,SAAW5nD,EAAO6nD,eAAiB,KAE1C7nD,EAAOunD,cAAe,IAOrBvnD,EAAO2Z,MAAQ3Z,EAAO8nD,IAAM9nD,EAAO4nD,SAAW5nD,EAAOgP,UAEtDhP,EAAO+mD,mBAAoB,IAI3B/mD,EAAOqoD,QAAUroD,EAAOkoD,gBAExBloD,EAAO+mD,mBAAoB,GAQnC,QAASkE,MAED,gBAAkBluF,UAASi1C,iBAAoBhxC,OAAOkb,UAAUgvE,gBAAkBlqF,OAAOkb,UAAUgvE,gBAAkB,KAErHlrD,EAAO2b,OAAQ,IAGf36C,OAAOkb,UAAUivE,kBAAoBnqF,OAAOkb,UAAUkvE,kBAEtDprD,EAAO4b,WAAY,GAGlB5b,EAAO2O,WAGJ,WAAa3tC,SAAWg/B,EAAO8nD,IAAM,cAAgB9mF,QAGrDg/B,EAAO8gB,WAAa,QAEf,gBAAkB9/C,QAGvBg/B,EAAO8gB,WAAa,aAEf9gB,EAAO4nD,SAAW,oBAAsB5mF,UAG7Cg/B,EAAO8gB,WAAa,mBAShC,QAASuqC,KAeL,IAAK,GAbDC,IACA,oBACA,oBACA,0BACA,0BACA,sBACA,sBACA,uBACA,wBAGAlqC,EAAUrkD,SAASQ,cAAc,OAE5BvN,EAAI,EAAGA,EAAIs7F,EAAGr7F,OAAQD,IAE3B,GAAIoxD,EAAQkqC,EAAGt7F,IACf,CACIgwC,EAAO0O,YAAa,EACpB1O,EAAO2U,kBAAoB22C,EAAGt7F,EAC9B,OAIR,GAAIu7F,IACA,mBACA,iBACA,yBACA,uBACA,qBACA,mBACA,sBACA,oBAGJ,IAAIvrD,EAAO0O,WAEP,IAAK,GAAI1+C,GAAI,EAAGA,EAAIu7F,EAAIt7F,OAAQD,IAE5B,GAAI+M,SAASwuF,EAAIv7F,IACjB,CACIgwC,EAAO+U,iBAAmBw2C,EAAIv7F,EAC9B,OAMRgR,OAAgB,SAAK4zC,QAA8B,uBAEnD5U,EAAO0U,oBAAqB,GAQpC,QAAS82C,KAEL,GAAI/+D,GAAKvQ,UAAUozC,SAmFnB,IAjFI,QAAQ+vB,KAAK5yD,GAEbuT,EAAOynD,OAAQ,EAEV,gBAAgBpI,KAAK5yD,KAAQuT,EAAO8mD,cAEzC9mD,EAAOgP,QAAS,EAChBhP,EAAO0nD,cAAgB9gE,SAAS6kE,OAAOC,GAAI,KAEtC,WAAWrM,KAAK5yD,GAErBuT,EAAO2nD,UAAW,EAEb,kBAAkBtI,KAAK5yD,IAE5BuT,EAAO4nD,SAAU,EACjB5nD,EAAO6nD,eAAiBjhE,SAAS6kE,OAAOC,GAAI,KAEvC,cAAcrM,KAAK5yD,IAAOuT,EAAO2Z,IAEtC3Z,EAAOkoD,cAAe,EAEjB,mBAAmB7I,KAAK5yD,IAE7BuT,EAAO8nD,IAAK,EACZ9nD,EAAO+nD,UAAYnhE,SAAS6kE,OAAOC,GAAI,KAElC,SAASrM,KAAK5yD,GAEnBuT,EAAOmoD,QAAS,EAEX,QAAQ9I,KAAK5yD,GAElBuT,EAAOooD,OAAQ,EAEV,SAAS/I,KAAK5yD,KAAQuT,EAAO8mD,aAElC9mD,EAAOqoD,QAAS,EAEX,uCAAuChJ,KAAK5yD,KAEjDuT,EAAO8nD,IAAK,EACZ9nD,EAAOgoD,SAAU,EACjBhoD,EAAOioD,eAAiBrhE,SAAS6kE,OAAOC,GAAI,IAC5C1rD,EAAO+nD,UAAYnhE,SAAS6kE,OAAOE,GAAI,KAIvC,OAAOtM,KAAK5yD,KAEZuT,EAAOsoD,MAAO,GAIdpsE,UAAsB,aAEtB8jB,EAAO6O,QAAS,GAGU,mBAAnB7tC,QAAO04C,UAEd1Z,EAAO0Z,SAAU,GAGE,mBAAZkyC,UAA8C,mBAAZC,WAEzC7rD,EAAOqmD,MAAO,GAGdrmD,EAAOqmD,MAAoC,gBAArBuF,SAAQE,WAE9B9rD,EAAOsmD,aAAesF,QAAQE,SAAS,eAEvC9rD,EAAOumD,WAAaqF,QAAQE,SAASvF,UAGrCrqE,UAAsB,aAEtB8jB,EAAO2O,UAAW,GAGlB3O,EAAO2O,SAEP,IACI3O,EAAOC,YAAmC,mBAAbC,UAEjC,MAAMoqD,GAEFtqD,EAAOC,aAAc,EAIA,mBAAlBj/B,QAAOwlF,SAEdxmD,EAAOwmD,QAAS,GAGhB,YAAYnH,KAAK5yD,KAEjBuT,EAAOymD,WAAY,GAQ3B,QAASsF,KAEL,GAAIC,GAAejvF,SAASQ,cAAc,SACtCM,GAAS,CAEb,MACQA,IAAWmuF,EAAaC,eAEpBD,EAAaC,YAAY,8BAA8BhkE,QAAQ,OAAQ,MAEvE+X,EAAO8oD,UAAW,GAGlBkD,EAAaC,YAAY,mCAAmChkE,QAAQ,OAAQ,MAG5E+X,EAAO+oD,WAAY,EACnB/oD,EAAOgpD,UAAW,GAGlBgD,EAAaC,YAAY,oCAAoChkE,QAAQ,OAAQ,MAE7E+X,EAAOipD,WAAY,GAGnB+C,EAAaC,YAAY,4BAA4BhkE,QAAQ,OAAQ,MAErE+X,EAAOkpD,UAAW,GAGlB8C,EAAaC,YAAY,+CAA+ChkE,QAAQ,OAAQ,MAExF+X,EAAOmpD,UAAW,IAG5B,MAAO3hE,KAMb,QAAS0kE,KAELlsD,EAAOuoD,YAAevnF,OAAe,MACrCg/B,EAAOyY,YAAcz3C,OAAqB,eAAKA,OAA2B,mBAC1E,IAAImrF,GAAepvF,SAASQ,cAAc,SACtCM,GAAS,CAEb,MACQA,IAAWsuF,EAAaF,eAEpBE,EAAaF,YAAY,8BAA8BhkE,QAAQ,OAAQ,MAEvE+X,EAAOwoD,KAAM,IAGb2D,EAAaF,YAAY,4BAA4BhkE,QAAQ,OAAQ,KAAOkkE,EAAaF,YAAY,eAAehkE,QAAQ,OAAQ,OAEpI+X,EAAOyoD,MAAO,GAGd0D,EAAaF,YAAY,eAAehkE,QAAQ,OAAQ,MAExD+X,EAAO0oD,KAAM,GAMbyD,EAAaF,YAAY,yBAAyBhkE,QAAQ,OAAQ,MAElE+X,EAAO2oD,KAAM,IAGbwD,EAAaF,YAAY,iBAAmBE,EAAaF,YAAY,cAAchkE,QAAQ,OAAQ,OAEnG+X,EAAO4oD,KAAM,GAGbuD,EAAaF,YAAY,+BAA+BhkE,QAAQ,OAAQ,MAExE+X,EAAO6oD,MAAO,IAGxB,MAAOrhE,KAQb,QAAS4kE,KAELpsD,EAAOspD,WAAatoF,OAAyB,kBAAK,EAClDg/B,EAAOopD,OAAgE,IAAvDltE,UAAUozC,UAAU+8B,cAAc32F,QAAQ,UAC1DsqC,EAAOqpD,QAAgC,GAArBrpD,EAAOspD,YAAmBtpD,EAAOopD,OACnDppD,EAAO4O,KAA4D,IAArD1yB,UAAUozC,UAAU+8B,cAAc32F,QAAQ,QAIpDsqC,EAAOqnD,WAFc,mBAAdiF,YAEa,GAIA,EAGG,mBAAhBv/F,cAAqD,mBAAfi0B,aAAqD,mBAAhBl0B,eAElFkzC,EAAOupD,aAAegD,IACtBvsD,EAAOyxC,cAAgBzxC,EAAOupD,cAGlCvpD,EAAOwpD,aAAuC,mBAAhBz8F,cAA4D,mBAAtBy/F,oBAA2D,mBAAfC,aAAsD,OAAxBzsD,EAAOupD,cAAyBmD,IAE9KxwE,UAAUywE,QAAUzwE,UAAUywE,SAAWzwE,UAAU0wE,eAAiB1wE,UAAU2wE,YAAc3wE,UAAU4wE,UAElG5wE,UAAUywE,UAEV3sD,EAAOsnD,WAAY,GAU3B,QAASiF,KAEL,GAAIj7F,GAAI,GAAIvE,aAAY,GACpBwE,EAAI,GAAIyvB,YAAW1vB,GACnBE,EAAI,GAAI1E,aAAYwE,EAOxB,OALAC,GAAE,GAAK,IACPA,EAAE,GAAK,IACPA,EAAE,GAAK,IACPA,EAAE,GAAK,IAEK,YAARC,EAAE,IAEK,EAGC,YAARA,EAAE,IAEK,EAKA,KAUf,QAASk7F,KAEL,GAA0B12F,SAAtBw2F,kBAEA,OAAO,CAGX,IAAIO,GAAOhwF,SAASQ,cAAc,UAC9B+1B,EAAMy5D,EAAKvvF,WAAW,KAE1B,KAAK81B,EAED,OAAO,CAGX,IAAItU,GAAQsU,EAAI05D,gBAAgB,EAAG,EAEnC,OAAOhuE,GAAMthB,eAAgB8uF,mBAOjC,QAASS,KAEL,GACIC,GADAC,EAAKpwF,SAASQ,cAAc,KAE5B6vF,GACAC,gBAAmB,oBACnBC,WAAc,eACdC,YAAe,gBACfC,aAAgB,iBAChBxxF,UAAa,YAIjBe,UAAS0lC,KAAK+R,aAAa24C,EAAI,KAE/B,KAAK,GAAI9nE,KAAK+nE,GAEUp3F,SAAhBm3F,EAAGn8E,MAAMqU,KAET8nE,EAAGn8E,MAAMqU,GAAK,2BACd6nE,EAAQlsF,OAAOysF,iBAAiBN,GAAIO,iBAAiBN,EAAW/nE,IAIxEtoB,UAAS0lC,KAAKvtC,YAAYi4F,GAC1BntD,EAAOonD,MAAmBpxF,SAAVk3F,GAAuBA,EAAMj9F,OAAS,GAAe,SAAVi9F,EAhiB/D,GAAIltD,GAASzzC,IAqiBb09F,KACAiC,IACAH,IACAP,IACAyB,IACAb,IACAhC,IACAiB,IACAJ,KAYJ5qE,EAAO61B,OAAOy3C,aAAe,SAAUrqF,GAEnC,MAAa,QAATA,GAAkB/W,KAAKm8F,KAEhB,EAEO,QAATplF,IAAmB/W,KAAKi8F,KAAOj8F,KAAKk8F,OAElC,EAEO,QAATnlF,GAAkB/W,KAAKq8F,KAErB,EAEO,SAATtlF,GAAmB/W,KAAKk8F,MAEtB,EAEO,QAATnlF,GAAkB/W,KAAKo8F,KAErB,EAEO,SAATrlF,GAAmB/W,KAAKs8F,MAEtB,GAGJ,GAYXxoE,EAAO61B,OAAO03C,aAAe,SAAUtqF,GAEnC,MAAa,SAATA,IAAoB/W,KAAK08F,WAAa18F,KAAK28F,WAEpC,EAEO,QAAT5lF,IAAmB/W,KAAKy8F,UAAYz8F,KAAKw8F,YAEvC,EAEO,QAATzlF,GAAkB/W,KAAKu8F,UAErB,EAEO,SAATxlF,GAAmB/W,KAAK48F,UAEtB,GAGJ,GAYX9oE,EAAO61B,OAAO23C,cAAgB,WAE1B,MAAI7sF,QAAOC,SAAWD,OAAOC,QAAiB,SAEnC,EAGPD,OAAOC,UAEPA,QAAQ6sF,UACR7sF,QAAQ8sF,aAEJ9sF,QAAQ0P,OAER1P,QAAQ0P,QAGR1P,QAAkB,UAEXA,QAAkB,SAAEhR,OAAS,GAIrC,GAgBXowB,EAAO61B,OAAO83C,sBAAwB,WAElC,GAAIC,GAAUjtF,OAAOkb,UAAUozC,UAAUguB,MAAM,iCAC/C,OAAO2Q,IAAWA,EAAQ,GAAK,KAqBnC5tE,EAAO0e,KAYHC,UAAW,SAAUoiB,EAAS13B,GAE1BA,EAAQA,GAAS,GAAIrJ,GAAOpyB,KAE5B,IAAIigG,GAAM9sC,EAAQ1O,wBAEdZ,EAAYzxB,EAAO0e,IAAIovD,QACvBC,EAAa/tE,EAAO0e,IAAIsvD,QACxBC,EAAYvxF,SAASi1C,gBAAgBs8C,UACrCC,EAAaxxF,SAASi1C,gBAAgBu8C,UAK1C,OAHA7kE,GAAMz3B,EAAIi8F,EAAI9mE,KAAOgnE,EAAaG,EAClC7kE,EAAMx3B,EAAIg8F,EAAIvkE,IAAMmoB,EAAYw8C,EAEzB5kE,GAiBXn3B,UAAW,SAAU6uD,EAASotC,GAM1B,MAJgBx4F,UAAZw4F,IAAyBA,EAAU,GAEvCptC,EAAUA,IAAYA,EAAQ95B,SAAW85B,EAAQ,GAAKA,EAEjDA,GAAgC,IAArBA,EAAQ95B,SAMb/6B,KAAKkiG,UAAUrtC,EAAQ1O,wBAAyB87C,IAJhD,GAkBfC,UAAW,SAAUC,EAAQF,GAEzBA,GAAWA,GAAW,CAEtB,IAAIplE,IAAWh2B,MAAO,EAAGC,OAAQ,EAAG+zB,KAAM,EAAGD,MAAO,EAAGwC,IAAK,EAAGC,OAAQ,EAKvE,OAHAR,GAAOh2B,OAASg2B,EAAOjC,MAAQunE,EAAOvnE,MAAQqnE,IAAYplE,EAAOhC,KAAOsnE,EAAOtnE,KAAOonE,GACtFplE,EAAO/1B,QAAU+1B,EAAOQ,OAAS8kE,EAAO9kE,OAAS4kE,IAAYplE,EAAOO,IAAM+kE,EAAO/kE,IAAM6kE,GAEhFplE,GAWXulE,eAAgB,SAAUrnB,GAEtBA,EAAS,MAAQA,EAAS/6E,KAAKujD,aAAe,IAAMw3B,EAAOhgD,SAAW/6B,KAAKgG,UAAU+0E,GAAUA,CAE/F,IAAIxhE,GAAIwhE,EAAc,MAClB1wD,EAAI0wD,EAAe,MAYvB,OAViB,kBAANxhE,KAEPA,EAAIA,EAAEzT,KAAKi1E,IAGE,kBAAN1wD,KAEPA,EAAIA,EAAEvkB,KAAKi1E,IAGRxhE,EAAI8Q,GAiBfg4E,iBAAkB,SAAUxtC,EAASotC,GAEjC,GAAI5jF,GAAIre,KAAKgG,UAAU6uD,EAASotC,EAEhC,SAAS5jF,GAAKA,EAAEgf,QAAU,GAAKhf,EAAEuc,OAAS,GAAKvc,EAAE+e,KAAOp9B,KAAKimD,aAAap/C,OAASwX,EAAEwc,MAAQ76B,KAAKimD,aAAan/C,QA6BnH24C,qBAAsB,SAAU6iD,GAE5B,GAAIC,GAAS9tF,OAAO8tF,OAChBv9C,EAAcu9C,EAAOv9C,aAAeu9C,EAAOC,gBAAkBD,EAAOE,aAExE,IAAIz9C,GAA2C,gBAArBA,GAAYjuC,KAGlC,MAAOiuC,GAAYjuC,IAElB,IAA2B,gBAAhBiuC,GAGZ,MAAOA,EAGX,IAAI09C,GAAW,mBACXC,EAAY,mBAEhB,IAAwB,WAApBL,EAEA,MAAQC,GAAOz7F,OAASy7F,EAAO17F,MAAS67F,EAAWC,CAElD,IAAwB,aAApBL,EAEL,MAAQtiG,MAAKujD,aAAaz8C,OAAS9G,KAAKujD,aAAa18C,MAAS67F,EAAWC,CAExE,IAAwB,uBAApBL,GAA0E,gBAAvB7tF,QAAOuwC,YAG/D,MAA+B,KAAvBvwC,OAAOuwC,aAA4C,MAAvBvwC,OAAOuwC,YAAuB09C,EAAWC,CAE5E,IAAIluF,OAAOmuF,WAChB,CACI,GAAInuF,OAAOmuF,WAAW,2BAA2BlB,QAE7C,MAAOgB,EAEN,IAAIjuF,OAAOmuF,WAAW,4BAA4BlB,QAEnD,MAAOiB,GAIf,MAAQ3iG,MAAKujD,aAAaz8C,OAAS9G,KAAKujD,aAAa18C,MAAS67F,EAAWC,GAqB7Ep/C,aAAc,GAAIzvB,GAAO9wB,UAqBzBijD,aAAc,GAAInyB,GAAO9wB,UAczB6/F,eAAgB,GAAI/uE,GAAO9wB,WAI/B8wB,EAAO61B,OAAOoB,UAAU,SAAUtX,GAG9B,GAAIquD,GAAUrtF,QAAW,eAAiBA,QACtC,WAAc,MAAOA,QAAOquF,aAC5B,WAAc,MAAOtyF,UAASi1C,gBAAgBo8C,YAE9CD,EAAUntF,QAAW,eAAiBA,QACtC,WAAc,MAAOA,QAAOsuF,aAC5B,WAAc,MAAOvyF,UAASi1C,gBAAgBF,UAUlD3hD,QAAOC,eAAeiwB,EAAO0e,IAAK,WAC9B1uC,IAAKg+F,IAWTl+F,OAAOC,eAAeiwB,EAAO0e,IAAK,WAC9B1uC,IAAK89F,IAGTh+F,OAAOC,eAAeiwB,EAAO0e,IAAI+Q,aAAc,KAC3Cz/C,IAAKg+F,IAGTl+F,OAAOC,eAAeiwB,EAAO0e,IAAI+Q,aAAc,KAC3Cz/C,IAAK89F,IAGTh+F,OAAOC,eAAeiwB,EAAO0e,IAAIyT,aAAc,KAC3ChiD,MAAO,IAGXL,OAAOC,eAAeiwB,EAAO0e,IAAIyT,aAAc,KAC3ChiD,MAAO,GAGX,IAAI++F,GAAiBvvD,EAAO8O,SACvB/xC,SAASi1C,gBAAgBw9C,aAAexuF,OAAO6lB,YAC/C9pB,SAASi1C,gBAAgBy9C,cAAgBzuF,OAAO8lB,WAKrD,IAAIyoE,EACJ,CAII,GAAIC,GAAc,WACd,MAAOtiG,MAAK2+B,IAAI7qB,OAAO6lB,WAAY9pB,SAASi1C,gBAAgBw9C,cAE5DC,EAAe,WACf,MAAOviG,MAAK2+B,IAAI7qB,OAAO8lB,YAAa/pB,SAASi1C,gBAAgBy9C,cAIjEt/F,QAAOC,eAAeiwB,EAAO0e,IAAI+Q,aAAc,SAC3Cz/C,IAAKm/F,IAGTr/F,OAAOC,eAAeiwB,EAAO0e,IAAI+Q,aAAc,UAC3Cz/C,IAAKo/F,IAGTt/F,OAAOC,eAAeiwB,EAAO0e,IAAIyT,aAAc,SAC3CniD,IAAKm/F,IAGTr/F,OAAOC,eAAeiwB,EAAO0e,IAAIyT,aAAc,UAC3CniD,IAAKo/F,QAKTt/F,QAAOC,eAAeiwB,EAAO0e,IAAI+Q,aAAc,SAC3Cz/C,IAAK,WACD,MAAO2Q,QAAO6lB,cAItB12B,OAAOC,eAAeiwB,EAAO0e,IAAI+Q,aAAc,UAC3Cz/C,IAAK,WACD,MAAO2Q,QAAO8lB,eAItB32B,OAAOC,eAAeiwB,EAAO0e,IAAIyT,aAAc,SAE3CniD,IAAK,WACD,GAAIiB,GAAIyL,SAASi1C,gBAAgBw9C,YAC7Bj+F,EAAIyP,OAAO6lB,UAEf,OAAWt1B,GAAJD,EAAQC,EAAID,KAK3BnB,OAAOC,eAAeiwB,EAAO0e,IAAIyT,aAAc,UAE3CniD,IAAK,WACD,GAAIiB,GAAIyL,SAASi1C,gBAAgBy9C,aAC7Bl+F,EAAIyP,OAAO8lB,WAEf,OAAWv1B,GAAJD,EAAQC,EAAID,IAU/BnB,QAAOC,eAAeiwB,EAAO0e,IAAIqwD,eAAgB,KAC7C5+F,MAAO,IAGXL,OAAOC,eAAeiwB,EAAO0e,IAAIqwD,eAAgB,KAC7C5+F,MAAO,IAGXL,OAAOC,eAAeiwB,EAAO0e,IAAIqwD,eAAgB,SAE7C/+F,IAAK,WACD,GAAIoB,GAAIsL,SAASi1C,eACjB,OAAO9kD,MAAK2+B,IAAIp6B,EAAE+9F,YAAa/9F,EAAEi+F,YAAaj+F,EAAEk+F,gBAKxDx/F,OAAOC,eAAeiwB,EAAO0e,IAAIqwD,eAAgB,UAE7C/+F,IAAK,WACD,GAAIoB,GAAIsL,SAASi1C,eACjB,OAAO9kD,MAAK2+B,IAAIp6B,EAAEg+F,aAAch+F,EAAEm+F,aAAcn+F,EAAEo+F,kBAK3D,MAAM,GAcTxvE,EAAO4e,QAWHtqC,OAAQ,SAAUvB,EAAOC,EAAQ8Q,GAE7B/Q,EAAQA,GAAS,IACjBC,EAASA,GAAU,GAEnB,IAAIiK,GAASP,SAASQ,cAAc,SAYpC,OAVkB,gBAAP4G,IAA0B,KAAPA,IAE1B7G,EAAO6G,GAAKA,GAGhB7G,EAAOlK,MAAQA,EACfkK,EAAOjK,OAASA,EAEhBiK,EAAO0T,MAAM8+E,QAAU,QAEhBxyF,GAYXjB,mBAAoB,SAAUiB,EAAQwJ,GAMlC,MAJAA,GAAQA,GAAS,aAEjBxJ,EAAO0T,MAAM5U,gBAAkB0K,EAExBxJ,GAYX6hC,eAAgB,SAAU7hC,EAAQ9M,GAQ9B,MANAA,GAAQA,GAAS,OAEjB8M,EAAO0T,MAAM++E,cAAgBv/F,EAC7B8M,EAAO0T,MAAM,mBAAqBxgB,EAClC8M,EAAO0T,MAAM,gBAAkBxgB,EAExB8M,GAYX4hC,cAAe,SAAU5hC,EAAQ9M,GAY7B,MAVAA,GAAQA,GAAS,OAEjB8M,EAAO0T,MAAM,yBAA2BxgB,EACxC8M,EAAO0T,MAAM,uBAAyBxgB,EACtC8M,EAAO0T,MAAM,sBAAwBxgB,EACrC8M,EAAO0T,MAAM,oBAAsBxgB,EACnC8M,EAAO0T,MAAM,mBAAqBxgB,EAClC8M,EAAO0T,MAAM,eAAiBxgB,EAC9B8M,EAAO0T,MAAM,+BAAiC,mBAEvC1T,GAcXq7C,SAAU,SAAUr7C,EAAQ3O,EAAQqhG,GAEhC,GAAIh/F,EA+BJ,OA7BuBgF,UAAnBg6F,IAAgCA,GAAiB,GAEjDrhG,IAEsB,gBAAXA,GAGPqC,EAAS+L,SAAS6yC,eAAejhD,GAEV,gBAAXA,IAA2C,IAApBA,EAAO24B,WAG1Ct2B,EAASrC,IAKZqC,IAEDA,EAAS+L,SAAS0lC,MAGlButD,GAAkBh/F,EAAOggB,QAEzBhgB,EAAOggB,MAAMi/E,SAAW,UAG5Bj/F,EAAOyjD,YAAYn3C,GAEZA,GAUXk8C,cAAe,SAAUl8C,GAEjBA,EAAO4vC,YAEP5vC,EAAO4vC,WAAWh4C,YAAYoI,IAkBtChD,aAAc,SAAUX,EAASw7E,EAAYC,EAAYn+D,EAAQE,EAAQk+D,EAAOC,GAI5E,MAFA37E,GAAQW,aAAa2c,EAAQo+D,EAAOC,EAAOn+D,EAAQg+D,EAAYC,GAExDz7E,GAgBXs7E,oBAAqB,SAAUt7E,EAASnJ,GAEpC,GAAI0/F,IAAW,IAAK,OAAQ,KAAM,UAAW,MAE7C,KAAK,GAAIC,KAAUD,GACnB,CACI,GAAIzhE,GAAIyhE,EAAOC,GAAU,sBAEzB,IAAI1hE,IAAK90B,GAGL,MADAA,GAAQ80B,GAAKj+B,EACNmJ,EAIf,MAAOA,IAWXq7E,oBAAqB,SAAUr7E,GAE3B,MAAQA,GAA+B,uBAAKA,EAAkC,0BAAKA,EAAgC,wBAAKA,EAAqC,6BAAKA,EAAiC,yBAYvMy2F,uBAAwB,SAAU9yF,GAU9B,MARAA,GAAO0T,MAAM,mBAAqB,gBAClC1T,EAAO0T,MAAM,mBAAqB,cAClC1T,EAAO0T,MAAM,mBAAqB,mBAClC1T,EAAO0T,MAAM,mBAAqB,4BAClC1T,EAAO0T,MAAM,mBAAqB,oBAClC1T,EAAO0T,MAAM,mBAAqB,YAClC1T,EAAO0T,MAAMq/E,oBAAsB,mBAE5B/yF,GAYXgzF,yBAA0B,SAAUhzF,GAKhC,MAHAA,GAAO0T,MAAM,mBAAqB,OAClC1T,EAAO0T,MAAMq/E,oBAAsB,UAE5B/yF,IAoBf+iB,EAAOg4B,sBAAwB,SAASlnD,EAAMo/F,GAElBv6F,SAApBu6F,IAAiCA,GAAkB,GAKvDhkG,KAAK4E,KAAOA,EAMZ5E,KAAKwpD,WAAY,EAKjBxpD,KAAKgkG,gBAAkBA,CASvB,KAAK,GAPDC,IACA,KACA,MACA,SACA,KAGKv+F,EAAI,EAAGA,EAAIu+F,EAAQvgG,SAAW+Q,OAAOyvF,sBAAuBx+F,IAEjE+O,OAAOyvF,sBAAwBzvF,OAAOwvF,EAAQv+F,GAAK,yBACnD+O,OAAO0vF,qBAAuB1vF,OAAOwvF,EAAQv+F,GAAK,uBAOtD1F,MAAKokG,eAAgB,EAMrBpkG,KAAKqkG,QAAU,KAMfrkG,KAAKskG,WAAa,MAItBxwE,EAAOg4B,sBAAsBzoD,WAMzB+H,MAAO,WAEHpL,KAAKwpD,WAAY,CAEjB,IAAIpa,GAAQpvC,MAEPyU,OAAOyvF,uBAAyBlkG,KAAKgkG,iBAEtChkG,KAAKokG,eAAgB,EAErBpkG,KAAKqkG,QAAU,WACX,MAAOj1D,GAAMm1D,oBAGjBvkG,KAAKskG,WAAa7vF,OAAOgzC,WAAWznD,KAAKqkG,QAAS,KAIlDrkG,KAAKokG,eAAgB,EAErBpkG,KAAKqkG,QAAU,SAAUn7D,GACrB,MAAOkG,GAAMo1D,UAAUt7D,IAG3BlpC,KAAKskG,WAAa7vF,OAAOyvF,sBAAsBlkG,KAAKqkG,WAU5DG,UAAW,SAAUC,GAGjBzkG,KAAK4E,KAAK0hC,OAAO3lC,KAAKq3B,MAAMysE,IAE5BzkG,KAAKskG,WAAa7vF,OAAOyvF,sBAAsBlkG,KAAKqkG,UAQxDE,iBAAkB,WAEdvkG,KAAK4E,KAAK0hC,OAAO2J,KAAK6a,OAEtB9qD,KAAKskG,WAAa7vF,OAAOgzC,WAAWznD,KAAKqkG,QAASrkG,KAAK4E,KAAKskC,KAAKw7D,aAQrE15F,KAAM,WAEEhL,KAAKokG,cAELO,aAAa3kG,KAAKskG,YAIlB7vF,OAAO0vF,qBAAqBnkG,KAAKskG,YAGrCtkG,KAAKwpD,WAAY,GASrBo7C,aAAc,WACV,MAAO5kG,MAAKokG,eAQhBS,MAAO,WACH,MAAQ7kG,MAAKokG,iBAAkB,IAKvCtwE,EAAOg4B,sBAAsBzoD,UAAUC,YAAcwwB,EAAOg4B,sBAkB5Dh4B,EAAOnzB,MAOHmkG,IAAe,EAAVnkG,KAAKC,GAWVmkG,WAAY,SAAUhgG,EAAGC,EAAGggG,GAExB,MADgBv7F,UAAZu7F,IAAyBA,EAAU,MAChCrkG,KAAKshB,IAAIld,EAAIC,GAAKggG,GAY7BC,cAAe,SAAUlgG,EAAGC,EAAGggG,GAE3B,MADgBv7F,UAAZu7F,IAAyBA,EAAU,MAC5BhgG,EAAIggG,EAARjgG,GAYXmgG,iBAAkB,SAAUngG,EAAGC,EAAGggG,GAE9B,MADgBv7F,UAAZu7F,IAAyBA,EAAU,MAChCjgG,EAAIC,EAAIggG,GAUnBG,UAAW,SAAUC,EAAKJ,GAEtB,MADgBv7F,UAAZu7F,IAAyBA,EAAU,MAChCrkG,KAAKo3B,KAAKqtE,EAAMJ,IAU3BK,WAAY,SAAUD,EAAKJ,GAEvB,MADgBv7F,UAAZu7F,IAAyBA,EAAU,MAChCrkG,KAAKq3B,MAAMotE,EAAMJ,IAU5BM,QAAS,WAIL,IAAK,GAFDC,GAAM,EAED9hG,EAAI,EAAGA,EAAI80B,UAAU70B,OAAQD,IAClC8hG,IAAShtE,UAAU90B,EAGvB,OAAO8hG,GAAMhtE,UAAU70B,QAS3B8hG,MAAO,SAAU7zF,GACb,MAAOA,GAAI,GAcf8zF,OAAQ,SAAU38D,EAAO48D,EAAKt6F,GAI1B,MAFc3B,UAAV2B,IAAuBA,EAAQ,GAEvB,IAARs6F,EACO58D,GAGXA,GAAS19B,EACT09B,EAAQ48D,EAAM/kG,KAAKi8B,MAAMkM,EAAQ48D,GAE1Bt6F,EAAQ09B,IAgBnB68D,YAAa,SAAU78D,EAAO48D,EAAKt6F,GAI/B,MAFc3B,UAAV2B,IAAuBA,EAAQ,GAEvB,IAARs6F,EACO58D,GAGXA,GAAS19B,EACT09B,EAAQ48D,EAAM/kG,KAAKq3B,MAAM8Q,EAAQ48D,GAE1Bt6F,EAAQ09B,IAgBnB0mD,WAAY,SAAU1mD,EAAO48D,EAAKt6F,GAI9B,MAFc3B,UAAV2B,IAAuBA,EAAQ,GAEvB,IAARs6F,EACO58D,GAGXA,GAAS19B,EACT09B,EAAQ48D,EAAM/kG,KAAKo3B,KAAK+Q,EAAQ48D,GAEzBt6F,EAAQ09B,IAuCnB88D,QAAS,SAAU3hG,EAAO4hG,EAAOlsB,GAEflwE,SAAVo8F,IAAuBA,EAAQ,GACtBp8F,SAATkwE,IAAsBA,EAAO,GAEjC,IAAI90E,GAAIlE,KAAKmlG,IAAInsB,GAAOksB,EAExB,OAAOllG,MAAKi8B,MAAM34B,EAAQY,GAAKA,GAWnCkhG,QAAS,SAAU9hG,EAAO4hG,EAAOlsB,GAEflwE,SAAVo8F,IAAuBA,EAAQ,GACtBp8F,SAATkwE,IAAsBA,EAAO,GAEjC,IAAI90E,GAAIlE,KAAKmlG,IAAInsB,GAAOksB,EAExB,OAAOllG,MAAKq3B,MAAM/zB,EAAQY,GAAKA,GAWnCmhG,OAAQ,SAAU/hG,EAAO4hG,EAAOlsB,GAEdlwE,SAAVo8F,IAAuBA,EAAQ,GACtBp8F,SAATkwE,IAAsBA,EAAO,GAEjC,IAAI90E,GAAIlE,KAAKmlG,IAAInsB,GAAOksB,EAExB,OAAOllG,MAAKo3B,KAAK9zB,EAAQY,GAAKA,GAalCohG,aAAc,SAAUv5F,EAAIC,EAAIC,EAAIC,GAChC,MAAOlM,MAAKkF,MAAMgH,EAAKF,EAAIC,EAAKF,IAepCw5F,cAAe,SAAUx5F,EAAIC,EAAIC,EAAIC,GACjC,MAAOlM,MAAKkF,MAAM+G,EAAKF,EAAIG,EAAKF,IAUpCw5F,mBAAoB,SAAUnZ,EAAQC,GAClC,MAAOtsF,MAAKkF,MAAMonF,EAAOtnF,EAAIqnF,EAAOrnF,EAAGsnF,EAAOvnF,EAAIsnF,EAAOtnF,IAU7D0gG,oBAAqB,SAAUpZ,EAAQC,GACnC,MAAOtsF,MAAKkF,MAAMonF,EAAOvnF,EAAIsnF,EAAOtnF,EAAGunF,EAAOtnF,EAAIqnF,EAAOrnF,IAS7D0gG,aAAc,SAAUC,GACpB,MAAOtmG,MAAKumG,eAAeD,EAAW3lG,KAAKC,IAAI,IASnD2lG,eAAgB,SAAUD,GAGtB,MADAA,IAAuB,EAAI3lG,KAAKC,GACzB0lG,GAAY,EAAIA,EAAWA,EAAW,EAAI3lG,KAAKC,IAa1D4lG,OAAQ,SAAUviG,EAAOq0C,EAAQhZ,GAC7B,MAAO3+B,MAAK0wB,IAAIptB,EAAQq0C,EAAQhZ,IAYpCmnE,OAAQ,SAAUxiG,EAAOq0C,EAAQjnB,GAC7B,MAAO1wB,MAAK2+B,IAAIr7B,EAAQq0C,EAAQjnB,IAcpC2O,KAAM,SAAU/7B,EAAOotB,EAAKiO,GAExB,GAAIv1B,GAAQu1B,EAAMjO,CAElB,IAAa,GAATtnB,EAEA,MAAO,EAGX,IAAIuH,IAAUrN,EAAQotB,GAAOtnB,CAO7B,OALa,GAATuH,IAEAA,GAAUvH,GAGPuH,EAAS+f,GAepBq1E,UAAW,SAAUziG,EAAOq0C,EAAQhZ,GAEhC,GAAI3f,EAMJ,OALA1b,GAAQtD,KAAKshB,IAAIhe,GACjBq0C,EAAS33C,KAAKshB,IAAIq2B,GAClBhZ,EAAM3+B,KAAKshB,IAAIqd,GACf3f,GAAQ1b,EAAQq0C,GAAUhZ,GAa9BqnE,MAAO,SAAUh1F,GAEb,SAAc,EAAJA,IAUdi1F,OAAQ,SAAUj1F,GAEd,QAAa,EAAJA,IAYb0f,IAAK,WAED,GAAyB,IAArBkH,UAAU70B,QAAwC,gBAAjB60B,WAAU,GAE3C,GAAIpnB,GAAOonB,UAAU,OAIrB,IAAIpnB,GAAOonB,SAGf,KAAK,GAAI90B,GAAI,EAAG4tB,EAAM,EAAGE,EAAMpgB,EAAKzN,OAAY6tB,EAAJ9tB,EAASA,IAE7C0N,EAAK1N,GAAK0N,EAAKkgB,KAEfA,EAAM5tB,EAId,OAAO0N,GAAKkgB,IAahBiO,IAAK,WAED,GAAyB,IAArB/G,UAAU70B,QAAwC,gBAAjB60B,WAAU,GAE3C,GAAIpnB,GAAOonB,UAAU,OAIrB,IAAIpnB,GAAOonB,SAGf,KAAK,GAAI90B,GAAI,EAAG67B,EAAM,EAAG/N,EAAMpgB,EAAKzN,OAAY6tB,EAAJ9tB,EAASA,IAE7C0N,EAAK1N,GAAK0N,EAAKmuB,KAEfA,EAAM77B,EAId,OAAO0N,GAAKmuB,IAWhBunE,YAAa,SAAUxuD,GAEnB,GAAyB,IAArB9f,UAAU70B,QAAwC,gBAAjB60B,WAAU,GAE3C,GAAIpnB,GAAOonB,UAAU,OAIrB,IAAIpnB,GAAOonB,UAAUxb,MAAM,EAG/B,KAAK,GAAItZ,GAAI,EAAG4tB,EAAM,EAAGE,EAAMpgB,EAAKzN,OAAY6tB,EAAJ9tB,EAASA,IAE7C0N,EAAK1N,GAAG40C,GAAYlnC,EAAKkgB,GAAKgnB,KAE9BhnB,EAAM5tB,EAId,OAAO0N,GAAKkgB,GAAKgnB,IAWrByuD,YAAa,SAAUzuD,GAEnB,GAAyB,IAArB9f,UAAU70B,QAAwC,gBAAjB60B,WAAU,GAE3C,GAAIpnB,GAAOonB,UAAU,OAIrB,IAAIpnB,GAAOonB,UAAUxb,MAAM,EAG/B,KAAK,GAAItZ,GAAI,EAAG67B,EAAM,EAAG/N,EAAMpgB,EAAKzN,OAAY6tB,EAAJ9tB,EAASA,IAE7C0N,EAAK1N,GAAG40C,GAAYlnC,EAAKmuB,GAAK+Y,KAE9B/Y,EAAM77B,EAId,OAAO0N,GAAKmuB,GAAK+Y,IAYrB66B,UAAW,SAAUl2C,EAAO+pE,GAExB,MAAOA,GAAU/mG,KAAKggC,KAAKhD,GAAQr8B,KAAKC,GAAID,KAAKC,IAAMZ,KAAKggC,KAAKhD,EAAO,KAAM,MAYlFgqE,oBAAqB,SAAUvzF,EAAG8xD,GAE9B,GAAI7jC,GAAIjuB,EAAE/P,OAAS,EACf02B,EAAIsH,EAAI6jC,EACR9hE,EAAI9C,KAAKq3B,MAAMoC,EAEnB,OAAQ,GAAJmrC,EAEOvlE,KAAKinG,OAAOxzF,EAAE,GAAIA,EAAE,GAAI2mB,GAG/BmrC,EAAI,EAEGvlE,KAAKinG,OAAOxzF,EAAEiuB,GAAIjuB,EAAEiuB,EAAI,GAAIA,EAAItH,GAGpCp6B,KAAKinG,OAAOxzF,EAAEhQ,GAAIgQ,EAAEhQ,EAAI,EAAIi+B,EAAIA,EAAIj+B,EAAI,GAAI22B,EAAI32B,IAY3DyjG,oBAAqB,SAAUzzF,EAAG8xD,GAK9B,IAAK,GAHDvgE,GAAI,EACJ2M,EAAI8B,EAAE/P,OAAS,EAEVD,EAAI,EAAQkO,GAALlO,EAAQA,IAEpBuB,GAAKrE,KAAKmlG,IAAI,EAAIvgC,EAAG5zD,EAAIlO,GAAK9C,KAAKmlG,IAAIvgC,EAAG9hE,GAAKgQ,EAAEhQ,GAAKzD,KAAKmnG,UAAUx1F,EAAGlO,EAG5E,OAAOuB,IAYXoiG,wBAAyB,SAAU3zF,EAAG8xD,GAElC,GAAI7jC,GAAIjuB,EAAE/P,OAAS,EACf02B,EAAIsH,EAAI6jC,EACR9hE,EAAI9C,KAAKq3B,MAAMoC,EAEnB,OAAI3mB,GAAE,KAAOA,EAAEiuB,IAEH,EAAJ6jC,IAEA9hE,EAAI9C,KAAKq3B,MAAMoC,EAAIsH,GAAK,EAAI6jC,KAGzBvlE,KAAKqnG,WAAW5zF,GAAGhQ,EAAI,EAAIi+B,GAAKA,GAAIjuB,EAAEhQ,GAAIgQ,GAAGhQ,EAAI,GAAKi+B,GAAIjuB,GAAGhQ,EAAI,GAAKi+B,GAAItH,EAAI32B,IAI7E,EAAJ8hE,EAEO9xD,EAAE,IAAMzT,KAAKqnG,WAAW5zF,EAAE,GAAIA,EAAE,GAAIA,EAAE,GAAIA,EAAE,IAAK2mB,GAAK3mB,EAAE,IAG/D8xD,EAAI,EAEG9xD,EAAEiuB,IAAM1hC,KAAKqnG,WAAW5zF,EAAEiuB,GAAIjuB,EAAEiuB,GAAIjuB,EAAEiuB,EAAI,GAAIjuB,EAAEiuB,EAAI,GAAItH,EAAIsH,GAAKjuB,EAAEiuB,IAGvE1hC,KAAKqnG,WAAW5zF,EAAEhQ,EAAIA,EAAI,EAAI,GAAIgQ,EAAEhQ,GAAIgQ,EAAMhQ,EAAI,EAARi+B,EAAYA,EAAIj+B,EAAI,GAAIgQ,EAAMhQ,EAAI,EAARi+B,EAAYA,EAAIj+B,EAAI,GAAI22B,EAAI32B,IAc/GwjG,OAAQ,SAAUK,EAAI7jE,EAAI3K,GACtB,OAAQ2K,EAAK6jE,GAAMxuE,EAAIwuE,GAU3BH,UAAW,SAAUx1F,EAAGlO,GACpB,MAAOzD,MAAKunG,UAAU51F,GAAK3R,KAAKunG,UAAU9jG,GAAKzD,KAAKunG,UAAU51F,EAAIlO,IAQtE8jG,UAAY,SAAUtjG,GAElB,GAAc,IAAVA,EAEA,MAAO,EAKX,KAFA,GAAIujG,GAAMvjG,IAEFA,GAEJujG,GAAOvjG,CAGX,OAAOujG,IAgBXH,WAAY,SAAUC,EAAI7jE,EAAIC,EAAI+jE,EAAI3uE,GAElC,GAAI++D,GAAiB,IAAXn0D,EAAK4jE,GAAWxP,EAAiB,IAAX2P,EAAKhkE,GAAWmmD,EAAK9wD,EAAIA,EAAG+wD,EAAK/wD,EAAI8wD,CAErE,QAAQ,EAAInmD,EAAK,EAAIC,EAAKm0D,EAAKC,GAAMjO,GAAM,GAAKpmD,EAAK,EAAIC,EAAK,EAAIm0D,EAAKC,GAAMlO,EAAKiO,EAAK/+D,EAAI2K,GAY/F+6C,WAAY,SAAUz5E,EAAGC,GACrB,MAAOrE,MAAKshB,IAAIld,EAAIC,IAUxB0iG,kBAAmB,SAAUzjG,GAGzB,MAAQA,GAAQ,EAAKtD,KAAKo3B,KAAK9zB,GAAStD,KAAKq3B,MAAM/zB,IAiBvD0jG,gBAAiB,SAAUjkG,EAAQkkG,EAAcC,EAAcC,GAEtCr+F,SAAjBm+F,IAA8BA,EAAe,GAC5Bn+F,SAAjBo+F,IAA8BA,EAAe,GAC/Bp+F,SAAdq+F,IAA2BA,EAAY,EAS3C,KAAK,GAPDtiG,GAAMoiG,EACNniG,EAAMoiG,EACNE,EAAMD,EAAYnnG,KAAKC,GAAK8C,EAE5BskG,KACAC,KAEKhjG,EAAI,EAAOvB,EAAJuB,EAAYA,IAExBQ,GAAOD,EAAMuiG,EACbviG,GAAOC,EAAMsiG,EAEbC,EAAS/iG,GAAKQ,EACdwiG,EAAShjG,GAAKO,CAIlB,QAASA,IAAKyiG,EAAUxiG,IAAKuiG,EAAUtkG,OAAQA,IAcnDi5B,SAAU,SAAUjwB,EAAIC,EAAIC,EAAIC,GAE5B,GAAIc,GAAKjB,EAAKE,EACViB,EAAKlB,EAAKE,CAEd,OAAOlM,MAAKiF,KAAK+H,EAAKA,EAAKE,EAAKA,IAepCq6F,WAAY,SAAUx7F,EAAIC,EAAIC,EAAIC,GAE9B,GAAIc,GAAKjB,EAAKE,EACViB,EAAKlB,EAAKE,CAEd,OAAOc,GAAKA,EAAKE,EAAKA,GAe1Bs6F,YAAa,SAAUz7F,EAAIC,EAAIC,EAAIC,EAAIi5F,GAInC,MAFYr8F,UAARq8F,IAAqBA,EAAM,GAExBnlG,KAAKiF,KAAKjF,KAAKmlG,IAAIl5F,EAAKF,EAAIo5F,GAAOnlG,KAAKmlG,IAAIj5F,EAAKF,EAAIm5F,KAahE7kE,MAAO,SAAUv7B,EAAGX,EAAGC,GACnB,MAAaD,GAAJW,EAAUX,EAAQW,EAAIV,EAAMA,EAAIU,GAY7C0iG,YAAa,SAAU1iG,EAAGX,GACtB,MAAWA,GAAJW,EAAQX,EAAIW,GAavB2iG,OAAQ,SAAUtjG,EAAGC,EAAGq/B,GACpB,MAAQ1jC,MAAKshB,IAAIld,EAAIC,IAAMq/B,GAc/BikE,UAAW,SAAU5iG,EAAG0b,EAAIG,EAAIF,EAAIG,GAChC,MAAOH,IAAO3b,EAAI0b,IAASI,EAAKH,IAASE,EAAKH,IAYlDmnF,WAAY,SAAU7iG,EAAG2rB,EAAKiO,GAE1B,MADA55B,GAAI/E,KAAK2+B,IAAI,EAAG3+B,KAAK0wB,IAAI,GAAI3rB,EAAI2rB,IAAQiO,EAAMjO,KACxC3rB,EAAIA,GAAK,EAAI,EAAIA,IAY5B8iG,aAAc,SAAU9iG,EAAG2rB,EAAKiO,GAE5B,MADA55B,GAAI/E,KAAK2+B,IAAI,EAAG3+B,KAAK0wB,IAAI,GAAI3rB,EAAI2rB,IAAQiO,EAAMjO,KACxC3rB,EAAIA,EAAIA,GAAKA,GAAS,EAAJA,EAAQ,IAAM,KAY3CgM,KAAM,SAAUhM,GACZ,MAAa,GAAJA,EAAU,GAASA,EAAI,EAAM,EAAI,GAY9C+iG,QAAS,SAAU1jG,EAAGC,EAAG20E,GAIrB,MAFalwE,UAATkwE,IAAsBA,EAAO,GAE7B50E,EAAIC,GAAK20E,EAAO30E,EAET,EAEE20E,EAAJ50E,GAAY40E,EAAO50E,EAEjB,GAICA,EAAI40E,GAAQ30E,GAOhC,IAAI0jG,GAAwB/nG,KAAKC,GAAK,IAClC+nG,EAAwB,IAAMhoG,KAAKC,EASvCkzB,GAAOnzB,KAAK68B,SAAW,SAAmBorE,GACtC,MAAOA,GAAUF,GAUrB50E,EAAOnzB,KAAKwgC,SAAW,SAAmB4lE,GACtC,MAAOA,GAAU4B,GAyBrB70E,EAAO+2B,oBAAsB,SAAUg+C,GAErBp/F,SAAVo/F,IAAuBA,MAM3B7oG,KAAKiF,EAAI,EAMTjF,KAAK8oG,GAAK,EAMV9oG,KAAKsvB,GAAK,EAMVtvB,KAAKuvB,GAAK,EAEVvvB,KAAK+oG,IAAIF,IAIb/0E,EAAO+2B,oBAAoBxnD,WASvBimC,IAAK,WAED,GAAIxQ,GAAI,QAAU94B,KAAK8oG,GAAc,uBAAT9oG,KAAKiF,CAOjC,OALAjF,MAAKiF,EAAQ,EAAJ6zB,EACT94B,KAAK8oG,GAAK9oG,KAAKsvB,GACftvB,KAAKsvB,GAAKtvB,KAAKuvB,GACfvvB,KAAKuvB,GAAKuJ,EAAI94B,KAAKiF,EAEZjF,KAAKuvB,IAWhBw5E,IAAK,SAAUF,GAQX,GALA7oG,KAAK8oG,GAAK9oG,KAAK01C,KAAK,KACpB11C,KAAKsvB,GAAKtvB,KAAK01C,KAAK11C,KAAK8oG,IACzB9oG,KAAKuvB,GAAKvvB,KAAK01C,KAAK11C,KAAKsvB,IACzBtvB,KAAKiF,EAAI,EAEJ4jG,EAML,IAAK,GAAIplG,GAAI,EAAGA,EAAIolG,EAAMnlG,QAAuB,MAAZmlG,EAAMplG,GAAaA,IACxD,CACI,GAAIunD,GAAO69C,EAAMplG,EAEjBzD,MAAK8oG,IAAM9oG,KAAK01C,KAAKsV,GACrBhrD,KAAK8oG,OAAS9oG,KAAK8oG,GAAK,GACxB9oG,KAAKsvB,IAAMtvB,KAAK01C,KAAKsV,GACrBhrD,KAAKsvB,OAAStvB,KAAKsvB,GAAK,GACxBtvB,KAAKuvB,IAAMvvB,KAAK01C,KAAKsV,GACrBhrD,KAAKuvB,OAASvvB,KAAKuvB,GAAK,KAahCmmB,KAAM,SAAUvkC,GAEZ,GAAIkZ,GAAG5mB,EAAGkO,CAIV,KAHAA,EAAI,WACJR,EAAOA,EAAKjB,WAEPzM,EAAI,EAAGA,EAAI0N,EAAKzN,OAAQD,IACzBkO,GAAKR,EAAKi8D,WAAW3pE,GACrB4mB,EAAI,mBAAsB1Y,EAC1BA,EAAI0Y,IAAM,EACVA,GAAK1Y,EACL0Y,GAAK1Y,EACLA,EAAI0Y,IAAM,EACVA,GAAK1Y,EACLA,GAAS,WAAJ0Y,CAGT,OAAmB,yBAAX1Y,IAAM,IAUlBq3F,QAAS,WAEL,MAA8B,YAAvBhpG,KAAKspC,IAAIniC,MAAMnH,OAU1BipG,KAAM,WAEF,MAAOjpG,MAAKspC,IAAIniC,MAAMnH,MAAgD,wBAAhB,QAAvBA,KAAKspC,IAAIniC,MAAMnH,MAAmB,IAUrEurF,KAAM,WAEF,MAAOvrF,MAAKgpG,UAAYhpG,KAAKipG,QAYjCC,eAAgB,SAAU73E,EAAKiO,GAE3B,MAAO3+B,MAAKq3B,MAAMh4B,KAAKmpG,YAAY,EAAG7pE,EAAMjO,EAAM,GAAKA,IAa3DoqB,QAAS,SAAUpqB,EAAKiO,GAEpB,MAAOt/B,MAAKkpG,eAAe73E,EAAKiO,IAYpC6pE,YAAa,SAAU93E,EAAKiO,GAExB,MAAOt/B,MAAKipG,QAAU3pE,EAAMjO,GAAOA,GAUvC+3E,OAAQ,WAEJ,MAAO,GAAI,EAAIppG,KAAKipG,QAUxBnrD,KAAM,WAEF,GAAI/4C,GAAI,GACJC,EAAI,EAER,KAAKA,EAAID,EAAI,GAAIA,IAAM,GAAIC,IAAKD,EAAI,EAAQ,EAAJA,EAAM,GAAO,GAAFA,EAAO,EAAE/E,KAAKipG,QAAY,GAAFlkG,EAAO,GAAK,GAAK,GAAGmL,SAAS,IAAM,KAI9G,MAAOlL,IAWXqkG,KAAM,SAAUC,GAEZ,MAAOA,GAAItpG,KAAKkpG,eAAe,EAAGI,EAAI5lG,OAAS,KAWnD6lG,aAAc,SAAUD,GAEpB,MAAOA,MAAO3oG,KAAKmlG,IAAI9lG,KAAKipG,OAAQ,IAAMK,EAAI5lG,OAAS,GAAK,MAYhE4mE,UAAW,SAAUj5C,EAAKiO,GAEtB,MAAOt/B,MAAKmpG,YAAY93E,GAAO,UAAciO,GAAO,YAUxDtC,MAAO,WAEH,MAAOh9B,MAAKkpG,eAAe,KAAM,OAMzCp1E,EAAO+2B,oBAAoBxnD,UAAUC,YAAcwwB,EAAO+2B,oBAwB1D/2B,EAAO01E,SAAW,SAAS9jG,EAAGC,EAAGkB,EAAOC,EAAQ2iG,EAAYC,EAAWziF,GAMnEjnB,KAAKypG,WAAa,GAMlBzpG,KAAK0pG,UAAY,EAKjB1pG,KAAKinB,MAAQ,EAKbjnB,KAAK0G,UAKL1G,KAAK2pG,WAKL3pG,KAAK4pG,SAML5pG,KAAK6pG,UAEL7pG,KAAKyc,MAAM/W,EAAGC,EAAGkB,EAAOC,EAAQ2iG,EAAYC,EAAWziF,IAI3D6M,EAAO01E,SAASnmG,WAcZoZ,MAAO,SAAU/W,EAAGC,EAAGkB,EAAOC,EAAQ2iG,EAAYC,EAAWziF,GAEzDjnB,KAAKypG,WAAaA,GAAc,GAChCzpG,KAAK0pG,UAAYA,GAAa,EAC9B1pG,KAAKinB,MAAQA,GAAS,EAEtBjnB,KAAK0G,QACDhB,EAAG/E,KAAKi8B,MAAMl3B,GACdC,EAAGhF,KAAKi8B,MAAMj3B,GACdkB,MAAOA,EACPC,OAAQA,EACRgjG,SAAUnpG,KAAKq3B,MAAMnxB,EAAQ,GAC7BkjG,UAAWppG,KAAKq3B,MAAMlxB,EAAS,GAC/B8zB,MAAOj6B,KAAKi8B,MAAMl3B,GAAK/E,KAAKq3B,MAAMnxB,EAAQ,GAC1Cw2B,OAAQ18B,KAAKi8B,MAAMj3B,GAAKhF,KAAKq3B,MAAMlxB,EAAS,IAGhD9G,KAAK2pG,QAAQjmG,OAAS,EACtB1D,KAAK4pG,MAAMlmG,OAAS,GAUxBsmG,SAAU,SAAUlvD,GAEhBA,EAAMliB,QAAQ54B,KAAKiqG,gBAAiBjqG,MAAM,IAU9CiqG,gBAAiB,SAAUtgF,GAEnBA,EAAOusB,MAAQvsB,EAAOsoB,QAEtBjyC,KAAKkqG,OAAOvgF,EAAOusB,OAU3B3c,MAAO,WAGHv5B,KAAK4pG,MAAM,GAAK,GAAI91E,GAAO01E,SAASxpG,KAAK0G,OAAOk0B,MAAO56B,KAAK0G,OAAOf,EAAG3F,KAAK0G,OAAOojG,SAAU9pG,KAAK0G,OAAOqjG,UAAW/pG,KAAKypG,WAAYzpG,KAAK0pG,UAAY1pG,KAAKinB,MAAQ,GAGlKjnB,KAAK4pG,MAAM,GAAK,GAAI91E,GAAO01E,SAASxpG,KAAK0G,OAAOhB,EAAG1F,KAAK0G,OAAOf,EAAG3F,KAAK0G,OAAOojG,SAAU9pG,KAAK0G,OAAOqjG,UAAW/pG,KAAKypG,WAAYzpG,KAAK0pG,UAAY1pG,KAAKinB,MAAQ,GAG9JjnB,KAAK4pG,MAAM,GAAK,GAAI91E,GAAO01E,SAASxpG,KAAK0G,OAAOhB,EAAG1F,KAAK0G,OAAO22B,OAAQr9B,KAAK0G,OAAOojG,SAAU9pG,KAAK0G,OAAOqjG,UAAW/pG,KAAKypG,WAAYzpG,KAAK0pG,UAAY1pG,KAAKinB,MAAQ,GAGnKjnB,KAAK4pG,MAAM,GAAK,GAAI91E,GAAO01E,SAASxpG,KAAK0G,OAAOk0B,MAAO56B,KAAK0G,OAAO22B,OAAQr9B,KAAK0G,OAAOojG,SAAU9pG,KAAK0G,OAAOqjG,UAAW/pG,KAAKypG,WAAYzpG,KAAK0pG,UAAY1pG,KAAKinB,MAAQ,IAU3KijF,OAAQ,SAAUh0D,GAEd,GACIxtC,GADAjF,EAAI,CAIR,IAAqB,MAAjBzD,KAAK4pG,MAAM,KAEXlhG,EAAQ1I,KAAKo3C,SAASlB,GAER,KAAVxtC,GAGA,WADA1I,MAAK4pG,MAAMlhG,GAAOwhG,OAAOh0D,EAOjC,IAFAl2C,KAAK2pG,QAAQplG,KAAK2xC,GAEdl2C,KAAK2pG,QAAQjmG,OAAS1D,KAAKypG,YAAczpG,KAAKinB,MAAQjnB,KAAK0pG,UAS3D,IANqB,MAAjB1pG,KAAK4pG,MAAM,IAEX5pG,KAAKu5B,QAIF91B,EAAIzD,KAAK2pG,QAAQjmG,QAEpBgF,EAAQ1I,KAAKo3C,SAASp3C,KAAK2pG,QAAQlmG,IAErB,KAAViF,EAGA1I,KAAK4pG,MAAMlhG,GAAOwhG,OAAOlqG,KAAK2pG,QAAQ/gG,OAAOnF,EAAG,GAAG,IAInDA,KAchB2zC,SAAU,SAAU5lB,GAGhB,GAAI9oB,GAAQ,EA8BZ,OA5BI8oB,GAAK9rB,EAAI1F,KAAK0G,OAAOk0B,OAASpJ,EAAKoJ,MAAQ56B,KAAK0G,OAAOk0B,MAEnDpJ,EAAK7rB,EAAI3F,KAAK0G,OAAO22B,QAAU7L,EAAK6L,OAASr9B,KAAK0G,OAAO22B,OAGzD30B,EAAQ,EAEH8oB,EAAK7rB,EAAI3F,KAAK0G,OAAO22B,SAG1B30B,EAAQ,GAGP8oB,EAAK9rB,EAAI1F,KAAK0G,OAAOk0B,QAGtBpJ,EAAK7rB,EAAI3F,KAAK0G,OAAO22B,QAAU7L,EAAK6L,OAASr9B,KAAK0G,OAAO22B,OAGzD30B,EAAQ,EAEH8oB,EAAK7rB,EAAI3F,KAAK0G,OAAO22B,SAG1B30B,EAAQ,IAITA,GAWXyhG,SAAU,SAAU37F,GAEhB,GAAIA,YAAkBslB,GAAO9wB,UAEzB,GAAIonG,GAAgBpqG,KAAK2pG,QAErBjhG,EAAQ1I,KAAKo3C,SAAS5oC,OAG9B,CACI,IAAKA,EAAO0nC,KAER,MAAOl2C,MAAK6pG,MAGhB,IAAIO,GAAgBpqG,KAAK2pG,QAErBjhG,EAAQ1I,KAAKo3C,SAAS5oC,EAAO0nC,MAoBrC,MAjBIl2C,MAAK4pG,MAAM,KAGG,KAAVlhG,EAEA0hG,EAAgBA,EAAcvrF,OAAO7e,KAAK4pG,MAAMlhG,GAAOyhG,SAAS37F,KAKhE47F,EAAgBA,EAAcvrF,OAAO7e,KAAK4pG,MAAM,GAAGO,SAAS37F,IAC5D47F,EAAgBA,EAAcvrF,OAAO7e,KAAK4pG,MAAM,GAAGO,SAAS37F,IAC5D47F,EAAgBA,EAAcvrF,OAAO7e,KAAK4pG,MAAM,GAAGO,SAAS37F,IAC5D47F,EAAgBA,EAAcvrF,OAAO7e,KAAK4pG,MAAM,GAAGO,SAAS37F,MAI7D47F,GAQXhmF,MAAO,WAEHpkB,KAAK2pG,QAAQjmG,OAAS,CAItB,KAFA,GAAID,GAAIzD,KAAK4pG,MAAMlmG,OAEZD,KAEHzD,KAAK4pG,MAAMnmG,GAAG2gB,QACdpkB,KAAK4pG,MAAMhhG,OAAOnF,EAAG,EAGzBzD,MAAK4pG,MAAMlmG,OAAS,IAK5BowB,EAAO01E,SAASnmG,UAAUC,YAAcwwB,EAAO01E,SAmD/C11E,EAAO63B,IAAM,SAAU/mD,GAEnB5E,KAAK4E,KAAOA,GAIhBkvB,EAAO63B,IAAItoD,WAQPgnG,YAAa,WAET,MAAI51F,QAAO61F,UAAY71F,OAAO61F,SAASC,SAC5B91F,OAAO61F,SAASC,SAGpB,MAcXC,gBAAiB,SAAUC,GACvB,MAAoD,KAA7Ch2F,OAAO61F,SAASC,SAASphG,QAAQshG,IAgB5CC,kBAAmB,SAAUh0F,EAAKzS,EAAO0mG,EAAUttB,GAE9B5zE,SAAbkhG,IAA0BA,GAAW,IAC7BlhG,SAAR4zE,GAA6B,KAARA,KAAcA,EAAM5oE,OAAO61F,SAASM,KAE7D,IAAI/tE,GAAS,GACTguE,EAAK,GAAI3L,QAAO,UAAYxoF,EAAM,kBAAmB,KAEzD,IAAIm0F,EAAG/X,KAAKzV,GAIJxgD,EAFiB,mBAAV54B,IAAmC,OAAVA,EAEvBo5E,EAAI3hD,QAAQmvE,EAAI,KAAOn0F,EAAM,IAAMzS,EAAQ,QAI3Co5E,EAAI3hD,QAAQmvE,EAAI,QAAQnvE,QAAQ,UAAW,QAKxD,IAAqB,mBAAVz3B,IAAmC,OAAVA,EACpC,CACI,GAAI6mG,GAAiC,KAArBztB,EAAIl0E,QAAQ,KAAc,IAAM,IAC5CusC,EAAO2nC,EAAI9jD,MAAM,IACrB8jD,GAAM3nC,EAAK,GAAKo1D,EAAYp0F,EAAM,IAAMzS,EAEpCyxC,EAAK,KACL2nC,GAAO,IAAM3nC,EAAK,IAGtB7Y,EAASwgD,MAKTxgD,GAASwgD,CAIjB,OAAIstB,QAEAl2F,OAAO61F,SAASM,KAAO/tE,GAIhBA,GAafkuE,eAAgB,SAAUC,GAEJvhG,SAAduhG,IAA2BA,EAAY,GAE3C,IAAInuE,MACAouE,EAAYX,SAASY,OAAOC,UAAU,GAAG5xE,MAAM,IAEnD,KAAK,GAAI91B,KAAKwnG,GACd,CACI,GAAIv0F,GAAMu0F,EAAUxnG,GAAG81B,MAAM,IAE7B,IAAI7iB,EAAIhT,OAAS,EACjB,CACI,GAAIsnG,GAAaA,GAAahrG,KAAKorG,UAAU10F,EAAI,IAE7C,MAAO1W,MAAKorG,UAAU10F,EAAI,GAI1BmmB,GAAO78B,KAAKorG,UAAU10F,EAAI,KAAO1W,KAAKorG,UAAU10F,EAAI,KAKhE,MAAOmmB,IAYXuuE,UAAW,SAAUnnG,GACjB,MAAOonG,oBAAmBpnG,EAAMy3B,QAAQ,MAAO,QAKvD5H,EAAO63B,IAAItoD,UAAUC,YAAcwwB,EAAO63B,IAqB1C73B,EAAOy3B,aAAe,SAAU3mD,GAK5B5E,KAAK4E,KAAOA,EAMZ5E,KAAKsrG,WAMLtrG,KAAKurG,QAELvrG,KAAKwrG,SAEDC,OAAU33E,EAAO43E,OAAOD,OACxBE,OAAU73E,EAAO43E,OAAOC,OACxBC,OAAU93E,EAAO43E,OAAOE,OACxBC,OAAU/3E,EAAO43E,OAAOG,OACxBC,OAAUh4E,EAAO43E,OAAOI,OAExBC,OAAUj4E,EAAO43E,OAAOK,OAAOC,KAC/BC,KAAQn4E,EAAO43E,OAAOQ,UAAUC,IAChCC,MAASt4E,EAAO43E,OAAOU,MAAMD,IAC7BE,MAASv4E,EAAO43E,OAAOY,QAAQH,IAC/BI,MAASz4E,EAAO43E,OAAOc,QAAQL,IAC/BM,KAAQ34E,EAAO43E,OAAOgB,WAAWP,IACjCQ,KAAQ74E,EAAO43E,OAAOkB,YAAYT,IAClCU,KAAQ/4E,EAAO43E,OAAOoB,SAASX,IAC/BY,QAAWj5E,EAAO43E,OAAOqB,QAAQZ,IACjCa,KAAQl5E,EAAO43E,OAAOsB,KAAKb,IAC3Bc,OAAUn5E,EAAO43E,OAAOuB,OAAOd,IAE/Be,cAAep5E,EAAO43E,OAAOQ,UAAUiB,GACvCC,eAAgBt5E,EAAO43E,OAAOU,MAAMe,GACpCE,eAAgBv5E,EAAO43E,OAAOY,QAAQa,GACtCG,eAAgBx5E,EAAO43E,OAAOc,QAAQW,GACtCI,cAAez5E,EAAO43E,OAAOgB,WAAWS,GACxCK,cAAe15E,EAAO43E,OAAOkB,YAAYO,GACzCM,cAAe35E,EAAO43E,OAAOoB,SAASK,GACtCO,iBAAkB55E,EAAO43E,OAAOqB,QAAQI,GACxCQ,cAAe75E,EAAO43E,OAAOsB,KAAKG,GAClCS,gBAAiB95E,EAAO43E,OAAOuB,OAAOE,GAEtCU,eAAgB/5E,EAAO43E,OAAOQ,UAAUC,IACxC2B,gBAAiBh6E,EAAO43E,OAAOU,MAAMD,IACrC4B,gBAAiBj6E,EAAO43E,OAAOY,QAAQH,IACvC6B,gBAAiBl6E,EAAO43E,OAAOc,QAAQL,IACvC8B,eAAgBn6E,EAAO43E,OAAOgB,WAAWP,IACzC+B,eAAgBp6E,EAAO43E,OAAOkB,YAAYT,IAC1CgC,eAAgBr6E,EAAO43E,OAAOoB,SAASX,IACvCiC,kBAAmBt6E,EAAO43E,OAAOqB,QAAQZ,IACzCkC,eAAgBv6E,EAAO43E,OAAOsB,KAAKb,IACnCmC,iBAAkBx6E,EAAO43E,OAAOuB,OAAOd,IAEvCoC,iBAAkBz6E,EAAO43E,OAAOQ,UAAUsC,MAC1CC,kBAAmB36E,EAAO43E,OAAOU,MAAMoC,MACvCE,kBAAmB56E,EAAO43E,OAAOY,QAAQkC,MACzCG,kBAAmB76E,EAAO43E,OAAOc,QAAQgC,MACzCI,iBAAkB96E,EAAO43E,OAAOgB,WAAW8B,MAC3CK,iBAAkB/6E,EAAO43E,OAAOkB,YAAY4B,MAC5CM,iBAAkBh7E,EAAO43E,OAAOoB,SAAS0B,MACzCO,oBAAqBj7E,EAAO43E,OAAOqB,QAAQyB,MAC3CQ,iBAAkBl7E,EAAO43E,OAAOsB,KAAKwB,MACrCS,mBAAoBn7E,EAAO43E,OAAOuB,OAAOuB,OAI7CxuG,KAAK4E,KAAK2mC,QAAQ3K,IAAI5gC,KAAKkvG,UAAWlvG,MACtCA,KAAK4E,KAAK6mC,SAAS7K,IAAI5gC,KAAKmvG,WAAYnvG,OAI5C8zB,EAAOy3B,aAAaloD,WAOhB+rG,OAAQ,WAEJ,MAAOpvG,MAAKsrG,SAQhBz+D,UAAW,WAEP,IAAK,GAAIppC,GAAI,EAAGA,EAAIzD,KAAKsrG,QAAQ5nG,OAAQD,IAErCzD,KAAKsrG,QAAQ7nG,GAAG4rG,eAAgB,CAGpCrvG;KAAKurG,SAWT+D,WAAY,SAAUl2E,EAAK51B,GAENiG,SAAbjG,IAA0BA,GAAW,EAEzC,IAAIC,GACA8tB,CAEJ,IAAI9wB,MAAMyT,QAAQklB,GAEd,IAAK31B,EAAI,EAAG8tB,EAAM6H,EAAI11B,OAAY6tB,EAAJ9tB,EAASA,IAEnCzD,KAAKsvG,WAAWl2E,EAAI31B,QAGvB,IAAI21B,EAAIriB,OAAS+c,EAAO0C,OAAShzB,EAElC,IAAK,GAAIC,GAAI,EAAG8tB,EAAM6H,EAAI51B,SAASE,OAAY6tB,EAAJ9tB,EAASA,IAEhDzD,KAAKsvG,WAAWl2E,EAAI51B,SAASC,QAIrC,CACI,IAAKA,EAAI,EAAG8tB,EAAMvxB,KAAKsrG,QAAQ5nG,OAAY6tB,EAAJ9tB,EAASA,IAExC21B,IAAQp5B,KAAKsrG,QAAQ7nG,GAAGgB,QAExBzE,KAAK+rC,OAAO/rC,KAAKsrG,QAAQ7nG,GAIjC,KAAKA,EAAI,EAAG8tB,EAAMvxB,KAAKurG,KAAK7nG,OAAY6tB,EAAJ9tB,EAASA,IAErC21B,IAAQp5B,KAAKurG,KAAK9nG,GAAGgB,QAErBzE,KAAK+rC,OAAO/rC,KAAKurG,KAAK9nG,MActCm9B,IAAK,SAAUo6C,GAEXA,EAAMu0B,SAAWvvG,KACjBA,KAAKurG,KAAKhnG,KAAKy2E,IAWnB5yE,OAAQ,SAAU2yE,GAEd,MAAO,IAAIjnD,GAAOypD,MAAMxC,EAAQ/6E,KAAK4E,KAAM5E,OAU/C+rC,OAAQ,SAAUivC,GAEd,GAAIv3E,GAAIzD,KAAKsrG,QAAQniG,QAAQ6xE,EAEnB,MAANv3E,EAEAzD,KAAKsrG,QAAQ7nG,GAAG4rG,eAAgB,GAIhC5rG,EAAIzD,KAAKurG,KAAKpiG,QAAQ6xE,GAEZ,KAANv3E,IAEAzD,KAAKurG,KAAK9nG,GAAG4rG,eAAgB,KAYzC/oE,OAAQ,WAEJ,GAAIkpE,GAAYxvG,KAAKurG,KAAK7nG,OACtB+rG,EAAYzvG,KAAKsrG,QAAQ5nG,MAE7B,IAAkB,IAAd+rG,GAAiC,IAAdD,EAEnB,OAAO,CAKX,KAFA,GAAI/rG,GAAI,EAEGgsG,EAAJhsG,GAECzD,KAAKsrG,QAAQ7nG,GAAG6iC,OAAOtmC,KAAK4E,KAAKskC,KAAKA,MAEtCzlC,KAIAzD,KAAKsrG,QAAQ1iG,OAAOnF,EAAG,GAEvBgsG,IAWR,OANID,GAAY,IAEZxvG,KAAKsrG,QAAUtrG,KAAKsrG,QAAQzsF,OAAO7e,KAAKurG,MACxCvrG,KAAKurG,KAAK7nG,OAAS,IAGhB,GAWXgsG,WAAY,SAAS30B,GAEjB,MAAO/6E,MAAKsrG,QAAQqE,KAAK,SAAS30B,GAC9B,MAAOA,GAAMv2E,SAAWs2E,KAWhCm0B,UAAW,WAEP,IAAK,GAAIzrG,GAAIzD,KAAKsrG,QAAQ5nG,OAAS,EAAGD,GAAK,EAAGA,IAE1CzD,KAAKsrG,QAAQ7nG,GAAGmsG,UAWxBT,WAAY,WAER,IAAK,GAAI1rG,GAAIzD,KAAKsrG,QAAQ5nG,OAAS,EAAGD,GAAK,EAAGA,IAE1CzD,KAAKsrG,QAAQ7nG,GAAGosG,WAUxBC,SAAU,WAEN,IAAK,GAAIrsG,GAAIzD,KAAKsrG,QAAQ5nG,OAAS,EAAGD,GAAK,EAAGA,IAE1CzD,KAAKsrG,QAAQ7nG,GAAG+nC,SAUxBukE,UAAW,WAEP,IAAK,GAAItsG,GAAIzD,KAAKsrG,QAAQ5nG,OAAS,EAAGD,GAAK,EAAGA,IAE1CzD,KAAKsrG,QAAQ7nG,GAAGioC,QAAO,KAOnC5X,EAAOy3B,aAAaloD,UAAUC,YAAcwwB,EAAOy3B,aAqBnDz3B,EAAOypD,MAAQ,SAAU94E,EAAQG,EAAM+2C,GAKnC37C,KAAK4E,KAAOA,EAKZ5E,KAAKyE,OAASA,EAKdzE,KAAK27C,QAAUA,EAKf37C,KAAKgwG,YASLhwG,KAAK4mB,SAAU,EASf5mB,KAAKiwG,UAAY,EAKjBjwG,KAAKkwG,cAAgB,EAOrBlwG,KAAKqvG,eAAgB,EAOrBrvG,KAAKmwG,QAAU,GAAIr8E,GAAO0W,OAO1BxqC,KAAKowG,OAAS,GAAIt8E,GAAO0W,OAOzBxqC,KAAKqwG,SAAW,GAAIv8E,GAAO0W,OAQ3BxqC,KAAKswG,gBAAkB,GAAIx8E,GAAO0W,OAOlCxqC,KAAKuwG,WAAa,GAAIz8E,GAAO0W,OAM7BxqC,KAAKwpD,WAAY,EAOjBxpD,KAAK05B,QAAU,EAKf15B,KAAKqxF,cAKLrxF,KAAKwwG,aAAe,KAMpBxwG,KAAKywG,UAAW,EAOhBzwG,KAAK0wG,kBAAoB,KAOzB1wG,KAAK2wG,yBAA2B,KAOhC3wG,KAAK4wG,YAAc,EAMnB5wG,KAAKmqD,aAAc,EAMnBnqD,KAAK6wG,aAAc,GAGvB/8E,EAAOypD,MAAMl6E,WAkBTw4B,GAAI,SAAUw1D,EAAYt6B,EAAU+5C,EAAMllE,EAAW41B,EAAOlpD,EAAQy4F,GAchE,OAZiBtnG,SAAbstD,GAAsC,GAAZA,KAAiBA,EAAW,MAC7CttD,SAATqnG,GAA+B,OAATA,KAAiBA,EAAOh9E,EAAO43E,OAAOsF,SAC9CvnG,SAAdmiC,IAA2BA,GAAY,GAC7BniC,SAAV+3D,IAAuBA,EAAQ,GACpB/3D,SAAX6O,IAAwBA,EAAS,GACxB7O,SAATsnG,IAAsBA,GAAO,GAEb,gBAATD,IAAqB9wG,KAAK27C,QAAQ6vD,QAAQsF,KAEjDA,EAAO9wG,KAAK27C,QAAQ6vD,QAAQsF,IAG5B9wG,KAAKwpD,WAEL90C,QAAQukB,KAAK,sDACNj5B,OAGXA,KAAKgwG,SAASzrG,KAAK,GAAIuvB,GAAOm9E,UAAUjxG,MAAM67B,GAAGw1D,EAAYt6B,EAAU+5C,EAAMtvC,EAAOlpD,EAAQy4F,IAExFnlE,GAEA5rC,KAAKoL,QAGFpL,OAoBXqH,KAAM,SAAUgqF,EAAYt6B,EAAU+5C,EAAMllE,EAAW41B,EAAOlpD,EAAQy4F,GAclE,MAZiBtnG,UAAbstD,IAA0BA,EAAW,MAC5BttD,SAATqnG,GAA+B,OAATA,KAAiBA,EAAOh9E,EAAO43E,OAAOsF,SAC9CvnG,SAAdmiC,IAA2BA,GAAY,GAC7BniC,SAAV+3D,IAAuBA,EAAQ,GACpB/3D,SAAX6O,IAAwBA,EAAS,GACxB7O,SAATsnG,IAAsBA,GAAO,GAEb,gBAATD,IAAqB9wG,KAAK27C,QAAQ6vD,QAAQsF,KAEjDA,EAAO9wG,KAAK27C,QAAQ6vD,QAAQsF,IAG5B9wG,KAAKwpD,WAEL90C,QAAQukB,KAAK,wDACNj5B,OAGXA,KAAKgwG,SAASzrG,KAAK,GAAIuvB,GAAOm9E,UAAUjxG,MAAMqH,KAAKgqF,EAAYt6B,EAAU+5C,EAAMtvC,EAAOlpD,EAAQy4F,IAE1FnlE,GAEA5rC,KAAKoL,QAGFpL,OAaXoL,MAAO,SAAU1C,GAIb,GAFce,SAAVf,IAAuBA,EAAQ,GAEjB,OAAd1I,KAAK4E,MAAiC,OAAhB5E,KAAKyE,QAA4C,IAAzBzE,KAAKgwG,SAAStsG,QAAgB1D,KAAKwpD,UAEjF,MAAOxpD,KAIX,KAAK,GAAIyD,GAAI,EAAGA,EAAIzD,KAAKgwG,SAAStsG,OAAQD,IAGtC,IAAK,GAAI40C,KAAYr4C,MAAKgwG,SAASvsG,GAAGytG,KAElClxG,KAAKqxF,WAAWh5C,GAAYr4C,KAAKyE,OAAO4zC,IAAa,EAEhD53C,MAAMyT,QAAQlU,KAAKqxF,WAAWh5C,MAG/Br4C,KAAKqxF,WAAWh5C,IAAa,EAKzC,KAAK,GAAI50C,GAAI,EAAGA,EAAIzD,KAAKgwG,SAAStsG,OAAQD,IAEtCzD,KAAKgwG,SAASvsG,GAAG0tG,YAgBrB,OAbAnxG,MAAK27C,QAAQ/a,IAAI5gC,MAEjBA,KAAKwpD,WAAY,GAEL,EAAR9gD,GAAaA,EAAQ1I,KAAKgwG,SAAStsG,OAAS,KAE5CgF,EAAQ,GAGZ1I,KAAK05B,QAAUhxB,EAEf1I,KAAKgwG,SAAShwG,KAAK05B,SAAStuB,QAErBpL,MAaXgL,KAAM,SAAU+mB,GAqBZ,MAnBiBtoB,UAAbsoB,IAA0BA,GAAW,GAEzC/xB,KAAKwpD,WAAY,EAEjBxpD,KAAK0wG,kBAAoB,KACzB1wG,KAAK2wG,yBAA2B,KAE5B5+E,IAEA/xB,KAAKuwG,WAAW9jE,SAASzsC,KAAKyE,OAAQzE,MAElCA,KAAKwwG,cAELxwG,KAAKwwG,aAAaplG,SAI1BpL,KAAK27C,QAAQ5P,OAAO/rC,MAEbA,MAeXoxG,gBAAiB,SAAU/4D,EAAUp0C,EAAOyE,GAExC,GAA6B,IAAzB1I,KAAKgwG,SAAStsG,OAAgB,MAAO1D,KAIzC,IAFcyJ,SAAVf,IAAuBA,EAAQ,GAErB,KAAVA,EAEA,IAAK,GAAIjF,GAAI,EAAGA,EAAIzD,KAAKgwG,SAAStsG,OAAQD,IAEtCzD,KAAKgwG,SAASvsG,GAAG40C,GAAYp0C,MAKjCjE,MAAKgwG,SAAStnG,GAAO2vC,GAAYp0C,CAGrC,OAAOjE,OAeXwhE,MAAO,SAAUzK,EAAUruD,GAEvB,MAAO1I,MAAKoxG,gBAAgB,QAASr6C,EAAUruD,IAgBnD4P,OAAQ,SAAU2hC,EAAOo3D,EAAa3oG,GAMlC,MAJoBe,UAAhB4nG,IAA6BA,EAAc,GAE/CrxG,KAAKoxG,gBAAgB,gBAAiBn3D,EAAOvxC,GAEtC1I,KAAKoxG,gBAAgB,cAAeC,EAAa3oG,IAe5D2oG,YAAa,SAAUt6C,EAAUruD,GAE7B,MAAO1I,MAAKoxG,gBAAgB,cAAer6C,EAAUruD,IAiBzDqoG,KAAM,SAASntF,EAAQ0tF,EAAW5oG,GAM9B,MAJkBe,UAAd6nG,IAA2BA,EAAY,GAE3CtxG,KAAKoxG,gBAAgB,OAAQxtF,EAAQlb,GAE9B1I,KAAKoxG,gBAAgB,YAAaE,EAAW5oG,IAexD4oG,UAAW,SAAUv6C,EAAUruD,GAE3B,MAAO1I,MAAKoxG,gBAAgB,YAAar6C,EAAUruD,IAevD6oG,OAAQ,SAAUT,EAAMpoG,GAOpB,MALoB,gBAATooG,IAAqB9wG,KAAK27C,QAAQ6vD,QAAQsF,KAEjDA,EAAO9wG,KAAK27C,QAAQ6vD,QAAQsF,IAGzB9wG,KAAKoxG,gBAAgB,iBAAkBN,EAAMpoG,IAgBxD8oG,cAAe,SAAUA,EAAepkG,EAAS1E,GAM7C,MAJgBe,UAAZ2D,IAAyBA,EAAU0mB,EAAOnzB,MAE9CX,KAAKoxG,gBAAgB,wBAAyBI,EAAe9oG,GAEtD1I,KAAKoxG,gBAAgB,uBAAwBhkG,EAAS1E,IAajE+oG,UAAW,SAAUx3D,GAMjB,MAJcxwC,UAAVwwC,IAAuBA,EAAQ,GAEnCj6C,KAAKkwG,cAAgBj2D,EAEdj6C,MAkBX0xG,MAAO,WAIH,IAFA,GAAIjuG,GAAI80B,UAAU70B,OAEXD,KAECA,EAAI,EAEJ80B,UAAU90B,EAAI,GAAG+sG,aAAej4E,UAAU90B,GAI1CzD,KAAKwwG,aAAej4E,UAAU90B,EAItC,OAAOzD,OAmBXszE,KAAM,SAAUrvE,GAaZ,MAXcwF,UAAVxF,IAAuBA,GAAQ,GAE/BA,EAEAjE,KAAKyxG,UAAU,IAIfzxG,KAAKkwG,cAAgB,EAGlBlwG,MAYX4qC,iBAAkB,SAAU+N,EAAU3M,GAKlC,MAHAhsC,MAAK0wG,kBAAoB/3D,EACzB34C,KAAK2wG,yBAA2B3kE,EAEzBhsC,MASXwrC,MAAO,WAEHxrC,KAAKywG,UAAW,EAEhBzwG,KAAKmqD,aAAc,EAEnBnqD,KAAK4wG,YAAc5wG,KAAK4E,KAAKskC,KAAKA,MAUtC0mE,OAAQ,WAEC5vG,KAAKmqD,cAENnqD,KAAKywG,UAAW,EAEhBzwG,KAAK4wG,YAAc5wG,KAAK4E,KAAKskC,KAAKA,OAU1CwC,OAAQ,WAEJ,GAAI1rC,KAAKywG,SACT,CACIzwG,KAAKywG,UAAW,EAEhBzwG,KAAKmqD,aAAc,CAEnB,KAAK,GAAI1mD,GAAI,EAAGA,EAAIzD,KAAKgwG,SAAStsG,OAAQD,IAEjCzD,KAAKgwG,SAASvsG,GAAG+lD,YAElBxpD,KAAKgwG,SAASvsG,GAAGkuG,WAAc3xG,KAAK4E,KAAKskC,KAAKA,KAAOlpC,KAAK4wG,eAY1Ef,QAAS,WAED7vG,KAAKmqD,aAMLnqD,KAAK0rC,UAYbpF,OAAQ,SAAU4C,GAEd,GAAIlpC,KAAKqvG,cAEL,OAAO,CAGX,IAAIrvG,KAAKywG,SAEL,OAAO,CAGX,IAAImB,GAAS5xG,KAAKgwG,SAAShwG,KAAK05B,SAAS4M,OAAO4C,EAEhD,IAAI0oE,IAAW99E,EAAOm9E,UAAUY,QAE5B,OAAO,CAEN,IAAID,IAAW99E,EAAOm9E,UAAUa,QAcjC,MAZK9xG,MAAK6wG,cAEN7wG,KAAKmwG,QAAQ1jE,SAASzsC,KAAKyE,OAAQzE,MACnCA,KAAK6wG,aAAc,GAGQ,OAA3B7wG,KAAK0wG,mBAEL1wG,KAAK0wG,kBAAkB5qG,KAAK9F,KAAK2wG,yBAA0B3wG,KAAMA,KAAKgwG,SAAShwG,KAAK05B,SAASz1B,MAAOjE,KAAKgwG,SAAShwG,KAAK05B,UAIpH15B,KAAKwpD,SAEX,IAAIooD,IAAW99E,EAAOm9E,UAAUc,OAGjC,MADA/xG,MAAKowG,OAAO3jE,SAASzsC,KAAKyE,OAAQzE,OAC3B,CAEN,IAAI4xG,IAAW99E,EAAOm9E,UAAUe,SACrC,CACI,GAAIjgF,IAAW,CAwBf,OArBI/xB,MAAK4mB,SAEL5mB,KAAK05B,UAED15B,KAAK05B,QAAU,IAEf15B,KAAK05B,QAAU15B,KAAKgwG,SAAStsG,OAAS,EACtCquB,GAAW,KAKf/xB,KAAK05B,UAED15B,KAAK05B,UAAY15B,KAAKgwG,SAAStsG,SAE/B1D,KAAK05B,QAAU,EACf3H,GAAW,IAIfA,EAG2B,KAAvB/xB,KAAKkwG,eAELlwG,KAAKgwG,SAAShwG,KAAK05B,SAAStuB,QAC5BpL,KAAKqwG,SAAS5jE,SAASzsC,KAAKyE,OAAQzE,OAC7B,GAEFA,KAAKkwG,cAAgB,GAE1BlwG,KAAKkwG,gBAELlwG,KAAKgwG,SAAShwG,KAAK05B,SAAStuB,QAC5BpL,KAAKqwG,SAAS5jE,SAASzsC,KAAKyE,OAAQzE,OAC7B,IAKPA,KAAKwpD,WAAY,EACjBxpD,KAAKuwG,WAAW9jE,SAASzsC,KAAKyE,OAAQzE,MAElCA,KAAKwwG,cAELxwG,KAAKwwG,aAAaplG,SAGf,IAMXpL,KAAKswG,gBAAgB7jE,SAASzsC,KAAKyE,OAAQzE,MAC3CA,KAAKgwG,SAAShwG,KAAK05B,SAAStuB,SACrB,KAiBnB6mG,aAAc,SAAU5+B,EAAWliE,GAE/B,GAAkB,OAAdnR,KAAK4E,MAAiC,OAAhB5E,KAAKyE,OAE3B,MAAO,KAGOgF,UAAd4pE,IACAA,EAAY,IAGH5pE,SAAT0H,IACAA,KAIJ,KAAK,GAAI1N,GAAI,EAAGA,EAAIzD,KAAKgwG,SAAStsG,OAAQD,IAGtC,IAAK,GAAI40C,KAAYr4C,MAAKgwG,SAASvsG,GAAGytG,KAElClxG,KAAKqxF,WAAWh5C,GAAYr4C,KAAKyE,OAAO4zC,IAAa,EAEhD53C,MAAMyT,QAAQlU,KAAKqxF,WAAWh5C,MAG/Br4C,KAAKqxF,WAAWh5C,IAAa,EAKzC,KAAK,GAAI50C,GAAI,EAAGA,EAAIzD,KAAKgwG,SAAStsG,OAAQD,IAEtCzD,KAAKgwG,SAASvsG,GAAG0tG,YAGrB,KAAK,GAAI1tG,GAAI,EAAGA,EAAIzD,KAAKgwG,SAAStsG,OAAQD,IAEtC0N,EAAOA,EAAK0N,OAAO7e,KAAKgwG,SAASvsG,GAAGwuG,aAAa5+B,GAGrD,OAAOliE,KAUfvN,OAAOC,eAAeiwB,EAAOypD,MAAMl6E,UAAW,iBAE1CS,IAAK,WAID,IAAK,GAFDm2C,GAAQ,EAEHx2C,EAAI,EAAGA,EAAIzD,KAAKgwG,SAAStsG,OAAQD,IAEtCw2C,GAASj6C,KAAKgwG,SAASvsG,GAAGszD,QAG9B,OAAO9c,MAMfnmB,EAAOypD,MAAMl6E,UAAUC,YAAcwwB,EAAOypD,MAiB5CzpD,EAAOm9E,UAAY,SAAU7uG,GAKzBpC,KAAKoC,OAASA,EAKdpC,KAAK4E,KAAOxC,EAAOwC,KAMnB5E,KAAKkyG,UAMLlyG,KAAKmyG,eAMLnyG,KAAKkxG,QAMLlxG,KAAKoyG,aAMLpyG,KAAK+2D,SAAW,IAMhB/2D,KAAKyoG,QAAU,EAMfzoG,KAAKiE,MAAQ,EAKbjE,KAAKkwG,cAAgB,EAKrBlwG,KAAKqxG,YAAc,EAMnBrxG,KAAKmiC,aAAc,EAMnBniC,KAAK+wG,MAAO,EAKZ/wG,KAAKsxG,UAAY,EAMjBtxG,KAAKqyG,WAAY,EAMjBryG,KAAKwhE,MAAQ,EAKbxhE,KAAKypF,GAAK,EAKVzpF,KAAK2xG,UAAY,KAMjB3xG,KAAKsyG,eAAiBx+E,EAAO43E,OAAOsF,QAMpChxG,KAAKuyG,sBAAwBz+E,EAAOnzB,KAAKqmG,oBAMzChnG,KAAKwyG,qBAAuB1+E,EAAOnzB,KAMnCX,KAAKwpD,WAAY,EAMjBxpD,KAAKyyG,QAAS,GAQlB3+E,EAAOm9E,UAAUY,QAAU,EAM3B/9E,EAAOm9E,UAAUa,QAAU,EAM3Bh+E,EAAOm9E,UAAUc,OAAS,EAM1Bj+E,EAAOm9E,UAAUe,SAAW,EAE5Bl+E,EAAOm9E,UAAU5tG,WAebw4B,GAAI,SAAUw1D,EAAYt6B,EAAU+5C,EAAMtvC,EAAOlpD,EAAQy4F,GAWrD,MATA/wG,MAAKkxG,KAAO7f,EACZrxF,KAAK+2D,SAAWA,EAChB/2D,KAAKsyG,eAAiBxB,EACtB9wG,KAAKwhE,MAAQA,EACbxhE,KAAKkwG,cAAgB53F,EACrBtY,KAAK+wG,KAAOA,EAEZ/wG,KAAKyyG,QAAS,EAEPzyG,MAiBXqH,KAAM,SAAUgqF,EAAYt6B,EAAU+5C,EAAMtvC,EAAOlpD,EAAQy4F,GAWvD,MATA/wG,MAAKkxG,KAAO7f,EACZrxF,KAAK+2D,SAAWA,EAChB/2D,KAAKsyG,eAAiBxB,EACtB9wG,KAAKwhE,MAAQA,EACbxhE,KAAKkwG,cAAgB53F,EACrBtY,KAAK+wG,KAAOA,EAEZ/wG,KAAKyyG,QAAS,EAEPzyG,MAUXoL,MAAO,WAsBH,GApBApL,KAAK2xG,UAAY3xG,KAAK4E,KAAKskC,KAAKA,KAAOlpC,KAAKwhE,MAIxCxhE,KAAKypF,GAFLzpF,KAAKoC,OAAOwkB,QAEF5mB,KAAK+2D,SAIL,EAKV/2D,KAAKwpD,UAFLxpD,KAAKwhE,MAAQ,GAEI,GAIA,EAGjBxhE,KAAKyyG,OAGL,IAAK,GAAIp6D,KAAYr4C,MAAKmyG,YAEtBnyG,KAAKkyG,OAAO75D,GAAYr4C,KAAKoyG,UAAU/5D,GACvCr4C,KAAKkxG,KAAK74D,GAAYr4C,KAAKmyG,YAAY95D,GACvCr4C,KAAKoC,OAAOqC,OAAO4zC,GAAYr4C,KAAKkyG,OAAO75D,EAOnD,OAHAr4C,MAAKiE,MAAQ,EACbjE,KAAK0yG,YAAc,EAEZ1yG,MAWXmxG,WAAY,WAER,IAAK,GAAI94D,KAAYr4C,MAAKoC,OAAOivF,WACjC,CAKI,GAHArxF,KAAKkyG,OAAO75D,GAAYr4C,KAAKoC,OAAOivF,WAAWh5C,GAG3C53C,MAAMyT,QAAQlU,KAAKkxG,KAAK74D,IAC5B,CACI,GAAmC,IAA/Br4C,KAAKkxG,KAAK74D,GAAU30C,OAEpB,QAGiB,KAAjB1D,KAAKyoG,UAILzoG,KAAKkxG,KAAK74D,IAAar4C,KAAKkyG,OAAO75D,IAAWx5B,OAAO7e,KAAKkxG,KAAK74D,KAIpC,mBAAxBr4C,MAAKkxG,KAAK74D,IAEkB,gBAAxBr4C,MAAKkxG,KAAK74D,KAGjBr4C,KAAKkxG,KAAK74D,GAAYr4C,KAAKkyG,OAAO75D,GAAYy5C,WAAW9xF,KAAKkxG,KAAK74D,GAAW,KAGlFr4C,KAAKoC,OAAOivF,WAAWh5C,GAAYr4C,KAAKkxG,KAAK74D,IAK7Cr4C,KAAKkxG,KAAK74D,GAAYr4C,KAAKkyG,OAAO75D,GAGtCr4C,KAAKmyG,YAAY95D,GAAYr4C,KAAKkyG,OAAO75D,GACzCr4C,KAAKoyG,UAAU/5D,GAAYr4C,KAAKkxG,KAAK74D,GAGzC,MAAOr4C,OAYXsmC,OAAQ,SAAU4C,GAEd,GAAKlpC,KAAKwpD,WAcN,GAAItgB,EAAOlpC,KAAK2xG,UAEZ,MAAO79E,GAAOm9E,UAAUa,YAfhC,CACI,KAAI5oE,GAAQlpC,KAAK2xG,WAMb,MAAO79E,GAAOm9E,UAAUY,OAJxB7xG,MAAKwpD,WAAY,EAgBrBxpD,KAAKoC,OAAOwkB,SAEZ5mB,KAAKypF,IAAMzpF,KAAK4E,KAAKskC,KAAKypE,UAAY3yG,KAAKoC,OAAO6tG,UAClDjwG,KAAKypF,GAAK9oF,KAAK2+B,IAAIt/B,KAAKypF,GAAI,KAI5BzpF,KAAKypF,IAAMzpF,KAAK4E,KAAKskC,KAAKypE,UAAY3yG,KAAKoC,OAAO6tG,UAClDjwG,KAAKypF,GAAK9oF,KAAK0wB,IAAIrxB,KAAKypF,GAAIzpF,KAAK+2D,WAGrC/2D,KAAKyoG,QAAUzoG,KAAKypF,GAAKzpF,KAAK+2D,SAE9B/2D,KAAKiE,MAAQjE,KAAKsyG,eAAetyG,KAAKyoG,QAEtC,KAAK,GAAIpwD,KAAYr4C,MAAKkxG,KAC1B,CACI,GAAI9lG,GAAQpL,KAAKkyG,OAAO75D,GACpBvuC,EAAM9J,KAAKkxG,KAAK74D,EAIhBr4C,MAAKoC,OAAOqC,OAAO4zC,GAFnB53C,MAAMyT,QAAQpK,GAEiB9J,KAAKuyG,sBAAsBzsG,KAAK9F,KAAKwyG,qBAAsB1oG,EAAK9J,KAAKiE,OAIrEmH,GAAUtB,EAAMsB,GAASpL,KAAKiE,MAIrE,OAAMjE,KAAKoC,OAAOwkB,SAA4B,IAAjB5mB,KAAKyoG,SAAmBzoG,KAAKoC,OAAOwkB,SAA4B,IAAjB5mB,KAAKyoG,QAEtEzoG,KAAKsY,SAGTwb,EAAOm9E,UAAUa,SAa5BG,aAAc,SAAU5+B,GAIhBrzE,KAAKypF,GAFLzpF,KAAKoC,OAAOwkB,QAEF5mB,KAAK+2D,SAIL,CAGd,IAAI5lD,MACA4gB,GAAW,EACX6gF,EAAO,EAAIv/B,EAAa,GAE5B,GACA,CACQrzE,KAAKoC,OAAOwkB,SAEZ5mB,KAAKypF,IAAMmpB,EACX5yG,KAAKypF,GAAK9oF,KAAK2+B,IAAIt/B,KAAKypF,GAAI,KAI5BzpF,KAAKypF,IAAMmpB,EACX5yG,KAAKypF,GAAK9oF,KAAK0wB,IAAIrxB,KAAKypF,GAAIzpF,KAAK+2D,WAGrC/2D,KAAKyoG,QAAUzoG,KAAKypF,GAAKzpF,KAAK+2D,SAE9B/2D,KAAKiE,MAAQjE,KAAKsyG,eAAetyG,KAAKyoG,QAEtC,IAAIoK,KAEJ,KAAK,GAAIx6D,KAAYr4C,MAAKkxG,KAC1B,CACI,GAAI9lG,GAAQpL,KAAKkyG,OAAO75D,GACpBvuC,EAAM9J,KAAKkxG,KAAK74D,EAIhBw6D,GAAKx6D,GAFL53C,MAAMyT,QAAQpK,GAEG9J,KAAKuyG,sBAAsBzoG,EAAK9J,KAAKiE,OAIrCmH,GAAUtB,EAAMsB,GAASpL,KAAKiE,MAIvDkN,EAAK5M,KAAKsuG,KAEJ7yG,KAAKoC,OAAOwkB,SAA4B,IAAjB5mB,KAAKyoG,SAAmBzoG,KAAKoC,OAAOwkB,SAA4B,IAAjB5mB,KAAKyoG,WAE7E12E,GAAW,UAGTA,EAEV,IAAI/xB,KAAK+wG,KACT,CACI,GAAI+B,GAAW3hG,EAAK4L,OACpB+1F,GAASlsF,UACTzV,EAAOA,EAAK0N,OAAOi0F,GAGvB,MAAO3hG,IAWXmH,OAAQ,WAGJ,GAAItY,KAAK+wG,KACT,CAEI,GAAI/wG,KAAKqyG,WAAoC,IAAvBryG,KAAKkwG,cAEvB,MAAOp8E,GAAOm9E,UAAUe,QAG5BhyG,MAAKqyG,WAAaryG,KAAKqyG,cAIvB,IAA2B,IAAvBryG,KAAKkwG,cAEL,MAAOp8E,GAAOm9E,UAAUe,QAIhC,IAAIhyG,KAAKqyG,UAGL,IAAK,GAAIh6D,KAAYr4C,MAAKmyG,YAEtBnyG,KAAKkyG,OAAO75D,GAAYr4C,KAAKoyG,UAAU/5D,GACvCr4C,KAAKkxG,KAAK74D,GAAYr4C,KAAKmyG,YAAY95D,OAI/C,CAEI,IAAK,GAAIA,KAAYr4C,MAAKmyG,YAEtBnyG,KAAKkyG,OAAO75D,GAAYr4C,KAAKmyG,YAAY95D,GACzCr4C,KAAKkxG,KAAK74D,GAAYr4C,KAAKoyG,UAAU/5D,EAKrCr4C,MAAKkwG,cAAgB,GAErBlwG,KAAKkwG,gBAwBb,MApBAlwG,MAAK2xG,UAAY3xG,KAAK4E,KAAKskC,KAAKA,KAE5BlpC,KAAK+wG,MAAQ/wG,KAAKqyG,UAElBryG,KAAK2xG,WAAa3xG,KAAKsxG,UAEjBtxG,KAAKqyG,YAEXryG,KAAK2xG,WAAa3xG,KAAKqxG,aAKvBrxG,KAAKypF,GAFLzpF,KAAKoC,OAAOwkB,QAEF5mB,KAAK+2D,SAIL,EAGPjjC,EAAOm9E,UAAUc,SAMhCj+E,EAAOm9E,UAAU5tG,UAAUC,YAAcwwB,EAAOm9E,UAehDn9E,EAAO43E,QAOHK,QASIC,KAAM,SAAWzmC,GAEb,MAAOA,KAWf2mC,WASIiB,GAAI,SAAW5nC,GAEX,MAAOA,GAAIA,GAWf4mC,IAAK,SAAW5mC,GAEZ,MAAOA,IAAM,EAAIA,IAWrBipC,MAAO,SAAWjpC,GAEd,OAAOA,GAAK,GAAM,EAAW,GAAMA,EAAIA,GAC9B,MAAUA,GAAMA,EAAI,GAAM,KAW3C6mC,OASIe,GAAI,SAAW5nC,GAEX,MAAOA,GAAIA,EAAIA,GAWnB4mC,IAAK,SAAW5mC,GAEZ,QAASA,EAAIA,EAAIA,EAAI,GAWzBipC,MAAO,SAAWjpC,GAEd,OAAOA,GAAK,GAAM,EAAW,GAAMA,EAAIA,EAAIA,EACpC,KAAUA,GAAK,GAAMA,EAAIA,EAAI,KAW5C+mC,SASIa,GAAI,SAAW5nC,GAEX,MAAOA,GAAIA,EAAIA,EAAIA,GAWvB4mC,IAAK,SAAW5mC,GAEZ,MAAO,MAAQA,EAAIA,EAAIA,EAAIA,GAW/BipC,MAAO,SAAWjpC,GAEd,OAAOA,GAAK,GAAM,EAAU,GAAMA,EAAIA,EAAIA,EAAIA,GACrC,KAAUA,GAAK,GAAMA,EAAIA,EAAIA,EAAI,KAWlDinC,SASIW,GAAI,SAAW5nC,GAEX,MAAOA,GAAIA,EAAIA,EAAIA,EAAIA,GAW3B4mC,IAAK,SAAW5mC,GAEZ,QAASA,EAAIA,EAAIA,EAAIA,EAAIA,EAAI,GAWjCipC,MAAO,SAAWjpC,GAEd,OAAOA,GAAK,GAAM,EAAW,GAAMA,EAAIA,EAAIA,EAAIA,EAAIA,EAC5C,KAAUA,GAAK,GAAMA,EAAIA,EAAIA,EAAIA,EAAI,KAWpDmnC,YASIS,GAAI,SAAW5nC,GAEX,MAAU,KAANA,EAAgB,EACV,IAANA,EAAgB,EACb,EAAI5kE,KAAK8E,IAAK8/D,EAAI5kE,KAAKC,GAAK,IAWvCurG,IAAK,SAAW5mC,GAEZ,MAAU,KAANA,EAAgB,EACV,IAANA,EAAgB,EACb5kE,KAAK6E,IAAK+/D,EAAI5kE,KAAKC,GAAK,IAWnC4tG,MAAO,SAAWjpC,GAEd,MAAU,KAANA,EAAgB,EACV,IAANA,EAAgB,EACb,IAAQ,EAAI5kE,KAAK8E,IAAK9E,KAAKC,GAAK2kE,MAW/CqnC,aASIO,GAAI,SAAW5nC,GAEX,MAAa,KAANA,EAAU,EAAI5kE,KAAKmlG,IAAK,KAAMvgC,EAAI,IAW7C4mC,IAAK,SAAW5mC,GAEZ,MAAa,KAANA,EAAU,EAAI,EAAI5kE,KAAKmlG,IAAK,EAAG,IAAOvgC,IAWjDipC,MAAO,SAAWjpC,GAEd,MAAW,KAANA,EAAiB,EACX,IAANA,EAAiB,GACfA,GAAK,GAAM,EAAW,GAAM5kE,KAAKmlG,IAAK,KAAMvgC,EAAI,GAChD,KAAU5kE,KAAKmlG,IAAK,EAAG,KAASvgC,EAAI,IAAQ,KAW3DunC,UASIK,GAAI,SAAW5nC,GAEX,MAAO,GAAI5kE,KAAKiF,KAAM,EAAI2/D,EAAIA,IAWlC4mC,IAAK,SAAW5mC,GAEZ,MAAO5kE,MAAKiF,KAAM,KAAQ2/D,EAAIA,IAWlCipC,MAAO,SAAWjpC,GAEd,OAAOA,GAAK,GAAM,GAAY,IAAQ5kE,KAAKiF,KAAM,EAAI2/D,EAAIA,GAAK,GACvD,IAAQ5kE,KAAKiF,KAAM,GAAM2/D,GAAK,GAAKA,GAAK,KAWvDwnC,SASII,GAAI,SAAW5nC,GAEX,GAAIrjC,GAAGn9B,EAAI,GAAKF,EAAI,EACpB,OAAW,KAAN0gE,EAAiB,EACX,IAANA,EAAiB,IAChBxgE,GAAS,EAAJA,GAAUA,EAAI,EAAGm9B,EAAIr9B,EAAI,GAC/Bq9B,EAAIr9B,EAAIlE,KAAKoyG,KAAM,EAAIhuG,IAAQ,EAAIpE,KAAKC,MAClCmE,EAAIpE,KAAKmlG,IAAK,EAAG,IAAOvgC,GAAK,IAAQ5kE,KAAK6E,IAAmB,GAAZ+/D,EAAIrjC,GAAYvhC,KAAKC,GAAOiE,MAW5FsnG,IAAK,SAAW5mC,GAEZ,GAAIrjC,GAAGn9B,EAAI,GAAKF,EAAI,EACpB,OAAW,KAAN0gE,EAAiB,EACX,IAANA,EAAiB,IAChBxgE,GAAS,EAAJA,GAAUA,EAAI,EAAGm9B,EAAIr9B,EAAI,GAC/Bq9B,EAAIr9B,EAAIlE,KAAKoyG,KAAM,EAAIhuG,IAAQ,EAAIpE,KAAKC,IACpCmE,EAAIpE,KAAKmlG,IAAK,EAAG,IAAOvgC,GAAK5kE,KAAK6E,IAAmB,GAAZ+/D,EAAIrjC,GAAYvhC,KAAKC,GAAOiE,GAAM,IAWxF2pG,MAAO,SAAWjpC,GAEd,GAAIrjC,GAAGn9B,EAAI,GAAKF,EAAI,EACpB,OAAW,KAAN0gE,EAAiB,EACX,IAANA,EAAiB,IAChBxgE,GAAS,EAAJA,GAAUA,EAAI,EAAGm9B,EAAIr9B,EAAI,GAC/Bq9B,EAAIr9B,EAAIlE,KAAKoyG,KAAM,EAAIhuG,IAAQ,EAAIpE,KAAKC,KACtC2kE,GAAK,GAAM,GAAa,GAAQxgE,EAAIpE,KAAKmlG,IAAK,EAAG,IAAOvgC,GAAK,IAAQ5kE,KAAK6E,IAAmB,GAAZ+/D,EAAIrjC,GAAYvhC,KAAKC,GAAOiE,GAC7GE,EAAIpE,KAAKmlG,IAAK,EAAG,KAAQvgC,GAAK,IAAQ5kE,KAAK6E,IAAmB,GAAZ+/D,EAAIrjC,GAAYvhC,KAAKC,GAAOiE,GAAM,GAAM,KAWzGmoG,MASIG,GAAI,SAAW5nC,GAEX,GAAIrjC,GAAI,OACR,OAAOqjC,GAAIA,IAAQrjC,EAAI,GAAMqjC,EAAIrjC,IAWrCiqE,IAAK,SAAW5mC,GAEZ,GAAIrjC,GAAI,OACR,SAASqjC,EAAIA,IAAQrjC,EAAI,GAAMqjC,EAAIrjC,GAAM,GAW7CssE,MAAO,SAAWjpC,GAEd,GAAIrjC,GAAI,SACR,QAAOqjC,GAAK,GAAM,EAAW,GAAQA,EAAIA,IAAQrjC,EAAI,GAAMqjC,EAAIrjC,GACxD,KAAUqjC,GAAK,GAAMA,IAAQrjC,EAAI,GAAMqjC,EAAIrjC,GAAM,KAWhE+qE,QASIE,GAAI,SAAW5nC,GAEX,MAAO,GAAIzxC,EAAO43E,OAAOuB,OAAOd,IAAK,EAAI5mC,IAW7C4mC,IAAK,SAAW5mC,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,SAaxDipC,MAAO,SAAWjpC,GAEd,MAAS,GAAJA,EAAoD,GAAnCzxC,EAAO43E,OAAOuB,OAAOE,GAAQ,EAAJ5nC,GACA,GAAxCzxC,EAAO43E,OAAOuB,OAAOd,IAAS,EAAJ5mC,EAAQ,GAAY,MAQjEzxC,EAAO43E,OAAOsF,QAAUl9E,EAAO43E,OAAOK,OAAOC,KAC7Cl4E,EAAO43E,OAAOD,OAAS33E,EAAO43E,OAAOK,OAAOC,KAC5Cl4E,EAAO43E,OAAOC,OAAS73E,EAAO43E,OAAOQ,UAAUC,IAC/Cr4E,EAAO43E,OAAOE,OAAS93E,EAAO43E,OAAOU,MAAMD,IAC3Cr4E,EAAO43E,OAAOG,OAAS/3E,EAAO43E,OAAOY,QAAQH,IAC7Cr4E,EAAO43E,OAAOI,OAASh4E,EAAO43E,OAAOc,QAAQL,IAoB7Cr4E,EAAOw3B,KAAO,SAAU1mD,GAMpB5E,KAAK4E,KAAOA,EAOZ5E,KAAKkpC,KAAO,EAOZlpC,KAAKgzG,SAAW,EAchBhzG,KAAK8qD,IAAM,EAcX9qD,KAAK4sD,QAAU,EAaf5sD,KAAK2yG,UAAY,EAajB3yG,KAAKg+E,eAAiB,EAOtBh+E,KAAKi5E,iBAAmB,EAUxBj5E,KAAKwsD,WAAa,GAWlBxsD,KAAKizG,aAAe,KASpBjzG,KAAK0sD,WAAa,EAOlB1sD,KAAKkzG,gBAAiB,EAStBlzG,KAAKq2F,OAAS,EASdr2F,KAAK4yG,IAAM,EASX5yG,KAAKmzG,OAAS,IASdnzG,KAAKozG,OAAS,EAUdpzG,KAAKqzG,MAAQ,IASbrzG,KAAKszG,MAAQ,EAObtzG,KAAKuzG,cAAgB,EAMrBvzG,KAAK0kG,WAAa,EAMlB1kG,KAAKwzG,aAAe,EAMpBxzG,KAAKo2C,OAAS,GAAItiB,GAAO2/E,MAAMzzG,KAAK4E,MAAM,GAM1C5E,KAAK0zG,YAAc,EAMnB1zG,KAAK2zG,oBAAsB,EAM3B3zG,KAAK4zG,SAAW,EAMhB5zG,KAAK6zG,gBAAkB,EAMvB7zG,KAAK8zG,cAAgB,EAMrB9zG,KAAK+zG,cAAe,EAMpB/zG,KAAKg0G,YAITlgF,EAAOw3B,KAAKjoD,WAQRioC,KAAM,WAEFtrC,KAAK4zG,SAAW3jE,KAAK6a,MACrB9qD,KAAKkpC,KAAO+G,KAAK6a,MACjB9qD,KAAKo2C,OAAOhrC,SAWhBw1B,IAAK,SAAUqzE,GAIX,MAFAj0G,MAAKg0G,QAAQzvG,KAAK0vG,GAEXA,GAWX7rG,OAAQ,SAAU8rG,GAEMzqG,SAAhByqG,IAA6BA,GAAc,EAE/C,IAAID,GAAQ,GAAIngF,GAAO2/E,MAAMzzG,KAAK4E,KAAMsvG,EAIxC,OAFAl0G,MAAKg0G,QAAQzvG,KAAK0vG,GAEXA,GASXpnE,UAAW,WAEP,IAAK,GAAIppC,GAAI,EAAGA,EAAIzD,KAAKg0G,QAAQtwG,OAAQD,IAErCzD,KAAKg0G,QAAQvwG,GAAGF,SAGpBvD,MAAKg0G,WAELh0G,KAAKo2C,OAAOvJ,aAWhBvG,OAAQ,SAAU4C,GAEVlpC,KAAK4E,KAAK6kD,IAAI26C,cAEdpkG,KAAKukG,iBAAiBr7D,GAItBlpC,KAAKwkG,UAAUt7D,GAGflpC,KAAKkzG,gBAELlzG,KAAKm0G,uBAIJn0G,KAAK4E,KAAK+kC,SAGX3pC,KAAKo2C,OAAO9P,OAAOtmC,KAAKkpC,MAEpBlpC,KAAKg0G,QAAQtwG,QAEb1D,KAAKo0G,iBAcjB7P,iBAAkB,SAAUr7D,GAGxB,GAAImrE,GAAkBr0G,KAAKkpC,IAG3BlpC,MAAKkpC,KAAOA,EAGZlpC,KAAK2yG,UAAY3yG,KAAKkpC,KAAOmrE,EAG7Br0G,KAAKgzG,SAAWhzG,KAAK8qD,IAGrB9qD,KAAK8qD,IAAM5hB,EAGXlpC,KAAK4sD,QAAU5sD,KAAK8qD,IAAM9qD,KAAKgzG,SAG/BhzG,KAAK0kG,WAAa/jG,KAAKq3B,MAAMr3B,KAAK2+B,IAAI,EAAI,IAASt/B,KAAKwsD,YAAexsD,KAAKs0G,iBAAmBprE,KAG/FlpC,KAAKs0G,iBAAmBprE,EAAOlpC,KAAK0kG,WAGpC1kG,KAAKg+E,eAAiB,EAAIh+E,KAAKwsD,WAE/BxsD,KAAKi5E,iBAAyC,IAAtBj5E,KAAKg+E,gBAYjCwmB,UAAW,SAAUt7D,GAGjB,GAAImrE,GAAkBr0G,KAAKkpC,IAG3BlpC,MAAKkpC,KAAO+G,KAAK6a,MAGjB9qD,KAAK2yG,UAAY3yG,KAAKkpC,KAAOmrE,EAG7Br0G,KAAKgzG,SAAWhzG,KAAK8qD,IAGrB9qD,KAAK8qD,IAAM5hB,EAGXlpC,KAAK4sD,QAAU5sD,KAAK8qD,IAAM9qD,KAAKgzG,SAG/BhzG,KAAKg+E,eAAiB,EAAIh+E,KAAKwsD,WAE/BxsD,KAAKi5E,iBAAyC,IAAtBj5E,KAAKg+E,gBAWjCo2B,aAAc,WAMV,IAHA,GAAI3wG,GAAI,EACJ8tB,EAAMvxB,KAAKg0G,QAAQtwG,OAEZ6tB,EAAJ9tB,GAECzD,KAAKg0G,QAAQvwG,GAAG6iC,OAAOtmC,KAAKkpC,MAE5BzlC,KAKAzD,KAAKg0G,QAAQprG,OAAOnF,EAAG,GACvB8tB,MAaZ4iF,qBAAsB,WAGlBn0G,KAAK0zG,cACL1zG,KAAK2zG,qBAAuB3zG,KAAK4sD,QAG7B5sD,KAAK0zG,aAAiC,EAAlB1zG,KAAKwsD,aAGzBxsD,KAAKizG,aAAiF,EAAlEtyG,KAAKq3B,MAAM,KAAOh4B,KAAK2zG,oBAAsB3zG,KAAK0zG,cACtE1zG,KAAK0zG,YAAc,EACnB1zG,KAAK2zG,oBAAsB,GAG/B3zG,KAAKqzG,MAAQ1yG,KAAK0wB,IAAIrxB,KAAKqzG,MAAOrzG,KAAK4sD,SACvC5sD,KAAKszG,MAAQ3yG,KAAK2+B,IAAIt/B,KAAKszG,MAAOtzG,KAAK4sD,SAEvC5sD,KAAKq2F,SAEDr2F,KAAK8qD,IAAM9qD,KAAK6zG,gBAAkB,MAElC7zG,KAAK4yG,IAAMjyG,KAAKi8B,MAAqB,IAAd58B,KAAKq2F,QAAkBr2F,KAAK8qD,IAAM9qD,KAAK6zG,kBAC9D7zG,KAAKmzG,OAASxyG,KAAK0wB,IAAIrxB,KAAKmzG,OAAQnzG,KAAK4yG,KACzC5yG,KAAKozG,OAASzyG,KAAK2+B,IAAIt/B,KAAKozG,OAAQpzG,KAAK4yG,KACzC5yG,KAAK6zG,gBAAkB7zG,KAAK8qD,IAC5B9qD,KAAKq2F,OAAS,IAWtBpiD,WAAY,WAERj0C,KAAK8zG,cAAgB7jE,KAAK6a,MAE1B9qD,KAAKo2C,OAAO5K,OAIZ,KAFA,GAAI/nC,GAAIzD,KAAKg0G,QAAQtwG,OAEdD,KAEHzD,KAAKg0G,QAAQvwG,GAAGmsG,UAWxB17D,YAAa,WAGTl0C,KAAKkpC,KAAO+G,KAAK6a,MAEjB9qD,KAAKuzG,cAAgBvzG,KAAKkpC,KAAOlpC,KAAK8zG,cAEtC9zG,KAAKo2C,OAAO1K,QAIZ,KAFA,GAAIjoC,GAAIzD,KAAKg0G,QAAQtwG,OAEdD,KAEHzD,KAAKg0G,QAAQvwG,GAAGosG,WAWxB3+D,oBAAqB,WACjB,MAAqC,MAA7BlxC,KAAKkpC,KAAOlpC,KAAK4zG,WAU7BW,aAAc,SAAUC,GACpB,MAAOx0G,MAAKkpC,KAAOsrE,GAUvBC,oBAAqB,SAAUD,GAC3B,MAA6B,MAArBx0G,KAAKkpC,KAAOsrE,IAQxB/3F,MAAO,WAEHzc,KAAK4zG,SAAW5zG,KAAKkpC,KACrBlpC,KAAK6sC,cAMb/Y,EAAOw3B,KAAKjoD,UAAUC,YAAcwwB,EAAOw3B,KAsB3Cx3B,EAAO2/E,MAAQ,SAAU7uG,EAAMsvG,GAEPzqG,SAAhByqG,IAA6BA,GAAc,GAM/Cl0G,KAAK4E,KAAOA,EAUZ5E,KAAK00G,SAAU,EAMf10G,KAAKk0G,YAAcA,EAOnBl0G,KAAK20G,SAAU,EAMf30G,KAAK4sD,QAAU,EAKf5sD,KAAKo2C,UASLp2C,KAAKuwG,WAAa,GAAIz8E,GAAO0W,OAO7BxqC,KAAK40G,SAAW,EAKhB50G,KAAK60G,QAAU,IAOf70G,KAAK2pC,QAAS,EAMd3pC,KAAKmqD,aAAc,EAOnBnqD,KAAK4zG,SAAW,EAMhB5zG,KAAK8zG,cAAgB,EAMrB9zG,KAAK80G,YAAc,EAMnB90G,KAAK+0G,KAAO9kE,KAAK6a,MAMjB9qD,KAAK4xC,KAAO,EAMZ5xC,KAAKg1G,QAAU,EAMfh1G,KAAK6xC,GAAK,EAMV7xC,KAAKi1G,MAAQ,EAMbj1G,KAAKk1G,SAAW,GASpBphF,EAAO2/E,MAAM0B,OAAS,IAOtBrhF,EAAO2/E,MAAM2B,OAAS,IAOtBthF,EAAO2/E,MAAM4B,KAAO,IAOpBvhF,EAAO2/E,MAAM6B,QAAU,IAEvBxhF,EAAO2/E,MAAMpwG,WAiBT+E,OAAQ,SAAUo5D,EAAO8R,EAAMiiC,EAAa58D,EAAU3M,EAAiB3T,GAEnEmpC,EAAQ7gE,KAAKi8B,MAAM4kC,EAEnB,IAAIg0C,GAAOh0C,CAIPg0C,IAFc,IAAdx1G,KAAK+0G,KAEG/0G,KAAK4E,KAAKskC,KAAKA,KAIflpC,KAAK+0G,IAGjB,IAAI7hE,GAAQ,GAAIpf,GAAO2hF,WAAWz1G,KAAMwhE,EAAOg0C,EAAMD,EAAajiC,EAAM36B,EAAU3M,EAAiB3T,EAQnG,OANAr4B,MAAKo2C,OAAO7xC,KAAK2uC,GAEjBlzC,KAAK25C,QAEL35C,KAAK20G,SAAU,EAERzhE,GAmBXtS,IAAK,SAAU4gC,EAAO7oB,EAAU3M,GAE5B,MAAOhsC,MAAKoI,OAAOo5D,GAAO,EAAO,EAAG7oB,EAAU3M,EAAiBvrC,MAAM4C,UAAUuF,OAAO9C,KAAKyyB,UAAW,KAoB1GjgB,OAAQ,SAAUkpD,EAAO+zC,EAAa58D,EAAU3M,GAE5C,MAAOhsC,MAAKoI,OAAOo5D,GAAO,EAAO+zC,EAAa58D,EAAU3M,EAAiBvrC,MAAM4C,UAAUuF,OAAO9C,KAAKyyB,UAAW,KAmBpH+6C,KAAM,SAAU9R,EAAO7oB,EAAU3M,GAE7B,MAAOhsC,MAAKoI,OAAOo5D,GAAO,EAAM,EAAG7oB,EAAU3M,EAAiBvrC,MAAM4C,UAAUuF,OAAO9C,KAAKyyB,UAAW,KASzGntB,MAAO,SAAUo2D,GAEb,IAAIxhE,KAAK00G,QAAT,CAKA10G,KAAK4zG,SAAW5zG,KAAK4E,KAAKskC,KAAKA,MAAQs4B,GAAS,GAEhDxhE,KAAK00G,SAAU,CAEf,KAAK,GAAIjxG,GAAI,EAAGA,EAAIzD,KAAKo2C,OAAO1yC,OAAQD,IAEpCzD,KAAKo2C,OAAO3yC,GAAG+xG,KAAOx1G,KAAKo2C,OAAO3yC,GAAG+9D,MAAQxhE,KAAK4zG,WAU1D5oG,KAAM,SAAU0qG,GAEZ11G,KAAK00G,SAAU,EAEKjrG,SAAhBisG,IAA6BA,GAAc,GAE3CA,IAEA11G,KAAKo2C,OAAO1yC,OAAS,IAU7BqoC,OAAQ,SAAUmH,GAEd,IAAK,GAAIzvC,GAAI,EAAGA,EAAIzD,KAAKo2C,OAAO1yC,OAAQD,IAEpC,GAAIzD,KAAKo2C,OAAO3yC,KAAOyvC,EAGnB,MADAlzC,MAAKo2C,OAAO3yC,GAAG4rG,eAAgB,GACxB,CAIf,QAAO,GAUX11D,MAAO,WAEC35C,KAAKo2C,OAAO1yC,OAAS,IAGrB1D,KAAKo2C,OAAOsD,KAAK15C,KAAK+5C,aAEtB/5C,KAAK40G,SAAW50G,KAAKo2C,OAAO,GAAGo/D,OAUvCz7D,YAAa,SAAUh1C,EAAGC,GAEtB,MAAID,GAAEywG,KAAOxwG,EAAEwwG,KAEJ,GAEFzwG,EAAEywG,KAAOxwG,EAAEwwG,KAET,EAGJ,GAUXG,mBAAoB,WAIhB,IAFA31G,KAAK6xC,GAAK7xC,KAAKo2C,OAAO1yC,OAEf1D,KAAK6xC,MAEJ7xC,KAAKo2C,OAAOp2C,KAAK6xC,IAAIw9D,eAErBrvG,KAAKo2C,OAAOxtC,OAAO5I,KAAK6xC,GAAI,EAIpC7xC,MAAK4xC,KAAO5xC,KAAKo2C,OAAO1yC,OACxB1D,KAAK6xC,GAAK,GAYdvL,OAAQ,SAAU4C,GAEd,GAAIlpC,KAAK2pC,OAEL,OAAO,CAoBX,IAjBA3pC,KAAK4sD,QAAU1jB,EAAOlpC,KAAK+0G,KAC3B/0G,KAAK+0G,KAAO7rE,EAGRlpC,KAAK4sD,QAAU5sD,KAAK60G,SAKpB70G,KAAK41G,aAAa1sE,EAAOlpC,KAAK4sD,SAGlC5sD,KAAKg1G,QAAU,EAGfh1G,KAAK21G,qBAED31G,KAAK00G,SAAW10G,KAAK+0G,MAAQ/0G,KAAK40G,UAAY50G,KAAK4xC,KAAO,EAC9D,CACI,KAAO5xC,KAAK6xC,GAAK7xC,KAAK4xC,MAAQ5xC,KAAK00G,SAE3B10G,KAAK+0G,MAAQ/0G,KAAKo2C,OAAOp2C,KAAK6xC,IAAI2jE,OAASx1G,KAAKo2C,OAAOp2C,KAAK6xC,IAAIw9D,eAGhErvG,KAAKk1G,SAAYl1G,KAAK+0G,KAAO/0G,KAAKo2C,OAAOp2C,KAAK6xC,IAAI2vB,OAAUxhE,KAAK+0G,KAAO/0G,KAAKo2C,OAAOp2C,KAAK6xC,IAAI2jE,MAEzFx1G,KAAKk1G,SAAW,IAEhBl1G,KAAKk1G,SAAWl1G,KAAK+0G,KAAO/0G,KAAKo2C,OAAOp2C,KAAK6xC,IAAI2vB,OAGjDxhE,KAAKo2C,OAAOp2C,KAAK6xC,IAAIyhC,QAAS,GAE9BtzE,KAAKo2C,OAAOp2C,KAAK6xC,IAAI2jE,KAAOx1G,KAAKk1G,SACjCl1G,KAAKo2C,OAAOp2C,KAAK6xC,IAAI8G,SAASxxC,MAAMnH,KAAKo2C,OAAOp2C,KAAK6xC,IAAI7F,gBAAiBhsC,KAAKo2C,OAAOp2C,KAAK6xC,IAAIxZ,OAE1Fr4B,KAAKo2C,OAAOp2C,KAAK6xC,IAAI0jE,YAAc,GAExCv1G,KAAKo2C,OAAOp2C,KAAK6xC,IAAI0jE,cACrBv1G,KAAKo2C,OAAOp2C,KAAK6xC,IAAI2jE,KAAOx1G,KAAKk1G,SACjCl1G,KAAKo2C,OAAOp2C,KAAK6xC,IAAI8G,SAASxxC,MAAMnH,KAAKo2C,OAAOp2C,KAAK6xC,IAAI7F,gBAAiBhsC,KAAKo2C,OAAOp2C,KAAK6xC,IAAIxZ,QAI/Fr4B,KAAKg1G,UACLh1G,KAAKo2C,OAAOp2C,KAAK6xC,IAAIw9D,eAAgB,EACrCrvG,KAAKo2C,OAAOp2C,KAAK6xC,IAAI8G,SAASxxC,MAAMnH,KAAKo2C,OAAOp2C,KAAK6xC,IAAI7F,gBAAiBhsC,KAAKo2C,OAAOp2C,KAAK6xC,IAAIxZ,OAGnGr4B,KAAK6xC,IAST7xC,MAAKo2C,OAAO1yC,OAAS1D,KAAKg1G,QAE1Bh1G,KAAK25C,SAIL35C,KAAK20G,SAAU,EACf30G,KAAKuwG,WAAW9jE,SAASzsC,OAIjC,MAAIA,MAAK20G,SAAW30G,KAAKk0G,aAEd,GAIA,GASf1oE,MAAO,WAEExrC,KAAK00G,UAKV10G,KAAKmqD,aAAc,EAEfnqD,KAAK2pC,SAKT3pC,KAAK8zG,cAAgB9zG,KAAK4E,KAAKskC,KAAKA,KAEpClpC,KAAK2pC,QAAS,KASlBimE,OAAQ,YAEA5vG,KAAK2pC,QAAW3pC,KAAK00G,UAKzB10G,KAAK8zG,cAAgB9zG,KAAK4E,KAAKskC,KAAKA,KAEpClpC,KAAK2pC,QAAS,IAUlBisE,aAAc,SAAUC,GAEpB,IAAK,GAAIpyG,GAAI,EAAGA,EAAIzD,KAAKo2C,OAAO1yC,OAAQD,IAEpC,IAAKzD,KAAKo2C,OAAO3yC,GAAG4rG,cACpB,CAEI,GAAIv2E,GAAI94B,KAAKo2C,OAAO3yC,GAAG+xG,KAAOK,CAEtB,GAAJ/8E,IAEAA,EAAI,GAIR94B,KAAKo2C,OAAO3yC,GAAG+xG,KAAOx1G,KAAK+0G,KAAOj8E,EAI1C,GAAI5zB,GAAIlF,KAAK40G,SAAWiB,CAIpB71G,MAAK40G,SAFD,EAAJ1vG,EAEgBlF,KAAK+0G,KAIL/0G,KAAK+0G,KAAO7vG,GAUpCwmC,OAAQ,WAEJ,GAAK1rC,KAAK2pC,OAAV,CAKA,GAAImhB,GAAM9qD,KAAK4E,KAAKskC,KAAKA,IACzBlpC,MAAK80G,aAAehqD,EAAM9qD,KAAK+0G,KAC/B/0G,KAAK+0G,KAAOjqD,EAEZ9qD,KAAK41G,aAAa51G,KAAK8zG,eAEvB9zG,KAAK2pC,QAAS,EACd3pC,KAAKmqD,aAAc,IASvB0lD,QAAS,WAED7vG,KAAKmqD,aAMLnqD,KAAK0rC,UAWbmB,UAAW,WAEP7sC,KAAKuwG,WAAW1jE,YAChB7sC,KAAKo2C,OAAO1yC,OAAS,EACrB1D,KAAK4xC,KAAO,EACZ5xC,KAAK6xC,GAAK,GAUdtuC,QAAS,WAELvD,KAAKuwG,WAAW1jE,YAChB7sC,KAAK00G,SAAU,EACf10G,KAAKo2C,UACLp2C,KAAK4xC,KAAO,EACZ5xC,KAAK6xC,GAAK,IAWlBjuC,OAAOC,eAAeiwB,EAAO2/E,MAAMpwG,UAAW,QAE1CS,IAAK,WACD,MAAO9D,MAAK40G,YAUpBhxG,OAAOC,eAAeiwB,EAAO2/E,MAAMpwG,UAAW,YAE1CS,IAAK,WAED,MAAI9D,MAAK00G,SAAW10G,KAAK40G,SAAW50G,KAAK+0G,KAE9B/0G,KAAK40G,SAAW50G,KAAK+0G,KAIrB,KAYnBnxG,OAAOC,eAAeiwB,EAAO2/E,MAAMpwG,UAAW,UAE1CS,IAAK,WACD,MAAO9D,MAAKo2C,OAAO1yC,UAU3BE,OAAOC,eAAeiwB,EAAO2/E,MAAMpwG,UAAW,MAE1CS,IAAK,WAED,MAAI9D,MAAK00G,QAEE10G,KAAK+0G,KAAO/0G,KAAK4zG,SAAW5zG,KAAK80G,YAIjC,KAYnBlxG,OAAOC,eAAeiwB,EAAO2/E,MAAMpwG,UAAW,WAE1CS,IAAK,WAED,MAAI9D,MAAK00G,QAEY,KAAV10G,KAAK81G,GAIL,KAOnBhiF,EAAO2/E,MAAMpwG,UAAUC,YAAcwwB,EAAO2/E,MA2B5C3/E,EAAO2hF,WAAa,SAAUxB,EAAOzyC,EAAOg0C,EAAMD,EAAajiC,EAAM36B,EAAU3M,EAAiB3T,GAO5Fr4B,KAAKi0G,MAAQA,EAKbj0G,KAAKwhE,MAAQA,EAKbxhE,KAAKw1G,KAAOA,EAKZx1G,KAAKu1G,YAAcA,EAAc,EAKjCv1G,KAAKszE,KAAOA,EAKZtzE,KAAK24C,SAAWA,EAKhB34C,KAAKgsC,gBAAkBA,EAKvBhsC,KAAKq4B,KAAOA,EAMZr4B,KAAKqvG,eAAgB,GAIzBv7E,EAAO2hF,WAAWpyG,UAAUC,YAAcwwB,EAAO2hF,WAgBjD3hF,EAAOugD,iBAAmB,SAAU1qD,GAKhC3pB,KAAK2pB,OAASA,EAKd3pB,KAAK4E,KAAO+kB,EAAO/kB,KASnB5E,KAAK+1G,aAAe,KAMpB/1G,KAAKg2G,YAAc,KAMnBh2G,KAAKi2G,iBAAkB,EAMvBj2G,KAAKk2G,UAAW,EAOhBl2G,KAAKm2G,WAAa,KAMlBn2G,KAAKo2G,UAMLp2G,KAAKq2G,kBAITviF,EAAOugD,iBAAiBhxE,WAYpBm2E,cAAe,SAAUI,EAAWztE,GAEhC,GAAkB1C,SAAdmwE,EAEA,OAAO,CAGX,IAAI55E,KAAKk2G,SAGL,IAAK,GAAII,KAAQt2G,MAAKo2G,OAElBp2G,KAAKo2G,OAAOE,GAAMliB,gBAAgBxa,EAwB1C,OApBA55E,MAAKm2G,WAAav8B,EAEJnwE,SAAV0C,GAAiC,OAAVA,EAEvBnM,KAAKmM,MAAQ,EAIQ,gBAAVA,GAEPnM,KAAKm6E,UAAYhuE,EAIjBnM,KAAKmM,MAAQA,EAIrBnM,KAAKk2G,UAAW,GAET,GAaXK,cAAe,SAAU38B,EAAWztE,GAIhC,GAFAnM,KAAKm2G,WAAav8B,EAAUt+C,QAExBt7B,KAAKk2G,SAGL,IAAK,GAAII,KAAQt2G,MAAKo2G,OAElBp2G,KAAKo2G,OAAOE,GAAMliB,gBAAgBp0F,KAAKm2G,WAsB/C,OAlBc1sG,UAAV0C,GAAiC,OAAVA,EAEvBnM,KAAKmM,MAAQ,EAIQ,gBAAVA,GAEPnM,KAAKm6E,UAAYhuE,EAIjBnM,KAAKmM,MAAQA,EAIrBnM,KAAKk2G,UAAW,GAET,GAeXt1E,IAAK,SAAUzF,EAAMk7D,EAAQhjB,EAAWC,EAAMkjC,GAoC1C,MAlCAngB,GAASA,MACThjB,EAAYA,GAAa,GAEZ5pE,SAAT6pE,IAAsBA,GAAO,GAGT7pE,SAApB+sG,IAIIA,EAFAngB,GAA+B,gBAAdA,GAAO,IAEN,GAIA,GAI1Br2F,KAAKq2G,iBAELr2G,KAAKm2G,WAAWM,gBAAgBpgB,EAAQmgB,EAAiBx2G,KAAKq2G,eAE9Dr2G,KAAKo2G,OAAOj7E,GAAQ,GAAIrH,GAAOq/C,UAAUnzE,KAAK4E,KAAM5E,KAAK2pB,OAAQwR,EAAMn7B,KAAKm2G,WAAYn2G,KAAKq2G,cAAehjC,EAAWC,GAEvHtzE,KAAKg2G,YAAch2G,KAAKo2G,OAAOj7E,GAK3Bn7B,KAAK2pB,OAAOQ,gBAEZnqB,KAAK2pB,OAAOuwD,gBAAiB,GAG1Bl6E,KAAKo2G,OAAOj7E,IAYvBu7E,eAAgB,SAAUrgB,EAAQmgB,GAEN/sG,SAApB+sG,IAAiCA,GAAkB,EAEvD,KAAK,GAAI/yG,GAAI,EAAGA,EAAI4yF,EAAO3yF,OAAQD,IAE/B,GAAI+yG,KAAoB,GAEpB,GAAIngB,EAAO5yF,GAAKzD,KAAKm2G,WAAWl8D,MAE5B,OAAO,MAKX,IAAIj6C,KAAKm2G,WAAWQ,eAAetgB,EAAO5yF,OAAQ,EAE9C,OAAO,CAKnB,QAAO,GAiBX2vE,KAAM,SAAUj4C,EAAMk4C,EAAWC,EAAMC,GAEnC,MAAIvzE,MAAKo2G,OAAOj7E,GAERn7B,KAAKg2G,cAAgBh2G,KAAKo2G,OAAOj7E,GAE7Bn7B,KAAKg2G,YAAYY,aAAc,GAE/B52G,KAAKg2G,YAAYrsE,QAAS,EACnB3pC,KAAKg2G,YAAY5iC,KAAKC,EAAWC,EAAMC,IAG3CvzE,KAAKg2G,aAIRh2G,KAAKg2G,aAAeh2G,KAAKg2G,YAAYY,WAErC52G,KAAKg2G,YAAYhrG,OAGrBhL,KAAKg2G,YAAch2G,KAAKo2G,OAAOj7E,GAC/Bn7B,KAAKg2G,YAAYrsE,QAAS,EAC1B3pC,KAAK+1G,aAAe/1G,KAAKg2G,YAAYD,aAC9B/1G,KAAKg2G,YAAY5iC,KAAKC,EAAWC,EAAMC,IAtBtD,QAoCJvoE,KAAM,SAAUmwB,EAAMg6C,GAEC1rE,SAAf0rE,IAA4BA,GAAa,GAEzB,gBAATh6C,GAEHn7B,KAAKo2G,OAAOj7E,KAEZn7B,KAAKg2G,YAAch2G,KAAKo2G,OAAOj7E,GAC/Bn7B,KAAKg2G,YAAYhrG,KAAKmqE,IAKtBn1E,KAAKg2G,aAELh2G,KAAKg2G,YAAYhrG,KAAKmqE,IAalC7uC,OAAQ,WAEJ,MAAItmC,MAAKi2G,kBAAoBj2G,KAAK2pB,OAAO1nB,SAE9B,EAGPjC,KAAKg2G,aAAeh2G,KAAKg2G,YAAY1vE,UAErCtmC,KAAK+1G,aAAe/1G,KAAKg2G,YAAYD,cAC9B,IAGJ,GAUXh/D,KAAM,SAAUF,GAER72C,KAAKg2G,cAELh2G,KAAKg2G,YAAYj/D,KAAKF,GACtB72C,KAAK+1G,aAAe/1G,KAAKg2G,YAAYD,eAW7C/+D,SAAU,SAAUH,GAEZ72C,KAAKg2G,cAELh2G,KAAKg2G,YAAYh/D,SAASH,GAC1B72C,KAAK+1G,aAAe/1G,KAAKg2G,YAAYD,eAY7Cc,aAAc,SAAU17E,GAEpB,MAAoB,gBAATA,IAEHn7B,KAAKo2G,OAAOj7E,GAELn7B,KAAKo2G,OAAOj7E,GAIpB,MASX27E,aAAc,WAGV92G,KAAK2pB,OAAOvd,WAAWtM,KAAK6O,aAAa3O,KAAK+1G,aAAaj4D,QAU/Dv6C,QAAS,WAEL,GAAI+yG,GAAO,IAEX,KAAK,GAAIA,KAAQt2G,MAAKo2G,OAEdp2G,KAAKo2G,OAAOp7E,eAAes7E,IAE3Bt2G,KAAKo2G,OAAOE,GAAM/yG,SAI1BvD,MAAKo2G,UACLp2G,KAAKq2G,iBACLr2G,KAAKm2G,WAAa,KAClBn2G,KAAKg2G,YAAc,KACnBh2G,KAAK+1G,aAAe,KACpB/1G,KAAK2pB,OAAS,KACd3pB,KAAK4E,KAAO,OAMpBkvB,EAAOugD,iBAAiBhxE,UAAUC,YAAcwwB,EAAOugD,iBAOvDzwE,OAAOC,eAAeiwB,EAAOugD,iBAAiBhxE,UAAW,aAErDS,IAAK,WACD,MAAO9D,MAAKm2G,cAUpBvyG,OAAOC,eAAeiwB,EAAOugD,iBAAiBhxE,UAAW,cAErDS,IAAK,WAED,MAAO9D,MAAKm2G,WAAWl8D,SAS/Br2C,OAAOC,eAAeiwB,EAAOugD,iBAAiBhxE,UAAW,UAErDS,IAAK,WAED,MAAO9D,MAAKg2G,YAAYvF,UAI5BzsG,IAAK,SAAUC,GAEXjE,KAAKg2G,YAAYrsE,OAAS1lC,KAUlCL,OAAOC,eAAeiwB,EAAOugD,iBAAiBhxE,UAAW,QAErDS,IAAK,WAED,MAAI9D,MAAKg2G,YAEEh2G,KAAKg2G,YAAY76E,KAF5B,UAaRv3B,OAAOC,eAAeiwB,EAAOugD,iBAAiBhxE,UAAW,SAErDS,IAAK,WAED,MAAI9D,MAAK+1G,aAEE/1G,KAAK+1G,aAAartG,MAF7B,QAOJ1E,IAAK,SAAUC,GAEU,gBAAVA,IAAsBjE,KAAKm2G,YAAkD,OAApCn2G,KAAKm2G,WAAWY,SAAS9yG,KAEzEjE,KAAK+1G,aAAe/1G,KAAKm2G,WAAWY,SAAS9yG,GAEzCjE,KAAK+1G,cAEL/1G,KAAK2pB,OAAOuJ,SAASlzB,KAAK+1G,kBAY1CnyG,OAAOC,eAAeiwB,EAAOugD,iBAAiBhxE,UAAW,aAErDS,IAAK,WAED,MAAI9D,MAAK+1G,aAEE/1G,KAAK+1G,aAAa56E,KAF7B,QAOJn3B,IAAK,SAAUC,GAEU,gBAAVA,IAAsBjE,KAAKm2G,YAAwD,OAA1Cn2G,KAAKm2G,WAAWa,eAAe/yG,IAE/EjE,KAAK+1G,aAAe/1G,KAAKm2G,WAAWa,eAAe/yG,GAE/CjE,KAAK+1G,eAEL/1G,KAAKi3G,YAAcj3G,KAAK+1G,aAAartG,MAErC1I,KAAK2pB,OAAOuJ,SAASlzB,KAAK+1G,gBAK9BrhG,QAAQukB,KAAK,yBAA2Bh1B,MA4BpD6vB,EAAOq/C,UAAY,SAAUvuE,EAAMxC,EAAQ+4B,EAAMy+C,EAAWyc,EAAQhjB,EAAWC,GAE9D7pE,SAAT6pE,IAAsBA,GAAO,GAKjCtzE,KAAK4E,KAAOA,EAMZ5E,KAAK61E,QAAUzzE,EAMfpC,KAAKm2G,WAAav8B,EAKlB55E,KAAKm7B,KAAOA,EAMZn7B,KAAKk3G,WACLl3G,KAAKk3G,QAAUl3G,KAAKk3G,QAAQr4F,OAAOw3E,GAKnCr2F,KAAKwhE,MAAQ,IAAO6R,EAKpBrzE,KAAKszE,KAAOA,EAKZtzE,KAAKm3G,UAAY,EAMjBn3G,KAAKuzE,gBAAiB,EAMtBvzE,KAAKo3G,YAAa,EAMlBp3G,KAAK42G,WAAY,EAMjB52G,KAAKywG,UAAW,EAOhBzwG,KAAKq3G,gBAAkB,EAOvBr3G,KAAKi3G,YAAc,EAOnBj3G,KAAKs3G,WAAa,EAOlBt3G,KAAKu3G,WAAa,EAKlBv3G,KAAK+1G,aAAe/1G,KAAKm2G,WAAWY,SAAS/2G,KAAKk3G,QAAQl3G,KAAKi3G,cAK/Dj3G,KAAKmwG,QAAU,GAAIr8E,GAAO0W,OAQ1BxqC,KAAKw3G,SAAW,KAKhBx3G,KAAKuwG,WAAa,GAAIz8E,GAAO0W,OAK7BxqC,KAAKowG,OAAS,GAAIt8E,GAAO0W,OAGzBxqC,KAAK4E,KAAK2mC,QAAQ3K,IAAI5gC,KAAKurC,QAASvrC,MACpCA,KAAK4E,KAAK6mC,SAAS7K,IAAI5gC,KAAKyrC,SAAUzrC,OAI1C8zB,EAAOq/C,UAAU9vE,WAWb+vE,KAAM,SAAUC,EAAWC,EAAMC,GAsC7B,MApCyB,gBAAdF,KAGPrzE,KAAKwhE,MAAQ,IAAO6R,GAGJ,iBAATC,KAGPtzE,KAAKszE,KAAOA,GAGc,mBAAnBC,KAGPvzE,KAAKuzE,eAAiBA,GAG1BvzE,KAAK42G,WAAY,EACjB52G,KAAKo3G,YAAa,EAClBp3G,KAAK2pC,QAAS,EACd3pC,KAAKm3G,UAAY,EAEjBn3G,KAAKy3G,eAAiBz3G,KAAK4E,KAAKskC,KAAKA,KACrClpC,KAAK03G,eAAiB13G,KAAK4E,KAAKskC,KAAKA,KAAOlpC,KAAKwhE,MAEjDxhE,KAAKi3G,YAAc,EACnBj3G,KAAK23G,oBAAmB,GAAO,GAE/B33G,KAAK61E,QAAQz/B,OAAOwhE,0BAA0B53G,KAAK61E,QAAS71E,MAE5DA,KAAKmwG,QAAQ1jE,SAASzsC,KAAK61E,QAAS71E,MAEpCA,KAAK61E,QAAQrC,WAAWwiC,YAAch2G,KACtCA,KAAK61E,QAAQrC,WAAWuiC,aAAe/1G,KAAK+1G,aAErC/1G,MASXosC,QAAS,WAELpsC,KAAK42G,WAAY,EACjB52G,KAAKo3G,YAAa,EAClBp3G,KAAK2pC,QAAS,EACd3pC,KAAKm3G,UAAY,EAEjBn3G,KAAKy3G,eAAiBz3G,KAAK4E,KAAKskC,KAAKA,KACrClpC,KAAK03G,eAAiB13G,KAAK4E,KAAKskC,KAAKA,KAAOlpC,KAAKwhE,MAEjDxhE,KAAKi3G,YAAc,EAEnBj3G,KAAK+1G,aAAe/1G,KAAKm2G,WAAWY,SAAS/2G,KAAKk3G,QAAQl3G,KAAKi3G,cAE/Dj3G,KAAK61E,QAAQ3iD,SAASlzB,KAAK+1G,cAE3B/1G,KAAK61E,QAAQrC,WAAWwiC,YAAch2G,KACtCA,KAAK61E,QAAQrC,WAAWuiC,aAAe/1G,KAAK+1G,aAE5C/1G,KAAKmwG,QAAQ1jE,SAASzsC,KAAK61E,QAAS71E,OAWxCkzB,SAAU,SAASxkB,EAASmpG,GAExB,GAAIC,EAQJ,IAN2BruG,SAAvBouG,IAEAA,GAAqB,GAIF,gBAAZnpG,GAEP,IAAK,GAAIjL,GAAI,EAAGA,EAAIzD,KAAKk3G,QAAQxzG,OAAQD,IAEjCzD,KAAKm2G,WAAWY,SAAS/2G,KAAKk3G,QAAQzzG,IAAI03B,OAASzsB,IAEnDopG,EAAar0G,OAIpB,IAAuB,gBAAZiL,GAEZ,GAAImpG,EAEAC,EAAappG,MAIb,KAAK,GAAIjL,GAAI,EAAGA,EAAIzD,KAAKk3G,QAAQxzG,OAAQD,IAEjCzD,KAAKk3G,QAAQzzG,KAAOq0G,IAEpBA,EAAar0G,EAMzBq0G,KAGA93G,KAAKi3G,YAAca,EAAa,EAGhC93G,KAAK03G,eAAiB13G,KAAK4E,KAAKskC,KAAKA,KAErClpC,KAAKsmC,WAabt7B,KAAM,SAAUmqE,EAAY4iC,GAELtuG,SAAf0rE,IAA4BA,GAAa,GACpB1rE,SAArBsuG,IAAkCA,GAAmB,GAEzD/3G,KAAK42G,WAAY,EACjB52G,KAAKo3G,YAAa,EAClBp3G,KAAK2pC,QAAS,EAEVwrC,IAEAn1E,KAAK+1G,aAAe/1G,KAAKm2G,WAAWY,SAAS/2G,KAAKk3G,QAAQ,IAC1Dl3G,KAAK61E,QAAQ3iD,SAASlzB,KAAK+1G,eAG3BgC,IAEA/3G,KAAK61E,QAAQz/B,OAAO4hE,6BAA6Bh4G,KAAK61E,QAAS71E,MAC/DA,KAAKuwG,WAAW9jE,SAASzsC,KAAK61E,QAAS71E,QAU/CurC,QAAS,WAEDvrC,KAAK42G,YAEL52G,KAAKs3G,WAAat3G,KAAK03G,eAAiB13G,KAAK4E,KAAKskC,KAAKA,OAU/DuC,SAAU,WAEFzrC,KAAK42G,YAEL52G,KAAK03G,eAAiB13G,KAAK4E,KAAKskC,KAAKA,KAAOlpC,KAAKs3G,aAUzDhxE,OAAQ,WAEJ,MAAItmC,MAAKywG,UAEE,EAGPzwG,KAAK42G,WAAa52G,KAAK4E,KAAKskC,KAAKA,MAAQlpC,KAAK03G,gBAE9C13G,KAAKu3G,WAAa,EAGlBv3G,KAAKs3G,WAAat3G,KAAK4E,KAAKskC,KAAKA,KAAOlpC,KAAK03G,eAE7C13G,KAAKy3G,eAAiBz3G,KAAK4E,KAAKskC,KAAKA,KAEjClpC,KAAKs3G,WAAat3G,KAAKwhE,QAGvBxhE,KAAKu3G,WAAa52G,KAAKq3B,MAAMh4B,KAAKs3G,WAAat3G,KAAKwhE,OACpDxhE,KAAKs3G,YAAet3G,KAAKu3G,WAAav3G,KAAKwhE,OAI/CxhE,KAAK03G,eAAiB13G,KAAK4E,KAAKskC,KAAKA,MAAQlpC,KAAKwhE,MAAQxhE,KAAKs3G,YAE/Dt3G,KAAKi3G,aAAej3G,KAAKu3G,WAErBv3G,KAAKi3G,aAAej3G,KAAKk3G,QAAQxzG,OAE7B1D,KAAKszE,MAGLtzE,KAAKi3G,aAAej3G,KAAKk3G,QAAQxzG,OACjC1D,KAAK+1G,aAAe/1G,KAAKm2G,WAAWY,SAAS/2G,KAAKk3G,QAAQl3G,KAAKi3G,cAG3Dj3G,KAAK+1G,cAEL/1G,KAAK61E,QAAQ3iD,SAASlzB,KAAK+1G,cAG/B/1G,KAAKm3G,YACLn3G,KAAK61E,QAAQz/B,OAAO6hE,yBAAyBj4G,KAAK61E,QAAS71E,MAC3DA,KAAKowG,OAAO3jE,SAASzsC,KAAK61E,QAAS71E,MAE/BA,KAAKw3G,UAELx3G,KAAKw3G,SAAS/qE,SAASzsC,KAAMA,KAAK+1G,gBAGzB/1G,KAAKm2G,aAIP,IAKXn2G,KAAK+xB,YACE,GAKJ/xB,KAAK23G,oBAAmB,KAIhC,GAgBXA,mBAAoB,SAAUO,EAAcC,GAIxC,GAFiB1uG,SAAb0uG,IAA0BA,GAAW,IAEpCn4G,KAAKm2G,WAGN,OAAO,CAIX,IAAIvkB,GAAM5xF,KAAK+1G,aAAartG,KAS5B,OAPA1I,MAAK+1G,aAAe/1G,KAAKm2G,WAAWY,SAAS/2G,KAAKk3G,QAAQl3G,KAAKi3G,cAE3Dj3G,KAAK+1G,eAAiBoC,IAAcA,GAAYvmB,IAAQ5xF,KAAK+1G,aAAartG,QAE1E1I,KAAK61E,QAAQ3iD,SAASlzB,KAAK+1G,cAG3B/1G,KAAKw3G,UAAYU,GAEjBl4G,KAAKw3G,SAAS/qE,SAASzsC,KAAMA,KAAK+1G,gBAGzB/1G,KAAKm2G,aAIP,GAWfp/D,KAAM,SAAUF,GAEKptC,SAAbotC,IAA0BA,EAAW,EAEzC,IAAI1qC,GAAQnM,KAAKi3G,YAAcpgE,CAE3B1qC,IAASnM,KAAKk3G,QAAQxzG,SAElB1D,KAAKszE,KAELnnE,GAASnM,KAAKk3G,QAAQxzG,OAItByI,EAAQnM,KAAKk3G,QAAQxzG,OAAS,GAIlCyI,IAAUnM,KAAKi3G,cAEfj3G,KAAKi3G,YAAc9qG,EACnBnM,KAAK23G,oBAAmB,KAWhC3gE,SAAU,SAAUH,GAECptC,SAAbotC,IAA0BA,EAAW,EAEzC,IAAI1qC,GAAQnM,KAAKi3G,YAAcpgE,CAEnB,GAAR1qC,IAEInM,KAAKszE,KAELnnE,EAAQnM,KAAKk3G,QAAQxzG,OAASyI,EAI9BA,KAIJA,IAAUnM,KAAKi3G,cAEfj3G,KAAKi3G,YAAc9qG,EACnBnM,KAAK23G,oBAAmB,KAWhCvjB,gBAAiB,SAAUxa,GAEvB55E,KAAKm2G,WAAav8B,EAClB55E,KAAK+1G,aAAe/1G,KAAKm2G,WAAan2G,KAAKm2G,WAAWY,SAAS/2G,KAAKk3G,QAAQl3G,KAAKi3G,YAAcj3G,KAAKk3G,QAAQxzG,SAAW,MAS3HH,QAAS,WAEAvD,KAAKm2G,aAMVn2G,KAAK4E,KAAK2mC,QAAQQ,OAAO/rC,KAAKurC,QAASvrC,MACvCA,KAAK4E,KAAK6mC,SAASM,OAAO/rC,KAAKyrC,SAAUzrC,MAEzCA,KAAK4E,KAAO,KACZ5E,KAAK61E,QAAU,KACf71E,KAAKk3G,QAAU,KACfl3G,KAAKm2G,WAAa,KAClBn2G,KAAK+1G,aAAe,KACpB/1G,KAAK42G,WAAY,EAEjB52G,KAAKmwG,QAAQhhE,UACbnvC,KAAKowG,OAAOjhE,UACZnvC,KAAKuwG,WAAWphE,UAEZnvC,KAAKw3G,UAELx3G,KAAKw3G,SAASroE,YAWtBpd,SAAU,WAEN/xB,KAAKi3G,YAAcj3G,KAAKk3G,QAAQxzG,OAAS,EACzC1D,KAAK+1G,aAAe/1G,KAAKm2G,WAAWY,SAAS/2G,KAAKk3G,QAAQl3G,KAAKi3G,cAE/Dj3G,KAAK42G,WAAY,EACjB52G,KAAKo3G,YAAa,EAClBp3G,KAAK2pC,QAAS,EAEd3pC,KAAK61E,QAAQz/B,OAAO4hE,6BAA6Bh4G,KAAK61E,QAAS71E,MAE/DA,KAAKuwG,WAAW9jE,SAASzsC,KAAK61E,QAAS71E,MAEnCA,KAAKuzE,gBAELvzE,KAAK61E,QAAQuC,SAOzBtkD,EAAOq/C,UAAU9vE,UAAUC,YAAcwwB,EAAOq/C,UAMhDvvE,OAAOC,eAAeiwB,EAAOq/C,UAAU9vE,UAAW,UAE9CS,IAAK,WAED,MAAO9D,MAAKywG,UAIhBzsG,IAAK,SAAUC,GAEXjE,KAAKywG,SAAWxsG,EAEZA,EAGAjE,KAAKq3G,gBAAkBr3G,KAAK4E,KAAKskC,KAAKA,KAKlClpC,KAAK42G,YAEL52G,KAAK03G,eAAiB13G,KAAK4E,KAAKskC,KAAKA,KAAOlpC,KAAKwhE,UAajE59D,OAAOC,eAAeiwB,EAAOq/C,UAAU9vE,UAAW,cAE9CS,IAAK,WACD,MAAO9D,MAAKk3G,QAAQxzG,UAS5BE,OAAOC,eAAeiwB,EAAOq/C,UAAU9vE,UAAW,SAE9CS,IAAK,WAED,MAA0B,QAAtB9D,KAAK+1G,aAEE/1G,KAAK+1G,aAAartG,MAIlB1I,KAAKi3G,aAKpBjzG,IAAK,SAAUC,GAEXjE,KAAK+1G,aAAe/1G,KAAKm2G,WAAWY,SAAS/2G,KAAKk3G,QAAQjzG,IAEhC,OAAtBjE,KAAK+1G,eAEL/1G,KAAKi3G,YAAchzG,EACnBjE,KAAK61E,QAAQ3iD,SAASlzB,KAAK+1G,cAEvB/1G,KAAKw3G,UAELx3G,KAAKw3G,SAAS/qE,SAASzsC,KAAMA,KAAK+1G,kBAYlDnyG,OAAOC,eAAeiwB,EAAOq/C,UAAU9vE,UAAW,SAE9CS,IAAK,WAED,MAAOnD,MAAKi8B,MAAM,IAAO58B,KAAKwhE,QAIlCx9D,IAAK,SAAUC,GAEPA,GAAS,IAETjE,KAAKwhE,MAAQ,IAAOv9D,MAWhCL,OAAOC,eAAeiwB,EAAOq/C,UAAU9vE,UAAW,gBAE9CS,IAAK,WAED,MAA0B,QAAlB9D,KAAKw3G,UAIjBxzG,IAAK,SAAUC,GAEPA,GAA2B,OAAlBjE,KAAKw3G,SAEdx3G,KAAKw3G,SAAW,GAAI1jF,GAAO0W,OAErBvmC,GAA2B,OAAlBjE,KAAKw3G,WAEpBx3G,KAAKw3G,SAASroE,UACdnvC,KAAKw3G,SAAW,SAqB5B1jF,EAAOq/C,UAAUilC,mBAAqB,SAAUxU,EAAQx4F,EAAOJ,EAAMqtG,EAAQC,GAE1D7uG,SAAX4uG,IAAwBA,EAAS,GAErC,IAAIx7E,MACA1wB,EAAQ,EAEZ,IAAYnB,EAARI,EAEA,IAAK,GAAI3H,GAAI2H,EAAYJ,GAALvH,EAAWA,IAKvB0I,EAHmB,gBAAZmsG,GAGCxkF,EAAOoF,MAAMsB,IAAI/2B,EAAEyM,WAAYooG,EAAS,IAAK,GAI7C70G,EAAEyM,WAGd/D,EAAQy3F,EAASz3F,EAAQksG,EAEzBx7E,EAAOt4B,KAAK4H,OAKhB,KAAK,GAAI1I,GAAI2H,EAAO3H,GAAKuH,EAAMvH,IAKvB0I,EAHmB,gBAAZmsG,GAGCxkF,EAAOoF,MAAMsB,IAAI/2B,EAAEyM,WAAYooG,EAAS,IAAK,GAI7C70G,EAAEyM,WAGd/D,EAAQy3F,EAASz3F,EAAQksG,EAEzBx7E,EAAOt4B,KAAK4H,EAIpB,OAAO0wB,IAsBX/I,EAAO0uD,MAAQ,SAAU95E,EAAOhD,EAAGC,EAAGkB,EAAOC,EAAQq0B,GAKjDn7B,KAAK0I,MAAQA,EAKb1I,KAAK0F,EAAIA,EAKT1F,KAAK2F,EAAIA,EAKT3F,KAAK6G,MAAQA,EAKb7G,KAAK8G,OAASA,EAKd9G,KAAKm7B,KAAOA,EAKZn7B,KAAK6jC,QAAUljC,KAAKq3B,MAAMnxB,EAAQ,GAKlC7G,KAAK8jC,QAAUnjC,KAAKq3B,MAAMlxB,EAAS,GAKnC9G,KAAK28B,SAAW7I,EAAOnzB,KAAKg8B,SAAS,EAAG,EAAG91B,EAAOC,GAMlD9G,KAAKu4G,SAAU,EAMfv4G,KAAKw4G,kBAAoB,KAMzBx4G,KAAK65E,SAAU,EAKf75E,KAAKg6E,YAAcnzE,EAKnB7G,KAAKi6E,YAAcnzE,EAMnB9G,KAAK85E,kBAAoB,EAMzB95E,KAAK+5E,kBAAoB,EAMzB/5E,KAAKy4G,kBAAoB,EAMzBz4G,KAAK04G,kBAAoB,EAKzB14G,KAAK46B,MAAQ56B,KAAK0F,EAAI1F,KAAK6G,MAK3B7G,KAAKq9B,OAASr9B,KAAK2F,EAAI3F,KAAK8G;EAIhCgtB,EAAO0uD,MAAMn/E,WAST0E,OAAQ,SAAUlB,EAAOC,GAErB9G,KAAK6G,MAAQA,EACb7G,KAAK8G,OAASA,EACd9G,KAAK6jC,QAAUljC,KAAKq3B,MAAMnxB,EAAQ,GAClC7G,KAAK8jC,QAAUnjC,KAAKq3B,MAAMlxB,EAAS,GACnC9G,KAAK28B,SAAW7I,EAAOnzB,KAAKg8B,SAAS,EAAG,EAAG91B,EAAOC,GAClD9G,KAAKg6E,YAAcnzE,EACnB7G,KAAKi6E,YAAcnzE,EACnB9G,KAAK46B,MAAQ56B,KAAK0F,EAAImB,EACtB7G,KAAKq9B,OAASr9B,KAAK2F,EAAImB,GAgB3B6xG,QAAS,SAAU9+B,EAAS++B,EAAaC,EAAcC,EAAOC,EAAOC,EAAWC,GAE5Ej5G,KAAK65E,QAAUA,EAEXA,IAEA75E,KAAKg6E,YAAc4+B,EACnB54G,KAAKi6E,YAAc4+B,EACnB74G,KAAK6jC,QAAUljC,KAAKq3B,MAAM4gF,EAAc,GACxC54G,KAAK8jC,QAAUnjC,KAAKq3B,MAAM6gF,EAAe,GACzC74G,KAAK85E,kBAAoBg/B,EACzB94G,KAAK+5E,kBAAoBg/B,EACzB/4G,KAAKy4G,kBAAoBO,EACzBh5G,KAAK04G,kBAAoBO,IAYjC39E,MAAO,WAEH,GAAIuB,GAAS,GAAI/I,GAAO0uD,MAAMxiF,KAAK0I,MAAO1I,KAAK0F,EAAG1F,KAAK2F,EAAG3F,KAAK6G,MAAO7G,KAAK8G,OAAQ9G,KAAKm7B,KAExF,KAAK,GAAI9B,KAAQr5B,MAETA,KAAKg7B,eAAe3B,KAEpBwD,EAAOxD,GAAQr5B,KAAKq5B,GAI5B,OAAOwD,IAWXq8E,QAAS,SAAU58E,GAWf,MATY7yB,UAAR6yB,EAEAA,EAAM,GAAIxI,GAAO9wB,UAAUhD,KAAK0F,EAAG1F,KAAK2F,EAAG3F,KAAK6G,MAAO7G,KAAK8G,QAI5Dw1B,EAAIC,MAAMv8B,KAAK0F,EAAG1F,KAAK2F,EAAG3F,KAAK6G,MAAO7G,KAAK8G,QAGxCw1B,IAMfxI,EAAO0uD,MAAMn/E,UAAUC,YAAcwwB,EAAO0uD,MAc5C1uD,EAAOkgE,UAAY,WAMfh0F,KAAKk3G,WAMLl3G,KAAKm5G,gBAITrlF,EAAOkgE,UAAU3wF,WASb8wF,SAAU,SAAUhoF,GAWhB,MATAA,GAAMzD,MAAQ1I,KAAKk3G,QAAQxzG,OAE3B1D,KAAKk3G,QAAQ3yG,KAAK4H,GAEC,KAAfA,EAAMgvB,OAENn7B,KAAKm5G,YAAYhtG,EAAMgvB,MAAQhvB,EAAMzD,OAGlCyD,GAWX4qG,SAAU,SAAUruG,GAOhB,MALIA,IAAS1I,KAAKk3G,QAAQxzG,SAEtBgF,EAAQ,GAGL1I,KAAKk3G,QAAQxuG,IAWxBsuG,eAAgB,SAAU77E,GAEtB,MAAsC,gBAA3Bn7B,MAAKm5G,YAAYh+E,GAEjBn7B,KAAKk3G,QAAQl3G,KAAKm5G,YAAYh+E,IAGlC,MAWXw7E,eAAgB,SAAUx7E,GAEtB,MAA8B,OAA1Bn7B,KAAKm5G,YAAYh+E,IAEV,GAGJ,GAUXG,MAAO,WAKH,IAAK,GAHDuB,GAAS,GAAI/I,GAAOkgE,UAGfvwF,EAAI,EAAGA,EAAIzD,KAAKk3G,QAAQxzG,OAAQD,IAErCo5B,EAAOq6E,QAAQ3yG,KAAKvE,KAAKk3G,QAAQzzG,GAAG63B,QAGxC,KAAK,GAAIz2B,KAAK7E,MAAKm5G,YAEXn5G,KAAKm5G,YAAYn+E,eAAen2B,IAEhCg4B,EAAOs8E,YAAY50G,KAAKvE,KAAKm5G,YAAYt0G,GAIjD,OAAOg4B,IAaXu8E,cAAe,SAAUhuG,EAAOtB,EAAK+yB,GAElBpzB,SAAXozB,IAAwBA,KAE5B,KAAK,GAAIp5B,GAAI2H,EAAYtB,GAALrG,EAAUA,IAE1Bo5B,EAAOt4B,KAAKvE,KAAKk3G,QAAQzzG,GAG7B,OAAOo5B,IAcXy5D,UAAW,SAAUD,EAAQmgB,EAAiB35E,GAK1C,GAHwBpzB,SAApB+sG,IAAiCA,GAAkB,GACxC/sG,SAAXozB,IAAwBA,MAEbpzB,SAAX4sF,GAA0C,IAAlBA,EAAO3yF,OAG/B,IAAK,GAAID,GAAI,EAAGA,EAAIzD,KAAKk3G,QAAQxzG,OAAQD,IAGrCo5B,EAAOt4B,KAAKvE,KAAKk3G,QAAQzzG,QAM7B,KAAK,GAAIA,GAAI,EAAGA,EAAI4yF,EAAO3yF,OAAQD,IAM3Bo5B,EAAOt4B,KAHPiyG,EAGYx2G,KAAK+2G,SAAS1gB,EAAO5yF,IAKrBzD,KAAKg3G,eAAe3gB,EAAO5yF,IAKnD,OAAOo5B,IAcX45E,gBAAiB,SAAUpgB,EAAQmgB,EAAiB35E,GAKhD,GAHwBpzB,SAApB+sG,IAAiCA,GAAkB,GACxC/sG,SAAXozB,IAAwBA,MAEbpzB,SAAX4sF,GAA0C,IAAlBA,EAAO3yF,OAG/B,IAAK,GAAID,GAAI,EAAGA,EAAIzD,KAAKk3G,QAAQxzG,OAAQD,IAErCo5B,EAAOt4B,KAAKvE,KAAKk3G,QAAQzzG,GAAGiF,WAMhC,KAAK,GAAIjF,GAAI,EAAGA,EAAI4yF,EAAO3yF,OAAQD,IAG3B+yG,EAEA35E,EAAOt4B,KAAKvE,KAAKk3G,QAAQ7gB,EAAO5yF,IAAIiF,OAIhC1I,KAAKg3G,eAAe3gB,EAAO5yF,KAE3Bo5B,EAAOt4B,KAAKvE,KAAKg3G,eAAe3gB,EAAO5yF,IAAIiF,MAM3D,OAAOm0B,KAMf/I,EAAOkgE,UAAU3wF,UAAUC,YAAcwwB,EAAOkgE,UAOhDpwF,OAAOC,eAAeiwB,EAAOkgE,UAAU3wF,UAAW,SAE9CS,IAAK,WACD,MAAO9D,MAAKk3G,QAAQxzG,UAiB5BowB,EAAOulF,iBAeHC,YAAa,SAAU10G,EAAM8R,EAAK4iF,EAAYC,EAAaggB,EAAU55D,EAAQ65D,GAEzE,GAAI9/B,GAAMhjE,CAOV,IALmB,gBAARA,KAEPgjE,EAAM90E,EAAKikC,MAAMzU,SAAS1d,IAGlB,OAARgjE,EAEA,MAAO,KAGX,IAAI7yE,GAAQ6yE,EAAI7yE,MACZC,EAAS4yE,EAAI5yE,MAEC,IAAdwyF,IAEAA,EAAa34F,KAAKq3B,OAAOnxB,EAAQlG,KAAK0wB,IAAI,GAAIioE,KAG/B,GAAfC,IAEAA,EAAc54F,KAAKq3B,OAAOlxB,EAASnG,KAAK0wB,IAAI,GAAIkoE,IAGpD,IAAIhxD,GAAM5nC,KAAKq3B,OAAOnxB,EAAQ84C,IAAW25C,EAAakgB,IAClDC,EAAS94G,KAAKq3B,OAAOlxB,EAAS64C,IAAW45C,EAAcigB,IACvDv/D,EAAQ1R,EAAMkxE,CAQlB,IANiB,KAAbF,IAEAt/D,EAAQs/D,GAIE,IAAV1yG,GAA0B,IAAXC,GAAwBwyF,EAARzyF,GAA+B0yF,EAATzyF,GAAkC,IAAVmzC,EAG7E,MADAvlC,SAAQukB,KAAK,wCAA0CviB,EAAM,uEACtD,IAQX,KAAK,GAJDvF,GAAO,GAAI2iB,GAAOkgE,UAClBtuF,EAAIi6C,EACJh6C,EAAIg6C,EAECl8C,EAAI,EAAOw2C,EAAJx2C,EAAWA,IAEvB0N,EAAKgjF,SAAS,GAAIrgE,GAAO0uD,MAAM/+E,EAAGiC,EAAGC,EAAG2zF,EAAYC,EAAa,KAEjE7zF,GAAK4zF,EAAakgB,EAEd9zG,EAAI4zF,EAAazyF,IAEjBnB,EAAIi6C,EACJh6C,GAAK4zF,EAAcigB,EAI3B,OAAOroG,IAYXuoG,SAAU,SAAU90G,EAAM+0G,GAGtB,IAAKA,EAAa,OAId,MAFAjlG,SAAQukB,KAAK,iGACbvkB,SAAQC,IAAIglG,EAWhB,KAAK,GAFDC,GAJAzoG,EAAO,GAAI2iB,GAAOkgE,UAGlBqC,EAASsjB,EAAa,OAGjBl2G,EAAI,EAAGA,EAAI4yF,EAAO3yF,OAAQD,IAE/Bm2G,EAAWzoG,EAAKgjF,SAAS,GAAIrgE,GAAO0uD,MAChC/+E,EACA4yF,EAAO5yF,GAAG0I,MAAMzG,EAChB2wF,EAAO5yF,GAAG0I,MAAMxG,EAChB0wF,EAAO5yF,GAAG0I,MAAMoN,EAChB88E,EAAO5yF,GAAG0I,MAAMke,EAChBgsE,EAAO5yF,GAAGo2G,WAGVxjB,EAAO5yF,GAAGo2E,SAEV+/B,EAASjB,QACLtiB,EAAO5yF,GAAGo2E,QACVwc,EAAO5yF,GAAGq2G,WAAWvgG,EACrB88E,EAAO5yF,GAAGq2G,WAAWzvF,EACrBgsE,EAAO5yF,GAAGs2G,iBAAiBr0G,EAC3B2wF,EAAO5yF,GAAGs2G,iBAAiBp0G,EAC3B0wF,EAAO5yF,GAAGs2G,iBAAiBxgG,EAC3B88E,EAAO5yF,GAAGs2G,iBAAiB1vF,EAKvC,OAAOlZ,IAYX6oG,aAAc,SAAUp1G,EAAM+0G,GAG1B,IAAKA,EAAa,OAId,MAFAjlG,SAAQukB,KAAK,sGACbvkB,SAAQC,IAAIglG,EAKhB,IAIIC,GAJAzoG,EAAO,GAAI2iB,GAAOkgE,UAGlBqC,EAASsjB,EAAa,OAEtBl2G,EAAI,CAER,KAAK,GAAIiT,KAAO2/E,GAEZujB,EAAWzoG,EAAKgjF,SAAS,GAAIrgE,GAAO0uD,MAChC/+E,EACA4yF,EAAO3/E,GAAKvK,MAAMzG,EAClB2wF,EAAO3/E,GAAKvK,MAAMxG,EAClB0wF,EAAO3/E,GAAKvK,MAAMoN,EAClB88E,EAAO3/E,GAAKvK,MAAMke,EAClB3T,IAGA2/E,EAAO3/E,GAAKmjE,SAEZ+/B,EAASjB,QACLtiB,EAAO3/E,GAAKmjE,QACZwc,EAAO3/E,GAAKojG,WAAWvgG,EACvB88E,EAAO3/E,GAAKojG,WAAWzvF,EACvBgsE,EAAO3/E,GAAKqjG,iBAAiBr0G,EAC7B2wF,EAAO3/E,GAAKqjG,iBAAiBp0G,EAC7B0wF,EAAO3/E,GAAKqjG,iBAAiBxgG,EAC7B88E,EAAO3/E,GAAKqjG,iBAAiB1vF,GAIrC5mB,GAGJ,OAAO0N,IAYX8oG,QAAS,SAAUr1G,EAAMs1G,GAGrB,IAAKA,EAAIC,qBAAqB,gBAG1B,WADAzlG,SAAQukB,KAAK,8FAoBjB,KAAK,GAbD2gF,GAEAz+E,EACAhvB,EACAzG,EACAC,EACAkB,EACAC,EACAszG,EACAC,EACA/gB,EACAC,EAbApoF,EAAO,GAAI2iB,GAAOkgE,UAClBqC,EAAS6jB,EAAIC,qBAAqB,cAc7B12G,EAAI,EAAGA,EAAI4yF,EAAO3yF,OAAQD,IAE/B0I,EAAQkqF,EAAO5yF,GAAGoS,WAElBslB,EAAOhvB,EAAMgvB,KAAKl3B,MAClByB,EAAI20B,SAASluB,EAAMzG,EAAEzB,MAAO,IAC5B0B,EAAI00B,SAASluB,EAAMxG,EAAE1B,MAAO,IAC5B4C,EAAQwzB,SAASluB,EAAMtF,MAAM5C,MAAO,IACpC6C,EAASuzB,SAASluB,EAAMrF,OAAO7C,MAAO,IAEtCm2G,EAAS,KACTC,EAAS,KAELluG,EAAMiuG,SAENA,EAASz5G,KAAKshB,IAAIoY,SAASluB,EAAMiuG,OAAOn2G,MAAO,KAC/Co2G,EAAS15G,KAAKshB,IAAIoY,SAASluB,EAAMkuG,OAAOp2G,MAAO,KAC/Cq1F,EAAaj/D,SAASluB,EAAMmtF,WAAWr1F,MAAO,IAC9Cs1F,EAAcl/D,SAASluB,EAAMotF,YAAYt1F,MAAO,KAGpD21G,EAAWzoG,EAAKgjF,SAAS,GAAIrgE,GAAO0uD,MAAM/+E,EAAGiC,EAAGC,EAAGkB,EAAOC,EAAQq0B,KAGnD,OAAXi/E,GAA8B,OAAXC,IAEnBT,EAASjB,SAAQ,EAAM9xG,EAAOC,EAAQszG,EAAQC,EAAQ/gB,EAAYC,EAI1E,OAAOpoF,KAuCf2iB,EAAOs3B,MAAQ,SAAUxmD,GAKrB5E,KAAK4E,KAAOA,EAMZ5E,KAAKs6G,gBAAiB,EAOtBt6G,KAAKu6G,QACDxpG,UACA0hB,SACA3qB,WACAmhC,SACAm0C,SACAx/B,QACA+7D,QACAO,OACA7wE,WACAyzC,WACA09B,UACA1zE,cACA2zE,cACA1uG,UACApF,kBAOJ3G,KAAK06G,WAML16G,KAAK26G,aAAe,GAAI/pG,OAMxB5Q,KAAK46G,SAAW,KAKhB56G,KAAK66G,cAAgB,GAAI/mF,GAAO0W,OAMhCxqC,KAAK86G,aAEL96G,KAAK86G,UAAUhnF,EAAOs3B,MAAM31B,QAAUz1B,KAAKu6G,OAAOxpG,OAClD/Q,KAAK86G,UAAUhnF,EAAOs3B,MAAMj1B,OAASn2B,KAAKu6G,OAAO9nF,MACjDzyB,KAAK86G,UAAUhnF,EAAOs3B,MAAM2vD,SAAW/6G,KAAKu6G,OAAOzyG,QACnD9H,KAAK86G,UAAUhnF,EAAOs3B,MAAM4vD,OAASh7G,KAAKu6G,OAAOtxE,MACjDjpC,KAAK86G,UAAUhnF,EAAOs3B,MAAM/0B,MAAQr2B,KAAKu6G,OAAO38D,KAChD59C,KAAK86G,UAAUhnF,EAAOs3B,MAAM6vD,SAAWj7G,KAAKu6G,OAAOlxE,QACnDrpC,KAAK86G,UAAUhnF,EAAOs3B,MAAM10B,SAAW12B,KAAKu6G,OAAOz9B,QACnD98E,KAAK86G,UAAUhnF,EAAOs3B,MAAM8vD,QAAUl7G,KAAKu6G,OAAOC,OAClDx6G,KAAK86G,UAAUhnF,EAAOs3B,MAAMt0B,YAAc92B,KAAKu6G,OAAOzzE,WACtD9mC,KAAK86G,UAAUhnF,EAAOs3B,MAAM+vD,YAAcn7G,KAAKu6G,OAAOE,WACtDz6G,KAAK86G,UAAUhnF,EAAOs3B,MAAMgwD,MAAQp7G,KAAKu6G,OAAOZ,KAChD35G,KAAK86G,UAAUhnF,EAAOs3B,MAAMiwD,KAAOr7G,KAAKu6G,OAAOL,IAC/Cl6G,KAAK86G,UAAUhnF,EAAOs3B,MAAMvzB,OAAS73B,KAAKu6G,OAAOn9B,MACjDp9E,KAAK86G,UAAUhnF,EAAOs3B,MAAMkwD,QAAUt7G,KAAKu6G,OAAOxuG,OAClD/L,KAAK86G,UAAUhnF,EAAOs3B,MAAMmwD,gBAAkBv7G,KAAKu6G,OAAO5zG,cAE1D3G,KAAKw7G,kBACLx7G,KAAKy7G,mBAQT3nF,EAAOs3B,MAAM31B,OAAS,EAMtB3B,EAAOs3B,MAAMj1B,MAAQ,EAMrBrC,EAAOs3B,MAAM2vD,QAAU,EAMvBjnF,EAAOs3B,MAAM4vD,MAAQ,EAMrBlnF,EAAOs3B,MAAM/0B,KAAO,EAMpBvC,EAAOs3B,MAAM6vD,QAAU,EAMvBnnF,EAAOs3B,MAAM10B,QAAU,EAMvB5C,EAAOs3B,MAAM8vD,OAAS,EAMtBpnF,EAAOs3B,MAAMt0B,WAAa,EAM1BhD,EAAOs3B,MAAM+vD,WAAa,GAM1BrnF,EAAOs3B,MAAMgwD,KAAO,GAMpBtnF,EAAOs3B,MAAMiwD,IAAM,GAMnBvnF,EAAOs3B,MAAMvzB,MAAQ,GAMrB/D,EAAOs3B,MAAMkwD,OAAS,GAMtBxnF,EAAOs3B,MAAMmwD,eAAiB,GAE9BznF,EAAOs3B,MAAM/nD,WAcTq4G,UAAW,SAAUhlG,EAAK3F,EAAQ3D,GAEd3D,SAAZ2D,IAAyBA,EAAU2D,EAAOE,WAAW,OAEzDjR,KAAKu6G,OAAOxpG,OAAO2F,IAAS3F,OAAQA,EAAQ3D,QAASA,IAczDu2E,SAAU,SAAUjtE,EAAK2mE,EAAKlsE,GAEtBnR,KAAKqzF,cAAc38E,IAEnB1W,KAAK27G,YAAYjlG,EAGrB,IAAIgjE,IACAhjE,IAAKA,EACL2mE,IAAKA,EACLlsE,KAAMA,EACNwoE,KAAM,GAAI75E,MAAKgyB,YAAY3gB,GAC3BhF,MAAO,GAAI2nB,GAAO0uD,MAAM,EAAG,EAAG,EAAGrxE,EAAKtK,MAAOsK,EAAKrK,OAAQ4P,GAC1DkjE,UAAW,GAAI9lD,GAAOkgE,UAS1B,OANAta,GAAIE,UAAUua,SAAS,GAAIrgE,GAAO0uD,MAAM,EAAG,EAAG,EAAGrxE,EAAKtK,MAAOsK,EAAKrK,OAAQu2E,IAE1Er9E,KAAKu6G,OAAO9nF,MAAM/b,GAAOgjE,EAEzB15E,KAAK47G,YAAYv+B,EAAK3D,GAEfA,GAaX8hC,gBAAiB,WAEb,GAAI9hC,GAAM,GAAI9oE,MAEd8oE,GAAI7oE,IAAM,wKAEV,IAAIuoB,GAAMp5B,KAAK2jF,SAAS,YAAa,KAAMjK,EAE3C55E,MAAK6O,aAAwB,UAAI,GAAI7O,MAAKyL,QAAQ6tB,EAAIugD,OAa1D8hC,gBAAiB,WAEb,GAAI/hC,GAAM,GAAI9oE,MAEd8oE,GAAI7oE,IAAM,4WAEV,IAAIuoB,GAAMp5B,KAAK2jF,SAAS,YAAa,KAAMjK,EAE3C55E,MAAK6O,aAAwB,UAAI,GAAI7O,MAAKyL,QAAQ6tB,EAAIugD,OAc1DkiC,SAAU,SAAUnlG,EAAK2mE,EAAKlsE,EAAM+6C,EAAU4vD,GAEzBryG,SAAbyiD,IAA0BA,GAAW,EAAM4vD,GAAW,GACzCryG,SAAbqyG,IAA0B5vD,GAAW,EAAO4vD,GAAW,EAE3D,IAAIC,IAAU,CAEVD,KAEAC,GAAU,GAGd/7G,KAAKu6G,OAAOtxE,MAAMvyB,IACd2mE,IAAKA,EACLlsE,KAAMA,EACN6qG,YAAY,EACZD,QAASA,EACT7vD,SAAUA,EACV4vD,SAAUA,EACVjpD,OAAQ7yD,KAAK4E,KAAKqkC,MAAMgzE,aAG5Bj8G,KAAK47G,YAAYv+B,EAAKr9E,KAAKu6G,OAAOtxE,MAAMvyB,KAY5CwlG,QAAS,SAAUxlG,EAAK2mE,EAAKlsE,GAEzBnR,KAAKu6G,OAAO38D,KAAKlnC,IAAS2mE,IAAKA,EAAKlsE,KAAMA,GAE1CnR,KAAK47G,YAAYv+B,EAAKr9E,KAAKu6G,OAAO38D,KAAKlnC,KAa3CylG,eAAgB,SAAUzlG,EAAK2mE,EAAKq8B,EAAUvhG,GAE1CnY,KAAKu6G,OAAOlxE,QAAQ3yB,IAAS2mE,IAAKA,EAAKlsE,KAAMuoG,EAAUvhG,OAAQA,GAE/DnY,KAAK47G,YAAYv+B,EAAKr9E,KAAKu6G,OAAOlxE,QAAQ3yB,KAa9C0lG,WAAY,SAAU1lG,EAAK2mE,EAAKg/B,EAASlkG,GAErCnY,KAAKu6G,OAAOz9B,QAAQpmE,IAAS2mE,IAAKA,EAAKlsE,KAAMkrG,EAASlkG,OAAQA,GAE9DnY,KAAK47G,YAAYv+B,EAAKr9E,KAAKu6G,OAAOz9B,QAAQpmE,KAW9C4lG,UAAW,SAAU5lG,EAAK6lG,GAEtBv8G,KAAKu6G,OAAOC,OAAO9jG,GAAO6lG,GAa9Bj/B,cAAe,SAAU5mE,EAAKowB,EAAY8yC,GAYtC,MAVA9yC,GAAWpwB,IAAMA,EAECjN,SAAdmwE,IAEAA,EAAY,GAAI9lD,GAAOkgE,UACvBpa,EAAUua,SAASrtD,EAAWy7C,eAGlCviF,KAAKu6G,OAAOzzE,WAAWpwB,IAASvF,KAAM21B,EAAY8yC,UAAWA,GAEtD9yC,GAeX01E,cAAe,SAAU9lG,EAAK2mE,EAAKlsE,EAAMsrG,EAAWC,EAAWlgC,EAAUC,GAErE,GAAIrjD,IACAikD,IAAKA,EACLlsE,KAAMA,EACNgrE,KAAM,KACNxC,KAAM,GAAI75E,MAAKgyB,YAAY3gB,GAK3BioB,GAAI+iD,KAFU,SAAdugC,EAEW5oF,EAAO6oF,aAAaC,eAAeH,EAAWrjF,EAAIugD,KAAM6C,EAAUC,GAIlE3oD,EAAO6oF,aAAaE,cAAcJ,EAAWrjF,EAAIugD,KAAM6C,EAAUC,GAGhFz8E,KAAKu6G,OAAOE,WAAW/jG,GAAO0iB,EAE9Bp5B,KAAK47G,YAAYv+B,EAAKjkD,IAY1B0jF,QAAS,SAAUpmG,EAAK2mE,EAAKlsE,GAEzBnR,KAAKu6G,OAAOZ,KAAKjjG,IAAS2mE,IAAKA,EAAKlsE,KAAMA,GAE1CnR,KAAK47G,YAAYv+B,EAAKr9E,KAAKu6G,OAAOZ,KAAKjjG,KAY3CqmG,OAAQ,SAAUrmG,EAAK2mE,EAAKlsE,GAExBnR,KAAKu6G,OAAOL,IAAIxjG,IAAS2mE,IAAKA,EAAKlsE,KAAMA,GAEzCnR,KAAK47G,YAAYv+B,EAAKr9E,KAAKu6G,OAAOL,IAAIxjG,KAa1CsmG,SAAU,SAAUtmG,EAAK2mE,EAAKlsE,EAAM8rG,GAEhCj9G,KAAKu6G,OAAOn9B,MAAM1mE,IAAS2mE,IAAKA,EAAKlsE,KAAMA,EAAM8rG,OAAQA,EAAQpqD,QAAQ,GAEzE7yD,KAAK47G,YAAYv+B,EAAKr9E,KAAKu6G,OAAOn9B,MAAM1mE,KAY5CwmG,UAAW,SAAUxmG,EAAK2mE,EAAKlsE,GAE3BnR,KAAKu6G,OAAOxuG,OAAO2K,IAAS2mE,IAAKA,EAAKlsE,KAAMA,GAE5CnR,KAAK47G,YAAYv+B,EAAKr9E,KAAKu6G,OAAOxuG,OAAO2K,KAW7CymE,iBAAkB,SAAUzmE,EAAK5O,GAE7B9H,KAAKu6G,OAAO5zG,cAAc+P,IAAS5O,QAASA,EAASqE,MAAO,GAAI2nB,GAAO0uD,MAAM,EAAG,EAAG,EAAG16E,EAAQjB,MAAOiB,EAAQhB,OAAQ,GAAI,MAiB7Hq2G,eAAgB,SAAUzmG,EAAK2mE,EAAKlsE,EAAMmoF,EAAYC,EAAaggB,EAAU55D,EAAQ65D,GAEjF,GAAIpgF,IACA1iB,IAAKA,EACL2mE,IAAKA,EACLlsE,KAAMA,EACNmoF,WAAYA,EACZC,YAAaA,EACb55C,OAAQA,EACR65D,QAASA,EACT7/B,KAAM,GAAI75E,MAAKgyB,YAAY3gB,GAC3ByoE,UAAW9lD,EAAOulF,gBAAgBC,YAAYt5G,KAAK4E,KAAMuM,EAAMmoF,EAAYC,EAAaggB,EAAU55D,EAAQ65D,GAG9Gx5G,MAAKu6G,OAAO9nF,MAAM/b,GAAO0iB,EAEzBp5B,KAAK47G,YAAYv+B,EAAKjkD,IAc1BgkF,gBAAiB,SAAU1mG,EAAK2mE,EAAKlsE,EAAMsrG,EAAWtkG,GAElD,GAAIihB,IACA1iB,IAAKA,EACL2mE,IAAKA,EACLlsE,KAAMA,EACNwoE,KAAM,GAAI75E,MAAKgyB,YAAY3gB,GAK3BioB,GAAIwgD,UAFJzhE,IAAW2b,EAAOu3B,OAAOgyD,2BAETvpF,EAAOulF,gBAAgBY,QAAQj6G,KAAK4E,KAAM63G,EAAW/lG,GAKjEjW,MAAMyT,QAAQuoG,EAAUpmB,QAERviE,EAAOulF,gBAAgBK,SAAS15G,KAAK4E,KAAM63G,EAAW/lG,GAItDod,EAAOulF,gBAAgBW,aAAah6G,KAAK4E,KAAM63G,EAAW/lG,GAIlF1W,KAAKu6G,OAAO9nF,MAAM/b,GAAO0iB,EAEzBp5B,KAAK47G,YAAYv+B,EAAKjkD,IAc1BkkF,YAAa,SAAU5mG,GAEnB,GAAI04B,GAAQpvC,KAERipC,EAAQjpC,KAAKu9G,SAAS7mG,EAEtBuyB,KAEAA,EAAM93B,KAAKN,IAAMo4B,EAAMo0C,IAEvBp0C,EAAM93B,KAAKiiC,iBAAiB,iBAAkB,WAC1C,MAAOhE,GAAMouE,oBAAoB9mG,KAClC,GAEHuyB,EAAM93B,KAAK43B,SAWnBy0E,oBAAqB,SAAU9mG,GAE3B,GAAIuyB,GAAQjpC,KAAKu9G,SAAS7mG,EAEtBuyB,KAEAA,EAAM4pB,QAAS,EACf7yD,KAAK66G,cAAcpuE,SAAS/1B,KAWpC+mG,YAAa,SAAU/mG,EAAK2hC,EAAUp0C,GAElC,GAAIglC,GAAQjpC,KAAKu9G,SAAS7mG,EAEtBuyB,KAEAA,EAAMoP,GAAYp0C,IAY1By5G,aAAc,SAAUhnG,EAAKvF,GAEzB,GAAI83B,GAAQjpC,KAAKu9G,SAAS7mG,EAE1BuyB,GAAM93B,KAAOA,EACb83B,EAAM8yE,SAAU,EAChB9yE,EAAM+yE,YAAa,GAWvB2B,eAAgB,SAAUjnG,GAEtB,GAAIuyB,GAAQjpC,KAAK89F,QAAQpnF,EAAKod,EAAOs3B,MAAM4vD,MAAO,iBAElD,OAAI/xE,GAEOA,EAAM8yE,QAFjB,QAeJ6B,aAAc,SAAUlnG,GAEpB,GAAIuyB,GAAQjpC,KAAK89F,QAAQpnF,EAAKod,EAAOs3B,MAAM4vD,MAAO,iBAElD,OAAI/xE,GAEQA,EAAM8yE,UAAY/7G,KAAK4E,KAAKqkC,MAAMgzE,YAF9C,QAmBJ4B,SAAU,SAAUh1E,EAAOnyB,GAEvB,MAAI1W,MAAK86G,UAAUjyE,GAAOnyB,IAEf,GAGJ,GAcXonG,SAAU,SAAUzgC,GAEhB,MAAIr9E,MAAK06G,QAAQ16G,KAAK47G,YAAYv+B,KAEvB,GAGJ,GAWX0gC,eAAgB,SAAUrnG,GAEtB,MAAO1W,MAAK69G,SAAS/pF,EAAOs3B,MAAM31B,OAAQ/e,IAW9C28E,cAAe,SAAU38E,GAErB,MAAO1W,MAAK69G,SAAS/pF,EAAOs3B,MAAMj1B,MAAOzf,IAW7CsnG,gBAAiB,SAAUtnG,GAEvB,MAAO1W,MAAK69G,SAAS/pF,EAAOs3B,MAAM2vD,QAASrkG,IAW/CunG,cAAe,SAAUvnG,GAErB,MAAO1W,MAAK69G,SAAS/pF,EAAOs3B,MAAM4vD,MAAOtkG,IAW7CwnG,aAAc,SAAUxnG,GAEpB,MAAO1W,MAAK69G,SAAS/pF,EAAOs3B,MAAM/0B,KAAM3f,IAW5CynG,gBAAiB,SAAUznG,GAEvB,MAAO1W,MAAK69G,SAAS/pF,EAAOs3B,MAAM6vD,QAASvkG,IAW/C0nG,gBAAiB,SAAU1nG,GAEvB,MAAO1W,MAAK69G,SAAS/pF,EAAOs3B,MAAM10B,QAAShgB,IAW/C2nG,eAAgB,SAAU3nG,GAEtB,MAAO1W,MAAK69G,SAAS/pF,EAAOs3B,MAAM8vD,OAAQxkG,IAW9C4nG,mBAAoB,SAAU5nG,GAE1B,MAAO1W,MAAK69G,SAAS/pF,EAAOs3B,MAAMt0B,WAAYpgB,IAWlD6nG,mBAAoB,SAAU7nG,GAE1B,MAAO1W,MAAK69G,SAAS/pF,EAAOs3B,MAAM+vD,WAAYzkG,IAWlD8nG,aAAc,SAAU9nG,GAEpB,MAAO1W,MAAK69G,SAAS/pF,EAAOs3B,MAAMgwD,KAAM1kG,IAW5C+nG,YAAa,SAAU/nG,GAEnB,MAAO1W,MAAK69G,SAAS/pF,EAAOs3B,MAAMiwD,IAAK3kG,IAW3CgoG,cAAe,SAAUhoG,GAErB,MAAO1W,MAAK69G,SAAS/pF,EAAOs3B,MAAMvzB,MAAOnhB,IAW7CioG,eAAgB,SAAUjoG,GAEtB,MAAO1W,MAAK69G,SAAS/pF,EAAOs3B,MAAMkwD,OAAQ5kG,IAW9CkoG,sBAAuB,SAAUloG,GAE7B,MAAO1W,MAAK69G,SAAS/pF,EAAOs3B,MAAMmwD,eAAgB7kG,IAqBtDonF,QAAS,SAAUpnF,EAAKmyB,EAAOkQ,EAAQV,GAEnC,MAAKr4C,MAAK69G,SAASh1E,EAAOnyB,GASLjN,SAAb4uC,EAEOr4C,KAAK86G,UAAUjyE,GAAOnyB,GAItB1W,KAAK86G,UAAUjyE,GAAOnyB,GAAK2hC,IAblCU,GAEArkC,QAAQukB,KAAK,gBAAkB8f,EAAS,UAAYriC,EAAM,yBAe3D,OAeX4d,UAAW,SAAU5d,GAEjB,MAAO1W,MAAK89F,QAAQpnF,EAAKod,EAAOs3B,MAAM31B,OAAQ,YAAa,WAoB/DrB,SAAU,SAAU1d,EAAKmoG,IAETp1G,SAARiN,GAA6B,OAARA,KAErBA,EAAM,aAGGjN,SAATo1G,IAAsBA,GAAO,EAEjC,IAAInlC,GAAM15E,KAAK89F,QAAQpnF,EAAKod,EAAOs3B,MAAMj1B,MAAO,WAOhD,OALY,QAARujD,IAEAA,EAAM15E,KAAK89F,QAAQ,YAAahqE,EAAOs3B,MAAMj1B,MAAO,aAGpD0oF,EAEOnlC,EAIAA,EAAIvoE,MAcnB2tG,gBAAiB,SAAUpoG,GAEvB,MAAO1W,MAAK89F,QAAQpnF,EAAKod,EAAOs3B,MAAM2vD,QAAS,kBAAmB,UAetEwC,SAAU,SAAU7mG,GAEhB,MAAO1W,MAAK89F,QAAQpnF,EAAKod,EAAOs3B,MAAM4vD,MAAO,aAejD+D,aAAc,SAAUroG,GAEpB,MAAO1W,MAAK89F,QAAQpnF,EAAKod,EAAOs3B,MAAM4vD,MAAO,eAAgB,SAejEgE,QAAS,SAAUtoG,GAEf,MAAO1W,MAAK89F,QAAQpnF,EAAKod,EAAOs3B,MAAM/0B,KAAM,UAAW,SAmB3D4oF,eAAgB,SAAUvoG,EAAKqkE,EAAQmkC,GAEnC,GAAI/tG,GAAOnR,KAAK89F,QAAQpnF,EAAKod,EAAOs3B,MAAM6vD,QAAS,iBAAkB,OAErE,IAAa,OAAT9pG,GAA4B1H,SAAXsxE,GAAmC,OAAXA,EAEzC,MAAO5pE,EAIP,IAAIA,EAAK4pE,GACT,CACI,GAAIokC,GAAWhuG,EAAK4pE,EAGpB,KAAIokC,IAAYD,EAmBZ,MAAOC,EAjBP,KAAK,GAAIC,KAAWD,GAMhB,GAHAC,EAAUD,EAASC,GAGfA,EAAQF,aAAeA,EAEvB,MAAOE,EAKf1qG,SAAQukB,KAAK,kEAAoEimF,EAAa,OAASxoG,EAAM,SASjHhC,SAAQukB,KAAK,qDAAuDviB,EAAM,MAAQqkE,EAAS,IAInG,OAAO,OAeXskC,eAAgB,SAAU3oG,GAEtB,MAAO1W,MAAK89F,QAAQpnF,EAAKod,EAAOs3B,MAAM10B,QAAS,mBAenD4oF,UAAW,SAAU5oG,GAEjB,MAAO1W,MAAK89F,QAAQpnF,EAAKod,EAAOs3B,MAAM8vD,OAAQ,cAelDqE,cAAe,SAAU7oG,GAErB,MAAO1W,MAAK89F,QAAQpnF,EAAKod,EAAOs3B,MAAMt0B,WAAY,gBAAiB,SAevEs7D,cAAe,SAAU17E,GAErB,MAAO1W,MAAK89F,QAAQpnF,EAAKod,EAAOs3B,MAAM+vD,WAAY,kBAmBtDqE,QAAS,SAAU9oG,EAAK4kB,GAEpB,GAAInqB,GAAOnR,KAAK89F,QAAQpnF,EAAKod,EAAOs3B,MAAMgwD,KAAM,UAAW,OAE3D,OAAIjqG,GAEImqB,EAEOxH,EAAOoF,MAAMgC,QAAO,EAAM/pB,GAI1BA,EAKJ,MAgBfsuG,OAAQ,SAAU/oG,GAEd,MAAO1W,MAAK89F,QAAQpnF,EAAKod,EAAOs3B,MAAMiwD,IAAK,SAAU,SAezDqE,SAAU,SAAUhpG,GAEhB,MAAO1W,MAAK89F,QAAQpnF,EAAKod,EAAOs3B,MAAMvzB,MAAO,aAejD8nF,UAAW,SAAUjpG,GAEjB,MAAO1W,MAAK89F,QAAQpnF,EAAKod,EAAOs3B,MAAMkwD,OAAQ,YAAa,SAe/DsE,iBAAkB,SAAUlpG,GAExB,MAAO1W,MAAK89F,QAAQpnF,EAAKod,EAAOs3B,MAAMmwD,eAAgB,qBAgB1DsE,eAAgB,SAAUnpG,EAAKmyB,GAI3B,MAFcp/B,UAAVo/B,IAAuBA,EAAQ/U,EAAOs3B,MAAMj1B,OAEzCn2B,KAAK89F,QAAQpnF,EAAKmyB,EAAO,iBAAkB,SAWtDkuE,SAAU,SAAUrgG,GAEhB,MAAO1W,MAAK89F,QAAQpnF,EAAKod,EAAOs3B,MAAMj1B,MAAO,WAAY,UAW7D2pF,cAAe,SAAUppG,GAErB,GAAIvF,GAAOnR,KAAKy5E,aAAa/iE,EAE7B,OAAIvF,GAEOA,EAAK8oC,MAIL,GAgBfw/B,aAAc,SAAU/iE,GAEpB,MAAO1W,MAAK89F,QAAQpnF,EAAKod,EAAOs3B,MAAMj1B,MAAO,eAAgB,cAWjEojD,aAAc,SAAU7iE,GAEpB,MAAmE,QAA3D1W,KAAK89F,QAAQpnF,EAAKod,EAAOs3B,MAAMj1B,MAAO,GAAI,cAYtDi+D,gBAAiB,SAAU19E,EAAKkjE,EAAW/wC,GAEzBp/B,SAAVo/B,IAAuBA,EAAQ/U,EAAOs3B,MAAMj1B,OAE5Cn2B,KAAK86G,UAAUjyE,GAAOnyB,KAEtB1W,KAAK86G,UAAUjyE,GAAOnyB,GAAKkjE,UAAYA,IAa/CmmC,gBAAiB,SAAUrpG,EAAKhO,GAE5B,GAAIyI,GAAOnR,KAAKy5E,aAAa/iE,EAE7B,OAAIvF,GAEOA,EAAK4lG,SAASruG,GAId,MAafsuG,eAAgB,SAAUtgG,EAAKykB,GAE3B,GAAIhqB,GAAOnR,KAAKy5E,aAAa/iE,EAE7B,OAAIvF,GAEOA,EAAK6lG,eAAe77E,GAIpB,MAaf6kF,eAAgB,SAAUtpG,GAEtB,MAAI5W,MAAK6O,aAAa+H,GAEX5W,KAAK6O,aAAa+H,IAIzBhC,QAAQukB,KAAK,8CAAgDviB,EAAM,KAC5D,OAafupG,mBAAoB,SAAUvpG,GAE1B,MAAI5W,MAAK8xB,iBAAiBlb,GAEf5W,KAAK8xB,iBAAiBlb,IAI7BhC,QAAQukB,KAAK,kDAAoDviB,EAAM,KAChE,OAcfwpG,OAAQ,SAAU7iC,GAEd,GAAIA,GAAMr9E,KAAK47G,YAAYv+B,EAE3B,OAAIA,GAEOr9E,KAAK06G,QAAQr9B,IAIpB3oE,QAAQukB,KAAK,sCAAwCokD,EAAO,uCACrD,OAYf8iC,QAAS,SAAUt3E,GAEDp/B,SAAVo/B,IAAuBA,EAAQ/U,EAAOs3B,MAAMj1B,MAEhD,IAAImG,KAEJ,IAAIt8B,KAAKu6G,OAAO1xE,GAEZ,IAAK,GAAInyB,KAAO1W,MAAKu6G,OAAO1xE,GAEZ,cAARnyB,GAA+B,cAARA,GAEvB4lB,EAAI/3B,KAAKmS,EAKrB,OAAO4lB,IAiBX8jF,aAAc,SAAU1pG,SAEb1W,MAAKu6G,OAAOxpG,OAAO2F,IAc9BilG,YAAa,SAAUjlG,EAAK2pG,GAED52G,SAAnB42G,IAAgCA,GAAiB,SAE9CrgH,MAAKu6G,OAAO9nF,MAAM/b,GAErB2pG,GAEAvgH,KAAK8xB,iBAAiBlb,GAAKnT,WAcnC+8G,YAAa,SAAU5pG,SAEZ1W,MAAKu6G,OAAOtxE,MAAMvyB,IAa7B6pG,WAAY,SAAU7pG,SAEX1W,MAAKu6G,OAAO38D,KAAKlnC,IAa5B8pG,cAAe,SAAU9pG,SAEd1W,MAAKu6G,OAAOlxE,QAAQ3yB,IAa/B+pG,cAAe,SAAU/pG,SAEd1W,MAAKu6G,OAAOz9B,QAAQpmE,IAa/BgqG,aAAc,SAAUhqG,SAEb1W,MAAKu6G,OAAOC,OAAO9jG,IAa9BiqG,iBAAkB,SAAUjqG,SAEjB1W,MAAKu6G,OAAOzzE,WAAWpwB,IAalCkqG,iBAAkB,SAAUlqG,SAEjB1W,MAAKu6G,OAAOE,WAAW/jG,IAalCmqG,WAAY,SAAUnqG,SAEX1W,MAAKu6G,OAAOZ,KAAKjjG,IAa5BoqG,UAAW,SAAUpqG,SAEV1W,MAAKu6G,OAAOL,IAAIxjG,IAa3BqqG,YAAa,SAAUrqG,SAEZ1W,MAAKu6G,OAAOn9B,MAAM1mE,IAa7BsqG,aAAc,SAAUtqG,SAEb1W,MAAKu6G,OAAOxuG,OAAO2K,IAa9BuqG,oBAAqB,SAAUvqG,SAEpB1W,MAAKu6G,OAAO5zG,cAAc+P,IAarCwqG,kBAAmB,SAAUxqG,SAElB1W,MAAKu6G,OAAOjB,YAAY5iG,IAanCyqG,mBAAoB,SAAUzqG,SAEnB1W,MAAKu6G,OAAO6G,MAAM1qG,IAW7B41C,gBAAiB,WAEb,IAAK,GAAI51C,KAAO1W,MAAK6oC,MAAMpW,MAEvBzyB,KAAK6oC,MAAMpW,MAAM/b,GAAKijE,KAAKhiE,gBAenCikG,YAAa,SAAUv+B,EAAKlsE,GAExB,MAAKnR,MAAKs6G,gBAKVt6G,KAAK26G,aAAa9pG,IAAM7Q,KAAK4E,KAAKmkC,KAAKs4E,QAAUhkC,EAEjDr9E,KAAK46G,SAAW56G,KAAK26G,aAAa9pG,IAGlC7Q,KAAK26G,aAAa9pG,IAAM,GAGpBM,IAEAnR,KAAK06G,QAAQ16G,KAAK46G,UAAYzpG,GAG3BnR,KAAK46G,UAhBD,MA0Bfr3G,QAAS,WAEL,IAAK,GAAIE,GAAI,EAAGA,EAAIzD,KAAK86G,UAAUp3G,OAAQD,IAC3C,CACI,GAAIolC,GAAQ7oC,KAAK86G,UAAUr3G,EAE3B,KAAK,GAAIiT,KAAOmyB,GAEA,cAARnyB,GAA+B,cAARA,IAEnBmyB,EAAMnyB,GAAc,SAEpBmyB,EAAMnyB,GAAKnT,gBAGRslC,GAAMnyB,IAKzB1W,KAAK06G,QAAU,KACf16G,KAAK26G,aAAe,KACpB36G,KAAK46G,SAAW,OAMxB9mF,EAAOs3B,MAAM/nD,UAAUC,YAAcwwB,EAAOs3B,MAuB5Ct3B,EAAOu3B,OAAS,SAAUzmD,GAOtB5E,KAAK4E,KAAOA,EAOZ5E,KAAK6oC,MAAQjkC,EAAKikC,MAOlB7oC,KAAKuvD,aAAc,EAOnBvvD,KAAKshH,WAAY,EAOjBthH,KAAKiM,WAAY,EAUjBjM,KAAKuhH,cAAgB,KAOrBvhH,KAAK0yB,aAAc,EASnB1yB,KAAKqhH,QAAU,GAoBfrhH,KAAK+rF,KAAO,GAQZ/rF,KAAKwhH,YAAc,GAAI1tF,GAAO0W,OAO9BxqC,KAAKyhH,eAAiB,GAAI3tF,GAAO0W,OAWjCxqC,KAAK0hH,eAAiB,GAAI5tF,GAAO0W,OAUjCxqC,KAAK2hH,YAAc,GAAI7tF,GAAO0W,OAa9BxqC,KAAK4hH,eAAiB,GAAI9tF,GAAO0W,OAWjCxqC,KAAK6hH,YAAc,GAAI/tF,GAAO0W,OAU9BxqC,KAAK8hH,mBAAoB,EAMzB9hH,KAAK+hH,4BAA6B,EASlC/hH,KAAKgiH,gBAAiB,EAUtBhiH,KAAKiiH,qBAAuB,EAM5BjiH,KAAKkiH,oBAAsB,EAU3BliH,KAAKmiH,aAcLniH,KAAKoiH,gBAQLpiH,KAAKqiH,gBAAkB,EASvBriH,KAAKsiH,kBAAmB,EAOxBtiH,KAAKuiH,gBAAkB,EAOvBviH,KAAKwiH,gBAAkB,EAOvBxiH,KAAKyiH,iBAAmB,EAOxBziH,KAAK0iH,iBAAmB,GAQ5B5uF,EAAOu3B,OAAOs3D,yBAA2B,EAMzC7uF,EAAOu3B,OAAOu3D,wBAA0B,EAMxC9uF,EAAOu3B,OAAOgyD,2BAA6B,EAM3CvpF,EAAOu3B,OAAOw3D,yBAA2B,EAMzC/uF,EAAOu3B,OAAOy3D,oBAAsB,EAEpChvF,EAAOu3B,OAAOhoD,WAcV0/G,iBAAkB,SAAUp5F,EAAQ+7D,GAEhCA,EAAYA,GAAa,EAEzB1lF,KAAKuhH,eAAkB53F,OAAQA,EAAQ+7D,UAAWA,EAAW7+E,MAAO8iB,EAAO9iB,MAAOC,OAAQ6iB,EAAO7iB,OAAQ0qB,KAAM,MAK3GxxB,KAAKuhH,cAAc/vF,KAHL,IAAdk0D,EAG0B,GAAI5xD,GAAO9wB,UAAU,EAAG,EAAG,EAAG2mB,EAAO7iB,QAKrC,GAAIgtB,GAAO9wB,UAAU,EAAG,EAAG2mB,EAAO9iB,MAAO,GAGvE8iB,EAAOzc,KAAKlN,KAAKuhH,cAAc/vF,MAE/B7H,EAAO1nB,SAAU,GAYrB8F,OAAQ,WAEA/H,KAAKuhH,eAAiBvhH,KAAKuhH,cAAcz6G,SAAW9G,KAAKuhH,cAAc53F,OAAO7iB,SAE9E9G,KAAKuhH,cAAc/vF,KAAK1qB,OAAS9G,KAAKuhH,cAAc53F,OAAO7iB,SAenEk8G,eAAgB,SAAUjsG,EAAML,GAE5B,MAAO1W,MAAKijH,cAAclsG,EAAML,GAAO,IAe3CusG,cAAe,SAAUlsG,EAAML,GAI3B,IAAK,GAFDwsG,GAAY,GAEPz/G,EAAI,EAAGA,EAAIzD,KAAKmiH,UAAUz+G,OAAQD,IAC3C,CACI,GAAIg3F,GAAOz6F,KAAKmiH,UAAU1+G,EAE1B,IAAIg3F,EAAK1jF,OAASA,GAAQ0jF,EAAK/jF,MAAQA,IAEnCwsG,EAAYz/G,GAGPg3F,EAAK0oB,SAAW1oB,EAAK2oB,SAEtB,MAKZ,MAAOF,IAeXG,SAAU,SAAUtsG,EAAML,GAEtB,GAAI4sG,GAAYtjH,KAAKijH,cAAclsG,EAAML,EAEzC,OAAI4sG,GAAY,IAEH56G,MAAO46G,EAAW7oB,KAAMz6F,KAAKmiH,UAAUmB,KAG7C,GAgBX7mG,MAAO,SAAUw0C,EAAMykD,GAECjsG,SAAhBisG,IAA6BA,GAAc,GAE3C11G,KAAKuvD,cAKL0B,IAEAjxD,KAAKuhH,cAAgB,MAGzBvhH,KAAKshH,WAAY,EAEjBthH,KAAKqiH,gBAAkB,EACvBriH,KAAKmiH,UAAUz+G,OAAS,EACxB1D,KAAKoiH,aAAa1+G,OAAS,EAE3B1D,KAAKsiH,kBAAmB,EACxBtiH,KAAKwiH,gBAAkB,EACvBxiH,KAAKuiH,gBAAkB,EACvBviH,KAAKyiH,iBAAmB,EACxBziH,KAAK0iH,iBAAmB,EAEpBhN,IAEA11G,KAAKwhH,YAAY30E,YACjB7sC,KAAKyhH,eAAe50E,YACpB7sC,KAAK0hH,eAAe70E,YACpB7sC,KAAK2hH,YAAY90E,YACjB7sC,KAAK4hH,eAAe/0E,YACpB7sC,KAAK6hH,YAAYh1E,eAkBzB02E,cAAe,SAAUxsG,EAAML,EAAK2mE,EAAKgU,EAAYmyB,EAAWC,GAI5D,GAFkBh6G,SAAd+5G,IAA2BA,GAAY,GAE/B/5G,SAARiN,GAA6B,KAARA,EAGrB,MADAhC,SAAQukB,KAAK,kDAAoDliB,GAC1D/W,IAGX,IAAYyJ,SAAR4zE,GAA6B,OAARA,EACzB,CACI,IAAIomC,EAOA,MADA/uG,SAAQukB,KAAK,8CAAgDliB,EAAO,SAAWL,GACxE1W,IALPq9E,GAAM3mE,EAAM+sG,EASpB,GAAIhpB,IACA1jF,KAAMA,EACNL,IAAKA,EACLq1E,KAAM/rF,KAAK+rF,KACX1O,IAAKA,EACLqmC,UAAW1jH,KAAKkiH,oBAAsB,EACtC/wG,KAAM,KACNiyG,SAAS,EACTD,QAAQ,EACRplB,OAAO,EAGX,IAAI1M,EAEA,IAAK,GAAIh4D,KAAQg4D,GAEboJ,EAAKphE,GAAQg4D,EAAWh4D,EAIhC,IAAIiqF,GAAYtjH,KAAKijH,cAAclsG,EAAML,EAEzC,IAAI8sG,GAAaF,EAAY,GAC7B,CACI,GAAIK,GAAc3jH,KAAKmiH,UAAUmB,EAE5BK,GAAYP,SAAYO,EAAYR,QAMrCnjH,KAAKmiH,UAAU59G,KAAKk2F,GACpBz6F,KAAKwiH,mBALLxiH,KAAKmiH,UAAUmB,GAAa7oB,MAQb,KAAd6oB,IAELtjH,KAAKmiH,UAAU59G,KAAKk2F,GACpBz6F,KAAKwiH,kBAGT,OAAOxiH,OAcX4jH,kBAAmB,SAAU7sG,EAAML,EAAK2mE,EAAKgU,GAEzC,MAAOrxF,MAAKujH,cAAcxsG,EAAML,EAAK2mE,EAAKgU,GAAY,IA0B1DwyB,KAAM,SAAUntG,EAAK2mE,EAAKlsE,EAAM66B,GAM5B,GAJYviC,SAAR4zE,IAAqBA,EAAM,MAClB5zE,SAAT0H,IAAsBA,EAAO,MACT1H,SAApBuiC,IAAiCA,EAAkB,OAElDqxC,IAAQlsE,EAIT,MAFAuD,SAAQukB,KAAK,qEAENj5B,IAGX,IAAI6jH,IACA9sG,KAAM,WACNL,IAAKA,EACL2mE,IAAKA,EACL0O,KAAM/rF,KAAK+rF,KACX23B,WAAW,EACXvyG,KAAM,KACNiyG,SAAS,EACTD,QAAQ,EACRplB,OAAO,EACP/xD,gBAAiBA,EAIjB76B,KAEoB,gBAATA,KAEPA,EAAOiqG,KAAK34E,MAAMtxB,IAGtB0yG,EAAK1yG,KAAOA,MAGZ0yG,EAAKV,QAAS,EAKlB,KAAK,GAAI1/G,GAAI,EAAGA,EAAIzD,KAAKmiH,UAAUz+G,OAAS,EAAGD,IAC/C,CACI,GAAIg3F,GAAOz6F,KAAKmiH,UAAU1+G,EAE1B,KAAKg3F,IAAUA,EAAK0oB,SAAW1oB,EAAK2oB,SAAyB,aAAd3oB,EAAK1jF,KACpD,CACI/W,KAAKmiH,UAAUv5G,OAAOnF,EAAG,EAAGogH,GAC5B7jH,KAAKuiH,iBACL,QAIR,MAAOviH,OA2BXyyB,MAAO,SAAU/b,EAAK2mE,EAAKmmC,GAEvB,MAAOxjH,MAAKujH,cAAc,QAAS7sG,EAAK2mE,EAAK5zE,OAAW+5G,EAAW,SAyBvE5lE,KAAM,SAAUlnC,EAAK2mE,EAAKmmC,GAEtB,MAAOxjH,MAAKujH,cAAc,OAAQ7sG,EAAK2mE,EAAK5zE,OAAW+5G,EAAW,SA0BtE7J,KAAM,SAAUjjG,EAAK2mE,EAAKmmC,GAEtB,MAAOxjH,MAAKujH,cAAc,OAAQ7sG,EAAK2mE,EAAK5zE,OAAW+5G,EAAW,UAyBtEz3G,OAAQ,SAAU2K,EAAK2mE,EAAKmmC,GAExB,MAAOxjH,MAAKujH,cAAc,SAAU7sG,EAAK2mE,EAAK5zE,OAAW+5G,EAAW,UAyBxEtJ,IAAK,SAAUxjG,EAAK2mE,EAAKmmC,GAErB,MAAOxjH,MAAKujH,cAAc,MAAO7sG,EAAK2mE,EAAK5zE,OAAW+5G,EAAW,SA6BrEM,OAAQ,SAAUptG,EAAK2mE,EAAK1kC,EAAU3M,GAMlC,MAJiBviC,UAAbkvC,IAA0BA,GAAW,GAErCA,KAAa,GAA6BlvC,SAApBuiC,IAAiCA,EAAkBhsC,MAEtEA,KAAKujH,cAAc,SAAU7sG,EAAK2mE,GAAOqmC,WAAW,EAAM/qE,SAAUA,EAAU3M,gBAAiBA,IAAmB,EAAO,QA+BpIwuE,OAAQ,SAAU9jG,EAAK2mE,EAAK1kC,EAAU3M,GAOlC,MALiBviC,UAAbkvC,IAA0BA,GAAW,GAGrCA,KAAa,GAA6BlvC,SAApBuiC,IAAiCA,EAAkB2M,GAEtE34C,KAAKujH,cAAc,SAAU7sG,EAAK2mE,GAAO1kC,SAAUA,EAAU3M,gBAAiBA,IAAmB,EAAO,SAoCnH+3E,YAAa,SAAUrtG,EAAK2mE,EAAKic,EAAYC,EAAaggB,EAAU55D,EAAQ65D,GAMxE,MAJiB/vG,UAAb8vG,IAA0BA,EAAW,IAC1B9vG,SAAXk2C,IAAwBA,EAAS,GACrBl2C,SAAZ+vG,IAAyBA,EAAU,GAEhCx5G,KAAKujH,cAAc,cAAe7sG,EAAK2mE,GAAOic,WAAYA,EAAYC,YAAaA,EAAaggB,SAAUA,EAAU55D,OAAQA,EAAQ65D,QAASA,IAAW,EAAO,SA6B1Kt+B,MAAO,SAAUxkE,EAAKstG,EAAMC,GAExB,MAAIjkH,MAAK4E,KAAKqkC,MAAMi7E,QAETlkH,MAGQyJ,SAAfw6G,IAA4BA,GAAa,GAEzB,gBAATD,KAEPA,GAAQA,IAGLhkH,KAAKujH,cAAc,QAAS7sG,EAAKstG,GAAQhoG,OAAQ,KAAMioG,WAAYA,MA4B9EE,YAAa,SAASztG,EAAKstG,EAAMI,EAASC,EAAUJ,GAEhD,MAAIjkH,MAAK4E,KAAKqkC,MAAMi7E,QAETlkH,MAGKyJ,SAAZ26G,IAAyBA,EAAU,MACtB36G,SAAb46G,IAA0BA,EAAW,MACtB56G,SAAfw6G,IAA4BA,GAAa,GAE7CjkH,KAAKk7E,MAAMxkE,EAAKstG,EAAMC,GAElBG,EAEApkH,KAAK25G,KAAKjjG,EAAM,cAAe0tG,GAE1BC,GAEmB,gBAAbA,KAEPA,EAAWjJ,KAAK34E,MAAM4hF,IAG1BrkH,KAAK6oC,MAAMi0E,QAAQpmG,EAAM,cAAe,GAAI2tG,IAI5C3vG,QAAQukB,KAAK,8FAGVj5B,OAkCXo9E,MAAO,SAAU1mE,EAAKstG,EAAMM,EAAWC,GAqBnC,MAnBkB96G,UAAd66G,IAIIA,EAFAtkH,KAAK4E,KAAK6uC,OAAO4nD,QAEL,aAIA,kBAIL5xF,SAAX86G,IAAwBA,GAAS,GAEjB,gBAATP,KAEPA,GAAQA,IAGLhkH,KAAKujH,cAAc,QAAS7sG,EAAKstG,GAAQhoG,OAAQ,KAAMuoG,OAAQA,EAAQD,UAAWA,KAiC7FxnC,QAAS,SAAUpmE,EAAK2mE,EAAKlsE,EAAMgH,GAmB/B,GAjBY1O,SAAR4zE,IAAqBA,EAAM,MAClB5zE,SAAT0H,IAAsBA,EAAO,MAClB1H,SAAX0O,IAAwBA,EAAS2b,EAAOmpD,QAAQunC,KAE/CnnC,GAAQlsE,IAILksE,EAFAllE,IAAW2b,EAAOmpD,QAAQunC,IAEpB9tG,EAAM,OAINA,EAAM,SAKhBvF,EACJ,CACI,OAAQgH,GAGJ,IAAK2b,GAAOmpD,QAAQunC,IAChB,KAGJ,KAAK1wF,GAAOmpD,QAAQwnC,WAEI,gBAATtzG,KAEPA,EAAOiqG,KAAK34E,MAAMtxB,IAK9BnR,KAAK6oC,MAAMuzE,WAAW1lG,EAAK,KAAMvF,EAAMgH,OAIvCnY,MAAKujH,cAAc,UAAW7sG,EAAK2mE,GAAOllE,OAAQA,GAGtD,OAAOnY,OAmCXqpC,QAAS,SAAU3yB,EAAK2mE,EAAKlsE,EAAMgH,GA0B/B,MAxBY1O,UAAR4zE,IAAqBA,EAAM,MAClB5zE,SAAT0H,IAAsBA,EAAO,MAClB1H,SAAX0O,IAAwBA,EAAS2b,EAAO8gB,QAAQ8vE,kBAE/CrnC,GAAQlsE,IAETksE,EAAM3mE,EAAM,SAIZvF,GAEoB,gBAATA,KAEPA,EAAOiqG,KAAK34E,MAAMtxB,IAGtBnR,KAAK6oC,MAAMszE,eAAezlG,EAAK,KAAMvF,EAAMgH,IAI3CnY,KAAKujH,cAAc,UAAW7sG,EAAK2mE,GAAOllE,OAAQA,IAG/CnY,MA0CXy6G,WAAY,SAAU/jG,EAAKiuG,EAAYC,EAAUnI,EAAWjgC,EAAUC,GAYlE,IAXmBhzE,SAAfk7G,GAA2C,OAAfA,KAE5BA,EAAajuG,EAAM,QAGNjN,SAAbm7G,IAA0BA,EAAW,MACvBn7G,SAAdgzG,IAA2BA,EAAY,MAC1BhzG,SAAb+yE,IAA0BA,EAAW,GACxB/yE,SAAbgzE,IAA0BA,EAAW,GAGrCmoC,EAEA5kH,KAAKujH,cAAc,aAAc7sG,EAAKiuG,GAAcC,SAAUA,EAAUpoC,SAAUA,EAAUC,SAAUA,QAKtG,IAAyB,gBAAdggC,GACX,CACI,GAAI9C,GAAMO,CAEV,KAEIP,EAAOyB,KAAK34E,MAAMg6E,GAEtB,MAAQxhF,GAEJi/E,EAAMl6G,KAAK6kH,SAASpI,GAGxB,IAAKvC,IAAQP,EAET,KAAM,IAAI9wG,OAAM,iDAGpB7I,MAAKujH,cAAc,aAAc7sG,EAAKiuG,GAAcC,SAAU,KAAMnI,UAAW9C,GAAQO,EACnFwC,UAAc/C,EAAO,OAAS,MAAQn9B,SAAUA,EAAUC,SAAUA,IAIhF,MAAOz8E,OA2CX8kH,eAAgB,SAAUpuG,EAAKiuG,EAAYC,EAAUnI,GAEjD,MAAOz8G,MAAKohH,MAAM1qG,EAAKiuG,EAAYC,EAAUnI,EAAW3oF,EAAOu3B,OAAOs3D,2BA4C1EoC,cAAe,SAAUruG,EAAKiuG,EAAYC,EAAUnI,GAEhD,MAAOz8G,MAAKohH,MAAM1qG,EAAKiuG,EAAYC,EAAUnI,EAAW3oF,EAAOu3B,OAAOu3D,0BA4C1EoC,SAAU,SAAUtuG,EAAKiuG,EAAYC,EAAUnI,GAU3C,MARiBhzG,UAAbm7G,IAA0BA,EAAW,MACvBn7G,SAAdgzG,IAA2BA,EAAY,MAEtCmI,GAAanI,IAEdmI,EAAWluG,EAAM,QAGd1W,KAAKohH,MAAM1qG,EAAKiuG,EAAYC,EAAUnI,EAAW3oF,EAAOu3B,OAAOgyD,6BA2C1E+D,MAAO,SAAU1qG,EAAKiuG,EAAYC,EAAUnI,EAAWtkG,GAwBnD,IAtBmB1O,SAAfk7G,GAA2C,OAAfA,KAE5BA,EAAajuG,EAAM,QAGNjN,SAAbm7G,IAA0BA,EAAW,MACvBn7G,SAAdgzG,IAA2BA,EAAY,MAC5BhzG,SAAX0O,IAAwBA,EAAS2b,EAAOu3B,OAAOs3D,0BAE9CiC,GAAanI,IAIVmI,EAFAzsG,IAAW2b,EAAOu3B,OAAOgyD,2BAEd3mG,EAAM,OAINA,EAAM,SAKrBkuG,EAEA5kH,KAAKujH,cAAc,eAAgB7sG,EAAKiuG,GAAcC,SAAUA,EAAUzsG,OAAQA,QAGtF,CACI,OAAQA,GAGJ,IAAK2b,GAAOu3B,OAAOs3D,yBAEU,gBAAdlG,KAEPA,EAAYrB,KAAK34E,MAAMg6E,GAE3B,MAGJ,KAAK3oF,GAAOu3B,OAAOgyD,2BAEf,GAAyB,gBAAdZ,GACX,CACI,GAAIvC,GAAMl6G,KAAK6kH,SAASpI,EAExB,KAAKvC,EAED,KAAM,IAAIrxG,OAAM,iDAGpB4zG,GAAYvC,GAKxBl6G,KAAKujH,cAAc,eAAgB7sG,EAAKiuG,GAAcC,SAAU,KAAMnI,UAAWA,EAAWtkG,OAAQA,IAIxG,MAAOnY,OAiBXilH,cAAe,SAAUtsE,EAAU3M,GAE/BhsC,KAAKkiH,qBAEL,KACIvpE,EAAS7yC,KAAKkmC,GAAmBhsC,KAAMA,MACzC,QACEA,KAAKkiH,sBAGT,MAAOliH,OAcXklH,aAAc,SAAUnuG,EAAML,GAE1B,GAAIyuG,GAAQnlH,KAAKqjH,SAAStsG,EAAML,EAOhC,OALIyuG,KAEAA,EAAM1qB,KAAKipB,WAAY,GAGpB1jH,MAaXolH,WAAY,SAAUruG,EAAML,GAExB,GAAIyuG,GAAQnlH,KAAKqjH,SAAStsG,EAAML,EAE5ByuG,KAEKA,EAAMhC,QAAWgC,EAAM/B,SAExBpjH,KAAKmiH,UAAUv5G,OAAOu8G,EAAMz8G,MAAO,KAY/CmkC,UAAW,WAEP7sC,KAAKmiH,UAAUz+G,OAAS,EACxB1D,KAAKoiH,aAAa1+G,OAAS,GAS/B0H,MAAO,WAECpL,KAAKshH,YAKTthH,KAAKiM,WAAY,EACjBjM,KAAKshH,WAAY,EAEjBthH,KAAKqlH,iBAELrlH,KAAKslH,qBAiBTA,iBAAkB,WAEd,IAAKtlH,KAAKshH,UAIN,MAFA5sG,SAAQukB,KAAK,uDACbj5B,MAAKulH,iBAAgB,EAKzB,KAAK,GAAI9hH,GAAI,EAAGA,EAAIzD,KAAKoiH,aAAa1+G,OAAQD,IAC9C,CACI,GAAIg3F,GAAOz6F,KAAKoiH,aAAa3+G,IAEzBg3F,EAAK0oB,QAAU1oB,EAAKsD,SAEpB/9F,KAAKoiH,aAAax5G,OAAOnF,EAAG,GAC5BA,IAEAg3F,EAAK2oB,SAAU,EACf3oB,EAAK+qB,WAAa,KAClB/qB,EAAKgrB,cAAgB,KAEjBhrB,EAAKsD,OAEL/9F,KAAK6hH,YAAYp1E,SAASguD,EAAK/jF,IAAK+jF,GAGtB,aAAdA,EAAK1jF,MAEL/W,KAAK0iH,mBACL1iH,KAAK4hH,eAAen1E,SAASzsC,KAAK0lH,SAAUjrB,EAAK/jF,KAAM+jF,EAAKsD,MAAO/9F,KAAK0iH,iBAAkB1iH,KAAKwiH,kBAE5E,aAAd/nB,EAAK1jF,MAAuB0jF,EAAKsD,QAGtC/9F,KAAKyiH,mBACLziH,KAAK0hH,eAAej1E,SAASguD,EAAK/jF,KAAM+jF,EAAKsD,MAAO/9F,KAAKyiH,iBAAkBziH,KAAKuiH,mBAW5F,IAAK,GAJDoD,IAAY,EAEZC,EAAgB5lH,KAAKgiH,eAAiBluF,EAAOnzB,KAAKsgC,MAAMjhC,KAAKiiH,qBAAsB,EAAG,IAAM,EAEvFx+G,EAAIzD,KAAKqiH,gBAAiB5+G,EAAIzD,KAAKmiH,UAAUz+G,OAAQD,IAC9D,CACI,GAAIg3F,GAAOz6F,KAAKmiH,UAAU1+G,EAuD1B,IApDkB,aAAdg3F,EAAK1jF,OAAwB0jF,EAAKsD,OAAStD,EAAK0oB,QAAU1/G,IAAMzD,KAAKqiH,kBAGrEriH,KAAK6lH,YAAYprB,GAEjBz6F,KAAKyiH,mBACLziH,KAAK0hH,eAAej1E,SAASguD,EAAK/jF,KAAM+jF,EAAKsD,MAAO/9F,KAAKyiH,iBAAkBziH,KAAKuiH,kBAGhF9nB,EAAK0oB,QAAU1oB,EAAKsD,MAGhBt6F,IAAMzD,KAAKqiH,kBAEXriH,KAAKqiH,gBAAkB5+G,EAAI,IAGzBg3F,EAAK2oB,SAAWpjH,KAAKoiH,aAAa1+G,OAASkiH,IAG/B,aAAdnrB,EAAK1jF,MAAwB0jF,EAAKtpF,KAS5Bw0G,IAED3lH,KAAKsiH,mBAENtiH,KAAKsiH,kBAAmB,EACxBtiH,KAAKwhH,YAAY/0E,YAGrBzsC,KAAKoiH,aAAa79G,KAAKk2F,GACvBA,EAAK2oB,SAAU,EACfpjH,KAAK2hH,YAAYl1E,SAASzsC,KAAK0lH,SAAUjrB,EAAK/jF,IAAK+jF,EAAKpd,KAExDr9E,KAAK8lH,SAASrrB,KAjBdz6F,KAAKoiH,aAAa79G,KAAKk2F,GACvBA,EAAK2oB,SAAU,EAEfpjH,KAAK8lH,SAASrrB,MAkBjBA,EAAK0oB,QAAU1oB,EAAKipB,YAErBiC,GAAY,GAKZ3lH,KAAKoiH,aAAa1+G,QAAUkiH,GAC3BD,GAAa3lH,KAAKyiH,mBAAqBziH,KAAKuiH,gBAE7C,MAQR,GAJAviH,KAAKqlH,iBAIDrlH,KAAKqiH,iBAAmBriH,KAAKmiH,UAAUz+G,OAEvC1D,KAAKulH,sBAEJ,KAAKvlH,KAAKoiH,aAAa1+G,OAC5B,CAGIgR,QAAQukB,KAAK,6EAEb,IAAImW,GAAQpvC,IAEZynD,YAAW,WACPrY,EAAMm2E,iBAAgB,IACvB,OAYXA,gBAAiB,SAAUQ,GAEnB/lH,KAAKiM,YAKTjM,KAAKiM,WAAY,EACjBjM,KAAKshH,WAAY,EAGZyE,GAAa/lH,KAAKsiH,mBAEnBtiH,KAAKsiH,kBAAmB,EACxBtiH,KAAKwhH,YAAY/0E,YAGrBzsC,KAAKyhH,eAAeh1E,WAEpBzsC,KAAKyc,QAELzc,KAAK4E,KAAK+mC,MAAMiB,iBAapBo5E,cAAe,SAAUvrB,EAAMwrB,GAENx8G,SAAjBw8G,IAA8BA,EAAe,IAEjDxrB,EAAK0oB,QAAS,EACd1oB,EAAKsD,QAAUkoB,EAEXA,IAEAxrB,EAAKwrB,aAAeA,EAEpBvxG,QAAQukB,KAAK,mBAAqBwhE,EAAK1jF,KAAO,IAAM0jF,EAAK/jF,IAAM,MAAauvG,IAIhFjmH,KAAKslH,oBAWTO,YAAa,SAAUhC,GAEnB,GAAIqC,GAAWrC,EAAK1yG,KAAK0yG,EAAKntG,IAE9B,KAAKwvG,EAGD,WADAxxG,SAAQukB,KAAK,mBAAqB4qF,EAAKntG,IAAM,wCAIjD,KAAK,GAAIjT,GAAI,EAAGA,EAAIyiH,EAASxiH,OAAQD,IACrC,CACI,GAAIg3F,GAAOyrB,EAASziH,EAEpB,QAAQg3F,EAAK1jF,MAET,IAAK,QACD/W,KAAKyyB,MAAMgoE,EAAK/jF,IAAK+jF,EAAKpd,IAAKod,EAAK+oB,UACpC,MAEJ,KAAK,OACDxjH,KAAK49C,KAAK68C,EAAK/jF,IAAK+jF,EAAKpd,IAAKod,EAAK+oB,UACnC,MAEJ,KAAK,OACDxjH,KAAK25G,KAAKlf,EAAK/jF,IAAK+jF,EAAKpd,IAAKod,EAAK+oB,UACnC,MAEJ,KAAK,MACDxjH,KAAKk6G,IAAIzf,EAAK/jF,IAAK+jF,EAAKpd,IAAKod,EAAK+oB,UAClC,MAEJ,KAAK,SACDxjH,KAAK8jH,OAAOrpB,EAAK/jF,IAAK+jF,EAAKpd,IAAKod,EAAK9hD,SAAUkrE,EAAK73E,iBAAmBhsC,KACvE,MAEJ,KAAK,SACDA,KAAKw6G,OAAO/f,EAAK/jF,IAAK+jF,EAAKpd,IAAKod,EAAK9hD,SAAUkrE,EAAK73E,iBAAmBhsC,KACvE,MAEJ,KAAK,cACDA,KAAK+jH,YAAYtpB,EAAK/jF,IAAK+jF,EAAKpd,IAAKod,EAAKnB,WAAYmB,EAAKlB,YAAakB,EAAK8e,SAAU9e,EAAK96C,OAAQ86C,EAAK+e,QACzG,MAEJ,KAAK,QACDx5G,KAAKo9E,MAAMqd,EAAK/jF,IAAK+jF,EAAKupB,KAC1B,MAEJ,KAAK,QACDhkH,KAAKk7E,MAAMuf,EAAK/jF,IAAK+jF,EAAKupB,KAAMvpB,EAAKwpB,WACrC,MAEJ,KAAK,cACDjkH,KAAKmkH,YAAY1pB,EAAK/jF,IAAK+jF,EAAKupB,KAAMvpB,EAAK2pB,QAAS3pB,EAAK4pB,SAAU5pB,EAAKwpB,WACxE,MAEJ,KAAK,UACDjkH,KAAK88E,QAAQ2d,EAAK/jF,IAAK+jF,EAAKpd,IAAKod,EAAKtpF,KAAM2iB,EAAOmpD,QAAQwd,EAAKtiF,QAChE,MAEJ,KAAK,UACDnY,KAAKqpC,QAAQoxD,EAAK/jF,IAAK+jF,EAAKpd,IAAKod,EAAKtpF,KAAM2iB,EAAOu3B,OAAOovC,EAAKtiF,QAC/D,MAEJ,KAAK,aACDnY,KAAKy6G,WAAWhgB,EAAK/jF,IAAK+jF,EAAKkqB,WAAYlqB,EAAKmqB,SAAUnqB,EAAKgiB,UAAWhiB,EAAKje,SAAUie,EAAKhe,SAC9F,MAEJ,KAAK,iBACDz8E,KAAK8kH,eAAerqB,EAAK/jF,IAAK+jF,EAAKkqB,WAAYlqB,EAAKmqB,SAAUnqB,EAAKgiB,UACnE,MAEJ,KAAK,gBACDz8G,KAAK+kH,cAActqB,EAAK/jF,IAAK+jF,EAAKkqB,WAAYlqB,EAAKmqB,SAAUnqB,EAAKgiB,UAClE,MAEJ,KAAK,WACDz8G,KAAKglH,SAASvqB,EAAK/jF,IAAK+jF,EAAKkqB,WAAYlqB,EAAKmqB,SAAUnqB,EAAKgiB,UAC7D,MAEJ,KAAK,QACDz8G,KAAKohH,MAAM3mB,EAAK/jF,IAAK+jF,EAAKkqB,WAAYlqB,EAAKmqB,SAAUnqB,EAAKgiB,UAAW3oF,EAAOu3B,OAAOovC,EAAKtiF,QACxF,MAEJ,KAAK,SACDnY,KAAK+L,OAAO0uF,EAAK/jF,IAAK+jF,EAAKpd,IAAKod,EAAK+oB,cAiBrD2C,aAAc,SAAU9oC,EAAKod,GAEzB,MAAKpd,GAKoB,SAArBA,EAAIltE,OAAO,EAAG,IAAsC,OAArBktE,EAAIltE,OAAO,EAAG,GAEtCktE,EAIAr9E,KAAKqhH,QAAU5mB,EAAK1O,KAAO1O,GAT3B,GAuBfyoC,SAAU,SAAUrrB,GAGhB,OAAQA,EAAK1jF,MAET,IAAK,WACD/W,KAAKomH,QAAQ3rB,EAAMz6F,KAAKmmH,aAAa1rB,EAAKpd,IAAKod,GAAO,OAAQz6F,KAAKqmH,aACnE,MAEJ,KAAK,QACL,IAAK,cACL,IAAK,eACL,IAAK,aACDrmH,KAAKsmH,aAAa7rB,EAClB,MAEJ,KAAK,QACDA,EAAKpd,IAAMr9E,KAAKumH,YAAY9rB,EAAKpd,KAE7Bod,EAAKpd,IAGDr9E,KAAK4E,KAAKqkC,MAAMu9E,cAEhBxmH,KAAKomH,QAAQ3rB,EAAMz6F,KAAKmmH,aAAa1rB,EAAKpd,IAAKod,GAAO,cAAez6F,KAAKqmH,cAErErmH,KAAK4E,KAAKqkC,MAAMw9E,eAErBzmH,KAAK0mH,aAAajsB,GAKtBz6F,KAAK2mH,UAAUlsB,EAAM,KAAM,kFAE/B,MAEJ,KAAK,QACDA,EAAKpd,IAAMr9E,KAAK4mH,YAAYnsB,EAAKpd,KAE7Bod,EAAKpd,IAEDod,EAAK8pB,OAELvkH,KAAKomH,QAAQ3rB,EAAMz6F,KAAKmmH,aAAa1rB,EAAKpd,IAAKod,GAAO,cAAez6F,KAAKqmH,cAI1ErmH,KAAK6mH,aAAapsB,GAKtBz6F,KAAK2mH,UAAUlsB,EAAM,KAAM,kFAE/B,MAEJ,KAAK,OAEDz6F,KAAKomH,QAAQ3rB,EAAMz6F,KAAKmmH,aAAa1rB,EAAKpd,IAAKod,GAAO,OAAQz6F,KAAK8mH,iBACnE,MAEJ,KAAK,MAED9mH,KAAKomH,QAAQ3rB,EAAMz6F,KAAKmmH,aAAa1rB,EAAKpd,IAAKod,GAAO,OAAQz6F,KAAK+mH,gBACnE,MAEJ,KAAK,UAEGtsB,EAAKtiF,SAAW2b,EAAOmpD,QAAQwnC,WAE/BzkH,KAAKomH,QAAQ3rB,EAAMz6F,KAAKmmH,aAAa1rB,EAAKpd,IAAKod,GAAO,OAAQz6F,KAAK8mH,kBAE9DrsB,EAAKtiF,SAAW2b,EAAOmpD,QAAQunC,IAEpCxkH,KAAKomH,QAAQ3rB,EAAMz6F,KAAKmmH,aAAa1rB,EAAKpd,IAAKod,GAAO,OAAQz6F,KAAKgnH,iBAInEhnH,KAAKgmH,cAAcvrB,EAAM,2BAA6BA,EAAKtiF,OAE/D,MAEJ,KAAK,OACL,IAAK,SACL,IAAK,SACL,IAAK,UACDnY,KAAKomH,QAAQ3rB,EAAMz6F,KAAKmmH,aAAa1rB,EAAKpd,IAAKod,GAAO,OAAQz6F,KAAKqmH,aACnE,MAEJ,KAAK,SACDrmH,KAAKomH,QAAQ3rB,EAAMz6F,KAAKmmH,aAAa1rB,EAAKpd,IAAKod,GAAO,cAAez6F,KAAKqmH,gBAUtFC,aAAc,SAAU7rB,GAEpB,GAAIrrD,GAAQpvC,IAEZy6F,GAAKtpF,KAAO,GAAIP,OAChB6pF,EAAKtpF,KAAKgqB,KAAOs/D,EAAK/jF,IAElB1W,KAAK0yB,cAEL+nE,EAAKtpF,KAAKuhB,YAAc1yB,KAAK0yB,aAGjC+nE,EAAKtpF,KAAK81G,OAAS,WACXxsB,EAAKtpF,KAAK81G,SAEVxsB,EAAKtpF,KAAK81G,OAAS,KACnBxsB,EAAKtpF,KAAK+1G,QAAU,KACpB93E,EAAMi3E,aAAa5rB,KAG3BA,EAAKtpF,KAAK+1G,QAAU,WACZzsB,EAAKtpF,KAAK81G,SAEVxsB,EAAKtpF,KAAK81G,OAAS,KACnBxsB,EAAKtpF,KAAK+1G,QAAU,KACpB93E,EAAMu3E,UAAUlsB,KAIxBA,EAAKtpF,KAAKN,IAAM7Q,KAAKmmH,aAAa1rB,EAAKpd,IAAKod,GAGxCA,EAAKtpF,KAAK4gB,UAAY0oE,EAAKtpF,KAAKtK,OAAS4zF,EAAKtpF,KAAKrK,SAEnD2zF,EAAKtpF,KAAK81G,OAAS,KACnBxsB,EAAKtpF,KAAK+1G,QAAU,KACpBlnH,KAAKqmH,aAAa5rB,KAS1BosB,aAAc,SAAUpsB,GAEpB,GAAIrrD,GAAQpvC,IAEZy6F,GAAKtpF,KAAOX,SAASQ,cAAc,SACnCypF,EAAKtpF,KAAKgqB,KAAOs/D,EAAK/jF,IACtB+jF,EAAKtpF,KAAKg2G,UAAW,EACrB1sB,EAAKtpF,KAAKi2G,UAAW,CAErB,IAAIC,GAAiB,WAEjB5sB,EAAKtpF,KAAKojC,oBAAoBkmD,EAAK6pB,UAAW+C,GAAgB,GAC9D5sB,EAAKtpF,KAAK+1G,QAAU,KACpBzsB,EAAKtpF,KAAKm2G,SAAU,EACpBxzF,EAAOyB,MAAM6Z,EAAMxqC,KAAKgT,IAAImxB,KAAKs9E,aAAa5rB,GAIlDA,GAAKtpF,KAAK+1G,QAAU,WAChBzsB,EAAKtpF,KAAKojC,oBAAoBkmD,EAAK6pB,UAAW+C,GAAgB,GAC9D5sB,EAAKtpF,KAAK+1G,QAAU,KACpBzsB,EAAKtpF,KAAKm2G,SAAU,EACpBl4E,EAAMu3E,UAAUlsB,IAGpBA,EAAKtpF,KAAKiiC,iBAAiBqnD,EAAK6pB,UAAW+C,GAAgB,GAE3D5sB,EAAKtpF,KAAKN,IAAM7Q,KAAKmmH,aAAa1rB,EAAKpd,IAAKod,GAC5CA,EAAKtpF,KAAK43B,QAQd29E,aAAc,SAAUjsB,GAEpB,GAAIrrD,GAAQpvC,IAEZ,IAAIA,KAAK4E,KAAKqkC,MAAMgzE,YAGhBxhB,EAAKtpF,KAAO,GAAIo2G,OAChB9sB,EAAKtpF,KAAKgqB,KAAOs/D,EAAK/jF,IACtB+jF,EAAKtpF,KAAKo4B,QAAU,OACpBkxD,EAAKtpF,KAAKN,IAAM7Q,KAAKmmH,aAAa1rB,EAAKpd,IAAKod,GAE5Cz6F,KAAKqmH,aAAa5rB,OAGtB,CACIA,EAAKtpF,KAAO,GAAIo2G,OAChB9sB,EAAKtpF,KAAKgqB,KAAOs/D,EAAK/jF,GAEtB,IAAI8wG,GAAmB,WACnB/sB,EAAKtpF,KAAKojC,oBAAoB,iBAAkBizE,GAAkB,GAClE/sB,EAAKtpF,KAAK+1G,QAAU,KAEpBpzF,EAAOyB,MAAM6Z,EAAMxqC,KAAKgT,IAAImxB,KAAKs9E,aAAa5rB,GAElDA,GAAKtpF,KAAK+1G,QAAU,WAChBzsB,EAAKtpF,KAAKojC,oBAAoB,iBAAkBizE,GAAkB,GAClE/sB,EAAKtpF,KAAK+1G,QAAU,KACpB93E,EAAMu3E,UAAUlsB,IAGpBA,EAAKtpF,KAAKo4B,QAAU,OACpBkxD,EAAKtpF,KAAKN,IAAM7Q,KAAKmmH,aAAa1rB,EAAKpd,IAAKod,GAC5CA,EAAKtpF,KAAKiiC,iBAAiB,iBAAkBo0E,GAAkB,GAC/D/sB,EAAKtpF,KAAK43B,SAkBlBq9E,QAAS,SAAU3rB,EAAMpd,EAAKtmE,EAAMkwG,EAAQC,GAExC,GAAIlnH,KAAK8hH,mBAAqBrtG,OAAOgzG,eAGjC,WADAznH,MAAK0nH,eAAejtB,EAAMpd,EAAKtmE,EAAMkwG,EAAQC,EAIjD,IAAIS,GAAM,GAAIC,eACdD,GAAIE,KAAK,MAAOxqC,GAAK,GACrBsqC,EAAIG,aAAe/wG,EAEnBmwG,EAAUA,GAAWlnH,KAAK2mH,SAE1B,IAAIv3E,GAAQpvC,IAEZ2nH,GAAIV,OAAS,WAET,IAEI,MAAOA,GAAOnhH,KAAKspC,EAAOqrD,EAAMktB,GAElC,MAAO1sF,GAKAmU,EAAMnjC,UAMHwI,OAAgB,SAEhBC,QAAQqpF,MAAM9iE,GANlBmU,EAAM42E,cAAcvrB,EAAMx/D,EAAE8sF,SAAW,eAYnDJ,EAAIT,QAAU,WAEV,IAEI,MAAOA,GAAQphH,KAAKspC,EAAOqrD,EAAMktB,GAEnC,MAAO1sF,GAEAmU,EAAMnjC,UAMHwI,OAAgB,SAEhBC,QAAQqpF,MAAM9iE,GANlBmU,EAAM42E,cAAcvrB,EAAMx/D,EAAE8sF,SAAW,eAanDttB,EAAKgrB,cAAgBkC,EACrBltB,EAAK+qB,WAAanoC,EAElBsqC,EAAIK,QAmBRN,eAAgB,SAAUjtB,EAAMpd,EAAKtmE,EAAMkwG,EAAQC,GAG1ClnH,KAAK+hH,4BACJ/hH,KAAK4E,KAAK6uC,OAAO8nD,MAAMv7F,KAAK4E,KAAK6uC,OAAO+nD,WAAa,MAEvDx7F,KAAK+hH,4BAA6B,EAClCrtG,QAAQukB,KAAK,wDAIjB,IAAI0uF,GAAM,GAAIlzG,QAAOgzG,cACrBE,GAAIE,KAAK,MAAOxqC,GAAK,GACrBsqC,EAAIG,aAAe/wG,EAKnB4wG,EAAIM,QAAU,IAEdf,EAAUA,GAAWlnH,KAAK2mH,SAE1B,IAAIv3E,GAAQpvC,IAEZ2nH,GAAIT,QAAU,WACV,IACI,MAAOA,GAAQphH,KAAKspC,EAAOqrD,EAAMktB,GACnC,MAAO1sF,GACLmU,EAAM42E,cAAcvrB,EAAMx/D,EAAE8sF,SAAW,eAI/CJ,EAAIO,UAAY,WACZ,IACI,MAAOhB,GAAQphH,KAAKspC,EAAOqrD,EAAMktB,GACnC,MAAO1sF,GACLmU,EAAM42E,cAAcvrB,EAAMx/D,EAAE8sF,SAAW,eAI/CJ,EAAIQ,WAAa,aAEjBR,EAAIV,OAAS,WACT,IACI,MAAOA,GAAOnhH,KAAKspC,EAAOqrD,EAAMktB;CAClC,MAAO1sF,GACLmU,EAAM42E,cAAcvrB,EAAMx/D,EAAE8sF,SAAW,eAI/CttB,EAAKgrB,cAAgBkC,EACrBltB,EAAK+qB,WAAanoC,EAIlB51B,WAAW,WACPkgE,EAAIK,QACL,IAcPpB,YAAa,SAAU5C,GAEnB,IAAK,GAAIvgH,GAAI,EAAGA,EAAIugH,EAAKtgH,OAAQD,IACjC,CACI,GACI2kH,GADA/qC,EAAM2mC,EAAKvgH,EAGf,IAAI45E,EAAIgrC,IAEJhrC,EAAMA,EAAIgrC,IACVD,EAAY/qC,EAAItmE,SAGpB,CAEI,GAA6B,IAAzBsmE,EAAIl0E,QAAQ,UAA2C,IAAzBk0E,EAAIl0E,QAAQ,SAE1C,MAAOk0E,EAGPA,GAAIl0E,QAAQ,MAAQ,IAEpBk0E,EAAMA,EAAIltE,OAAO,EAAGktE,EAAIl0E,QAAQ,MAGpC,IAAIs6G,GAAYpmC,EAAIltE,QAAQxP,KAAK2+B,IAAI,EAAG+9C,EAAIirC,YAAY,OAASh+G,KAAY,EAE7E89G,GAAY3E,EAAU3jB,cAG1B,GAAI9/F,KAAK4E,KAAK6uC,OAAO4tD,aAAa+mB,GAE9B,MAAOpE,GAAKvgH,GAIpB,MAAO,OAcX8iH,YAAa,SAAUvC,GAEnB,GAAIhkH,KAAK4E,KAAKqkC,MAAMi7E,QAEhB,MAAO,KAGX,KAAK,GAAIzgH,GAAI,EAAGA,EAAIugH,EAAKtgH,OAAQD,IACjC,CACI,GACI8kH,GADAlrC,EAAM2mC,EAAKvgH,EAGf,IAAI45E,EAAIgrC,IAEJhrC,EAAMA,EAAIgrC,IACVE,EAAYlrC,EAAItmE,SAGpB,CAEI,GAA6B,IAAzBsmE,EAAIl0E,QAAQ,UAA2C,IAAzBk0E,EAAIl0E,QAAQ,SAE1C,MAAOk0E,EAGPA,GAAIl0E,QAAQ,MAAQ,IAEpBk0E,EAAMA,EAAIltE,OAAO,EAAGktE,EAAIl0E,QAAQ,MAGpC,IAAIs6G,GAAYpmC,EAAIltE,QAAQxP,KAAK2+B,IAAI,EAAG+9C,EAAIirC,YAAY,OAASh+G,KAAY,EAE7Ei+G,GAAY9E,EAAU3jB,cAG1B,GAAI9/F,KAAK4E,KAAK6uC,OAAO2tD,aAAamnB,GAE9B,MAAOvE,GAAKvgH,GAIpB,MAAO,OAaXkjH,UAAW,SAAUlsB,EAAMktB,EAAKa,GAE5B,GAAInrC,GAAMod,EAAK+qB,YAAcxlH,KAAKmmH,aAAa1rB,EAAKpd,IAAKod,GACrDstB,EAAU,gCAAkC1qC,GAE3CmrC,GAAUb,IAEXa,EAASb,EAAI/V,QAGb4W,IAEAT,EAAUA,EAAU,KAAOS,EAAS,KAGxCxoH,KAAKgmH,cAAcvrB,EAAMstB,IAY7B1B,aAAc,SAAU5rB,EAAMktB,GAE1B,GAAIc,IAAW,CAEf,QAAQhuB,EAAK1jF,MAET,IAAK,WAGD,GAAI5F,GAAOiqG,KAAK34E,MAAMklF,EAAIe,aAC1BjuB,GAAKtpF,KAAOA,KACZ,MAEJ,KAAK,QAEDnR,KAAK6oC,MAAM86C,SAAS8W,EAAK/jF,IAAK+jF,EAAKpd,IAAKod,EAAKtpF,KAC7C,MAEJ,KAAK,cAEDnR,KAAK6oC,MAAMs0E,eAAe1iB,EAAK/jF,IAAK+jF,EAAKpd,IAAKod,EAAKtpF,KAAMspF,EAAKnB,WAAYmB,EAAKlB,YAAakB,EAAK8e,SAAU9e,EAAK96C,OAAQ86C,EAAK+e,QAC7H,MAEJ,KAAK,eAED,GAAqB,MAAjB/e,EAAKmqB,SAEL5kH,KAAK6oC,MAAMu0E,gBAAgB3iB,EAAK/jF,IAAK+jF,EAAKpd,IAAKod,EAAKtpF,KAAMspF,EAAKgiB,UAAWhiB,EAAKtiF,YAO/E,IAFAswG,GAAW,EAEPhuB,EAAKtiF,QAAU2b,EAAOu3B,OAAOs3D,0BAA4BloB,EAAKtiF,QAAU2b,EAAOu3B,OAAOu3D,wBAEtF5iH,KAAKomH,QAAQ3rB,EAAMz6F,KAAKmmH,aAAa1rB,EAAKmqB,SAAUnqB,GAAO,OAAQz6F,KAAK8mH,sBAEvE,CAAA,GAAIrsB,EAAKtiF,QAAU2b,EAAOu3B,OAAOgyD,2BAMlC,KAAM,IAAIx0G,OAAM,gDAAkD4xF,EAAKtiF,OAJvEnY,MAAKomH,QAAQ3rB,EAAMz6F,KAAKmmH,aAAa1rB,EAAKmqB,SAAUnqB,GAAO,OAAQz6F,KAAK+mH,iBAOhF,KAEJ,KAAK,aAEItsB,EAAKmqB,UAON6D,GAAW,EACXzoH,KAAKomH,QAAQ3rB,EAAMz6F,KAAKmmH,aAAa1rB,EAAKmqB,SAAUnqB,GAAO,OAAQ,SAAUA,EAAMktB,GAC/E,GAAIhO,EAEJ,KAGIA,EAAOyB,KAAK34E,MAAMklF,EAAIe,cAE1B,MAAOztF,IAED0+E,GAEFlf,EAAKiiB,UAAY,OACjB18G,KAAK8mH,iBAAiBrsB,EAAMktB,KAI5BltB,EAAKiiB,UAAY,MACjB18G,KAAK+mH,gBAAgBtsB,EAAMktB,OAxBnC3nH,KAAK6oC,MAAM2zE,cAAc/hB,EAAK/jF,IAAK+jF,EAAKpd,IAAKod,EAAKtpF,KAAMspF,EAAKgiB,UAAWhiB,EAAKiiB,UAAWjiB,EAAKje,SAAUie,EAAKhe,SA4BhH,MAEJ,KAAK,QAED,GAAIge,EAAK8pB,OAEL,IAEI9pB,EAAKtpF,KAAO,GAAIw3G,OAAM,GAAIl0F,YAAWkzF,EAAIiB,YAE7C,MAAO3tF,GAEH,KAAM,IAAIpyB,OAAM,sDAAwD4xF,EAAK/jF,KAIrF1W,KAAK6oC,MAAMm0E,SAASviB,EAAK/jF,IAAK+jF,EAAKpd,IAAKod,EAAKtpF,KAAMspF,EAAK8pB,OACxD,MAEJ,KAAK,QAEGvkH,KAAK4E,KAAKqkC,MAAMu9E,eAEhB/rB,EAAKtpF,KAAOw2G,EAAIiB,SAEhB5oH,KAAK6oC,MAAMgzE,SAASphB,EAAK/jF,IAAK+jF,EAAKpd,IAAKod,EAAKtpF,MAAM,GAAM,GAErDspF,EAAKwpB,YAELjkH,KAAK4E,KAAKqkC,MAAM4/E,OAAOpuB,EAAK/jF,MAKhC1W,KAAK6oC,MAAMgzE,SAASphB,EAAK/jF,IAAK+jF,EAAKpd,IAAKod,EAAKtpF,MAAM,GAAO,EAE9D,MAEJ,KAAK,OACDspF,EAAKtpF,KAAOw2G,EAAIe,aAChB1oH,KAAK6oC,MAAMqzE,QAAQzhB,EAAK/jF,IAAK+jF,EAAKpd,IAAKod,EAAKtpF,KAC5C,MAEJ,KAAK,SACDspF,EAAKtpF,KAAOw2G,EAAIe,aAChB1oH,KAAK6oC,MAAMq0E,UAAUziB,EAAK/jF,IAAK+jF,EAAKpd,IAAKod,EAAKtpF,KAC9C,MAEJ,KAAK,UACD,GAAIA,GAAOiqG,KAAK34E,MAAMklF,EAAIe,aAC1B1oH,MAAK6oC,MAAMszE,eAAe1hB,EAAK/jF,IAAK+jF,EAAKpd,IAAKlsE,EAAMspF,EAAKtiF,OACzD,MAEJ,KAAK,SACDsiF,EAAKtpF,KAAOX,SAASQ,cAAc,UACnCypF,EAAKtpF,KAAK23G,SAAW,aACrBruB,EAAKtpF,KAAK4F,KAAO,kBACjB0jF,EAAKtpF,KAAK43G,OAAQ,EAClBtuB,EAAKtpF,KAAKysC,KAAO+pE,EAAIe,aACrBl4G,SAASw4G,KAAK9gE,YAAYuyC,EAAKtpF,MAC3BspF,EAAK9hD,WAEL8hD,EAAKtpF,KAAOspF,EAAK9hD,SAAS7yC,KAAK20F,EAAKzuD,gBAAiByuD,EAAK/jF,IAAKixG,EAAIe,cAEvE,MAEJ,KAAK,SAGGjuB,EAAKtpF,KAFLspF,EAAK9hD,SAEO8hD,EAAK9hD,SAAS7yC,KAAK20F,EAAKzuD,gBAAiByuD,EAAK/jF,IAAKixG,EAAIiB,UAIvDjB,EAAIiB,SAGpB5oH,KAAK6oC,MAAMyzE,UAAU7hB,EAAK/jF,IAAK+jF,EAAKtpF,MAKxCs3G,GAEAzoH,KAAKgmH,cAAcvrB,IAa3BqsB,iBAAkB,SAAUrsB,EAAMktB,GAE9B,GAAIx2G,GAAOiqG,KAAK34E,MAAMklF,EAAIe,aAER,aAAdjuB,EAAK1jF,KAEL/W,KAAK6oC,MAAMuzE,WAAW3hB,EAAK/jF,IAAK+jF,EAAKpd,IAAKlsE,EAAMspF,EAAKtiF,QAElC,eAAdsiF,EAAK1jF,KAEV/W,KAAK6oC,MAAM2zE,cAAc/hB,EAAK/jF,IAAK+jF,EAAKpd,IAAKod,EAAKtpF,KAAMA,EAAMspF,EAAKiiB,UAAWjiB,EAAKje,SAAUie,EAAKhe,UAE/E,SAAdge,EAAK1jF,KAEV/W,KAAK6oC,MAAMi0E,QAAQriB,EAAK/jF,IAAK+jF,EAAKpd,IAAKlsE,GAIvCnR,KAAK6oC,MAAMu0E,gBAAgB3iB,EAAK/jF,IAAK+jF,EAAKpd,IAAKod,EAAKtpF,KAAMA,EAAMspF,EAAKtiF,QAGzEnY,KAAKgmH,cAAcvrB,IAWvBusB,gBAAiB,SAAUvsB,EAAMktB,GAE7B,GAAIx2G,GAAOw2G,EAAIe,YAEf1oH,MAAK6oC,MAAMuzE,WAAW3hB,EAAK/jF,IAAK+jF,EAAKpd,IAAKlsE,EAAMspF,EAAKtiF,QAErDnY,KAAKgmH,cAAcvrB,IAYvBssB,gBAAiB,SAAUtsB,EAAMktB,GAG7B,GAAIx2G,GAAOw2G,EAAIe,aACXxO,EAAMl6G,KAAK6kH,SAAS1zG,EAExB,KAAK+oG,EACL,CACI,GAAI4N,GAAeH,EAAIG,cAAgBH,EAAIsB,WAG3C,OAFAv0G,SAAQukB,KAAK,mBAAqBwhE,EAAK/jF,IAAM,kBAAoBoxG,EAAe,SAChF9nH,MAAKgmH,cAAcvrB,EAAM,eAIX,eAAdA,EAAK1jF,KAEL/W,KAAK6oC,MAAM2zE,cAAc/hB,EAAK/jF,IAAK+jF,EAAKpd,IAAKod,EAAKtpF,KAAM+oG,EAAKzf,EAAKiiB,UAAWjiB,EAAKje,SAAUie,EAAKhe,UAE9E,iBAAdge,EAAK1jF,KAEV/W,KAAK6oC,MAAMu0E,gBAAgB3iB,EAAK/jF,IAAK+jF,EAAKpd,IAAKod,EAAKtpF,KAAM+oG,EAAKzf,EAAKtiF,QAEjD,QAAdsiF,EAAK1jF,MAEV/W,KAAK6oC,MAAMk0E,OAAOtiB,EAAK/jF,IAAK+jF,EAAKpd,IAAK68B,GAG1Cl6G,KAAKgmH,cAAcvrB,IAYvBoqB,SAAU,SAAU1zG,GAEhB,GAAI+oG,EAEJ,KAEI,GAAIzlG,OAAkB,UACtB,CACI,GAAIy0G,GAAY,GAAIC,UACpBjP,GAAMgP,EAAUE,gBAAgBj4G,EAAM,gBAItC+oG,GAAM,GAAImP,eAAc,oBAExBnP,EAAIoP,MAAQ,QACZpP,EAAIqP,QAAQp4G,GAGpB,MAAO8pB,GAEHi/E,EAAM,KAGV,MAAKA,IAAQA,EAAIz0D,kBAAmBy0D,EAAIC,qBAAqB,eAAez2G,OAMjEw2G,EAJA,MAiBfmL,eAAgB,WAERrlH,KAAKuhH,gBAEgC,IAAjCvhH,KAAKuhH,cAAc77B,UAEnB1lF,KAAKuhH,cAAc/vF,KAAK3qB,MAAQlG,KAAKq3B,MAAOh4B,KAAKuhH,cAAc16G,MAAQ,IAAO7G,KAAK0lH,UAInF1lH,KAAKuhH,cAAc/vF,KAAK1qB,OAASnG,KAAKq3B,MAAOh4B,KAAKuhH,cAAcz6G,OAAS,IAAO9G,KAAK0lH,UAGrF1lH,KAAKuhH,cAAc53F,OAEnB3pB,KAAKuhH,cAAc53F,OAAOurD,aAK1Bl1E,KAAKuhH,cAAgB,OAajCiI,iBAAkB,WAEd,MAAOxpH,MAAK0iH,kBAWhBh2E,iBAAkB,WAEd,MAAO1sC,MAAKwiH,gBAAkBxiH,KAAK0iH,kBAWvC+G,iBAAkB,WAEd,MAAOzpH,MAAKuiH,iBAWhB51E,iBAAkB,WAEd,MAAO3sC,MAAKuiH,gBAAkBviH,KAAKyiH,mBAe3C7+G,OAAOC,eAAeiwB,EAAOu3B,OAAOhoD,UAAW,iBAE3CS,IAAK,WACD,GAAI4hH,GAAY1lH,KAAK0iH,iBAAmB1iH,KAAKwiH,gBAAmB,GAChE,OAAO1uF,GAAOnzB,KAAKsgC,MAAMykF,GAAY,EAAG,EAAG,QAWnD9hH,OAAOC,eAAeiwB,EAAOu3B,OAAOhoD,UAAW,YAE3CS,IAAK,WACD,MAAOnD,MAAKi8B,MAAM58B,KAAK0pH,kBAK/B51F,EAAOu3B,OAAOhoD,UAAUC,YAAcwwB,EAAOu3B,OAa7Cv3B,EAAO6oF,cAYHlC,WAAY,SAAUP,EAAKluG,EAAawwE,EAAUC,GAE9C,MAAOz8E,MAAK68G,cAAc3C,EAAKluG,EAAawwE,EAAUC,IAc1DogC,cAAe,SAAU3C,EAAKluG,EAAawwE,EAAUC,GAEjD,GAAItrE,MACAw4G,EAAOzP,EAAIC,qBAAqB,QAAQ,GACxCyP,EAAS1P,EAAIC,qBAAqB,UAAU,EAEhDhpG,GAAKgrE,KAAOwtC,EAAKE,aAAa,QAC9B14G,EAAKwX,KAAO0R,SAASsvF,EAAKE,aAAa,QAAS,IAChD14G,EAAKs+E,WAAap1D,SAASuvF,EAAOC,aAAa,cAAe,IAAMptC,EACpEtrE,EAAKmrE,QAIL,KAAK,GAFDwtC,GAAU5P,EAAIC,qBAAqB,QAE9B12G,EAAI,EAAGA,EAAIqmH,EAAQpmH,OAAQD,IACpC,CACI,GAAI0pE,GAAW9yC,SAASyvF,EAAQrmH,GAAGomH,aAAa,MAAO,GAEvD14G,GAAKmrE,MAAMnP,IACPznE,EAAG20B,SAASyvF,EAAQrmH,GAAGomH,aAAa,KAAM,IAC1ClkH,EAAG00B,SAASyvF,EAAQrmH,GAAGomH,aAAa,KAAM,IAC1ChjH,MAAOwzB,SAASyvF,EAAQrmH,GAAGomH,aAAa,SAAU,IAClD/iH,OAAQuzB,SAASyvF,EAAQrmH,GAAGomH,aAAa,UAAW,IACpDntC,QAASriD,SAASyvF,EAAQrmH,GAAGomH,aAAa,WAAY,IACtDltC,QAAStiD,SAASyvF,EAAQrmH,GAAGomH,aAAa,WAAY,IACtD32B,SAAU74D,SAASyvF,EAAQrmH,GAAGomH,aAAa,YAAa,IAAMrtC,EAC9DyW,YAIR,GAAI82B,GAAW7P,EAAIC,qBAAqB,UAExC,KAAK12G,EAAI,EAAGA,EAAIsmH,EAASrmH,OAAQD,IACjC,CACI,GAAIg3D,GAAQpgC,SAAS0vF,EAAStmH,GAAGomH,aAAa,SAAU,IACpDG,EAAS3vF,SAAS0vF,EAAStmH,GAAGomH,aAAa,UAAW,IACtDvxE,EAASje,SAAS0vF,EAAStmH,GAAGomH,aAAa,UAAW,GAE1D14G,GAAKmrE,MAAM0tC,GAAQ/2B,QAAQx4B,GAASniB,EAGxC,MAAOt4C,MAAKiqH,mBAAmBj+G,EAAamF,IAchDyrG,eAAgB,SAAUjD,EAAM3tG,EAAawwE,EAAUC,GAEnD,GAAItrE,IACAgrE,KAAMw9B,EAAKx9B,KAAKwtC,KAAKO,MACrBvhG,KAAM0R,SAASs/E,EAAKx9B,KAAKwtC,KAAK9mC,MAAO,IACrC4M,WAAYp1D,SAASs/E,EAAKx9B,KAAKytC,OAAOO,YAAa,IAAM1tC,EACzDH,SAqCJ,OAlCAq9B,GAAKx9B,KAAKG,MAAM,QAAQ1jD,QAEpB,SAAmB03D,GAEf,GAAInjB,GAAW9yC,SAASi2D,EAAO85B,IAAK,GAEpCj5G,GAAKmrE,MAAMnP,IACPznE,EAAG20B,SAASi2D,EAAOrgC,GAAI,IACvBtqD,EAAG00B,SAASi2D,EAAOpgC,GAAI,IACvBrpD,MAAOwzB,SAASi2D,EAAOjoF,OAAQ,IAC/BvB,OAAQuzB,SAASi2D,EAAOhoF,QAAS,IACjCo0E,QAASriD,SAASi2D,EAAO+5B,SAAU,IACnC1tC,QAAStiD,SAASi2D,EAAOg6B,SAAU,IACnCp3B,SAAU74D,SAASi2D,EAAOi6B,UAAW,IAAM/tC,EAC3CyW,cAMR0mB,EAAKx9B,KAAK4tC,UAAYpQ,EAAKx9B,KAAK4tC,SAAS92B,SAEzC0mB,EAAKx9B,KAAK4tC,SAAS92B,QAAQr6D,QAEvB,SAAsBq6D,GAElB9hF,EAAKmrE,MAAM2W,EAAQu3B,SAASv3B,QAAQA,EAAQw3B,QAAUpwF,SAAS44D,EAAQy3B,QAAS,MAQrF1qH,KAAKiqH,mBAAmBj+G,EAAamF,IAahD84G,mBAAoB,SAAUj+G,EAAa2+G,GAcvC,MAZA/mH,QAAOg4B,KAAK+uF,EAAeruC,OAAO1jD,QAE9B,SAAoBu0C,GAEhB,GAAImjB,GAASq6B,EAAeruC,MAAMnP,EAElCmjB,GAAOxoF,QAAU,GAAIhI,MAAKyL,QAAQS,EAAa,GAAI8nB,GAAO9wB,UAAUstF,EAAO5qF,EAAG4qF,EAAO3qF,EAAG2qF,EAAOzpF,MAAOypF,EAAOxpF,WAM9G6jH,IAqBf72F,EAAO8sD,YAAc,SAAUh8E,EAAM8R,GAMjC1W,KAAK4E,KAAOA,EAMZ5E,KAAK0W,IAAMA,EAMX1W,KAAKsyC,OAAStyC,KAAK4E,KAAKikC,MAAM22E,QAAQ9oG,EAAM,eAM5C1W,KAAK4qH,YAAc,KAOnB5qH,KAAKonH,UAAW,EAMhBpnH,KAAK6qH,SAEL,KAAK,GAAItlD,KAAKvlE,MAAKsyC,OAAOw4E,UAC1B,CACI,GAAItqC,GAASxgF,KAAKsyC,OAAOw4E,UAAUvlD,GAC/Bt8B,EAAQjpC,KAAK4E,KAAKg8B,IAAIqI,MAAMjpC,KAAK0W,IAErCuyB,GAAM8hF,UAAUxlD,EAAGib,EAAOp1E,MAAQo1E,EAAO12E,IAAM02E,EAAOp1E,MAAQ,KAAMo1E,EAAOlN,MAE3EtzE,KAAK6qH,OAAOtlD,GAAKt8B,EAGjBjpC,KAAKsyC,OAAO80E,WAEZpnH,KAAK4qH,YAAc5qH,KAAKsyC,OAAO80E,SAC/BpnH,KAAKozE,KAAKpzE,KAAK4qH,aACf5qH,KAAKonH,SAAWpnH,KAAK6qH,OAAO7qH,KAAK4qH,eAKzC92F,EAAO8sD,YAAYv9E,WAUf+vE,KAAM,SAAUoN,EAAQz7C,GAIpB,MAFet7B,UAAXs7B,IAAwBA,EAAS,GAE9B/kC,KAAK6qH,OAAOrqC,GAAQpN,KAAKoN,EAAQ,KAAMz7C,IAUlD/5B,KAAM,SAAUw1E,GAEZ,GAAKA,EASDxgF,KAAK6qH,OAAOrqC,GAAQx1E,WAPpB,KAAK,GAAI0L,KAAO1W,MAAK6qH,OAEjB7qH,KAAK6qH,OAAOn0G,GAAK1L,QAiB7BlH,IAAK,SAAS08E,GAEV,MAAOxgF,MAAK6qH,OAAOrqC,KAM3B1sD,EAAO8sD,YAAYv9E,UAAUC,YAAcwwB,EAAO8sD,YAkBlD9sD,EAAO6sD,MAAQ,SAAU/7E,EAAM8R,EAAKquB,EAAQuuC,EAAM/O,GAE/B96D,SAAXs7B,IAAwBA,EAAS,GACxBt7B,SAAT6pE,IAAsBA,GAAO,GACjB7pE,SAAZ86D,IAAyBA,EAAU3/D,EAAKqkC,MAAM+hF,iBAMlDhrH,KAAK4E,KAAOA,EAKZ5E,KAAKm7B,KAAOzkB,EAKZ1W,KAAK0W,IAAMA,EAKX1W,KAAKszE,KAAOA,EAKZtzE,KAAK+kC,OAASA,EAKd/kC,KAAKirH,WAKLjrH,KAAKoN,QAAU,KAKfpN,KAAKonH,UAAW,EAKhBpnH,KAAKkrH,cAAgB,EAMrBlrH,KAAK2xG,UAAY,EAKjB3xG,KAAKmrH,YAAc,EAKnBnrH,KAAK+2D,SAAW,EAKhB/2D,KAAKorH,WAAa,EAKlBprH,KAAKyB,SAAW,EAKhBzB,KAAKqrH,SAAW,EAMhBrrH,KAAK2pC,QAAS,EAKd3pC,KAAKsrH,eAAiB,EAKtBtrH,KAAKurH,WAAa,EAMlBvrH,KAAK42G,WAAY,EAMjB52G,KAAKwrH,cAAgB,GAKrBxrH,KAAKyrH,UAAY,KAMjBzrH,KAAK0rH,iBAAkB,EAMvB1rH,KAAK2rH,UAAW,EAMhB3rH,KAAK4rH,eAAgB,EAMrB5rH,KAAKwmH,cAAgBxmH,KAAK4E,KAAKqkC,MAAMu9E,cAKrCxmH,KAAKymH,cAAgBzmH,KAAK4E,KAAKqkC,MAAMw9E,cAKrCzmH,KAAK6rH,aAAe,KAKpB7rH,KAAK8rH,eAAiB,KAKtB9rH,KAAK+rH,SAAW,KAMhB/rH,KAAKgsH,OAAS,KAEVhsH,KAAKwmH,eAELxmH,KAAKoN,QAAUpN,KAAK4E,KAAKqkC,MAAM77B,QAC/BpN,KAAK8rH,eAAiB9rH,KAAK4E,KAAKqkC,MAAMgjF,WAIlCjsH,KAAK+rH,SAFuBtiH,SAA5BzJ,KAAKoN,QAAQ8+G,WAEGlsH,KAAKoN,QAAQ++G,iBAIbnsH,KAAKoN,QAAQ8+G,aAGjClsH,KAAK+rH,SAASK,KAAKnoH,MAAQ8gC,EAAS/kC,KAAK4E,KAAKqkC,MAAMlE,OAEhDw/B,GAEAvkE,KAAK+rH,SAASxnD,QAAQvkE,KAAK8rH,iBAG1B9rH,KAAKymH,gBAENzmH,KAAK4E,KAAKikC,MAAM00E,SAAS7mG,IAAQ1W,KAAK4E,KAAKikC,MAAM+0E,aAAalnG,IAE9D1W,KAAKgsH,OAAShsH,KAAK4E,KAAKikC,MAAMk2E,aAAaroG,GAC3C1W,KAAKkrH,cAAgB,EAEjBlrH,KAAKgsH,OAAOj1D,WAEZ/2D,KAAKkrH,cAAgBlrH,KAAKgsH,OAAOj1D,WAKrC/2D,KAAK4E,KAAKikC,MAAMgyE,cAAcj6E,IAAI5gC,KAAKqsH,iBAAkBrsH,OAOjEA,KAAKssH,UAAY,GAAIx4F,GAAO0W,OAK5BxqC,KAAKusH,OAAS,GAAIz4F,GAAO0W,OAKzBxqC,KAAKurC,QAAU,GAAIzX,GAAO0W,OAK1BxqC,KAAKyrC,SAAW,GAAI3X,GAAO0W,OAK3BxqC,KAAKowG,OAAS,GAAIt8E,GAAO0W,OAKzBxqC,KAAKwsH,OAAS,GAAI14F,GAAO0W,OAKzBxqC,KAAKysH,OAAS,GAAI34F,GAAO0W,OAKzBxqC,KAAK0sH,iBAAmB,GAAI54F,GAAO0W,OAKnCxqC,KAAK2sH,eAAiB,GAAI74F,GAAO0W,OAMjCxqC,KAAK4sH,QAAU7nF,EAMf/kC,KAAK6sH,QAAU,KAMf7sH,KAAK8sH,QAAS,EAMd9sH,KAAK+sH,YAAc,EAMnB/sH,KAAKgtH,cAAgB,EAMrBhtH,KAAKitH,YAAc,EAMnBjtH,KAAKktH,YAAc,EAMnBltH,KAAKmtH,UAAY,EAMjBntH,KAAKkqD,SAAU,EAMflqD,KAAKotH,2BAA4B,GAIrCt5F,EAAO6sD,MAAMt9E,WAQTgpH,iBAAkB,SAAU31G,GAEpBA,IAAQ1W,KAAK0W,MAEb1W,KAAKgsH,OAAShsH,KAAK4E,KAAKikC,MAAMk2E,aAAa/+G,KAAK0W,KAChD1W,KAAKkrH,cAAgBlrH,KAAKgsH,OAAOj1D,WAgBzCg0D,UAAW,SAAU5vF,EAAM/vB,EAAO2rD,EAAUhyB,EAAQuuC,IAEjC7pE,SAAXs7B,GAAmC,OAAXA,KAAmBA,EAAS,GAC3Ct7B,SAAT6pE,IAAsBA,GAAO,GAEjCtzE,KAAKirH,QAAQ9vF,IACTA,KAAMA,EACN/vB,MAAOA,EACPJ,KAAMI,EAAQ2rD,EACdhyB,OAAQA,EACRgyB,SAAUA,EACVq0D,WAAuB,IAAXr0D,EACZuc,KAAMA,IAUd+5C,aAAc,SAAUlyF,SAEbn7B,MAAKirH,QAAQ9vF,IAWxBmyF,eAAgB,WAEZttH,KAAK42G,WAAY,EACjB52G,KAAKgL,QASTs7B,OAAQ,WAEAtmC,KAAKutH,YAAcvtH,KAAKotH,4BAExBptH,KAAKssH,UAAU7/E,SAASzsC,MACxBA,KAAKotH,2BAA4B,GAGjCptH,KAAK0rH,iBAAmB1rH,KAAK4E,KAAKikC,MAAM+0E,aAAa59G,KAAK0W,OAE1D1W,KAAK0rH,iBAAkB,EACvB1rH,KAAKozE,KAAKpzE,KAAK+sH,YAAa/sH,KAAKgtH,cAAehtH,KAAKitH,YAAajtH,KAAKmtH,YAGvEntH,KAAK42G,YAEL52G,KAAKmrH,YAAcnrH,KAAK4E,KAAKskC,KAAKA,KAAOlpC,KAAK2xG,UAE1C3xG,KAAKmrH,aAAenrH,KAAKorH,aAErBprH,KAAKwmH,cAEDxmH,KAAKszE,MAGLtzE,KAAKowG,OAAO3jE,SAASzsC,MAEM,KAAvBA,KAAKwrH,eAELxrH,KAAKmrH,YAAc,EACnBnrH,KAAK2xG,UAAY3xG,KAAK4E,KAAKskC,KAAKA,OAIhClpC,KAAK0sH,iBAAiBjgF,SAASzsC,KAAKwrH,cAAexrH,MACnDA,KAAKozE,KAAKpzE,KAAKwrH,cAAe,EAAGxrH,KAAK+kC,QAAQ,GAAM,KAM7B,KAAvB/kC,KAAKwrH,eAELxrH,KAAKgL,OAMThL,KAAKszE,MAELtzE,KAAKowG,OAAO3jE,SAASzsC,MACrBA,KAAKozE,KAAKpzE,KAAKwrH,cAAe,EAAGxrH,KAAK+kC,QAAQ,GAAM,IAIpD/kC,KAAKgL,UAczBwiH,SAAU,SAAUzoF,GAEhB/kC,KAAKozE,KAAK,KAAM,EAAGruC,GAAQ,IAe/BquC,KAAM,SAAUoN,EAAQ/+E,EAAUsjC,EAAQuuC,EAAMm6C,GAK5C,IAHehkH,SAAX+2E,GAAwBA,KAAW,GAAoB,OAAXA,KAAmBA,EAAS,IACvD/2E,SAAjBgkH,IAA8BA,GAAe,GAE7CztH,KAAK42G,YAAc52G,KAAK4rH,gBAAkB6B,IAAiBztH,KAAK2rH,SAGhE,MAAO3rH,KAGX,IAAIA,KAAKgsH,QAAUhsH,KAAK42G,YAAc52G,KAAK4rH,gBAAkB5rH,KAAK2rH,UAAY8B,GAE1E,GAAIztH,KAAKwmH,cAWL,GAPIxmH,KAAKgsH,OAAOvnD,WAFZzkE,KAAK6rH,aAEkB7rH,KAAK6rH,aAIL7rH,KAAK+rH,UAGPtiH,SAArBzJ,KAAKgsH,OAAOhhH,KAEZhL,KAAKgsH,OAAO0B,QAAQ,OAIpB,KACI1tH,KAAKgsH,OAAOhhH,KAAK,GAErB,MAAOiwB,QAINj7B,MAAKymH,gBAEVzmH,KAAKgsH,OAAOxgF,QACZxrC,KAAKgsH,OAAOb,YAAc,EAIlC,IAAe,KAAX3qC,GAAiB58E,OAAOg4B,KAAK57B,KAAKirH,SAASvnH,OAAS,EAIpD,MAAO1D,KAGX,IAAe,KAAXwgF,EACJ,CAGI,GAFAxgF,KAAKwrH,cAAgBhrC,GAEjBxgF,KAAKirH,QAAQzqC,GA2Bb,MAAOxgF,KAxBPA,MAAKyB,SAAWzB,KAAKirH,QAAQzqC,GAAQp1E,MACrCpL,KAAK+kC,OAAS/kC,KAAKirH,QAAQzqC,GAAQz7C,OACnC/kC,KAAKszE,KAAOtzE,KAAKirH,QAAQzqC,GAAQlN,KACjCtzE,KAAK+2D,SAAW/2D,KAAKirH,QAAQzqC,GAAQzpB,SACrC/2D,KAAKorH,WAAaprH,KAAKirH,QAAQzqC,GAAQ4qC,WAEjB,mBAAXrmF,KAEP/kC,KAAK+kC,OAASA,GAGE,mBAATuuC,KAEPtzE,KAAKszE,KAAOA,GAGhBtzE,KAAK+sH,YAAcvsC,EACnBxgF,KAAKgtH,cAAgBhtH,KAAKyB,SAC1BzB,KAAKitH,YAAcjtH,KAAK+kC,OACxB/kC,KAAKmtH,UAAYntH,KAAKszE,SAU1B7xE,GAAWA,GAAY,EAERgI,SAAXs7B,IAAwBA,EAAS/kC,KAAK4sH,SAC7BnjH,SAAT6pE,IAAsBA,EAAOtzE,KAAKszE,MAEtCtzE,KAAKyB,SAAWA,EAChBzB,KAAK+kC,OAASA,EACd/kC,KAAKszE,KAAOA,EACZtzE,KAAK+2D,SAAW,EAChB/2D,KAAKorH,WAAa,EAElBprH,KAAK+sH,YAAcvsC,EACnBxgF,KAAKgtH,cAAgBvrH,EACrBzB,KAAKitH,YAAcloF,EACnB/kC,KAAKmtH,UAAY75C,CAuHrB,OApHItzE,MAAKwmH,cAGDxmH,KAAK4E,KAAKikC,MAAM80E,eAAe39G,KAAK0W,MAEpC1W,KAAKgsH,OAAShsH,KAAKoN,QAAQugH,qBAIvB3tH,KAAKgsH,OAAOznD,QAFZvkE,KAAK6rH,aAEe7rH,KAAK6rH,aAIL7rH,KAAK+rH,UAG7B/rH,KAAK6sH,QAAU7sH,KAAK4E,KAAKikC,MAAMk2E,aAAa/+G,KAAK0W,KACjD1W,KAAKgsH,OAAOhwG,OAAShc,KAAK6sH,QAEtB7sH,KAAKszE,MAAmB,KAAXkN,IAEbxgF,KAAKgsH,OAAO14C,MAAO,GAGlBtzE,KAAKszE,MAAmB,KAAXkN,IAEdxgF,KAAKgsH,OAAO4B,QAAU5tH,KAAKstH,eAAep1F,KAAKl4B,OAGnDA,KAAKkrH,cAAgBlrH,KAAKgsH,OAAOhwG,OAAO+6C,SAElB,IAAlB/2D,KAAK+2D,WAEL/2D,KAAK+2D,SAAW/2D,KAAKkrH,cACrBlrH,KAAKorH,WAAazqH,KAAKo3B,KAA0B,IAArB/3B,KAAKkrH,gBAIXzhH,SAAtBzJ,KAAKgsH,OAAO5gH,MAEZpL,KAAKgsH,OAAO6B,YAAY,EAAG7tH,KAAKyB,SAAUzB,KAAK+2D,UAI3C/2D,KAAKszE,MAAmB,KAAXkN,EAEbxgF,KAAKgsH,OAAO5gH,MAAM,EAAG,GAIrBpL,KAAKgsH,OAAO5gH,MAAM,EAAGpL,KAAKyB,SAAUzB,KAAK+2D,UAIjD/2D,KAAK42G,WAAY,EACjB52G,KAAK2xG,UAAY3xG,KAAK4E,KAAKskC,KAAKA,KAChClpC,KAAKmrH,YAAc,EACnBnrH,KAAKqrH,SAAWrrH,KAAK2xG,UAAY3xG,KAAKorH,WACtCprH,KAAKusH,OAAO9/E,SAASzsC,QAIrBA,KAAK0rH,iBAAkB,EAEnB1rH,KAAK4E,KAAKikC,MAAM00E,SAASv9G,KAAK0W,MAAQ1W,KAAK4E,KAAKikC,MAAM00E,SAASv9G,KAAK0W,KAAKslG,cAAe,GAExFh8G,KAAK4E,KAAKqkC,MAAM4/E,OAAO7oH,KAAK0W,IAAK1W,OAMrCA,KAAK4E,KAAKikC,MAAM00E,SAASv9G,KAAK0W,MAAQ1W,KAAK4E,KAAKikC,MAAM00E,SAASv9G,KAAK0W,KAAKm8C,QAEzE7yD,KAAK4E,KAAKikC,MAAMy0E,YAAYt9G,KAAK0W,KACjC1W,KAAK0rH,iBAAkB,GAInB1rH,KAAKgsH,SAAWhsH,KAAK4E,KAAK6uC,OAAO2O,UAAuC,IAA3BpiD,KAAKgsH,OAAOxuB,aAEzDx9F,KAAKgsH,OAAO54C,OAEZpzE,KAAKkrH,cAAgBlrH,KAAKgsH,OAAOj1D,SAEX,IAAlB/2D,KAAK+2D,WAEL/2D,KAAK+2D,SAAW/2D,KAAKkrH,cACrBlrH,KAAKorH,WAAkC,IAArBprH,KAAKkrH,eAG3BlrH,KAAKgsH,OAAOb,YAAcnrH,KAAKyB,SAC/BzB,KAAKgsH,OAAO8B,MAAQ9tH,KAAK8sH,OAIrB9sH,KAAKgsH,OAAOjnF,OAFZ/kC,KAAK8sH,OAEgB,EAIA9sH,KAAK4sH,QAG9B5sH,KAAK42G,WAAY,EACjB52G,KAAK2xG,UAAY3xG,KAAK4E,KAAKskC,KAAKA,KAChClpC,KAAKmrH,YAAc,EACnBnrH,KAAKqrH,SAAWrrH,KAAK2xG,UAAY3xG,KAAKorH,WACtCprH,KAAKusH,OAAO9/E,SAASzsC,OAIrBA,KAAK0rH,iBAAkB,EAK5B1rH,MAaXosC,QAAS,SAAUo0C,EAAQ/+E,EAAUsjC,EAAQuuC,GAEzCkN,EAASA,GAAU,GACnB/+E,EAAWA,GAAY,EACvBsjC,EAASA,GAAU,EACNt7B,SAAT6pE,IAAsBA,GAAO,GAEjCtzE,KAAKozE,KAAKoN,EAAQ/+E,EAAUsjC,EAAQuuC,GAAM,IAS9C9nC,MAAO,WAECxrC,KAAK42G,WAAa52G,KAAKgsH,SAEvBhsH,KAAK2pC,QAAS,EACd3pC,KAAKsrH,eAAiBtrH,KAAKmrH,YAC3BnrH,KAAKurH,WAAavrH,KAAK4E,KAAKskC,KAAKA,KACjClpC,KAAKurC,QAAQkB,SAASzsC,MACtBA,KAAKgL,SAUb0gC,OAAQ,WAEJ,GAAI1rC,KAAK2pC,QAAU3pC,KAAKgsH,OACxB,CACI,GAAIhsH,KAAKwmH,cACT,CACI,GAAI3hH,GAAI7E,KAAKyB,SAAYzB,KAAKsrH,eAAiB,GAE/CtrH,MAAKgsH,OAAShsH,KAAKoN,QAAQugH,qBAC3B3tH,KAAKgsH,OAAOhwG,OAAShc,KAAK6sH,QAItB7sH,KAAKgsH,OAAOznD,QAFZvkE,KAAK6rH,aAEe7rH,KAAK6rH,aAIL7rH,KAAK+rH,UAGzB/rH,KAAKszE,OAELtzE,KAAKgsH,OAAO14C,MAAO,GAGlBtzE,KAAKszE,MAA+B,KAAvBtzE,KAAKwrH,gBAEnBxrH,KAAKgsH,OAAO4B,QAAU5tH,KAAKstH,eAAep1F,KAAKl4B,MAGnD,IAAI+2D,GAAW/2D,KAAK+2D,SAAY/2D,KAAKsrH,eAAiB,GAE5B7hH,UAAtBzJ,KAAKgsH,OAAO5gH,MAEZpL,KAAKgsH,OAAO6B,YAAY,EAAGhpH,EAAGkyD,GAK1B/2D,KAAKszE,MAAQtzE,KAAK4E,KAAK6uC,OAAOgP,OAGS,KAAnCziD,KAAK4E,KAAK6uC,OAAO0nD,cAEjBn7F,KAAKgsH,OAAO5gH,MAAM,GAIlBpL,KAAKgsH,OAAO5gH,MAAM,EAAGvG,GAKzB7E,KAAKgsH,OAAO5gH,MAAM,EAAGvG,EAAGkyD,OAMhC/2D,MAAKgsH,OAAO54C,MAGhBpzE,MAAK42G,WAAY,EACjB52G,KAAK2pC,QAAS,EACd3pC,KAAK2xG,WAAc3xG,KAAK4E,KAAKskC,KAAKA,KAAOlpC,KAAKurH,WAC9CvrH,KAAKyrC,SAASgB,SAASzsC,QAU/BgL,KAAM,WAEF,GAAIhL,KAAK42G,WAAa52G,KAAKgsH,OAEvB,GAAIhsH,KAAKwmH,cAWL,GAPIxmH,KAAKgsH,OAAOvnD,WAFZzkE,KAAK6rH,aAEkB7rH,KAAK6rH,aAIL7rH,KAAK+rH,UAGPtiH,SAArBzJ,KAAKgsH,OAAOhhH,KAEZhL,KAAKgsH,OAAO0B,QAAQ,OAIpB,KACI1tH,KAAKgsH,OAAOhhH,KAAK,GAErB,MAAOiwB,QAMNj7B,MAAKymH,gBAEVzmH,KAAKgsH,OAAOxgF,QACZxrC,KAAKgsH,OAAOb,YAAc,EAIlCnrH,MAAK0rH,iBAAkB,EACvB1rH,KAAK42G,WAAY,CACjB,IAAImX,GAAa/tH,KAAKwrH,aAEK,MAAvBxrH,KAAKwrH,eAELxrH,KAAK0sH,iBAAiBjgF,SAASzsC,KAAKwrH,cAAexrH,MAGvDA,KAAKwrH,cAAgB,GAEE,OAAnBxrH,KAAKyrH,WAELzrH,KAAKyrH,UAAUzgH,OAGdhL,KAAK2pC,QAEN3pC,KAAKwsH,OAAO//E,SAASzsC,KAAM+tH,IAiBnCC,OAAQ,SAAUj3D,EAAUuc,EAAMkN,GAEjB/2E,SAAT6pE,IAAsBA,GAAO,GAClB7pE,SAAX+2E,IAAwBA,EAASxgF,KAAKwrH,eAEtCxrH,KAAK2pC,SAKT3pC,KAAKozE,KAAKoN,EAAQ,EAAG,EAAGlN,GAExBtzE,KAAKiuH,OAAOl3D,EAAU,KAY1Bm3D,QAAS,SAAUn3D,GAEf/2D,KAAKiuH,OAAOl3D,EAAU,IAa1Bk3D,OAAQ,SAAUl3D,EAAUhyB,GAExB,GAAK/kC,KAAK42G,YAAa52G,KAAK2pC,QAAU5E,IAAW/kC,KAAK+kC,OAAtD,CAOA,GAFiBt7B,SAAbstD,IAA0BA,EAAW,KAE1BttD,SAAXs7B,EAGA,WADArwB,SAAQukB,KAAK,4CAIjBj5B,MAAKyrH,UAAYzrH,KAAK4E,KAAKg8B,IAAIo6C,MAAMh7E,MAAM67B,IAAMkJ,OAAQA,GAAUgyB,EAAUjjC,EAAO43E,OAAOK,OAAOC,MAAM,GAExGhsG,KAAKyrH,UAAUlb,WAAW3vE,IAAI5gC,KAAKmuH,aAAcnuH,QAUrDmuH,aAAc,WAEVnuH,KAAK2sH,eAAelgF,SAASzsC,KAAMA,KAAK+kC,QAEpB,IAAhB/kC,KAAK+kC,QAEL/kC,KAAKgL,QAWbzH,QAAS,SAAUwoC,GAEAtiC,SAAXsiC,IAAwBA,GAAS,GAErC/rC,KAAKgL,OAED+gC,EAEA/rC,KAAK4E,KAAKqkC,MAAM8C,OAAO/rC,OAIvBA,KAAKirH,WACLjrH,KAAKoN,QAAU,KACfpN,KAAK6sH,QAAU,KACf7sH,KAAK6rH,aAAe,KAEpB7rH,KAAKssH,UAAUn9E,UACfnvC,KAAKusH,OAAOp9E,UACZnvC,KAAKurC,QAAQ4D,UACbnvC,KAAKyrC,SAAS0D,UACdnvC,KAAKowG,OAAOjhE,UACZnvC,KAAKwsH,OAAOr9E,UACZnvC,KAAKysH,OAAOt9E,UACZnvC,KAAK0sH,iBAAiBv9E,aAOlCrb,EAAO6sD,MAAMt9E,UAAUC,YAAcwwB,EAAO6sD,MAO5C/8E,OAAOC,eAAeiwB,EAAO6sD,MAAMt9E,UAAW,cAE1CS,IAAK,WACD,MAAO9D,MAAK4E,KAAKikC,MAAM00E,SAASv9G,KAAK0W,KAAKslG,cAUlDp4G,OAAOC,eAAeiwB,EAAO6sD,MAAMt9E,UAAW,aAE1CS,IAAK,WACD,MAAO9D,MAAK4E,KAAKikC,MAAM80E,eAAe39G,KAAK0W,QASnD9S,OAAOC,eAAeiwB,EAAO6sD,MAAMt9E,UAAW,QAE1CS,IAAK,WAED,MAAQ9D,MAAK8sH,QAAU9sH,KAAK4E,KAAKqkC,MAAMmlF,MAI3CpqH,IAAK,SAAUC,GAEXA,EAAQA,IAAS,EAEbA,IAAUjE,KAAK8sH,SAKf7oH,GAEAjE,KAAK8sH,QAAS,EACd9sH,KAAKktH,YAAcltH,KAAKitH,YAEpBjtH,KAAKwmH,cAELxmH,KAAK+rH,SAASK,KAAKnoH,MAAQ,EAEtBjE,KAAKymH,eAAiBzmH,KAAKgsH,SAEhChsH,KAAKgsH,OAAOjnF,OAAS,KAKzB/kC,KAAK8sH,QAAS,EAEV9sH,KAAKwmH,cAELxmH,KAAK+rH,SAASK,KAAKnoH,MAAQjE,KAAKktH,YAE3BltH,KAAKymH,eAAiBzmH,KAAKgsH,SAEhChsH,KAAKgsH,OAAOjnF,OAAS/kC,KAAKktH,cAIlCltH,KAAKysH,OAAOhgF,SAASzsC,UAW7B4D,OAAOC,eAAeiwB,EAAO6sD,MAAMt9E,UAAW,UAE1CS,IAAK,WACD,MAAO9D,MAAK4sH,SAGhB5oH,IAAK,SAAUC,GAQX,MALIjE,MAAK4E,KAAK6uC,OAAO4nD,SAAWr7F,KAAKymH,gBAEjCxiH,EAAQjE,KAAK4E,KAAKokC,KAAK/H,MAAMh9B,EAAO,EAAG,IAGvCjE,KAAK8sH,YAEL9sH,KAAKktH,YAAcjpH,IAIvBjE,KAAKitH,YAAchpH,EACnBjE,KAAK4sH,QAAU3oH,OAEXjE,KAAKwmH,cAELxmH,KAAK+rH,SAASK,KAAKnoH,MAAQA,EAEtBjE,KAAKymH,eAAiBzmH,KAAKgsH,SAEhChsH,KAAKgsH,OAAOjnF,OAAS9gC,QA8BjC6vB,EAAO23B,aAAe,SAAU7mD,GAK5B5E,KAAK4E,KAAOA,EAKZ5E,KAAKquH,cAAgB,GAAIv6F,GAAO0W,OAMhCxqC,KAAKsuH,eAAiB,GAAIx6F,GAAO0W,OAMjCxqC,KAAKysH,OAAS,GAAI34F,GAAO0W,OAMzBxqC,KAAKuuH,SAAW,GAAIz6F,GAAO0W,OAM3BxqC,KAAKoN,QAAU,KAMfpN,KAAKwmH,eAAgB,EAMrBxmH,KAAKymH,eAAgB,EAMrBzmH,KAAKkkH,SAAU,EAMflkH,KAAKgrH,iBAAkB,EAMvBhrH,KAAKi8G,aAAc,EAMnBj8G,KAAKwuH,SAAW,GAOhBxuH,KAAKyuH,YAAa,EAOlBzuH,KAAK8sH,QAAS,EAOd9sH,KAAK0uH,cAAgB,KAOrB1uH,KAAK4sH,QAAU,EAMf5sH,KAAK2uH,WAML3uH,KAAK4uH,WAAa,GAAI96F,GAAOulB,SAM7Br5C,KAAK6uH,WAAY,EAMjB7uH,KAAK8uH,eAAiB,KAMtB9uH,KAAK+uH,cAAgB,MAIzBj7F,EAAO23B,aAAapoD,WAOhBioC,KAAM,WAQF,GANItrC,KAAK4E,KAAK6uC,OAAO2Z,KAAOptD,KAAK4E,KAAK6uC,OAAOyY,YAAa,IAEtDlsD,KAAKwuH,SAAW,GAIhB/5G,OAAqB,aACzB,CAEI,GAAIA,OAAqB,aAAEu6G,gBAAiB,EAIxC,MAFAhvH,MAAKkkH,SAAU,OACflkH,KAAKi8G,aAAc,EAKvB,IAAIxnG,OAAqB,aAAEw6G,mBAAoB,EAI3C,MAFAjvH,MAAKymH,eAAgB,OACrBzmH,KAAKi8G,aAAc,GAK3B,GAAIxnG,OAAqB,cAAKA,OAAqB,aAAEy6G,aAEjDlvH,KAAKoN,QAAUqH,OAAqB,aAAEy6G,iBAItC,IAAMz6G,OAAqB,aAEvB,IACIzU,KAAKoN,QAAU,GAAIqH,QAAqB,aAC1C,MAAOspF,GACL/9F,KAAKoN,QAAU,KACfpN,KAAKwmH,eAAgB,EACrBxmH,KAAKi8G,aAAc,MAGtB,IAAMxnG,OAA2B,mBAElC,IACIzU,KAAKoN,QAAU,GAAIqH,QAA2B,mBAChD,MAAOspF,GACL/9F,KAAKoN,QAAU,KACfpN,KAAKwmH,eAAgB,EACrBxmH,KAAKi8G,aAAc,EAK/B,GAAqB,OAAjBj8G,KAAKoN,QACT,CAEI,GAAwB3D,SAApBgL,OAAc,MAGd,YADAzU,KAAKkkH,SAAU,EAKflkH,MAAKymH,eAAgB,MAKzBzmH,MAAKwmH,eAAgB,EAIjBxmH,KAAKisH,WAFuBxiH,SAA5BzJ,KAAKoN,QAAQ8+G,WAEKlsH,KAAKoN,QAAQ++G,iBAIbnsH,KAAKoN,QAAQ8+G,aAGnClsH,KAAKisH,WAAWG,KAAKnoH,MAAQ,EAC7BjE,KAAKisH,WAAW1nD,QAAQvkE,KAAKoN,QAAQw5E,YAGpC5mF,MAAKkkH,WAGDlkH,KAAK4E,KAAK6uC,OAAO2O,UAAYpiD,KAAK4E,KAAK6uC,OAAO2Z,KAAQ34C,OAAqB,cAAKA,OAAqB,aAAE06G,mBAExGnvH,KAAKovH,gBAYjBA,aAAc,WAEVpvH,KAAK4E,KAAKkkC,MAAMsmB,MAAMyN,qBAAqB78D,KAAKqvH,OAAQrvH,MACxDA,KAAKi8G,aAAc,GAUvBoT,OAAQ,WAEJ,GAAIrvH,KAAKkkH,UAAYlkH,KAAKi8G,aAAsC,OAAvBj8G,KAAK0uH,cAE1C,OAAO,CAIX,IAAI1uH,KAAKymH,cAELzmH,KAAKi8G,aAAc,EACnBj8G,KAAK0uH,cAAgB,SAEpB,IAAI1uH,KAAKwmH,cACd,CAII,GAAIxqG,GAAShc,KAAKoN,QAAQ8U,aAAa,EAAG,EAAG,MAC7CliB,MAAK0uH,cAAgB1uH,KAAKoN,QAAQugH,qBAClC3tH,KAAK0uH,cAAc1yG,OAASA,EAC5Bhc,KAAK0uH,cAAcnqD,QAAQvkE,KAAKoN,QAAQw5E,aAEPn9E,SAA7BzJ,KAAK0uH,cAActjH,MAEnBpL,KAAK0uH,cAAcY,OAAO,GAI1BtvH,KAAK0uH,cAActjH,MAAM,GAKjC,OAAO,GASXmkH,QAAS,WAEL,IAAIvvH,KAAKkkH,QAKT,IAAK,GAAIzgH,GAAI,EAAGA,EAAIzD,KAAK2uH,QAAQjrH,OAAQD,IAEjCzD,KAAK2uH,QAAQlrH,IAEbzD,KAAK2uH,QAAQlrH,GAAGuH,QAW5B8kG,SAAU,WAEN,IAAI9vG,KAAKkkH,QAKT,IAAK,GAAIzgH,GAAI,EAAGA,EAAIzD,KAAK2uH,QAAQjrH,OAAQD,IAEjCzD,KAAK2uH,QAAQlrH,IAEbzD,KAAK2uH,QAAQlrH,GAAG+nC,SAW5BukE,UAAW,WAEP,IAAI/vG,KAAKkkH,QAKT,IAAK,GAAIzgH,GAAI,EAAGA,EAAIzD,KAAK2uH,QAAQjrH,OAAQD,IAEjCzD,KAAK2uH,QAAQlrH,IAEbzD,KAAK2uH,QAAQlrH,GAAGioC,UAa5Bm9E,OAAQ,SAAUnyG,EAAKuyB,GAEnBA,EAAQA,GAAS,IAEjB,IAAIumF,GAAYxvH,KAAK4E,KAAKikC,MAAMk2E,aAAaroG,EAE7C,IAAI84G,GAEIxvH,KAAK4E,KAAKikC,MAAM80E,eAAejnG,MAAS,EAC5C,CACI1W,KAAK4E,KAAKikC,MAAM40E,YAAY/mG,EAAK,cAAc,EAE/C,IAAI04B,GAAQpvC,IAEZ,KACIA,KAAKoN,QAAQqiH,gBAAgBD,EAAW,SAAUxzG,GAE1CA,IAEAozB,EAAMxqC,KAAKikC,MAAM60E,aAAahnG,EAAKsF,GACnCozB,EAAMi/E,cAAc5hF,SAAS/1B,EAAKuyB,MAI9C,MAAOhO,OAiBnBy0F,mBAAoB,SAAUC,EAAOh3E,EAAU3M,GAEtB,gBAAV2jF,KAEPA,GAAUA,IAGd3vH,KAAK4uH,WAAWnyG,OAEhB,KAAK,GAAIhZ,GAAI,EAAGA,EAAIksH,EAAMjsH,OAAQD,IAE1BksH,EAAMlsH,YAAcqwB,GAAO6sD,MAEtB3gF,KAAK4E,KAAKikC,MAAM80E,eAAegS,EAAMlsH,GAAGiT,MAEzC1W,KAAK4uH,WAAWhuF,IAAI+uF,EAAMlsH,GAAGiT,KAG3B1W,KAAK4E,KAAKikC,MAAM80E,eAAegS,EAAMlsH,KAE3CzD,KAAK4uH,WAAWhuF,IAAI+uF,EAAMlsH,GAKJ,KAA1BzD,KAAK4uH,WAAW30E,OAEhBj6C,KAAK6uH,WAAY,EACjBl2E,EAAS7yC,KAAKkmC,KAIdhsC,KAAK6uH,WAAY,EACjB7uH,KAAK8uH,eAAiBn2E,EACtB34C,KAAK+uH,cAAgB/iF,IAW7B1F,OAAQ,WAEJ,IAAItmC,KAAKkkH,QAAT,EAKIlkH,KAAKi8G,aAAsC,OAAvBj8G,KAAK0uH,eAA2B1uH,KAAK0uH,cAAckB,gBAAkB5vH,KAAK0uH,cAAcmB,eAAiB7vH,KAAK0uH,cAAckB,gBAAkB5vH,KAAK0uH,cAAcoB,iBAErL9vH,KAAKi8G,aAAc,EACnBj8G,KAAK0uH,cAAgB,KAGzB,KAAK,GAAIjrH,GAAI,EAAGA,EAAIzD,KAAK2uH,QAAQjrH,OAAQD,IAErCzD,KAAK2uH,QAAQlrH,GAAG6iC,QAGpB,IAAItmC,KAAK6uH,UACT,CAGI,IAFA,GAAIn4G,GAAM1W,KAAK4uH,WAAWn0D,MAEnB/jD,GAEC1W,KAAK4E,KAAKikC,MAAM80E,eAAejnG,IAE/B1W,KAAK4uH,WAAW7iF,OAAOr1B,GAG3BA,EAAM1W,KAAK4uH,WAAW73E,IAGI,KAA1B/2C,KAAK4uH,WAAW30E,QAEhBj6C,KAAK6uH,WAAY,EACjB7uH,KAAK8uH,eAAehpH,KAAK9F,KAAK+uH,mBAgB1CnuF,IAAK,SAAUlqB,EAAKquB,EAAQuuC,EAAM/O,GAEf96D,SAAXs7B,IAAwBA,EAAS,GACxBt7B,SAAT6pE,IAAsBA,GAAO,GACjB7pE,SAAZ86D,IAAyBA,EAAUvkE,KAAKgrH,gBAE5C,IAAI/hF,GAAQ,GAAInV,GAAO6sD,MAAM3gF,KAAK4E,KAAM8R,EAAKquB,EAAQuuC,EAAM/O,EAI3D,OAFAvkE,MAAK2uH,QAAQpqH,KAAK0kC,GAEXA,GAWXmyC,UAAW,SAAS1kE,GAEhB,GAAIykE,GAAc,GAAIrnD,GAAO8sD,YAAY5gF,KAAK4E,KAAM8R,EAEpD,OAAOykE,IAWXpvC,OAAQ,SAAU9C,GAId,IAFA,GAAIxlC,GAAIzD,KAAK2uH,QAAQjrH,OAEdD,KAEH,GAAIzD,KAAK2uH,QAAQlrH,KAAOwlC,EAIpB,MAFAjpC,MAAK2uH,QAAQlrH,GAAGF,SAAQ,GACxBvD,KAAK2uH,QAAQ/lH,OAAOnF,EAAG,IAChB,CAIf,QAAO,GAYXssH,YAAa,SAAUr5G,GAKnB,IAHA,GAAIjT,GAAIzD,KAAK2uH,QAAQjrH,OACjBsG,EAAU,EAEPvG,KAECzD,KAAK2uH,QAAQlrH,GAAGiT,MAAQA,IAExB1W,KAAK2uH,QAAQlrH,GAAGF,SAAQ,GACxBvD,KAAK2uH,QAAQ/lH,OAAOnF,EAAG,GACvBuG,IAIR,OAAOA,IAaXopE,KAAM,SAAU18D,EAAKquB,EAAQuuC,GAEzB,IAAItzE,KAAKkkH,QAAT,CAKA,GAAIj7E,GAAQjpC,KAAK4gC,IAAIlqB,EAAKquB,EAAQuuC,EAIlC,OAFArqC,GAAMmqC,OAECnqC,IAUXikB,QAAS,WAEL,IAAIltD,KAAK8sH,OAAT,CAKA9sH,KAAK8sH,QAAS,EAEV9sH,KAAKwmH,gBAELxmH,KAAKktH,YAAcltH,KAAKisH,WAAWG,KAAKnoH,MACxCjE,KAAKisH,WAAWG,KAAKnoH,MAAQ,EAIjC,KAAK,GAAIR,GAAI,EAAGA,EAAIzD,KAAK2uH,QAAQjrH,OAAQD,IAEjCzD,KAAK2uH,QAAQlrH,GAAGgjH,gBAEhBzmH,KAAK2uH,QAAQlrH,GAAG2qH,MAAO,EAI/BpuH,MAAKysH,OAAOhgF,aAUhB4gB,UAAW,WAEP,GAAKrtD,KAAK8sH,SAAU9sH,KAAKyuH,WAAzB,CAKAzuH,KAAK8sH,QAAS,EAEV9sH,KAAKwmH,gBAELxmH,KAAKisH,WAAWG,KAAKnoH,MAAQjE,KAAKktH,YAItC,KAAK,GAAIzpH,GAAI,EAAGA,EAAIzD,KAAK2uH,QAAQjrH,OAAQD,IAEjCzD,KAAK2uH,QAAQlrH,GAAGgjH,gBAEhBzmH,KAAK2uH,QAAQlrH,GAAG2qH,MAAO,EAI/BpuH,MAAKuuH,SAAS9hF,aASlBlpC,QAAS,WAELvD,KAAKuvH,SAEL,KAAK,GAAI9rH,GAAI,EAAGA,EAAIzD,KAAK2uH,QAAQjrH,OAAQD,IAEjCzD,KAAK2uH,QAAQlrH,IAEbzD,KAAK2uH,QAAQlrH,GAAGF,SAIxBvD,MAAK2uH,WAEL3uH,KAAKquH,cAAcl/E,UAEfnvC,KAAKoN,SAAWqH,OAAqB,eAGrCA,OAAqB,aAAEy6G,aAAelvH,KAAKoN,WAOvD0mB,EAAO23B,aAAapoD,UAAUC,YAAcwwB,EAAO23B,aAMnD7nD,OAAOC,eAAeiwB,EAAO23B,aAAapoD,UAAW,QAEjDS,IAAK,WAED,MAAO9D,MAAK8sH,QAIhB9oH,IAAK,SAAUC,GAIX,GAFAA,EAAQA,IAAS,EAGjB,CACI,GAAIjE,KAAK8sH,OAEL,MAGJ9sH,MAAKyuH,YAAa,EAClBzuH,KAAKktD,cAGT,CACI,IAAKltD,KAAK8sH,OAEN,MAGJ9sH,MAAKyuH,YAAa,EAClBzuH,KAAKqtD,gBAUjBzpD,OAAOC,eAAeiwB,EAAO23B,aAAapoD,UAAW,UAEjDS,IAAK,WAED,MAAO9D,MAAK4sH,SAIhB5oH,IAAK,SAAUC,GAWX,GATY,EAARA,EAEAA,EAAQ,EAEHA,EAAQ,IAEbA,EAAQ,GAGRjE,KAAK4sH,UAAY3oH,EACrB,CAGI,GAFAjE,KAAK4sH,QAAU3oH,EAEXjE,KAAKwmH,cAELxmH,KAAKisH,WAAWG,KAAKnoH,MAAQA,MAK7B,KAAK,GAAIR,GAAI,EAAGA,EAAIzD,KAAK2uH,QAAQjrH,OAAQD,IAEjCzD,KAAK2uH,QAAQlrH,GAAGgjH,gBAEhBzmH,KAAK2uH,QAAQlrH,GAAGshC,OAAS/kC,KAAK2uH,QAAQlrH,GAAGshC,OAAS9gC,EAK9DjE,MAAKsuH,eAAe7hF,SAASxoC,OAyBzC6vB,EAAOoF,MAAM0yB,MAAQ,SAAUhnD,GAK3B5E,KAAK4E,KAAOA,EAKZ5E,KAAK2pB,OAAS,KAKd3pB,KAAK4mC,IAAM,KAKX5mC,KAAK+Q,OAAS,KAKd/Q,KAAKoN,QAAU,KAMfpN,KAAKm8E,KAAO,eAKZn8E,KAAKgwH,YAAc,IAKnBhwH,KAAKyvF,WAAa,GAKlBzvF,KAAKiwH,cAAe,EAMpBjwH,KAAKi0F,SAAW,EAMhBj0F,KAAKk0F,SAAW,EAMhBl0F,KAAKkwH,aAAe,EAKpBlwH,KAAK4V,OAAQ,GAIjBke,EAAOoF,MAAM0yB,MAAMvoD,WAQfioC,KAAM,WAEEtrC,KAAK4E,KAAKwoC,aAAetZ,EAAO2B,OAEhCz1B,KAAKoN,QAAUpN,KAAK4E,KAAKwI,SAIzBpN,KAAK4mC,IAAM5mC,KAAK4E,KAAKiiC,KAAKC,WAAW9mC,KAAK4E,KAAKiC,MAAO7G,KAAK4E,KAAKkC,QAChE9G,KAAK2pB,OAAS3pB,KAAK4E,KAAKiiC,KAAKpU,MAAM,EAAG,EAAGzyB,KAAK4mC,KAC9C5mC,KAAK4E,KAAKvC,MAAMkG,SAASvI,KAAK2pB,QAE9B3pB,KAAK+Q,OAAS+iB,EAAO4e,OAAOtqC,OAAOpI,KAAK4E,KAAKiC,MAAO7G,KAAK4E,KAAKkC,OAAQ,IAAI,GAC1E9G,KAAKoN,QAAUpN,KAAK+Q,OAAOE,WAAW,QAU9C3K,UAAW,WAEHtG,KAAK4V,OAAS5V,KAAK2pB,SAEnB3pB,KAAK4mC,IAAIxiB,QACTpkB,KAAK4mC,IAAI88C,KAAK1jF,KAAK+Q,OAAQ,EAAG,GAE9B/Q,KAAKoN,QAAQ+gB,UAAU,EAAG,EAAGnuB,KAAK4E,KAAKiC,MAAO7G,KAAK4E,KAAKkC,QACxD9G,KAAK4V,OAAQ,IAUrB6G,MAAO,WAECzc,KAAKoN,SAELpN,KAAKoN,QAAQ+gB,UAAU,EAAG,EAAGnuB,KAAK4E,KAAKiC,MAAO7G,KAAK4E,KAAKkC,QAGxD9G,KAAK2pB,QAEL3pB,KAAK4mC,IAAIxiB,SAejBhZ,MAAO,SAAU1F,EAAGC,EAAG4U,EAAOy1G,GAET,gBAANtqH,KAAkBA,EAAI,GAChB,gBAANC,KAAkBA,EAAI,GACjC4U,EAAQA,GAAS,mBACG9Q,SAAhBumH,IAA6BA,EAAc,GAE/ChwH,KAAKi0F,SAAWvuF,EAChB1F,KAAKk0F,SAAWvuF,EAChB3F,KAAKmwH,aAAe51G,EACpBva,KAAKgwH,YAAcA,EAEnBhwH,KAAK4V,OAAQ,EAEb5V,KAAKoN,QAAQihB,OACbruB,KAAKoN,QAAQW,aAAa,EAAG,EAAG,EAAG,EAAG,EAAG,GACzC/N,KAAKoN,QAAQkjB,YAAc/V,EAC3Bva,KAAKoN,QAAQyhB,UAAYtU,EACzBva,KAAKoN,QAAQ+uE,KAAOn8E,KAAKm8E,KACzBn8E,KAAKoN,QAAQG,YAAcvN,KAAKkwH,cAUpCllH,KAAM,WAEFhL,KAAKoN,QAAQshB,WAUjBoQ,KAAM,WAIF,IAAK,GAFDp5B,GAAI1F,KAAKi0F,SAEJxwF,EAAI,EAAGA,EAAI80B,UAAU70B,OAAQD,IAE9BzD,KAAKiwH,eAELjwH,KAAKoN,QAAQyhB,UAAY,aACzB7uB,KAAKoN,QAAQ05E,SAASvuD,UAAU90B,GAAIiC,EAAI,EAAG1F,KAAKk0F,SAAW,GAC3Dl0F,KAAKoN,QAAQyhB,UAAY7uB,KAAKmwH,cAGlCnwH,KAAKoN,QAAQ05E,SAASvuD,UAAU90B,GAAIiC,EAAG1F,KAAKk0F,UAE5CxuF,GAAK1F,KAAKgwH,WAGdhwH,MAAKk0F,UAAYl0F,KAAKyvF,YAa1B2gC,UAAW,SAAUnnF,EAAOvjC,EAAGC,EAAG4U,GAE9Bva,KAAKoL,MAAM1F,EAAGC,EAAG4U,GACjBva,KAAK8+B,KAAK,UAAYmK,EAAMvyB,IAAM,YAAcuyB,EAAMrkC,KAAKqkC,MAAMgzE,aACjEj8G,KAAK8+B,KAAK,cAAgB9+B,KAAK4E,KAAKikC,MAAM+0E,aAAa30E,EAAMvyB,KAAO,sBAAwBuyB,EAAMyiF,iBAClG1rH,KAAK8+B,KAAK,YAAcmK,EAAMskF,UAAY,cAAgBtkF,EAAM+yE,YAChEh8G,KAAK8+B,KAAK,mBAAqBmK,EAAMiiF,cAAgB,aAAejiF,EAAM2tE,WAC1E52G,KAAK8+B,KAAK,SAAWmK,EAAMkiF,aAC3BnrH,KAAK8+B,KAAK,WAAamK,EAAMlE,OAAS,WAAakE,EAAMmlF,MACzDpuH,KAAK8+B,KAAK,aAAemK,EAAMu9E,cAAgB,WAAav9E,EAAMw9E,eAEtC,KAAxBx9E,EAAMuiF,gBAENxrH,KAAK8+B,KAAK,WAAamK,EAAMuiF,cAAgB,cAAgBviF,EAAM8tB,SAAW,SAAW9tB,EAAMmiF,WAAa,KAC5GprH,KAAK8+B,KAAK,UAAYmK,EAAMgiF,QAAQhiF,EAAMuiF,eAAepgH,MAAQ,UAAY69B,EAAMgiF,QAAQhiF,EAAMuiF,eAAexgH,MAChHhL,KAAK8+B,KAAK,aAAemK,EAAMxnC,WAGnCzB,KAAKgL,QAaTqlH,WAAY,SAAUznF,EAAQljC,EAAGC,EAAG4U,GAEhCva,KAAKoL,MAAM1F,EAAGC,EAAG4U,GACjBva,KAAK8+B,KAAK,WAAa8J,EAAO/hC,MAAQ,MAAQ+hC,EAAO9hC,OAAS,KAC9D9G,KAAK8+B,KAAK,MAAQ8J,EAAOljC,EAAI,OAASkjC,EAAOjjC,GAEzCijC,EAAOliC,QAEP1G,KAAK8+B,KAAK,aAAe8J,EAAOliC,OAAOhB,EAAI,OAASkjC,EAAOliC,OAAOf,EAAI,OAASijC,EAAOliC,OAAOG,MAAQ,OAAS+hC,EAAOliC,OAAOI,QAGhI9G,KAAK8+B,KAAK,WAAa8J,EAAO3nC,KAAKyE,EAAI,OAASkjC,EAAO3nC,KAAK0E,EAAI,OAASijC,EAAO3nC,KAAK4F,MAAQ,OAAS+hC,EAAO3nC,KAAK6F,QAElH9G,KAAK8+B,KAAK,kBAAoB8J,EAAOpD,aACrCxlC,KAAKgL,QAaTipG,MAAO,SAAUA,EAAOvuG,EAAGC,EAAG4U,GAE1Bva,KAAKoL,MAAM1F,EAAGC,EAAG4U,GACjBva,KAAK8+B,KAAK,mBAAqBm1E,EAAMS,QAAU,aAAeT,EAAMU,QAAU,KAC9E30G,KAAK8+B,KAAK,cAAgBm1E,EAAMl9D,KAAO,cAAgBk9D,EAAMl9C,UAC7D/2D,KAAK8+B,KAAK,WAAam1E,EAAMtqE,OAAS,YAAcsqE,EAAMvwG,QAC1D1D,KAAKgL,QAcTgmC,QAAS,SAAUA,EAASs/E,EAAUC,EAAWC,EAASj2G,GAEvC,MAAXy2B,IAKavnC,SAAb6mH,IAA0BA,GAAW,GACzCC,EAAYA,GAAa,oBACzBC,EAAUA,GAAW,qBAEjBF,KAAa,GAAQt/E,EAAQ6lB,QAAS,KAK1C72D,KAAKoL,MAAM4lC,EAAQtrC,EAAGsrC,EAAQrrC,EAAI,IAAK4U,GACvCva,KAAKoN,QAAQ8iB,YACblwB,KAAKoN,QAAQqjB,IAAIugB,EAAQtrC,EAAGsrC,EAAQrrC,EAAGqrC,EAAQ8c,OAAOnvC,OAAQ,EAAa,EAAVhe,KAAKC,IAIlEZ,KAAKoN,QAAQyhB,UAFbmiB,EAAQvD,OAEiB8iF,EAIAC,EAG7BxwH,KAAKoN,QAAQ6P,OACbjd,KAAKoN,QAAQijB,YAGbrwB,KAAKoN,QAAQ8iB,YACblwB,KAAKoN,QAAQ+iB,OAAO6gB,EAAQmoB,aAAazzD,EAAGsrC,EAAQmoB,aAAaxzD,GACjE3F,KAAKoN,QAAQgjB,OAAO4gB,EAAQvvC,SAASiE,EAAGsrC,EAAQvvC,SAASkE,GACzD3F,KAAKoN,QAAQkQ,UAAY,EACzBtd,KAAKoN,QAAQmjB,SACbvwB,KAAKoN,QAAQijB,YAGbrwB,KAAK8+B,KAAK,OAASkS,EAAQp5B,GAAK,YAAco5B,EAAQvD,QACtDztC,KAAK8+B,KAAK,YAAckS,EAAQy/E,OAAS,aAAez/E,EAAQ0/E,QAChE1wH,KAAK8+B,KAAK,aAAekS,EAAQtrC,EAAI,cAAgBsrC,EAAQrrC,GAC7D3F,KAAK8+B,KAAK,aAAekS,EAAQ+lB,SAAW,OAC5C/2D,KAAK8+B,KAAK,YAAckS,EAAQ4lB,OAAS,WAAa5lB,EAAQ6lB,MAC9D72D,KAAKgL,UAaT2lH,gBAAiB,SAAUhnG,EAAQjkB,EAAGC,EAAG4U,GAErCva,KAAKoL,MAAM1F,EAAGC,EAAG4U,GACjBva,KAAK8+B,KAAK,kBAAoBnV,EAAO9iB,MAAQ,MAAQ8iB,EAAO7iB,OAAS,KACrE9G,KAAK8+B,KAAK,MAAQnV,EAAOmf,MAAM62B,WAAW1uB,QAAQ,GAAK,OAAStnB,EAAOmf,MAAM82B,WAAW3uB,QAAQ,IAChGjxC,KAAK8+B,KAAK,SAAWnV,EAAOmf,MAAMm3B,cAAgB,cAAgBt2C,EAAOmf,MAAM24B,eAAexwB,QAAQ,IACtGjxC,KAAK8+B,KAAK,SAAWnV,EAAOmf,MAAM+2B,cAAgB,cAAgBl2C,EAAOmf,MAAMm2B,eAAehuB,QAAQ,IACtGjxC,KAAK8+B,KAAK,cAAgBnV,EAAOmf,MAAMy4B,WAAa,cAAgB53C,EAAOmf,MAAM44B,WACjF1hE,KAAKgL,QAaT0L,IAAK,SAAUA,EAAKhR,EAAGC,EAAG4U,GAEtBva,KAAKoL,MAAM1F,EAAGC,EAAG4U,EAAO,KAExBva,KAAK8+B,KAAK,OAAQpoB,EAAI40D,QAAS,UAAW50D,EAAIkgD,QAC9C52D,KAAK8+B,KAAK,YAAapoB,EAAIk6G,SAAU,UAAWl6G,EAAIm6G,QACpD7wH,KAAK8+B,KAAK,aAAcpoB,EAAIogD,SAAS7lB,QAAQ,GAAI,YAAav6B,EAAIqgD,SAAS9lB,QAAQ,IAEnFjxC,KAAKgL,QAYT8lH,UAAW,SAAUprH,EAAGC,EAAG4U,GAEvBva,KAAKoL,MAAM1F,EAAGC,EAAG4U,GACjBva,KAAK8+B,KAAK,SACV9+B,KAAK8+B,KAAK,MAAQ9+B,KAAK4E,KAAKkkC,MAAMpjC,EAAI,OAAS1F,KAAK4E,KAAKkkC,MAAMnjC,GAC/D3F,KAAK8+B,KAAK,YAAc9+B,KAAK4E,KAAKkkC,MAAM2nF,OAAS,aAAezwH,KAAK4E,KAAKkkC,MAAM4nF,QAChF1wH,KAAK8+B,KAAK,YAAc9+B,KAAK4E,KAAKkkC,MAAMnnC,MAAM+D,EAAEurC,QAAQ,GAAK,aAAejxC,KAAK4E,KAAKkkC,MAAMnnC,MAAM+D,EAAEurC,QAAQ,IAC5GjxC,KAAK8+B,KAAK,aAAe9+B,KAAK4E,KAAKkkC,MAAM4e,cAAc8Q,QAAU,cAAgBx4D,KAAK4E,KAAKkkC,MAAM4e,cAAc+Q,SAC/Gz4D,KAAKgL,QAYT+lH,aAAc,SAAUpnG,EAAQpP,EAAOy2G,GAEnC,GAAItqH,GAASijB,EAAO3jB,WAEpBU,GAAOhB,GAAK1F,KAAK4E,KAAKgkC,OAAOljC,EAC7BgB,EAAOf,GAAK3F,KAAK4E,KAAKgkC,OAAOjjC,EAE7B3F,KAAKixH,UAAUvqH,EAAQ6T,EAAOy2G,IAYlCE,aAAc,SAAU51C,EAAM/gE,EAAOy2G,GAEjC,GAAIzyC,GAAWjD,EAAKiD,SAEhB4yC,EAAOnxH,IAEXu+E,GAAS3lD,QAAQ,SAASw4F,GACtBD,EAAKF,UAAUG,EAAS72G,EAAOy2G,IAChChxH,OAaPqxH,WAAY,SAAU1nG,EAAQjkB,EAAGC,EAAG4U,GAEhCva,KAAKoL,MAAM1F,EAAGC,EAAG4U,GAEjBva,KAAK8+B,KAAK,aAAoBnV,EAAO9iB,MAAQ,MAAQ8iB,EAAO7iB,OAAS,aAAe6iB,EAAOzhB,OAAOxC,EAAI,MAAQikB,EAAOzhB,OAAOvC,GAC5H3F,KAAK8+B,KAAK,MAAQnV,EAAOjkB,EAAEurC,QAAQ,GAAK,OAAStnB,EAAOhkB,EAAEsrC,QAAQ,IAClEjxC,KAAK8+B,KAAK,UAAYnV,EAAOqT,MAAMiU,QAAQ,GAAK,cAAgBtnB,EAAO5nB,SAASkvC,QAAQ,IACxFjxC,KAAK8+B,KAAK,YAAcnV,EAAO1nB,QAAU,eAAiB0nB,EAAOgqD,UACjE3zE,KAAK8+B,KAAK,aAAenV,EAAO5mB,QAAQ2C,EAAEurC,QAAQ,GAAK,OAAStnB,EAAO5mB,QAAQ4C,EAAEsrC,QAAQ,GAAK,OAAStnB,EAAO5mB,QAAQ8D,MAAMoqC,QAAQ,GAAK,OAAStnB,EAAO5mB,QAAQ+D,OAAOmqC,QAAQ,IAEhLjxC,KAAKgL,QAaTsmH,aAAc,SAAU3nG,EAAQjkB,EAAGC,EAAG4U,GAElCva,KAAKoL,MAAM1F,EAAGC,EAAG4U,EAAO,KAEpBoP,EAAOwR,MAEPn7B,KAAK8+B,KAAKnV,EAAOwR,MAGrBn7B,KAAK8+B,KAAK,KAAMnV,EAAOjkB,EAAEurC,QAAQ,GAAI,KAAMtnB,EAAOhkB,EAAEsrC,QAAQ,IAC5DjxC,KAAK8+B,KAAK,SAAUnV,EAAOloB,SAASiE,EAAEurC,QAAQ,GAAI,SAAUtnB,EAAOloB,SAASkE,EAAEsrC,QAAQ,IACtFjxC,KAAK8+B,KAAK,WAAYnV,EAAO7kB,MAAMY,EAAEurC,QAAQ,GAAI,WAAYtnB,EAAO7kB,MAAMa,EAAEsrC,QAAQ,IAEpFjxC,KAAKgL,QAaTumH,SAAU,SAAUzyF,EAAMp5B,EAAGC,EAAG4U,GAE5Bva,KAAKoL,MAAM1F,EAAGC,EAAG4U,EAAO,IACxBva,KAAK8+B,KAAK,WAAYA,EAAK1zB,MAAM1F,EAAEurC,QAAQ,GAAI,WAAYnS,EAAK1zB,MAAMzF,EAAEsrC,QAAQ,IAChFjxC,KAAK8+B,KAAK,SAAUA,EAAKh1B,IAAIpE,EAAEurC,QAAQ,GAAI,SAAUnS,EAAKh1B,IAAInE,EAAEsrC,QAAQ,IACxEjxC,KAAK8+B,KAAK,UAAWA,EAAKp7B,OAAOutC,QAAQ,GAAI,SAAUnS,EAAK9B,OAC5Dh9B,KAAKgL,QAaT64E,MAAO,SAAUn+E,EAAGC,EAAG4U,EAAOoO,GAE1BA,EAAOA,GAAQ,EAEf3oB,KAAKoL,QACLpL,KAAKoN,QAAQyhB,UAAYtU,EACzBva,KAAKoN,QAAQ0hB,SAASppB,EAAGC,EAAGgjB,EAAMA,GAClC3oB,KAAKgL,QAaT6yC,KAAM,SAAUk9B,EAAQxgE,EAAOy2G,EAAQQ,GAEpB/nH,SAAXunH,IAAwBA,GAAS,GACnBvnH,SAAd+nH,IAA2BA,EAAY,GAE3Cj3G,EAAQA,GAAS,oBAEjBva,KAAKoL,QAELpL,KAAKoN,QAAQyhB,UAAYtU,EACzBva,KAAKoN,QAAQkjB,YAAc/V,EAEvBwgE,YAAkBjnD,GAAO9wB,WAA2B,IAAdwuH,EAElCR,EAEAhxH,KAAKoN,QAAQ0hB,SAASisD,EAAOr1E,EAAI1F,KAAK4E,KAAKgkC,OAAOljC,EAAGq1E,EAAOp1E,EAAI3F,KAAK4E,KAAKgkC,OAAOjjC,EAAGo1E,EAAOl0E,MAAOk0E,EAAOj0E,QAIzG9G,KAAKoN,QAAQojB,WAAWuqD,EAAOr1E,EAAI1F,KAAK4E,KAAKgkC,OAAOljC,EAAGq1E,EAAOp1E,EAAI3F,KAAK4E,KAAKgkC,OAAOjjC,EAAGo1E,EAAOl0E,MAAOk0E,EAAOj0E,QAG1Gi0E,YAAkBjnD,GAAOmI,QAAwB,IAAdu1F,GAExCxxH,KAAKoN,QAAQ8iB,YACblwB,KAAKoN,QAAQqjB,IAAIsqD,EAAOr1E,EAAI1F,KAAK4E,KAAKgkC,OAAOljC,EAAGq1E,EAAOp1E,EAAI3F,KAAK4E,KAAKgkC,OAAOjjC,EAAGo1E,EAAOp8D,OAAQ,EAAa,EAAVhe,KAAKC,IAAQ,GAC9GZ,KAAKoN,QAAQijB,YAET2gG,EAEAhxH,KAAKoN,QAAQ6P,OAIbjd,KAAKoN,QAAQmjB,UAGZwqD,YAAkBjnD,GAAOpyB,OAAuB,IAAd8vH,EAEvCxxH,KAAKoN,QAAQ0hB,SAASisD,EAAOr1E,EAAI1F,KAAK4E,KAAKgkC,OAAOljC,EAAGq1E,EAAOp1E,EAAI3F,KAAK4E,KAAKgkC,OAAOjjC,EAAG,EAAG,IAElFo1E,YAAkBjnD,GAAOwK,MAAsB,IAAdkzF,KAEtCxxH,KAAKoN,QAAQkQ,UAAY,EACzBtd,KAAKoN,QAAQ8iB,YACblwB,KAAKoN,QAAQ+iB,OAAQ4qD,EAAO3vE,MAAM1F,EAAI,GAAO1F,KAAK4E,KAAKgkC,OAAOljC,EAAIq1E,EAAO3vE,MAAMzF,EAAI,GAAO3F,KAAK4E,KAAKgkC,OAAOjjC,GAC3G3F,KAAKoN,QAAQgjB,OAAQ2qD,EAAOjxE,IAAIpE,EAAI,GAAO1F,KAAK4E,KAAKgkC,OAAOljC,EAAIq1E,EAAOjxE,IAAInE,EAAI,GAAO3F,KAAK4E,KAAKgkC,OAAOjjC,GACvG3F,KAAKoN,QAAQijB,YACbrwB,KAAKoN,QAAQmjB,UAGjBvwB,KAAKgL,QAYTimH,UAAW,SAAUl2C,EAAQxgE,EAAOy2G,GAEjBvnH,SAAXunH,IAAwBA,GAAS,GAErCz2G,EAAQA,GAAS,uBAEjBva,KAAKoL,QAED4lH,GAEAhxH,KAAKoN,QAAQyhB,UAAYtU,EACzBva,KAAKoN,QAAQ0hB,SAASisD,EAAOr1E,EAAI1F,KAAK4E,KAAKgkC,OAAOljC,EAAGq1E,EAAOp1E,EAAI3F,KAAK4E,KAAKgkC,OAAOjjC,EAAGo1E,EAAOl0E,MAAOk0E,EAAOj0E,UAIzG9G,KAAKoN,QAAQkjB,YAAc/V,EAC3Bva,KAAKoN,QAAQojB,WAAWuqD,EAAOr1E,EAAI1F,KAAK4E,KAAKgkC,OAAOljC,EAAGq1E,EAAOp1E,EAAI3F,KAAK4E,KAAKgkC,OAAOjjC,EAAGo1E,EAAOl0E,MAAOk0E,EAAOj0E,SAG/G9G,KAAKgL,QAcT4yC,KAAM,SAAUA,EAAMl4C,EAAGC,EAAG4U,EAAO4hE,GAE/B5hE,EAAQA,GAAS,mBACjB4hE,EAAOA,GAAQ,eAEfn8E,KAAKoL,QACLpL,KAAKoN,QAAQ+uE,KAAOA,EAEhBn8E,KAAKiwH,eAELjwH,KAAKoN,QAAQyhB,UAAY,aACzB7uB,KAAKoN,QAAQ05E,SAASlpC,EAAMl4C,EAAI,EAAGC,EAAI,IAG3C3F,KAAKoN,QAAQyhB,UAAYtU,EACzBva,KAAKoN,QAAQ05E,SAASlpC,EAAMl4C,EAAGC,GAE/B3F,KAAKgL,QAWTymH,SAAU,SAAUC,EAAUn3G,GAE1BA,EAAQA,GAAS,oBAEjBva,KAAKoL,OAEL,IAAI1E,GAASgrH,EAAShrH,MAEtB,IAA8B,IAA1BgrH,EAAS9nB,MAAMlmG,OACnB,CACI1D,KAAKoN,QAAQkjB,YAAc/V,EAC3Bva,KAAKoN,QAAQojB,WAAW9pB,EAAOhB,EAAGgB,EAAOf,EAAGe,EAAOG,MAAOH,EAAOI,QACjE9G,KAAK49C,KAAK,SAAW8zE,EAAS/nB,QAAQjmG,OAAQgD,EAAOhB,EAAI,EAAGgB,EAAOf,EAAI,GAAI,eAAgB,gBAE3F3F,KAAKoN,QAAQkjB,YAAc,cAE3B,KAAK,GAAI7sB,GAAI,EAAGA,EAAIiuH,EAAS/nB,QAAQjmG,OAAQD,IAEzCzD,KAAKoN,QAAQojB,WAAWkhG,EAAS/nB,QAAQlmG,GAAGiC,EAAGgsH,EAAS/nB,QAAQlmG,GAAGkC,EAAG+rH,EAAS/nB,QAAQlmG,GAAGoD,MAAO6qH,EAAS/nB,QAAQlmG,GAAGqD,YAKzH,KAAK,GAAIrD,GAAI,EAAGA,EAAIiuH,EAAS9nB,MAAMlmG,OAAQD,IAEvCzD,KAAKyxH,SAASC,EAAS9nB,MAAMnmG,GAIrCzD,MAAKgL,QAcTkrC,KAAM,SAAUvsB,EAAQpP,EAAOy2G,GAEvBrnG,EAAOusB,OAEPl2C,KAAKoL,QAEDue,EAAOusB,KAAKn/B,OAAS+c,EAAO8gB,QAAQC,OAEpC/gB,EAAO8gB,QAAQonC,OAAO21C,KAAK3qH,OAAOhH,KAAKoN,QAASuc,EAAOusB,KAAM37B,EAAOy2G,GAE/DrnG,EAAOusB,KAAKn/B,OAAS+c,EAAO8gB,QAAQg9E,MAEzC99F,EAAO8gB,QAAQi9E,MAAMF,KAAK3qH,OAAOhH,KAAKoN,QAASuc,EAAOusB,KAAM37B,EAAOy2G,GAE9DrnG,EAAOusB,KAAKn/B,OAAS+c,EAAO8gB,QAAQk9E,OAEzCh+F,EAAO8gB,QAAQm9E,MAAMC,WAAWhyH,KAAKoN,QAASuc,EAAOusB,KAAM37B,GAG/Dva,KAAKgL;EAcbinH,SAAU,SAAUtoG,EAAQjkB,EAAGC,EAAG4U,GAE1BoP,EAAOusB,OAEPl2C,KAAKoL,MAAM1F,EAAGC,EAAG4U,EAAO,KAEpBoP,EAAOusB,KAAKn/B,OAAS+c,EAAO8gB,QAAQC,OAEpC/gB,EAAO8gB,QAAQonC,OAAO21C,KAAKO,eAAelyH,KAAM2pB,EAAOusB,MAElDvsB,EAAOusB,KAAKn/B,OAAS+c,EAAO8gB,QAAQk9E,OAEzC9xH,KAAK4E,KAAKykC,QAAQ8oF,MAAMD,eAAelyH,KAAM2pB,EAAOusB,MAGxDl2C,KAAKgL,SAYbonH,WAAY,WAERpyH,KAAKoL,QAELpL,KAAKoN,QAAQ6mB,WAAWj0B,KAAK4E,KAAKgkC,OAAO3nC,KAAKyE,GAAI1F,KAAK4E,KAAKgkC,OAAO3nC,KAAK0E,EAAG,GAC3E3F,KAAK4E,KAAKykC,QAAQ8oF,MAAME,gBAAgBryH,KAAKoN,SAE7CpN,KAAKgL,QAYTsnH,UAAW,SAAUp8E,EAAM37B,GAEvBva,KAAKoL,QACL0oB,EAAO8gB,QAAQm9E,MAAMC,WAAWhyH,KAAKoN,QAAS8oC,EAAM37B,GACpDva,KAAKgL,SAMb8oB,EAAOoF,MAAM0yB,MAAMvoD,UAAUC,YAAcwwB,EAAOoF,MAAM0yB,MAoBxD93B,EAAOulB,SAAW,SAAU83C,GAOxBnxF,KAAKyB,SAAW,EAMhBzB,KAAKmxF,KAAOA,OAIhBr9D,EAAOulB,SAASh2C,WAUZu9B,IAAK,SAAU78B,GAOX,MALK/D,MAAKiyC,OAAOluC,IAEb/D,KAAKmxF,KAAK5sF,KAAKR,GAGZA,GAWXqzC,SAAU,SAAUrzC,GAEhB,MAAO/D,MAAKmxF,KAAKhoF,QAAQpF,IAa7BwuH,SAAU,SAAUl6E,EAAUp0C,GAI1B,IAFA,GAAIR,GAAIzD,KAAKmxF,KAAKztF,OAEXD,KAEH,GAAIzD,KAAKmxF,KAAK1tF,GAAG40C,KAAcp0C,EAE3B,MAAOjE,MAAKmxF,KAAK1tF,EAIzB,OAAO,OAWXwuC,OAAQ,SAAUluC,GAEd,MAAQ/D,MAAKmxF,KAAKhoF,QAAQpF,GAAQ,IAStC0Y,MAAO,WAEHzc,KAAKmxF,KAAKztF,OAAS,GAWvBqoC,OAAQ,SAAUhoC,GAEd,GAAI6tF,GAAM5xF,KAAKmxF,KAAKhoF,QAAQpF,EAE5B,OAAI6tF,GAAM,IAEN5xF,KAAKmxF,KAAKvoF,OAAOgpF,EAAK,GACf7tF,GAHX,QAeJk0C,OAAQ,SAAUvhC,EAAKzS,GAInB,IAFA,GAAIR,GAAIzD,KAAKmxF,KAAKztF,OAEXD,KAECzD,KAAKmxF,KAAK1tF,KAEVzD,KAAKmxF,KAAK1tF,GAAGiT,GAAOzS,IAgBhC60C,QAAS,SAAUpiC,GAMf,IAJA,GAAI2hB,GAAO53B,MAAM4C,UAAUuF,OAAO9C,KAAKyyB,UAAW,GAE9C90B,EAAIzD,KAAKmxF,KAAKztF,OAEXD,KAECzD,KAAKmxF,KAAK1tF,IAAMzD,KAAKmxF,KAAK1tF,GAAGiT,IAE7B1W,KAAKmxF,KAAK1tF,GAAGiT,GAAKvP,MAAMnH,KAAKmxF,KAAK1tF,GAAI40B,IAYlDwU,UAAW,SAAUtpC,GAEDkG,SAAZlG,IAAyBA,GAAU,EAIvC,KAFA,GAAIE,GAAIzD,KAAKmxF,KAAKztF,OAEXD,KAEH,GAAIzD,KAAKmxF,KAAK1tF,GACd,CACI,GAAIM,GAAO/D,KAAK+rC,OAAO/rC,KAAKmxF,KAAK1tF,GAE7BF,IAEAQ,EAAKR,UAKjBvD,KAAKyB,SAAW,EAChBzB,KAAKmxF,UAYbvtF,OAAOC,eAAeiwB,EAAOulB,SAASh2C,UAAW,SAE7CS,IAAK,WACD,MAAO9D,MAAKmxF,KAAKztF,UAWzBE,OAAOC,eAAeiwB,EAAOulB,SAASh2C,UAAW,SAE7CS,IAAK,WAID,MAFA9D,MAAKyB,SAAW,EAEZzB,KAAKmxF,KAAKztF,OAAS,EAEZ1D,KAAKmxF,KAAK,GAIV,QAanBvtF,OAAOC,eAAeiwB,EAAOulB,SAASh2C,UAAW,QAE7CS,IAAK,WAED,MAAI9D,MAAKyB,SAAWzB,KAAKmxF,KAAKztF,QAE1B1D,KAAKyB,WAEEzB,KAAKmxF,KAAKnxF,KAAKyB,WAIf,QAOnBqyB,EAAOulB,SAASh2C,UAAUC,YAAcwwB,EAAOulB,SAc/CvlB,EAAO4mB,YAcHC,cAAe,SAAUgvD,EAASn+E,EAAY9nB,GAE1C,GAAe,MAAXimG,EACA,MAAO,KAGQlgG,UAAf+hB,IAA4BA,EAAa,GAC9B/hB,SAAX/F,IAAwBA,EAASimG,EAAQjmG,OAE7C,IAAI8uH,GAAchnG,EAAa7qB,KAAKq3B,MAAMr3B,KAAKm5B,SAAWp2B,EAC1D,OAAgC+F,UAAzBkgG,EAAQ6oB,GAA6B,KAAO7oB,EAAQ6oB,IAgB/DC,iBAAkB,SAAU9oB,EAASn+E,EAAY9nB,GAE7C,GAAe,MAAXimG,EACA,MAAO,KAGQlgG,UAAf+hB,IAA4BA,EAAa,GAC9B/hB,SAAX/F,IAAwBA,EAASimG,EAAQjmG,OAE7C,IAAI8uH,GAAchnG,EAAa7qB,KAAKq3B,MAAMr3B,KAAKm5B,SAAWp2B,EAC1D,IAAI8uH,EAAc7oB,EAAQjmG,OAC1B,CACI,GAAIsG,GAAU2/F,EAAQ/gG,OAAO4pH,EAAa,EAC1C,OAAsB/oH,UAAfO,EAAQ,GAAmB,KAAOA,EAAQ,GAIjD,MAAO,OAYf0oH,QAAS,SAAUpyF,GAEf,IAAK,GAAI78B,GAAI68B,EAAM58B,OAAS,EAAGD,EAAI,EAAGA,IACtC,CACI,GAAIa,GAAI3D,KAAKq3B,MAAMr3B,KAAKm5B,UAAYr2B,EAAI,IACpCqpB,EAAOwT,EAAM78B,EACjB68B,GAAM78B,GAAK68B,EAAMh8B,GACjBg8B,EAAMh8B,GAAKwoB,EAGf,MAAOwT,IAWXqyF,gBAAiB,SAAUryF,GAOvB,IAAK,GALDsyF,GAAiBtyF,EAAM58B,OACvBmvH,EAAiBvyF,EAAM,GAAG58B,OAE1B4N,EAAS,GAAI7Q,OAAMoyH,GAEdpvH,EAAI,EAAOovH,EAAJpvH,EAAoBA,IACpC,CACI6N,EAAO7N,GAAK,GAAIhD,OAAMmyH,EAEtB,KAAK,GAAItuH,GAAIsuH,EAAiB,EAAGtuH,EAAI,GAAIA,IAErCgN,EAAO7N,GAAGa,GAAKg8B,EAAMh8B,GAAGb,GAIhC,MAAO6N,IAcXwhH,aAAc,SAAU7sH,EAAQy/E,GAO5B,GALyB,gBAAdA,KAEPA,GAAcA,EAAY,IAAO,KAAO,KAG1B,KAAdA,GAAkC,OAAdA,GAAoC,eAAdA,EAE1Cz/E,EAAS6tB,EAAO4mB,WAAWi4E,gBAAgB1sH,GAC3CA,EAASA,EAAO2gB,cAEf,IAAkB,MAAd8+D,GAAmC,MAAdA,GAAmC,gBAAdA,EAE/Cz/E,EAASA,EAAO2gB,UAChB3gB,EAAS6tB,EAAO4mB,WAAWi4E,gBAAgB1sH,OAE1C,IAA4B,MAAxBtF,KAAKshB,IAAIyjE,IAAoC,cAAdA,EACxC,CACI,IAAK,GAAIjiF,GAAI,EAAGA,EAAIwC,EAAOvC,OAAQD,IAE/BwC,EAAOxC,GAAGmjB,SAGd3gB,GAASA,EAAO2gB,UAGpB,MAAO3gB,IAaX8sH,YAAa,SAAU9uH,EAAO+uH,GAE1B,IAAKA,EAAItvH,OAEL,MAAOuvH,IAEN,IAAmB,IAAfD,EAAItvH,QAAgBO,EAAQ+uH,EAAI,GAErC,MAAOA,GAAI,EAIf,KADA,GAAIvvH,GAAI,EACDuvH,EAAIvvH,GAAKQ,GACZR,GAGJ,IAAIyvH,GAAMF,EAAIvvH,EAAI,GACd0vH,EAAQ1vH,EAAIuvH,EAAItvH,OAAUsvH,EAAIvvH,GAAK6/B,OAAO8vF,iBAE9C,OAA2BnvH,GAAQivH,GAA1BC,EAAOlvH,EAA2BkvH,EAAOD,GAYtDr0F,OAAQ,SAAUyB,GAEd,GAAI4B,GAAI5B,EAAMu5B,OAGd,OAFAv5B,GAAM/7B,KAAK29B,GAEJA,GAaXmxF,YAAa,SAAUjoH,EAAOtB,GAI1B,IAAK,GAFDwH,MAEK7N,EAAI2H,EAAYtB,GAALrG,EAAUA,IAE1B6N,EAAO/M,KAAKd,EAGhB,OAAO6N,IAqCXgiH,gBAAiB,SAASloH,EAAOtB,EAAKkjD,GAElC5hD,GAASA,GAAS,CAGlB,IAAI2L,SAAcjN,EAEJ,YAATiN,GAA8B,WAATA,IAAsBi2C,GAAQA,EAAKljD,KAASsB,IAElEtB,EAAMkjD,EAAO,MAGjBA,EAAe,MAARA,EAAe,GAAMA,GAAQ,EAExB,OAARljD,GAEAA,EAAMsB,EACNA,EAAQ,GAIRtB,GAAOA,GAAO,CASlB,KAJA,GAAIpB,GAAQ,GACRhF,EAAS/C,KAAK2+B,IAAIxL,EAAOnzB,KAAK+mG,mBAAmB59F,EAAMsB,IAAU4hD,GAAQ,IAAK,GAC9E17C,EAAS,GAAI7Q,OAAMiD,KAEdgF,EAAQhF,GAEb4N,EAAO5I,GAAS0C,EAChBA,GAAS4hD,CAGb,OAAO17C,KAiBfwiB,EAAOqgB,OAeHswC,UAAW,SAAUpmE,EAAGC,EAAGtZ,EAAGD,GAE1B,MAAI+uB,GAAO61B,OAAOu7B,eAEJngF,GAAK,GAAOC,GAAK,GAAOsZ,GAAM,EAAKD,KAAQ,GAI3CA,GAAK,GAAOC,GAAK,GAAOtZ,GAAM,EAAKD,KAAQ,GAwB7Dg/E,YAAa,SAAUwvC,EAAMj3F,EAAKgpD,EAAKC,GAkCnC,OAhCY97E,SAAR6yB,GAA6B,OAARA,KAAgBA,EAAMxI,EAAOqgB,MAAM2vC,gBAChDr6E,SAAR67E,GAA6B,OAARA,KAAgBA,GAAM,IACnC77E,SAAR87E,GAA6B,OAARA,KAAgBA,GAAM,GAE3CzxD,EAAO61B,OAAOu7B,eAEd5oD,EAAIv3B,GAAa,WAAPwuH,KAAuB,GACjCj3F,EAAIt3B,GAAa,SAAPuuH,KAAuB,GACjCj3F,EAAIhe,GAAa,MAAPi1G,KAAuB,EACjCj3F,EAAIje,EAAa,IAAPk1G,IAIVj3F,EAAIje,GAAa,WAAPk1G,KAAuB,GACjCj3F,EAAIhe,GAAa,SAAPi1G,KAAuB,GACjCj3F,EAAIt3B,GAAa,MAAPuuH,KAAuB,EACjCj3F,EAAIv3B,EAAa,IAAPwuH,GAGdj3F,EAAI/hB,MAAQg5G,EACZj3F,EAAIi3F,KAAO,QAAUj3F,EAAIje,EAAI,IAAMie,EAAIhe,EAAI,IAAMge,EAAIt3B,EAAI,IAAOs3B,EAAIv3B,EAAI,IAAO,IAE3EugF,GAEAxxD,EAAOqgB,MAAMq/E,SAASl3F,EAAIje,EAAGie,EAAIhe,EAAGge,EAAIt3B,EAAGs3B,GAG3CipD,GAEAzxD,EAAOqgB,MAAMs/E,SAASn3F,EAAIje,EAAGie,EAAIhe,EAAGge,EAAIt3B,EAAGs3B,GAGxCA,GAeXo3F,SAAU,SAAUH,EAAMj3F,GActB,MAZKA,KAEDA,EAAMxI,EAAOqgB,MAAM2vC,eAGvBxnD,EAAIje,GAAa,WAAPk1G,KAAuB,GACjCj3F,EAAIhe,GAAa,SAAPi1G,KAAuB,GACjCj3F,EAAIt3B,GAAa,MAAPuuH,KAAuB,EACjCj3F,EAAIv3B,EAAa,IAAPwuH,EAEVj3F,EAAIi3F,KAAO,QAAUj3F,EAAIje,EAAI,IAAMie,EAAIhe,EAAI,IAAMge,EAAIt3B,EAAI,IAAMs3B,EAAIv3B,EAAI,IAEhEu3B,GAgBXq3F,OAAQ,SAAUt1G,EAAGC,EAAGtZ,EAAGD,GAEvB,MAAQsZ,IAAK,GAAOC,GAAK,GAAOtZ,GAAM,EAAKD,GAkB/CyuH,SAAU,SAAUn1G,EAAGC,EAAGtZ,EAAGs3B,GAEpBA,IAEDA,EAAMxI,EAAOqgB,MAAM2vC,YAAYzlE,EAAGC,EAAGtZ,EAAG,IAG5CqZ,GAAK,IACLC,GAAK,IACLtZ,GAAK,GAEL,IAAIqsB,GAAM1wB,KAAK0wB,IAAIhT,EAAGC,EAAGtZ,GACrBs6B,EAAM3+B,KAAK2+B,IAAIjhB,EAAGC,EAAGtZ,EAOzB,IAJAs3B,EAAIjS,EAAI,EACRiS,EAAI4F,EAAI,EACR5F,EAAI7C,GAAK6F,EAAMjO,GAAO,EAElBiO,IAAQjO,EACZ,CACI,GAAInsB,GAAIo6B,EAAMjO,CAEdiL,GAAI4F,EAAI5F,EAAI7C,EAAI,GAAMv0B,GAAK,EAAIo6B,EAAMjO,GAAOnsB,GAAKo6B,EAAMjO,GAEnDiO,IAAQjhB,EAERie,EAAIjS,GAAK/L,EAAItZ,GAAKE,GAASF,EAAJsZ,EAAQ,EAAI,GAE9BghB,IAAQhhB,EAEbge,EAAIjS,GAAKrlB,EAAIqZ,GAAKnZ,EAAI,EAEjBo6B,IAAQt6B,IAEbs3B,EAAIjS,GAAKhM,EAAIC,GAAKpZ,EAAI,GAG1Bo3B,EAAIjS,GAAK,EAGb,MAAOiS,IAkBXqoD,SAAU,SAAUt6D,EAAG6X,EAAGzI,EAAG6C,GAczB,GAZKA,GAODA,EAAIje,EAAIob,EACR6C,EAAIhe,EAAImb,EACR6C,EAAIt3B,EAAIy0B,GAPR6C,EAAMxI,EAAOqgB,MAAM2vC,YAAYrqD,EAAGA,EAAGA,GAU/B,IAANyI,EACJ,CACI,GAAI0xF,GAAQ,GAAJn6F,EAAUA,GAAK,EAAIyI,GAAKzI,EAAIyI,EAAIzI,EAAIyI,EACxCr9B,EAAI,EAAI40B,EAAIm6F,CAChBt3F,GAAIje,EAAIyV,EAAOqgB,MAAM0/E,WAAWhvH,EAAG+uH,EAAGvpG,EAAI,EAAI,GAC9CiS,EAAIhe,EAAIwV,EAAOqgB,MAAM0/E,WAAWhvH,EAAG+uH,EAAGvpG,GACtCiS,EAAIt3B,EAAI8uB,EAAOqgB,MAAM0/E,WAAWhvH,EAAG+uH,EAAGvpG,EAAI,EAAI,GAalD,MANAiS,GAAIje,EAAI1d,KAAKq3B,MAAe,IAARsE,EAAIje,EAAU,GAClCie,EAAIhe,EAAI3d,KAAKq3B,MAAe,IAARsE,EAAIhe,EAAU,GAClCge,EAAIt3B,EAAIrE,KAAKq3B,MAAe,IAARsE,EAAIt3B,EAAU,GAElC8uB,EAAOqgB,MAAM2/E,YAAYx3F,GAElBA,GAkBXm3F,SAAU,SAAUp1G,EAAGC,EAAGtZ,EAAGs3B,GAEpBA,IAEDA,EAAMxI,EAAOqgB,MAAM2vC,YAAYzlE,EAAGC,EAAGtZ,EAAG,MAG5CqZ,GAAK,IACLC,GAAK,IACLtZ,GAAK,GAEL,IAAIqsB,GAAM1wB,KAAK0wB,IAAIhT,EAAGC,EAAGtZ,GACrBs6B,EAAM3+B,KAAK2+B,IAAIjhB,EAAGC,EAAGtZ,GACrBE,EAAIo6B,EAAMjO,CAyBd,OAtBAiL,GAAIjS,EAAI,EACRiS,EAAI4F,EAAY,IAAR5C,EAAY,EAAIp6B,EAAIo6B,EAC5BhD,EAAI7oB,EAAI6rB,EAEJA,IAAQjO,IAEJiO,IAAQjhB,EAERie,EAAIjS,GAAK/L,EAAItZ,GAAKE,GAASF,EAAJsZ,EAAQ,EAAI,GAE9BghB,IAAQhhB,EAEbge,EAAIjS,GAAKrlB,EAAIqZ,GAAKnZ,EAAI,EAEjBo6B,IAAQt6B,IAEbs3B,EAAIjS,GAAKhM,EAAIC,GAAKpZ,EAAI,GAG1Bo3B,EAAIjS,GAAK,GAGNiS,GAkBXy3F,SAAU,SAAU1pG,EAAG6X,EAAGzuB,EAAG6oB,GAEb7yB,SAAR6yB,IAAqBA,EAAMxI,EAAOqgB,MAAM2vC,YAAY,EAAG,EAAG,EAAG,EAAGz5D,EAAG6X,EAAG,EAAGzuB,GAE7E,IAAI4K,GAAGC,EAAGtZ,EACNvB,EAAI9C,KAAKq3B,MAAU,EAAJ3N,GACf+P,EAAQ,EAAJ/P,EAAQ5mB,EACZoB,EAAI4O,GAAK,EAAIyuB,GACb0xF,EAAIngH,GAAK,EAAI2mB,EAAI8H,GACjBpJ,EAAIrlB,GAAK,GAAK,EAAI2mB,GAAK8H,EAE3B,QAAQz+B,EAAI,GAER,IAAK,GACD4a,EAAI5K,EACJ6K,EAAIwa,EACJ9zB,EAAIH,CACJ,MACJ,KAAK,GACDwZ,EAAIu1G,EACJt1G,EAAI7K,EACJzO,EAAIH,CACJ,MACJ,KAAK,GACDwZ,EAAIxZ,EACJyZ,EAAI7K,EACJzO,EAAI8zB,CACJ,MACJ,KAAK,GACDza,EAAIxZ,EACJyZ,EAAIs1G,EACJ5uH,EAAIyO,CACJ,MACJ,KAAK,GACD4K,EAAIya,EACJxa,EAAIzZ,EACJG,EAAIyO,CACJ,MACJ,KAAK,GACD4K,EAAI5K,EACJ6K,EAAIzZ,EACJG,EAAI4uH,EAUZ,MANAt3F,GAAIje,EAAI1d,KAAKq3B,MAAU,IAAJ3Z,GACnBie,EAAIhe,EAAI3d,KAAKq3B,MAAU,IAAJ1Z,GACnBge,EAAIt3B,EAAIrE,KAAKq3B,MAAU,IAAJhzB,GAEnB8uB,EAAOqgB,MAAM2/E,YAAYx3F,GAElBA,GAeXu3F,WAAY,SAAUhvH,EAAG+uH,EAAG96F,GAYxB,MAVQ,GAAJA,IAEAA,GAAK,GAGLA,EAAI,IAEJA,GAAK,GAGD,EAAI,EAARA,EAEOj0B,EAAc,GAAT+uH,EAAI/uH,GAASi0B,EAGrB,GAAJA,EAEO86F,EAGH,EAAI,EAAR96F,EAEOj0B,GAAK+uH,EAAI/uH,IAAM,EAAI,EAAIi0B,GAAK,EAGhCj0B,GAuBXi/E,YAAa,SAAUzlE,EAAGC,EAAGtZ,EAAGD,EAAGslB,EAAG6X,EAAGzI,EAAGhmB,GAExC,GAAI6oB,IAAQje,EAAGA,GAAK,EAAGC,EAAGA,GAAK,EAAGtZ,EAAGA,GAAK,EAAGD,EAAGA,GAAK,EAAGslB,EAAGA,GAAK,EAAG6X,EAAGA,GAAK,EAAGzI,EAAGA,GAAK,EAAGhmB,EAAGA,GAAK,EAAG8G,MAAO,EAAGy5G,QAAS,EAAGT,KAAM,GAEhI,OAAOz/F,GAAOqgB,MAAM2/E,YAAYx3F,IAYpCw3F,YAAa,SAAUx3F,GAMnB,MAJAA,GAAIi3F,KAAO,QAAUj3F,EAAIje,EAAEnO,WAAa,IAAMosB,EAAIhe,EAAEpO,WAAa,IAAMosB,EAAIt3B,EAAEkL,WAAa,IAAMosB,EAAIv3B,EAAEmL,WAAa,IACnHosB,EAAI/hB,MAAQuZ,EAAOqgB,MAAME,SAAS/X,EAAIje,EAAGie,EAAIhe,EAAGge,EAAIt3B,GACpDs3B,EAAI03F,QAAUlgG,EAAOqgB,MAAM8/E,WAAW33F,EAAIv3B,EAAGu3B,EAAIje,EAAGie,EAAIhe,EAAGge,EAAIt3B,GAExDs3B,GAeX23F,WAAY,SAAUlvH,EAAGsZ,EAAGC,EAAGtZ,GAE3B,MAAOD,IAAK,GAAKsZ,GAAK,GAAKC,GAAK,EAAItZ,GAcxCqvC,SAAU,SAAUh2B,EAAGC,EAAGtZ,GAEtB,MAAOqZ,IAAK,GAAKC,GAAK,EAAItZ,GAiB9BsvC,YAAa,SAAUj2B,EAAGC,EAAGtZ,EAAGD,EAAG6+F,GAK/B,MAHUn6F,UAAN1E,IAAmBA,EAAI,KACZ0E,SAAXm6F,IAAwBA,EAAS,KAEtB,MAAXA,EAEO,MAAQ,GAAK,KAAOvlF,GAAK,KAAOC,GAAK,GAAKtZ,GAAGkL,SAAS,IAAI6M,MAAM,GAIhE,KAAO+W,EAAOqgB,MAAM+/E,eAAenvH,GAAK+uB,EAAOqgB,MAAM+/E,eAAe71G,GAAKyV,EAAOqgB,MAAM+/E,eAAe51G,GAAKwV,EAAOqgB,MAAM+/E,eAAelvH,IAarJmvH,SAAU,SAAUlkH,GAEhB,GAAIK,GAAMwjB,EAAOqgB,MAAMigF,WAAWnkH,EAElC,OAAIK,GAEOwjB,EAAOqgB,MAAM8/E,WAAW3jH,EAAIvL,EAAGuL,EAAI+N,EAAG/N,EAAIgO,EAAGhO,EAAItL,GAF5D,QAoBJovH,WAAY,SAAUnkH,EAAKqsB,GAGvBrsB,EAAMA,EAAIyrB,QAAQ,0CAA2C,SAASgG,EAAGrjB,EAAGC,EAAGtZ,GAC3E,MAAOqZ,GAAIA,EAAIC,EAAIA,EAAItZ,EAAIA,GAG/B,IAAIsM,GAAS,mDAAmDugF,KAAK5hF,EAErE,IAAIqB,EACJ,CACI,GAAI+M,GAAIgc,SAAS/oB,EAAO,GAAI,IACxBgN,EAAI+b,SAAS/oB,EAAO,GAAI,IACxBtM,EAAIq1B,SAAS/oB,EAAO,GAAI,GAEvBgrB,IAMDA,EAAIje,EAAIA,EACRie,EAAIhe,EAAIA,EACRge,EAAIt3B,EAAIA,GANRs3B,EAAMxI,EAAOqgB,MAAM2vC,YAAYzlE,EAAGC,EAAGtZ,GAU7C,MAAOs3B,IAeX+3F,WAAY,SAAUC,EAAKh4F,GAElBA,IAEDA,EAAMxI,EAAOqgB,MAAM2vC,cAGvB,IAAIxyE,GAAS,4EAA4EugF,KAAKyiC,EAW9F,OATIhjH,KAEAgrB,EAAIje,EAAIgc,SAAS/oB,EAAO,GAAI,IAC5BgrB,EAAIhe,EAAI+b,SAAS/oB,EAAO,GAAI,IAC5BgrB,EAAIt3B,EAAIq1B,SAAS/oB,EAAO,GAAI,IAC5BgrB,EAAIv3B,EAAkB0E,SAAd6H,EAAO,GAAmBwgF,WAAWxgF,EAAO,IAAM,EAC1DwiB,EAAOqgB,MAAM2/E,YAAYx3F,IAGtBA,GAiBX8X,aAAc,SAAUnwC,EAAOq4B,GAS3B,GALKA,IAEDA,EAAMxI,EAAOqgB,MAAM2vC,eAGF,gBAAV7/E,GAEP,MAA6B,KAAzBA,EAAMkF,QAAQ,OAEP2qB,EAAOqgB,MAAMkgF,WAAWpwH,EAAOq4B,IAKtCA,EAAIv3B,EAAI,EACD+uB,EAAOqgB,MAAMigF,WAAWnwH,EAAOq4B,GAGzC,IAAqB,gBAAVr4B,GAChB,CAGI,GAAIswH,GAAYzgG,EAAOqgB,MAAMqgF,OAAOvwH,EAKpC,OAJAq4B,GAAIje,EAAIk2G,EAAUl2G,EAClBie,EAAIhe,EAAIi2G,EAAUj2G,EAClBge,EAAIt3B,EAAIuvH,EAAUvvH,EAClBs3B,EAAIv3B,EAAIwvH,EAAUxvH,EAAI,IACfu3B,EAIP,MAAOA,IAaf43F,eAAgB,SAAU35G,GAEtB,GAAItK,GAAMsK,EAAMrK,SAAS,GACzB,OAAqB,IAAdD,EAAIvM,OAAc,IAAMuM,EAAMA,GAazCwkH,cAAe,SAAUvyF,EAAGzuB,GAEdhK,SAANy4B,IAAmBA,EAAI,GACjBz4B,SAANgK,IAAmBA,EAAI,EAI3B,KAAK,GAFDuV,MAEK/jB,EAAI,EAAQ,KAALA,EAAUA,IAEtB+jB,EAAOzkB,KAAKuvB,EAAOqgB,MAAM4/E,SAAS9uH,EAAI,IAAKi9B,EAAGzuB,GAGlD,OAAOuV,IAaX0rG,cAAe,SAAUxyF,EAAGzI,GAEdhwB,SAANy4B,IAAmBA,EAAI,IACjBz4B,SAANgwB,IAAmBA,EAAI,GAI3B,KAAK,GAFDzQ,MAEK/jB,EAAI,EAAQ,KAALA,EAAUA,IAEtB+jB,EAAOzkB,KAAKuvB,EAAOqgB,MAAMwwC,SAAS1/E,EAAI,IAAKi9B,EAAGzI,GAGlD,OAAOzQ,IAgBX2rG,iBAAkB,SAAUC,EAAQC,EAAQC,EAAOC,EAAa/yH,GAE9CyH,SAAVzH,IAAuBA,EAAQ,IAEnC,IAAIgzH,GAAOlhG,EAAOqgB,MAAMqgF,OAAOI,GAC3BK,EAAOnhG,EAAOqgB,MAAMqgF,OAAOK,GAC3Bx2G,GAAO42G,EAAKnwC,IAAMkwC,EAAKlwC,KAAOiwC,EAAeD,EAASE,EAAKlwC,IAC3DxmE,GAAO22G,EAAKlwC,MAAQiwC,EAAKjwC,OAASgwC,EAAeD,EAASE,EAAKjwC,MAC/D//E,GAAOiwH,EAAKjwC,KAAOgwC,EAAKhwC,MAAQ+vC,EAAeD,EAASE,EAAKhwC,IAEjE,OAAOlxD,GAAOqgB,MAAM8/E,WAAWjyH,EAAOqc,EAAGC,EAAGtZ,IAiBhDkwH,wBAAyB,SAAU36G,EAAO8D,EAAGC,EAAGtZ,EAAG8vH,EAAOC,GAEtD,GAAIlkH,GAAMijB,EAAOqgB,MAAMqgF,OAAOj6G,GAC1B46G,GAAQ92G,EAAIxN,EAAIi0E,KAAOiwC,EAAeD,EAASjkH,EAAIi0E,IACnDswC,GAAQ92G,EAAIzN,EAAIk0E,OAASgwC,EAAeD,EAASjkH,EAAIk0E,MACrDswC,GAAQrwH,EAAI6L,EAAIm0E,MAAQ+vC,EAAeD,EAASjkH,EAAIm0E,IAExD,OAAOlxD,GAAOqgB,MAAME,SAAS8gF,EAAIC,EAAIC,IAkBzCC,eAAgB,SAAUlxC,EAAIC,EAAIhjE,EAAIijE,EAAIC,EAAI/iE,EAAIszG,EAAOC,GAErD,GAAI12G,IAAOimE,EAAKF,GAAM2wC,EAAeD,EAAS1wC,EAC1C9lE,GAAOimE,EAAKF,GAAM0wC,EAAeD,EAASzwC,EAC1Cr/E,GAAOwc,EAAKH,GAAM0zG,EAAeD,EAASzzG,CAE9C,OAAOyS,GAAOqgB,MAAME,SAASh2B,EAAGC,EAAGtZ,IAgBvCuwH,eAAgB,SAAUlkG,EAAKiO,EAAKt9B,GAOhC,GALYyH,SAAR4nB,IAAqBA,EAAM,GACnB5nB,SAAR61B,IAAqBA,EAAM,KACjB71B,SAAVzH,IAAuBA,EAAQ,KAG/Bs9B,EAAM,KAAOjO,EAAMiO,EAEnB,MAAOxL,GAAOqgB,MAAME,SAAS,IAAK,IAAK,IAG3C,IAAIywC,GAAMzzD,EAAM1wB,KAAKi8B,MAAMj8B,KAAKm5B,UAAYwF,EAAMjO,IAC9C0zD,EAAQ1zD,EAAM1wB,KAAKi8B,MAAMj8B,KAAKm5B,UAAYwF,EAAMjO,IAChD2zD,EAAO3zD,EAAM1wB,KAAKi8B,MAAMj8B,KAAKm5B,UAAYwF,EAAMjO,GAEnD,OAAOyC,GAAOqgB,MAAM8/E,WAAWjyH,EAAO8iF,EAAKC,EAAOC,IActDwvC,OAAQ,SAAUj6G,GAEd,MAAIA,GAAQ,UAIJvY,MAAOuY,IAAU,GACjBuqE,IAAKvqE,GAAS,GAAK,IACnBwqE,MAAOxqE,GAAS,EAAI,IACpByqE,KAAc,IAARzqE,EACNxV,EAAGwV,IAAU,GACb8D,EAAG9D,GAAS,GAAK,IACjB+D,EAAG/D,GAAS,EAAI,IAChBvV,EAAW,IAARuV,IAMHvY,MAAO,IACP8iF,IAAKvqE,GAAS,GAAK,IACnBwqE,MAAOxqE,GAAS,EAAI,IACpByqE,KAAc,IAARzqE,EACNxV,EAAG,IACHsZ,EAAG9D,GAAS,GAAK,IACjB+D,EAAG/D,GAAS,EAAI,IAChBvV,EAAW,IAARuV,IAcfi7G,UAAW,SAAUj7G,GAEjB,GAAqB,gBAAVA,GAEP,MAAO,QAAUA,EAAM8D,EAAEnO,WAAa,IAAMqK,EAAM+D,EAAEpO,WAAa,IAAMqK,EAAMvV,EAAEkL,WAAa,KAAOqK,EAAMxV,EAAI,KAAKmL,WAAa,GAI/H,IAAII,GAAMwjB,EAAOqgB,MAAMqgF,OAAOj6G,EAC9B,OAAO,QAAUjK,EAAI+N,EAAEnO,WAAa,IAAMI,EAAIgO,EAAEpO,WAAa,IAAMI,EAAItL,EAAEkL,WAAa,KAAOI,EAAIvL,EAAI,KAAKmL,WAAa,KAa/HulH,SAAU,SAAUl7G,GAChB,MAAOA,KAAU,IAWrBm7G,cAAe,SAAUn7G,GACrB,OAAQA,IAAU,IAAM,KAW5Bo7G,OAAQ,SAAUp7G,GACd,MAAOA,IAAS,GAAK,KAWzBq7G,SAAU,SAAUr7G,GAChB,MAAOA,IAAS,EAAI,KAWxBs7G,QAAS,SAAUt7G,GACf,MAAe,KAARA,GAYXu7G,YAAa,SAAU/wH,GACnB,MAAOA,IAYX+iF,aAAc,SAAU/iF,EAAGC,GACvB,MAAQA,GAAID,EAAKC,EAAID,GAYzB8iF,YAAa,SAAU9iF,EAAGC,GACtB,MAAQA,GAAID,EAAKA,EAAIC,GAezB0iF,cAAe,SAAU3iF,EAAGC,GACxB,MAAQD,GAAIC,EAAK,KAYrB+wH,aAAc,SAAUhxH,EAAGC,GACvB,OAAQD,EAAIC,GAAK,GAYrByiF,SAAU,SAAU1iF,EAAGC,GACnB,MAAOrE,MAAK0wB,IAAI,IAAKtsB,EAAIC,IAY7BgxH,cAAe,SAAUjxH,EAAGC,GACxB,MAAOrE,MAAK2+B,IAAI,EAAGv6B,EAAIC,EAAI,MAc/BmjF,gBAAiB,SAAUpjF,EAAGC,GAC1B,MAAOrE,MAAKshB,IAAIld,EAAIC,IAYxBixH,cAAe,SAAUlxH,EAAGC,GACxB,MAAO,KAAMrE,KAAKshB,IAAI,IAAMld,EAAIC,IAcpC2iF,YAAa,SAAU5iF,EAAGC,GACtB,MAAO,OAAS,IAAMD,IAAM,IAAMC,IAAO,IAa7CojF,eAAgB,SAAUrjF,EAAGC,GACzB,MAAOD,GAAIC,EAAI,EAAID,EAAIC,EAAI,KAc/B4iF,aAAc,SAAU7iF,EAAGC,GACvB,MAAW,KAAJA,EAAW,EAAID,EAAIC,EAAI,IAAQ,IAAM,GAAK,IAAMD,IAAM,IAAMC,GAAK,KAsB5EkjF,eAAgB,SAAUnjF,EAAGC,GACzB,MAAW,KAAJA,EAAW,IAAMD,GAAK,GAAK,KAAQC,EAAI,KAAO,IAAO,GAAK,MAAQD,GAAK,GAAK,MAAQ,IAAMC,GAAK,KAuB1GijF,eAAgB,SAAUljF,EAAGC,GACzB,MAAO8uB,GAAOqgB,MAAMyzC,aAAa5iF,EAAGD,IAaxCgjF,gBAAiB,SAAUhjF,EAAGC,GAC1B,MAAa,OAANA,EAAYA,EAAIrE,KAAK0wB,IAAI,KAAOtsB,GAAK,IAAM,IAAMC,KAa5DgjF,eAAgB,SAAUjjF,EAAGC,GACzB,MAAa,KAANA,EAAUA,EAAIrE,KAAK2+B,IAAI,EAAI,KAAQ,IAAMv6B,GAAM,GAAKC,IAY/DkxH,iBAAkB,SAAUnxH,EAAGC,GAC3B,MAAO8uB,GAAOqgB,MAAMszC,SAAS1iF,EAAGC,IAYpCmxH,gBAAiB,SAAUpxH,EAAGC,GAC1B,MAAO8uB,GAAOqgB,MAAM6hF,cAAcjxH,EAAGC,IAczCoxH,iBAAkB,SAAUrxH,EAAGC,GAC3B,MAAW,KAAJA,EAAU8uB,EAAOqgB,MAAMgiF,gBAAgBpxH,EAAG,EAAIC,GAAK8uB,EAAOqgB,MAAM+hF,iBAAiBnxH,EAAI,GAAKC,EAAI,OAezGqxH,gBAAiB,SAAUtxH,EAAGC,GAC1B,MAAW,KAAJA,EAAU8uB,EAAOqgB,MAAM6zC,eAAejjF,EAAG,EAAIC,GAAK8uB,EAAOqgB,MAAM4zC,gBAAgBhjF,EAAI,GAAKC,EAAI,OAavGsxH,cAAe,SAAUvxH,EAAGC,GACxB,MAAW,KAAJA,EAAU8uB,EAAOqgB,MAAM0zC,YAAY9iF,EAAG,EAAIC,GAAK8uB,EAAOqgB,MAAM2zC,aAAa/iF,EAAI,GAAKC,EAAI,OAejGuxH,aAAc,SAAUxxH,EAAGC,GACvB,MAAO8uB,GAAOqgB,MAAMkiF,gBAAgBtxH,EAAGC,GAAK,IAAM,EAAI,KAY1DwxH,aAAc,SAAUzxH,EAAGC,GACvB,MAAa,OAANA,EAAYA,EAAIrE,KAAK0wB,IAAI,IAAMtsB,EAAIA,GAAK,IAAMC,KAYzDyxH,UAAW,SAAU1xH,EAAGC,GACpB,MAAO8uB,GAAOqgB,MAAMqiF,aAAaxxH,EAAGD,IAYxC2xH,aAAc,SAAU3xH,EAAGC,GACvB,MAAOrE,MAAK0wB,IAAItsB,EAAGC,GAAKrE,KAAK2+B,IAAIv6B,EAAGC,GAAK,MAsBjD8uB,EAAO6iG,WAAa,WAOhB32H,KAAK+2C,KAAO,KAOZ/2C,KAAKijF,KAAO,KAOZjjF,KAAKy6D,MAAQ,KAObz6D,KAAKw5B,KAAO,KAOZx5B,KAAKi6C,MAAQ,GAIjBnmB,EAAO6iG,WAAWtzH,WASdu9B,IAAK,SAAU78B,GAGX,MAAmB,KAAf/D,KAAKi6C,OAA8B,OAAfj6C,KAAKy6D,OAAgC,OAAdz6D,KAAKw5B,MAEhDx5B,KAAKy6D,MAAQ12D,EACb/D,KAAKw5B,KAAOz1B,EACZ/D,KAAK+2C,KAAOhzC,EACZA,EAAKk/E,KAAOjjF,KACZA,KAAKi6C,QACEl2C,IAIX/D,KAAKw5B,KAAKud,KAAOhzC,EAEjBA,EAAKk/E,KAAOjjF,KAAKw5B,KAEjBx5B,KAAKw5B,KAAOz1B,EAEZ/D,KAAKi6C,QAEEl2C,IASX0Y,MAAO,WAEHzc,KAAKy6D,MAAQ,KACbz6D,KAAKw5B,KAAO,KACZx5B,KAAK+2C,KAAO,KACZ/2C,KAAKijF,KAAO,KACZjjF,KAAKi6C,MAAQ,GAUjBlO,OAAQ,SAAUhoC,GAEd,MAAmB,KAAf/D,KAAKi6C,OAELj6C,KAAKyc,aACL1Y,EAAKgzC,KAAOhzC,EAAKk/E,KAAO,QAIxBl/E,IAAS/D,KAAKy6D,MAGdz6D,KAAKy6D,MAAQz6D,KAAKy6D,MAAM1jB,KAEnBhzC,IAAS/D,KAAKw5B,OAGnBx5B,KAAKw5B,KAAOx5B,KAAKw5B,KAAKypD,MAGtBl/E,EAAKk/E,OAGLl/E,EAAKk/E,KAAKlsC,KAAOhzC,EAAKgzC,MAGtBhzC,EAAKgzC,OAGLhzC,EAAKgzC,KAAKksC,KAAOl/E,EAAKk/E,MAG1Bl/E,EAAKgzC,KAAOhzC,EAAKk/E,KAAO,KAEL,OAAfjjF,KAAKy6D,QAELz6D,KAAKw5B,KAAO,UAGhBx5B,MAAKi6C,UAWTnB,QAAS,SAAUH,GAEf,GAAK34C,KAAKy6D,OAAUz6D,KAAKw5B,KAAzB,CAKA,GAAIo9F,GAAS52H,KAAKy6D,KAElB,GAEQm8D,IAAUA,EAAOj+E,IAEjBi+E,EAAOj+E,GAAU7yC,KAAK8wH,GAG1BA,EAASA,EAAO7/E,WAGd6/E,GAAU52H,KAAKw5B,KAAKud,SAMlCjjB,EAAO6iG,WAAWtzH,UAAUC,YAAcwwB,EAAO6iG,WAsBjD7iG,EAAO8gB,QAAU,SAAUhwC,EAAM0tC,GAE7BA,EAASA,MAKTtyC,KAAK4E,KAAOA,EAKZ5E,KAAKsyC,OAASA,EAKdtyC,KAAK62H,OAAS,KAKd72H,KAAK0jC,GAAK,KAKV1jC,KAAK82H,MAAQ,KAKb92H,KAAKmyH,MAAQ,KAKbnyH,KAAK+2H,SAAW,KAKhB/2H,KAAKg3H,OAAS,KAEdh3H,KAAKuyC,eAQTze,EAAO8gB,QAAQC,OAAS,EAMxB/gB,EAAO8gB,QAAQggC,KAAO,EAMtB9gD,EAAO8gB,QAAQg9E,MAAQ,EAMvB99F,EAAO8gB,QAAQk9E,MAAQ,EAMvBh+F,EAAO8gB,QAAQqiF,SAAW,EAM1BnjG,EAAO8gB,QAAQsiF,SAAW,EAE1BpjG,EAAO8gB,QAAQvxC,WAOXkvC,YAAa,WAEHvyC,KAAKsyC,OAAOtX,eAAe,WAAah7B,KAAKsyC,OAAe,UAAM,IAASxe,EAAO8gB,QAAQ5Z,eAAe,YAG3Gh7B,KAAK62H,OAAS,GAAI/iG,GAAO8gB,QAAQonC,OAAOh8E,KAAK4E,OAG7C5E,KAAKsyC,OAAOtX,eAAe,UAAYh7B,KAAKsyC,OAAc,SAAM,GAAQxe,EAAO8gB,QAAQ5Z,eAAe,WAEtGh7B,KAAK82H,MAAQ,GAAIhjG,GAAO8gB,QAAQi9E,MAAM7xH,KAAK4E,OAG3C5E,KAAKsyC,OAAOtX,eAAe,OAASh7B,KAAKsyC,OAAW,MAAM,GAAQxe,EAAO8gB,QAAQ5Z,eAAe,QAEhGh7B,KAAK0jC,GAAK,GAAI5P,GAAO8gB,QAAQuiF,GAAGn3H,KAAK4E,KAAM5E,KAAKsyC,SAGhDtyC,KAAKsyC,OAAOtX,eAAe,UAAYh7B,KAAKsyC,OAAc,SAAM,GAAQxe,EAAO8gB,QAAQ5Z,eAAe,WAEtGh7B,KAAKmyH,MAAQ,GAAIr+F,GAAO8gB,QAAQk9E,MAAM9xH,KAAK4E,KAAM5E,KAAKsyC,SAGtDtyC,KAAKsyC,OAAOtX,eAAe,WAAah7B,KAAKsyC,OAAe,UAAM,GAAQxe,EAAO8gB,QAAQ5Z,eAAe,YAExGh7B,KAAKg3H,OAAS,GAAIljG,GAAO8gB,QAAQwiF,OAAOp3H,KAAK4E,KAAM5E,KAAKsyC,UAyBhE+kF,YAAa,SAAUC,GAEfA,IAAWxjG,EAAO8gB,QAAQC,OAE1B70C,KAAK62H,OAAS,GAAI/iG,GAAO8gB,QAAQonC,OAAOh8E,KAAK4E,MAExC0yH,IAAWxjG,EAAO8gB,QAAQggC,KAEf,OAAZ50E,KAAK0jC,GAEL1jC,KAAK0jC,GAAK,GAAI5P,GAAO8gB,QAAQuiF,GAAGn3H,KAAK4E,KAAM5E,KAAKsyC,QAIhDtyC,KAAK0jC,GAAGjnB,QAGP66G,IAAWxjG,EAAO8gB,QAAQg9E,MAE/B5xH,KAAK82H,MAAQ,GAAIhjG,GAAO8gB,QAAQi9E,MAAM7xH,KAAK4E,MAEtC0yH,IAAWxjG,EAAO8gB,QAAQk9E,MAEZ,OAAf9xH,KAAKmyH,MAELnyH,KAAKmyH,MAAQ,GAAIr+F,GAAO8gB,QAAQm9E,MAAM/xH,KAAK4E,KAAM5E,KAAKsyC,QAItDtyC,KAAKmyH,MAAM11G,QAGV66G,IAAWxjG,EAAO8gB,QAAQsiF,WAEX,OAAhBl3H,KAAKg3H,OAELh3H,KAAKg3H,OAAS,GAAIljG,GAAO8gB,QAAQwiF,OAAOp3H,KAAK4E,KAAM5E,KAAKsyC,QAIxDtyC,KAAKg3H,OAAOv6G,UA0BxBmH,OAAQ,SAAUm3D,EAAQu8C,EAAQxqF,GAEfrjC,SAAX6tH,IAAwBA,EAASxjG,EAAO8gB,QAAQC,QACtCprC,SAAVqjC,IAAuBA,GAAQ,GAE/BwqF,IAAWxjG,EAAO8gB,QAAQC,OAE1B70C,KAAK62H,OAAOjzG,OAAOm3D,GAEdu8C,IAAWxjG,EAAO8gB,QAAQggC,MAAQ50E,KAAK0jC,GAE5C1jC,KAAK0jC,GAAG9f,OAAOm3D,EAAQjuC,GAElBwqF,IAAWxjG,EAAO8gB,QAAQg9E,OAAS5xH,KAAK82H,MAE7C92H,KAAK82H,MAAMS,WAAWx8C,GAEjBu8C,IAAWxjG,EAAO8gB,QAAQk9E,OAAS9xH,KAAKmyH,MAE7CnyH,KAAKmyH,MAAMvuG,OAAOm3D,GAEbu8C,IAAWxjG,EAAO8gB,QAAQsiF,UAAYl3H,KAAKg3H,QAEhDh3H,KAAKg3H,OAAOpzG,OAAOm3D,IAW3Bz0E,UAAW,WAIHtG,KAAK0jC,IAEL1jC,KAAK0jC,GAAGp9B,YAGRtG,KAAKmyH,OAELnyH,KAAKmyH,MAAM7rH,YAGXtG,KAAKg3H,QAELh3H,KAAKg3H,OAAO1wH,aAWpBggC,OAAQ,WAIAtmC,KAAK0jC,IAEL1jC,KAAK0jC,GAAG4C,SAGRtmC,KAAKmyH,OAELnyH,KAAKmyH,MAAM7rF,SAGXtmC,KAAKg3H,QAELh3H,KAAKg3H,OAAO1wF,UAWpBG,iBAAkB,WAEVzmC,KAAK62H,QAEL72H,KAAK62H,OAAOpwF,mBAGZzmC,KAAK82H,OAEL92H,KAAK82H,MAAMrwF,mBAGXzmC,KAAK0jC,IAEL1jC,KAAK0jC,GAAG+C,mBAGRzmC,KAAKmyH,OAELnyH,KAAKmyH,MAAM1rF,mBAGXzmC,KAAKg3H,QAELh3H,KAAKg3H,OAAOvwF,oBAWpBriB,MAAO,WAECpkB,KAAK0jC,IAEL1jC,KAAK0jC,GAAGtf,QAGRpkB,KAAKmyH,OAELnyH,KAAKmyH,MAAM/tG,QAGXpkB,KAAKg3H,QAELh3H,KAAKg3H,OAAO5yG,SAWpB3H,MAAO,WAECzc,KAAK0jC,IAEL1jC,KAAK0jC,GAAGjnB,QAGRzc,KAAKmyH,OAELnyH,KAAKmyH,MAAM11G,QAGXzc,KAAKg3H,QAELh3H,KAAKg3H,OAAOv6G,SAUpBlZ,QAAS,WAEDvD,KAAK0jC,IAEL1jC,KAAK0jC,GAAGngC,UAGRvD,KAAKmyH,OAELnyH,KAAKmyH,MAAM5uH,UAGXvD,KAAKg3H,QAELh3H,KAAKg3H,OAAOzzH,UAGhBvD,KAAK62H,OAAS,KACd72H,KAAK82H,MAAQ,KACb92H,KAAK0jC,GAAK,KACV1jC,KAAKmyH,MAAQ,KACbnyH,KAAKg3H,OAAS,OAMtBljG,EAAO8gB,QAAQvxC,UAAUC,YAAcwwB,EAAO8gB,QAe9C9gB,EAAO8gB,QAAQonC,OAAS,SAAUp3E,GAK9B5E,KAAK4E,KAAOA,EAKZ5E,KAAKw3H,QAAU,GAAI1jG,GAAOpyB,MAK1B1B,KAAK0G,OAAS,GAAIotB,GAAO9wB,UAAU,EAAG,EAAG4B,EAAKE,MAAM+B,MAAOjC,EAAKE,MAAMgC,QAOtE9G,KAAKy3H,gBAAmB5qD,IAAI,EAAMC,MAAM,EAAMjyC,MAAM,EAAMD,OAAO,GAKjE56B,KAAKypG,WAAa,GAKlBzpG,KAAK0pG,UAAY,EAKjB1pG,KAAK03H,aAAe,EAKpB13H,KAAK23H,QAAS,EAMd33H,KAAK43H,cAAgB9jG,EAAO8gB,QAAQonC,OAAO67C,WAK3C73H,KAAK83H,cAAe,EAKpB93H,KAAKywG,UAAW,EAKhBzwG,KAAKyxH,SAAW,GAAI39F,GAAO01E,SAASxpG,KAAK4E,KAAKE,MAAM4B,OAAOhB,EAAG1F,KAAK4E,KAAKE,MAAM4B,OAAOf,EAAG3F,KAAK4E,KAAKE,MAAM4B,OAAOG,MAAO7G,KAAK4E,KAAKE,MAAM4B,OAAOI,OAAQ9G,KAAKypG,WAAYzpG,KAAK0pG,WAM3K1pG,KAAK+3H,OAAS,EAGd/3H,KAAKymC,oBAIT3S,EAAO8gB,QAAQonC,OAAO34E,UAAUC,YAAcwwB,EAAO8gB,QAAQonC,OAQ7DloD,EAAO8gB,QAAQonC,OAAOg8C,UAAY,EAQlClkG,EAAO8gB,QAAQonC,OAAO67C,WAAa,EAQnC/jG,EAAO8gB,QAAQonC,OAAOi8C,WAAa,EAQnCnkG,EAAO8gB,QAAQonC,OAAOk8C,WAAa,EAQnCpkG,EAAO8gB,QAAQonC,OAAOm8C,WAAa,EAEnCrkG,EAAO8gB,QAAQonC,OAAO34E,WAWlBg4C,UAAW,SAAU31C,EAAGC,EAAGkB,EAAOC,GAE9B9G,KAAK0G,OAAO61B,MAAM72B,EAAGC,EAAGkB,EAAOC,IASnC2/B,iBAAkB,WAEdzmC,KAAK0G,OAAO81B,SAASx8B,KAAK4E,KAAKE,MAAM4B,SAYzCkd,OAAQ,SAAUm3D,EAAQv3E,GAELiG,SAAbjG,IAA0BA,GAAW,EAEzC,IAAIC,GAAI,CAER,IAAIhD,MAAMyT,QAAQ6mE,GAId,IAFAt3E,EAAIs3E,EAAOr3E,OAEJD,KAECs3E,EAAOt3E,YAAcqwB,GAAO0gB,MAG5Bx0C,KAAK4jB,OAAOm3D,EAAOt3E,GAAGD,SAAUA,IAIhCxD,KAAK00C,WAAWqmC,EAAOt3E,IAEnBD,GAAYu3E,EAAOt3E,GAAGu3B,eAAe,aAAe+/C,EAAOt3E,GAAGD,SAASE,OAAS,GAEhF1D,KAAK4jB,OAAOm3D,EAAOt3E,IAAI,QAO/Bs3E,aAAkBjnD,GAAO0gB,MAGzBx0C,KAAK4jB,OAAOm3D,EAAOv3E,SAAUA,IAI7BxD,KAAK00C,WAAWqmC,GAEZv3E,GAAYu3E,EAAO//C,eAAe,aAAe+/C,EAAOv3E,SAASE,OAAS,GAE1E1D,KAAK4jB,OAAOm3D,EAAOv3E,UAAU,KAiB7CkxC,WAAY,SAAUqmC,GAEdA,EAAO//C,eAAe,SAA2B,OAAhB+/C,EAAO7kC,OAExC6kC,EAAO7kC,KAAO,GAAIpiB,GAAO8gB,QAAQonC,OAAO21C,KAAK52C,GAEzCA,EAAO34E,QAAU24E,EAAO34E,iBAAkB0xB,GAAO0gB,OAEjDumC,EAAO34E,OAAO+zC,UAAU4kC,KAYpCq9C,aAAc,SAAUliF,GAEpB,GAAImiF,GAAgBr4H,KAAKs4H,gBAAgB,EAAGpiF,EAAMA,EAAKqiF,gBAAiBriF,EAAKsiF,oBAAqBtiF,EAAKuiF,YAAaviF,EAAKwiF,YAAcxiF,EAAKqiF,eAC5IriF,GAAKqiF,iBAAmBF,EACxBniF,EAAKn0C,UAAam0C,EAAKqiF,gBAAkBv4H,KAAK4E,KAAKskC,KAAK80C,eAExD9nC,EAAKyiF,SAASjzH,EAAI1F,KAAKs4H,gBAAgB,EAAGpiF,EAAMA,EAAKyiF,SAASjzH,EAAGwwC,EAAK0iF,aAAalzH,EAAGwwC,EAAK2iF,KAAKnzH,EAAGwwC,EAAK4iF,YAAYpzH,GACpHwwC,EAAKyiF,SAAShzH,EAAI3F,KAAKs4H,gBAAgB,EAAGpiF,EAAMA,EAAKyiF,SAAShzH,EAAGuwC,EAAK0iF,aAAajzH,EAAGuwC,EAAK2iF,KAAKlzH,EAAGuwC,EAAK4iF,YAAYnzH,IAiBxH2yH,gBAAiB,SAAUttD,EAAM90B,EAAMyiF,EAAUC,EAAcC,EAAMv5F,GA4CjE,MA1CY71B,UAAR61B,IAAqBA,EAAM,KAElB,IAAT0rC,GAAc90B,EAAK6iF,aAEnBJ,IAAa34H,KAAKw3H,QAAQ9xH,EAAIwwC,EAAKshF,QAAQ9xH,GAAK1F,KAAK4E,KAAKskC,KAAK80C,eAEjD,IAAThT,GAAc90B,EAAK6iF,eAExBJ,IAAa34H,KAAKw3H,QAAQ7xH,EAAIuwC,EAAKshF,QAAQ7xH,GAAK3F,KAAK4E,KAAKskC,KAAK80C,gBAG/D46C,EAEAD,GAAYC,EAAe54H,KAAK4E,KAAKskC,KAAK80C,eAErC66C,IAELA,GAAQ74H,KAAK4E,KAAKskC,KAAK80C,eAEnB26C,EAAWE,EAAO,EAElBF,GAAYE,EAEW,EAAlBF,EAAWE,EAEhBF,GAAYE,EAIZF,EAAW,GAIfA,EAAWr5F,EAEXq5F,EAAWr5F,GAEMA,EAAZq5F,IAELA,GAAYr5F,GAGTq5F,GAoBXt+C,QAAS,SAAU2+C,EAASC,EAASC,EAAiBC,EAAiBntF,GAQnE,GANAktF,EAAkBA,GAAmB,KACrCC,EAAkBA,GAAmB,KACrCntF,EAAkBA,GAAmBktF,EAErCl5H,KAAK+3H,OAAS,GAETt3H,MAAMyT,QAAQ8kH,IAAYv4H,MAAMyT,QAAQ+kH,GAEzC,IAAK,GAAIx1H,GAAI,EAAGA,EAAIw1H,EAAQv1H,OAAQD,IAEhCzD,KAAKo5H,eAAeJ,EAASC,EAAQx1H,GAAIy1H,EAAiBC,EAAiBntF,GAAiB,OAG/F,IAAIvrC,MAAMyT,QAAQ8kH,KAAav4H,MAAMyT,QAAQ+kH,GAE9C,IAAK,GAAIx1H,GAAI,EAAGA,EAAIu1H,EAAQt1H,OAAQD,IAEhCzD,KAAKo5H,eAAeJ,EAAQv1H,GAAIw1H,EAASC,EAAiBC,EAAiBntF,GAAiB,OAG/F,IAAIvrC,MAAMyT,QAAQ8kH,IAAYv4H,MAAMyT,QAAQ+kH,GAE7C,IAAK,GAAIx1H,GAAI,EAAGA,EAAIu1H,EAAQt1H,OAAQD,IAEhC,IAAK,GAAIa,GAAI,EAAGA,EAAI20H,EAAQv1H,OAAQY,IAEhCtE,KAAKo5H,eAAeJ,EAAQv1H,GAAIw1H,EAAQ30H,GAAI40H,EAAiBC,EAAiBntF,GAAiB,OAMvGhsC,MAAKo5H,eAAeJ,EAASC,EAASC,EAAiBC,EAAiBntF,GAAiB,EAG7F,OAAQhsC,MAAK+3H,OAAS,GAsB1BsB,QAAS,SAAUL,EAASC,EAASK,EAAiBH,EAAiBntF,GAQnE,GANAstF,EAAkBA,GAAmB,KACrCH,EAAkBA,GAAmB,KACrCntF,EAAkBA,GAAmBstF,EAErCt5H,KAAK+3H,OAAS,GAETt3H,MAAMyT,QAAQ8kH,IAAYv4H,MAAMyT,QAAQ+kH,GAEzC,IAAK,GAAIx1H,GAAI,EAAGA,EAAIw1H,EAAQv1H,OAAQD,IAEhCzD,KAAKo5H,eAAeJ,EAASC,EAAQx1H,GAAI61H,EAAiBH,EAAiBntF,GAAiB,OAG/F,IAAIvrC,MAAMyT,QAAQ8kH,KAAav4H,MAAMyT,QAAQ+kH,GAE9C,IAAK,GAAIx1H,GAAI,EAAGA,EAAIu1H,EAAQt1H,OAAQD,IAEhCzD,KAAKo5H,eAAeJ,EAAQv1H,GAAIw1H,EAASK,EAAiBH,EAAiBntF,GAAiB,OAG/F,IAAIvrC,MAAMyT,QAAQ8kH,IAAYv4H,MAAMyT,QAAQ+kH,GAE7C,IAAK,GAAIx1H,GAAI,EAAGA,EAAIu1H,EAAQt1H,OAAQD,IAEhC,IAAK,GAAIa,GAAI,EAAGA,EAAI20H,EAAQv1H,OAAQY,IAEhCtE,KAAKo5H,eAAeJ,EAAQv1H,GAAIw1H,EAAQ30H,GAAIg1H,EAAiBH,EAAiBntF,GAAiB,OAMvGhsC,MAAKo5H,eAAeJ,EAASC,EAASK,EAAiBH,EAAiBntF,GAAiB,EAG7F,OAAQhsC,MAAK+3H,OAAS,GAc1BwB,cAAe,SAAUx0H,EAAGC,GAExB,MAAKD,GAAEmxC,MAASlxC,EAAEkxC,KAKXnxC,EAAEmxC,KAAKxwC,EAAIV,EAAEkxC,KAAKxwC,EAHd,GAiBf8zH,cAAe,SAAUz0H,EAAGC,GAExB,MAAKD,GAAEmxC,MAASlxC,EAAEkxC,KAKXlxC,EAAEkxC,KAAKxwC,EAAIX,EAAEmxC,KAAKxwC,EAHd,GAiBf+zH,cAAe,SAAU10H,EAAGC,GAExB,MAAKD,GAAEmxC,MAASlxC,EAAEkxC,KAKXnxC,EAAEmxC,KAAKvwC,EAAIX,EAAEkxC,KAAKvwC,EAHd,GAiBf+zH,cAAe,SAAU30H,EAAGC,GAExB,MAAKD,GAAEmxC,MAASlxC,EAAEkxC,KAKXlxC,EAAEkxC,KAAKvwC,EAAIZ,EAAEmxC,KAAKvwC,EAHd,GAoBf+zC,KAAM,SAAUoB,EAAO88E,GAEgB,OAA/B98E,EAAMzF,qBAENuiF,EAAgB98E,EAAMzF,qBAIA5rC,SAAlBmuH,IAA+BA,EAAgB53H,KAAK43H,eAGxDA,IAAkB9jG,EAAO8gB,QAAQonC,OAAO67C,WAGxC/8E,EAAMpF,KAAKgE,KAAK15C,KAAKu5H,eAEhB3B,IAAkB9jG,EAAO8gB,QAAQonC,OAAOi8C,WAG7Cn9E,EAAMpF,KAAKgE,KAAK15C,KAAKw5H,eAEhB5B,IAAkB9jG,EAAO8gB,QAAQonC,OAAOk8C,WAG7Cp9E,EAAMpF,KAAKgE,KAAK15C,KAAKy5H,eAEhB7B,IAAkB9jG,EAAO8gB,QAAQonC,OAAOm8C,YAG7Cr9E,EAAMpF,KAAKgE,KAAK15C,KAAK05H,gBAiB7BN,eAAgB,SAAUJ,EAASC,EAASK,EAAiBH,EAAiBntF,EAAiB2tF,GAG3F,MAAgBlwH,UAAZwvH,GAAyBD,EAAQlkF,cAAgBhhB,EAAO0C,OAExDx2B,KAAK05C,KAAKs/E,OACVh5H,MAAK45H,mBAAmBZ,EAASM,EAAiBH,EAAiBntF,EAAiB2tF,SAKnFX,GAAYC,GAAYD,EAAQ/mF,QAAWgnF,EAAQhnF,SAMpDjyC,KAAK43H,gBAAkB9jG,EAAO8gB,QAAQonC,OAAOg8C,YAEzCgB,EAAQlkF,cAAgBhhB,EAAO0C,OAE/Bx2B,KAAK05C,KAAKs/E,GAGVC,EAAQnkF,cAAgBhhB,EAAO0C,OAE/Bx2B,KAAK05C,KAAKu/E,IAKdD,EAAQlkF,cAAgBhhB,EAAOmC,OAE3BgjG,EAAQnkF,cAAgBhhB,EAAOmC,OAE/Bj2B,KAAK65H,sBAAsBb,EAASC,EAASK,EAAiBH,EAAiBntF,EAAiB2tF,GAE3FV,EAAQnkF,cAAgBhhB,EAAO0C,MAEpCx2B,KAAK85H,qBAAqBd,EAASC,EAASK,EAAiBH,EAAiBntF,EAAiB2tF,GAE1FV,EAAQnkF,cAAgBhhB,EAAO6C,cAEpC32B,KAAK+5H,4BAA4Bf,EAASC,EAASK,EAAiBH,EAAiBntF,EAAiB2tF,GAIrGX,EAAQlkF,cAAgBhhB,EAAO0C,MAEhCyiG,EAAQnkF,cAAgBhhB,EAAOmC,OAE/Bj2B,KAAK85H,qBAAqBb,EAASD,EAASM,EAAiBH,EAAiBntF,EAAiB2tF,GAE1FV,EAAQnkF,cAAgBhhB,EAAO0C,MAEpCx2B,KAAKg6H,oBAAoBhB,EAASC,EAASK,EAAiBH,EAAiBntF,EAAiB2tF,GAEzFV,EAAQnkF,cAAgBhhB,EAAO6C,cAEpC32B,KAAKi6H,2BAA2BjB,EAASC,EAASK,EAAiBH,EAAiBntF,EAAiB2tF,GAIpGX,EAAQlkF,cAAgBhhB,EAAO6C,eAEhCsiG,EAAQnkF,cAAgBhhB,EAAOmC,OAE/Bj2B,KAAK+5H,4BAA4Bd,EAASD,EAASM,EAAiBH,EAAiBntF,EAAiB2tF,GAEjGV,EAAQnkF,cAAgBhhB,EAAO0C,OAEpCx2B,KAAKi6H,2BAA2BhB,EAASD,EAASM,EAAiBH,EAAiBntF,EAAiB2tF,OAmBjHE,sBAAuB,SAAUK,EAASC,EAASb,EAAiBH,EAAiBntF,EAAiB2tF,GAElG,MAAKO,GAAQhkF,MAASikF,EAAQjkF,MAK1Bl2C,KAAKo6H,SAASF,EAAQhkF,KAAMikF,EAAQjkF,KAAMijF,EAAiBntF,EAAiB2tF,KAExEL,GAEAA,EAAgBxzH,KAAKkmC,EAAiBkuF,EAASC,GAGnDn6H,KAAK+3H,WAGF,IAbI,GA6Bf+B,qBAAsB,SAAUnwG,EAAQmxB,EAAOw+E,EAAiBH,EAAiBntF,EAAiB2tF,GAE9F,GAAqB,IAAjB7+E,EAAMp3C,QAAiBimB,EAAOusB,KAAlC,CAKA,GAAIA,EAEJ,IAAIl2C,KAAK83H,cAAgBnuG,EAAOusB,KAAK4hF,cAEjC,IAAK,GAAIr0H,GAAI,EAAGA,EAAIq3C,EAAMpF,KAAKhyC,OAAQD,IAGnC,GAAKq3C,EAAMpF,KAAKjyC,IAAOq3C,EAAMpF,KAAKjyC,GAAGwuC,QAAW6I,EAAMpF,KAAKjyC,GAAGyyC,KAA9D,CAQA,GAHAA,EAAO4E,EAAMpF,KAAKjyC,GAAGyyC,KAGjBl2C,KAAK43H,gBAAkB9jG,EAAO8gB,QAAQonC,OAAO67C,WACjD,CACI,GAAIluG,EAAOusB,KAAKtb,MAAQsb,EAAKxwC,EAEzB,KAEC,IAAIwwC,EAAKtb,MAAQjR,EAAOusB,KAAKxwC,EAE9B,aAGH,IAAI1F,KAAK43H,gBAAkB9jG,EAAO8gB,QAAQonC,OAAOi8C,WACtD,CACI,GAAItuG,EAAOusB,KAAKxwC,EAAIwwC,EAAKtb,MAErB,KAEC,IAAIsb,EAAKxwC,EAAIikB,EAAOusB,KAAKtb,MAE1B,aAGH,IAAI56B,KAAK43H,gBAAkB9jG,EAAO8gB,QAAQonC,OAAOk8C,WACtD,CACI,GAAIvuG,EAAOusB,KAAK7Y,OAAS6Y,EAAKvwC,EAE1B,KAEC,IAAIuwC,EAAK7Y,OAAS1T,EAAOusB,KAAKvwC,EAE/B,aAGH,IAAI3F,KAAK43H,gBAAkB9jG,EAAO8gB,QAAQonC,OAAOm8C,WACtD,CACI,GAAIxuG,EAAOusB,KAAKvwC,EAAIuwC,EAAK7Y,OAErB,KAEC,IAAI6Y,EAAKvwC,EAAIgkB,EAAOusB,KAAK7Y,OAE1B,SAIRr9B,KAAK65H,sBAAsBlwG,EAAQmxB,EAAMpF,KAAKjyC,GAAI61H,EAAiBH,EAAiBntF,EAAiB2tF,QAI7G,CAEI35H,KAAKyxH,SAASrtG,QAEdpkB,KAAKyxH,SAASh1G,MAAMzc,KAAK4E,KAAKE,MAAM4B,OAAOhB,EAAG1F,KAAK4E,KAAKE,MAAM4B,OAAOf,EAAG3F,KAAK4E,KAAKE,MAAM4B,OAAOG,MAAO7G,KAAK4E,KAAKE,MAAM4B,OAAOI,OAAQ9G,KAAKypG,WAAYzpG,KAAK0pG,WAE3J1pG,KAAKyxH,SAASznB,SAASlvD,EAIvB,KAAK,GAFDu/E,GAAQr6H,KAAKyxH,SAAStnB,SAASxgF,GAE1BlmB,EAAI,EAAGA,EAAI42H,EAAM32H,OAAQD,IAG1BzD,KAAKo6H,SAASzwG,EAAOusB,KAAMmkF,EAAM52H,GAAI01H,EAAiBntF,EAAiB2tF,KAEnEL,GAEAA,EAAgBxzH,KAAKkmC,EAAiBriB,EAAQ0wG,EAAM52H,GAAGkmB,QAG3D3pB,KAAK+3H,aAmBrB6B,mBAAoB,SAAU9+E,EAAOw+E,EAAiBH,EAAiBntF,EAAiB2tF,GAEpF,GAAqB,IAAjB7+E,EAAMp3C,OAKV,IAAK,GAAID,GAAI,EAAGA,EAAIq3C,EAAMpF,KAAKhyC,OAAQD,IAGnC,GAAKq3C,EAAMpF,KAAKjyC,IAAOq3C,EAAMpF,KAAKjyC,GAAGwuC,QAAW6I,EAAMpF,KAAKjyC,GAAGyyC,KAO9D,IAAK,GAFD8iF,GAAUl+E,EAAMpF,KAAKjyC,GAEhBa,EAAIb,EAAI,EAAGa,EAAIw2C,EAAMpF,KAAKhyC,OAAQY,IAGvC,GAAKw2C,EAAMpF,KAAKpxC,IAAOw2C,EAAMpF,KAAKpxC,GAAG2tC,QAAW6I,EAAMpF,KAAKpxC,GAAG4xC,KAA9D,CAKA,GAAI+iF,GAAUn+E,EAAMpF,KAAKpxC,EAGzB,IAAItE,KAAK43H,gBAAkB9jG,EAAO8gB,QAAQonC,OAAO67C,WACjD,CACI,GAAImB,EAAQ9iF,KAAKtb,MAAQq+F,EAAQ/iF,KAAKxwC,EAElC,KAEC,IAAIuzH,EAAQ/iF,KAAKtb,MAAQo+F,EAAQ9iF,KAAKxwC,EAEvC,aAGH,IAAI1F,KAAK43H,gBAAkB9jG,EAAO8gB,QAAQonC,OAAOi8C,WACtD,CACI,GAAIe,EAAQ9iF,KAAKxwC,EAAIuzH,EAAQ/iF,KAAKtb,MAE9B,QAEC,IAAIq+F,EAAQ/iF,KAAKxwC,EAAIszH,EAAQ9iF,KAAKtb,MAEnC,UAGH,IAAI56B,KAAK43H,gBAAkB9jG,EAAO8gB,QAAQonC,OAAOk8C,WACtD,CACI,GAAIc,EAAQ9iF,KAAK7Y,OAAS47F,EAAQ/iF,KAAKvwC,EAEnC,QAEC,IAAIszH,EAAQ/iF,KAAK7Y,OAAS27F,EAAQ9iF,KAAKvwC,EAExC,UAGH,IAAI3F,KAAK43H,gBAAkB9jG,EAAO8gB,QAAQonC,OAAOm8C,WACtD,CACI,GAAIa,EAAQ9iF,KAAKvwC,EAAIszH,EAAQ/iF,KAAK7Y,OAE9B,QAEC,IAAI47F,EAAQ/iF,KAAKvwC,EAAIqzH,EAAQ9iF,KAAK7Y,OAEnC,MAIRr9B,KAAK65H,sBAAsBb,EAASC,EAASK,EAAiBH,EAAiBntF,EAAiB2tF,KAkB5GK,oBAAqB,SAAUM,EAAQC,EAAQjB,EAAiBH,EAAiBntF,EAAiB2tF,GAE9F,GAAsB,IAAlBW,EAAO52H,QAAkC,IAAlB62H,EAAO72H,OAKlC,IAAK,GAAID,GAAI,EAAGA,EAAI62H,EAAO92H,SAASE,OAAQD,IAEpC62H,EAAO92H,SAASC,GAAGwuC,SAEfqoF,EAAO92H,SAASC,GAAGqxC,cAAgBhhB,EAAO0C,MAE1Cx2B,KAAKg6H,oBAAoBM,EAAO92H,SAASC,GAAI82H,EAAQjB,EAAiBH,EAAiBntF,EAAiB2tF,GAIxG35H,KAAK85H,qBAAqBQ,EAAO92H,SAASC,GAAI82H,EAAQjB,EAAiBH,EAAiBntF,EAAiB2tF,KAmBzHS,SAAU,SAAUI,EAAOC,EAAOtB,EAAiBntF,EAAiB2tF,GAEhE,IAAKa,EAAM52G,SAAW62G,EAAM72G,SAAW5jB,KAAKu9B,WAAWi9F,EAAOC,GAE1D,OAAO,CAIX,IAAItB,GAAmBA,EAAgBrzH,KAAKkmC,EAAiBwuF,EAAM7wG,OAAQ8wG,EAAM9wG,WAAY,EAEzF,OAAO,CAKX,IAAIrY,IAAS,CAYb,OAPIA,GAFAtR,KAAK23H,QAAUh3H,KAAKshB,IAAIjiB,KAAKw3H,QAAQ7xH,EAAI60H,EAAMhD,QAAQ7xH,GAAKhF,KAAKshB,IAAIjiB,KAAKw3H,QAAQ9xH,EAAI80H,EAAMhD,QAAQ9xH,GAE1F1F,KAAK06H,UAAUF,EAAOC,EAAOd,IAAgB35H,KAAK26H,UAAUH,EAAOC,EAAOd,GAI1E35H,KAAK26H,UAAUH,EAAOC,EAAOd,IAAgB35H,KAAK06H,UAAUF,EAAOC,EAAOd,GAGpFA,GAGO,EAIAroH,GAafisB,WAAY,SAAUi9F,EAAOC,GAEzB,MAAID,GAAM5/F,OAAS6/F,EAAMh5H,SAASiE,GAEvB,EAGP80H,EAAMn9F,QAAUo9F,EAAMh5H,SAASkE,GAExB,EAGP60H,EAAM/4H,SAASiE,GAAK+0H,EAAM7/F,OAEnB,EAGP4/F,EAAM/4H,SAASkE,GAAK80H,EAAMp9F,QAEnB,GAGJ,GAcXq9F,UAAW,SAAUF,EAAOC,EAAOd,GAG/B,GAAIa,EAAMI,WAAaH,EAAMG,UAEzB,OAAO,CAGX,IAAIvgD,GAAU,CAGd,IAAIr6E,KAAKu9B,WAAWi9F,EAAOC,GAC3B,CACI,GAAII,GAAaL,EAAMM,YAAcL,EAAMK,YAAc96H,KAAK03H,YAgD9D,IA9CuB,IAAnB8C,EAAM3kE,UAAqC,IAAnB4kE,EAAM5kE,UAG9B2kE,EAAMO,UAAW,EACjBN,EAAMM,UAAW,GAEZP,EAAM3kE,SAAW4kE,EAAM5kE,UAG5BwkB,EAAUmgD,EAAM5/F,MAAQ6/F,EAAM/0H,EAEzB20E,EAAUwgD,GAAeL,EAAM/C,eAAe78F,SAAU,GAAS6/F,EAAMhD,eAAe58F,QAAS,EAEhGw/C,EAAU,GAIVmgD,EAAMQ,SAASC,MAAO,EACtBT,EAAMQ,SAASpgG,OAAQ,EACvB6/F,EAAMO,SAASC,MAAO,EACtBR,EAAMO,SAASngG,MAAO,IAGrB2/F,EAAM3kE,SAAW4kE,EAAM5kE,WAG5BwkB,EAAUmgD,EAAM90H,EAAI+0H,EAAM5zH,MAAQ4zH,EAAM/0H,GAElC20E,EAAUwgD,GAAeL,EAAM/C,eAAe58F,QAAS,GAAS4/F,EAAMhD,eAAe78F,SAAU,EAEjGy/C,EAAU,GAIVmgD,EAAMQ,SAASC,MAAO,EACtBT,EAAMQ,SAASngG,MAAO,EACtB4/F,EAAMO,SAASC,MAAO,EACtBR,EAAMO,SAASpgG,OAAQ,IAK/B4/F,EAAMU,SAAW7gD,EACjBogD,EAAMS,SAAW7gD,EAGD,IAAZA,EACJ,CACI,GAAIs/C,GAAea,EAAMW,iBAAmBV,EAAMU,gBAE9C,OAAO,CAGX,IAAIrjC,GAAK0iC,EAAM7B,SAASjzH,EACpBqyF,EAAK0iC,EAAM9B,SAASjzH,CAExB,IAAK80H,EAAMI,WAAcH,EAAMG,UAiBrBJ,EAAMI,UAWNH,EAAMG,YAEZH,EAAM/0H,GAAK20E,EACXogD,EAAM9B,SAASjzH,EAAIoyF,EAAKC,EAAK0iC,EAAMW,OAAO11H,EAGtC80H,EAAMa,QAENZ,EAAM90H,IAAM60H,EAAM70H,EAAI60H,EAAMv3C,KAAKt9E,GAAK60H,EAAMc,SAAS31H,KAjBzD60H,EAAM90H,EAAI80H,EAAM90H,EAAI20E,EACpBmgD,EAAM7B,SAASjzH,EAAIqyF,EAAKD,EAAK0iC,EAAMY,OAAO11H,EAGtC+0H,EAAMY,QAENb,EAAM70H,IAAM80H,EAAM90H,EAAI80H,EAAMx3C,KAAKt9E,GAAK80H,EAAMa,SAAS31H,QAxB7D,CACI00E,GAAW,GAEXmgD,EAAM90H,EAAI80H,EAAM90H,EAAI20E,EACpBogD,EAAM/0H,GAAK20E,CAEX,IAAIkhD,GAAM56H,KAAKiF,KAAMmyF,EAAKA,EAAK0iC,EAAMe,KAAQhB,EAAMgB,OAAUzjC,EAAK,EAAK,EAAI,IACvE0jC,EAAM96H,KAAKiF,KAAMkyF,EAAKA,EAAK0iC,EAAMgB,KAAQf,EAAMe,OAAU1jC,EAAK,EAAK,EAAI,IACvE4jC,EAAoB,IAAbH,EAAME,EAEjBF,IAAOG,EACPD,GAAOC,EAEPlB,EAAM7B,SAASjzH,EAAIg2H,EAAMH,EAAMf,EAAMY,OAAO11H,EAC5C+0H,EAAM9B,SAASjzH,EAAIg2H,EAAMD,EAAMhB,EAAMW,OAAO11H,EAyBhD,OAAO,GAIf,OAAO,GAcXi1H,UAAW,SAAUH,EAAOC,EAAOd,GAG/B,GAAIa,EAAMI,WAAaH,EAAMG,UAEzB,OAAO,CAGX,IAAIvgD,GAAU,CAGd,IAAIr6E,KAAKu9B,WAAWi9F,EAAOC,GAC3B,CACI,GAAII,GAAaL,EAAMmB,YAAclB,EAAMkB,YAAc37H,KAAK03H,YAgD9D,IA9CuB,IAAnB8C,EAAM7lE,UAAqC,IAAnB8lE,EAAM9lE,UAG9B6lE,EAAMO,UAAW,EACjBN,EAAMM,UAAW,GAEZP,EAAM7lE,SAAW8lE,EAAM9lE,UAG5B0lB,EAAUmgD,EAAMn9F,OAASo9F,EAAM90H,EAE1B00E,EAAUwgD,GAAeL,EAAM/C,eAAe3qD,QAAS,GAAS2tD,EAAMhD,eAAe5qD,MAAO,EAE7FwN,EAAU,GAIVmgD,EAAMQ,SAASC,MAAO,EACtBT,EAAMQ,SAASluD,MAAO,EACtB2tD,EAAMO,SAASC,MAAO,EACtBR,EAAMO,SAASnuD,IAAK,IAGnB2tD,EAAM7lE,SAAW8lE,EAAM9lE,WAG5B0lB,EAAUmgD,EAAM70H,EAAI80H,EAAMp9F,QAEpBg9C,EAAUwgD,GAAeL,EAAM/C,eAAe5qD,MAAO,GAAS4tD,EAAMhD,eAAe3qD,QAAS,EAE9FuN,EAAU,GAIVmgD,EAAMQ,SAASC,MAAO,EACtBT,EAAMQ,SAASnuD,IAAK,EACpB4tD,EAAMO,SAASC,MAAO,EACtBR,EAAMO,SAASluD,MAAO,IAK9B0tD,EAAMoB,SAAWvhD,EACjBogD,EAAMmB,SAAWvhD,EAGD,IAAZA,EACJ,CACI,GAAIs/C,GAAea,EAAMqB,iBAAmBpB,EAAMoB,gBAE9C,OAAO,CAGX,IAAI/jC,GAAK0iC,EAAM7B,SAAShzH,EACpBoyF,EAAK0iC,EAAM9B,SAAShzH,CAExB,IAAK60H,EAAMI,WAAcH,EAAMG,UAiBrBJ,EAAMI,UAWNH,EAAMG,YAEZH,EAAM90H,GAAK00E,EACXogD,EAAM9B,SAAShzH,EAAImyF,EAAKC,EAAK0iC,EAAMW,OAAOz1H,EAGtC60H,EAAMa,QAENZ,EAAM/0H,IAAM80H,EAAM90H,EAAI80H,EAAMv3C,KAAKv9E,GAAK80H,EAAMc,SAAS51H,KAjBzD80H,EAAM70H,EAAI60H,EAAM70H,EAAI00E,EACpBmgD,EAAM7B,SAAShzH,EAAIoyF,EAAKD,EAAK0iC,EAAMY,OAAOz1H,EAGtC80H,EAAMY,QAENb,EAAM90H,IAAM+0H,EAAM/0H,EAAI+0H,EAAMx3C,KAAKv9E,GAAK+0H,EAAMa,SAAS51H,QAxB7D,CACI20E,GAAW,GAEXmgD,EAAM70H,EAAI60H,EAAM70H,EAAI00E,EACpBogD,EAAM90H,GAAK00E,CAEX,IAAIkhD,GAAM56H,KAAKiF,KAAMmyF,EAAKA,EAAK0iC,EAAMe,KAAQhB,EAAMgB,OAAUzjC,EAAK,EAAK,EAAI,IACvE0jC,EAAM96H,KAAKiF,KAAMkyF,EAAKA,EAAK0iC,EAAMgB,KAAQf,EAAMe,OAAU1jC,EAAK,EAAK,EAAI,IACvE4jC,EAAoB,IAAbH,EAAME,EAEjBF,IAAOG,EACPD,GAAOC,EAEPlB,EAAM7B,SAAShzH,EAAI+1H,EAAMH,EAAMf,EAAMY,OAAOz1H,EAC5C80H,EAAM9B,SAAShzH,EAAI+1H,EAAMD,EAAMhB,EAAMW,OAAOz1H,EAyBhD,OAAO,GAKf,OAAO,GAgBXm2H,uBAAwB,SAAU9qF,EAAS8J,EAAOnC,EAAU3M,GAExD,MAAqB,KAAjB8O,EAAMp3C,QAAiBstC,EAAQiB,OAK5BjyC,KAAK+7H,qBAAqB/qF,EAAQtrC,EAAGsrC,EAAQrrC,EAAGm1C,EAAOnC,EAAU3M,EAAiBgF,GALzF,QAuBJ+qF,qBAAsB,SAAUr2H,EAAGC,EAAGm1C,EAAOnC,EAAU3M,EAAiBgwF,GAEpEh8H,KAAKyxH,SAASrtG,QAEdpkB,KAAKyxH,SAASh1G,MAAMzc,KAAK4E,KAAKE,MAAM4B,OAAOhB,EAAG1F,KAAK4E,KAAKE,MAAM4B,OAAOf,EAAG3F,KAAK4E,KAAKE,MAAM4B,OAAOG,MAAO7G,KAAK4E,KAAKE,MAAM4B,OAAOI,OAAQ9G,KAAKypG,WAAYzpG,KAAK0pG,WAE3J1pG,KAAKyxH,SAASznB,SAASlvD,EAOvB,KAAK,GALDtpB,GAAO,GAAIsC,GAAO9wB,UAAU0C,EAAGC,EAAG,EAAG,GACrCk3B,KAEAw9F,EAAQr6H,KAAKyxH,SAAStnB,SAAS34E,GAE1B/tB,EAAI,EAAGA,EAAI42H,EAAM32H,OAAQD,IAE1B42H,EAAM52H,GAAGuuD,QAAQtsD,EAAGC,KAEhBgzC,GAEAA,EAAS7yC,KAAKkmC,EAAiBgwF,EAAa3B,EAAM52H,GAAGkmB,QAGzDkT,EAAOt4B,KAAK81H,EAAM52H,GAAGkmB,QAI7B,OAAOkT,IAmBXo/F,aAAc,SAAU13G,EAAeqiE,EAAa/4B,EAAOquE,GAEzCzyH,SAAVokD,IAAuBA,EAAQ,IACnBpkD,SAAZyyH,IAAyBA,EAAU,EAEvC,IAAIl/F,GAAQr8B,KAAKkF,MAAM+gF,EAAYjhF,EAAI4e,EAAc5e,EAAGihF,EAAYlhF,EAAI6e,EAAc7e,EAWtF,OATIw2H,GAAU,IAGVruE,EAAQ7tD,KAAKm8H,gBAAgB53G,EAAeqiE,IAAgBs1C,EAAU,MAG1E33G,EAAc2xB,KAAKyiF,SAASjzH,EAAI/E,KAAK8E,IAAIu3B,GAAS6wB,EAClDtpC,EAAc2xB,KAAKyiF,SAAShzH,EAAIhF,KAAK6E,IAAIw3B,GAAS6wB,EAE3C7wB,GAkBXo/F,cAAe,SAAU73G,EAAespC,EAAO7c,EAASkrF,GAEtCzyH,SAAVokD,IAAuBA,EAAQ,IACnC7c,EAAUA,GAAWhxC,KAAK4E,KAAKkkC,MAAM4e,cACrBj+C,SAAZyyH,IAAyBA,EAAU,EAEvC,IAAIl/F,GAAQh9B,KAAKq8H,eAAe93G,EAAeysB,EAW/C,OATIkrF,GAAU,IAGVruE,EAAQ7tD,KAAKs8H,kBAAkB/3G,EAAeysB,IAAYkrF,EAAU,MAGxE33G,EAAc2xB,KAAKyiF,SAASjzH,EAAI/E,KAAK8E,IAAIu3B,GAAS6wB,EAClDtpC,EAAc2xB,KAAKyiF,SAAShzH,EAAIhF,KAAK6E,IAAIw3B,GAAS6wB,EAE3C7wB,GAoBXu/F,SAAU,SAAUh4G,EAAe7e,EAAGC,EAAGkoD,EAAOquE,GAE9BzyH,SAAVokD,IAAuBA,EAAQ,IACnBpkD,SAAZyyH,IAAyBA,EAAU,EAEvC,IAAIl/F,GAAQr8B,KAAKkF,MAAMF,EAAI4e,EAAc5e,EAAGD,EAAI6e,EAAc7e,EAW9D,OATIw2H,GAAU,IAGVruE,EAAQ7tD,KAAKw8H,aAAaj4G,EAAe7e,EAAGC,IAAMu2H,EAAU,MAGhE33G,EAAc2xB,KAAKyiF,SAASjzH,EAAI/E,KAAK8E,IAAIu3B,GAAS6wB,EAClDtpC,EAAc2xB,KAAKyiF,SAAShzH,EAAIhF,KAAK6E,IAAIw3B,GAAS6wB,EAE3C7wB,GAcXy/F,kBAAmB,SAAUz/F,EAAO6wB,EAAO1wB,GAKvC,MAHc1zB,UAAVokD,IAAuBA,EAAQ,IACnC1wB,EAAQA,GAAS,GAAIrJ,GAAOpyB,MAErBy7B,EAAMZ,MAAO57B,KAAK8E,IAAIzF,KAAK4E,KAAKokC,KAAKxL,SAASR,IAAU6wB,EAASltD,KAAK6E,IAAIxF,KAAK4E,KAAKokC,KAAKxL,SAASR,IAAU6wB,IAcvH6uE,qBAAsB,SAAU36H,EAAU8rD,EAAO1wB,GAK7C,MAHc1zB,UAAVokD,IAAuBA,EAAQ,IACnC1wB,EAAQA,GAAS,GAAIrJ,GAAOpyB,MAErBy7B,EAAMZ,MAAO57B,KAAK8E,IAAI1D,GAAY8rD,EAASltD,KAAK6E,IAAIzD,GAAY8rD,IAc3E8uE,yBAA0B,SAAU56H,EAAU8rD,EAAO1wB,GAKjD,MAHc1zB,UAAVokD,IAAuBA,EAAQ,IACnC1wB,EAAQA,GAAS,GAAIrJ,GAAOpyB,MAErBy7B,EAAMZ,MAAO57B,KAAK8E,IAAI1D,GAAY8rD,EAASltD,KAAK6E,IAAIzD,GAAY8rD,IAkB3E+uE,mBAAoB,SAAUr4G,EAAeqiE,EAAa/4B,EAAOgvE,EAAWC,GAE1DrzH,SAAVokD,IAAuBA,EAAQ,IACjBpkD,SAAdozH,IAA2BA,EAAY,KACzBpzH,SAAdqzH,IAA2BA,EAAY,IAE3C,IAAI9/F,GAAQh9B,KAAKimG,aAAa1hF,EAAeqiE,EAK7C,OAHAriE,GAAc2xB,KAAK0iF,aAAar8F,MAAM57B,KAAK8E,IAAIu3B,GAAS6wB,EAAOltD,KAAK6E,IAAIw3B,GAAS6wB,GACjFtpC,EAAc2xB,KAAK4iF,YAAYv8F,MAAMsgG,EAAWC,GAEzC9/F,GAkBX+/F,oBAAqB,SAAUx4G,EAAeysB,EAAS6c,EAAOgvE,EAAWC,GAEvDrzH,SAAVokD,IAAuBA,EAAQ,IACnBpkD,SAAZunC,IAAyBA,EAAUhxC,KAAK4E,KAAKkkC,MAAM4e,eACrCj+C,SAAdozH,IAA2BA,EAAY,KACzBpzH,SAAdqzH,IAA2BA,EAAY,IAE3C,IAAI9/F,GAAQh9B,KAAKq8H,eAAe93G,EAAeysB,EAK/C,OAHAzsB,GAAc2xB,KAAK0iF,aAAar8F,MAAM57B,KAAK8E,IAAIu3B,GAAS6wB,EAAOltD,KAAK6E,IAAIw3B,GAAS6wB,GACjFtpC,EAAc2xB,KAAK4iF,YAAYv8F,MAAMsgG,EAAWC,GAEzC9/F,GAmBXggG,eAAgB,SAAUz4G,EAAe7e,EAAGC,EAAGkoD,EAAOgvE,EAAWC,GAE/CrzH,SAAVokD,IAAuBA,EAAQ,IACjBpkD,SAAdozH,IAA2BA,EAAY,KACzBpzH,SAAdqzH,IAA2BA,EAAY,IAE3C,IAAI9/F,GAAQh9B,KAAKi9H,UAAU14G,EAAe7e,EAAGC,EAK7C,OAHA4e,GAAc2xB,KAAK0iF,aAAar8F,MAAM57B,KAAK8E,IAAIu3B,GAAS6wB,EAAOltD,KAAK6E,IAAIw3B,GAAS6wB,GACjFtpC,EAAc2xB,KAAK4iF,YAAYv8F,MAAMsgG,EAAWC,GAEzC9/F,GAYXm/F,gBAAiB,SAAU3tH,EAAQ/J,GAE/B,GAAIkJ,GAAKa,EAAO9I,EAAIjB,EAAOiB,EACvBmI,EAAKW,EAAO7I,EAAIlB,EAAOkB,CAE3B,OAAOhF,MAAKiF,KAAK+H,EAAKA,EAAKE,EAAKA,IAepC2uH,aAAc,SAAUj4G,EAAe7e,EAAGC,GAEtC,GAAIgI,GAAK4W,EAAc7e,EAAIA,EACvBmI,EAAK0W,EAAc5e,EAAIA,CAE3B,OAAOhF,MAAKiF,KAAK+H,EAAKA,EAAKE,EAAKA,IAepCyuH,kBAAmB,SAAU/3G,EAAeysB,GAExCA,EAAUA,GAAWhxC,KAAK4E,KAAKkkC,MAAM4e,aAErC,IAAI/5C,GAAK4W,EAAc7e,EAAIsrC,EAAQy/E,OAC/B5iH,EAAK0W,EAAc5e,EAAIqrC,EAAQ0/E,MAEnC,OAAO/vH,MAAKiF,KAAK+H,EAAKA,EAAKE,EAAKA,IAYpCo4F,aAAc,SAAUz3F,EAAQ/J,GAE5B,GAAIkJ,GAAKlJ,EAAOiB,EAAI8I,EAAO9I,EACvBmI,EAAKpJ,EAAOkB,EAAI6I,EAAO7I,CAE3B,OAAOhF,MAAKkF,MAAMgI,EAAIF,IAa1BsvH,UAAW,SAAU14G,EAAe7e,EAAGC,GAEnC,GAAIgI,GAAKjI,EAAI6e,EAAc7e,EACvBmI,EAAKlI,EAAI4e,EAAc5e,CAE3B,OAAOhF,MAAKkF,MAAMgI,EAAIF,IAY1B0uH,eAAgB,SAAU93G,EAAeysB,GAErCA,EAAUA,GAAWhxC,KAAK4E,KAAKkkC,MAAM4e,aAErC,IAAI/5C,GAAKqjC,EAAQy/E,OAASlsG,EAAc7e,EACpCmI,EAAKmjC,EAAQ0/E,OAASnsG,EAAc5e,CAExC,OAAOhF,MAAKkF,MAAMgI,EAAIF,KAoB9BmmB,EAAO8gB,QAAQonC,OAAO21C,KAAO,SAAUhoG,GAKnC3pB,KAAK2pB,OAASA,EAKd3pB,KAAK4E,KAAO+kB,EAAO/kB,KAKnB5E,KAAK+W,KAAO+c,EAAO8gB,QAAQC,OAM3B70C,KAAK4jB,QAAS,EAKd5jB,KAAK6a,OAAS,GAAIiZ,GAAOpyB,MAMzB1B,KAAKyB,SAAW,GAAIqyB,GAAOpyB,MAAMioB,EAAOjkB,EAAGikB,EAAOhkB,GAMlD3F,KAAKijF,KAAO,GAAInvD,GAAOpyB,MAAM1B,KAAKyB,SAASiE,EAAG1F,KAAKyB,SAASkE,GAM5D3F,KAAKk9H,eAAgB,EAOrBl9H,KAAK+B,SAAW4nB,EAAO5nB,SAMvB/B,KAAKm9H,YAAcxzG,EAAO5nB,SAM1B/B,KAAK6G,MAAQ8iB,EAAO9iB,MAMpB7G,KAAK8G,OAAS6iB,EAAO7iB,OAMrB9G,KAAKyyF,YAAc9oE,EAAO9iB,MAM1B7G,KAAK0yF,aAAe/oE,EAAO7iB,OAEvB6iB,EAAO7hB,UAEP9H,KAAKyyF,YAAc9oE,EAAO7hB,QAAQqE,MAAMtF,MACxC7G,KAAK0yF,aAAe/oE,EAAO7hB,QAAQqE,MAAMrF,QAO7C9G,KAAK09B,UAAY/8B,KAAKshB,IAAI0H,EAAO9iB,MAAQ,GAMzC7G,KAAK49B,WAAaj9B,KAAKshB,IAAI0H,EAAO7iB,OAAS,GAM3C9G,KAAK2+B,OAAS,GAAI7K,GAAOpyB,MAAMioB,EAAOjkB,EAAI1F,KAAK09B,UAAW/T,EAAOhkB,EAAI3F,KAAK49B,YAK1E59B,KAAK24H,SAAW,GAAI7kG,GAAOpyB,MAM3B1B,KAAKo9H,YAAc,GAAItpG,GAAOpyB,MAAM,EAAG,GAKvC1B,KAAKq9H,SAAW,GAAIvpG,GAAOpyB,MAAM,EAAG,GAKpC1B,KAAK44H,aAAe,GAAI9kG,GAAOpyB,MAK/B1B,KAAK64H,KAAO,GAAI/kG,GAAOpyB,MAMvB1B,KAAK+4H,cAAe,EAKpB/4H,KAAKw3H,QAAU,GAAI1jG,GAAOpyB,MAAM,EAAG,GAKnC1B,KAAKo7H,OAAS,GAAItnG,GAAOpyB,MAMzB1B,KAAK84H,YAAc,GAAIhlG,GAAOpyB,MAAM,IAAO,KAK3C1B,KAAKs7H,SAAW,GAAIxnG,GAAOpyB,MAAM,EAAG,GAMpC1B,KAAKu4H,gBAAkB,EAMvBv4H,KAAKw4H,oBAAsB,EAM3Bx4H,KAAKy4H,YAAc,EAMnBz4H,KAAK04H,WAAa,IAMlB14H,KAAKw7H,KAAO,EAMZx7H,KAAKg9B,MAAQ,EAMbh9B,KAAK6tD,MAAQ,EAMb7tD,KAAKs9H,OAASxpG,EAAO8B,KAMrB51B,KAAK46H,WAAY,EASjB56H,KAAKq7H,OAAQ,EAQbr7H,KAAKm7H,iBAAkB,EAQvBn7H,KAAK67H,iBAAkB,EAMvB77H,KAAKk7H,SAAW,EAMhBl7H,KAAK47H,SAAW,EAMhB57H,KAAK+6H,UAAW,EAMhB/6H,KAAKu9H,oBAAqB,EAO1Bv9H,KAAKy3H,gBAAmBwD,MAAM,EAAOuC,KAAK,EAAM3wD,IAAI,EAAMC,MAAM,EAAMjyC,MAAM,EAAMD,OAAO,GAOzF56B,KAAKg7H,UAAaC,MAAM,EAAMpuD,IAAI,EAAOC,MAAM,EAAOjyC,MAAM,EAAOD,OAAO,GAM1E56B,KAAKy9H,aAAgBxC,MAAM,EAAMpuD,IAAI,EAAOC,MAAM,EAAOjyC,MAAM,EAAOD,OAAO,GAO7E56B,KAAK09H,SAAY7wD,IAAI,EAAOC,MAAM,EAAOjyC,MAAM,EAAOD,OAAO,GAO7D56B,KAAK29H,YAAc,GAAI7pG,GAAOpyB,MAK9B1B,KAAK4V,OAAQ,EAKb5V,KAAK83H,cAAe,EAUpB93H,KAAK49H,YAAa,EAMlB59H,KAAKs6E,QAAS,EAMdt6E,KAAK69H,IAAMl0G,EAAOhoB,MAAM+D,EAMxB1F,KAAK89H,IAAMn0G,EAAOhoB,MAAMgE,EAMxB3F,KAAKwgE,IAAM,EAMXxgE,KAAKygE,IAAM,GAIf3sC,EAAO8gB,QAAQonC,OAAO21C,KAAKtuH,WAQvB06H,aAAc,WAEV,GAAI/9H,KAAK49H,WACT,CACI,GAAI54H,GAAIhF,KAAK2pB,OAAO3jB,WACpBhB,GAAEg/B,WAEEh/B,EAAE6B,QAAU7G,KAAK6G,OAAS7B,EAAE8B,SAAW9G,KAAK8G,UAE5C9G,KAAK6G,MAAQ7B,EAAE6B,MACf7G,KAAK8G,OAAS9B,EAAE8B,OAChB9G,KAAKs6E,QAAS,OAItB,CACI,GAAI0jD,GAAMr9H,KAAKshB,IAAIjiB,KAAK2pB,OAAOhoB,MAAM+D,GACjCu4H,EAAMt9H,KAAKshB,IAAIjiB,KAAK2pB,OAAOhoB,MAAMgE,IAEjCq4H,IAAQh+H,KAAK69H,KAAOI,IAAQj+H,KAAK89H,OAEjC99H,KAAK6G,MAAQ7G,KAAKyyF,YAAcurC,EAChCh+H,KAAK8G,OAAS9G,KAAK0yF,aAAeurC,EAClCj+H,KAAK69H,IAAMG,EACXh+H,KAAK89H,IAAMG,EACXj+H,KAAKs6E,QAAS,GAIlBt6E,KAAKs6E,SAELt6E,KAAK09B,UAAY/8B,KAAKq3B,MAAMh4B,KAAK6G,MAAQ,GACzC7G,KAAK49B,WAAaj9B,KAAKq3B,MAAMh4B,KAAK8G,OAAS,GAC3C9G,KAAK2+B,OAAOpC,MAAMv8B,KAAKyB,SAASiE,EAAI1F,KAAK09B,UAAW19B,KAAKyB,SAASkE,EAAI3F,KAAK49B,cAWnFt3B,UAAW,WAEFtG,KAAK4jB,SAAU5jB,KAAK4E,KAAKykC,QAAQwtF,OAAOpmB,WAK7CzwG,KAAK4V,OAAQ,EAGb5V,KAAKy9H,YAAYxC,KAAOj7H,KAAKg7H,SAASC,KACtCj7H,KAAKy9H,YAAY5wD,GAAK7sE,KAAKg7H,SAASnuD,GACpC7sE,KAAKy9H,YAAY3wD,KAAO9sE,KAAKg7H,SAASluD,KACtC9sE,KAAKy9H,YAAY5iG,KAAO76B,KAAKg7H,SAASngG,KACtC76B,KAAKy9H,YAAY7iG,MAAQ56B,KAAKg7H,SAASpgG,MAEvC56B,KAAKg7H,SAASC,MAAO,EACrBj7H,KAAKg7H,SAASnuD,IAAK,EACnB7sE,KAAKg7H,SAASluD,MAAO,EACrB9sE,KAAKg7H,SAASngG,MAAO,EACrB76B,KAAKg7H,SAASpgG,OAAQ,EAEtB56B,KAAK09H,QAAQ7wD,IAAK,EAClB7sE,KAAK09H,QAAQ5wD,MAAO,EACpB9sE,KAAK09H,QAAQ7iG,MAAO,EACpB76B,KAAK09H,QAAQ9iG,OAAQ,EAErB56B,KAAK+6H,UAAW,EAEhB/6H,KAAK+9H,eAEL/9H,KAAKyB,SAASiE,EAAK1F,KAAK2pB,OAAO7kB,MAAMY,EAAK1F,KAAK2pB,OAAOzhB,OAAOxC,EAAI1F,KAAK6G,MAAU7G,KAAK6a,OAAOnV,EAC5F1F,KAAKyB,SAASkE,EAAK3F,KAAK2pB,OAAO7kB,MAAMa,EAAK3F,KAAK2pB,OAAOzhB,OAAOvC,EAAI3F,KAAK8G,OAAW9G,KAAK6a,OAAOlV,EAC7F3F,KAAK+B,SAAW/B,KAAK2pB,OAAOqT,MAE5Bh9B,KAAKm9H,YAAcn9H,KAAK+B,UAEpB/B,KAAKs6E,QAAUt6E,KAAK2pB,OAAO+qD,SAE3B10E,KAAKijF,KAAKv9E,EAAI1F,KAAKyB,SAASiE,EAC5B1F,KAAKijF,KAAKt9E,EAAI3F,KAAKyB,SAASkE,GAG5B3F,KAAKq7H,QAELr7H,KAAK4E,KAAKykC,QAAQwtF,OAAOuB,aAAap4H,MAEtCA,KAAKo9H,YAAYp5H,IAAIhE,KAAK24H,SAASjzH,EAAI1F,KAAK4E,KAAKskC,KAAK80C,eAAgBh+E,KAAK24H,SAAShzH,EAAI3F,KAAK4E,KAAKskC,KAAK80C,gBAEvGh+E,KAAKyB,SAASiE,GAAK1F,KAAKo9H,YAAY13H,EACpC1F,KAAKyB,SAASkE,GAAK3F,KAAKo9H,YAAYz3H,GAEhC3F,KAAKyB,SAASiE,IAAM1F,KAAKijF,KAAKv9E,GAAK1F,KAAKyB,SAASkE,IAAM3F,KAAKijF,KAAKt9E,KAEjE3F,KAAK6tD,MAAQltD,KAAKiF,KAAK5F,KAAK24H,SAASjzH,EAAI1F,KAAK24H,SAASjzH,EAAI1F,KAAK24H,SAAShzH,EAAI3F,KAAK24H,SAAShzH,GAC3F3F,KAAKg9B,MAAQr8B,KAAKkF,MAAM7F,KAAK24H,SAAShzH,EAAG3F,KAAK24H,SAASjzH,IAMvD1F,KAAKu9H,oBAELv9H,KAAK4zE,oBAIb5zE,KAAKwgE,IAAMxgE,KAAK61D,SAChB71D,KAAKygE,IAAMzgE,KAAK20D,SAEhB30D,KAAKs6E,QAAS,IAUlBvoC,WAAY,WAGH/xC,KAAK4jB,QAAW5jB,KAAK4V,QAK1B5V,KAAK4V,OAAQ,EAET5V,KAAK61D,SAAW,EAEhB71D,KAAKs9H,OAASxpG,EAAO+B,KAEhB71B,KAAK61D,SAAW,IAErB71D,KAAKs9H,OAASxpG,EAAOgC,OAGrB91B,KAAK20D,SAAW,EAEhB30D,KAAKs9H,OAASxpG,EAAOiC,GAEhB/1B,KAAK20D,SAAW,IAErB30D,KAAKs9H,OAASxpG,EAAOkC,MAGrBh2B,KAAKq7H,QAELr7H,KAAKwgE,IAAMxgE,KAAK61D,SAChB71D,KAAKygE,IAAMzgE,KAAK20D,SAEQ,IAApB30D,KAAKq9H,SAAS33H,GAAwB,IAAb1F,KAAKwgE,MAE1BxgE,KAAKwgE,IAAM,GAAKxgE,KAAKwgE,KAAOxgE,KAAKq9H,SAAS33H,EAE1C1F,KAAKwgE,KAAOxgE,KAAKq9H,SAAS33H,EAErB1F,KAAKwgE,IAAM,GAAKxgE,KAAKwgE,IAAMxgE,KAAKq9H,SAAS33H,IAE9C1F,KAAKwgE,IAAMxgE,KAAKq9H,SAAS33H,IAIT,IAApB1F,KAAKq9H,SAAS13H,GAAwB,IAAb3F,KAAKygE,MAE1BzgE,KAAKygE,IAAM,GAAKzgE,KAAKygE,KAAOzgE,KAAKq9H,SAAS13H,EAE1C3F,KAAKygE,KAAOzgE,KAAKq9H,SAAS13H,EAErB3F,KAAKygE,IAAM,GAAKzgE,KAAKygE,IAAMzgE,KAAKq9H,SAAS13H,IAE9C3F,KAAKygE,IAAMzgE,KAAKq9H,SAAS13H,IAIjC3F,KAAK2pB,OAAOloB,SAASiE,GAAK1F,KAAKwgE,IAC/BxgE,KAAK2pB,OAAOloB,SAASkE,GAAK3F,KAAKygE,IAC/BzgE,KAAKs6E,QAAS,GAGlBt6E,KAAK2+B,OAAOpC,MAAMv8B,KAAKyB,SAASiE,EAAI1F,KAAK09B,UAAW19B,KAAKyB,SAASkE,EAAI3F,KAAK49B,YAEvE59B,KAAKk9H,gBAELl9H,KAAK2pB,OAAOqT,OAASh9B,KAAK+1D,UAG9B/1D,KAAKijF,KAAKv9E,EAAI1F,KAAKyB,SAASiE,EAC5B1F,KAAKijF,KAAKt9E,EAAI3F,KAAKyB,SAASkE,IAShCpC,QAAS,WAEDvD,KAAK2pB,OAAOvnB,QAAUpC,KAAK2pB,OAAOvnB,iBAAkB0xB,GAAO0gB,OAE3Dx0C,KAAK2pB,OAAOvnB,OAAOk0C,eAAet2C,KAAK2pB,QAG3C3pB,KAAK2pB,OAAOusB,KAAO,KACnBl2C,KAAK2pB,OAAS,MAUlBiqD,iBAAkB,WAEd,GAAIrzC,GAAMvgC,KAAKyB,SACXiF,EAAS1G,KAAK4E,KAAKykC,QAAQwtF,OAAOnwH,OAClCw3H,EAAQl+H,KAAK4E,KAAKykC,QAAQwtF,OAAOY,cAEjCl3F,GAAI76B,EAAIgB,EAAOhB,GAAKw4H,EAAMrjG,MAE1B0F,EAAI76B,EAAIgB,EAAOhB,EACf1F,KAAK24H,SAASjzH,IAAM1F,KAAKo7H,OAAO11H,EAChC1F,KAAK09H,QAAQ7iG,MAAO,GAEf76B,KAAK46B,MAAQl0B,EAAOk0B,OAASsjG,EAAMtjG,QAExC2F,EAAI76B,EAAIgB,EAAOk0B,MAAQ56B,KAAK6G,MAC5B7G,KAAK24H,SAASjzH,IAAM1F,KAAKo7H,OAAO11H,EAChC1F,KAAK09H,QAAQ9iG,OAAQ,GAGrB2F,EAAI56B,EAAIe,EAAOf,GAAKu4H,EAAMrxD,IAE1BtsC,EAAI56B,EAAIe,EAAOf,EACf3F,KAAK24H,SAAShzH,IAAM3F,KAAKo7H,OAAOz1H,EAChC3F,KAAK09H,QAAQ7wD,IAAK,GAEb7sE,KAAKq9B,OAAS32B,EAAO22B,QAAU6gG,EAAMpxD,OAE1CvsC,EAAI56B,EAAIe,EAAO22B,OAASr9B,KAAK8G,OAC7B9G,KAAK24H,SAAShzH,IAAM3F,KAAKo7H,OAAOz1H,EAChC3F,KAAK09H,QAAQ5wD,MAAO;EAgB5BpmC,QAAS,SAAU7/B,EAAOC,EAAQ0jB,EAASC,GAEvBhhB,SAAZ+gB,IAAyBA,EAAUxqB,KAAK6a,OAAOnV,GACnC+D,SAAZghB,IAAyBA,EAAUzqB,KAAK6a,OAAOlV,GAEnD3F,KAAKyyF,YAAc5rF,EACnB7G,KAAK0yF,aAAe5rF,EACpB9G,KAAK6G,MAAQ7G,KAAKyyF,YAAczyF,KAAK69H,IACrC79H,KAAK8G,OAAS9G,KAAK0yF,aAAe1yF,KAAK89H,IACvC99H,KAAK09B,UAAY/8B,KAAKq3B,MAAMh4B,KAAK6G,MAAQ,GACzC7G,KAAK49B,WAAaj9B,KAAKq3B,MAAMh4B,KAAK8G,OAAS,GAC3C9G,KAAK6a,OAAO0hB,MAAM/R,EAASC,GAE3BzqB,KAAK2+B,OAAOpC,MAAMv8B,KAAKyB,SAASiE,EAAI1F,KAAK09B,UAAW19B,KAAKyB,SAASkE,EAAI3F,KAAK49B,aAW/EnhB,MAAO,SAAU/W,EAAGC,GAEhB3F,KAAK24H,SAAS30H,IAAI,GAClBhE,KAAK44H,aAAa50H,IAAI,GAEtBhE,KAAK6tD,MAAQ,EACb7tD,KAAKu4H,gBAAkB,EACvBv4H,KAAKw4H,oBAAsB,EAE3Bx4H,KAAKyB,SAASiE,EAAKA,EAAK1F,KAAK2pB,OAAOzhB,OAAOxC,EAAI1F,KAAK6G,MAAU7G,KAAK6a,OAAOnV,EAC1E1F,KAAKyB,SAASkE,EAAKA,EAAK3F,KAAK2pB,OAAOzhB,OAAOvC,EAAI3F,KAAK8G,OAAW9G,KAAK6a,OAAOlV,EAE3E3F,KAAKijF,KAAKv9E,EAAI1F,KAAKyB,SAASiE,EAC5B1F,KAAKijF,KAAKt9E,EAAI3F,KAAKyB,SAASkE,EAE5B3F,KAAK+B,SAAW/B,KAAK2pB,OAAOqT,MAC5Bh9B,KAAKm9H,YAAcn9H,KAAK+B,SAExB/B,KAAK69H,IAAM79H,KAAK2pB,OAAOhoB,MAAM+D,EAC7B1F,KAAK89H,IAAM99H,KAAK2pB,OAAOhoB,MAAMgE,EAE7B3F,KAAK2+B,OAAOpC,MAAMv8B,KAAKyB,SAASiE,EAAI1F,KAAK09B,UAAW19B,KAAKyB,SAASkE,EAAI3F,KAAK49B,aAY/Eo0B,QAAS,SAAUtsD,EAAGC,GAClB,MAAOmuB,GAAO9wB,UAAU85B,SAAS98B,KAAM0F,EAAGC,IAS9Cw4H,QAAS,WACL,MAAOn+H,MAAK09H,QAAQ5wD,MASxBsxD,OAAQ,WACJ,MAAQp+H,MAAK09H,QAAQ7iG,MAAQ76B,KAAK09H,QAAQ9iG,OAS9CkgG,UAAW,WACP,MAAQ96H,MAAK61D,SAAW,EAAI71D,KAAK61D,UAAY71D,KAAK61D,UAStD8lE,UAAW,WACP,MAAQ37H,MAAK20D,SAAW,EAAI30D,KAAK20D,UAAY30D,KAAK20D,UAStDkB,OAAQ,WACJ,MAAO71D,MAAKyB,SAASiE,EAAI1F,KAAKijF,KAAKv9E,GASvCivD,OAAQ,WACJ,MAAO30D,MAAKyB,SAASkE,EAAI3F,KAAKijF,KAAKt9E,GASvCowD,OAAQ,WACJ,MAAO/1D,MAAK+B,SAAW/B,KAAKm9H,cAUpCv5H,OAAOC,eAAeiwB,EAAO8gB,QAAQonC,OAAO21C,KAAKtuH,UAAW,UAExDS,IAAK,WACD,MAAO9D,MAAKyB,SAASkE,EAAI3F,KAAK8G,UAUtClD,OAAOC,eAAeiwB,EAAO8gB,QAAQonC,OAAO21C,KAAKtuH,UAAW,SAExDS,IAAK,WACD,MAAO9D,MAAKyB,SAASiE,EAAI1F,KAAK6G,SAStCjD,OAAOC,eAAeiwB,EAAO8gB,QAAQonC,OAAO21C,KAAKtuH,UAAW,KAExDS,IAAK,WACD,MAAO9D,MAAKyB,SAASiE,GAGzB1B,IAAK,SAAUC,GAEXjE,KAAKyB,SAASiE,EAAIzB,KAS1BL,OAAOC,eAAeiwB,EAAO8gB,QAAQonC,OAAO21C,KAAKtuH,UAAW,KAExDS,IAAK,WACD,MAAO9D,MAAKyB,SAASkE,GAGzB3B,IAAK,SAAUC,GAEXjE,KAAKyB,SAASkE,EAAI1B,KAe1B6vB,EAAO8gB,QAAQonC,OAAO21C,KAAK3qH,OAAS,SAAUoG,EAAS8oC,EAAM37B,EAAOy2G,GAEjDvnH,SAAXunH,IAAwBA,GAAS,GAErCz2G,EAAQA,GAAS,oBAEby2G,GAEA5jH,EAAQyhB,UAAYtU,EACpBnN,EAAQ0hB,SAASonB,EAAKz0C,SAASiE,EAAIwwC,EAAKtxC,KAAKgkC,OAAOljC,EAAGwwC,EAAKz0C,SAASkE,EAAIuwC,EAAKtxC,KAAKgkC,OAAOjjC,EAAGuwC,EAAKrvC,MAAOqvC,EAAKpvC,UAI9GsG,EAAQkjB,YAAc/V,EACtBnN,EAAQojB,WAAW0lB,EAAKz0C,SAASiE,EAAIwwC,EAAKtxC,KAAKgkC,OAAOljC,EAAGwwC,EAAKz0C,SAASkE,EAAIuwC,EAAKtxC,KAAKgkC,OAAOjjC,EAAGuwC,EAAKrvC,MAAOqvC,EAAKpvC,UAcxHgtB,EAAO8gB,QAAQonC,OAAO21C,KAAKO,eAAiB,SAAUplF,EAAOoJ,GAEzDpJ,EAAMhO,KAAK,MAAQoX,EAAKxwC,EAAEurC,QAAQ,GAAI,MAAQiF,EAAKvwC,EAAEsrC,QAAQ,GAAI,UAAYiF,EAAKrvC,MAAO,WAAaqvC,EAAKpvC,QAC3GgmC,EAAMhO,KAAK,eAAiBoX,EAAKyiF,SAASjzH,EAAEurC,QAAQ,GAAI,MAAQiF,EAAKyiF,SAAShzH,EAAEsrC,QAAQ,GAAI,WAAaiF,EAAKsqB,IAAIvvB,QAAQ,GAAI,WAAaiF,EAAKuqB,IAAIxvB,QAAQ,IAC5JnE,EAAMhO,KAAK,mBAAqBoX,EAAK0iF,aAAalzH,EAAEurC,QAAQ,GAAI,MAAQiF,EAAK0iF,aAAajzH,EAAEsrC,QAAQ,GAAI,UAAYiF,EAAK2X,MAAM5c,QAAQ,GAAI,UAAYiF,EAAKlZ,MAAMiU,QAAQ,IAC1KnE,EAAMhO,KAAK,cAAgBoX,EAAKshF,QAAQ9xH,EAAG,MAAQwwC,EAAKshF,QAAQ7xH,EAAG,aAAeuwC,EAAKklF,OAAO11H,EAAEurC,QAAQ,GAAI,MAAQiF,EAAKklF,OAAOz1H,EAAEsrC,QAAQ,IAC1InE,EAAMhO,KAAK,kBAAoBoX,EAAK8kF,SAASngG,KAAM,UAAYqb,EAAK8kF,SAASpgG,MAAO,OAASsb,EAAK8kF,SAASnuD,GAAI,SAAW32B,EAAK8kF,SAASluD,MACxIhgC,EAAMhO,KAAK,iBAAmBoX,EAAKwnF,QAAQ7iG,KAAM,UAAYqb,EAAKwnF,QAAQ9iG,MAAO,OAASsb,EAAKwnF,QAAQ7wD,GAAI,SAAW32B,EAAKwnF,QAAQ5wD,OAIvIh5C,EAAO8gB,QAAQonC,OAAO21C,KAAKtuH,UAAUC,YAAcwwB,EAAO8gB,QAAQonC,OAAO21C,KAQzE79F,EAAO8gB,QAAQonC,OAAOqiD,iBAAmB,aAWzCvqG,EAAO8gB,QAAQonC,OAAOqiD,iBAAiBh7H,WAKnCi7H,UAAW,GAcXvE,4BAA6B,SAAUpwG,EAAQ40G,EAAcjF,EAAiBH,EAAiBntF,EAAiB2tF,GAE5G,GAAKhwG,EAAOusB,KAAZ,CAKA,GAAImmE,GAAUkiB,EAAaC,SACvB70G,EAAOusB,KAAKz0C,SAASiE,EAAIikB,EAAOusB,KAAKynF,YAAYj4H,EACjDikB,EAAOusB,KAAKz0C,SAASkE,EAAIgkB,EAAOusB,KAAKynF,YAAYh4H,EACjDgkB,EAAOusB,KAAKrvC,MAAQ8iB,EAAOusB,KAAKynF,YAAYj4H,EAC5CikB,EAAOusB,KAAKpvC,OAAS6iB,EAAOusB,KAAKynF,YAAYh4H,GAC7C,GAAO,EAEX,IAAuB,IAAnB02G,EAAQ34G,OAKZ,IAAK,GAAID,GAAI,EAAGA,EAAI44G,EAAQ34G,OAAQD,IAE5B01H,EAEIA,EAAgBrzH,KAAKkmC,EAAiBriB,EAAQ0yF,EAAQ54G,KAElDzD,KAAKy+H,aAAah7H,EAAGkmB,EAAOusB,KAAMmmE,EAAQ54G,GAAIk2H,KAE9C35H,KAAK+3H,SAEDuB,GAEAA,EAAgBxzH,KAAKkmC,EAAiBriB,EAAQ0yF,EAAQ54G,KAO9DzD,KAAKy+H,aAAah7H,EAAGkmB,EAAOusB,KAAMmmE,EAAQ54G,GAAIk2H,KAE9C35H,KAAK+3H,SAEDuB,GAEAA,EAAgBxzH,KAAKkmC,EAAiBriB,EAAQ0yF,EAAQ54G,OAoB1Ew2H,2BAA4B,SAAUn/E,EAAOyjF,EAAcjF,EAAiBH,EAAiBntF,EAAiB2tF,GAE1G,GAAqB,IAAjB7+E,EAAMp3C,OAKV,IAAK,GAAID,GAAI,EAAGA,EAAIq3C,EAAMt3C,SAASE,OAAQD,IAEnCq3C,EAAMt3C,SAASC,GAAGwuC,QAElBjyC,KAAK+5H,4BAA4Bj/E,EAAMt3C,SAASC,GAAI86H,EAAcjF,EAAiBH,EAAiBntF,EAAiB2tF,IAejI8E,aAAc,SAAUh7H,EAAGyyC,EAAMwoF,EAAM/E,GAEnC,IAAKzjF,EAAKtyB,OAEN,OAAO,CAIX,KAAK86G,EAAKnhG,WAAW2Y,EAAKz0C,SAASiE,EAAGwwC,EAAKz0C,SAASkE,EAAGuwC,EAAKtb,MAAOsb,EAAK7Y,QAGpE,OAAO,CAEN,IAAIs8F,EAGL,OAAO,CAMX,IAAI+E,EAAKC,oBAAsBD,EAAKC,kBAAkB74H,KAAK44H,EAAKE,yBAA0B1oF,EAAKvsB,OAAQ+0G,GAGnG,OAAO,CAEN,IAAIA,EAAKvhF,MAAM2mB,UAAU46D,EAAKh2H,SAAWg2H,EAAKvhF,MAAM2mB,UAAU46D,EAAKh2H,OAAOiwC,SAAS7yC,KAAK44H,EAAKvhF,MAAM2mB,UAAU46D,EAAKh2H,OAAOsjC,gBAAiBkK,EAAKvsB,OAAQ+0G,GAGxJ,OAAO,CAIX,MAAKA,EAAKG,UAAaH,EAAKI,WAAcJ,EAAKK,SAAYL,EAAKM,YAG5D,OAAO,CAGX,IAAIruG,GAAK,EACLC,EAAK,EACLvmB,EAAO,EACPE,EAAO,CAoBX,IAlBI2rC,EAAK4kF,YAAc5kF,EAAKylF,YAGxBtxH,EAAO,GAEF6rC,EAAK4kF,YAAc5kF,EAAKylF,cAG7BpxH,EAAO,IAGW,IAAlB2rC,EAAK2f,UAAoC,IAAlB3f,EAAKye,WAAmB+pE,EAAKG,UAAYH,EAAKI,aAAeJ,EAAKK,SAAWL,EAAKM,cAGzG30H,EAAO1J,KAAK0wB,IAAI1wB,KAAKshB,IAAIi0B,EAAKz0C,SAASiE,EAAIg5H,EAAK9jG,OAAQj6B,KAAKshB,IAAIi0B,EAAKtb,MAAQ8jG,EAAK7jG,OACnFtwB,EAAO5J,KAAK0wB,IAAI1wB,KAAKshB,IAAIi0B,EAAKz0C,SAASkE,EAAI+4H,EAAKrhG,QAAS18B,KAAKshB,IAAIi0B,EAAK7Y,OAASqhG,EAAKthG,OAG9E7yB,EAAPF,EACJ,CACI,IAAIq0H,EAAKG,UAAYH,EAAKI,aAEtBnuG,EAAK3wB,KAAKi/H,WAAW/oF,EAAMwoF,GAGhB,IAAP/tG,IAAa+tG,EAAKnhG,WAAW2Y,EAAKz0C,SAASiE,EAAGwwC,EAAKz0C,SAASkE,EAAGuwC,EAAKtb,MAAOsb,EAAK7Y,SAEhF,OAAO,GAIXqhG,EAAKK,SAAWL,EAAKM,cAErBpuG,EAAK5wB,KAAKk/H,WAAWhpF,EAAMwoF,QAInC,CACI,IAAIA,EAAKK,SAAWL,EAAKM,cAErBpuG,EAAK5wB,KAAKk/H,WAAWhpF,EAAMwoF,GAGhB,IAAP9tG,IAAa8tG,EAAKnhG,WAAW2Y,EAAKz0C,SAASiE,EAAGwwC,EAAKz0C,SAASkE,EAAGuwC,EAAKtb,MAAOsb,EAAK7Y,SAEhF,OAAO,GAIXqhG,EAAKG,UAAYH,EAAKI,aAEtBnuG,EAAK3wB,KAAKi/H,WAAW/oF,EAAMwoF,IAInC,MAAe,KAAP/tG,GAAmB,IAAPC,GAaxBquG,WAAY,SAAU/oF,EAAMwoF,GAExB,GAAI/tG,GAAK,CAyCT,OAvCIulB,GAAK2f,SAAW,IAAM3f,EAAKwnF,QAAQ7iG,MAAQ6jG,EAAKS,cAAgBjpF,EAAKuhF,eAAe58F,KAGhF6jG,EAAKI,WAAa5oF,EAAKxwC,EAAIg5H,EAAK9jG,QAEhCjK,EAAKulB,EAAKxwC,EAAIg5H,EAAK9jG,MAEfjK,GAAM3wB,KAAKs+H,YAEX3tG,EAAK,IAIRulB,EAAK2f,SAAW,IAAM3f,EAAKwnF,QAAQ9iG,OAAS8jG,EAAKU,aAAelpF,EAAKuhF,eAAe78F,OAGrF8jG,EAAKG,UAAY3oF,EAAKtb,MAAQ8jG,EAAK7jG,OAEnClK,EAAKulB,EAAKtb,MAAQ8jG,EAAK7jG,KAEnBlK,EAAK3wB,KAAKs+H,YAEV3tG,EAAK,IAKN,IAAPA,IAEIulB,EAAKilF,gBAELjlF,EAAKglF,SAAWvqG,EAIhB3wB,KAAKq/H,uBAAuBnpF,EAAMvlB,IAInCA,GAaXuuG,WAAY,SAAUhpF,EAAMwoF,GAExB,GAAI9tG,GAAK,CAyCT,OAvCIslB,GAAKye,SAAW,IAAMze,EAAKwnF,QAAQ7wD,IAAM6xD,EAAKY,aAAeppF,EAAKuhF,eAAe5qD,GAG7E6xD,EAAKM,YAAc9oF,EAAKvwC,EAAI+4H,EAAKrhG,SAEjCzM,EAAKslB,EAAKvwC,EAAI+4H,EAAKrhG,OAEfzM,GAAM5wB,KAAKs+H,YAEX1tG,EAAK,IAIRslB,EAAKye,SAAW,IAAMze,EAAKwnF,QAAQ5wD,MAAQ4xD,EAAKa,WAAarpF,EAAKuhF,eAAe3qD,MAGlF4xD,EAAKK,SAAW7oF,EAAK7Y,OAASqhG,EAAKthG,MAEnCxM,EAAKslB,EAAK7Y,OAASqhG,EAAKthG,IAEpBxM,EAAK5wB,KAAKs+H,YAEV1tG,EAAK,IAKN,IAAPA,IAEIslB,EAAK2lF,gBAEL3lF,EAAK0lF,SAAWhrG,EAIhB5wB,KAAKw/H,uBAAuBtpF,EAAMtlB,IAInCA,GAYXyuG,uBAAwB,SAAUnpF,EAAMxwC,GAE5B,EAAJA,EAEAwwC,EAAKwnF,QAAQ7iG,MAAO,EAEfn1B,EAAI,IAETwwC,EAAKwnF,QAAQ9iG,OAAQ,GAGzBsb,EAAKz0C,SAASiE,GAAKA,EAIfwwC,EAAKyiF,SAASjzH,EAFI,IAAlBwwC,EAAKklF,OAAO11H,EAEM,GAICwwC,EAAKyiF,SAASjzH,EAAIwwC,EAAKklF,OAAO11H,GAazD85H,uBAAwB,SAAUtpF,EAAMvwC,GAE5B,EAAJA,EAEAuwC,EAAKwnF,QAAQ7wD,IAAK,EAEblnE,EAAI,IAETuwC,EAAKwnF,QAAQ5wD,MAAO,GAGxB52B,EAAKz0C,SAASkE,GAAKA,EAIfuwC,EAAKyiF,SAAShzH,EAFI,IAAlBuwC,EAAKklF,OAAOz1H,EAEM,GAICuwC,EAAKyiF,SAAShzH,EAAIuwC,EAAKklF,OAAOz1H,IAQ7DmuB,EAAOoF,MAAMsC,eAAe1H,EAAO8gB,QAAQonC,OAAO34E,UAAWywB,EAAO8gB,QAAQonC,OAAOqiD,iBAAiBh7H,WAuBpGywB,EAAO2rG,gBAAkB,SAAUtkG,EAAMukG,EAAU74H,EAAOC,EAAQ64C,EAAQ65D,EAASnoB,IAEjE5nF,SAAV5C,GAAgC,GAATA,KAAcA,EAAQ,KAClC4C,SAAX3C,GAAkC,GAAVA,KAAeA,EAAS,IACrC2C,SAAXk2C,IAAwBA,EAAS,GACrBl2C,SAAZ+vG,IAAyBA,EAAU,GAMvCx5G,KAAKm7B,KAAOA,EAOZn7B,KAAK0/H,SAAsB,EAAXA,EAOhB1/H,KAAK2/H,WAAqB,EAAR94H,EAOlB7G,KAAK4/H,YAAuB,EAAT94H,EASnB9G,KAAK6/H,YAAuB,EAATlgF,EAQnB3/C,KAAK8/H,aAAyB,EAAVtmB,EAMpBx5G,KAAKqxF,WAAaA,MAQlBrxF,KAAK+/H,UAQL//H,KAAKi6C,MAAQ,GAGjBnmB,EAAO2rG,gBAAgBp8H,WASnB28H,mBAAoB,SAAUC,GAE1B,MACIA,IAAcjgI,KAAK0/H,UACnBO,EAAcjgI,KAAK0/H,SAAW1/H,KAAKi6C,OAY3C0pC,SAAU,SAAUu8C,EAAKztG,GAErBzyB,KAAK+/H,OAAOx7H,MAAO27H,IAAKA,EAAKztG,MAAOA,IACpCzyB,KAAKi6C,UAMbnmB,EAAO2rG,gBAAgBp8H,UAAUC,YAAcwwB,EAAO2rG,gBAoBtD3rG,EAAOqsG,KAAO,SAAUhjF,EAAOz0C,EAAOhD,EAAGC,EAAGkB,EAAOC,GAK/C9G,KAAKm9C,MAAQA,EAKbn9C,KAAK0I,MAAQA,EAKb1I,KAAK0F,EAAIA,EAKT1F,KAAK2F,EAAIA,EAKT3F,KAAK+B,SAAW,EAKhB/B,KAAKogI,SAAU,EAKfpgI,KAAKywH,OAAS/qH,EAAImB,EAKlB7G,KAAK0wH,OAAS/qH,EAAImB,EAKlB9G,KAAK6G,MAAQA,EAKb7G,KAAK8G,OAASA,EAKd9G,KAAK6jC,QAAUljC,KAAKshB,IAAIpb,EAAQ,GAKhC7G,KAAK8jC,QAAUnjC,KAAKshB,IAAInb,EAAS,GAKjC9G,KAAKgC,MAAQ,EAKbhC,KAAKqxF,cAKLrxF,KAAKqgI,SAAU,EAKfrgI,KAAK++H,SAAU,EAKf/+H,KAAKg/H,YAAa,EAKlBh/H,KAAK6+H,UAAW,EAKhB7+H,KAAK8+H,WAAY,EAMjB9+H,KAAKo/H,aAAc,EAMnBp/H,KAAKm/H,cAAe,EAMpBn/H,KAAKu/H,WAAY,EAMjBv/H,KAAKs/H,aAAc,EAMnBt/H,KAAK2+H,kBAAoB,KAMzB3+H,KAAK4+H,yBAA2B5+H,MAIpC8zB,EAAOqsG,KAAK98H,WAURyhC,cAAe,SAAUp/B,EAAGC,GAExB,QAASD,EAAI1F,KAAKywH,QAAU9qH,EAAI3F,KAAK0wH,QAAUhrH,EAAI1F,KAAK46B,OAASj1B,EAAI3F,KAAKq9B,SAa9EE,WAAY,SAAU73B,EAAGC,EAAGi1B,EAAOyC,GAE/B,MAAIzC,IAAS56B,KAAKywH,QAEP,EAGPpzF,GAAUr9B,KAAK0wH,QAER,EAGPhrH,GAAK1F,KAAKywH,OAASzwH,KAAK6G,OAEjB,EAGPlB,GAAK3F,KAAK0wH,OAAS1wH,KAAK8G,QAEjB,GAGJ,GAYXw5H,qBAAsB,SAAU3nF,EAAUvrC,GAEtCpN,KAAK2+H,kBAAoBhmF,EACzB34C,KAAK4+H,yBAA2BxxH,GASpC7J,QAAS,WAELvD,KAAK2+H,kBAAoB,KACzB3+H,KAAK4+H,yBAA2B,KAChC5+H,KAAKqxF,WAAa,MAatBkvC,aAAc,SAAU1lG,EAAMD,EAAOiyC,EAAIC,GAErC9sE,KAAKo/H,YAAcvkG,EACnB76B,KAAKm/H,aAAevkG,EACpB56B,KAAKu/H,UAAY1yD,EACjB7sE,KAAKs/H,YAAcxyD,EAEnB9sE,KAAK6+H,SAAWhkG,EAChB76B,KAAK8+H,UAAYlkG,EACjB56B,KAAK++H,QAAUlyD,EACf7sE,KAAKg/H,WAAalyD,GAStB0zD,eAAgB,WAEZxgI,KAAKo/H,aAAc,EACnBp/H,KAAKm/H,cAAe,EACpBn/H,KAAKu/H,WAAY,EACjBv/H,KAAKs/H,aAAc,EAEnBt/H,KAAK++H,SAAU,EACf/+H,KAAKg/H,YAAa,EAClBh/H,KAAK6+H,UAAW,EAChB7+H,KAAK8+H,WAAY,GAYrB2B,cAAe,SAAUC,EAAUC,GAE/B,MAAID,IAAYC,EAGJ3gI,KAAKo/H,aAAep/H,KAAKm/H,cAAgBn/H,KAAKu/H,WAAav/H,KAAKs/H,aAAet/H,KAAK++H,SAAW/+H,KAAKg/H,YAAch/H,KAAK6+H,UAAY7+H,KAAK8+H,WAAa9+H,KAAK2+H,kBAE7J+B,EAGG1gI,KAAKo/H,aAAep/H,KAAKm/H,cAAgBn/H,KAAKu/H,WAAav/H,KAAKs/H,YAEnEqB,EAGG3gI,KAAK++H,SAAW/+H,KAAKg/H,YAAch/H,KAAK6+H,UAAY7+H,KAAK8+H,WAG9D,GAUX1jG,KAAM,SAAUsjG,GAEZ1+H,KAAK0I,MAAQg2H,EAAKh2H,MAClB1I,KAAKgC,MAAQ08H,EAAK18H,MAClBhC,KAAKqxF,WAAaqtC,EAAKrtC,WAEvBrxF,KAAKu/H,UAAYb,EAAKa,UACtBv/H,KAAKs/H,YAAcZ,EAAKY,YACxBt/H,KAAKo/H,YAAcV,EAAKU,YACxBp/H,KAAKm/H,aAAeT,EAAKS,aAEzBn/H,KAAK2+H,kBAAoBD,EAAKC,kBAC9B3+H,KAAK4+H,yBAA2BF,EAAKE,2BAM7C9qG,EAAOqsG,KAAK98H,UAAUC,YAAcwwB,EAAOqsG,KAO3Cv8H,OAAOC,eAAeiwB,EAAOqsG,KAAK98H,UAAW,YAEzCS,IAAK,WACD,MAAQ9D,MAAKo/H,aAAep/H,KAAKm/H,cAAgBn/H,KAAKu/H,WAAav/H,KAAKs/H,eAUhF17H,OAAOC,eAAeiwB,EAAOqsG,KAAK98H,UAAW,cAEzCS,IAAK,WACD,MAAQ9D,MAAKo/H,aAAep/H,KAAKm/H,cAAgBn/H,KAAKu/H,WAAav/H,KAAKs/H,aAAet/H,KAAK2+H,qBAUpG/6H,OAAOC,eAAeiwB,EAAOqsG,KAAK98H,UAAW,QAEzCS,IAAK,WACD,MAAO9D,MAAKywH,UAUpB7sH,OAAOC,eAAeiwB,EAAOqsG,KAAK98H,UAAW,SAEzCS,IAAK,WACD,MAAO9D,MAAKywH,OAASzwH,KAAK6G,SAUlCjD,OAAOC,eAAeiwB,EAAOqsG,KAAK98H,UAAW,OAEzCS,IAAK,WACD,MAAO9D,MAAK0wH,UAUpB9sH,OAAOC,eAAeiwB,EAAOqsG,KAAK98H,UAAW,UAEzCS,IAAK,WACD,MAAO9D,MAAK0wH,OAAS1wH,KAAK8G,UA6BlCgtB,EAAOmpD,QAAU,SAAUr4E,EAAM8R,EAAKqmE,EAAWC,EAAYn2E,EAAOC,GAKhE9G,KAAK4E,KAAOA,EAKZ5E,KAAK0W,IAAMA,CAEX,IAAIvF,GAAO2iB,EAAO8sG,cAAcn+F,MAAMziC,KAAK4E,KAAM8R,EAAKqmE,EAAWC,EAAYn2E,EAAOC,EAEvE,QAATqK,IAQJnR,KAAK6G,MAAQsK,EAAKtK,MAKlB7G,KAAK8G,OAASqK,EAAKrK,OAKnB9G,KAAK+8E,UAAY5rE,EAAK4rE,UAKtB/8E,KAAKg9E,WAAa7rE,EAAK6rE,WAKvBh9E,KAAKglD,YAAc7zC,EAAK6zC,YAKxBhlD,KAAKmY,OAAShH,EAAKgH,OAKnBnY,KAAK6gI,QAAU1vH,EAAK0vH,QAKpB7gI,KAAKqxF,WAAalgF,EAAKkgF,WAKvBrxF,KAAK8gI,cAAgB3vH,EAAK2vH,cAK1B9gI,KAAK+gI,eAAiB5vH,EAAK4vH,eAK3B/gI,KAAKg9C,OAAS7rC,EAAK6rC,OAKnBh9C,KAAKghI,SAAW7vH,EAAK6vH,SAKrBhhI,KAAKihI,iBAAmB9vH,EAAK8vH,iBAK7BjhI,KAAKkhI,MAAQ/vH,EAAK+vH,MAKlBlhI,KAAK2pG,QAAUx4F,EAAKw4F,QAKpB3pG,KAAKmhI,kBAKLnhI,KAAKohI,UAAYjwH,EAAKiwH,UAKtBphI,KAAK+/H,OAAS5uH,EAAK4uH,OAKnB//H,KAAKqhI,aAAe,EAKpBrhI,KAAKshI,YAMLthI,KAAKuhI,YAMLvhI,KAAKwhI,OAAS,EAMdxhI,KAAKqjF,OAAS,IAQlBvvD,EAAOmpD,QAAQunC,IAAM,EAMrB1wF,EAAOmpD,QAAQwnC,WAAa,EAM5B3wF,EAAOmpD,QAAQwkD,MAAQ,EAMvB3tG,EAAOmpD,QAAQykD,KAAO,EAMtB5tG,EAAOmpD,QAAQ0kD,MAAQ,EAMvB7tG,EAAOmpD,QAAQ2kD,KAAO,EAEtB9tG,EAAOmpD,QAAQ55E,WAcX+E,OAAQ,SAAU+yB,EAAMt0B,EAAOC,EAAQi2E,EAAWC,EAAYliC,GAW1D,MATcrxC,UAAVqxC,IAAuBA,EAAQ96C,KAAK4E,KAAKE,OAE7C9E,KAAK6G,MAAQA,EACb7G,KAAK8G,OAASA,EAEd9G,KAAK6hI,YAAY9kD,EAAWC,GAE5Bh9E,KAAKg9C,OAAOt5C,OAAS,EAEd1D,KAAK8hI,iBAAiB3mG,EAAMt0B,EAAOC,EAAQi2E,EAAWC,EAAYliC,IAW7E+mF,YAAa,SAAU9kD,EAAWC,GAE9Bh9E,KAAK+8E,UAAYA,EACjB/8E,KAAKg9E,WAAaA,EAClBh9E,KAAK8gI,cAAgB9gI,KAAK6G,MAAQk2E,EAClC/8E,KAAK+gI,eAAiB/gI,KAAK8G,OAASk2E,GAoBxC+kD,gBAAiB,SAAUC,EAAStrH,EAAKqmE,EAAWC,EAAYilD,EAAYC,EAAahC,GAErF,GAAgBz2H,SAAZu4H,EAAyB,MAAO,KAClBv4H,UAAdszE,IAA2BA,EAAY/8E,KAAK+8E,WAC7BtzE,SAAfuzE,IAA4BA,EAAah9E,KAAKg9E,YAC/BvzE,SAAfw4H,IAA4BA,EAAa,GACzBx4H,SAAhBy4H,IAA6BA,EAAc,GACnCz4H,SAARy2H,IAAqBA,EAAM,GAGb,IAAdnjD,IAEAA,EAAY,IAGG,IAAfC,IAEAA,EAAa,GAGjB,IAAItD,GAAM,IAOV,KALYjwE,SAARiN,GAA6B,OAARA,KAErBA,EAAMsrH,GAGNtrH,YAAeod,GAAOwlD,WAEtBI,EAAMhjE,EAAI3F,WAGd,CACI,IAAK/Q,KAAK4E,KAAKikC,MAAMwqD,cAAc38E,GAG/B,MADAhC,SAAQukB,KAAK,6DAA+DviB,EAAM,KAC3E,IAGXgjE,GAAM15E,KAAK4E,KAAKikC,MAAMzU,SAAS1d,GAGnC,GAAIk7E,GAAM5xF,KAAKmiI,gBAAgBH,EAE/B,IAAY,OAARpwC,GAAgB5xF,KAAKmY,SAAW2b,EAAOmpD,QAAQwnC,WAG/C,MADA/vG,SAAQukB,KAAK,yFAA2FviB,EAAM,KACvG,IAGX,IAAI1W,KAAKghI,SAASpvC,GAGd,MADA5xF,MAAKghI,SAASpvC,GAAKwwC,SAAS1oD,GACrB15E,KAAKghI,SAASpvC,EAIrB,IAAIywC,GAAS,GAAIvuG,GAAOwuG,QAAQN,EAAS9B,EAAKnjD,EAAWC,EAAYilD,EAAYC,KAEjFG,GAAOD,SAAS1oD,GAEhB15E,KAAKghI,SAASz8H,KAAK89H,EAUnB,KAAK,GARD5+H,GAAIzD,KAAKghI,SAASt9H,OAAS,EAC3BgC,EAAIu8H,EACJt8H,EAAIs8H,EAEJp7G,EAAQ,EACR07G,EAAS,EACTC,EAAS,EAEJ1pG,EAAIonG,EAAKpnG,EAAIonG,EAAMmC,EAAOpoF,QAE/Bj6C,KAAKkhI,MAAMpoG,IAAMpzB,EAAGC,EAAGlC,GAEvBiC,GAAKq3E,EAAYmlD,EAEjBr7G,IAEIA,IAAUw7G,EAAOpoF,SAKrBsoF,IAEIA,IAAWF,EAAOI,UAElB/8H,EAAIu8H,EACJt8H,GAAKq3E,EAAaklD,EAElBK,EAAS,EACTC,IAEIA,IAAWH,EAAOK,OAvBY5pG,KA8B1C,MAAOupG,IAyBfM,kBAAmB,SAAUxnG,EAAM+kG,EAAKxpH,EAAKvK,EAAO8lC,EAAQyhC,EAAU54B,EAAO8nF,EAAaC,GAQtF,GANep5H,SAAXwoC,IAAwBA,GAAS,GACpBxoC,SAAbiqE,IAA0BA,GAAW,GAC3BjqE,SAAVqxC,IAAuBA,EAAQ96C,KAAK4E,KAAKE,OACzB2E,SAAhBm5H,IAA6BA,EAAc9uG,EAAOnsB,QACtC8B,SAAZo5H,IAAyBA,GAAU,IAElC7iI,KAAK2pG,QAAQxuE,GAGd,WADAzmB,SAAQukB,KAAK,8DAAgEkC,EAOjF,KAAK,GAHDxR,GACAm5G,GAAQ,EAEHr/H,EAAI,EAAG8tB,EAAMvxB,KAAK2pG,QAAQxuE,GAAMz3B,OAAY6tB,EAAJ9tB,EAASA,IA0BtD,GAxByC,mBAA9BzD,MAAK2pG,QAAQxuE,GAAM13B,GAAGy8H,KAAsC,gBAARA,IAEvDlgI,KAAK2pG,QAAQxuE,GAAM13B,GAAGy8H,MAAQA,IAE9B4C,GAAQ,GAIwB,mBAA7B9iI,MAAK2pG,QAAQxuE,GAAM13B,GAAGmU,IAAqC,gBAARsoH,IAEtDlgI,KAAK2pG,QAAQxuE,GAAM13B,GAAGmU,KAAOsoH,IAE7B4C,GAAQ,GAI0B,mBAA/B9iI,MAAK2pG,QAAQxuE,GAAM13B,GAAG03B,MAAuC,gBAAR+kG,IAExDlgI,KAAK2pG,QAAQxuE,GAAM13B,GAAG03B,OAAS+kG,IAE/B4C,GAAQ,GAIZA,EACJ,CACIn5G,EAAS,GAAIi5G,GAAY5iI,KAAK4E,KAAM5E,KAAK2pG,QAAQxuE,GAAM13B,GAAGiC,EAAG1F,KAAK2pG,QAAQxuE,GAAM13B,GAAGkC,EAAG+Q,EAAKvK,GAE3Fwd,EAAOwR,KAAOn7B,KAAK2pG,QAAQxuE,GAAM13B,GAAG03B,KACpCxR,EAAO1nB,QAAUjC,KAAK2pG,QAAQxuE,GAAM13B,GAAGxB,QACvC0nB,EAAO+pD,SAAWA,EAClB/pD,EAAOsoB,OAASA,EAEhBtoB,EAAO9iB,MAAQ7G,KAAK2pG,QAAQxuE,GAAM13B,GAAGoD,MACrC8iB,EAAO7iB,OAAS9G,KAAK2pG,QAAQxuE,GAAM13B,GAAGqD,OAElC9G,KAAK2pG,QAAQxuE,GAAM13B,GAAG1B,WAEtB4nB,EAAOqT,MAAQh9B,KAAK2pG,QAAQxuE,GAAM13B,GAAG1B,UAGrC8gI,IAEAl5G,EAAOhkB,GAAKgkB,EAAO7iB,QAGvBg0C,EAAMla,IAAIjX,EAEV,KAAK,GAAI0uB,KAAYr4C,MAAK2pG,QAAQxuE,GAAM13B,GAAG4tF,WAEvCv2C,EAAM92C,IAAI2lB,EAAQ0uB,EAAUr4C,KAAK2pG,QAAQxuE,GAAM13B,GAAG4tF,WAAWh5C,IAAW,GAAO,EAAO,GAAG,KAsBzG0qF,gBAAiB,SAAU7B,EAAO8B,EAActsH,EAAKymC,EAAOrC,EAAOu2C,GAE1C,gBAAV6vC,KAAsBA,GAASA,IAErBz3H,SAAjBu5H,GAA+C,OAAjBA,EAE9BA,KAE6B,gBAAjBA,KAEZA,GAAgBA,IAGpB7lF,EAAQn9C,KAAKijI,SAAS9lF,GAER1zC,SAAVqxC,IAAuBA,EAAQ96C,KAAK4E,KAAKE,OAC1B2E,SAAf4nF,IAA4BA,MAED5nF,SAA3B4nF,EAAW6xC,cAEX7xC,EAAW6xC,YAAcpvG,EAAOnsB,QAGT8B,SAAvB4nF,EAAWwxC,UAEXxxC,EAAWwxC,SAAU,EAGzB,IAAIM,GAAKnjI,KAAKg9C,OAAOG,GAAOt2C,MACxBu8H,EAAKpjI,KAAKg9C,OAAOG,GAAOr2C,MAI5B,IAFA9G,KAAKo7B,KAAK,EAAG,EAAG+nG,EAAIC,EAAIjmF,GAEpBn9C,KAAKuhI,SAAS79H,OAAS,EAEvB,MAAO,EAMX,KAAK,GAFDimB,GADAswB,EAAQ,EAGHx2C,EAAI,EAAG8tB,EAAMvxB,KAAKuhI,SAAS79H,OAAY6tB,EAAJ9tB,EAASA,IAEjD,GAA8C,KAA1Cy9H,EAAM/3H,QAAQnJ,KAAKuhI,SAAS99H,GAAGiF,OACnC,CACIihB,EAAS,GAAI0nE,GAAW6xC,YAAYljI,KAAK4E,KAAM5E,KAAKuhI,SAAS99H,GAAGgtH,OAAQzwH,KAAKuhI,SAAS99H,GAAGitH,OAAQh6G,EAEjG,KAAK,GAAI2hC,KAAYg5C,GAEjB1nE,EAAO0uB,GAAYg5C,EAAWh5C,EAGlCyC,GAAMla,IAAIjX,GACVswB,IAKR,GAA4B,IAAxB+oF,EAAat/H,OAGb,IAAKD,EAAI,EAAGA,EAAIy9H,EAAMx9H,OAAQD,IAE1BzD,KAAK07B,QAAQwlG,EAAMz9H,GAAIu/H,EAAa,GAAI,EAAG,EAAGG,EAAIC,EAAIjmF,OAGzD,IAAI6lF,EAAat/H,OAAS,EAG3B,IAAKD,EAAI,EAAGA,EAAIy9H,EAAMx9H,OAAQD,IAE1BzD,KAAK07B,QAAQwlG,EAAMz9H,GAAIu/H,EAAav/H,GAAI,EAAG,EAAG0/H,EAAIC,EAAIjmF,EAI9D,OAAOlD,IAiBXopF,YAAa,SAAUlmF,EAAOt2C,EAAOC,EAAQg0C,GAI3BrxC,SAAV5C,IAAuBA,EAAQ7G,KAAK4E,KAAKiC,OAC9B4C,SAAX3C,IAAwBA,EAAS9G,KAAK4E,KAAKkC,QACjC2C,SAAVqxC,IAAuBA,EAAQ96C,KAAK4E,KAAKE,MAE7C,IAAI4D,GAAQy0C,CAOZ,OALqB,gBAAVA,KAEPz0C,EAAQ1I,KAAKsjI,cAAcnmF,IAGjB,OAAVz0C,GAAkBA,EAAQ1I,KAAKg9C,OAAOt5C,WAEtCgR,SAAQukB,KAAK,gDAAkDvwB,GAI5DoyC,EAAMla,IAAI,GAAI9M,GAAOyvG,aAAavjI,KAAK4E,KAAM5E,KAAM0I,EAAO7B,EAAOC,KAgB5Eg7H,iBAAkB,SAAU3mG,EAAMt0B,EAAOC,EAAQi2E,EAAWC,EAAYliC,GAIpE,GAFcrxC,SAAVqxC,IAAuBA,EAAQ96C,KAAK4E,KAAKE,OAEZ,OAA7B9E,KAAKsjI,cAAcnoG,GAGnB,WADAzmB,SAAQukB,KAAK,oEA0BjB,KAAK,GAHDsP,GAnBA4U,GAEAhiB,KAAMA,EACNz1B,EAAG,EACHC,EAAG,EACHkB,MAAOA,EACPC,OAAQA,EACRg6H,cAAej6H,EAAQk2E,EACvBgkD,eAAgBj6H,EAASk2E,EACzBh7E,MAAO,EACPC,SAAS,EACTovF,cACAmyC,WACA1/D,aACA2/D,UACAtyH,KAAM,MAKN0rB,KAEKl3B,EAAI,EAAOmB,EAAJnB,EAAYA,IAC5B,CACI4iC,IAEA,KAAK,GAAI7iC,GAAI,EAAOmB,EAAJnB,EAAWA,IAGvB6iC,EAAIhkC,KAAK,GAAIuvB,GAAOqsG,KAAKhjF,EAAO,GAAIz3C,EAAGC,EAAGo3E,EAAWC,GAGzDngD,GAAOt4B,KAAKgkC,GAGhB4U,EAAMhsC,KAAO0rB,EAEb78B,KAAKg9C,OAAOz4C,KAAK44C,GAEjBn9C,KAAKqhI,aAAerhI,KAAKg9C,OAAOt5C,OAAS,CAEzC,IAAI6V,GAAI4jC,EAAM2jF,cACVz2G,EAAI8yB,EAAM4jF,cAEVxnH,GAAIvZ,KAAK4E,KAAKiC,QAEd0S,EAAIvZ,KAAK4E,KAAKiC,OAGdwjB,EAAIrqB,KAAK4E,KAAKkC,SAEdujB,EAAIrqB,KAAK4E,KAAKkC,OAGlB,IAAI+1B,GAAS,GAAI/I,GAAOyvG,aAAavjI,KAAK4E,KAAM5E,KAAMA,KAAKg9C,OAAOt5C,OAAS,EAAG6V,EAAG8Q,EAGjF,OAFAwS,GAAO1B,KAAOA,EAEP2f,EAAMla,IAAI/D,IAarBua,SAAU,SAAUkzD,EAAUnvE,GAE1B,IAAK,GAAI13B,GAAI,EAAGA,EAAI6mG,EAAS5mG,OAAQD,IAEjC,GAAI6mG,EAAS7mG,GAAG03B,OAASA,EAErB,MAAO13B,EAIf,OAAO,OAWX6/H,cAAe,SAAUnoG,GAErB,MAAOn7B,MAAKo3C,SAASp3C,KAAKg9C,OAAQ7hB,IAWtCgnG,gBAAiB,SAAUhnG,GAEvB,MAAOn7B,MAAKo3C,SAASp3C,KAAKghI,SAAU7lG,IAWxCuoG,cAAe,SAAUvoG,GAErB,MAAOn7B,MAAKo3C,SAASp3C,KAAK+/H,OAAQ5kG,IAWtCwoG,eAAgB,SAAUxoG,GAEtB,MAAOn7B,MAAKo3C,SAASp3C,KAAK2pG,QAASxuE,IAevCyoG,qBAAsB,SAAUJ,EAAS7qF,EAAU3M,EAAiBmR,GAIhE,GAFAA,EAAQn9C,KAAKijI,SAAS9lF,GAEC,gBAAZqmF,GAIPxjI,KAAKg9C,OAAOG,GAAO2mB,UAAU0/D,IAAa7qF,SAAUA,EAAU3M,gBAAiBA,OAI/E,KAAK,GAAIvoC,GAAI,EAAG8tB,EAAMiyG,EAAQ9/H,OAAY6tB,EAAJ9tB,EAASA,IAE3CzD,KAAKg9C,OAAOG,GAAO2mB,UAAU0/D,EAAQ//H,KAAQk1C,SAAUA,EAAU3M,gBAAiBA,IAoB9F63F,wBAAyB,SAAUn+H,EAAGC,EAAGkB,EAAOC,EAAQ6xC,EAAU3M,EAAiBmR,GAM/E,GAJAA,EAAQn9C,KAAKijI,SAAS9lF,GAEtBn9C,KAAKo7B,KAAK11B,EAAGC,EAAGkB,EAAOC,EAAQq2C,KAE3Bn9C,KAAKuhI,SAAS79H,OAAS,GAK3B,IAAK,GAAID,GAAI,EAAGA,EAAIzD,KAAKuhI,SAAS79H,OAAQD,IAEtCzD,KAAKuhI,SAAS99H,GAAG68H,qBAAqB3nF,EAAU3M,IAexDu0F,aAAc,SAAUiD,EAAS9C,EAAUvjF,EAAO2mF,GAO9C,GALiBr6H,SAAbi3H,IAA0BA,GAAW,GACrBj3H,SAAhBq6H,IAA6BA,GAAc,GAE/C3mF,EAAQn9C,KAAKijI,SAAS9lF,GAEC,gBAAZqmF,GAEP,MAAOxjI,MAAK+jI,oBAAoBP,EAAS9C,EAAUvjF,GAAO,EAEzD,IAAI18C,MAAMyT,QAAQsvH,GACvB,CAEI,IAAK,GAAI//H,GAAI,EAAGA,EAAI+/H,EAAQ9/H,OAAQD,IAEhCzD,KAAK+jI,oBAAoBP,EAAQ//H,GAAIi9H,EAAUvjF,GAAO,EAGtD2mF,IAGA9jI,KAAKgkI,eAAe7mF,KAkBhC8mF,oBAAqB,SAAU74H,EAAOJ,EAAM01H,EAAUvjF,EAAO2mF,GAOzD,GALiBr6H,SAAbi3H,IAA0BA,GAAW,GACrBj3H,SAAhBq6H,IAA6BA,GAAc,GAE/C3mF,EAAQn9C,KAAKijI,SAAS9lF,KAElB/xC,EAAQJ,GAAZ,CAKA,IAAK,GAAItC,GAAQ0C,EAAgBJ,GAATtC,EAAeA,IAEnC1I,KAAK+jI,oBAAoBr7H,EAAOg4H,EAAUvjF,GAAO,EAGjD2mF,IAGA9jI,KAAKgkI,eAAe7mF,KAe5B+mF,wBAAyB,SAAUV,EAAS9C,EAAUvjF,EAAO2mF,GAExCr6H,SAAbi3H,IAA0BA,GAAW,GACrBj3H,SAAhBq6H,IAA6BA,GAAc,GAE/C3mF,EAAQn9C,KAAKijI,SAAS9lF,EAGtB,KAAK,GAAI15C,GAAI,EAAG8tB,EAAMvxB,KAAKkhI,MAAMx9H,OAAY6tB,EAAJ9tB,EAASA,IAEnB,KAAvB+/H,EAAQr6H,QAAQ1F,IAEhBzD,KAAK+jI,oBAAoBtgI,EAAGi9H,EAAUvjF,GAAO,EAIjD2mF,IAGA9jI,KAAKgkI,eAAe7mF,IAgB5B4mF,oBAAqB,SAAUr7H,EAAOg4H,EAAUvjF,EAAO2mF,GAMnD,GAJiBr6H,SAAbi3H,IAA0BA,GAAW,GAC3Bj3H,SAAV0zC,IAAuBA,EAAQn9C,KAAKqhI,cACpB53H,SAAhBq6H,IAA6BA,GAAc,GAE3CpD,EAEA1gI,KAAKmhI,eAAe58H,KAAKmE,OAG7B,CACI,GAAIjF,GAAIzD,KAAKmhI,eAAeh4H,QAAQT,EAEhCjF,GAAI,IAEJzD,KAAKmhI,eAAev4H,OAAOnF,EAAG,GAItC,IAAK,GAAIkC,GAAI,EAAGA,EAAI3F,KAAKg9C,OAAOG,GAAOr2C,OAAQnB,IAE3C,IAAK,GAAID,GAAI,EAAGA,EAAI1F,KAAKg9C,OAAOG,GAAOt2C,MAAOnB,IAC9C,CACI,GAAIg5H,GAAO1+H,KAAKg9C,OAAOG,GAAOhsC,KAAKxL,GAAGD,EAElCg5H,IAAQA,EAAKh2H,QAAUA,IAEnBg4H,EAEAhC,EAAK6B,cAAa,GAAM,GAAM,GAAM,GAIpC7B,EAAK8B,iBAGT9B,EAAKK,QAAU2B,EACfhC,EAAKM,WAAa0B,EAClBhC,EAAKG,SAAW6B,EAChBhC,EAAKI,UAAY4B,GAW7B,MANIoD,IAGA9jI,KAAKgkI,eAAe7mF,GAGjBA,GAYX8lF,SAAU,SAAU9lF,GAehB,MAbc1zC,UAAV0zC,EAEAA,EAAQn9C,KAAKqhI,aAES,gBAAVlkF,GAEZA,EAAQn9C,KAAKsjI,cAAcnmF,GAEtBA,YAAiBrpB,GAAOyvG,eAE7BpmF,EAAQA,EAAMz0C,OAGXy0C,GAWXgnF,sBAAuB,SAAUlgI,GAQ7B,GANIA,KAAU,GAAQjE,KAAKokI,yBAA0B,IAEjDpkI,KAAKokI,uBAAwB,EAC7BpkI,KAAKqkI,sBAGLpgI,KAAU,GAASjE,KAAKokI,yBAA0B,EACtD,CACIpkI,KAAKokI,uBAAwB,CAE7B,KAAK,GAAI3gI,KAAKzD,MAAKqkI,kBAEfrkI,KAAKgkI,eAAevgI,EAGxBzD,MAAKqkI,mBAAoB,IAYjCL,eAAgB,SAAU7mF,GAEtB,GAAIn9C,KAAKokI,sBAGL,YADApkI,KAAKqkI,kBAAkBlnF,IAAS,EASpC,KAAK,GALDmnF,GAAQ,KACRC,EAAQ,KACR1pG,EAAO,KACPD,EAAQ,KAEHj1B,EAAI,EAAG0kB,EAAIrqB,KAAKg9C,OAAOG,GAAOr2C,OAAYujB,EAAJ1kB,EAAOA,IAElD,IAAK,GAAID,GAAI,EAAG6T,EAAIvZ,KAAKg9C,OAAOG,GAAOt2C,MAAW0S,EAAJ7T,EAAOA,IACrD,CACI,GAAIg5H,GAAO1+H,KAAKg9C,OAAOG,GAAOhsC,KAAKxL,GAAGD,EAElCg5H,KAEA4F,EAAQtkI,KAAKwkI,aAAarnF,EAAOz3C,EAAGC,GACpC4+H,EAAQvkI,KAAKykI,aAAatnF,EAAOz3C,EAAGC,GACpCk1B,EAAO76B,KAAK0kI,YAAYvnF,EAAOz3C,EAAGC,GAClCi1B,EAAQ56B,KAAK2kI,aAAaxnF,EAAOz3C,EAAGC,GAEhC+4H,EAAKgC,WAELhC,EAAKK,SAAU,EACfL,EAAKM,YAAa,EAClBN,EAAKG,UAAW,EAChBH,EAAKI,WAAY,GAGjBwF,GAASA,EAAM5D,WAGfhC,EAAKK,SAAU,GAGfwF,GAASA,EAAM7D,WAGfhC,EAAKM,YAAa,GAGlBnkG,GAAQA,EAAK6lG,WAGbhC,EAAKG,UAAW,GAGhBjkG,GAASA,EAAM8lG,WAGfhC,EAAKI,WAAY,MAiBrC0F,aAAc,SAAUrnF,EAAOz3C,EAAGC,GAE9B,MAAIA,GAAI,EAEG3F,KAAKg9C,OAAOG,GAAOhsC,KAAKxL,EAAI,GAAGD,GAGnC,MAaX++H,aAAc,SAAUtnF,EAAOz3C,EAAGC,GAE9B,MAAIA,GAAI3F,KAAKg9C,OAAOG,GAAOr2C,OAAS,EAEzB9G,KAAKg9C,OAAOG,GAAOhsC,KAAKxL,EAAI,GAAGD,GAGnC,MAaXg/H,YAAa,SAAUvnF,EAAOz3C,EAAGC,GAE7B,MAAID,GAAI,EAEG1F,KAAKg9C,OAAOG,GAAOhsC,KAAKxL,GAAGD,EAAI,GAGnC,MAaXi/H,aAAc,SAAUxnF,EAAOz3C,EAAGC,GAE9B,MAAID,GAAI1F,KAAKg9C,OAAOG,GAAOt2C,MAAQ,EAExB7G,KAAKg9C,OAAOG,GAAOhsC,KAAKxL,GAAGD,EAAI,GAGnC,MAUXk/H,SAAU,SAAUznF,GAEhBA,EAAQn9C,KAAKijI,SAAS9lF,GAElBn9C,KAAKg9C,OAAOG,KAEZn9C,KAAKqhI,aAAelkF,IAc5B0nF,QAAS,SAAUn/H,EAAGC,EAAGw3C,GAIrB,MAFAA,GAAQn9C,KAAKijI,SAAS9lF,GAEdn9C,KAAKg9C,OAAOG,GAAOhsC,KAAKxL,GAAGD,GAAGgD,MAAQ,IAalDo8H,WAAY,SAAUp/H,EAAGC,EAAGw3C,GAIxB,GAFAA,EAAQn9C,KAAKijI,SAAS9lF,GAElBz3C,GAAK,GAAKA,EAAI1F,KAAKg9C,OAAOG,GAAOt2C,OAASlB,GAAK,GAAKA,EAAI3F,KAAKg9C,OAAOG,GAAOr2C,QAEvE9G,KAAK6kI,QAAQn/H,EAAGC,EAAGw3C,GACvB,CACI,GAAIuhF,GAAO1+H,KAAKg9C,OAAOG,GAAOhsC,KAAKxL,GAAGD,EAQtC,OANA1F,MAAKg9C,OAAOG,GAAOhsC,KAAKxL,GAAGD,GAAK,GAAIouB,GAAOqsG,KAAKngI,KAAKg9C,OAAOG,GAAQ,GAAIz3C,EAAGC,EAAG3F,KAAK+8E,UAAW/8E,KAAKg9E,YAEnGh9E,KAAKg9C,OAAOG,GAAOvnC,OAAQ,EAE3B5V,KAAKgkI,eAAe7mF,GAEbuhF,IAiBnBqG,kBAAmB,SAAUr/H,EAAGC,EAAGo3E,EAAWC,EAAY7/B,GAOtD,MALAA,GAAQn9C,KAAKijI,SAAS9lF,GAEtBz3C,EAAI1F,KAAK4E,KAAKokC,KAAK28D,YAAYjgG,EAAGq3E,GAAaA,EAC/Cp3E,EAAI3F,KAAK4E,KAAKokC,KAAK28D,YAAYhgG,EAAGq3E,GAAcA,EAEzCh9E,KAAK8kI,WAAWp/H,EAAGC,EAAGw3C,IAejC6nF,QAAS,SAAUtG,EAAMh5H,EAAGC,EAAGw3C,GAE3B,GAAa,OAATuhF,EAEA,MAAO1+H,MAAK8kI,WAAWp/H,EAAGC,EAAGw3C,EAKjC,IAFAA,EAAQn9C,KAAKijI,SAAS9lF,GAElBz3C,GAAK,GAAKA,EAAI1F,KAAKg9C,OAAOG,GAAOt2C,OAASlB,GAAK,GAAKA,EAAI3F,KAAKg9C,OAAOG,GAAOr2C,OAC/E,CACI,GAAI4B,EA0CJ,OAxCIg2H,aAAgB5qG,GAAOqsG,MAEvBz3H,EAAQg2H,EAAKh2H,MAET1I,KAAK6kI,QAAQn/H,EAAGC,EAAGw3C,GAEnBn9C,KAAKg9C,OAAOG,GAAOhsC,KAAKxL,GAAGD,GAAG01B,KAAKsjG,GAInC1+H,KAAKg9C,OAAOG,GAAOhsC,KAAKxL,GAAGD,GAAK,GAAIouB,GAAOqsG,KAAKhjF,EAAOz0C,EAAOhD,EAAGC,EAAG+4H,EAAK73H,MAAO63H,EAAK53H,UAKzF4B,EAAQg2H,EAEJ1+H,KAAK6kI,QAAQn/H,EAAGC,EAAGw3C,GAEnBn9C,KAAKg9C,OAAOG,GAAOhsC,KAAKxL,GAAGD,GAAGgD,MAAQA,EAItC1I,KAAKg9C,OAAOG,GAAOhsC,KAAKxL,GAAGD,GAAK,GAAIouB,GAAOqsG,KAAKngI,KAAKg9C,OAAOG,GAAQz0C,EAAOhD,EAAGC,EAAG3F,KAAK+8E,UAAW/8E,KAAKg9E,aAI1Gh9E,KAAKmhI,eAAeh4H,QAAQT,GAAS,GAErC1I,KAAKg9C,OAAOG,GAAOhsC,KAAKxL,GAAGD,GAAG66H,cAAa,GAAM,GAAM,GAAM,GAI7DvgI,KAAKg9C,OAAOG,GAAOhsC,KAAKxL,GAAGD,GAAG86H,iBAGlCxgI,KAAKg9C,OAAOG,GAAOvnC,OAAQ,EAE3B5V,KAAKgkI,eAAe7mF,GAEbn9C,KAAKg9C,OAAOG,GAAOhsC,KAAKxL,GAAGD,GAGtC,MAAO,OAgBXu/H,eAAgB,SAAUvG,EAAMh5H,EAAGC,EAAGo3E,EAAWC,EAAY7/B,GAOzD,MALAA,GAAQn9C,KAAKijI,SAAS9lF,GAEtBz3C,EAAI1F,KAAK4E,KAAKokC,KAAK28D,YAAYjgG,EAAGq3E,GAAaA,EAC/Cp3E,EAAI3F,KAAK4E,KAAKokC,KAAK28D,YAAYhgG,EAAGq3E,GAAcA,EAEzCh9E,KAAKglI,QAAQtG,EAAMh5H,EAAGC,EAAGw3C,IAiBpC+nF,gBAAiB,SAAUx8H,EAAOy8H,EAAMv+G,EAASu2B,GAEhC1zC,SAAT07H,IAAsBA,EAAO,GACjB17H,SAAZmd,IAAyBA,GAAU,GAEvCu2B,EAAQn9C,KAAKijI,SAAS9lF,EAEtB,IAAIl4C,GAAI,CAER,IAAI2hB,GAEA,IAAK,GAAIjhB,GAAI3F,KAAKg9C,OAAOG,GAAOr2C,OAAS,EAAGnB,GAAK,EAAGA,IAEhD,IAAK,GAAID,GAAI1F,KAAKg9C,OAAOG,GAAOt2C,MAAQ,EAAGnB,GAAK,EAAGA,IAE/C,GAAI1F,KAAKg9C,OAAOG,GAAOhsC,KAAKxL,GAAGD,GAAGgD,QAAUA,EAC5C,CACI,GAAIzD,IAAMkgI,EAEN,MAAOnlI,MAAKg9C,OAAOG,GAAOhsC,KAAKxL,GAAGD,EAIlCT,UAQhB,KAAK,GAAIU,GAAI,EAAGA,EAAI3F,KAAKg9C,OAAOG,GAAOr2C,OAAQnB,IAE3C,IAAK,GAAID,GAAI,EAAGA,EAAI1F,KAAKg9C,OAAOG,GAAOt2C,MAAOnB,IAE1C,GAAI1F,KAAKg9C,OAAOG,GAAOhsC,KAAKxL,GAAGD,GAAGgD,QAAUA,EAC5C,CACI,GAAIzD,IAAMkgI,EAEN,MAAOnlI,MAAKg9C,OAAOG,GAAOhsC,KAAKxL,GAAGD,EAIlCT,KAOpB,MAAO,OAcXmgI,QAAS,SAAU1/H,EAAGC,EAAGw3C,EAAOkoF,GAM5B,MAJgB57H,UAAZ47H,IAAyBA,GAAU,GAEvCloF,EAAQn9C,KAAKijI,SAAS9lF,GAElBz3C,GAAK,GAAKA,EAAI1F,KAAKg9C,OAAOG,GAAOt2C,OAASlB,GAAK,GAAKA,EAAI3F,KAAKg9C,OAAOG,GAAOr2C,OAE/B,KAAxC9G,KAAKg9C,OAAOG,GAAOhsC,KAAKxL,GAAGD,GAAGgD,MAE1B28H,EAEOrlI,KAAKg9C,OAAOG,GAAOhsC,KAAKxL,GAAGD,GAI3B,KAKJ1F,KAAKg9C,OAAOG,GAAOhsC,KAAKxL,GAAGD,GAK/B,MAiBf4/H,eAAgB,SAAU5/H,EAAGC,EAAGo3E,EAAWC,EAAY7/B,EAAOkoF,GAU1D,MARkB57H,UAAdszE,IAA2BA,EAAY/8E,KAAK+8E,WAC7BtzE,SAAfuzE,IAA4BA,EAAah9E,KAAKg9E,YAElD7/B,EAAQn9C,KAAKijI,SAAS9lF,GAEtBz3C,EAAI1F,KAAK4E,KAAKokC,KAAK28D,YAAYjgG,EAAGq3E,GAAaA,EAC/Cp3E,EAAI3F,KAAK4E,KAAKokC,KAAK28D,YAAYhgG,EAAGq3E,GAAcA,EAEzCh9E,KAAKolI,QAAQ1/H,EAAGC,EAAGw3C,EAAOkoF,IAerCjqG,KAAM,SAAU11B,EAAGC,EAAGkB,EAAOC,EAAQq2C,GAIjC,GAFAA,EAAQn9C,KAAKijI,SAAS9lF,IAEjBn9C,KAAKg9C,OAAOG,GAGb,YADAn9C,KAAKuhI,SAAS79H,OAAS,EAIjB+F,UAAN/D,IAAmBA,EAAI,GACjB+D,SAAN9D,IAAmBA,EAAI,GACb8D,SAAV5C,IAAuBA,EAAQ7G,KAAKg9C,OAAOG,GAAOt2C,OACvC4C,SAAX3C,IAAwBA,EAAS9G,KAAKg9C,OAAOG,GAAOr2C,QAEhD,EAAJpB,IAEAA,EAAI,GAGA,EAAJC,IAEAA,EAAI,GAGJkB,EAAQ7G,KAAKg9C,OAAOG,GAAOt2C,QAE3BA,EAAQ7G,KAAKg9C,OAAOG,GAAOt2C,OAG3BC,EAAS9G,KAAKg9C,OAAOG,GAAOr2C,SAE5BA,EAAS9G,KAAKg9C,OAAOG,GAAOr2C,QAGhC9G,KAAKuhI,SAAS79H,OAAS,EAEvB1D,KAAKuhI,SAASh9H,MAAOmB,EAAGA,EAAGC,EAAGA,EAAGkB,MAAOA,EAAOC,OAAQA,EAAQq2C,MAAOA,GAEtE,KAAK,GAAI/3C,GAAKO,EAAQA,EAAImB,EAAT1B,EAAiBA,IAE9B,IAAK,GAAID,GAAKO,EAAQA,EAAImB,EAAT1B,EAAgBA,IAE7BnF,KAAKuhI,SAASh9H,KAAKvE,KAAKg9C,OAAOG,GAAOhsC,KAAK/L,GAAID,GAIvD,OAAOnF,MAAKuhI,UAahBgE,MAAO,SAAU7/H,EAAGC,EAAG6/H,EAAWroF,GAO9B,GALU1zC,SAAN/D,IAAmBA,EAAI,GACjB+D,SAAN9D,IAAmBA,EAAI,GAE3Bw3C,EAAQn9C,KAAKijI,SAAS9lF,GAEjBqoF,KAAaA,EAAU9hI,OAAS,GAArC,CASA,IAAK,GAHDyyF,GAAQzwF,EAAI8/H,EAAU,GAAG9/H,EACzB0wF,EAAQzwF,EAAI6/H,EAAU,GAAG7/H,EAEpBlC,EAAI,EAAGA,EAAI+hI,EAAU9hI,OAAQD,IAElCzD,KAAKg9C,OAAOG,GAAOhsC,KAAMilF,EAAQovC,EAAU/hI,GAAGkC,GAAKwwF,EAAQqvC,EAAU/hI,GAAGiC,GAAI01B,KAAKoqG,EAAU/hI,GAGrGzD,MAAKg9C,OAAOG,GAAOvnC,OAAQ,EACrB5V,KAAKgkI,eAAe7mF,KAgBxBlG,KAAM,SAAUwuF,EAAOC,EAAOhgI,EAAGC,EAAGkB,EAAOC,EAAQq2C,GAE/CA,EAAQn9C,KAAKijI,SAAS9lF,GAEtBn9C,KAAKo7B,KAAK11B,EAAGC,EAAGkB,EAAOC,EAAQq2C,GAE3Bn9C,KAAKuhI,SAAS79H,OAAS,IAK3B1D,KAAKwhI,OAASiE,EACdzlI,KAAKqjF,OAASqiD,EAEd1lI,KAAKuhI,SAAS3oG,QAAQ54B,KAAK2lI,YAAa3lI,MAExCA,KAAKulI,MAAM7/H,EAAGC,EAAG3F,KAAKuhI,SAAUpkF,KAWpCwoF,YAAa,SAAU1hI,GAEfA,EAAMyE,QAAU1I,KAAKwhI,OAGrBv9H,EAAMyE,MAAQ1I,KAAKqjF,OAEdp/E,EAAMyE,QAAU1I,KAAKqjF,SAG1Bp/E,EAAMyE,MAAQ1I,KAAKwhI,SAiB3B5oG,QAAS,SAAU+f,EAAUvrC,EAAS1H,EAAGC,EAAGkB,EAAOC,EAAQq2C,GAEvDA,EAAQn9C,KAAKijI,SAAS9lF,GAEtBn9C,KAAKo7B,KAAK11B,EAAGC,EAAGkB,EAAOC,EAAQq2C,GAE3Bn9C,KAAKuhI,SAAS79H,OAAS,IAK3B1D,KAAKuhI,SAAS3oG,QAAQ+f,EAAUvrC,GAEhCpN,KAAKulI,MAAM7/H,EAAGC,EAAG3F,KAAKuhI,SAAUpkF,KAgBpCzhB,QAAS,SAAUltB,EAAQkuB,EAAMh3B,EAAGC,EAAGkB,EAAOC,EAAQq2C,GAMlD,GAJAA,EAAQn9C,KAAKijI,SAAS9lF,GAEtBn9C,KAAKo7B,KAAK11B,EAAGC,EAAGkB,EAAOC,EAAQq2C,KAE3Bn9C,KAAKuhI,SAAS79H,OAAS,GAA3B,CAKA,IAAK,GAAID,GAAI,EAAGA,EAAIzD,KAAKuhI,SAAS79H,OAAQD,IAElCzD,KAAKuhI,SAAS99H,GAAGiF,QAAU8F,IAE3BxO,KAAKuhI,SAAS99H,GAAGiF,MAAQg0B,EAIjC18B,MAAKulI,MAAM7/H,EAAGC,EAAG3F,KAAKuhI,SAAUpkF,KAcpCrjB,OAAQ,SAAUp0B,EAAGC,EAAGkB,EAAOC,EAAQq2C,GAMnC,GAJAA,EAAQn9C,KAAKijI,SAAS9lF,GAEtBn9C,KAAKo7B,KAAK11B,EAAGC,EAAGkB,EAAOC,EAAQq2C,KAE3Bn9C,KAAKuhI,SAAS79H,OAAS,GAA3B,CAOA,IAAK,GAFD8/H,MAEK1qG,EAAI,EAAGA,EAAI94B,KAAKuhI,SAAS79H,OAAQo1B,IAEtC,GAAI94B,KAAKuhI,SAASzoG,GAAGpwB,MACrB,CACI,GAAIkpF,GAAM5xF,KAAKuhI,SAASzoG,GAAGpwB,KAEE,MAAzB86H,EAAQr6H,QAAQyoF,IAEhB4xC,EAAQj/H,KAAKqtF,GAKzB,IAAK,GAAInuF,GAAI,EAAGA,EAAIzD,KAAKuhI,SAAS79H,OAAQD,IAEtCzD,KAAKuhI,SAAS99H,GAAGiF,MAAQ1I,KAAK4E,KAAK0kC,IAAI+/D,KAAKm6B,EAGhDxjI,MAAKulI,MAAM7/H,EAAGC,EAAG3F,KAAKuhI,SAAUpkF,KAcpCu1E,QAAS,SAAUhtH,EAAGC,EAAGkB,EAAOC,EAAQq2C,GAMpC,GAJAA,EAAQn9C,KAAKijI,SAAS9lF,GAEtBn9C,KAAKo7B,KAAK11B,EAAGC,EAAGkB,EAAOC,EAAQq2C,KAE3Bn9C,KAAKuhI,SAAS79H,OAAS,GAA3B,CAOA,IAAK,GAFD8/H,MAEK1qG,EAAI,EAAGA,EAAI94B,KAAKuhI,SAAS79H,OAAQo1B,IAElC94B,KAAKuhI,SAASzoG,GAAGpwB,OAEjB86H,EAAQj/H,KAAKvE,KAAKuhI,SAASzoG,GAAGpwB,MAItCorB,GAAOoF,MAAMw5F,QAAQ8Q,EAErB,KAAK,GAAI//H,GAAI,EAAGA,EAAIzD,KAAKuhI,SAAS79H,OAAQD,IAEtCzD,KAAKuhI,SAAS99H,GAAGiF,MAAQ86H,EAAQ//H,EAAI,EAGzCzD,MAAKulI,MAAM7/H,EAAGC,EAAG3F,KAAKuhI,SAAUpkF,KAepClgC,KAAM,SAAUvU,EAAOhD,EAAGC,EAAGkB,EAAOC,EAAQq2C,GAMxC,GAJAA,EAAQn9C,KAAKijI,SAAS9lF,GAEtBn9C,KAAKo7B,KAAK11B,EAAGC,EAAGkB,EAAOC,EAAQq2C,KAE3Bn9C,KAAKuhI,SAAS79H,OAAS,GAA3B,CAKA,IAAK,GAAID,GAAI,EAAGA,EAAIzD,KAAKuhI,SAAS79H,OAAQD,IAEtCzD,KAAKuhI,SAAS99H,GAAGiF,MAAQA,CAG7B1I,MAAKulI,MAAM7/H,EAAGC,EAAG3F,KAAKuhI,SAAUpkF,KASpCyoF,gBAAiB,WAEb5lI,KAAKg9C,OAAOt5C,OAAS,EACrB1D,KAAKqhI,aAAe,GASxBwE,KAAM,WAKF,IAAK,GAHDC,GAAM,GACNztG,GAAQ,IAEH1yB,EAAI,EAAGA,EAAI3F,KAAKg9C,OAAOh9C,KAAKqhI,cAAcv6H,OAAQnB,IAC3D,CACI,IAAK,GAAID,GAAI,EAAGA,EAAI1F,KAAKg9C,OAAOh9C,KAAKqhI,cAAcx6H,MAAOnB,IAEtDogI,GAAO,OAMCztG,EAAK9zB,KAJTvE,KAAKg9C,OAAOh9C,KAAKqhI,cAAclwH,KAAKxL,GAAGD,GAAK,EAExC1F,KAAKshI,SAASthI,KAAKg9C,OAAOh9C,KAAKqhI,cAAclwH,KAAKxL,GAAGD,IAE3C,eAAiB1F,KAAKshI,SAASthI,KAAKg9C,OAAOh9C,KAAKqhI,cAAclwH,KAAKxL,GAAGD,IAItE,sBAKJ,2BAIlBogI,IAAO,KAGXztG,EAAK,GAAKytG,EACVpxH,QAAQC,IAAIxN,MAAMuN,QAAS2jB,IAU/B90B,QAAS,WAELvD,KAAK4lI,kBACL5lI,KAAKmR,QACLnR,KAAK4E,KAAO,OAMpBkvB,EAAOmpD,QAAQ55E,UAAUC,YAAcwwB,EAAOmpD,QAM9Cr5E,OAAOC,eAAeiwB,EAAOmpD,QAAQ55E,UAAW,SAE5CS,IAAK,WAED,MAAO9D,MAAKg9C,OAAOh9C,KAAKqhI,eAI5Br9H,IAAK,SAAUC,GAEPA,IAAUjE,KAAKqhI,cAEfrhI,KAAK4kI,SAAS3gI,MA6B1B6vB,EAAOyvG,aAAe,SAAU3+H,EAAMk4E,EAASp0E,EAAO7B,EAAOC,GAEzDD,GAAS,EACTC,GAAU,EAEVgtB,EAAOnsB,OAAO7B,KAAK9F,KAAM4E,EAAM,EAAG,GAQlC5E,KAAK+lI,IAAMjpD,EAQX98E,KAAK0I,MAAQA,EAQb1I,KAAKm9C,MAAQ2/B,EAAQ9/B,OAAOt0C,GAO5B1I,KAAK+Q,OAAS+iB,EAAO4e,OAAOtqC,OAAOvB,EAAOC,GAO1C9G,KAAKoN,QAAUpN,KAAK+Q,OAAOE,WAAW,MAEtCjR,KAAKoM,WAAW,GAAItM,MAAKyL,QAAQ,GAAIzL,MAAKgyB,YAAY9xB,KAAK+Q,UAS3D/Q,KAAK+W,KAAO+c,EAAO6C,aAMnB32B,KAAK80C,YAAchhB,EAAO6C,aAe1B32B,KAAKgmI,gBACDC,mBAAmB,EACnBC,cAAe,GACfC,WAAY,MAShBnmI,KAAK8sC,OAAQ,EAKb9sC,KAAKiyC,QAAS,EAkBdjyC,KAAKomI,eAEDC,iBAAkB,mBAClBC,qBAAsB,oBAEtBC,iBAAiB,EAEjBC,WAAY,GACZC,iBAAkB,kBAClBC,sBAAuB,qBAU3B1mI,KAAK2mI,cAAgB,EAQrB3mI,KAAK4mI,cAAgB,EAOrB5mI,KAAK4V,OAAQ,EAOb5V,KAAK6mI,YAAc,EAOnB7mI,KAAK8mI,OAAQ,EAOb9mI,KAAK+mI,KAGDjlC,QAAS,EACTF,QAAS,EACTolC,YAAa,EACbC,aAAc,EAEdlqD,UAAWD,EAAQC,UACnBC,WAAYF,EAAQE,WAKpBhvE,GAAI8uE,EAAQC,UACZ9uE,GAAI6uE,EAAQE,WAGZgkD,aASJhhI,KAAKknI,SAAW,EAOhBlnI,KAAKmnI,SAAW,EAOhBnnI,KAAKuhI,YAEA38H,EAAK6uC,OAAO+mD,oBAEbx6F,KAAKgmI,eAAeG,WAAaryG,EAAOyvG,aAAa6D,0BAGzDpnI,KAAKw1C,eAAgB,GAIzB1hB,EAAOyvG,aAAalgI,UAAYO,OAAOwE,OAAO0rB,EAAOnsB,OAAOtE,WAC5DywB,EAAOyvG,aAAalgI,UAAUC,YAAcwwB,EAAOyvG,aAEnDzvG,EAAOyvG,aAAalgI,UAAUu6E,cAAgB9pD,EAAOk/C,UAAUe,KAAKztE,UAQpEwtB,EAAOyvG,aAAa8D,iBAAmB,KAUvCvzG,EAAOyvG,aAAa6D,uBAAyB,WAOzC,MALKpnI,MAAKqnI,mBAENrnI,KAAKqnI,iBAAmBvzG,EAAO4e,OAAOtqC,OAAO,EAAG,IAG7CpI,KAAKqnI,kBAUhBvzG,EAAOyvG,aAAalgI,UAAUiD,UAAY,WAEtC,MAAOtG,MAAK49E,iBAUhB9pD,EAAOyvG,aAAalgI,UAAU0uC,WAAa,WAEvCje,EAAOk/C,UAAUwB,cAAcziC,WAAWjsC,KAAK9F,KAG/C,IAAI4oC,GAAS5oC,KAAK4E,KAAKgkC,MAEvB5oC,MAAK8hG,QAAUl5D,EAAOljC,EAAI1F,KAAK2mI,cAAgB3mI,KAAK2B,MAAM+D,EAC1D1F,KAAK4hG,QAAUh5D,EAAOjjC,EAAI3F,KAAK4mI,cAAgB5mI,KAAK2B,MAAMgE,EAE1D3F,KAAKgH,UAiBT8sB,EAAOyvG,aAAalgI,UAAU0E,OAAS,SAAUlB,EAAOC,GAEpD9G,KAAK+Q,OAAOlK,MAAQA,EACpB7G,KAAK+Q,OAAOjK,OAASA,EAErB9G,KAAK8H,QAAQqE,MAAMpE,OAAOlB,EAAOC,GAEjC9G,KAAK8H,QAAQjB,MAAQA,EACrB7G,KAAK8H,QAAQhB,OAASA,EAEtB9G,KAAK8H,QAAQoF,KAAKrG,MAAQA,EAC1B7G,KAAK8H,QAAQoF,KAAKpG,OAASA,EAE3B9G,KAAK8H,QAAQkE,YAAYnF,MAAQA,EACjC7G,KAAK8H,QAAQkE,YAAYlF,OAASA,EAElC9G,KAAK8H,QAAQkE,YAAY4J,QACzB5V,KAAK8H,QAAQmrB,gBAAiB,EAE9BjzB,KAAK8H,QAAQurB,aAEbrzB,KAAK4V,OAAQ,GAUjBke,EAAOyvG,aAAalgI,UAAUikI,YAAc,WAExCtnI,KAAK4E,KAAKE,MAAMu2C,UAAU,EAAG,EAAGr7C,KAAKm9C,MAAM2jF,cAAgB9gI,KAAK2B,MAAM+D,EAAG1F,KAAKm9C,MAAM4jF,eAAiB/gI,KAAK2B,MAAMgE,IAYpHmuB,EAAOyvG,aAAalgI,UAAUkkI,MAAQ,SAAU7hI,GAO5C,MALQ,GAAJA,IAEAA,EAAI,GAGmB,IAAvB1F,KAAK2mI,cAEEjhI,EAGJ1F,KAAKknI,UAAYxhI,EAAK1F,KAAKknI,SAAWlnI,KAAK2mI,gBAYtD7yG,EAAOyvG,aAAalgI,UAAUmkI,QAAU,SAAU9hI,GAE9C,MAA2B,KAAvB1F,KAAK2mI,cAEEjhI,EAGH1F,KAAKknI,SAAWlnI,KAAK2mI,eAAkBjhI,EAAI1F,KAAKknI,WAY5DpzG,EAAOyvG,aAAalgI,UAAUokI,MAAQ,SAAU9hI,GAO5C,MALQ,GAAJA,IAEAA,EAAI,GAGmB,IAAvB3F,KAAK4mI,cAEEjhI,EAGJ3F,KAAKmnI,UAAYxhI,EAAK3F,KAAKmnI,SAAWnnI,KAAK4mI,gBAYtD9yG,EAAOyvG,aAAalgI,UAAUqkI,QAAU,SAAU/hI,GAE9C,MAA2B,KAAvB3F,KAAK4mI,cAEEjhI,EAGH3F,KAAKmnI,SAAWnnI,KAAK4mI,eAAkBjhI,EAAI3F,KAAKmnI,WAY5DrzG,EAAOyvG,aAAalgI,UAAUskI,SAAW,SAAUjiI,GAG/C,MAAO/E,MAAKq3B,MAAMh4B,KAAKunI,MAAM7hI,GAAK1F,KAAK+mI,IAAIhqD,YAY/CjpD,EAAOyvG,aAAalgI,UAAUukI,SAAW,SAAUjiI,GAG/C,MAAOhF,MAAKq3B,MAAMh4B,KAAKynI,MAAM9hI,GAAK3F,KAAK+mI,IAAI/pD,aAc/ClpD,EAAOyvG,aAAalgI,UAAUwkI,UAAY,SAAUniI,EAAGC,EAAGw3B,GAKtD,MAHAA,GAAMz3B,EAAI1F,KAAK2nI,SAASjiI,GACxBy3B,EAAMx3B,EAAI3F,KAAK4nI,SAASjiI,GAEjBw3B,GAeXrJ,EAAOyvG,aAAalgI,UAAUykI,gBAAkB,SAAUhpG,EAAMY,EAAUghG,EAAUqH,GAE3EroG,IAAYA,EAAW1/B,KAAK6mI,aAChBp9H,SAAbi3H,IAA0BA,GAAW,GACjBj3H,SAApBs+H,IAAiCA,GAAkB,EAGvD,IAAI7G,GAAQlhI,KAAKw+H,SAAS1/F,EAAKp5B,EAAGo5B,EAAKn5B,EAAGm5B,EAAKj4B,MAAOi4B,EAAKh4B,OAAQ45H,EAAUqH,EAE7E,IAAqB,IAAjB7G,EAAMx9H,OAEN,QAOJ,KAAK,GAHDy+F,GAASrjE,EAAKW,kBAAkBC,GAChCC,KAEKl8B,EAAI,EAAGA,EAAIy9H,EAAMx9H,OAAQD,IAE9B,IAAK,GAAIq1B,GAAI,EAAGA,EAAIqpE,EAAOz+F,OAAQo1B,IACnC,CACI,GAAI4lG,GAAOwC,EAAMz9H,GACbukI,EAAQ7lC,EAAOrpE,EACnB,IAAI4lG,EAAK55F,cAAckjG,EAAM,GAAIA,EAAM,IACvC,CACIroG,EAAQp7B,KAAKm6H,EACb,QAKZ,MAAO/+F,IAiBX7L,EAAOyvG,aAAalgI,UAAUm7H,SAAW,SAAU94H,EAAGC,EAAGkB,EAAOC,EAAQ45H,EAAUqH,GAG7Dt+H,SAAbi3H,IAA0BA,GAAW,GACjBj3H,SAApBs+H,IAAiCA,GAAkB,EAEvD,IAAIE,KAAavH,GAAYqH,EAG7BriI,GAAI1F,KAAKunI,MAAM7hI,GACfC,EAAI3F,KAAKynI,MAAM9hI,EASf,KANA,GAAIR,GAAKxE,KAAKq3B,MAAMtyB,GAAK1F,KAAK+mI,IAAI/4H,GAAKhO,KAAK2B,MAAM+D,IAC9CN,EAAKzE,KAAKq3B,MAAMryB,GAAK3F,KAAK+mI,IAAI94H,GAAKjO,KAAK2B,MAAMgE,IAE9C2tB,EAAK3yB,KAAKo3B,MAAMryB,EAAImB,IAAU7G,KAAK+mI,IAAI/4H,GAAKhO,KAAK2B,MAAM+D,IAAMP,EAC7DouB,EAAK5yB,KAAKo3B,MAAMpyB,EAAImB,IAAW9G,KAAK+mI,IAAI94H,GAAKjO,KAAK2B,MAAMgE,IAAMP,EAE3DpF,KAAKuhI,SAAS79H,QAEjB1D,KAAKuhI,SAASvjH,KAGlB,KAAK,GAAIkqH,GAAK9iI,EAASA,EAAKmuB,EAAV20G,EAAcA,IAE5B,IAAK,GAAIC,GAAKhjI,EAASA,EAAKmuB,EAAV60G,EAAcA,IAChC,CACI,GAAI5/F,GAAMvoC,KAAKm9C,MAAMhsC,KAAK+2H,EAEtB3/F,IAAOA,EAAI4/F,KAEPF,GAAY1/F,EAAI4/F,GAAI1H,cAAcC,EAAUqH,KAE5C/nI,KAAKuhI,SAASh9H,KAAKgkC,EAAI4/F,IAMvC,MAAOnoI,MAAKuhI,SAASxkH,SAazB+W,EAAOyvG,aAAalgI,UAAU+kI,eAAiB,SAAUC,GAErD,GAAIrH,GAAWhhI,KAAK+mI,IAAI/F,QAGxB,IAAgB,IAAZqH,EAEA,KAAOrH,EAASt9H,OAAS2kI,GAErBrH,EAASz8H,KAAKkF,OAItB,IAAI6+H,GAAWtoI,KAAK+lI,IAAI7E,MAAMmH,IAAcroI,KAAK+lI,IAAI7E,MAAMmH,GAAW,EAEtE,IAAgB,MAAZC,EACJ,CACI,GAAItG,GAAUhiI,KAAK+lI,IAAI/E,SAASsH,EAEhC,IAAItG,GAAWA,EAAQuG,kBAAkBF,GAErC,MAAQrH,GAASqH,GAAarG,EAItC,MAAQhB,GAASqH,GAAa,MAYlCv0G,EAAOyvG,aAAalgI,UAAUmlI,kBAAoB,WAI9C,IAFA,GAAIxH,GAAWhhI,KAAK+mI,IAAI/F,SAEjBA,EAASt9H,QAEZs9H,EAAShjH,OAYjB8V,EAAOyvG,aAAalgI,UAAUolI,SAAW,SAAUC,EAAQC,GAEvDD,EAASA,GAAU,EACnBC,EAASA,GAAUD,CAEnB,KAAK,GAAI/iI,GAAI,EAAGA,EAAI3F,KAAKm9C,MAAMhsC,KAAKzN,OAAQiC,IAIxC,IAAK,GAFD4iC,GAAMvoC,KAAKm9C,MAAMhsC,KAAKxL,GAEjBD,EAAI,EAAGA,EAAI6iC,EAAI7kC,OAAQgC,IAChC,CACI,GAAIg5H,GAAOn2F,EAAI7iC,EAEfg5H,GAAK73H,MAAQ7G,KAAK+lI,IAAIhpD,UAAY2rD,EAClChK,EAAK53H,OAAS9G,KAAK+lI,IAAI/oD,WAAa2rD,EAEpCjK,EAAKjO,OAASiO,EAAKh5H,EAAIg5H,EAAK73H,MAC5B63H,EAAKhO,OAASgO,EAAK/4H,EAAI+4H,EAAK53H,OAIpC9G,KAAK2B,MAAM46B,MAAMmsG,EAAQC,IAe7B70G,EAAOyvG,aAAalgI,UAAUulI,YAAc,SAAUx7H,EAAS1H,EAAGC,GAE9D,GAAIoL,GAAS3D,EAAQ2D,OACjB83H,EAAQ93H,EAAOlK,MAAQlG,KAAKshB,IAAIvc,GAChCojI,EAAQ/3H,EAAOjK,OAASnG,KAAKshB,IAAItc,GAGjCgI,EAAK,EACLE,EAAK,EACL+xB,EAAKl6B,EACLm6B,EAAKl6B,CAED,GAAJD,IAEAiI,GAAMjI,EACNk6B,EAAK,GAGD,EAAJj6B,IAEAkI,GAAMlI,EACNk6B,EAAK,EAGT,IAAIsmG,GAAanmI,KAAKgmI,eAAeG,UAErC,IAAIA,EACJ,EAGQA,EAAWt/H,MAAQgiI,GAAS1C,EAAWr/H,OAASgiI,KAEhD3C,EAAWt/H,MAAQgiI,EACnB1C,EAAWr/H,OAASgiI,EAGxB,IAAIC,GAAc5C,EAAWl1H,WAAW,KACxC83H,GAAY56G,UAAU,EAAG,EAAG06G,EAAOC,GACnCC,EAAY16H,UAAU0C,EAAQpD,EAAIE,EAAIg7H,EAAOC,EAAO,EAAG,EAAGD,EAAOC,GAEjE17H,EAAQ+gB,UAAUyR,EAAIC,EAAIgpG,EAAOC,GACjC17H,EAAQiB,UAAU83H,EAAY,EAAG,EAAG0C,EAAOC,EAAOlpG,EAAIC,EAAIgpG,EAAOC,OAMjE17H,GAAQihB,OACRjhB,EAAQC,yBAA2B,OACnCD,EAAQiB,UAAU0C,EAAQpD,EAAIE,EAAIg7H,EAAOC,EAAOlpG,EAAIC,EAAIgpG,EAAOC,GAC/D17H,EAAQshB,WAkBhBoF,EAAOyvG,aAAalgI,UAAU2lI,aAAe,SAAUlnC,EAASF,EAAS/mE,EAAMuC,EAAKxC,EAAOyC,GAEvF,GAAIjwB,GAAUpN,KAAKoN,QAEfvG,EAAQ7G,KAAKm9C,MAAMt2C,MACnBC,EAAS9G,KAAKm9C,MAAMr2C,OACpBwsB,EAAKtzB,KAAK+mI,IAAIhqD,UACdxpD,EAAKvzB,KAAK+mI,IAAI/pD,WAEdgkD,EAAWhhI,KAAK+mI,IAAI/F,SACpBiI,EAAYhW,GAEXjzH,MAAK8mI,QAEMlsG,GAARC,IAEAA,EAAOl6B,KAAK2+B,IAAI,EAAGzE,GACnBD,EAAQj6B,KAAK0wB,IAAIxqB,EAAQ,EAAG+zB,IAErByC,GAAPD,IAEAA,EAAMz8B,KAAK2+B,IAAI,EAAGlC,GAClBC,EAAS18B,KAAK0wB,IAAIvqB,EAAS,EAAGu2B,IAKtC,IAUIl4B,GAAIC,EAAIM,EAAGC,EAAGujI,EAAMC,EAVpBC,EAASvuG,EAAOvH,EAAMwuE,EACtBunC,EAASjsG,EAAM7J,EAAMquE,EAGrB0nC,GAAczuG,GAAS,GAAK,IAAMh0B,GAAUA,EAC5C0iI,GAAcnsG,GAAQ,GAAK,IAAMt2B,GAAWA,CAShD,KAFAsG,EAAQyhB,UAAY7uB,KAAKwpI,UAEpB7jI,EAAI4jI,EAAYJ,EAAO9rG,EAASD,EAAKh4B,EAAKikI,EAC3CF,GAAQ,EACRxjI,IAAKwjI,IAAQ/jI,GAAMmuB,EACvB,CAEQ5tB,GAAKmB,IAAUnB,GAAKmB,EAExB,IAAIyhC,GAAMvoC,KAAKm9C,MAAMhsC,KAAKxL,EAE1B,KAAKD,EAAI4jI,EAAYJ,EAAOtuG,EAAQC,EAAM11B,EAAKikI,EAC3CF,GAAQ,EACRxjI,IAAKwjI,IAAQ/jI,GAAMmuB,EACvB,CAEQ5tB,GAAKmB,IAASnB,GAAKmB,EAEvB,IAAI63H,GAAOn2F,EAAI7iC,EAEf,IAAKg5H,KAAQA,EAAKh2H,MAAQ,GAA1B,CAKA,GAAIA,GAAQg2H,EAAKh2H,MAEb1E,EAAMg9H,EAASt4H,EAEPe,UAARzF,IAEAA,EAAMhE,KAAKooI,eAAe1/H,IAI1Bg2H,EAAK18H,QAAUinI,GAAcjpI,KAAK8sC,QAElC1/B,EAAQG,YAAcmxH,EAAK18H,MAC3BinI,EAAYvK,EAAK18H,OAGjBgC,EAEI06H,EAAK38H,UAAY28H,EAAK0B,SAEtBhzH,EAAQihB,OACRjhB,EAAQ6mB,UAAU9uB,EAAKu5H,EAAK76F,QAASz+B,EAAKs5H,EAAK56F,SAC/C12B,EAAQyxB,OAAO6/F,EAAK38H,UAEhB28H,EAAK0B,SAELhzH,EAAQzL,MAAM,GAAI,GAGtBqC,EAAI0/E,KAAKt2E,GAAUsxH,EAAK76F,SAAU66F,EAAK56F,QAASp7B,GAChD0E,EAAQshB,WAIR1qB,EAAI0/E,KAAKt2E,EAASjI,EAAIC,EAAIsD,GAGzB1I,KAAKomI,cAAcC,mBAExBj5H,EAAQyhB,UAAY7uB,KAAKomI,cAAcC,iBACvCj5H,EAAQ0hB,SAAS3pB,EAAIC,EAAIkuB,EAAIC,IAG7BmrG,EAAK5xF,OAAS9sC,KAAKomI,cAAcE,uBAEjCl5H,EAAQyhB,UAAY7uB,KAAKomI,cAAcE,qBACvCl5H,EAAQ0hB,SAAS3pB,EAAIC,EAAIkuB,EAAIC,QAe7CO,EAAOyvG,aAAalgI,UAAUomI,kBAAoB,SAAUC,EAAQC,GAEhE,GAAI7nC,GAAU9hG,KAAK+mI,IAAIjlC,QACnBF,EAAU5hG,KAAK+mI,IAAInlC,QAEnBgoC,EAAU5pI,KAAK+Q,OAAOlK,MACtBgjI,EAAU7pI,KAAK+Q,OAAOjK,OAEtBwsB,EAAKtzB,KAAK+mI,IAAIhqD,UACdxpD,EAAKvzB,KAAK+mI,IAAI/pD,WAKdniD,EAAO,EACPD,GAAStH,EACT8J,EAAM,EACNC,GAAU9J,CAgCd,IA9Ba,EAATm2G,GAEA7uG,EAAO+uG,EAAUF,EACjB9uG,EAAQgvG,EAAU,GAEbF,EAAS,IAGd9uG,EAAQ8uG,GAGC,EAATC,GAEAvsG,EAAMysG,EAAUF,EAChBtsG,EAASwsG,EAAU,GAEdF,EAAS,IAGdtsG,EAASssG,GAGb3pI,KAAK4oI,YAAY5oI,KAAKoN,QAASs8H,EAAQC,GAGvC9uG,EAAOl6B,KAAKq3B,OAAO6C,EAAOinE,GAAWxuE,GACrCsH,EAAQj6B,KAAKq3B,OAAO4C,EAAQknE,GAAWxuE,GACvC8J,EAAMz8B,KAAKq3B,OAAOoF,EAAMwkE,GAAWruE,GACnC8J,EAAS18B,KAAKq3B,OAAOqF,EAASukE,GAAWruE,GAE7BqH,GAARC,EACJ,CAEI76B,KAAKoN,QAAQ+gB,UAAY0M,EAAOvH,EAAMwuE,EAAU,GAAIlnE,EAAQC,EAAO,GAAKvH,EAAIu2G,EAE5E,IAAIC,GAAUnpI,KAAKq3B,OAAO,EAAI4pE,GAAWruE,GACrCw2G,EAAappI,KAAKq3B,OAAO6xG,EAAU,EAAIjoC,GAAWruE,EACtDvzB,MAAKgpI,aAAalnC,EAASF,EAAS/mE,EAAMivG,EAASlvG,EAAOmvG,GAG9D,GAAW1sG,GAAPD,EACJ,CAEIp9B,KAAKoN,QAAQ+gB,UAAU,EAAKiP,EAAM7J,EAAMquE,EAAUgoC,GAAUvsG,EAASD,EAAM,GAAK7J,EAEhF,IAAIy2G,GAAWrpI,KAAKq3B,OAAO,EAAI8pE,GAAWxuE,GACtC22G,EAAYtpI,KAAKq3B,OAAO4xG,EAAU,EAAI9nC,GAAWxuE,EACrDtzB,MAAKgpI,aAAalnC,EAASF,EAASooC,EAAU5sG,EAAK6sG,EAAW5sG,KAWtEvJ,EAAOyvG,aAAalgI,UAAU6mI,WAAa,WAEvC,GAAIpoC,GAAU9hG,KAAK+mI,IAAIjlC,QACnBF,EAAU5hG,KAAK+mI,IAAInlC,QAEnBgoC,EAAU5pI,KAAK+Q,OAAOlK,MACtBgjI,EAAU7pI,KAAK+Q,OAAOjK,OAEtBwsB,EAAKtzB,KAAK+mI,IAAIhqD,UACdxpD,EAAKvzB,KAAK+mI,IAAI/pD,WAEdniD,EAAOl6B,KAAKq3B,MAAM8pE,EAAUxuE,GAC5BsH,EAAQj6B,KAAKq3B,OAAO4xG,EAAU,EAAI9nC,GAAWxuE,GAC7C8J,EAAMz8B,KAAKq3B,MAAM4pE,EAAUruE,GAC3B8J,EAAS18B,KAAKq3B,OAAO6xG,EAAU,EAAIjoC,GAAWruE,EAElDvzB,MAAKoN,QAAQ+gB,UAAU,EAAG,EAAGy7G,EAASC,GAEtC7pI,KAAKgpI,aAAalnC,EAASF,EAAS/mE,EAAMuC,EAAKxC,EAAOyC,IAU1DvJ,EAAOyvG,aAAalgI,UAAU2D,OAAS,WAEnC,GAAImjI,IAAY,CAEhB,IAAKnqI,KAAKiC,QAAV,CAKAjC,KAAKoN,QAAQihB,QAETruB,KAAK4V,OAAS5V,KAAKm9C,MAAMvnC,SAEzB5V,KAAKm9C,MAAMvnC,OAAQ,EACnBu0H,GAAY,EAGhB,IAAInD,GAAchnI,KAAK+Q,OAAOlK,MAC1BogI,EAAejnI,KAAK+Q,OAAOjK,OAG3Bg7F,EAA0B,EAAhB9hG,KAAKknI,SACftlC,EAA0B,EAAhB5hG,KAAKmnI,SAEfiD,EAAKpqI,KAAK+mI,IACV2C,EAASU,EAAGtoC,QAAUA,EACtB6nC,EAASS,EAAGxoC,QAAUA,CAE1B,IAAKuoC,GACU,IAAXT,GAA2B,IAAXC,GAChBS,EAAGpD,cAAgBA,GAAeoD,EAAGnD,eAAiBA,EAkD1D,MA5CAmD,GAAGtoC,QAAUA,EACbsoC,EAAGxoC,QAAUA,GAETwoC,EAAGpD,cAAgBA,GAAeoD,EAAGnD,eAAiBA,KAGtDmD,EAAGpD,YAAcA,EACjBoD,EAAGnD,aAAeA,GAGlBjnI,KAAK8sC,QAEL9sC,KAAKoN,QAAQG,YAAcvN,KAAKomI,cAAcI,WAE1CxmI,KAAKomI,cAAcG,kBAEnB4D,GAAY,KAIfA,GACDnqI,KAAKgmI,eAAeC,mBACnBtlI,KAAKshB,IAAIynH,GAAU/oI,KAAKshB,IAAI0nH,GAAWhpI,KAAK0wB,IAAI21G,EAAaC,GAE9DjnI,KAAKypI,kBAAkBC,EAAQC,GAK/B3pI,KAAKkqI,aAGLlqI,KAAK8sC,QAEL9sC,KAAKoN,QAAQG,YAAc,EAC3BvN,KAAKqqI,eAGTrqI,KAAK8H,QAAQkE,YAAY4J,QAEzB5V,KAAK4V,OAAQ,EAEb5V,KAAKoN,QAAQshB,WAEN,IAYXoF,EAAOyvG,aAAalgI,UAAUgnI,YAAc,WAExC,GAuBIllI,GAAIC,EAAIM,EAAGC,EAAGujI,EAAMC,EAvBpBrnC,EAAU9hG,KAAK+mI,IAAIjlC,QACnBF,EAAU5hG,KAAK+mI,IAAInlC,QAEnBx0F,EAAUpN,KAAKoN,QACfw8H,EAAU5pI,KAAK+Q,OAAOlK,MACtBgjI,EAAU7pI,KAAK+Q,OAAOjK,OAEtBD,EAAQ7G,KAAKm9C,MAAMt2C,MACnBC,EAAS9G,KAAKm9C,MAAMr2C,OACpBwsB,EAAKtzB,KAAK+mI,IAAIhqD,UACdxpD,EAAKvzB,KAAK+mI,IAAI/pD,WAEdniD,EAAOl6B,KAAKq3B,MAAM8pE,EAAUxuE,GAC5BsH,EAAQj6B,KAAKq3B,OAAO4xG,EAAU,EAAI9nC,GAAWxuE,GAC7C8J,EAAMz8B,KAAKq3B,MAAM4pE,EAAUruE,GAC3B8J,EAAS18B,KAAKq3B,OAAO6xG,EAAU,EAAIjoC,GAAWruE,GAE9C61G,EAASvuG,EAAOvH,EAAMwuE,EACtBunC,EAASjsG,EAAM7J,EAAMquE,EAErB0nC,GAAczuG,GAAS,GAAK,IAAMh0B,GAAUA,EAC5C0iI,GAAcnsG,GAAQ,GAAK,IAAMt2B,GAAWA,CAMhD,KAFAsG,EAAQkjB,YAActwB,KAAKomI,cAAcK,iBAEpC9gI,EAAI4jI,EAAYJ,EAAO9rG,EAASD,EAAKh4B,EAAKikI,EAC3CF,GAAQ,EACRxjI,IAAKwjI,IAAQ/jI,GAAMmuB,EACvB,CAEQ5tB,GAAKmB,IAAUnB,GAAKmB,EAExB,IAAIyhC,GAAMvoC,KAAKm9C,MAAMhsC,KAAKxL,EAE1B,KAAKD,EAAI4jI,EAAYJ,EAAOtuG,EAAQC,EAAM11B,EAAKikI,EAC3CF,GAAQ,EACRxjI,IAAKwjI,IAAQ/jI,GAAMmuB,EACvB,CAEQ5tB,GAAKmB,IAASnB,GAAKmB,EAEvB,IAAI63H,GAAOn2F,EAAI7iC,IACVg5H,GAAQA,EAAKh2H,MAAQ,IAAMg2H,EAAKgC,WAKjC1gI,KAAKomI,cAAcM,wBAEnBt5H,EAAQyhB,UAAY7uB,KAAKomI,cAAcM,sBACvCt5H,EAAQ0hB,SAAS3pB,EAAIC,EAAIpF,KAAK+mI,IAAI/4H,GAAIhO,KAAK+mI,IAAI94H,KAG/CjO,KAAKomI,cAAcK,mBAEnBr5H,EAAQ8iB,YAEJwuG,EAAKK,UAEL3xH,EAAQ+iB,OAAOhrB,EAAIC,GACnBgI,EAAQgjB,OAAOjrB,EAAKnF,KAAK+mI,IAAI/4H,GAAI5I,IAGjCs5H,EAAKM,aAEL5xH,EAAQ+iB,OAAOhrB,EAAIC,EAAKpF,KAAK+mI,IAAI94H,IACjCb,EAAQgjB,OAAOjrB,EAAKnF,KAAK+mI,IAAI/4H,GAAI5I,EAAKpF,KAAK+mI,IAAI94H,KAG/CywH,EAAKG,WAELzxH,EAAQ+iB,OAAOhrB,EAAIC,GACnBgI,EAAQgjB,OAAOjrB,EAAIC,EAAKpF,KAAK+mI,IAAI94H,KAGjCywH,EAAKI,YAEL1xH,EAAQ+iB,OAAOhrB,EAAKnF,KAAK+mI,IAAI/4H,GAAI5I,GACjCgI,EAAQgjB,OAAOjrB,EAAKnF,KAAK+mI,IAAI/4H,GAAI5I,EAAKpF,KAAK+mI,IAAI94H,KAGnDb,EAAQmjB;IAiBxB3sB,OAAOC,eAAeiwB,EAAOyvG,aAAalgI,UAAW,QAEjDS,IAAK,WACD,MAAO9D,MAAK8mI,OAGhB9iI,IAAK,SAAUC,GACXjE,KAAK8mI,MAAQ7iI,EACbjE,KAAK4V,OAAQ,KAYrBhS,OAAOC,eAAeiwB,EAAOyvG,aAAalgI,UAAW,WAEjDS,IAAK,WACD,MAAO9D,MAAKknI,UAGhBljI,IAAK,SAAUC,GACXjE,KAAKknI,SAAWjjI,KAYxBL,OAAOC,eAAeiwB,EAAOyvG,aAAalgI,UAAW,WAEjDS,IAAK,WACD,MAAO9D,MAAKmnI,UAGhBnjI,IAAK,SAAUC,GACXjE,KAAKmnI,SAAWljI,KAYxBL,OAAOC,eAAeiwB,EAAOyvG,aAAalgI,UAAW,kBAEjDS,IAAK,WACD,MAAO9D,MAAK+mI,IAAI/4H,IAGpBhK,IAAK,SAAUC,GACXjE,KAAK+mI,IAAI/4H,GAAa,EAAR/J,EACdjE,KAAK4V,OAAQ,KAYrBhS,OAAOC,eAAeiwB,EAAOyvG,aAAalgI,UAAW,mBAEjDS,IAAK,WACD,MAAO9D,MAAK+mI,IAAI94H,IAGpBjK,IAAK,SAAUC,GACXjE,KAAK+mI,IAAI94H,GAAa,EAARhK,EACdjE,KAAK4V,OAAQ,KAgBrBke,EAAO8sG,eAcHn+F,MAAO,SAAU79B,EAAM8R,EAAKqmE,EAAWC,EAAYn2E,EAAOC,GAOtD,GALkB2C,SAAdszE,IAA2BA,EAAY,IACxBtzE,SAAfuzE,IAA4BA,EAAa,IAC/BvzE,SAAV5C,IAAuBA,EAAQ,IACpB4C,SAAX3C,IAAwBA,EAAS,IAEzB2C,SAARiN,EAEA,MAAO1W,MAAKsqI,cAGhB,IAAY,OAAR5zH,EAEA,MAAO1W,MAAKsqI,aAAavtD,EAAWC,EAAYn2E,EAAOC,EAG3D,IAAIi/H,GAAMnhI,EAAKikC,MAAMw2E,eAAe3oG,EAEpC,IAAIqvH,EACJ,CACI,GAAIA,EAAI5tH,SAAW2b,EAAOmpD,QAAQunC,IAE9B,MAAOxkH,MAAKuqI,SAAS7zH,EAAKqvH,EAAI50H,KAAM4rE,EAAWC,EAE9C,KAAK+oD,EAAI5tH,QAAU4tH,EAAI5tH,SAAW2b,EAAOmpD,QAAQwnC,WAElD,MAAOzkH,MAAKwqI,eAAezE,EAAI50H,UAKnCuD,SAAQukB,KAAK,0DAA4DviB,IAcjF6zH,SAAU,SAAU7zH,EAAKvF,EAAM4rE,EAAWC,GAEtC,GAAI+oD,GAAM/lI,KAAKsqI,cAGfn5H,GAAOA,EAAKvD,MAOZ,KAAK,GALDivB,MACA6lG,EAAOvxH,EAAKooB,MAAM,MAClBzyB,EAAS47H,EAAKh/H,OACdmD,EAAQ,EAEHlB,EAAI,EAAGA,EAAI+8H,EAAKh/H,OAAQiC,IACjC,CACIk3B,EAAOl3B,KAIP,KAAK,GAFD8zG,GAASipB,EAAK/8H,GAAG4zB,MAAM,KAElB7zB,EAAI,EAAGA,EAAI+zG,EAAO/1G,OAAQgC,IAE/Bm3B,EAAOl3B,GAAGD,GAAK,GAAIouB,GAAOqsG,KAAK4F,EAAI/oF,OAAO,GAAI3iB,SAASo/E,EAAO/zG,GAAI,IAAKA,EAAGC,EAAGo3E,EAAWC,EAG9E,KAAVn2E,IAEAA,EAAQ4yG,EAAO/1G,QAmBvB,MAfAqiI,GAAI5tH,OAAS2b,EAAOmpD,QAAQunC,IAC5BuhB,EAAI5qG,KAAOzkB,EACXqvH,EAAIl/H,MAAQA,EACZk/H,EAAIj/H,OAASA,EACbi/H,EAAIhpD,UAAYA,EAChBgpD,EAAI/oD,WAAaA,EACjB+oD,EAAIjF,cAAgBj6H,EAAQk2E,EAC5BgpD,EAAIhF,eAAiBj6H,EAASk2E,EAE9B+oD,EAAI/oF,OAAO,GAAGn2C,MAAQA,EACtBk/H,EAAI/oF,OAAO,GAAGl2C,OAASA,EACvBi/H,EAAI/oF,OAAO,GAAG8jF,cAAgBiF,EAAIjF,cAClCiF,EAAI/oF,OAAO,GAAG+jF,eAAiBgF,EAAIhF,eACnCgF,EAAI/oF,OAAO,GAAG7rC,KAAO0rB,EAEdkpG,GAUXuE,aAAc,SAAUvtD,EAAWC,EAAYn2E,EAAOC,GAElD,GAAIi/H,KAEJA,GAAIl/H,MAAQ,EACZk/H,EAAIj/H,OAAS,EACbi/H,EAAIhpD,UAAY,EAChBgpD,EAAI/oD,WAAa,EAEQ,mBAAdD,IAA2C,OAAdA,IAAsBgpD,EAAIhpD,UAAYA,GACpD,mBAAfC,IAA6C,OAAfA,IAAuB+oD,EAAI/oD,WAAaA,GAC5D,mBAAVn2E,IAAmC,OAAVA,IAAkBk/H,EAAIl/H,MAAQA,GAC5C,mBAAXC,IAAqC,OAAXA,IAAmBi/H,EAAIj/H,OAASA,GAErEi/H,EAAI/gF,YAAc,aAClB+gF,EAAIlF,QAAU,IACdkF,EAAI10C,cACJ00C,EAAIjF,cAAgB,EACpBiF,EAAIhF,eAAiB,CAErB,IAAI/jF,MAEAG,GAEAhiB,KAAM,QACNz1B,EAAG,EACHC,EAAG,EACHkB,MAAO,EACPC,OAAQ,EACRg6H,cAAe,EACfC,eAAgB,EAChB/+H,MAAO,EACPC,SAAS,EACTovF,cACAmyC,WACA1/D,aACA2/D,UACAtyH,QAeJ,OATA6rC,GAAOz4C,KAAK44C,GAEZ4oF,EAAI/oF,OAASA,EACb+oF,EAAIhG,UACJgG,EAAIp8B,WACJo8B,EAAI3E,aACJ2E,EAAI/E,YACJ+E,EAAI7E,SAEG6E,GAUXyE,eAAgB,SAAU7wB,GA6OtB,QAAS58F,GAAOqc,EAAKqxG,GAEjB,GAAIC,KAEJ,KAAK,GAAInlE,KAAKklE,GACd,CACI,GAAI/zH,GAAM+zH,EAAOllE,EAEO,oBAAbnsC,GAAI1iB,KAEXg0H,EAAOh0H,GAAO0iB,EAAI1iB,IAI1B,MAAOg0H,GAzPX,GAAyB,eAArB/wB,EAAK30D,YAGL,MADAtwC,SAAQukB,KAAK,oGACN,IAIX,IAAI8sG,KAEJA,GAAIl/H,MAAQ8yG,EAAK9yG,MACjBk/H,EAAIj/H,OAAS6yG,EAAK7yG,OAClBi/H,EAAIhpD,UAAY48B,EAAKgxB,UACrB5E,EAAI/oD,WAAa28B,EAAKixB,WACtB7E,EAAI/gF,YAAc20D,EAAK30D,YACvB+gF,EAAI5tH,OAAS2b,EAAOmpD,QAAQwnC,WAC5BshB,EAAIlF,QAAUlnB,EAAKknB,QACnBkF,EAAI10C,WAAasoB,EAAKtoB,WACtB00C,EAAIjF,cAAgBiF,EAAIl/H,MAAQk/H,EAAIhpD,UACpCgpD,EAAIhF,eAAiBgF,EAAIj/H,OAASi/H,EAAI/oD,UAKtC,KAAK,GAFDhgC,MAEKv5C,EAAI,EAAGA,EAAIk2G,EAAK38D,OAAOt5C,OAAQD,IAEpC,GAA4B,cAAxBk2G,EAAK38D,OAAOv5C,GAAGsT,KAAnB,CAKA,GAAIomC,IAEAhiB,KAAMw+E,EAAK38D,OAAOv5C,GAAG03B,KACrBz1B,EAAGi0G,EAAK38D,OAAOv5C,GAAGiC,EAClBC,EAAGg0G,EAAK38D,OAAOv5C,GAAGkC,EAClBkB,MAAO8yG,EAAK38D,OAAOv5C,GAAGoD,MACtBC,OAAQ6yG,EAAK38D,OAAOv5C,GAAGqD,OACvBg6H,cAAennB,EAAK38D,OAAOv5C,GAAGoD,MAAQ8yG,EAAKgxB,UAC3C5J,eAAgBpnB,EAAK38D,OAAOv5C,GAAGqD,OAAS6yG,EAAKixB,WAC7C5oI,MAAO23G,EAAK38D,OAAOv5C,GAAGonI,QACtB5oI,QAAS03G,EAAK38D,OAAOv5C,GAAGxB,QACxBovF,cACAmyC,WACA1/D,aACA2/D,UAIA9pB,GAAK38D,OAAOv5C,GAAG4tF,aAEfl0C,EAAMk0C,WAAasoB,EAAK38D,OAAOv5C,GAAG4tF,WActC,KAAK,GARDtvF,GAAUq+H,EAAS0K,EAAY5K,EAH/Bx6H,EAAI,EACJ6iC,KACA1L,KASK/D,EAAI,EAAGvH,EAAMooF,EAAK38D,OAAOv5C,GAAG0N,KAAKzN,OAAY6tB,EAAJuH,EAASA,IAC3D,CAMI,GALA/2B,EAAW,EACXq+H,GAAU,EACVF,EAAMvmB,EAAK38D,OAAOv5C,GAAG0N,KAAK2nB,GAGtBonG,EAAM,UAyBN,OAvBA4K,EAAa,EAGT5K,EAAM,aAENA,GAAO,WACP4K,GAAc,GAId5K,EAAM,aAENA,GAAO,WACP4K,GAAc,GAId5K,EAAM,YAENA,GAAO,UACP4K,GAAc,GAGVA,GAEJ,IAAK,GACD/oI,EAAWpB,KAAKC,GAAG,CACnB,MACJ,KAAK,GACDmB,EAAWpB,KAAKC,EAChB,MACJ,KAAK,GACDmB,EAAW,EAAEpB,KAAKC,GAAG,CACrB,MACJ,KAAK,GACDmB,EAAW,EACXq+H,GAAU,CACV,MACJ,KAAK,GACDr+H,EAAWpB,KAAKC,GAAG,EACnBw/H,GAAU,CACV,MACJ,KAAK,GACDr+H,EAAWpB,KAAKC,GAChBw/H,GAAU,CACV,MACJ,KAAK,GACDr+H,EAAW,EAAEpB,KAAKC,GAAG,EACrBw/H,GAAU,EAMlBF,EAAM,GAEN33F,EAAIhkC,KAAK,GAAIuvB,GAAOqsG,KAAKhjF,EAAO+iF,EAAKx6H,EAAGm3B,EAAOn5B,OAAQi2G,EAAKgxB,UAAWhxB,EAAKixB,aAC5EriG,EAAIA,EAAI7kC,OAAS,GAAG3B,SAAWA,EAC/BwmC,EAAIA,EAAI7kC,OAAS,GAAG08H,QAAUA,GAI9B73F,EAAIhkC,KAAK,GAAIuvB,GAAOqsG,KAAKhjF,EAAO,GAAIz3C,EAAGm3B,EAAOn5B,OAAQi2G,EAAKgxB,UAAWhxB,EAAKixB,aAG/EllI,IAEIA,IAAMi0G,EAAK38D,OAAOv5C,GAAGoD,QAErBg2B,EAAOt4B,KAAKgkC,GACZ7iC,EAAI,EACJ6iC,MAIR4U,EAAMhsC,KAAO0rB,EAEbmgB,EAAOz4C,KAAK44C,GAIhB4oF,EAAI/oF,OAASA,CAKb,KAAK,GAFD+iF,MAEKt8H,EAAI,EAAGA,EAAIk2G,EAAK38D,OAAOt5C,OAAQD,IAEpC,GAA4B,eAAxBk2G,EAAK38D,OAAOv5C,GAAGsT,KAAnB,CAKA,GAAI0b,IAEA0I,KAAMw+E,EAAK38D,OAAOv5C,GAAG03B,KACrB1I,MAAOknF,EAAK38D,OAAOv5C,GAAGgvB,MACtB/sB,EAAGi0G,EAAK38D,OAAOv5C,GAAGiC,EAClBC,EAAGg0G,EAAK38D,OAAOv5C,GAAGkC,EAClB3D,MAAO23G,EAAK38D,OAAOv5C,GAAGonI,QACtB5oI,QAAS03G,EAAK38D,OAAOv5C,GAAGxB,QACxBovF,cAIAsoB,GAAK38D,OAAOv5C,GAAG4tF,aAEf5+D,EAAM4+D,WAAasoB,EAAK38D,OAAOv5C,GAAG4tF,YAGtC0uC,EAAOx7H,KAAKkuB,GAIhBszG,EAAIhG,OAASA,CAMb,KAAK,GAHDiB,MACAC,KAEKx9H,EAAI,EAAGA,EAAIk2G,EAAKqnB,SAASt9H,OAAQD,IAC1C,CAEI,GAAIO,GAAM21G,EAAKqnB,SAASv9H,EAExB,IAAIO,EAAIyuB,MACR,CACI,GAAI4vG,GAAS,GAAIvuG,GAAOwuG,QAAQt+H,EAAIm3B,KAAMn3B,EAAI07H,SAAU17H,EAAI2mI,UAAW3mI,EAAI4mI,WAAY5mI,EAAI27C,OAAQ37C,EAAIw1G,QAASx1G,EAAIqtF,WAEhHrtF,GAAI+mI,iBAEJ1I,EAAO2I,eAAiBhnI,EAAI+mI,gBAKhC1I,EAAO4I,eAAejnI,EAAIknI,WAAYlnI,EAAImnI,aAC1CnK,EAASz8H,KAAK89H,OAGlB,CACI,GAAI+I,GAAgB,GAAIt3G,GAAO2rG,gBAAgBz7H,EAAIm3B,KAAMn3B,EAAI07H,SAAU17H,EAAI2mI,UAAW3mI,EAAI4mI,WAAY5mI,EAAI27C,OAAQ37C,EAAIw1G,QAASx1G,EAAIqtF,WAEnI,KAAK,GAAI5tF,KAAKO,GAAIk9H,MAClB,CACI,GAAIzuG,GAAQzuB,EAAIk9H,MAAMz9H,GAAGgvB,MACrBytG,EAAMl8H,EAAI07H,SAAWrlG,SAAS52B,EAAG,GACrC2nI,GAAcznD,SAASu8C,EAAKztG,GAGhCwuG,EAAiB18H,KAAK6mI,IAK9BrF,EAAI/E,SAAWA,EACf+E,EAAI9E,iBAAmBA,CAuBvB,KAAK,GApBDt3B,MACAy3B,KAmBK39H,EAAI,EAAGA,EAAIk2G,EAAK38D,OAAOt5C,OAAQD,IAEpC,GAA4B,gBAAxBk2G,EAAK38D,OAAOv5C,GAAGsT,KAAnB,CAKA4yF,EAAQgQ,EAAK38D,OAAOv5C,GAAG03B,SACvBimG,EAAUznB,EAAK38D,OAAOv5C,GAAG03B,QAEzB,KAAK,GAAI1nB,GAAI,EAAG8d,EAAMooF,EAAK38D,OAAOv5C,GAAGkmG,QAAQjmG,OAAY6tB,EAAJ9d,EAASA,IAG1D,GAAIkmG,EAAK38D,OAAOv5C,GAAGkmG,QAAQl2F,GAAGysH,IAC9B,CACI,GAAInlD,IAEAmlD,IAAKvmB,EAAK38D,OAAOv5C,GAAGkmG,QAAQl2F,GAAGysH,IAC/B/kG,KAAMw+E,EAAK38D,OAAOv5C,GAAGkmG,QAAQl2F,GAAG0nB,KAChCpkB,KAAM4iG,EAAK38D,OAAOv5C,GAAGkmG,QAAQl2F,GAAGunB,eAAe,QAAU2+E,EAAK38D,OAAOv5C,GAAGkmG,QAAQl2F,GAAGsD,KAAO,GAC1FrR,EAAGi0G,EAAK38D,OAAOv5C,GAAGkmG,QAAQl2F,GAAG/N,EAC7BC,EAAGg0G,EAAK38D,OAAOv5C,GAAGkmG,QAAQl2F,GAAG9N,EAC7B1D,QAAS03G,EAAK38D,OAAOv5C,GAAGkmG,QAAQl2F,GAAGxR,QACnCovF,WAAYsoB,EAAK38D,OAAOv5C,GAAGkmG,QAAQl2F,GAAG49E,WAItCsoB,GAAK38D,OAAOv5C,GAAGkmG,QAAQl2F,GAAG1R,WAE1Bg5E,EAAOh5E,SAAW43G,EAAK38D,OAAOv5C,GAAGkmG,QAAQl2F,GAAG1R,UAGhD4nG,EAAQgQ,EAAK38D,OAAOv5C,GAAG03B,MAAM52B,KAAKw2E,OAEjC,IAAI4+B,EAAK38D,OAAOv5C,GAAGkmG,QAAQl2F,GAAG43H,SACnC,CACI,GAAItwD,IAEA5/C,KAAMw+E,EAAK38D,OAAOv5C,GAAGkmG,QAAQl2F,GAAG0nB,KAChCpkB,KAAM4iG,EAAK38D,OAAOv5C,GAAGkmG,QAAQl2F,GAAGsD,KAChCrR,EAAGi0G,EAAK38D,OAAOv5C,GAAGkmG,QAAQl2F,GAAG/N,EAC7BC,EAAGg0G,EAAK38D,OAAOv5C,GAAGkmG,QAAQl2F,GAAG9N,EAC7BkB,MAAO8yG,EAAK38D,OAAOv5C,GAAGkmG,QAAQl2F,GAAG5M,MACjCC,OAAQ6yG,EAAK38D,OAAOv5C,GAAGkmG,QAAQl2F,GAAG3M,OAClC7E,QAAS03G,EAAK38D,OAAOv5C,GAAGkmG,QAAQl2F,GAAGxR,QACnCovF,WAAYsoB,EAAK38D,OAAOv5C,GAAGkmG,QAAQl2F,GAAG49E,WAItCsoB,GAAK38D,OAAOv5C,GAAGkmG,QAAQl2F,GAAG1R,WAE1Bg5E,EAAOh5E,SAAW43G,EAAK38D,OAAOv5C,GAAGkmG,QAAQl2F,GAAG1R,UAGhDg5E,EAAOswD,WAGP,KAAK,GAAIxmI,GAAI,EAAGA,EAAI80G,EAAK38D,OAAOv5C,GAAGkmG,QAAQl2F,GAAG43H,SAAS3nI,OAAQmB,IAE3Dk2E,EAAOswD,SAAS9mI,MAAOo1G,EAAK38D,OAAOv5C,GAAGkmG,QAAQl2F,GAAG43H,SAASxmI,GAAGa,EAAGi0G,EAAK38D,OAAOv5C,GAAGkmG,QAAQl2F,GAAG43H,SAASxmI,GAAGc,GAG1Gy7H,GAAUznB,EAAK38D,OAAOv5C,GAAG03B,MAAM52B,KAAKw2E,GACpC4uB,EAAQgQ,EAAK38D,OAAOv5C,GAAG03B,MAAM52B,KAAKw2E,OAGjC,IAAI4+B,EAAK38D,OAAOv5C,GAAGkmG,QAAQl2F,GAAG63H,QACnC,CACI,GAAIvwD,GAASh+D,EAAM48F,EAAK38D,OAAOv5C,GAAGkmG,QAAQl2F,IACtB,OAAQ,OAAQ,IAAK,IAAK,UAAW,WAAY,cAGrEsnE,GAAOuwD,UAEP,KAAK,GAAIzmI,GAAI,EAAGA,EAAI80G,EAAK38D,OAAOv5C,GAAGkmG,QAAQl2F,GAAG63H,QAAQ5nI,OAAQmB,IAE1Dk2E,EAAOuwD,QAAQ/mI,MAAOo1G,EAAK38D,OAAOv5C,GAAGkmG,QAAQl2F,GAAG63H,QAAQzmI,GAAGa,EAAGi0G,EAAK38D,OAAOv5C,GAAGkmG,QAAQl2F,GAAG63H,QAAQzmI,GAAGc,GAGvGgkG,GAAQgQ,EAAK38D,OAAOv5C,GAAG03B,MAAM52B,KAAKw2E,OAIjC,IAAI4+B,EAAK38D,OAAOv5C,GAAGkmG,QAAQl2F,GAAG83H,QACnC,CACI,GAAIxwD,GAASh+D,EAAM48F,EAAK38D,OAAOv5C,GAAGkmG,QAAQl2F,IACtB,OAAQ,OAAQ,UAAW,IAAK,IAAK,QAAS,SAAU,UAAW,WAAY,cACnGk2F,GAAQgQ,EAAK38D,OAAOv5C,GAAG03B,MAAM52B,KAAKw2E,OAItC,CACI,GAAIA,GAASh+D,EAAM48F,EAAK38D,OAAOv5C,GAAGkmG,QAAQl2F,IACtB,OAAQ,OAAQ,IAAK,IAAK,QAAS,SAAU,UAAW,WAAY,cACxFsnE,GAAOk2C,WAAY,EACnBtnB,EAAQgQ,EAAK38D,OAAOv5C,GAAG03B,MAAM52B,KAAKw2E,IAK9CgrD,EAAIp8B,QAAUA,EACdo8B,EAAI3E,UAAYA,EAEhB2E,EAAI7E,QAGJ,KAAK,GAAIz9H,GAAI,EAAGA,EAAIsiI,EAAI/E,SAASt9H,OAAQD,IAWrC,IAAK,GATDO,GAAM+hI,EAAI/E,SAASv9H,GAEnBiC,EAAI1B,EAAIi+H,WACRt8H,EAAI3B,EAAIi+H,WAERp7G,EAAQ,EACR07G,EAAS,EACTC,EAAS,EAEJ1pG,EAAI90B,EAAI07H,SAAU5mG,EAAI90B,EAAI07H,SAAW17H,EAAIi2C,QAG9C8rF,EAAI7E,MAAMpoG,IAAMpzB,EAAGC,EAAGlC,GAEtBiC,GAAK1B,EAAI+4E,UAAY/4E,EAAIk+H,YAEzBr7G,IAEIA,IAAU7iB,EAAIi2C,SAKlBsoF,IAEIA,IAAWv+H,EAAIy+H,UAEf/8H,EAAI1B,EAAIi+H,WACRt8H,GAAK3B,EAAIg5E,WAAah5E,EAAIk+H,YAE1BK,EAAS,EACTC,IAEIA,IAAWx+H,EAAI0+H,OAxB8B5pG,KAyC7D,IAAK,GANDqkB,GACAuhF,EACA8M,EACAxnI,EAGKP,EAAI,EAAGA,EAAIsiI,EAAI/oF,OAAOt5C,OAAQD,IACvC,CACI05C,EAAQ4oF,EAAI/oF,OAAOv5C,EAGnB,KAAK,GAAIa,GAAI,EAAGA,EAAI64C,EAAMhsC,KAAKzN,OAAQY,IACvC,CACIikC,EAAM4U,EAAMhsC,KAAK7M,EAGjB,KAAK,GAAIihE,GAAI,EAAGA,EAAIh9B,EAAI7kC,OAAQ6hE,IAE5Bm5D,EAAOn2F,EAAIg9B,GAEPm5D,EAAKh2H,MAAQ,IAOjB8iI,EAAMzF,EAAI7E,MAAMxC,EAAKh2H,OAAO,GAC5B1E,EAAM+hI,EAAI/E,SAASwK,GAIfxnI,EAAIgnI,gBAAkBhnI,EAAIgnI,eAAetM,EAAKh2H,MAAQ1E,EAAI07H,YAE1DhB,EAAKrtC,WAAav9D,EAAOoF,MAAMuC,MAAMz3B,EAAIgnI,eAAetM,EAAKh2H,MAAQ1E,EAAI07H,UAAWhB,EAAKrtC,eAMzG,MAAO00C,KA2BfjyG,EAAOwuG,QAAU,SAAUnnG,EAAMukG,EAAU74H,EAAOC,EAAQ64C,EAAQ65D,EAASnoB,IAEzD5nF,SAAV5C,GAAgC,GAATA,KAAcA,EAAQ,KAClC4C,SAAX3C,GAAkC,GAAVA,KAAeA,EAAS,IACrC2C,SAAXk2C,IAAwBA,EAAS,GACrBl2C,SAAZ+vG,IAAyBA,EAAU,GAMvCx5G,KAAKm7B,KAAOA,EAOZn7B,KAAK0/H,SAAsB,EAAXA,EAOhB1/H,KAAK+8E,UAAoB,EAARl2E,EAOjB7G,KAAKg9E,WAAsB,EAATl2E,EASlB9G,KAAKiiI,WAAsB,EAATtiF,EAQlB3/C,KAAKkiI,YAAwB,EAAV1oB,EAMnBx5G,KAAKqxF,WAAaA,MAQlBrxF,KAAKyyB,MAAQ,KAQbzyB,KAAK0iI,KAAO,EAQZ1iI,KAAKyiI,QAAU,EAQfziI,KAAKi6C,MAAQ,EAQbj6C,KAAKyrI,eAIT33G,EAAOwuG,QAAQj/H,WAYXqgF,KAAM,SAAUt2E,EAAS1H,EAAGC,EAAG+C,GAG3B,GAAIgjI,GAAchjI,EAAQ1I,KAAK0/H,UAAa,CAExCgM,IAAc,GAAMA,EAAa,EAAK1rI,KAAKyrI,WAAW/nI,QAEtD0J,EAAQiB,UACJrO,KAAKyyB,MACLzyB,KAAKyrI,WAAWC,GAChB1rI,KAAKyrI,WAAWC,EAAa,GAC7B1rI,KAAK+8E,UACL/8E,KAAKg9E,WACLt3E,EACAC,EACA3F,KAAK+8E,UACL/8E,KAAKg9E,aAajBurD,kBAAmB,SAAUF,GAEzB,MACIA,IAAaroI,KAAK0/H,UAClB2I,EAAaroI,KAAK0/H,SAAW1/H,KAAKi6C,OAY1CmoF,SAAU,SAAU3vG,GAEhBzyB,KAAKyyB,MAAQA,EACbzyB,KAAKirI,eAAex4G,EAAM5rB,MAAO4rB,EAAM3rB,SAY3C6kI,WAAY,SAAUhsF,EAAQ65D,GAE1Bx5G,KAAKiiI,WAAsB,EAATtiF,EAClB3/C,KAAKkiI,YAAwB,EAAV1oB,EAEfx5G,KAAKyyB,OAELzyB,KAAKirI,eAAejrI,KAAKyyB,MAAM5rB,MAAO7G,KAAKyyB,MAAM3rB,SAazDmkI,eAAgB,SAAUtL,EAAYC,GAGlC,GAAIgM,IAAYhM,EAAgC,EAAlB5/H,KAAKiiI,WAAiBjiI,KAAKkiI,cAAgBliI,KAAKg9E,WAAah9E,KAAKkiI,aAC5F2J,GAAYlM,EAA+B,EAAlB3/H,KAAKiiI,WAAiBjiI,KAAKkiI,cAAgBliI,KAAK+8E,UAAY/8E,KAAKkiI,cAE1F0J,EAAW,IAAM,GAAKC,EAAW,IAAM,IAEvCn3H,QAAQukB,KAAK,yEAKjB2yG,EAAWjrI,KAAKq3B,MAAM4zG,GACtBC,EAAWlrI,KAAKq3B,MAAM6zG,IAEjB7rI,KAAK0iI,MAAQ1iI,KAAK0iI,OAASkJ,GAAc5rI,KAAKyiI,SAAWziI,KAAKyiI,UAAYoJ,IAE3En3H,QAAQukB,KAAK,+EAGjBj5B,KAAK0iI,KAAOkJ,EACZ5rI,KAAKyiI,QAAUoJ,EACf7rI,KAAKi6C,MAAQ2xF,EAAWC,EAExB7rI,KAAKyrI,WAAW/nI,OAAS,CAKzB,KAAK,GAHDyB,GAAKnF,KAAKiiI,WACV78H,EAAKpF,KAAKiiI,WAELt8H,EAAI,EAAGA,EAAI3F,KAAK0iI,KAAM/8H,IAC/B,CACI,IAAK,GAAID,GAAI,EAAGA,EAAI1F,KAAKyiI,QAAS/8H,IAE9B1F,KAAKyrI,WAAWlnI,KAAKY,GACrBnF,KAAKyrI,WAAWlnI,KAAKa,GACrBD,GAAMnF,KAAK+8E,UAAY/8E,KAAKkiI,WAGhC/8H,GAAKnF,KAAKiiI,WACV78H,GAAMpF,KAAKg9E,WAAah9E,KAAKkiI,eAOzCpuG,EAAOwuG,QAAQj/H,UAAUC,YAAcwwB,EAAOwuG,QAe9CxuG,EAAO43B,UAAY,SAAU9mD,GAKzB5E,KAAK4E,KAAOA,EAKZ5E,KAAK8rI,YAML9rI,KAAK+rI,GAAK,GAIdj4G,EAAO43B,UAAUroD,WAQbu9B,IAAK,SAAUk7C,GAIX,MAFA97E,MAAK8rI,SAAShwD,EAAQ3gD,MAAQ2gD,EAEvBA,GASX/vC,OAAQ,SAAU+vC,SAEP97E,MAAK8rI,SAAShwD,EAAQ3gD,OASjCmL,OAAQ,WAEJ,IAAK,GAAI5vB,KAAO1W,MAAK8rI,SAEb9rI,KAAK8rI,SAASp1H,GAAKu7B,QAEnBjyC,KAAK8rI,SAASp1H,GAAK4vB,WAQnCxS,EAAO43B,UAAUroD,UAAUC,YAAcwwB,EAAO43B,UAahD53B,EAAO43B,UAAUswB,UAoBjBloD,EAAO43B,UAAUswB,OAAOC,QAAU,SAAUr3E,EAAMc,EAAGC,EAAGo2E,GAMpD/7E,KAAK+7E,aAAeA,GAAgB,GAEpCjoD,EAAO0gB,MAAM1uC,KAAK9F,KAAM4E,GAKxB5E,KAAKm7B,KAAO,UAAYn7B,KAAK4E,KAAKwkC,UAAU2iG,KAM5C/rI,KAAK+W,KAAO+c,EAAO8C,QAMnB52B,KAAK80C,YAAchhB,EAAO0C,MAM1Bx2B,KAAK6iC,KAAO,GAAI/O,GAAO9wB,UAAU0C,EAAGC,EAAG,EAAG,GAM1C3F,KAAKgsI,iBAAmB,GAAIl4G,GAAOpyB,MAAM,KAAM,MAM/C1B,KAAKisI,iBAAmB,GAAIn4G,GAAOpyB,MAAM,IAAK,KAM9C1B,KAAKksI,iBAAmB,EAMxBlsI,KAAKmsI,iBAAmB,EAKxBnsI,KAAK8hF,UAAY,KAMjB9hF,KAAKosI,YAAc,KAMnBpsI,KAAKqsI,YAAc,IAMnBrsI,KAAKssI,iBAAmB,EAMxBtsI,KAAKusI,iBAAmB,EAKxBvsI,KAAKiiF,UAAY,KAMjBjiF,KAAKw3H,QAAU,IAMfx3H,KAAKwsI,cAAgB14G,EAAO8tD,SAK5B5hF,KAAKysI,aAAe,GAAI34G,GAAOpyB,MAM/B1B,KAAKy4H,YAAc,EAMnBz4H,KAAK8nG,UAAY,IAMjB9nG,KAAKg5E,SAAW,IAKhBh5E,KAAKo7H,OAAS,GAAItnG,GAAOpyB,MAMzB1B,KAAK0sI,IAAK,EAMV1sI,KAAK2sI,eAAiB,GAAI74G,GAAOpyB,MAAM,GAAK,IAM5C1B,KAAK4L,UAAYkoB,EAAOjoB,WAAWC,OAQnC9L,KAAK4sI,MAAQlnI,EAQb1F,KAAK6sI,MAAQlnI,EAKb3F,KAAK6hF,WAAY,EAKjB7hF,KAAKgiF,WAAY,EAMjBhiF,KAAK8sI,oBAAqB,EAM1B9sI,KAAK+sI,oBAAqB,EAM1B/sI,KAAKgtI,kBAAoB,GAAIl5G,GAAOpyB,MAAM,EAAG,GAM7C1B,KAAKitI,kBAAoB,GAAIn5G,GAAOpyB,MAAM,EAAG,GAM7C1B,KAAKktI,UAAY,EAMjBltI,KAAKmtI,OAAS,EAMdntI,KAAKotI,SAAW,EAMhBptI,KAAKqtI,cAAgB,EAMrBrtI,KAAKstI,WAAa,EAMlBttI,KAAKutI,UAAW,EAMhBvtI,KAAKk3G,QAAU,MAInBpjF,EAAO43B,UAAUswB,OAAOC,QAAQ54E,UAAYO,OAAOwE,OAAO0rB,EAAO0gB,MAAMnxC,WACvEywB,EAAO43B,UAAUswB,OAAOC,QAAQ54E,UAAUC,YAAcwwB,EAAO43B,UAAUswB,OAAOC,QAOhFnoD,EAAO43B,UAAUswB,OAAOC,QAAQ54E,UAAUijC,OAAS,WAE/C,GAAItmC,KAAK0sI,IAAM1sI,KAAK4E,KAAKskC,KAAKA,MAAQlpC,KAAKmtI,OAIvC,GAFAntI,KAAKmtI,OAASntI,KAAK4E,KAAKskC,KAAKA,KAAOlpC,KAAK8nG,UAAY9nG,KAAK4E,KAAKskC,KAAKwjB,WAE5C,IAApB1sD,KAAKstI,WAEL,GAAIttI,KAAKqtI,cAAgB,GAErB,IAAK,GAAI5pI,GAAI,EAAGA,EAAIzD,KAAKqtI,cAAe5pI,IAEpC,GAAIzD,KAAKwtI,iBAELxtI,KAAKotI,WAEmB,KAApBptI,KAAKstI,YAAqBttI,KAAKotI,UAAYptI,KAAKstI,YACpD,CACIttI,KAAK0sI,IAAK,CACV,YAOR1sI,MAAKwtI,iBAELxtI,KAAKotI,WAEmB,KAApBptI,KAAKstI,YAAqBttI,KAAKotI,UAAYptI,KAAKstI,aAEhDttI,KAAK0sI,IAAK,QAOlB1sI,MAAKwtI,iBAELxtI,KAAKotI,WAEDptI,KAAKktI,UAAY,GAAKltI,KAAKotI,UAAYptI,KAAKktI,YAE5CltI,KAAK0sI,IAAK,GAS1B,KAFA,GAAIjpI,GAAIzD,KAAKwD,SAASE,OAEfD,KAECzD,KAAKwD,SAASC,GAAGwuC,QAEjBjyC,KAAKwD,SAASC,GAAG6iC,UAkB7BxS,EAAO43B,UAAUswB,OAAOC,QAAQ54E,UAAUoqI,cAAgB,SAAU7xG,EAAMy6D,EAAQx/C,EAAUwiF,EAASkE,GAElF9zH,SAAX4sF,IAAwBA,EAAS,GACpB5sF,SAAbotC,IAA0BA,EAAW72C,KAAK+7E,cAC9BtyE,SAAZ4vH,IAAyBA,GAAU,GACZ5vH,SAAvB8zH,IAAoCA,GAAqB,EAE7D,IAAImQ,GACAjqI,EAAI,EACJkqI,EAAS/xG,EACTgyG,EAAWv3C,CAQf,KAPAr2F,KAAKk3G,QAAU7gB,EAEXx/C,EAAW72C,KAAK+7E,eAEhB/7E,KAAK+7E,aAAellC,GAGbA,EAAJpzC,GAEChD,MAAMyT,QAAQ0nB,KAEd+xG,EAAS3tI,KAAK4E,KAAK0kC,IAAI+/D,KAAKztE,IAG5Bn7B,MAAMyT,QAAQmiF,KAEdu3C,EAAW5tI,KAAK4E,KAAK0kC,IAAI+/D,KAAKhT,IAGlCq3C,EAAW,GAAI1tI,MAAKwsI,cAAcxsI,KAAK4E,KAAM,EAAG,EAAG+oI,EAAQC,GAE3D5tI,KAAK4E,KAAKykC,QAAQwtF,OAAOjzG,OAAO8pH,GAAU,GAEtCrU,GAEAqU,EAASx3F,KAAKuhF,eAAe+F,KAAM,EACnCkQ,EAASx3F,KAAKuhF,eAAewD,MAAO,GAIpCyS,EAASx3F,KAAKuhF,eAAewD,MAAO,EAGxCyS,EAASx3F,KAAKqnF,mBAAqBA,EACnCmQ,EAASx3F,KAAK4hF,cAAe,EAE7B4V,EAASz7F,QAAS,EAClBy7F,EAASzrI,SAAU,EACnByrI,EAASxlI,OAAOs0B,SAASx8B,KAAK2sI,gBAE9B3sI,KAAK4gC,IAAI8sG,GAETjqI,GAGJ,OAAOzD,OASX8zB,EAAO43B,UAAUswB,OAAOC,QAAQ54E,UAAU+0E,KAAO,WAE7Cp4E,KAAK0sI,IAAK,EACV1sI,KAAK+0C,OAAQ,EACb/0C,KAAKiyC,QAAS,GASlBne,EAAO43B,UAAUswB,OAAOC,QAAQ54E,UAAU61E,OAAS,WAE/Cl5E,KAAK+0C,OAAQ,EACb/0C,KAAKiyC,QAAS,GAWlBne,EAAO43B,UAAUswB,OAAOC,QAAQ54E,UAAUwqI,QAAU,SAAU70D,EAAUniC,GAEpE72C,KAAKstI,WAAa,EAElBttI,KAAKoL,OAAM,EAAM4tE,EAAU,EAAGniC,GAAU,IAkB5C/iB,EAAO43B,UAAUswB,OAAOC,QAAQ54E,UAAUyqI,KAAO,SAAU90D,EAAU8uB,EAAWjxD,EAAUoD,EAAOgrC,IAE5Ex7E,SAAbotC,GAAuC,IAAbA,KAAkBA,EAAW,GAC7CptC,SAAVwwC,IAAuBA,EAAQ,IACjBxwC,SAAdw7E,IAA2BA,GAAY,GAEvCpuC,EAAW72C,KAAK+7E,eAEhBllC,EAAW72C,KAAK+7E,cAGpB/7E,KAAKotI,SAAW,EAChBptI,KAAKqtI,cAAgBx2F,EACrB72C,KAAKstI,WAAarzF,EAEdgrC,GAEAjlF,KAAKoL,OAAM,EAAM4tE,EAAU8uB,EAAWjxD,GAEtC72C,KAAKotI,UAAYv2F,EACjB72C,KAAK0sI,IAAK,EACV1sI,KAAKmtI,OAASntI,KAAK4E,KAAKskC,KAAKA,KAAO4+D,EAAY9nG,KAAK4E,KAAKskC,KAAKwjB,YAI/D1sD,KAAKoL,OAAM,EAAO4tE,EAAU8uB,EAAWjxD,IAe/C/iB,EAAO43B,UAAUswB,OAAOC,QAAQ54E,UAAU+H,MAAQ,SAAUyiI,EAAS70D,EAAU8uB,EAAWjxD,EAAUk3F,GAoBhG,GAlBgBtkI,SAAZokI,IAAyBA,GAAU,GACtBpkI,SAAbuvE,IAA0BA,EAAW,IACvBvvE,SAAdq+F,GAAyC,OAAdA,KAAsBA,EAAY,KAChDr+F,SAAbotC,IAA0BA,EAAW,GACnBptC,SAAlBskI,IAA+BA,GAAgB,GAE/Cl3F,EAAW72C,KAAK+7E,eAEhBllC,EAAW72C,KAAK+7E,cAGpB/7E,KAAKk5E,SAELl5E,KAAKiC,SAAU,EAEfjC,KAAKg5E,SAAWA,EAChBh5E,KAAK8nG,UAAYA,EAEb+lC,GAAWE,EAEX,IAAK,GAAItqI,GAAI,EAAOozC,EAAJpzC,EAAcA,IAE1BzD,KAAKwtI,mBAKTxtI,MAAK0sI,IAAK,EACV1sI,KAAKktI,WAAar2F,EAClB72C,KAAKotI,SAAW,EAChBptI,KAAKmtI,OAASntI,KAAK4E,KAAKskC,KAAKA,KAAO4+D,EAAY9nG,KAAK4E,KAAKskC,KAAKwjB,YAWvE54B,EAAO43B,UAAUswB,OAAOC,QAAQ54E,UAAUmqI,aAAe,WAErD,GAAIE,GAAW1tI,KAAKk6C,gBAAe,EAEnC,OAAiB,QAAbwzF,GAEO,GAGP1tI,KAAK6G,MAAQ,GAAK7G,KAAK8G,OAAS,EAEhC4mI,EAASjxH,MAAMzc,KAAK4E,KAAK0kC,IAAI4/D,eAAelpG,KAAK66B,KAAM76B,KAAK46B,OAAQ56B,KAAK4E,KAAK0kC,IAAI4/D,eAAelpG,KAAKo9B,IAAKp9B,KAAKq9B,SAIhHqwG,EAASjxH,MAAMzc,KAAK4sI,MAAO5sI,KAAK6sI,OAGpCa,EAAS1wG,MAAQ,EACjB0wG,EAAS10D,SAAWh5E,KAAKg5E,SAErBh5E,KAAK8sI,mBAEL9sI,KAAKm3C,WAAWu2F,GAEX1tI,KAAK+sI,oBAEV/sI,KAAKq3C,WAAWq2F,GAGhB1tI,KAAK6hF,UAEL6rD,EAASrrD,aAAariF,KAAK8hF,WAEI,IAA1B9hF,KAAKksI,kBAAoD,IAA1BlsI,KAAKmsI,iBAEzCuB,EAAS/rI,MAAMqC,IAAIhE,KAAK4E,KAAK0kC,IAAI6/D,YAAYnpG,KAAKksI,iBAAkBlsI,KAAKmsI,oBAEnEnsI,KAAKgtI,kBAAkBtnI,IAAM1F,KAAKitI,kBAAkBvnI,GAAO1F,KAAKgtI,kBAAkBrnI,IAAM3F,KAAKitI,kBAAkBtnI,IAErH+nI,EAAS/rI,MAAMqC,IAAIhE,KAAK4E,KAAK0kC,IAAI6/D,YAAYnpG,KAAKgtI,kBAAkBtnI,EAAG1F,KAAKitI,kBAAkBvnI,GAAI1F,KAAK4E,KAAK0kC,IAAI6/D,YAAYnpG,KAAKgtI,kBAAkBrnI,EAAG3F,KAAKitI,kBAAkBtnI,IAK7K+nI,EAASvhI,MAFT1L,MAAMyT,QAAyB,WAAjBlU,KAAKk3G,SAEFl3G,KAAK4E,KAAK0kC,IAAI+/D,KAAKrpG,KAAKk3G,SAIxBl3G,KAAKk3G,QAGtBl3G,KAAKgiF,UAEL0rD,EAAStrD,aAAapiF,KAAKiiF,WAI3ByrD,EAAS1rI,MAAQhC,KAAK4E,KAAK0kC,IAAI6/D,YAAYnpG,KAAKssI,iBAAkBtsI,KAAKusI,kBAG3EmB,EAAS9hI,UAAY5L,KAAK4L,UAE1B8hI,EAASx3F,KAAK6nF,eAEd2P,EAASx3F,KAAKklF,OAAO7+F,MAAMv8B,KAAKo7H,OAAO11H,EAAG1F,KAAKo7H,OAAOz1H,GAEtD+nI,EAASx3F,KAAKyiF,SAASjzH,EAAI1F,KAAK4E,KAAK0kC,IAAImS,QAAQz7C,KAAKgsI,iBAAiBtmI,EAAG1F,KAAKisI,iBAAiBvmI,GAChGgoI,EAASx3F,KAAKyiF,SAAShzH,EAAI3F,KAAK4E,KAAK0kC,IAAImS,QAAQz7C,KAAKgsI,iBAAiBrmI,EAAG3F,KAAKisI,iBAAiBtmI,GAChG+nI,EAASx3F,KAAKqiF,gBAAkBv4H,KAAK4E,KAAK0kC,IAAImS,QAAQz7C,KAAKosI,YAAapsI,KAAKqsI,aAE7EqB,EAASx3F,KAAKshF,QAAQ7xH,EAAI3F,KAAKw3H,QAE/BkW,EAASx3F,KAAK2iF,KAAKnzH,EAAI1F,KAAKysI,aAAa/mI,EACzCgoI,EAASx3F,KAAK2iF,KAAKlzH,EAAI3F,KAAKysI,aAAa9mI,EAEzC+nI,EAASx3F,KAAKuiF,YAAcz4H,KAAKy4H,YAEjCiV,EAASvrD,UAEF,IASXruD,EAAO43B,UAAUswB,OAAOC,QAAQ54E,UAAUE,QAAU,WAEhDvD,KAAK4E,KAAKwkC,UAAU2C,OAAO/rC,MAE3B8zB,EAAO0gB,MAAMnxC,UAAUE,QAAQuC,KAAK9F,MAAM,GAAM,IAWpD8zB,EAAO43B,UAAUswB,OAAOC,QAAQ54E,UAAUqjC,QAAU,SAAU7/B,EAAOC,GAEjE9G,KAAK6iC,KAAKh8B,MAAQA,EAClB7G,KAAK6iC,KAAK/7B,OAASA,GAUvBgtB,EAAO43B,UAAUswB,OAAOC,QAAQ54E,UAAU2qI,UAAY,SAAU38G,EAAKiO,GAEjEjO,EAAMA,GAAO,EACbiO,EAAMA,GAAO,EAEbt/B,KAAKgsI,iBAAiBtmI,EAAI2rB,EAC1BrxB,KAAKisI,iBAAiBvmI,EAAI45B,GAU9BxL,EAAO43B,UAAUswB,OAAOC,QAAQ54E,UAAU4qI,UAAY,SAAU58G,EAAKiO,GAEjEjO,EAAMA,GAAO,EACbiO,EAAMA,GAAO,EAEbt/B,KAAKgsI,iBAAiBrmI,EAAI0rB,EAC1BrxB,KAAKisI,iBAAiBtmI,EAAI25B,GAW9BxL,EAAO43B,UAAUswB,OAAOC,QAAQ54E,UAAU6qI,YAAc,SAAU78G,EAAKiO,GAEnEjO,EAAMA,GAAO,EACbiO,EAAMA,GAAO,EAEbt/B,KAAKosI,YAAc/6G,EACnBrxB,KAAKqsI,YAAc/sG,GAgBvBxL,EAAO43B,UAAUswB,OAAOC,QAAQ54E,UAAU8qI,SAAW,SAAU98G,EAAKiO,EAAK8uG,EAAMt9B,EAAMC,GAYjF,GAVYtnG,SAAR4nB,IAAqBA,EAAM,GACnB5nB,SAAR61B,IAAqBA,EAAM,GAClB71B,SAAT2kI,IAAsBA,EAAO,GACpB3kI,SAATqnG,IAAsBA,EAAOh9E,EAAO43E,OAAOK,OAAOC,MACzCviG,SAATsnG,IAAsBA,GAAO,GAEjC/wG,KAAKssI,iBAAmBj7G,EACxBrxB,KAAKusI,iBAAmBjtG,EACxBt/B,KAAKgiF,WAAY,EAEbosD,EAAO,GAAK/8G,IAAQiO,EACxB,CACI,GAAI+uG,IAAc56H,EAAG4d,GACjB2pD,EAAQh7E,KAAK4E,KAAKiiC,KAAKm0C,MAAMqzD,GAAWxyG,IAAMpoB,EAAG6rB,GAAO8uG,EAAMt9B,EAClE91B,GAAM+1B,KAAKA,GAEX/wG,KAAKiiF,UAAYjH,EAAMi3B,aAAa,IAGpCjyG,KAAKiiF,UAAUr7D,UACf5mB,KAAKgiF,WAAY,IAmBzBluD,EAAO43B,UAAUswB,OAAOC,QAAQ54E,UAAUolI,SAAW,SAAUp+H,EAAMG,EAAMD,EAAME,EAAM2jI,EAAMt9B,EAAMC,GAmB/F,GAjBatnG,SAATY,IAAsBA,EAAO,GACpBZ,SAATe,IAAsBA,EAAO,GACpBf,SAATc,IAAsBA,EAAO,GACpBd,SAATgB,IAAsBA,EAAO,GACpBhB,SAAT2kI,IAAsBA,EAAO,GACpB3kI,SAATqnG,IAAsBA,EAAOh9E,EAAO43E,OAAOK,OAAOC,MACzCviG,SAATsnG,IAAsBA,GAAO,GAGjC/wG,KAAKksI,iBAAmB,EACxBlsI,KAAKmsI,iBAAmB,EAExBnsI,KAAKgtI,kBAAkBhpI,IAAIqG,EAAME,GACjCvK,KAAKitI,kBAAkBjpI,IAAIwG,EAAMC,GAEjCzK,KAAK6hF,WAAY,EAEbusD,EAAO,IAAO/jI,IAASG,GAAUD,IAASE,GAC9C,CACI,GAAI4jI,IAAc3oI,EAAG2E,EAAM1E,EAAG4E,GAC1BywE,EAAQh7E,KAAK4E,KAAKiiC,KAAKm0C,MAAMqzD,GAAWxyG,IAAMn2B,EAAG8E,EAAM7E,EAAG8E,GAAQ2jI,EAAMt9B,EAC5E91B,GAAM+1B,KAAKA,GAEX/wG,KAAK8hF,UAAY9G,EAAMi3B,aAAa,IAGpCjyG,KAAK8hF,UAAUl7D,UACf5mB,KAAK6hF,WAAY,IAYzB/tD,EAAO43B,UAAUswB,OAAOC,QAAQ54E,UAAUirI,GAAK,SAAUvzD,GAEjDA,EAAOp8C,QAEP3+B,KAAK4sI,MAAQ7xD,EAAOp8C,OAAOj5B,EAC3B1F,KAAK6sI,MAAQ9xD,EAAOp8C,OAAOh5B,IAI3B3F,KAAK4sI,MAAQ7xD,EAAOj2E,MAAMY,EAAKq1E,EAAO7yE,OAAOxC,EAAIq1E,EAAOl0E,MACxD7G,KAAK6sI,MAAQ9xD,EAAOj2E,MAAMa,EAAKo1E,EAAO7yE,OAAOvC,EAAIo1E,EAAOj0E,SAShElD,OAAOC,eAAeiwB,EAAO43B,UAAUswB,OAAOC,QAAQ54E,UAAW,SAE7DS,IAAK,WACD,MAAO9D,MAAK6iC,KAAKh8B,OAGrB7C,IAAK,SAAUC,GACXjE,KAAK6iC,KAAKh8B,MAAQ5C,KAS1BL,OAAOC,eAAeiwB,EAAO43B,UAAUswB,OAAOC,QAAQ54E,UAAW,UAE7DS,IAAK,WACD,MAAO9D,MAAK6iC,KAAK/7B,QAGrB9C,IAAK,SAAUC,GACXjE,KAAK6iC,KAAK/7B,OAAS7C,KAS3BL,OAAOC,eAAeiwB,EAAO43B,UAAUswB,OAAOC,QAAQ54E,UAAW,KAE7DS,IAAK,WACD,MAAO9D,MAAK4sI,OAGhB5oI,IAAK,SAAUC,GACXjE,KAAK4sI,MAAQ3oI,KASrBL,OAAOC,eAAeiwB,EAAO43B,UAAUswB,OAAOC,QAAQ54E,UAAW,KAE7DS,IAAK,WACD,MAAO9D,MAAK6sI,OAGhB7oI,IAAK,SAAUC,GACXjE,KAAK6sI,MAAQ5oI,KAUrBL,OAAOC,eAAeiwB,EAAO43B,UAAUswB,OAAOC,QAAQ54E,UAAW,QAE7DS,IAAK,WACD,MAAOnD,MAAKq3B,MAAMh4B,KAAK0F,EAAK1F,KAAK6iC,KAAKh8B,MAAQ,MAUtDjD,OAAOC,eAAeiwB,EAAO43B,UAAUswB,OAAOC,QAAQ54E,UAAW,SAE7DS,IAAK,WACD,MAAOnD,MAAKq3B,MAAMh4B,KAAK0F,EAAK1F,KAAK6iC,KAAKh8B,MAAQ,MAUtDjD,OAAOC,eAAeiwB,EAAO43B,UAAUswB,OAAOC,QAAQ54E,UAAW,OAE7DS,IAAK,WACD,MAAOnD,MAAKq3B,MAAMh4B,KAAK2F,EAAK3F,KAAK6iC,KAAK/7B,OAAS,MAUvDlD,OAAOC,eAAeiwB,EAAO43B,UAAUswB,OAAOC,QAAQ54E,UAAW,UAE7DS,IAAK,WACD,MAAOnD,MAAKq3B,MAAMh4B,KAAK2F,EAAK3F,KAAK6iC,KAAK/7B,OAAS,MAuCvDgtB,EAAO0hD,MAAQ,SAAU5wE,EAAM8R,EAAK2mE,GA6KhC,GA3KY5zE,SAARiN,IAAqBA,EAAM,MACnBjN,SAAR4zE,IAAqBA,EAAM,MAK/Br9E,KAAK4E,KAAOA,EAMZ5E,KAAK0W,IAAMA,EAMX1W,KAAK6G,MAAQ,EAMb7G,KAAK8G,OAAS,EAMd9G,KAAK+W,KAAO+c,EAAO+D,MAKnB73B,KAAKyiF,sBAAuB,EAM5BziF,KAAKi8G,aAAc,EAKnBj8G,KAAKusH,OAAS,GAAIz4F,GAAO0W,OAKzBxqC,KAAKy1E,eAAiB,GAAI3hD,GAAO0W,OAKjCxqC,KAAKuwG,WAAa,GAAIz8E,GAAO0W,OAK7BxqC,KAAKuuI,SAAW,GAAIz6G,GAAO0W,OAK3BxqC,KAAKwuI,QAAU,GAAI16G,GAAO0W,OAO1BxqC,KAAKyuI,UAAY,GAAI36G,GAAO0W,OAM5BxqC,KAAKioH,QAAU,KAMfjoH,KAAKskG,WAAa,KAKlBtkG,KAAKo9E,MAAQ,KAKbp9E,KAAK0uI,YAAc,KAKnB1uI,KAAK2uI,aAAc,EASnB3uI,KAAK4uI,WAAa,GAMlB5uI,KAAK6uI,MAAQ,EAMb7uI,KAAK8uI,cAAgB,IAMrB9uI,KAAK+uI,SAAW,KAOhB/uI,KAAKyuH,YAAa,EAOlBzuH,KAAK8sH,QAAS,EAOd9sH,KAAKmqD,aAAc,EAOnBnqD,KAAKkqD,SAAU,EAOflqD,KAAKgvI,UAAW,EAOhBhvI,KAAKivI,WAAY,EAEbv4H,GAAO1W,KAAK4E,KAAKikC,MAAM61E,cAAchoG,GACzC,CACI,GAAIw4H,GAASlvI,KAAK4E,KAAKikC,MAAM62E,SAAShpG,EAElCw4H,GAAOjyB,OAEPj9G,KAAKmvI,oBAAoBD,EAAO/9H,MAIhCnR,KAAKo9E,MAAQ8xD,EAAO/9H,KAGxBnR,KAAK6G,MAAQ7G,KAAKo9E,MAAMgyD,WACxBpvI,KAAK8G,OAAS9G,KAAKo9E,MAAMiyD,gBAEpBhyD,IAELr9E,KAAKsvI,mBAAmBjyD,GAAK,EAO7Br9E,MAAKo9E,QAAUC,GAEfr9E,KAAKgM,YAAc,GAAIlM,MAAKgyB,YAAY9xB,KAAKo9E,OAC7Cp9E,KAAKgM,YAAYmmB,YAAYnyB,KAAK6G,MAAO7G,KAAK8G,UAI9C9G,KAAKgM,YAAc,GAAIlM,MAAKgyB,YAAYhyB,KAAK6O,aAAwB,UAAE3C,YAAYwC,QACnFxO,KAAKgM,YAAYmmB,YAAYnyB,KAAK6G,MAAO7G,KAAK8G,SAOlD9G,KAAK8H,QAAU,GAAIhI,MAAKyL,QAAQvL,KAAKgM,aAMrChM,KAAKuiF,aAAe,GAAIzuD,GAAO0uD,MAAM,EAAG,EAAG,EAAGxiF,KAAK6G,MAAO7G,KAAK8G,OAAQ,SAEvE9G,KAAK8H,QAAQorB,SAASlzB,KAAKuiF,cAE3BviF,KAAK8H,QAAQuE,OAAQ,EAET,OAARqK,GAAgB1W,KAAKo9E,QAErBp9E,KAAK8H,QAAQuE,MAAQrM,KAAKo9E,MAAMkqC,SAWpCtnH,KAAKuvI,SAAW,KAEZz7G,EAAOwlD,aAEPt5E,KAAKuvI,SAAW,GAAIz7G,GAAOwlD,WAAWt5E,KAAK4E,KAAM,GAAI5E,KAAK6G,MAAO7G,KAAK8G,UAGrE9G,KAAK4E,KAAK6uC,OAAO2O,WAAapiD,KAAK4E,KAAK6uC,OAAO2Z,KAAOptD,KAAK4E,KAAK6uC,OAAO+O,UAAa/tC,OAAqB,cAAKA,OAAqB,aAAE06G,iBAEtInvH,KAAKovH,eAID8f,IAEAA,EAAOr8E,QAAS,IAM5B/+B,EAAO0hD,MAAMnyE,WAUTmsI,qBAAsB,SAAUpyD,EAAOqyD,GAcnC,MAZIryD,IAASqyD,IAETzvI,KAAKo9E,MAAQA,EACbp9E,KAAK0uI,YAAce,EAEnBzvI,KAAK2uI,aAAc,EACnB3uI,KAAKgM,YAAYwC,OAASxO,KAAKo9E,MAC/Bp9E,KAAK0Z,cAAc,KAAM1Z,KAAKo9E,MAAMgyD,WAAYpvI,KAAKo9E,MAAMiyD,aAE3DrvI,KAAKuuI,SAAS9hG,SAASzsC,OAGpBA,MAuBX0vI,iBAAkB,SAAUC,EAAc9oI,EAAOC,GAM7C,GAJqB2C,SAAjBkmI,IAA8BA,GAAe,GACnClmI,SAAV5C,IAAuBA,EAAQ,MACpB4C,SAAX3C,IAAwBA,EAAS,OAEhC9G,KAAK4E,KAAK6uC,OAAOunD,aAGlB,MADAh7F,MAAKwuI,QAAQ/hG,SAASzsC,KAAM,oBACrB,CAGc,QAArBA,KAAK0uI,aAEL1uI,KAAK0uI,YAAY1jI,OAGrBhL,KAAK4vI,qBAEL5vI,KAAKo9E,MAAQ5sE,SAASQ,cAAc,SACpChR,KAAKo9E,MAAMyyD,aAAa,WAAY,YAEtB,OAAVhpI,IAEA7G,KAAKo9E,MAAMv2E,MAAQA,GAGR,OAAXC,IAEA9G,KAAKo9E,MAAMt2E,OAASA,GAKxB9G,KAAKskG,WAAa7vF,OAAOgzC,WAAWznD,KAAK8vI,oBAAoB53G,KAAKl4B,MAAOA,KAAKioH,QAE9E,KACIt4F,UAAUqrE,cACJ9f,MAASy0D,EAAcvyD,OAAS,GAClCp9E,KAAK+vI,oBAAoB73G,KAAKl4B,MAC9BA,KAAKgwI,kBAAkB93G,KAAKl4B,OAGpC,MAAO+9F,GAEH/9F,KAAKgwI,kBAAkBjyC,GAG3B,MAAO/9F,OAQX8vI,oBAAqB,WAEjBnrC,aAAa3kG,KAAKskG,YAElBtkG,KAAKyuI,UAAUhiG,SAASzsC,OAQ5BgwI,kBAAmB,SAAU98F,GAEzByxD,aAAa3kG,KAAKskG,YAElBtkG,KAAKwuI,QAAQ/hG,SAASzsC,KAAMkzC,IAQhC68F,oBAAqB,SAAUN,GAE3B9qC,aAAa3kG,KAAKskG,YAGlBtkG,KAAK0uI,YAAce,EAGahmI,SAA5BzJ,KAAKo9E,MAAM6yD,aAEXjwI,KAAKo9E,MAAM6yD,aAAeR,EAI1BzvI,KAAKo9E,MAAMvsE,IAAO4D,OAAO6pF,KAAO7pF,OAAO6pF,IAAI4xC,gBAAgBT,IAAYA,CAG3E,IAAIte,GAAOnxH,IAEXA,MAAKo9E,MAAM+yD,aAAe,WAItB,QAASC,KAEL,GAAIvB,EAAQ,EAER,GAAI1d,EAAK/zC,MAAMgyD,WAAa,EAC5B,CAEI,GAAIvoI,GAAQsqH,EAAK/zC,MAAMgyD,WACnBtoI,EAASqqH,EAAK/zC,MAAMiyD,WAEpB7kE,OAAM2mD,EAAK/zC,MAAMiyD,eAEjBvoI,EAASD,GAAS,EAAE,IAGxBsqH,EAAK/zC,MAAMhK,OAEX+9C,EAAKwd,aAAc,EACnBxd,EAAKnlH,YAAYwC,OAAS2iH,EAAK/zC,MAC/B+zC,EAAKz3G,cAAc,KAAM7S,EAAOC,GAChCqqH,EAAKod,SAAS9hG,SAAS0kF,OAIvB18G,QAAOgzC,WAAW2oF,EAAa,SAKnC17H,SAAQukB,KAAK,mDAGjB41G,KAlCJ,GAAIA,GAAQ,EAqCZuB,OAcRjB,oBAAqB,SAAUt8B,GAE3B,GAAIzjE,GAAQpvC,IASZ,OAPAA,MAAKo9E,MAAQ5sE,SAASQ,cAAc,SACpChR,KAAKo9E,MAAM+pC,UAAW,EACtBnnH,KAAKo9E,MAAMyyD,aAAa,WAAY,YACpC7vI,KAAKo9E,MAAMhqC,iBAAiB,aAAc,SAAUF,GAAS9D,EAAM11B,cAAcw5B,KAAW,GAC5FlzC,KAAKo9E,MAAMvsE,IAAM4D,OAAO6pF,IAAI4xC,gBAAgBr9B,GAC5C7yG,KAAKo9E,MAAMkqC,SAAU,EAEdtnH,MAYXsvI,mBAAoB,SAAUjyD,EAAK+pC,GA8B/B,MA5BiB39G,UAAb29G,IAA0BA,GAAW,GAGrCpnH,KAAK8H,UAEL9H,KAAK8H,QAAQuE,OAAQ,GAGzBrM,KAAKo9E,MAAQ5sE,SAASQ,cAAc,SACpChR,KAAKo9E,MAAM+pC,UAAW,EAElBC,GAEApnH,KAAKo9E,MAAMyyD,aAAa,WAAY,YAGxC7vI,KAAKo9E,MAAMvsE,IAAMwsE,EAEjBr9E,KAAKo9E,MAAMkqC,SAAU,EAErBtnH,KAAKo9E,MAAMr0C,OAEX/oC,KAAK6uI,MAAQ7uI,KAAK4uI,WAElB5uI,KAAK+uI,SAAWt6H,OAAOgzC,WAAWznD,KAAKqwI,mBAAmBn4G,KAAKl4B,MAAOA,KAAK8uI,eAE3E9uI,KAAK0W,IAAM2mE,EAEJr9E,MAaX0Z,cAAe,SAAUw5B,EAAOrsC,EAAOC,GAEnC,GAAIwpI,IAAS,GAEC7mI,SAAV5C,GAAiC,OAAVA,KAAkBA,EAAQ7G,KAAKo9E,MAAMgyD,WAAYkB,GAAS,IACtE7mI,SAAX3C,GAAmC,OAAXA,KAAmBA,EAAS9G,KAAKo9E,MAAMiyD,aAEnErvI,KAAK6G,MAAQA,EACb7G,KAAK8G,OAASA,EAEV9G,KAAKgM,YAAYwC,SAAWxO,KAAKo9E,QAEjCp9E,KAAKgM,YAAYwC,OAASxO,KAAKo9E,OAGnCp9E,KAAKgM,YAAYmmB,YAAYtrB,EAAOC,GAEpC9G,KAAK8H,QAAQqE,MAAMpE,OAAOlB,EAAOC,GAEjC9G,KAAK8H,QAAQjB,MAAQA,EACrB7G,KAAK8H,QAAQhB,OAASA,EAEtB9G,KAAK8H,QAAQuE,OAAQ,EAEjBrM,KAAKuvI,UAELvvI,KAAKuvI,SAASxnI,OAAOlB,EAAOC,GAG5BwpI,GAAuB,OAAbtwI,KAAK0W,MAEf1W,KAAKy1E,eAAehpC,SAASzsC,KAAM6G,EAAOC,GAEtC9G,KAAKivI,YAELjvI,KAAKo9E,MAAMhK,OACXpzE,KAAKusH,OAAO9/E,SAASzsC,KAAMA,KAAKszE,KAAMtzE,KAAKuwI,iBAYvDx+G,SAAU,WAEN/xB,KAAKuwG,WAAW9jE,SAASzsC,OAY7BozE,KAAM,SAAUE,EAAMi9D,GA0DlB,MAxDa9mI,UAAT6pE,IAAsBA,GAAO,GACZ7pE,SAAjB8mI,IAA8BA,EAAe,GAE7CvwI,KAAK4E,KAAKqkC,MAAMwjF,SAEhBzsH,KAAK4E,KAAKqkC,MAAMwjF,OAAO7rF,IAAI5gC,KAAKktD,QAASltD,MACzCA,KAAK4E,KAAKqkC,MAAMslF,SAAS3tF,IAAI5gC,KAAKqtD,UAAWrtD,MAEzCA,KAAK4E,KAAKqkC,MAAMmlF,MAEhBpuH,KAAKktD,WAIbltD,KAAK4E,KAAK2mC,QAAQ3K,IAAI5gC,KAAKwwI,SAAUxwI,MACrCA,KAAK4E,KAAK6mC,SAAS7K,IAAI5gC,KAAKywI,UAAWzwI,MAEvCA,KAAKo9E,MAAMhqC,iBAAiB,QAASpzC,KAAK+xB,SAASmG,KAAKl4B,OAAO,GAI3DA,KAAKo9E,MAAM9J,KAFXA,EAEkB,OAIA,GAGtBtzE,KAAKo9E,MAAMmzD,aAAeA,EAEtBvwI,KAAKi8G,YAELj8G,KAAKgvI,UAAW,GAIhBhvI,KAAKgvI,UAAW,EAEC,OAAbhvI,KAAK0W,MAEyB,IAA1B1W,KAAKo9E,MAAMogB,YAEXx9F,KAAK6uI,MAAQ7uI,KAAK4uI,WAClB5uI,KAAK+uI,SAAWt6H,OAAOgzC,WAAWznD,KAAKqwI,mBAAmBn4G,KAAKl4B,MAAOA,KAAK8uI,gBAI3E9uI,KAAKo9E,MAAMhqC,iBAAiB,UAAWpzC,KAAK0wI,YAAYx4G,KAAKl4B,OAAO,IAI5EA,KAAKo9E,MAAMhK,OAEXpzE,KAAKusH,OAAO9/E,SAASzsC,KAAMszE,EAAMi9D,IAG9BvwI,MAUX0wI,YAAa,WAET1wI,KAAKo9E,MAAM7oC,oBAAoB,UAAWv0C,KAAK0wI,YAAYx4G,KAAKl4B,OAEhEA,KAAK0Z,iBAkBT1O,KAAM,WA2CF,MAzCIhL,MAAK4E,KAAKqkC,MAAMwjF,SAEhBzsH,KAAK4E,KAAKqkC,MAAMwjF,OAAO1gF,OAAO/rC,KAAKktD,QAASltD,MAC5CA,KAAK4E,KAAKqkC,MAAMslF,SAASxiF,OAAO/rC,KAAKqtD,UAAWrtD,OAGpDA,KAAK4E,KAAK2mC,QAAQQ,OAAO/rC,KAAKwwI,SAAUxwI,MACxCA,KAAK4E,KAAK6mC,SAASM,OAAO/rC,KAAKywI,UAAWzwI,MAItCA,KAAK2uI,aAED3uI,KAAKo9E,MAAM6yD,cAEXjwI,KAAKo9E,MAAM6yD,aAAajlI,OACxBhL,KAAKo9E,MAAMvsE,IAAM,OAIjB7Q,KAAKo9E,MAAMvsE,IAAM,GACjB7Q,KAAK0uI,YAAY1jI,QAGrBhL,KAAK0uI,YAAc,KACnB1uI,KAAK2uI,aAAc,IAInB3uI,KAAKo9E,MAAM7oC,oBAAoB,QAASv0C,KAAK+xB,SAASmG,KAAKl4B,OAEvDA,KAAKi8G,YAELj8G,KAAKgvI,UAAW,EAIhBhvI,KAAKo9E,MAAM5xC,SAIZxrC,MAYX4gC,IAAK,SAAUm6C,GAEX,GAAIt6E,MAAMyT,QAAQ6mE,GAEd,IAAK,GAAIt3E,GAAI,EAAGA,EAAIs3E,EAAOr3E,OAAQD,IAE3Bs3E,EAAOt3E,GAAgB,aAEvBs3E,EAAOt3E,GAAG8wE,YAAYv0E,UAM9B+6E,GAAOxG,YAAYv0E,KAGvB,OAAOA,OAgBXk9C,WAAY,SAAUx3C,EAAGC,EAAGigF,EAASC,EAASn7D,EAAQE,GAElDF,EAASA,GAAU,EACnBE,EAASA,GAAU,CAEnB,IAAI6H,GAAQzyB,KAAK4E,KAAKg8B,IAAInO,MAAM/sB,EAAGC,EAAG3F,KAKtC,OAHAyyB,GAAMvqB,OAAOlE,IAAI4hF,EAASC,GAC1BpzD,EAAM9wB,MAAMqC,IAAI0mB,EAAQE,GAEjB6H,GAWXzrB,OAAQ,YAEChH,KAAKyiF,sBAAwBziF,KAAK2wI,SAEnC3wI,KAAKgM,YAAY4J,SAWzBs3C,QAAS,WAEDltD,KAAK8sH,SAKT9sH,KAAK8sH,QAAS,EAEd9sH,KAAKo9E,MAAM0wC,OAAQ,IAUvBzgE,UAAW,WAEFrtD,KAAK8sH,SAAU9sH,KAAKyuH,aAKzBzuH,KAAK8sH,QAAS,EAEd9sH,KAAKo9E,MAAM0wC,OAAQ,IAUvB0iB,SAAU,WAEFxwI,KAAKkqD,SAAWlqD,KAAKi8G,cAKzBj8G,KAAKkqD,SAAU,EAEflqD,KAAKo9E,MAAM5xC,UAUfilG,UAAW,YAEFzwI,KAAKkqD,SAAWlqD,KAAKmqD,aAAenqD,KAAKi8G,cAK9Cj8G,KAAKkqD,SAAU,EAEVlqD,KAAKo9E,MAAMwzD,OAEZ5wI,KAAKo9E,MAAMhK,SA0BnBy9D,aAAc,SAAUhgI,EAAKu2G,GAwBzB,MAtBiB39G,UAAb29G,IAA0BA,GAAW,GAGzCpnH,KAAK8H,QAAQuE,OAAQ,EAErBrM,KAAKo9E,MAAM5xC,QAEXxrC,KAAK6uI,MAAQ7uI,KAAK4uI,WAElB5uI,KAAK+uI,SAAWt6H,OAAOgzC,WAAWznD,KAAKqwI,mBAAmBn4G,KAAKl4B,MAAOA,KAAK8uI,eAE3E9uI,KAAKo9E,MAAMvsE,IAAMA,EAEjB7Q,KAAKo9E,MAAMr0C,OAEX/oC,KAAKivI,UAAY7nB,EAEZA,IAEDpnH,KAAK2pC,QAAS,GAGX3pC,MAUXqwI,mBAAoB,WAGc,IAA1BrwI,KAAKo9E,MAAMogB,WAGXx9F,KAAK0Z,iBAIL1Z,KAAK6uI,QAED7uI,KAAK6uI,MAAQ,EAEb7uI,KAAK+uI,SAAWt6H,OAAOgzC,WAAWznD,KAAKqwI,mBAAmBn4G,KAAKl4B,MAAOA,KAAK8uI,eAI3Ep6H,QAAQukB,KAAK,0DAA2Dj5B,KAAK2uI,eAYzFvf,aAAc,WAEVpvH,KAAK4E,KAAKkkC,MAAMsmB,MAAMyN,qBAAqB78D,KAAKqvH,OAAQrvH,MACxDA,KAAKi8G,aAAc,GAWvBoT,OAAQ,WAQJ,GANArvH,KAAKi8G,aAAc,EAEnBj8G,KAAKo9E,MAAMhK,OAEXpzE,KAAKusH,OAAO9/E,SAASzsC,KAAMA,KAAKszE,KAAMtzE,KAAKuwI,cAEvCvwI,KAAK0W,IACT,CACI,GAAIw4H,GAASlvI,KAAK4E,KAAKikC,MAAM62E,SAAS1/G,KAAK0W,IAEvCw4H,KAAWA,EAAOjyB,SAElBiyB,EAAOr8E,QAAS,GAIxB,OAAO,GAiBXi+E,KAAM,SAAU1sH,EAAOpiB,EAAO4J,GAM1B,MAJcnC,UAAV2a,IAAuBA,GAAQ,GACrB3a,SAAVzH,IAAuBA,EAAQ,GACjByH,SAAdmC,IAA2BA,EAAY,MAErB,OAAlB5L,KAAKuvI,aAEL76H,SAAQukB,KAAK,mEAIb7U,GAEApkB,KAAKuvI,SAAS7sD,MAGlB1iF,KAAKuvI,SAASn0G,KAAKp7B,KAAKo9E,MAAO,EAAG,EAAGp9E,KAAK6G,MAAO7G,KAAK8G,OAAQ,EAAG,EAAG9G,KAAK6G,MAAO7G,KAAK8G,OAAQ,EAAG,EAAG,EAAG,EAAG,EAAG9E,EAAO4J,GAE5G5L,KAAKuvI,WAUhBK,mBAAoB,WAEhB,GAAK5vI,KAAKo9E,MAAV,CAUA,IALIp9E,KAAKo9E,MAAMz8B,YAEX3gD,KAAKo9E,MAAMz8B,WAAWh4C,YAAY3I,KAAKo9E,OAGpCp9E,KAAKo9E,MAAM2zD,iBAEd/wI,KAAKo9E,MAAMz0E,YAAY3I,KAAKo9E,MAAM4zD,WAGtChxI,MAAKo9E,MAAM6zD,gBAAgB,YAC3BjxI,KAAKo9E,MAAM6zD,gBAAgB,OAE3BjxI,KAAKo9E,MAAQ,OAUjB75E,QAAS,WAELvD,KAAKgL,OAELhL,KAAK4vI,qBAED5vI,KAAKi8G,aAELj8G,KAAK4E,KAAKkkC,MAAMsmB,MAAM0N,wBAAwB98D,KAAKqvH,OAAQrvH,MAG3DA,KAAK+uI,UAELt6H,OAAOkwF,aAAa3kG,KAAK+uI,YAWrCnrI,OAAOC,eAAeiwB,EAAO0hD,MAAMnyE,UAAW,eAE1CS,IAAK,WAED,MAAQ9D,MAAU,MAAIA,KAAKo9E,MAAM+tC,YAAc,GAInDnnH,IAAK,SAAUC,GAEXjE,KAAKo9E,MAAM+tC,YAAclnH,KAWjCL,OAAOC,eAAeiwB,EAAO0hD,MAAMnyE,UAAW,YAE1CS,IAAK,WAED,MAAQ9D,MAAU,MAAIA,KAAKo9E,MAAMrmB,SAAW,KAWpDnzD,OAAOC,eAAeiwB,EAAO0hD,MAAMnyE,UAAW,YAE1CS,IAAK,WAED,MAAQ9D,MAAU,MAAKA,KAAKo9E,MAAM+tC,YAAcnrH,KAAKo9E,MAAMrmB,SAAY,KAU/EnzD,OAAOC,eAAeiwB,EAAO0hD,MAAMnyE,UAAW,QAE1CS,IAAK,WAED,MAAO9D,MAAK8sH,QAIhB9oH,IAAK,SAAUC,GAIX,GAFAA,EAAQA,GAAS,KAGjB,CACI,GAAIjE,KAAK8sH,OAEL,MAGJ9sH,MAAKyuH,YAAa,EAClBzuH,KAAKktD,cAGT,CACI,IAAKltD,KAAK8sH,OAEN,MAGJ9sH,MAAKyuH,YAAa,EAClBzuH,KAAKqtD,gBAajBzpD,OAAOC,eAAeiwB,EAAO0hD,MAAMnyE,UAAW,UAE1CS,IAAK,WAED,MAAO9D,MAAKkqD,SAIhBlmD,IAAK,SAAUC,GAIX,GAFAA,EAAQA,GAAS,MAEbjE,KAAKi8G,YAKT,GAAIh4G,EACJ,CACI,GAAIjE,KAAKkqD,QAEL,MAGJlqD,MAAKmqD,aAAc,EACnBnqD,KAAKwwI,eAGT,CACI,IAAKxwI,KAAKkqD,QAEN,MAGJlqD,MAAKmqD,aAAc,EACnBnqD,KAAKywI,gBAUjB7sI,OAAOC,eAAeiwB,EAAO0hD,MAAMnyE,UAAW,UAE1CS,IAAK,WAED,MAAQ9D,MAAU,MAAIA,KAAKo9E,MAAMr4C,OAAS,GAI9C/gC,IAAK,SAAUC,GAEC,EAARA,EAEAA,EAAQ,EAEHA,EAAQ,IAEbA,EAAQ,GAGRjE,KAAKo9E,QAELp9E,KAAKo9E,MAAMr4C,OAAS9gC,MAWhCL,OAAOC,eAAeiwB,EAAO0hD,MAAMnyE,UAAW,gBAE1CS,IAAK,WAED,MAAQ9D,MAAU,MAAIA,KAAKo9E,MAAMmzD,aAAe,GAIpDvsI,IAAK,SAAUC,GAEPjE,KAAKo9E,QAELp9E,KAAKo9E,MAAMmzD,aAAetsI,MAetCL,OAAOC,eAAeiwB,EAAO0hD,MAAMnyE,UAAW,QAE1CS,IAAK,WAED,MAAQ9D,MAAU,MAAIA,KAAKo9E,MAAM9J,MAAO,GAI5CtvE,IAAK,SAAUC,GAEPA,GAASjE,KAAKo9E,MAEdp9E,KAAKo9E,MAAM9J,KAAO,OAEbtzE,KAAKo9E,QAEVp9E,KAAKo9E,MAAM9J,KAAO,OAY9B1vE,OAAOC,eAAeiwB,EAAO0hD,MAAMnyE,UAAW,WAE1CS,IAAK,WAED,QAAS9D,KAAKo9E,MAAMzzC,QAAU3pC,KAAKo9E,MAAMwzD,UAMjD98G,EAAO0hD,MAAMnyE,UAAUC,YAAcwwB,EAAO0hD,MAWpB/rE,SAApB3J,KAAK+L,aAEL/L,KAAK+L,WAAaioB,EAAOjoB,YAGLpC,SAApB3J,KAAK2N,aAEL3N,KAAK2N,WAAaqmB,EAAOrmB,YAGKhE,SAA9B3J,KAAKyL,QAAQC,eAEb1L,KAAKyL,QAAQC,aAAe,GAAI1L,MAAKyL,QAAQ,GAAIzL,MAAKgyB,cAGnBroB,SAAnC3J,KAAK0B,cAAcuF,cAEnBjH,KAAK0B,cAAcuF,YAAc,GAAIjH,MAAK0C,QAGRiH,SAAlC3J,KAAK8G,cAAcitB,aAEnB/zB,KAAK8G,cAAcitB,WAAa,GAAI/zB,MAAK0C,QAGlBiH,SAAvB3J,KAAK6c,SAASC,OAEd9c,KAAK6c,SAASC,KAAOkX,EAAO+C,QAC5B/2B,KAAK6c,SAASa,KAAOsW,EAAOyD,UAC5Bz3B,KAAK6c,SAASe,KAAOoW,EAAOwD,OAC5Bx3B,KAAK6c,SAASgB,KAAOmW,EAAOmD,QAC5Bn3B,KAAK6c,SAASkB,KAAOiW,EAAO6D,kBAGhC73B,KAAKgzB,mBAAoB,EAQE,mBAAZ+B,UACe,mBAAXC,SAA0BA,OAAOD,UACxCA,QAAUC,OAAOD,QAAUf,GAE/Be,QAAQf,OAASA,GACQ,mBAAXiB,SAA0BA,OAAOC,IAC/CD,OAAO,SAAU,WAAc,MAAOh1B,GAAK+zB,OAASA,MAEpD/zB,EAAK+zB,OAASA,IAEnBhuB,KAAK9F"} \ No newline at end of file +{"version":3,"file":"phaser-arcade-physics.min.js","sources":["phaser-arcade-physics.js"],"names":["root","this","PIXI","WEBGL_RENDERER","CANVAS_RENDERER","VERSION","_UID","Float32Array","Uint16Array","Uint32Array","ArrayBuffer","Array","PI_2","Math","PI","RAD_TO_DEG","DEG_TO_RAD","RETINA_PREFIX","defaultRenderOptions","view","transparent","antialias","preserveDrawingBuffer","resolution","clearBeforeRender","autoResize","DisplayObject","position","Point","scale","transformCallback","transformCallbackContext","pivot","rotation","alpha","visible","hitArea","renderable","parent","stage","worldAlpha","worldTransform","Matrix","worldPosition","worldScale","worldRotation","_sr","_cr","filterArea","_bounds","Rectangle","_currentBounds","_mask","_cacheAsBitmap","_cacheIsDirty","prototype","constructor","destroy","children","i","length","_destroyCachedSprite","Object","defineProperty","get","item","set","value","isMask","_filters","passes","filterPasses","j","push","_filterBlock","target","_generateCachedSprite","updateTransform","game","p","world","a","b","c","d","tx","ty","pt","wt","rotationCache","sin","cos","x","y","sqrt","atan2","call","displayObjectUpdateTransform","getBounds","matrix","EmptyRectangle","getLocalBounds","identityMatrix","setStageReference","preUpdate","generateTexture","scaleMode","renderer","bounds","renderTexture","RenderTexture","width","height","_tempMatrix","render","updateCache","toGlobal","apply","toLocal","from","applyInverse","_renderCachedSprite","renderSession","_cachedSprite","gl","Sprite","_renderWebGL","_renderCanvas","texture","resize","tempFilters","filters","anchor","DisplayObjectContainer","create","_width","_height","addChild","child","addChildAt","index","removeChild","splice","Error","swapChildren","child2","index1","getChildIndex","index2","indexOf","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","Texture","emptyTexture","tint","cachedTint","tintedTexture","blendMode","blendModes","NORMAL","shader","baseTexture","hasLoaded","onTextureUpdate","frame","setTexture","valid","w0","w1","h0","h1","x1","y1","x2","y2","x3","y3","x4","y4","crop","currentBlendMode","context","globalCompositeOperation","blendModesCanvas","globalAlpha","smoothProperty","scaleModes","LINEAR","dx","trim","dy","roundPixels","setTransform","cw","ch","requiresReTint","CanvasTinter","getTintedTexture","drawImage","cx","cy","source","fromFrame","frameId","TextureCache","fromImage","imageId","crossorigin","SpriteBatch","textureThing","ready","initWebGL","fastSpriteBatch","WebGLFastSpriteBatch","setContext","shaderManager","setShader","fastShader","transform","isRotated","childTransform","Stage","backgroundColor","setBackgroundColor","backgroundColorSplit","hex2rgb","hex","toString","substr","backgroundColorString","rgb2hex","rgb","canUseNewCanvasBlendModes","document","pngHead","pngEnd","magenta","Image","src","yellow","canvas","createElement","getContext","getImageData","data","getNextPowerOfTwo","number","result","isPowerOfTwo","PolyK","Triangulate","sign","n","tgs","avl","al","i0","i1","i2","ax","ay","bx","by","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","isArray","join","createShader","shaderSource","compileShader","getShaderParameter","COMPILE_STATUS","window","console","log","getShaderInfoLog","compileProgram","vertexSrc","fragmentSrc","fragmentShader","vertexShader","shaderProgram","createProgram","attachShader","linkProgram","getProgramParameter","LINK_STATUS","PixiShader","program","textureCount","firstRun","dirty","attributes","init","defaultVertexSrc","useProgram","uSampler","getUniformLocation","projectionVector","offsetVector","dimensions","aVertexPosition","getAttribLocation","aTextureCoord","colorAttribute","key","uniforms","uniformLocation","initUniforms","uniform","type","_init","initSampler2D","glMatrix","glValueLength","glFunc","uniformMatrix2fv","uniformMatrix3fv","uniformMatrix4fv","activeTexture","bindTexture","TEXTURE_2D","_glTextures","id","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","transpose","z","w","_dirty","instances","updateTexture","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","toArray","uniform1f","uniform2f","uniform3fv","bindBuffer","ARRAY_BUFFER","buffer","vertexAttribPointer","FLOAT","ELEMENT_ARRAY_BUFFER","indexBuffer","TRIANGLE_STRIP","lastIndex","clearDirty","graphicsData","reset","graphicsDataPool","Graphics","POLY","points","shape","slice","closed","fill","switchMode","canDrawUsingSimple","buildPoly","buildComplexPoly","lineWidth","buildLine","RECT","buildRectangle","CIRC","ELIP","buildCircle","RREC","buildRoundedRectangle","upload","pop","WebGLGraphicsData","rectData","fillColor","fillAlpha","r","g","verts","vertPos","tempPoints","rrectData","radius","recPoints","concat","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","a1","b1","c1","a2","b2","c2","denom","pdist","dist","indexCount","indexStart","lineColor","lineAlpha","abs","createBuffer","glPoints","bufferData","STATIC_DRAW","glIndicies","glContexts","WebGLRenderer","options","defaultRenderer","_contextOptions","premultipliedAlpha","stencil","WebGLShaderManager","WebGLSpriteBatch","WebGLMaskManager","WebGLFilterManager","WebGLStencilManager","blendModeManager","WebGLBlendModeManager","drawCount","initContext","mapBlendModes","glContextId","disable","DEPTH_TEST","CULL_FACE","enable","BLEND","contextLost","__stage","viewport","bindFramebuffer","FRAMEBUFFER","clearColor","clear","COLOR_BUFFER_BIT","renderDisplayObject","displayObject","setBlendMode","style","createTexture","UNPACK_PREMULTIPLY_ALPHA_WEBGL","NEAREST","mipmap","LINEAR_MIPMAP_LINEAR","NEAREST_MIPMAP_NEAREST","generateMipmap","_powerOf2","blendModesWebGL","ONE","ONE_MINUS_SRC_ALPHA","ADD","SRC_ALPHA","DST_ALPHA","MULTIPLY","DST_COLOR","SCREEN","OVERLAY","DARKEN","LIGHTEN","COLOR_DODGE","COLOR_BURN","HARD_LIGHT","SOFT_LIGHT","DIFFERENCE","EXCLUSION","HUE","SATURATION","COLOR","LUMINOSITY","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","size","numVerts","numIndices","vertices","positions","colors","lastIndexCount","drawing","currentBatchSize","currentBaseTexture","textures","shaders","sprites","AbstractFilter","vertexBuffer","DYNAMIC_DRAW","sprite","uvs","_uvs","aX","aY","x0","y0","renderTilingSprite","tilingTexture","TextureUvs","h","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","DEFAULT","framebufferTexture2D","COLOR_ATTACHMENT0","renderBuffer","createRenderbuffer","bindRenderbuffer","RENDERBUFFER","framebufferRenderbuffer","DEPTH_STENCIL_ATTACHMENT","renderbufferStorage","DEPTH_STENCIL","deleteFramebuffer","deleteTexture","CanvasBuffer","clearRect","CanvasMaskManager","save","cacheAlpha","CanvasGraphics","renderGraphicsMask","clip","restore","tintMethod","tintWithMultiply","fillStyle","fillRect","tintWithPerPixel","rgbValues","pixelData","pixels","canHandleAlpha","putImageData","checkInverseAlpha","s1","s2","canUseMultiply","CanvasRenderer","refresh","navigator","isCocoonJS","screencanvas","removeView","updateGraphicsTint","_fillTint","_lineTint","beginPath","moveTo","lineTo","closePath","strokeStyle","stroke","strokeRect","arc","kappa","ox","oy","xe","ye","xm","ym","bezierCurveTo","rx","ry","maxRadius","min","quadraticCurveTo","len","rect","tintR","tintG","tintB","BaseTextureCache","BaseTextureCacheIdGenerator","BaseTexture","complete","naturalWidth","naturalHeight","imageUrl","forceLoaded","_pixiId","unloadFromGPU","updateSourceImage","newSrc","glTexture","image","crossOrigin","fromCanvas","TextureCacheIdGenerator","FrameCache","TextureSilentFail","noFrame","isTiling","requiresUpdate","setFrame","onBaseTextureLoaded","destroyBase","_updateUvs","tw","th","addTextureToCache","removeTextureFromCache","textureBuffer","renderWebGL","renderCanvas","tempMatrix","Phaser","updateBase","identity","translate","append","realResolution","getImage","getBase64","getCanvas","toDataURL","webGLPixels","Uint8Array","readPixels","tempCanvas","canvasData","Strip","canvasPadding","drawMode","DrawModes","_vertexBuffer","_initWebGL","_renderStrip","_indexBuffer","_uvBuffer","_colorBuffer","_renderCanvasTriangleStrip","_renderCanvasTriangles","_renderCanvasDrawTriangle","index0","textureSource","textureWidth","textureHeight","u0","u1","u2","v0","v1","v2","paddingX","paddingY","centerX","centerY","normX","normY","delta","deltaA","deltaB","deltaC","deltaD","deltaE","deltaF","renderStripFlat","strip","updateFrame","rawX","rawY","Rope","point","amount","total","nextPoint","perp","ratio","perpLength","num","TilingSprite","textureDebug","canvasBuffer","tilePattern","refreshTexture","frameWidth","frameHeight","generateTilingTexture","needsUpdate","createPattern","sessionBlendMode","forcePowerOfTwo","targetWidth","_frame","sourceSizeW","targetHeight","sourceSizeH","trimmed","spriteSourceSizeX","spriteSourceSizeY","exports","module","define","amd","WheelEventProxy","scaleFactor","deltaMode","_scaleFactor","_deltaMode","originalEvent","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","CIRCLE","RECTANGLE","LINE","MATRIX","POINT","ROUNDEDRECTANGLE","CREATURE","VIDEO","trunc","ceil","floor","Function","bind","thisArg","bound","args","boundArgs","arguments","TypeError","F","proto","arg","forEach","fun","t","CheapArray","assert","warn","Utils","getProperty","obj","prop","parts","split","last","l","current","setProperty","chanceRoll","chance","random","randomChoice","choice1","choice2","parseDimension","dimension","f","parseInt","innerWidth","innerHeight","pad","str","dir","padlen","right","left","isPlainObject","nodeType","hasOwnProperty","e","extend","name","copy","copyIsArray","clone","deep","mixinPrototype","mixin","replace","mixinKeys","keys","to","o","childNodes","cloneNode","Circle","diameter","_diameter","_radius","circumference","out","setTo","copyFrom","copyTo","dest","distance","round","output","contains","circumferencePoint","angle","asDegrees","offsetPoint","top","bottom","equals","intersects","degToRad","intersectsRectangle","halfWidth","xDist","halfHeight","yDist","xCornerDist","yCornerDist","xCornerDistSq","yCornerDistSq","maxCornerDistSq","Ellipse","normx","normy","Line","fromSprite","startSprite","endSprite","useCenter","center","fromAngle","rotate","line","asSegment","intersectsPoints","reflect","pointOnLine","pointOnSegment","xMin","xMax","max","yMin","yMax","coordinatesOnLine","stepRate","results","sx","sy","err","e2","wrap","uc","ua","ub","normalAngle","fromArray","array","pos","newPos","tx1","d1","invert","add","subtract","multiply","divide","clampX","clamp","clampY","radToDeg","getMagnitude","getMagnitudeSq","setMagnitude","magnitude","normalize","isZero","m","dot","cross","rperp","normalRightHand","negative","multiplyAdd","s","interpolate","project","amt","projectUnit","centroid","pointslength","parse","xProp","yProp","Polygon","area","_points","toNumberArray","flatten","inside","ix","iy","jx","jy","Number","MAX_VALUE","calculateArea","p1","p2","avgHeight","centerOn","floorAll","ceilAll","inflate","containsRect","intersection","intersectsRaw","tolerance","union","randomX","randomY","empty","inflatePoint","containsRaw","rw","rh","containsPoint","volume","sameDimensions","aabb","MIN_VALUE","RoundedRectangle","Camera","deadzone","roundPx","atLimit","totalInView","_targetPosition","_edge","_position","FOLLOW_LOCKON","FOLLOW_PLATFORMER","FOLLOW_TOPDOWN","FOLLOW_TOPDOWN_TIGHT","follow","helper","unfollow","focusOn","setPosition","focusOnXY","update","updateTarget","checkBounds","setBoundsToWorld","setSize","Create","bmd","make","bitmapData","ctx","palettes",1,2,3,4,5,6,7,8,9,"A","B","C","D","E","PALETTE_ARNE","PALETTE_JMP","PALETTE_CGA","PALETTE_C64","PALETTE_JAPANESE_MACHINE","pixelWidth","pixelHeight","palette","row","grid","cellWidth","cellHeight","State","camera","cache","input","load","math","sound","time","tweens","particles","physics","rnd","preload","loadUpdate","loadRender","preRender","paused","resumed","pauseUpdate","shutdown","StateManager","pendingState","states","_pendingState","_clearWorld","_clearCache","_created","_args","onStateChange","Signal","onInitCallback","onPreloadCallback","onCreateCallback","onUpdateCallback","onRenderCallback","onResizeCallback","onPreRenderCallback","onLoadUpdateCallback","onLoadRenderCallback","onPausedCallback","onResumedCallback","onPauseUpdateCallback","onShutDownCallback","boot","onPause","pause","onResume","resume","state","autoStart","newState","isBooted","remove","callbackContext","clearWorld","clearCache","checkState","restart","dummy","previousStateKey","clearCurrentState","setCurrentState","dispatch","totalQueuedFiles","totalQueuedPacks","loadComplete","removeAll","debug","link","unlink","_kickstart","getCurrentState","elapsedTime","renderType","_bindings","_prevParams","memorize","_shouldPropagate","active","_boundDispatch","validateListener","listener","fnName","_registerListener","isOnce","listenerContext","priority","binding","prevIndex","_indexOfListener","SignalBinding","_addBinding","execute","_priority","cur","_listener","has","addOnce","_destroy","getNumListeners","halt","bindings","paramsArr","forget","dispose","_this","signal","_isOnce","_signal","callCount","params","handlerReturn","detach","isBound","getListener","getSignal","Filter","prevPoint","Date","mouse","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","exists","currentRenderOrderID","_hiddenVar","_onChange","_backgroundColor","config","parseConfig","DOM","getOffset","Canvas","setUserSelect","setTouchAction","checkVisibility","webkitHidden","mozHidden","msHidden","hidden","event","visibilityChange","addEventListener","onblur","onfocus","onpagehide","onpageshow","device","cocoonJSApp","CocoonJS","App","onSuspended","onActivated","focusLoss","focusGain","gamePaused","gameResumed","Color","valueToColor","getColor","RGBtoString","removeEventListener","Group","addToStage","enableBody","physicsBodyType","Physics","ARCADE","physicsType","alive","ignoreDestroy","pendingDestroy","classType","cursor","enableBodyDebug","physicsSortDirection","onDestroy","cursorIndex","fixedToCamera","cameraOffset","hash","_sortProperty","RETURN_NONE","RETURN_TOTAL","RETURN_CHILD","SORT_ASCENDING","SORT_DESCENDING","silent","body","addToHash","events","onAddedToGroup$dispatch","removeFromHash","addMultiple","moveAll","addAt","updateZ","getAt","createMultiple","quantity","resetCursor","next","previous","swap","child1","bringToTop","getIndex","sendToBack","moveUp","moveDown","xy","oldChild","newChild","hasProperty","operation","force","checkProperty","checkAlive","checkVisible","setAll","setAllChildren","checkAll","addAll","property","subAll","multiplyAll","divideAll","callAllExists","callback","existsValue","callbackFromArray","callAll","method","methodLength","contextLength","renderOrderID","predicate","checkExists","ArraySet","forEachExists","iterate","forEachAlive","forEachDead","sort","order","ascendingSortHandler","descendingSortHandler","customSort","sortHandler","returnType","getFirstExists","getFirstAlive","getFirstDead","getTop","getBottom","countLiving","countDead","getRandom","ArrayUtils","getRandomItem","destroyPhase","onRemovedFromGroup$dispatch","group","removeBetween","destroyChildren","soft","World","_definedSize","stateChange","setBounds","useBounds","horizontal","vertical","between","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","text","geom","uuid","topLeft","topMiddle","topRight","bottomLeft","bottomMiddle","bottomRight","ScaleManager","dom","minWidth","maxWidth","minHeight","maxHeight","forceLandscape","forcePortrait","incorrectOrientation","_pageAlignHorizontally","_pageAlignVertically","onOrientationChange","enterIncorrectOrientation","leaveIncorrectOrientation","fullScreenTarget","_createdFullScreenTarget","onFullScreenInit","onFullScreenChange","onFullScreenError","screenOrientation","getScreenOrientation","scaleFactorInversed","margin","aspectRatio","sourceAspectRatio","windowConstraints","compatibility","supportsFullScreen","orientationFallback","noMargins","scrollTo","forceMinimumDocumentHeight","canExpandParent","clickTrampoline","_scaleMode","NO_SCALE","_fullScreenScaleMode","parentIsWindow","parentNode","parentScaleFactor","trackParentInterval","onSizeChange","onResizeContext","_pendingScaleMode","_fullScreenRestore","_gameSize","_userScaleFactor","_userScaleTrim","_lastUpdate","_updateThrottle","_updateThrottleReset","_parentBounds","_tempBounds","_lastReportedCanvasSize","_lastReportedGameSize","_booted","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","visualBounds","newWidth","newHeight","updateDimensions","queueUpdate","currentScaleMode","setUserScale","hScale","vScale","hTrim","vTrim","setResizeCallback","signalSizeChange","setMinMax","prevThrottle","prevWidth","prevHeight","boundsChanged","orientationChanged","updateOrientationState","updateLayout","throttle","updateScalingAndBounds","forceOrientation","classifyOrientation","orientation","previousOrientation","previouslyIncorrect","isLandscape","isPortrait","changed","correctnessChanged","scrollTop","reflowGame","documentElement","setMaximum","setExactFit","isFullScreen","boundingParent","setShowAll","resetCanvas","reflowCanvas","layoutBounds","clientRect","getBoundingClientRect","wc","windowBounds","alignCanvas","parentBounds","canvasBounds","currentEdge","targetEdge","marginLeft","marginRight","marginTop","marginBottom","pageAlignHorizontally","pageAlignVertically","cssWidth","cssHeight","expanding","createFullScreenTarget","fsTarget","background","startFullScreen","allowTrampoline","setTimeout","activePointer","mousePointer","addClickTrampoline","smoothed","cleanupCreatedTarget","initData","targetElement","insertBefore","appendChild","fullscreenKeyboard","requestFullscreen","Element","ALLOW_KEYBOARD_INPUT","stopFullScreen","cancelFullscreen","prepScreenMode","enteringFullscreen","createdTarget","enterFullScreen","leaveFullScreen","letterBox","scaleX1","scaleY1","scaleX2","scaleY2","scaleOnWidth","Game","physicsConfig","isRunning","raf","net","Device","lockRender","stepping","pendingStep","stepCount","onBlur","onFocus","_paused","_codePaused","currentUpdateID","updatesThisFrame","_deltaTime","_lastCount","_spiraling","fpsProblemNotifier","forceSingleUpdate","_nextFpsNotification","enableDebug","RandomDataGenerator","now","whenReady","seed","setUpRenderer","GameObjectFactory","GameObjectCreator","Cache","Loader","Time","TweenManager","Input","SoundManager","Particles","Net","Debug","showDebugHeader","RequestAnimationFrame","stopFocus","focus","hideBanner","webAudio","contextRestored","addToDOM","preventDefault","clearGLTextures","updateLogic","desiredFps","updateRender","slowMotion","slowStep","elapsed","timeStep","enableStep","disableStep","step","removeFromDOM","setMute","cordova","iOS","unsetMute","hitCanvas","hitContext","moveCallbacks","pollRate","enabled","multiInputOverride","MOUSE_TOUCH_COMBINE","speed","circle","maxPointers","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","Touch","MSPointer","Keyboard","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","mouseDownCallback","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","BACK_BUTTON","FORWARD_BUTTON","WHEEL_UP","WHEEL_DOWN","onMouseDown","onMouseMove","onMouseUp","_onMouseUpGlobal","onMouseUpGlobal","onMouseOut","onMouseOver","onMouseWheel","wheelEvent","mouseMoveCallback","withinGame","bindEvent","deltaY","requestPointerLock","element","mozRequestPointerLock","webkitRequestPointerLock","_pointerLockChange","pointerLockChange","pointerLockElement","mozPointerLockElement","webkitPointerLockElement","releasePointerLock","exitPointerLock","mozExitPointerLock","webkitExitPointerLock","_stubsGenerated","makeBinder","defineProperties","detail","deltaX","wheelDeltaX","deltaZ","pointerDownCallback","pointerMoveCallback","pointerUpCallback","_onMSPointerDown","_onMSPointerMove","_onMSPointerUp","onPointerDown","onPointerMove","onPointerUp","pointerType","DeviceButton","buttonCode","isDown","isUp","timeDown","duration","timeUp","repeats","altKey","shiftKey","ctrlKey","onFloat","padFloat","justPressed","justReleased","leftButton","middleButton","rightButton","backButton","forwardButton","eraserButton","ERASER_BUTTON","_holdSent","_history","_nextDrop","_stateReset","clientX","clientY","pageX","pageY","screenX","screenY","rawMovementX","rawMovementY","movementX","movementY","isMouse","previousTapTime","totalTouches","msSinceLastClick","targetObject","positionDown","positionUp","_clickTrampolines","_trampolineTargetObject","resetButtons","updateButtons","buttons","totalActivePointers","_touchedHandler","processInteractiveObjects","shift","fromClick","pollLocked","mozMovementX","webkitMovementX","mozMovementY","webkitMovementY","isDragged","highestRenderOrderID","highestInputPriorityID","candidateTarget","currentNode","first","checked","validForInput","checkPointerDown","checkPointerOver","priorityID","_pointerOutHandler","_pointerOverHandler","leave","currentPointers","callbackArgs","trampolines","trampoline","_releasedHandler","resetMovement","touchLockCallbacks","touchStartCallback","touchMoveCallback","touchEndCallback","touchEnterCallback","touchLeaveCallback","touchCancelCallback","_onTouchStart","_onTouchMove","_onTouchEnd","_onTouchEnter","_onTouchLeave","_onTouchCancel","onTouchStart","onTouchMove","onTouchEnd","onTouchEnter","onTouchLeave","onTouchCancel","consumeDocumentTouches","_documentTouchMove","addTouchLockCallback","removeTouchLockCallback","changedTouches","InputHandler","useHandCursor","_setHandCursor","allowHorizontalDrag","allowVerticalDrag","snapOffset","snapOnDrag","snapOnRelease","snapX","snapY","snapOffsetX","snapOffsetY","pixelPerfectOver","pixelPerfectClick","pixelPerfectAlpha","draggable","boundsRect","boundsSprite","consumePointerEvent","scaleLayer","dragOffset","dragFromCenter","dragStartPoint","snapPoint","_dragPoint","_dragPhase","_wasEnabled","_tempPoint","_pointerData","isOver","isOut","timeOver","timeOut","downDuration","onAddedToGroup","addedToGroup","onRemovedFromGroup","removedFromGroup","flagged","highestID","highestRenderID","includePixelPerfect","isPixelPerfect","pointerX","pointerY","pointerDown","pointerUp","pointerTimeDown","pointerTimeUp","pointerOver","pointerOut","pointerTimeOver","pointerTimeOut","pointerDragged","fastTest","checkPixel","_dx","_dy","_draggedPointerID","updateDrag","onInputOver$dispatch","onInputOut$dispatch","onInputDown$dispatch","startDrag","onInputUp$dispatch","stopDrag","globalToLocalX","globalToLocalY","checkBoundsRect","checkBoundsSprite","onDragUpdate","justOver","delay","overDuration","justOut","enableDrag","lockCenter","pixelPerfect","alphaThreshold","disableDrag","onDragStart$dispatch","onDragStop$dispatch","setDragLock","allowHorizontal","allowVertical","enableSnap","onDrag","onRelease","disableSnap","_gamepadIndexMap","_rawPads","_active","_gamepadSupportAvailable","webkitGetGamepads","webkitGamepads","userAgent","getGamepads","_prevRawGamepadTypes","_prevTimestamps","onConnectCallback","onDisconnectCallback","onDownCallback","onUpCallback","onAxisCallback","onFloatCallback","_ongamepadconnected","_gamepaddisconnected","_gamepads","SinglePad","addCallbacks","callbacks","onConnect","onDisconnect","onAxis","_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","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","processButtonDown","processButtonUp","processButtonFloat","axes","processAxisChange","triggerCallback","disconnectingIndex","axis","axisCode","buttonValue","Key","keycode","_enabled","keyCode","onHoldCallback","onHoldContext","_justDown","_justUp","processKeyDown","processKeyUp","upDuration","pressEvent","onPressCallback","_keys","_capture","_onKeyDown","_onKeyPress","_onKeyUp","_k","onPress","addKey","addKeyCapture","addKeys","removeKey","removeKeyCapture","createCursorKeys","up","down","processKeyPress","clearCaptures","String","fromCharCode","charCode","charCodeAt","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","COMMA","UNDERSCORE","PERIOD","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","PLUS","MINUS","INSERT","DELETE","HELP","NUM_LOCK","Component","Angle","wrapAngle","Animation","play","frameRate","loop","killOnComplete","animations","AutoCull","autoCull","inCamera","checkWorldBounds","Bounds","BringToTop","Core","install","components","previousPosition","Events","PhysicsBody","AnimationManager","LoadTexture","loadTexture","FixedToCamera","previousRotation","fresh","_exists","P2JS","removeFromWorld","customRender","Crop","cropRect","_crop","updateCrop","resetFrame","Delta","Destroy","onDestroy$dispatch","Video","onChangeSource","resizeFrame","BitmapText","_glyphs","_parent","_onDestroy","_onAddedToGroup","_onRemovedFromGroup","_onRemovedFromWorld","_onKilled","_onRevived","_onEnterBounds","_onOutOfBounds","_onInputOver","_onInputOut","_onInputDown","_onInputUp","_onDragStart","_onDragUpdate","_onDragStop","_onAnimationStart","_onAnimationComplete","_onAnimationLoop","onRemovedFromWorld","onKilled","onRevived","onOutOfBounds","onEnterBounds","onInputOver","onInputOut","onInputDown","onInputUp","onDragStart","onDragStop","onAnimationStart","onAnimationComplete","onAnimationLoop","backing","_fixedToCamera","Health","health","maxHealth","damage","kill","heal","InCamera","InputEnabled","inputEnabled","InWorld","_outOfBoundsFired","onEnterBounds$dispatch","onOutOfBounds$dispatch","outOfBoundsKill","inWorld","LifeSpan","lifespan","physicsElapsedMS","revive","onRevived$dispatch","onKilled$dispatch","stopAnimation","BitmapData","hasFrameData","loadFrameData","getFrameData","img","base","frameData","frameName","Overlap","overlap","_reset","Reset","ScaleMinMax","checkTransform","scaleMin","scaleMax","setScaleMinMax","Smoothed","existing","object","creature","mesh","Creature","tween","physicsGroup","audio","audioSprite","addSprite","tileSprite","rope","Text","overFrame","outFrame","downFrame","upFrame","Button","emitter","maxParticles","Arcade","Emitter","retroFont","font","characterWidth","characterHeight","chars","charsPerRow","xSpacing","ySpacing","xOffset","yOffset","RetroFont","bitmapText","tilemap","tileWidth","tileHeight","Tilemap","addToCache","addRenderTexture","video","url","addBitmapData","Tween","align","preUpdatePhysics","preUpdateLifeSpan","preUpdateInWorld","preUpdateCore","_scroll","def","physicsElapsed","autoScroll","stopScroll","_hasUpdateAnimation","_updateAnimationCallback","updateAnimation","_updateAnimation","segments","difference","_onOverFrame","_onOutFrame","_onDownFrame","_onUpFrame","onOverSound","onOutSound","onDownSound","onUpSound","onOverSoundMarker","onOutSoundMarker","onDownSoundMarker","onUpSoundMarker","onOverMouseOnly","freezeFrames","forceOut","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","Particle","autoScale","scaleData","_s","autoAlpha","alphaData","_a","onEmit","setAlphaData","setScaleData","imageData","textureFrame","Frame","disableTextureUpload","cls","_image","_pos","_size","_scale","_rotate","_alpha","prev","_anchor","_tempR","_tempG","_tempB","_circle","_swapCanvas","moveH","moveV","draw","addImage","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","direction","scan","anchorX","anchorY","copyRect","drawGroup","shadow","blur","shadowColor","shadowBlur","shadowOffsetX","shadowOffsetY","alphaMask","sourceRect","maskRect","blendSourceAtop","blendReset","extract","destination","prevFont","fillText","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","currentPath","boundsPadding","_localBounds","webGLDirty","cachedSpriteDirty","lineStyle","drawShape","cpX2","cpY2","dt","dt2","dt3","t2","t3","arcTo","mm","dd","cc","tt","k1","k2","j1","j2","qx","qy","startAngle","endAngle","anticlockwise","sweep","segs","startX","startY","filling","theta","theta2","cTheta","sTheta","segMinus","remainder","real","beginFill","endFill","drawRect","drawRoundedRect","drawCircle","drawEllipse","drawPolygon","path","updateCachedSpriteTexture","_prevTint","updateLocalBounds","tempPoint","cachedSprite","destroyCachedSprite","GraphicsData","drawTriangle","cull","triangle","cameraToFace","ab","cb","faceNormal","drawTriangles","point1","point2","point3","renderXY","renderRawXY","textBounds","strokeColors","autoRound","_res","_text","_fontComponents","_lineSpacing","_charCount","setStyle","updateText","setShadow","shadowStroke","shadowFill","boundsAlignH","boundsAlignV","strokeThickness","wordWrap","wordWrapWidth","tabs","fontToComponents","fontStyle","fontVariant","fontWeight","fontSize","componentsToFont","outputText","runWordWrap","lines","lineWidths","maxLineWidth","fontProperties","determineFontProperties","measureText","tab","section","snapToCeil","lineHeight","lineSpacing","textBaseline","lineCap","lineJoin","linePositionX","linePositionY","ascent","updateLine","updateShadow","strokeText","renderTabLine","snap","letter","clearColors","addColor","addStrokeColor","spaceLeft","words","wordWidth","wordWidthWithSpace","updateFont","match","fontFamily","setText","parseList","list","setTextBounds","properties","fontPropertiesCache","fontPropertiesCanvas","fontPropertiesContext","baseline","descent","imagedata","idx","exec","parseFloat","textWidth","textHeight","_prevAnchor","_maxWidth","_data","getBitmapFont","_font","_fontSize","_align","_tint","sourceWidth","sourceHeight","scanLine","lastSpace","prevCharCode","test","charAt","charData","kerning","xAdvance","purgeGlyphs","kept","checkImageKey","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","content","characterSpacing","allowLowerCase","buildRetroFontText","getLongestLine","pasteLine","longestLine","removeUnsupportedCharacters","stripCR","newString","aChar","code","updateOffset","diffX","diffY","frames","getFrames","newText","toUpperCase","deviceReadyAt","initialized","node","nodeWebkit","electron","ejecta","crosswalk","chromeOS","linux","macOS","windows","windowsPhone","canvasBitBltShift","file","fileSystem","localStorage","worker","css3D","typedArray","vibration","getUserMedia","quirksMode","arora","chromeVersion","epiphany","firefox","firefoxVersion","ie","ieVersion","trident","tridentVersion","mobileSafari","midori","opera","safari","silk","audioData","ogg","opus","mp3","wav","m4a","webm","oggVideo","h264Video","mp4Video","webmVideo","vp9Video","hlsVideo","iPhone","iPhone4","pixelRatio","littleEndian","support32bit","onInitialized","nonPrimer","readyCheck","_readyCheck","_monitor","_queue","readyState","_initialize","_checkOS","vita","kindle","_checkFeatures","getItem","error","WebGLRenderingContext","compatMode","webkitGetUserMedia","mozGetUserMedia","msGetUserMedia","oGetUserMedia","URL","webkitURL","mozURL","msURL","_checkInput","maxTouchPoints","msPointerEnabled","pointerEnabled","_checkFullScreenSupport","fs","cfs","_checkBrowser","RegExp","$1","$3","process","require","versions","_checkVideo","videoElement","canPlayType","_checkAudio","audioElement","_checkDevice","toLowerCase","Int8Array","_checkIsLittleEndian","Uint8ClampedArray","Int32Array","_checkIsUint8ClampedImageData","vibrate","webkitVibrate","mozVibrate","msVibrate","elem","createImageData","_checkCSS3D","has3d","el","transforms","webkitTransform","OTransform","msTransform","MozTransform","getComputedStyle","getPropertyValue","canPlayAudio","canPlayVideo","isConsoleOpen","profile","profileEnd","isAndroidStockBrowser","matches","box","scrollY","scrollLeft","scrollX","clientTop","clientLeft","cushion","calibrate","coords","getAspectRatio","inLayoutViewport","primaryFallback","screen","mozOrientation","msOrientation","PORTRAIT","LANDSCAPE","matchMedia","documentBounds","pageXOffset","pageYOffset","treatAsDesktop","clientWidth","clientHeight","offsetWidth","scrollWidth","offsetHeight","scrollHeight","display","msTouchAction","overflowHidden","overflow","vendor","prefix","setImageRenderingCrisp","msInterpolationMode","setImageRenderingBicubic","forceSetTimeOut","vendors","requestAnimationFrame","cancelAnimationFrame","_isSetTimeOut","_onLoop","_timeOutID","updateSetTimeout","updateRAF","rafTime","timeToCall","clearTimeout","isSetTimeOut","isRAF","PI2","fuzzyEqual","epsilon","fuzzyLessThan","fuzzyGreaterThan","fuzzyCeil","val","fuzzyFloor","average","sum","shear","snapTo","gap","snapToFloor","roundTo","place","pow","floorTo","ceilTo","angleBetween","angleBetweenY","angleBetweenPoints","angleBetweenPointsY","reverseAngle","angleRad","normalizeAngle","maxAdd","minSub","wrapValue","isOdd","isEven","minProperty","maxProperty","radians","linearInterpolation","linear","bezierInterpolation","bernstein","catmullRomInterpolation","catmullRom","p0","factorial","res","p3","roundAwayFromZero","sinCosGenerator","sinAmplitude","cosAmplitude","frequency","frq","cosTable","sinTable","distanceSq","distancePow","clampBottom","within","mapLinear","smoothstep","smootherstep","percent","degreeToRadiansFactor","radianToDegreesFactor","degrees","seeds","s0","sow","integer","frac","integerInRange","realInRange","normal","pick","ary","weightedPick","QuadTree","maxObjects","maxLevels","objects","nodes","_empty","subWidth","subHeight","populate","populateHandler","insert","retrieve","returnObjects","getHostName","location","hostname","checkDomainName","domain","updateQueryString","redirect","href","re","separator","getQueryString","parameter","keyValues","search","substring","decodeURI","decodeURIComponent","_tweens","_add","easeMap","Power0","Easing","Power1","Power2","Power3","Power4","Linear","None","Quad","Quadratic","Out","Cubic","Quart","Quartic","Quint","Quintic","Sine","Sinusoidal","Expo","Exponential","Circ","Circular","Elastic","Back","Bounce","Quad.easeIn","In","Cubic.easeIn","Quart.easeIn","Quint.easeIn","Sine.easeIn","Expo.easeIn","Circ.easeIn","Elastic.easeIn","Back.easeIn","Bounce.easeIn","Quad.easeOut","Cubic.easeOut","Quart.easeOut","Quint.easeOut","Sine.easeOut","Expo.easeOut","Circ.easeOut","Elastic.easeOut","Back.easeOut","Bounce.easeOut","Quad.easeInOut","InOut","Cubic.easeInOut","Quart.easeInOut","Quint.easeInOut","Sine.easeInOut","Expo.easeInOut","Circ.easeInOut","Elastic.easeInOut","Back.easeInOut","Bounce.easeInOut","_pauseAll","_resumeAll","getAll","pendingDelete","removeFrom","_manager","addTweens","numTweens","isTweening","some","_pause","_resume","pauseAll","resumeAll","timeline","timeScale","repeatCounter","onStart","onLoop","onRepeat","onChildComplete","onComplete","chainedTween","isPaused","_onUpdateCallback","_onUpdateCallbackContext","_pausedTime","_hasStarted","ease","yoyo","Default","TweenData","vEnd","loadValues","updateTweenData","repeatDelay","yoyoDelay","easing","interpolation","repeatAll","chain","startTime","status","PENDING","RUNNING","LOOPED","COMPLETE","generateData","vStart","vStartCache","vEndCache","inReverse","easingFunction","interpolationFunction","interpolationContext","isFrom","yoyoCounter","elapsedMS","fps","blob","reversed","asin","prevTime","suggestedFps","advancedTiming","fpsMin","fpsMax","msMin","msMax","pauseDuration","timeExpected","Timer","_frameCount","_elapsedAccumulator","_started","_timeLastSecond","_pauseStarted","_justResumed","_timers","timer","autoDestroy","updateAdvancedTiming","updateTimers","previousDateNow","timeCallExpected","elapsedSince","since","elapsedSecondsSince","running","expired","nextTick","timeCap","_pauseTotal","_now","_marked","_diff","_newTick","MINUTE","SECOND","HALF","QUARTER","repeatCount","tick","TimerEvent","clearEvents","clearPendingEvents","adjustEvents","baseTime","ms","currentFrame","currentAnim","updateIfVisible","isLoaded","_frameData","_anims","_outputFrames","anim","copyFrameData","useNumericIndex","getFrameIndexes","validateFrames","checkFrameName","isPlaying","getAnimation","refreshFrame","getFrame","getFrameByName","_frameIndex","_frames","loopCount","isFinished","_pauseStartTime","_frameDiff","_frameSkip","onUpdate","_timeLastFrame","_timeNextFrame","updateCurrentFrame","onAnimationStart$dispatch","useLocalFrameIndex","frameIndex","dispatchComplete","onAnimationComplete$dispatch","onAnimationLoop$dispatch","signalUpdate","fromPlay","generateFrameNames","suffix","zeroPad","rotated","rotationDirection","spriteSourceSizeW","spriteSourceSizeH","setTrim","actualWidth","actualHeight","destX","destY","destWidth","destHeight","getRect","_frameNames","getFrameRange","AnimationParser","spriteSheet","frameMax","spacing","column","JSONData","json","newFrame","filename","sourceSize","spriteSourceSize","JSONDataHash","XMLData","xml","getElementsByTagName","frameX","frameY","autoResolveURL","_cache","binary","bitmapFont","_urlMap","_urlResolver","_urlTemp","onSoundUnlock","_cacheMap","TEXTURE","SOUND","PHYSICS","BINARY","BITMAPFONT","JSON","XML","SHADER","RENDER_TEXTURE","addDefaultImage","addMissingImage","addCanvas","removeImage","_resolveURL","addSound","audioTag","decoded","isDecoding","touchLocked","addText","addPhysicsData","addTilemap","mapData","addBinary","binaryData","addBitmapFont","atlasData","atlasType","LoaderParser","jsonBitmapFont","xmlBitmapFont","addJSON","addXML","addVideo","isBlob","addShader","addSpriteSheet","addTextureAtlas","TEXTURE_ATLAS_XML_STARLING","reloadSound","getSound","reloadSoundComplete","updateSound","decodedSound","isSoundDecoded","isSoundReady","checkKey","checkURL","checkCanvasKey","checkTextureKey","checkSoundKey","checkTextKey","checkPhysicsKey","checkTilemapKey","checkBinaryKey","checkBitmapDataKey","checkBitmapFontKey","checkJSONKey","checkXMLKey","checkVideoKey","checkShaderKey","checkRenderTextureKey","full","getTextureFrame","getSoundData","getText","getPhysicsData","fixtureKey","fixtures","fixture","getTilemapData","getBinary","getBitmapData","getJSON","getXML","getVideo","getShader","getRenderTexture","getBaseTexture","getFrameCount","getFrameByIndex","getPixiTexture","getPixiBaseTexture","getURL","getKeys","removeCanvas","removeFromPixi","removeSound","removeText","removePhysics","removeTilemap","removeBinary","removeBitmapData","removeBitmapFont","removeJSON","removeXML","removeVideo","removeShader","removeRenderTexture","removeSpriteSheet","removeTextureAtlas","atlas","baseURL","isLoading","preloadSprite","onLoadStart","onLoadComplete","onPackComplete","onFileStart","onFileComplete","onFileError","useXDomainRequest","_warnedAboutXDomainRequest","enableParallel","maxParallelDownloads","_withSyncPointDepth","_fileList","_flightQueue","_processingHead","_fileLoadStarted","_totalPackCount","_totalFileCount","_loadedPackCount","_loadedFileCount","TEXTURE_ATLAS_JSON_ARRAY","TEXTURE_ATLAS_JSON_HASH","PHYSICS_LIME_CORONA_JSON","PHYSICS_PHASER_JSON","setPreloadSprite","checkKeyExists","getAssetIndex","bestFound","loaded","loading","getAsset","fileIndex","addToFileList","overwrite","extension","syncPoint","currentFile","replaceInFileList","pack","script","spritesheet","urls","autoDecode","noAudio","audiosprite","jsonURL","jsonData","loadEvent","asBlob","CSV","TILED_JSON","LIME_CORONA_JSON","textureURL","atlasURL","parseXml","atlasJSONArray","atlasJSONHash","atlasXML","withSyncPoint","addSyncPoint","asset","removeFile","updateProgress","processLoadQueue","finishedLoading","requestUrl","requestObject","progress","syncblock","inflightLimit","processPack","loadFile","abnormal","asyncComplete","errorMessage","packData","transformUrl","xhrLoad","fileComplete","loadImageTag","getAudioURL","usingWebAudio","usingAudioTag","loadAudioTag","fileError","getVideoURL","loadVideoTag","jsonLoadComplete","xmlLoadComplete","csvLoadComplete","onload","onerror","controls","autoplay","videoLoadEvent","canplay","Audio","playThroughEvent","XDomainRequest","xhrLoadWithXDR","xhr","XMLHttpRequest","open","responseType","message","send","timeout","ontimeout","onprogress","videoType","uri","lastIndexOf","audioType","reason","loadNext","responseText","Blob","response","decode","language","defer","head","contentType","domparser","DOMParser","parseFromString","ActiveXObject","async","loadXML","totalLoadedFiles","totalLoadedPacks","progressFloat","info","common","getAttribute","letters","kernings","second","finalizeBitmapFont","_face","_lineHeight","_id","_xoffset","_yoffset","_xadvance","_second","_first","_amount","bitmapFontData","autoplayKey","sounds","spritemap","addMarker","connectToMaster","markers","totalDuration","currentTime","durationMS","stopTime","pausedPosition","pausedTime","currentMarker","fadeTween","pendingPlayback","override","allowMultiple","externalNode","masterGainNode","gainNode","_sound","masterGain","createGain","createGainNode","gain","soundHasUnlocked","onDecoded","onPlay","onStop","onMute","onMarkerComplete","onFadeComplete","_volume","_buffer","_muted","_tempMarker","_tempPosition","_tempVolume","_muteVolume","_tempLoop","_onDecodedEventDispatched","removeMarker","onEndedHandler","isDecoded","loopFull","forceRestart","noteOff","createBufferSource","onended","noteGrainOn","muted","prevMarker","fadeIn","fadeTo","fadeOut","fadeComplete","mute","onSoundDecode","onVolumeChange","onUnMute","channels","_codeMuted","_unlockSource","_sounds","_watchList","_watching","_watchCallback","_watchContext","disableAudio","disableWebAudio","audioContext","fakeiOSTouchLock","setTouchLock","unlock","noteOn","stopAll","soundData","decodeAudioData","setDecodedCallback","files","playbackState","PLAYING_STATE","FINISHED_STATE","removeByKey","columnWidth","renderShadow","currentAlpha","currentColor","soundInfo","cameraInfo","hideIfUp","downColor","upColor","worldX","worldY","spriteInputInfo","justDown","justUp","inputInfo","spriteBounds","filled","rectangle","ropeSegments","self","segment","spriteInfo","spriteCoords","lineInfo","forceType","quadTree","quadtree","Body","NINJA","Ninja","BOX2D","Box2D","renderBody","bodyInfo","renderBodyInfo","box2d","box2dWorld","renderDebugDraw","box2dBody","getByKey","randomIndex","removeRandomItem","shuffle","transposeMatrix","sourceRowCount","sourceColCount","rotateMatrix","findClosest","arr","NaN","low","high","POSITIVE_INFINITY","numberArray","numberArrayStep","rgba","RGBtoHSL","RGBtoHSV","fromRGBA","toRGBA","q","hueToColor","updateColor","HSVtoRGB","color32","getColor32","componentToHex","hexToRGB","hexToColor","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","blendNormal","blendAverage","blendSubtract","blendNegation","blendLinearDodge","blendLinearBurn","blendLinearLight","blendVividLight","blendPinLight","blendHardMix","blendReflect","blendGlow","blendPhoenix","LinkedList","entity","arcade","ninja","chipmunk","matter","CHIPMUNK","MATTERJS","P2","Matter","startSystem","system","enableAABB","gravity","checkCollision","OVERLAP_BIAS","forceX","sortDirection","LEFT_RIGHT","skipQuadTree","_total","SORT_NONE","RIGHT_LEFT","TOP_BOTTOM","BOTTOM_TOP","updateMotion","velocityDelta","computeVelocity","angularVelocity","angularAcceleration","angularDrag","maxAngular","velocity","acceleration","drag","maxVelocity","allowGravity","object1","object2","overlapCallback","processCallback","collideHandler","collide","collideCallback","sortLeftRight","sortRightLeft","sortTopBottom","sortBottomTop","overlapOnly","collideGroupVsSelf","collideSpriteVsSprite","collideSpriteVsGroup","collideSpriteVsTilemapLayer","collideGroupVsGroup","collideGroupVsTilemapLayer","sprite1","sprite2","separate","items","group1","group2","body1","body2","separateX","separateY","immovable","maxOverlap","deltaAbsX","embedded","touching","none","overlapX","customSeparateX","bounce","moves","friction","nv1","mass","nv2","avg","deltaAbsY","overlapY","customSeparateY","getObjectsUnderPointer","getObjectsAtLocation","callbackArg","moveToObject","maxTime","distanceBetween","moveToPointer","angleToPointer","distanceToPointer","moveToXY","distanceToXY","velocityFromAngle","velocityFromRotation","accelerationFromRotation","accelerateToObject","xSpeedMax","ySpeedMax","accelerateToPointer","accelerateToXY","angleToXY","allowRotation","preRotation","newVelocity","deltaMax","facing","collideWorldBounds","any","wasTouching","blocked","tilePadding","syncBounds","_sx","_sy","updateBounds","asx","asy","check","onFloor","onWall","TilemapCollision","TILE_BIAS","tilemapLayer","getTiles","separateTile","tile","collisionCallback","collisionCallbackContext","faceLeft","faceRight","faceTop","faceBottom","tileCheckX","tileCheckY","collideRight","collideLeft","processTileSeparationX","collideDown","collideUp","processTileSeparationY","ImageCollection","firstgid","imageWidth","imageHeight","imageMargin","imageSpacing","images","containsImageIndex","imageIndex","gid","Tile","flipped","scanned","setCollisionCallback","setCollision","resetCollision","isInteresting","collides","faces","TilemapParser","version","widthInPixels","heightInPixels","tilesets","imagecollections","tiles","collideIndexes","collision","currentLayer","debugMap","_results","_tempA","NORTH","EAST","SOUTH","WEST","setTileSize","createBlankLayer","addTilesetImage","tileset","tileMargin","tileSpacing","getTilesetIndex","setImage","newSet","Tileset","countX","countY","columns","rows","createFromObjects","CustomClass","adjustY","found","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","map","renderSettings","enableScrollDelta","overdrawRatio","copyCanvas","debugSettings","missingImageFill","debuggedTileOverfill","forceFullRedraw","debugAlpha","facingEdgeStroke","collidingTileOverfill","scrollFactorX","scrollFactorY","rayStepRate","_wrap","_mc","renderWidth","renderHeight","_scrollX","_scrollY","ensureSharedCopyCanvas","sharedCopyCanvas","resizeWorld","_fixX","_unfixX","_fixY","_unfixY","getTileX","getTileY","getTileXY","getRayCastTiles","interestingFace","coord","fetchAll","wy","wx","resolveTileset","tileIndex","setIndex","containsTileIndex","resetTilesetCache","setScale","xScale","yScale","shiftCanvas","copyW","copyH","copyContext","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","flippedVal","tileproperties","tileProperties","updateTileData","imagewidth","imageheight","newCollection","polyline","polygon","ellipse","sid","drawCoords","coordIndex","setSpacing","rowCount","colCount","emitters","ID","minParticleSpeed","maxParticleSpeed","minParticleScale","maxParticleScale","minRotation","maxRotation","minParticleAlpha","maxParticleAlpha","particleClass","particleDrag","on","particleAnchor","emitX","emitY","particleBringToTop","particleSendToBack","_minParticleScale","_maxParticleScale","_quantity","_timer","_counter","_flowQuantity","_flowTotal","_explode","emitParticle","makeParticles","particle","rndKey","rndFrame","explode","flow","forceQuantity","setXSpeed","setYSpeed","setRotation","setAlpha","rate","tweenData","at","onAccess","onError","onTimeout","videoStream","isStreaming","retryLimit","retry","retryInterval","_retryID","_pending","_autoplay","_video","createVideoFromBlob","videoWidth","videoHeight","createVideoFromURL","snapshot","connectToMediaStream","stream","startMediaStream","captureAudio","removeVideoElement","setAttribute","getUserMediaTimeout","getUserMediaSuccess","getUserMediaError","mozSrcObject","createObjectURL","onloadeddata","checkStream","checkVideoProgress","change","playbackRate","setPause","setResume","playHandler","playing","ended","changeSource","grab","hasChildNodes","firstChild","removeAttribute"],"mappings":"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"} \ No newline at end of file diff --git a/build/custom/phaser-arcade-physics.min.js b/build/custom/phaser-arcade-physics.min.js index 98e2a1db5..3e63deb18 100644 --- a/build/custom/phaser-arcade-physics.min.js +++ b/build/custom/phaser-arcade-physics.min.js @@ -1,21 +1,21 @@ -/* Phaser v2.4.0 - http://phaser.io - @photonstorm - (c) 2015 Photon Storm Ltd. */ +/* Phaser v2.4.1 - http://phaser.io - @photonstorm - (c) 2015 Photon Storm Ltd. */ -var PIXI=function(){var a=this,b=b||{};return b.WEBGL_RENDERER=0,b.CANVAS_RENDERER=1,b.VERSION="v2.2.8",b._UID=0,"undefined"!=typeof Float32Array?(b.Float32Array=Float32Array,b.Uint16Array=Uint16Array,b.Uint32Array=Uint32Array,b.ArrayBuffer=ArrayBuffer):(b.Float32Array=Array,b.Uint16Array=Array),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.defaultRenderOptions={view:null,transparent:!1,antialias:!1,preserveDrawingBuffer:!1,resolution:1,clearBeforeRender:!0,autoResize:!1},b.DisplayObject=function(){this.position=new b.Point(0,0),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.renderable=!1,this.parent=null,this.stage=null,this.worldAlpha=1,this.worldTransform=new b.Matrix,this.worldPosition=new b.Point(0,0),this.worldScale=new b.Point(1,1),this.worldRotation=0,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,b.DisplayObject.prototype.destroy=function(){if(this.children){for(var a=this.children.length;a--;)this.children[a].destroy();this.children=[]}this.transformCallback=null,this.transformCallbackContext=null,this.hitArea=null,this.parent=null,this.stage=null,this.worldTransform=null,this.filterArea=null,this._bounds=null,this._currentBounds=null,this._mask=null,this.renderable=!1,this._destroyCachedSprite()},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;gj;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;for(var b=0;bi&&(i*=-1),0>l&&(l*=-1),q=i*e+m,o=i*d+m,r=l*g+n,p=l*f+n;else{var s=i*e+k*g+m,t=l*g+j*e+n,u=i*d+k*g+m,v=l*g+j*d+n,w=i*d+k*f+m,x=l*f+j*d+n,y=i*e+k*f+m,z=l*f+j*e+n;q=q>s?s:q,q=q>u?u:q,q=q>w?w:q,q=q>y?y:q,r=r>t?t:r,r=r>v?v:r,r=r>x?x:r,r=r>z?z:r,o=s>o?s:o,o=u>o?u:o,o=w>o?w:o,o=y>o?y:o,p=t>p?t:p,p=v>p?v:p,p=x>p?x:p,p=z>p?z:p}var A=this._bounds;return A.x=q,A.width=o-q,A.y=r,A.height=p-r,this._currentBounds=A,A},b.Sprite.prototype._renderWebGL=function(a,b){if(this.visible&&!(this.alpha<=0)&&this.renderable){var c=this.worldTransform;if(b&&(c=b),this._mask||this._filters){var d=a.spriteBatch;this._filters&&(d.flush(),a.filterManager.pushFilter(this._filterBlock)),this._mask&&(d.stop(),a.maskManager.pushMask(this.mask,a),d.start()),d.render(this);for(var e=0;e>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]},b.canUseNewCanvasBlendModes=function(){if(void 0===document)return!1;var a="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAQAAAABAQMAAADD8p2OAAAAA1BMVEX/",b="AAAACklEQVQI12NgAAAAAgAB4iG8MwAAAABJRU5ErkJggg==",c=new Image;c.src=a+"AP804Oa6"+b;var d=new Image;d.src=a+"/wCKxvRF"+b;var e=document.createElement("canvas");e.width=6,e.height=1;var f=e.getContext("2d");if(f.globalCompositeOperation="multiply",f.drawImage(c,0,0),f.drawImage(d,2,0),!f.getImageData(2,0,1,1))return!1;var g=f.getImageData(2,0,1,1).data;return 255===g[0]&&0===g[1]&&0===g[2]},b.getNextPowerOfTwo=function(a){if(a>0&&0===(a&a-1))return a;for(var b=1;a>b;)b<<=1;return b},b.isPowerOfTwo=function(a,b){return a>0&&0===(a&a-1)&&b>0&&0===(b&b-1)},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;Array.isArray(b)&&(d=b.join("\n"));var 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;"," vColor = vec4(aColor.rgb * aColor.a, aColor.a);","}"],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 float flipY;","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 * -flipY) + flipY , 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.flipY=a.getUniformLocation(c,"flipY"),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;","uniform float flipY;","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 * -flipY) + flipY , 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.flipY=a.getUniformLocation(c,"flipY"),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=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;gj;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;for(var b=0;bi&&(i*=-1),0>l&&(l*=-1),q=i*e+m,o=i*d+m,r=l*g+n,p=l*f+n;else{var s=i*e+k*g+m,t=l*g+j*e+n,u=i*d+k*g+m,v=l*g+j*d+n,w=i*d+k*f+m,x=l*f+j*d+n,y=i*e+k*f+m,z=l*f+j*e+n;q=q>s?s:q,q=q>u?u:q,q=q>w?w:q,q=q>y?y:q,r=r>t?t:r,r=r>v?v:r,r=r>x?x:r,r=r>z?z:r,o=s>o?s:o,o=u>o?u:o,o=w>o?w:o,o=y>o?y:o,p=t>p?t:p,p=v>p?v:p,p=x>p?x:p,p=z>p?z:p}var A=this._bounds;return A.x=q,A.width=o-q,A.y=r,A.height=p-r,this._currentBounds=A,A},b.Sprite.prototype._renderWebGL=function(a,b){if(this.visible&&!(this.alpha<=0)&&this.renderable){var c=this.worldTransform;if(b&&(c=b),this._mask||this._filters){var d=a.spriteBatch;this._filters&&(d.flush(),a.filterManager.pushFilter(this._filterBlock)),this._mask&&(d.stop(),a.maskManager.pushMask(this.mask,a),d.start()),d.render(this);for(var e=0;e>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]},b.canUseNewCanvasBlendModes=function(){if(void 0===document)return!1;var a="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAQAAAABAQMAAADD8p2OAAAAA1BMVEX/",b="AAAACklEQVQI12NgAAAAAgAB4iG8MwAAAABJRU5ErkJggg==",c=new Image;c.src=a+"AP804Oa6"+b;var d=new Image;d.src=a+"/wCKxvRF"+b;var e=document.createElement("canvas");e.width=6,e.height=1;var f=e.getContext("2d");if(f.globalCompositeOperation="multiply",f.drawImage(c,0,0),f.drawImage(d,2,0),!f.getImageData(2,0,1,1))return!1;var g=f.getImageData(2,0,1,1).data;return 255===g[0]&&0===g[1]&&0===g[2]},b.getNextPowerOfTwo=function(a){if(a>0&&0===(a&a-1))return a;for(var b=1;a>b;)b<<=1;return b},b.isPowerOfTwo=function(a,b){return a>0&&0===(a&a-1)&&b>0&&0===(b&b-1)},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;Array.isArray(b)&&(d=b.join("\n"));var 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;"," vColor = vec4(aColor.rgb * aColor.a, aColor.a);","}"],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 float flipY;","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 * -flipY) + flipY , 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.flipY=a.getUniformLocation(c,"flipY"),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;","uniform float flipY;","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 * -flipY) + flipY , 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.flipY=a.getUniformLocation(c,"flipY"),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.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=[]},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)void 0===d[e]&&(d[e]=b.defaultRenderOptions[e]);else d=b.defaultRenderOptions;b.defaultRenderer||(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._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&&(this.__stage=a),a.updateTransform();var b=this.gl;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,e){this.renderSession.blendModeManager.setBlendMode(b.blendModes.NORMAL),this.renderSession.drawCount=0,this.renderSession.flipY=d?-1:1,this.renderSession.projection=c,this.renderSession.offset=this.offset,this.spriteBatch.begin(this.renderSession),this.filterManager.begin(this.renderSession,d),a._renderWebGL(this.renderSession,e),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),a.mipmap&&b.isPowerOfTwo(a.width,a.height)?(c.texParameteri(c.TEXTURE_2D,c.TEXTURE_MIN_FILTER,a.scaleMode===b.scaleModes.LINEAR?c.LINEAR_MIPMAP_LINEAR:c.NEAREST_MIPMAP_NEAREST),c.generateMipmap(c.TEXTURE_2D)):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.destroy=function(){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.instances[this.glContextId]=null,b.WebGLRenderer.glContextId--},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.uniform1f(e.flipY,d.flipY),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.uniform1f(e.flipY,d.flipY),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,b){var c=a.texture,d=a.worldTransform;b&&(d=b),this.currentBatchSize>=this.size&&(this.flush(),this.currentBaseTexture=c.baseTexture);var e=c._uvs;if(e){var f,g,h,i,j=a.anchor.x,k=a.anchor.y;if(c.trim){var l=c.trim;g=l.x-j*l.width,f=g+c.crop.width,i=l.y-k*l.height,h=i+c.crop.height}else f=c.frame.width*(1-j),g=c.frame.width*-j,h=c.frame.height*(1-k),i=c.frame.height*-k;var m=4*this.currentBatchSize*this.vertSize,n=c.baseTexture.resolution,o=d.a/n,p=d.b/n,q=d.c/n,r=d.d/n,s=d.tx,t=d.ty,u=this.colors,v=this.positions;this.renderSession.roundPixels?(v[m]=o*g+q*i+s|0,v[m+1]=r*i+p*g+t|0,v[m+5]=o*f+q*i+s|0,v[m+6]=r*i+p*f+t|0,v[m+10]=o*f+q*h+s|0,v[m+11]=r*h+p*f+t|0,v[m+15]=o*g+q*h+s|0,v[m+16]=r*h+p*g+t|0):(v[m]=o*g+q*i+s,v[m+1]=r*i+p*g+t,v[m+5]=o*f+q*i+s,v[m+6]=r*i+p*f+t,v[m+10]=o*f+q*h+s,v[m+11]=r*h+p*f+t,v[m+15]=o*g+q*h+s,v[m+16]=r*h+p*g+t),v[m+2]=e.x0,v[m+3]=e.y0,v[m+7]=e.x1,v[m+8]=e.y1,v[m+12]=e.x2,v[m+13]=e.y2,v[m+17]=e.x3,v[m+18]=e.y3;var w=a.tint;u[m+4]=u[m+9]=u[m+14]=u[m+19]=(w>>16)+(65280&w)+((255&w)<<16)+(255*a.worldAlpha<<24),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,e=c.baseTexture.width,f=c.baseTexture.height;a.tilePosition.x%=e*a.tileScaleOffset.x,a.tilePosition.y%=f*a.tileScaleOffset.y;var g=a.tilePosition.x/(e*a.tileScaleOffset.x),h=a.tilePosition.y/(f*a.tileScaleOffset.y),i=a.width/e/(a.tileScale.x*a.tileScaleOffset.x),j=a.height/f/(a.tileScale.y*a.tileScaleOffset.y);d.x0=0-g,d.y0=0-h,d.x1=1*i-g,d.y1=0-h,d.x2=1*i-g,d.y2=1*j-h,d.x3=0-g,d.y3=1*j-h;var k=a.tint,l=(k>>16)+(65280&k)+((255&k)<<16)+(255*a.worldAlpha<<24),m=this.positions,n=this.colors,o=a.width,p=a.height,q=a.anchor.x,r=a.anchor.y,s=o*(1-q),t=o*-q,u=p*(1-r),v=p*-r,w=4*this.currentBatchSize*this.vertSize,x=c.baseTexture.resolution,y=a.worldTransform,z=y.a/x,A=y.b/x,B=y.c/x,C=y.d/x,D=y.tx,E=y.ty;m[w++]=z*t+B*v+D,m[w++]=C*v+A*t+E,m[w++]=d.x0,m[w++]=d.y0,n[w++]=l,m[w++]=z*s+B*v+D,m[w++]=C*v+A*s+E,m[w++]=d.x1,m[w++]=d.y1,n[w++]=l,m[w++]=z*s+B*u+D,m[w++]=C*u+A*s+E,m[w++]=d.x2,m[w++]=d.y2,n[w++]=l,m[w++]=z*t+B*u+D,m[w++]=C*u+A*t+E,m[w++]=d.x3,m[w++]=d.y3,n[w++]=l,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,4,c.UNSIGNED_BYTE,!0,d,16)}if(this.currentBatchSize>.5*this.size)c.bufferSubData(c.ARRAY_BUFFER,0,this.vertices);else{var e=this.positions.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.tilingTexture?i.tilingTexture.baseTexture: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;jB?B:A,c.beginPath(),c.moveTo(w,x+A),c.lineTo(w,x+z-A),c.quadraticCurveTo(w,x+z,w+A,x+z),c.lineTo(w+y-A,x+z),c.quadraticCurveTo(w+y,x+z,w+y,x+z-A),c.lineTo(w+y,x+A),c.quadraticCurveTo(w+y,x,w+y-A,x),c.lineTo(w+A,x),c.quadraticCurveTo(w,x,w,x+A),c.closePath(),(f.fillColor||0===f.fillColor)&&(c.globalAlpha=f.fillAlpha*d,c.fillStyle="#"+("00000"+(0|h).toString(16)).substr(-6),c.fill()),f.lineWidth&&(c.globalAlpha=f.lineAlpha*d,c.strokeStyle="#"+("00000"+(0|i).toString(16)).substr(-6),c.stroke())}}},b.CanvasGraphics.renderGraphicsMask=function(a,c){var d=a.graphicsData.length;if(0!==d){c.beginPath();for(var e=0;d>e;e++){var f=a.graphicsData[e],g=f.shape;if(f.type===b.Graphics.POLY){var h=g.points;c.moveTo(h[0],h[1]);for(var i=1;iz?z:y,c.moveTo(u,v+y),c.lineTo(u,v+x-y),c.quadraticCurveTo(u,v+x,u+y,v+x),c.lineTo(u+w-y,v+x),c.quadraticCurveTo(u+w,v+x,u+w,v+x-y),c.lineTo(u+w,v+y),c.quadraticCurveTo(u+w,v,u+w-y,v),c.lineTo(u+y,v),c.quadraticCurveTo(u,v,u,v+y),c.closePath()}}}},b.CanvasGraphics.updateGraphicsTint=function(a){if(16777215!==a.tint)for(var b=(a.tint>>16&255)/255,c=(a.tint>>8&255)/255,d=(255&a.tint)/255,e=0;e>16&255)/255*b*255<<16)+((g>>8&255)/255*c*255<<8)+(255&g)/255*d*255,f._lineTint=((h>>16&255)/255*b*255<<16)+((h>>8&255)/255*c*255<<8)+(255&h)/255*d*255}},b.BaseTextureCache={},b.BaseTextureCacheIdGenerator=0,b.BaseTexture=function(a,c){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.mipmap=!1,this._dirty=[!0,!0,!0,!0],a&&((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()),this.imageUrl=null,this._powerOf2=!1)},b.BaseTexture.prototype.constructor=b.BaseTexture,b.BaseTexture.prototype.forceLoaded=function(a,b){this.hasLoaded=!0,this.width=a,this.height=b,this.dirty()},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++),0===a.width&&(a.width=1),0===a.height&&(a.height=1);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.TextureSilentFail=!1,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.isTiling=!1,this.requiresUpdate=!1,this.requiresReTint=!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))},b.Texture.prototype.constructor=b.Texture,b.Texture.prototype.onBaseTextureLoaded=function(){var a=this.baseTexture;this.noFrame&&(this.frame=new b.Rectangle(0,0,a.width,a.height)),this.setFrame(this.frame)},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)){if(!b.TextureSilentFail)throw new Error("Texture Error: frame does not fit inside the base Texture dimensions "+this);return void(this.valid=!1)}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.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.resolution,this.height*this.resolution)),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.height,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.tempMatrix=new Phaser.Matrix,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=a,this.height=c,this.frame.width=this.crop.width=a*this.resolution,this.frame.height=this.crop.height=c*this.resolution,d&&(this.baseTexture.width=this.width*this.resolution,this.baseTexture.height=this.height*this.resolution),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.height))},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&&0!==a.alpha){var d=a.worldTransform;d.identity(),d.translate(0,2*this.projection.y),b&&d.append(b),d.scale(1,-1);for(var e=0;ea;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,b}.call(this);(function(){function a(a,b){this._scaleFactor=a,this._deltaMode=b,this.originalEvent=null}var b=this,c=c||{VERSION:"2.4.0",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,CIRCLE:21,RECTANGLE:22,LINE:23,MATRIX:24,POINT:25,ROUNDEDRECTANGLE:26,CREATURE:27,VIDEO:28,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:PIXI||{}};if(Math.trunc||(Math.trunc=function(a){return 0>a?Math.ceil(a):Math.floor(a)}),Function.prototype.bind||(Function.prototype.bind=function(){var a=Array.prototype.slice;return function(b){function c(){var f=e.concat(a.call(arguments));d.apply(this instanceof c?this:b,f)}var d=this,e=a.call(arguments,1);if("function"!=typeof d)throw new TypeError;return c.prototype=function f(a){return a&&(f.prototype=a),this instanceof f?void 0:new f}(d.prototype),c}}()),Array.isArray||(Array.isArray=function(a){return"[object Array]"==Object.prototype.toString.call(a)}),Array.prototype.forEach||(Array.prototype.forEach=function(a){"use strict";if(void 0===this||null===this)throw new TypeError;var b=Object(this),c=b.length>>>0;if("function"!=typeof a)throw new TypeError;for(var d=arguments.length>=2?arguments[1]:void 0,e=0;c>e;e++)e in b&&a.call(d,b[e],e,b)}),"function"!=typeof window.Uint32Array&&"object"!=typeof window.Uint32Array){var d=function(a){var b=new Array;window[a]=function(a){if("number"==typeof a){Array.call(this,a),this.length=a;for(var b=0;bf&&(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 void 0===a&&(a=50),a>0&&100*Math.random()<=a},randomChoice:function(a,b){return Math.random()<.5?a:b},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(void 0===b)var b=0;if(void 0===c)var c=" ";if(void 0===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},mixinPrototype:function(a,b,c){void 0===c&&(c=!1);for(var d=Object.keys(b),e=0;e0&&(this._radius=.5*d),this.type=c.CIRCLE},c.Circle.prototype={circumference:function(){return 2*Math.PI*this._radius},random:function(a){void 0===a&&(a=new c.Point);var b=2*Math.PI*Math.random(),d=Math.random()+Math.random(),e=d>1?2-d:d,f=e*Math.cos(b),g=e*Math.sin(b);return a.x=this.x+f*this.radius,a.y=this.y+g*this.radius,a},getBounds:function(){return new c.Rectangle(this.x-this.radius,this.y-this.radius,this.diameter,this.diameter)},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 void 0===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 void 0===d&&(d=!1),void 0===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.Ellipse=function(a,b,d,e){a=a||0,b=b||0,d=d||0,e=e||0,this.x=a,this.y=b,this.width=d,this.height=e,this.type=c.ELLIPSE},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 void 0===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)},random:function(a){void 0===a&&(a=new c.Point);var b=Math.random()*Math.PI*2,d=Math.random();return a.x=Math.sqrt(d)*Math.cos(b),a.y=Math.sqrt(d)*Math.sin(b),a.x=this.x+a.x*this.width/2,a.y=this.y+a.y*this.height/2,a},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},PIXI.Ellipse=c.Ellipse,c.Line=function(a,b,d,e){a=a||0,b=b||0,d=d||0,e=e||0,this.start=new c.Point(a,b),this.end=new c.Point(d,e),this.type=c.LINE},c.Line.prototype={setTo:function(a,b,c,d){return this.start.setTo(a,b),this.end.setTo(c,d),this},fromSprite:function(a,b,c){return void 0===c&&(c=!1),c?this.setTo(a.center.x,a.center.y,b.center.x,b.center.y):this.setTo(a.x,a.y,b.x,b.y)},fromAngle:function(a,b,c,d){return this.start.setTo(a,b),this.end.setTo(a+Math.cos(c)*d,b+Math.sin(c)*d),this},rotate:function(a,b){var c=this.start.x,d=this.start.y;return this.start.rotate(this.end.x,this.end.y,a,b,this.length),this.end.rotate(c,d,a,b,this.length),this},intersects:function(a,b,d){return c.Line.intersectsPoints(this.start,this.end,a.start,a.end,b,d)},reflect:function(a){return c.Line.reflect(this,a)},pointOnLine:function(a,b){return(a-this.start.x)*(this.end.y-this.start.y)===(this.end.x-this.start.x)*(b-this.start.y)},pointOnSegment:function(a,b){var c=Math.min(this.start.x,this.end.x),d=Math.max(this.start.x,this.end.x),e=Math.min(this.start.y,this.end.y),f=Math.max(this.start.y,this.end.y);return this.pointOnLine(a,b)&&a>=c&&d>=a&&b>=e&&f>=b},random:function(a){void 0===a&&(a=new c.Point);var b=Math.random();return a.x=this.start.x+b*(this.end.x-this.start.x),a.y=this.start.y+b*(this.end.y-this.start.y),a},coordinatesOnLine:function(a,b){void 0===a&&(a=1),void 0===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 void 0===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)}}),Object.defineProperty(c.Line.prototype,"normalX",{get:function(){return Math.cos(this.angle-1.5707963267948966)}}),Object.defineProperty(c.Line.prototype,"normalY",{get:function(){return Math.sin(this.angle-1.5707963267948966)}}),Object.defineProperty(c.Line.prototype,"normalAngle",{get:function(){return c.Math.wrap(this.angle-1.5707963267948966,-Math.PI,Math.PI)}}),c.Line.intersectsPoints=function(a,b,d,e,f,g){void 0===f&&(f=!0),void 0===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.Line.reflect=function(a,b){return 2*b.normalAngle-3.141592653589793-a.angle},c.Matrix=function(a,b,d,e,f,g){a=a||1,b=b||0,d=d||0,e=e||1,f=f||0,g=g||0,this.a=a,this.b=b,this.c=d,this.d=e,this.tx=f,this.ty=g,this.type=c.MATRIX},c.Matrix.prototype={fromArray:function(a){return this.setTo(a[0],a[1],a[3],a[4],a[2],a[5])},setTo:function(a,b,c,d,e,f){return this.a=a,this.b=b,this.c=c,this.d=d,this.tx=e,this.ty=f,this},clone:function(a){return void 0===a||null===a?a=new c.Matrix(this.a,this.b,this.c,this.d,this.tx,this.ty):(a.a=this.a,a.b=this.b,a.c=this.c,a.d=this.d,a.tx=this.tx,a.ty=this.ty),a},copyTo:function(a){return a.copyFrom(this),a},copyFrom:function(a){return this.a=a.a,this.b=a.b,this.c=a.c,this.d=a.d,this.tx=a.tx,this.ty=a.ty,this},toArray:function(a,b){return void 0===b&&(b=new PIXI.Float32Array(9)),a?(b[0]=this.a,b[1]=this.b,b[2]=0,b[3]=this.c,b[4]=this.d,b[5]=0,b[6]=this.tx,b[7]=this.ty,b[8]=1):(b[0]=this.a,b[1]=this.c,b[2]=this.tx,b[3]=this.b,b[4]=this.d,b[5]=this.ty,b[6]=0,b[7]=0,b[8]=1),b},apply:function(a,b){return void 0===b&&(b=new c.Point),b.x=this.a*a.x+this.c*a.y+this.tx,b.y=this.b*a.x+this.d*a.y+this.ty,b},applyInverse:function(a,b){void 0===b&&(b=new c.Point);var d=1/(this.a*this.d+this.c*-this.b),e=a.x,f=a.y;return b.x=this.d*d*e+-this.c*d*f+(this.ty*this.c-this.tx*this.d)*d,b.y=this.a*d*f+-this.b*d*e+(-this.ty*this.a+this.tx*this.b)*d,b},translate:function(a,b){return this.tx+=a,this.ty+=b,this},scale:function(a,b){return this.a*=a,this.d*=b,this.c*=a,this.b*=b,this.tx*=a,this.ty*=b,this},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},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},identity:function(){return this.setTo(1,0,0,1,0,0)}},c.identityMatrix=new c.Matrix,PIXI.Matrix=c.Matrix,PIXI.identityMatrix=c.identityMatrix,c.Point=function(a,b){a=a||0,b=b||0,this.x=a,this.y=b,this.type=c.POINT},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 void 0===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 void 0===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)},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 void 0===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 void 0===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 void 0===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 void 0===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.negative=function(a,b){return void 0===b&&(b=new c.Point),b.setTo(-a.x,-a.y)},c.Point.multiplyAdd=function(a,b,d,e){return void 0===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 void 0===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 void 0===b&&(b=new c.Point),b.setTo(-a.y,a.x)},c.Point.rperp=function(a,b){return void 0===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){void 0===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){void 0===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 void 0===b&&(b=new c.Point),b.setTo(-1*a.y,a.x)},c.Point.normalize=function(a,b){void 0===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){void 0===f&&(f=!1),void 0===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.x=b+g*Math.cos(h),a.y=d+g*Math.sin(h),a},c.Point.centroid=function(a,b){if(void 0===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.Polygon=function(){this.area=0,this._points=[],arguments.length>0&&this.setTo.apply(this,arguments),this.closed=!0,this.type=c.POLYGON},c.Polygon.prototype={toNumberArray:function(a){void 0===a&&(a=[]);for(var b=0;b=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,c=0,d=a.length;d>c;c++){if("number"==typeof a[c]){var e=new PIXI.Point(a[c],a[c+1]);c++}else var e=new PIXI.Point(a[c].x,a[c].y);this._points.push(e),e.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.Polygon=c.Polygon,c.Rectangle=function(a,b,d,e){a=a||0,b=b||0,d=d||0,e=e||0,this.x=a,this.y=b,this.width=d,this.height=e,this.type=c.RECTANGLE},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 void 0===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)},ceil:function(){this.x=Math.ceil(this.x),this.y=Math.ceil(this.y)},ceilAll:function(){this.x=Math.ceil(this.x),this.y=Math.ceil(this.y),this.width=Math.ceil(this.width),this.height=Math.ceil(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)},resize:function(a,b){return this.width=a,this.height=b,this},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){return c.Rectangle.intersects(this,a)},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)},random:function(a){return void 0===a&&(a=new c.Point),a.x=this.randomX,a.y=this.randomY,a},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,"bottomLeft",{get:function(){return new c.Point(this.x,this.bottom)},set:function(a){this.x=a.x,this.bottom=a.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 void 0===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 void 0===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 void 0===f&&(f=0),!(b>a.right+f||ca.bottom+f||ed&&(d=a.x),a.xf&&(f=a.y),a.y=c&&a<=c+this.width){var d=this.y;if(b>=d&&b<=d+this.height)return!0}return!1}},c.RoundedRectangle.prototype.constructor=c.RoundedRectangle,PIXI.RoundedRectangle=c.RoundedRectangle,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.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.displayObject=null,this.scale=null,this.totalInView=0,this._targetPosition=new c.Point,this._edge=0,this._position=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={preUpdate:function(){this.totalInView=0},follow:function(a,b){void 0===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),this.target.parent&&this._targetPosition.multiply(this.target.parent.worldTransform.a,this.target.parent.worldTransform.d),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.copyFrom(this.game.world.bounds)},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.Create=function(a){this.game=a,this.bmd=a.make.bitmapData(),this.canvas=this.bmd.canvas,this.ctx=this.bmd.context,this.palettes=[{0:"#000",1:"#9D9D9D",2:"#FFF",3:"#BE2633",4:"#E06F8B",5:"#493C2B",6:"#A46422",7:"#EB8931",8:"#F7E26B",9:"#2F484E",A:"#44891A",B:"#A3CE27",C:"#1B2632",D:"#005784",E:"#31A2F2",F:"#B2DCEF"},{0:"#000",1:"#191028",2:"#46af45",3:"#a1d685",4:"#453e78",5:"#7664fe",6:"#833129",7:"#9ec2e8",8:"#dc534b",9:"#e18d79",A:"#d6b97b",B:"#e9d8a1",C:"#216c4b",D:"#d365c8",E:"#afaab9",F:"#f5f4eb"},{0:"#000",1:"#2234d1",2:"#0c7e45",3:"#44aacc",4:"#8a3622",5:"#5c2e78",6:"#aa5c3d",7:"#b5b5b5",8:"#5e606e",9:"#4c81fb",A:"#6cd947",B:"#7be2f9",C:"#eb8a60",D:"#e23d69",E:"#ffd93f",F:"#fff"},{0:"#000",1:"#fff",2:"#8b4131",3:"#7bbdc5",4:"#8b41ac",5:"#6aac41",6:"#3931a4",7:"#d5de73",8:"#945a20",9:"#5a4100",A:"#bd736a",B:"#525252",C:"#838383",D:"#acee8b",E:"#7b73de",F:"#acacac"},{0:"#000",1:"#191028",2:"#46af45",3:"#a1d685",4:"#453e78",5:"#7664fe",6:"#833129",7:"#9ec2e8",8:"#dc534b",9:"#e18d79",A:"#d6b97b",B:"#e9d8a1",C:"#216c4b",D:"#d365c8",E:"#afaab9",F:"#fff"}]},c.Create.PALETTE_ARNE=0,c.Create.PALETTE_JMP=1,c.Create.PALETTE_CGA=2,c.Create.PALETTE_C64=3,c.Create.PALETTE_JAPANESE_MACHINE=4,c.Create.prototype={texture:function(a,b,c,d,e){void 0===c&&(c=8),void 0===d&&(d=c),void 0===e&&(e=0);var f=b[0].length*c,g=b.length*d;this.bmd.resize(f,g),this.bmd.clear();for(var h=0;hg;g+=e)this.ctx.fillRect(0,g,b,1);for(var h=0;b>h;h+=d)this.ctx.fillRect(h,0,1,c);return this.bmd.generateTexture(a)}},c.Create.prototype.constructor=c.Create,c.State=function(){this.game=null,this.key="",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={init:function(){},preload:function(){},loadUpdate:function(){},loadRender:function(){},create:function(){},update:function(){},preRender:function(){},render:function(){},resize:function(){},paused:function(){},resumed: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.onStateChange=new c.Signal,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),null!==this._pendingState&&"string"!=typeof this._pendingState&&this.add("default",this._pendingState,!0)},add:function(a,b,d){void 0===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.onPreRenderCallback=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){void 0===b&&(b=!0),void 0===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){void 0===a&&(a=!0),void 0===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){var a=this.current;if(this.clearCurrentState(),this.setCurrentState(this._pendingState),this.onStateChange.dispatch(this.current,a),this.current!==this._pendingState)return;this._pendingState=null,this.onPreloadCallback?(this.game.load.reset(!0),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||this.states[a].create||this.states[a].update||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,this.states[a].key=a},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&&this.game.physics.reset(),this.current=a,this._created=!1,this.onInitCallback.apply(this.callbackContext,this._args),a===this._pendingState&&(this._args=[]),this.game._kickstart=!0},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(a){this._created&&this.onPreRenderCallback&&this.onPreRenderCallback.call(this.callbackContext,this.game,a)},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.context.restore()):this.onRenderCallback.call(this.callbackContext,this.game)):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,this.current=""}},c.StateManager.prototype.constructor=c.StateManager,Object.defineProperty(c.StateManager.prototype,"created",{get:function(){return this._created}}),c.Signal=function(){},c.Signal.prototype={_bindings:null,_prevParams:null,memorize:!1,_shouldPropagate:!0,active:!0,_boundDispatch:!0,validateListener:function(a,b){if("function"!=typeof a)throw new Error("Phaser.Signal: listener is a required param of {fn}() and should be a Function.".replace("{fn}",b))},_registerListener:function(a,b,d,e,f){var g,h=this._indexOfListener(a,d);if(-1!==h){if(g=this._bindings[h],g.isOnce()!==b)throw new Error("You cannot add"+(b?"":"Once")+"() then add"+(b?"Once":"")+"() the same listener without removing the relationship first.")}else g=new c.SignalBinding(this,a,b,d,e,f),this._addBinding(g);return this.memorize&&this._prevParams&&g.execute(this._prevParams),g},_addBinding:function(a){this._bindings||(this._bindings=[]);var b=this._bindings.length;do b--;while(this._bindings[b]&&a._priority<=this._bindings[b]._priority);this._bindings.splice(b+1,0,a)},_indexOfListener:function(a,b){if(!this._bindings)return-1;void 0===b&&(b=null);for(var c,d=this._bindings.length;d--;)if(c=this._bindings[d],c._listener===a&&c.context===b)return d;return-1},has:function(a,b){return-1!==this._indexOfListener(a,b)},add:function(a,b,c){this.validateListener(a,"add");var d=[];if(arguments.length>3)for(var e=3;e3)for(var e=3;ea||a>=this.children.length?-1:this.getChildAt(a)},c.Group.prototype.create=function(a,b,c,d,e){void 0===e&&(e=!0);var f=new this.classType(this.game,a,b,c,d);return f.exists=e,f.visible=e,f.alive=e,this.addChild(f),f.z=this.children.length,this.enableBody&&this.game.physics.enable(f,this.physicsBodyType,this.enableBodyDebug),f.events&&f.events.onAddedToGroup$dispatch(f,this),null===this.cursor&&(this.cursor=f),f},c.Group.prototype.createMultiple=function(a,b,c,d){void 0===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 void 0===a&&(a=0),a>this.children.length-1&&(a=0),this.cursor?(this.cursorIndex=a,this.cursor=this.children[this.cursorIndex],this.cursor):void 0},c.Group.prototype.next=function(){return this.cursor?(this.cursorIndex>=this.children.length-1?this.cursorIndex=0:this.cursorIndex++,this.cursor=this.children[this.cursorIndex],this.cursor):void 0},c.Group.prototype.previous=function(){return this.cursor?(0===this.cursorIndex?this.cursorIndex=this.children.length-1:this.cursorIndex--,this.cursor=this.children[this.cursorIndex],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);return-1!==d?(b.parent&&(b.parent instanceof c.Group?b.parent.remove(b):b.parent.removeChild(b)),this.remove(a),this.addAt(b,d),a):void 0},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(void 0===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 void 0===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 void 0===g&&(g=!1),b=b.split("."),void 0===d&&(d=!1),void 0===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){void 0===c&&(c=!1),void 0===d&&(d=!1),void 0===f&&(f=!1),a=a.split("."),e=e||0;for(var g=0;g2){c=[];for(var d=2;d2){e=[];for(var f=2;f2){d=[null];for(var e=2;e2){d=[null];for(var e=2;e2){d=[null];for(var e=2;eb[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;for(var h=0,i=0;i0?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(void 0===b&&(b=!1),void 0===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.removeFromHash(a),this.updateZ(),this.cursor===a&&this.next(),b&&d&&d.destroy(!0),!0},c.Group.prototype.moveAll=function(a,b){if(void 0===b&&(b=!1),this.children.length>0&&a instanceof c.Group){do a.add(this.children[0],b);while(this.children.length>0);this.hash=[],this.cursor=null}return a},c.Group.prototype.removeAll=function(a,b){if(void 0===a&&(a=!1),void 0===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]);this.removeFromHash(c),a&&c&&c.destroy(!0)}while(this.children.length>0);this.hash=[],this.cursor=null}},c.Group.prototype.removeBetween=function(a,b,c,d){if(void 0===b&&(b=this.children.length-1),void 0===c&&(c=!1),void 0===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]);this.removeFromHash(f),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||(void 0===a&&(a=!0),void 0===b&&(b=!1),this.onDestroy.dispatch(this,a,b),this.removeAll(a),this.cursor=null,this.filters=null,this.pendingDestroy=!1,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)}}),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,this.game.state.onStateChange.add(this.stateChange,this)},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.stateChange=function(){this.x=0,this.y=0,this.camera.reset()},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.x=a,this.y=b,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,this.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();(f||g)&&(this.onResize&&this.onResize.call(this.onResizeContext,this,e),this.updateLayout(),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,Object.defineProperty(c.ScaleManager.prototype,"boundingParent",{get:function(){if(this.parentIsWindow||this.isFullScreen&&!this._createdFullScreenTarget)return null;var a=this.game.canvas&&this.game.canvas.parentNode;return a||null}}),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,"isGamePortrait",{get:function(){return this.height>this.width}}),Object.defineProperty(c.ScaleManager.prototype,"isGameLandscape",{get:function(){return this.width>this.height}}),c.Game=function(a,b,d,e,f,g,h,i){return this.id=c.GAMES.push(this)-1,this.config=null,this.physicsConfig=i,this.parent="",this.width=800,this.height=600,this.resolution=1,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.plugins=null,this.rnd=null,this.device=c.Device,this.camera=null,this.canvas=null,this.context=null,this.debug=null,this.particles=null,this.create=null,this.lockRender=!1,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.currentUpdateID=0,this.updatesThisFrame=1,this._deltaTime=0,this._lastCount=0,this._spiraling=0,this._kickstart=!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)),this.device.whenReady(this.boot,this),this},c.Game.prototype={parseConfig:function(a){this.config=a,void 0===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.resolution&&(this.resolution=a.resolution),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||(this.onPause=new c.Signal,this.onResume=new c.Signal,this.onBlur=new c.Signal,this.onFocus=new c.Signal,this.isBooted=!0,this.math=c.Math,this.scale=new c.ScaleManager(this,this._width,this._height),this.stage=new c.Stage(this),this.setUpRenderer(),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.create=new c.Create(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.debug={preUpdate:function(){},update:function(){},reset:function(){}},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._kickstart=!0,window.focus&&(!window.PhaserGlobal||window.PhaserGlobal&&!window.PhaserGlobal.stopFocus)&&window.focus(),this.raf.start())},showDebugHeader:function(){if(!window.PhaserGlobal||!window.PhaserGlobal.hideBanner){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: #9854d8","background: #6c2ca7","color: #ffffff; background: #450f78;","background: #6c2ca7","background: #9854d8","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:this.resolution,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:this.resolution,antialias:this.antialias,preserveDrawingBuffer:this.preserveDrawingBuffer}),this.context=null,this.canvas.addEventListener("webglcontextlost",this.contextLost.bind(this),!1),this.canvas.addEventListener("webglcontextrestored",this.contextRestored.bind(this),!1);this.renderType!==c.HEADLESS&&(this.stage.smoothed=this.antialias,c.Canvas.addToDOM(this.canvas,this.parent,!1),c.Canvas.setTouchAction(this.canvas))},contextLost:function(a){a.preventDefault(),this.renderer.contextLost=!0},contextRestored:function(){this.renderer.initContext(),this.cache.clearGLTextures(),this.renderer.contextLost=!1},update:function(a){if(this.time.update(a),this._kickstart)return this.updateLogic(1/this.time.desiredFps),this.stage.updateTransform(),this.updateRender(this.time.slowMotion*this.time.desiredFps),void(this._kickstart=!1);if(this._spiraling>1&&!this.forceSingleUpdate)this.time.time>this._nextFpsNotification&&(this._nextFpsNotification=this.time.time+1e4,this.fpsProblemNotifier.dispatch()),this._deltaTime=0,this._spiraling=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);var c=0;for(this.updatesThisFrame=Math.floor(this._deltaTime/b),this.forceSingleUpdate&&(this.updatesThisFrame=Math.min(1,this.updatesThisFrame));this._deltaTime>=b&&(this._deltaTime-=b,this.currentUpdateID=c,this.updateLogic(1/this.time.desiredFps),this.stage.updateTransform(),c++,!this.forceSingleUpdate||1!==c););c>this._lastCount?this._spiraling++:c=c.Input.MAX_POINTERS)return console.warn("Phaser.Input.addPointer: Maximum limit of "+c.Input.MAX_POINTERS+" pointers reached."),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&&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 a-b},getPointer:function(a){void 0===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._pollCounterthis.game.time.time},justReleased:function(a){return a=a||250,this.isUp&&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,this.altKey=!1,this.shiftKey=!1,this.ctrlKey=!1},destroy:function(){this.onDown.dispose(),this.onUp.dispose(),this.onFloat.dispose(),this.parent=null,this.game=null}},c.DeviceButton.prototype.constructor=c.DeviceButton,Object.defineProperty(c.DeviceButton.prototype,"duration",{get:function(){return this.isUp?-1:this.game.time.time-this.timeDown}}),c.Pointer=function(a,b){this.game=a,this.id=b,this.type=c.POINTER,this.exists=!0,this.identifier=0,this.pointerId=null,this.target=null,this.button=null,this.leftButton=new c.DeviceButton(this,c.Pointer.LEFT_BUTTON),this.middleButton=new c.DeviceButton(this,c.Pointer.MIDDLE_BUTTON),this.rightButton=new c.DeviceButton(this,c.Pointer.RIGHT_BUTTON),this.backButton=new c.DeviceButton(this,c.Pointer.BACK_BUTTON),this.forwardButton=new c.DeviceButton(this,c.Pointer.FORWARD_BUTTON),this.eraserButton=new c.DeviceButton(this,c.Pointer.ERASER_BUTTON),this._holdSent=!1,this._history=[],this._nextDrop=0,this._stateReset=!1,this.withinGame=!1,this.clientX=-1,this.clientY=-1,this.pageX=-1,this.pageY=-1,this.screenX=-1,this.screenY=-1,this.rawMovementX=0,this.rawMovementY=0,this.movementX=0,this.movementY=0,this.x=-1,this.y=-1,this.isMouse=0===b,this.isDown=!1,this.isUp=!0,this.timeDown=0,this.timeUp=0,this.previousTapTime=0,this.totalTouches=0,this.msSinceLastClick=Number.MAX_VALUE,this.targetObject=null,this.active=!1,this.dirty=!1,this.position=new c.Point,this.positionDown=new c.Point,this.positionUp=new c.Point,this.circle=new c.Circle(0,0,44),this._clickTrampolines=null,this._trampolineTargetObject=null},c.Pointer.NO_BUTTON=0,c.Pointer.LEFT_BUTTON=1,c.Pointer.RIGHT_BUTTON=2,c.Pointer.MIDDLE_BUTTON=4,c.Pointer.BACK_BUTTON=8,c.Pointer.FORWARD_BUTTON=16,c.Pointer.ERASER_BUTTON=32,c.Pointer.prototype={resetButtons:function(){this.isDown=!1,this.isUp=!0,this.isMouse&&(this.leftButton.reset(),this.middleButton.reset(),this.rightButton.reset(),this.backButton.reset(),this.forwardButton.reset(),this.eraserButton.reset())},updateButtons:function(a){this.button=a.button;var b=a.buttons;void 0!==b&&(c.Pointer.LEFT_BUTTON&b?this.leftButton.start(a):this.leftButton.stop(a),c.Pointer.RIGHT_BUTTON&b?this.rightButton.start(a):this.rightButton.stop(a),c.Pointer.MIDDLE_BUTTON&b?this.middleButton.start(a):this.middleButton.stop(a),c.Pointer.BACK_BUTTON&b?this.backButton.start(a):this.backButton.stop(a),c.Pointer.FORWARD_BUTTON&b?this.forwardButton.start(a):this.forwardButton.stop(a),c.Pointer.ERASER_BUTTON&b?this.eraserButton.start(a):this.eraserButton.stop(a),a.ctrlKey&&this.leftButton.isDown&&this.rightButton.start(a),this.isUp=!0,this.isDown=!1,(this.leftButton.isDown||this.rightButton.isDown||this.middleButton.isDown||this.backButton.isDown||this.forwardButton.isDown||this.eraserButton.isDown)&&(this.isUp=!1,this.isDown=!0))},start:function(a){return a.pointerId&&(this.pointerId=a.pointerId),this.identifier=a.identifier,this.target=a.target,this.isMouse?this.updateButtons(a):(this.isDown=!0,this.isUp=!1),this._history=[],this.active=!0,this.withinGame=!0,this.dirty=!1,this._clickTrampolines=null,this._trampolineTargetObject=null,this.msSinceLastClick=this.game.time.time-this.timeDown,this.timeDown=this.game.time.time,this._holdSent=!1,this.move(a,!0),this.positionDown.setTo(this.x,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.totalActivePointers)&&(this.game.input.x=this.x,this.game.input.y=this.y,this.game.input.position.setTo(this.x,this.y),this.game.input.onDown.dispatch(this,a),this.game.input.resetSpeed(this.x,this.y)),this._stateReset=!1,this.totalTouches++,null!==this.targetObject&&this.targetObject._touchedHandler(this),this},update:function(){this.active&&(this.dirty&&(this.game.input.interactiveItems.total>0&&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.totalActivePointers)&&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(void 0===b&&(b=!1),void 0!==a.button&&(this.button=a.button),b&&this.updateButtons(a),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.totalActivePointers)&&(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.renderOrderID,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.renderOrderID,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&&this.withinGame?void a.preventDefault():(this.isMouse?this.updateButtons(a):(this.isDown=!1,this.isUp=!0),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.totalActivePointers)&&(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.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&&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;fd;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}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 void 0===c&&(c=!0),0===this.sprite.scale.x||0===this.sprite.scale.y||this.priorityIDa||this.priorityID===a&&this.sprite.renderOrderIDb;b++)if(this._pointerData[b].isOver)return!0}return!1},pointerOut:function(a){if(this.enabled){if(void 0!==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)?(void 0===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)?(void 0===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&&this._pointerData[a.id].isOver){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.snapPoint.set(this.sprite.cameraOffset.x,this.sprite.cameraOffset.y))):(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,this.snapPoint.set(this.sprite.x,this.sprite.y))),this.sprite.events.onDragUpdate.dispatch(this.sprite,a,b,c,this.snapPoint),!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){var b=this.sprite.x,c=this.sprite.y;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 d=this.sprite.getBounds();this.sprite.x=this.globalToLocalX(a.x)+(this.sprite.x-d.centerX),this.sprite.y=this.globalToLocalY(a.y)+(this.sprite.y-d.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.dragStartPoint.set(b,c),this.sprite.events.onDragStart$dispatch(this.sprite,a,b,c)},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){void 0===a&&(a=!0),void 0===b&&(b=!0),this.allowHorizontalDrag=a,this.allowVerticalDrag=b},enableSnap:function(a,b,c,d,e,f){void 0===c&&(c=!0),void 0===d&&(d=!1),void 0===e&&(e=0),void 0===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.leftthis.boundsRect.right&&(this.sprite.x=this.boundsRect.right-(this.sprite.width-this.sprite.offsetX)),this.sprite.topthis.boundsRect.bottom&&(this.sprite.y=this.boundsRect.bottom-(this.sprite.height-this.sprite.offsetY)))},checkBoundsSprite:function(){this.sprite.fixedToCamera&&this.boundsSprite.fixedToCamera?(this.sprite.cameraOffset.xthis.boundsSprite.cameraOffset.x+this.boundsSprite.width&&(this.sprite.cameraOffset.x=this.boundsSprite.cameraOffset.x+this.boundsSprite.width-this.sprite.width),this.sprite.cameraOffset.ythis.boundsSprite.cameraOffset.y+this.boundsSprite.height&&(this.sprite.cameraOffset.y=this.boundsSprite.cameraOffset.y+this.boundsSprite.height-this.sprite.height)):(this.sprite.leftthis.boundsSprite.right&&(this.sprite.x=this.boundsSprite.right-(this.sprite.width-this.sprite.offsetX)),this.sprite.topthis.boundsSprite.bottom&&(this.sprite.y=this.boundsSprite.bottom-(this.sprite.height-this.sprite.offsetY)))}},c.InputHandler.prototype.constructor=c.InputHandler,c.Gamepad=function(a){this.game=a,this._gamepadIndexMap={},this._rawPads=[],this._active=!1,this.enabled=!0,this._gamepadSupportAvailable=!!navigator.webkitGetGamepads||!!navigator.webkitGamepads||-1!=navigator.userAgent.indexOf("Firefox/")||!!navigator.getGamepads,this._prevRawGamepadTypes=[],this._prevTimestamps=[],this.callbackContext=this,this.onConnectCallback=null,this.onDisconnectCallback=null,this.onDownCallback=null,this.onUpCallback=null,this.onAxisCallback=null,this.onFloatCallback=null,this._ongamepadconnected=null,this._gamepaddisconnected=null,this._gamepads=[new c.SinglePad(a,this),new c.SinglePad(a,this),new c.SinglePad(a,this),new c.SinglePad(a,this)]},c.Gamepad.prototype={addCallbacks:function(a,b){"undefined"!=typeof b&&(this.onConnectCallback="function"==typeof b.onConnect?b.onConnect:this.onConnectCallback,this.onDisconnectCallback="function"==typeof b.onDisconnect?b.onDisconnect:this.onDisconnectCallback,this.onDownCallback="function"==typeof b.onDown?b.onDown:this.onDownCallback,this.onUpCallback="function"==typeof b.onUp?b.onUp:this.onUpCallback,this.onAxisCallback="function"==typeof b.onAxis?b.onAxis:this.onAxisCallback,this.onFloatCallback="function"==typeof b.onFloat?b.onFloat:this.onFloatCallback,this.callbackContext=a)},start:function(){if(!this._active){this._active=!0;var a=this;this._onGamepadConnected=function(b){return a.onGamepadConnected(b)},this._onGamepadDisconnected=function(b){return a.onGamepadDisconnected(b)},window.addEventListener("gamepadconnected",this._onGamepadConnected,!1),window.addEventListener("gamepaddisconnected",this._onGamepadDisconnected,!1)}},onGamepadConnected:function(a){var b=a.gamepad;this._rawPads.push(b),this._gamepads[b.index].connect(b)},onGamepadDisconnected:function(a){var b=a.gamepad;for(var c in this._rawPads)this._rawPads[c].index===b.index&&this._rawPads.splice(c,1);this._gamepads[b.index].disconnect()},update:function(){this._pollGamepads(),this.pad1.pollStatus(),this.pad2.pollStatus(),this.pad3.pollStatus(),this.pad4.pollStatus()},_pollGamepads:function(){if(navigator.getGamepads)var a=navigator.getGamepads();else if(navigator.webkitGetGamepads)var a=navigator.webkitGetGamepads();else if(navigator.webkitGamepads)var a=navigator.webkitGamepads();if(a){this._rawPads=[];for(var b=!1,c=0;c0&&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.maxHealth&&(this.health=this.maxHealth)),this}},c.Component.InCamera=function(){},c.Component.InCamera.prototype={inCamera:{get:function(){return this.game.world.camera.view.intersects(this._bounds)}}},c.Component.InputEnabled=function(){},c.Component.InputEnabled.prototype={input:null,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()}}},c.Component.InWorld=function(){},c.Component.InWorld.preUpdate=function(){if((this.autoCull||this.checkWorldBounds)&&(this._bounds.copyFrom(this.getBounds()),this._bounds.x+=this.game.camera.view.x,this._bounds.y+=this.game.camera.view.y,this.autoCull&&(this.game.world.camera.view.intersects(this._bounds)?(this.renderable=!0,this.game.world.camera.totalInView++):this.renderable=!1),this.checkWorldBounds))if(this._outOfBoundsFired&&this.game.world.bounds.intersects(this._bounds))this._outOfBoundsFired=!1,this.events.onEnterBounds$dispatch(this);else if(!this._outOfBoundsFired&&!this.game.world.bounds.intersects(this._bounds)&&(this._outOfBoundsFired=!0,this.events.onOutOfBounds$dispatch(this),this.outOfBoundsKill))return this.kill(),!1;return!0},c.Component.InWorld.prototype={checkWorldBounds:!1,outOfBoundsKill:!1,_outOfBoundsFired:!1,inWorld:{get:function(){return this.game.world.bounds.intersects(this.getBounds())}}},c.Component.LifeSpan=function(){},c.Component.LifeSpan.preUpdate=function(){return this.lifespan>0&&(this.lifespan-=this.game.time.physicsElapsedMS,this.lifespan<=0)?(this.kill(),!1):!0},c.Component.LifeSpan.prototype={alive:!0,lifespan:0,revive:function(a){return void 0===a&&(a=1),this.alive=!0,this.exists=!0,this.visible=!0,"number"==typeof this.health&&(this.health=a),this.events&&this.events.onRevived$dispatch(this),this},kill:function(){return this.alive=!1,this.exists=!1,this.visible=!1,this.events&&this.events.onKilled$dispatch(this),this}},c.Component.LoadTexture=function(){},c.Component.LoadTexture.prototype={customRender:!1,_frame:null,loadTexture:function(a,b,d){b=b||0,(d||void 0===d)&&this.animations&&this.animations.stop(),this.key=a,this.customRender=!1;var e=this.game.cache,f=!0,g=!this.texture.baseTexture.scaleMode;if(c.RenderTexture&&a instanceof c.RenderTexture)this.key=a.key,this.setTexture(a);else if(c.BitmapData&&a instanceof c.BitmapData)this.customRender=!0,this.setTexture(a.texture),e.hasFrameData(a.key,c.Cache.BITMAPDATA)&&(f=!this.animations.loadFrameData(e.getFrameData(a.key,c.Cache.BITMAPDATA),b));else if(c.Video&&a instanceof c.Video){this.customRender=!0;var h=a.texture.valid;this.setTexture(a.texture),this.setFrame(a.texture.frame.clone()),a.onChangeSource.add(this.resizeFrame,this),this.texture.valid=h}else if(a instanceof PIXI.Texture)this.setTexture(a);else{var i=e.getImage(a,!0);this.key=i.key,this.setTexture(new PIXI.Texture(i.base)),f=!this.animations.loadFrameData(i.frameData,b)}f&&(this._frame=c.Rectangle.clone(this.texture.frame)),g||(this.texture.baseTexture.scaleMode=1)},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.requiresReTint=!0,this.texture._updateUvs(),this.tilingTexture&&(this.refreshTexture=!0)},resizeFrame:function(a,b,c){this.texture.frame.resize(b,c),this.texture.setFrame(this.texture.frame)},resetFrame:function(){this._frame&&this.setFrame(this._frame)},frame:{get:function(){return this.animations.frame},set:function(a){this.animations.frame=a}},frameName:{get:function(){return this.animations.frameName},set:function(a){this.animations.frameName=a}}},c.Component.Overlap=function(){},c.Component.Overlap.prototype={overlap:function(a){return c.Rectangle.intersects(this.getBounds(),a.getBounds())}},c.Component.PhysicsBody=function(){},c.Component.PhysicsBody.preUpdate=function(){return this.fresh&&this.exists?(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.previousPosition.set(this.world.x,this.world.y),this.previousRotation=this.rotation,this.body&&this.body.preUpdate(),this.fresh=!1,!1):(this.previousPosition.set(this.world.x,this.world.y),this.previousRotation=this.rotation,this._exists&&this.parent.exists?!0:(this.renderOrderID=-1,!1))},c.Component.PhysicsBody.postUpdate=function(){this.exists&&this.body&&this.body.postUpdate()},c.Component.PhysicsBody.prototype={body:null,x:{get:function(){return this.position.x},set:function(a){this.position.x=a,this.body&&!this.body.dirty&&(this.body._reset=!0)}},y:{get:function(){return this.position.y},set:function(a){this.position.y=a,this.body&&!this.body.dirty&&(this.body._reset=!0)}}},c.Component.Reset=function(){},c.Component.Reset.prototype.reset=function(a,b,c){return void 0===c&&(c=1),this.world.set(a,b),this.position.set(a,b),this.fresh=!0,this.exists=!0,this.visible=!0,this.renderable=!0,this.components.InWorld&&(this._outOfBoundsFired=!1),this.components.LifeSpan&&(this.alive=!0,this.health=c),this.components.PhysicsBody&&this.body&&this.body.reset(a,b,!1,!1),this},c.Component.ScaleMinMax=function(){},c.Component.ScaleMinMax.prototype={transformCallback:this.checkTransform,transformCallbackContext:this,scaleMin:null,scaleMax:null,checkTransform:function(a){this.scaleMin&&(a.athis.scaleMax.x&&(a.a=this.scaleMax.x),a.d>this.scaleMax.y&&(a.d=this.scaleMax.y))},setScaleMinMax:function(a,b,d,e){void 0===b?b=d=e=a:void 0===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)}},c.Component.Smoothed=function(){},c.Component.Smoothed.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)}}},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 void 0===f&&(f=this.world),f.add(new c.Image(this.game,a,b,d,e))},sprite:function(a,b,c,d,e){return void 0===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 void 0===a&&(a=null),void 0===b&&(b="group"),void 0===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 void 0===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 void 0===g&&(g=this.world),g.add(new c.Rope(this.game,a,b,d,e,f))},text:function(a,b,d,e,f){return void 0===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 void 0===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 void 0===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 void 0===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){(void 0===d||""===d)&&(d=this.game.rnd.uuid()),void 0===e&&(e=!1);var f=new c.RenderTexture(this.game,a,b,d);return e&&this.game.cache.addRenderTexture(d,f),f},video:function(a,b){return new c.Video(this.game,a,b)},bitmapData:function(a,b,d,e){void 0===e&&(e=!1),(void 0===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,this.game.tweens)},group:function(a,b,d,e,f){return new c.Group(this.game,a,b,d,e,f)},spriteBatch:function(a,b,d){return void 0===b&&(b="group"),void 0===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,g){return new c.BitmapText(this.game,a,b,d,e,f,g)},tilemap:function(a,b,d,e,f){return new c.Tilemap(this.game,a,b,d,e,f)},renderTexture:function(a,b,d,e){(void 0===d||""===d)&&(d=this.game.rnd.uuid()),void 0===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){void 0===e&&(e=!1),(void 0===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.Sprite=function(a,b,d,e,f){b=b||0,d=d||0,e=e||null,f=f||null,this.type=c.SPRITE,this.physicsType=c.SPRITE,PIXI.Sprite.call(this,PIXI.TextureCache.__default),c.Component.Core.init.call(this,a,b,d,e,f)},c.Sprite.prototype=Object.create(PIXI.Sprite.prototype),c.Sprite.prototype.constructor=c.Sprite,c.Component.Core.install.call(c.Sprite.prototype,["Angle","Animation","AutoCull","Bounds","BringToTop","Crop","Delta","Destroy","FixedToCamera","Health","InCamera","InputEnabled","InWorld","LifeSpan","LoadTexture","Overlap","PhysicsBody","Reset","ScaleMinMax","Smoothed"]),c.Sprite.prototype.preUpdatePhysics=c.Component.PhysicsBody.preUpdate,c.Sprite.prototype.preUpdateLifeSpan=c.Component.LifeSpan.preUpdate,c.Sprite.prototype.preUpdateInWorld=c.Component.InWorld.preUpdate,c.Sprite.prototype.preUpdateCore=c.Component.Core.preUpdate,c.Sprite.prototype.preUpdate=function(){return this.preUpdatePhysics()&&this.preUpdateLifeSpan()&&this.preUpdateInWorld()?this.preUpdateCore():!1},c.Image=function(a,b,d,e,f){b=b||0,d=d||0,e=e||null,f=f||null,this.type=c.IMAGE,PIXI.Sprite.call(this,PIXI.TextureCache.__default),c.Component.Core.init.call(this,a,b,d,e,f)},c.Image.prototype=Object.create(PIXI.Sprite.prototype),c.Image.prototype.constructor=c.Image,c.Component.Core.install.call(c.Image.prototype,["Angle","Animation","AutoCull","Bounds","BringToTop","Crop","Destroy","FixedToCamera","InputEnabled","LifeSpan","LoadTexture","Overlap","Reset","Smoothed"]),c.Image.prototype.preUpdateInWorld=c.Component.InWorld.preUpdate,c.Image.prototype.preUpdateCore=c.Component.Core.preUpdate,c.Image.prototype.preUpdate=function(){return this.preUpdateInWorld()?this.preUpdateCore():!1},c.TileSprite=function(a,b,d,e,f,g,h){b=b||0,d=d||0,e=e||256,f=f||256,g=g||null,h=h||null,this.type=c.TILESPRITE,this.physicsType=c.SPRITE,this._scroll=new c.Point;var i=a.cache.getImage("__default",!0);PIXI.TilingSprite.call(this,new PIXI.Texture(i.base),e,f),c.Component.Core.init.call(this,a,b,d,g,h)},c.TileSprite.prototype=Object.create(PIXI.TilingSprite.prototype),c.TileSprite.prototype.constructor=c.TileSprite,c.Component.Core.install.call(c.TileSprite.prototype,["Angle","Animation","AutoCull","Bounds","BringToTop","Destroy","FixedToCamera","Health","InCamera","InputEnabled","InWorld","LifeSpan","LoadTexture","Overlap","PhysicsBody","Reset","Smoothed"]),c.TileSprite.prototype.preUpdatePhysics=c.Component.PhysicsBody.preUpdate,c.TileSprite.prototype.preUpdateLifeSpan=c.Component.LifeSpan.preUpdate,c.TileSprite.prototype.preUpdateInWorld=c.Component.InWorld.preUpdate,c.TileSprite.prototype.preUpdateCore=c.Component.Core.preUpdate,c.TileSprite.prototype.preUpdate=function(){return 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.preUpdatePhysics()&&this.preUpdateLifeSpan()&&this.preUpdateInWorld()?this.preUpdateCore():!1},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.destroy=function(a){c.Component.Destroy.prototype.destroy.call(this,a),PIXI.TilingSprite.prototype.destroy.call(this)},c.TileSprite.prototype.reset=function(a,b){return c.Component.Reset.prototype.reset.call(this,a,b),this.tilePosition.x=0,this.tilePosition.y=0,this},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.type=c.ROPE,this._scroll=new c.Point,PIXI.Rope.call(this,PIXI.TextureCache.__default,this.points),c.Component.Core.init.call(this,a,b,d,e,f)},c.Rope.prototype=Object.create(PIXI.Rope.prototype),c.Rope.prototype.constructor=c.Rope,c.Component.Core.install.call(c.Rope.prototype,["Angle","Animation","AutoCull","Bounds","BringToTop","Crop","Delta","Destroy","FixedToCamera","InputEnabled","InWorld","LifeSpan","LoadTexture","Overlap","PhysicsBody","Reset","ScaleMinMax","Smoothed"]),c.Rope.prototype.preUpdatePhysics=c.Component.PhysicsBody.preUpdate,c.Rope.prototype.preUpdateLifeSpan=c.Component.LifeSpan.preUpdate,c.Rope.prototype.preUpdateInWorld=c.Component.InWorld.preUpdate,c.Rope.prototype.preUpdateCore=c.Component.Core.preUpdate,c.Rope.prototype.preUpdate=function(){return 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.preUpdatePhysics()&&this.preUpdateLifeSpan()&&this.preUpdateInWorld()?this.preUpdateCore():!1},c.Rope.prototype.update=function(){this._hasUpdateAnimation&&this.updateAnimation.call(this)},c.Rope.prototype.reset=function(a,b){return c.Component.Reset.prototype.reset.call(this,a,b),this.tilePosition.x=0,this.tilePosition.y=0,this},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=Math.abs(a);var f=this.width-a;c.drawImage(e,0,0,a,d,f,0,a,d),c.drawImage(e,a,0,f,d,0,0,f,d)}else{var f=this.width-a;c.drawImage(e,f,0,a,d,0,0,a,d),c.drawImage(e,0,0,f,d,a,0,f,d)}return this.clear(),this.copy(this._swapCanvas)},moveV:function(a){var b=this._swapCanvas,c=b.getContext("2d"),d=this.width,e=this.canvas;if(c.clearRect(0,0,this.width,this.height),0>a){a=Math.abs(a);var f=this.height-a;c.drawImage(e,0,0,d,a,0,f,d,a),c.drawImage(e,0,a,d,f,0,0,d,f)}else{var f=this.height-a;c.drawImage(e,0,f,d,a,0,0,d,a),c.drawImage(e,0,0,d,f,0,a,d,f) -}return this.clear(),this.copy(this._swapCanvas)},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){void 0===c&&(c=0),void 0===d&&(d=0),void 0===e&&(e=this.width),void 0===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((void 0===a||null===a)&&(a=!1),(void 0===b||null===b)&&(b=!1),(void 0===d||null===d)&&(d=!1),a||b||d){void 0===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){void 0===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 void 0===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((void 0===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,(void 0===g||null===g)&&(g=a.x),(void 0===h||null===h)&&(h=a.y),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(void 0===b||null===b)&&(b=0),(void 0===d||null===d)&&(d=0),e&&(this._size.x=e),f&&(this._size.y=f),(void 0===g||null===g)&&(g=b),(void 0===h||null===h)&&(h=d),(void 0===i||null===i)&&(i=this._size.x),(void 0===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),void 0===q&&(q=null),void 0===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)},drawGroup:function(a,b,c){return a.total>0&&a.forEachExists(this.copy,this,null,null,null,null,null,null,null,null,null,null,null,null,null,null,b,c),this},shadow:function(a,b,c,d){void 0===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 void 0===d||null===d?this.draw(b).blendSourceAtop():this.draw(b,d.x,d.y,d.width,d.height).blendSourceAtop(),void 0===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 void 0===e&&(e=255),void 0===f&&(f=!1),void 0===g&&(g=b),void 0===h&&(h=c),void 0===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},text:function(a,b,c,d,e,f){void 0===b&&(b=0),void 0===c&&(c=0),void 0===d&&(d="14px Courier"),void 0===e&&(e="rgb(255,255,255)"),void 0===f&&(f=!0);var g=this.context.font;this.context.font=d,f&&(this.context.fillStyle="rgb(0,0,0)",this.context.fillText(a,b+1,c+1)),this.context.fillStyle=e,this.context.fillText(a,b,c),this.context.font=g},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(void 0===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,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,PIXI.Graphics.prototype.lineStyle=function(a,b,c){return this.lineWidth=a||0,this.lineColor=b||0,this.lineAlpha=void 0===c?1:c,this.currentPath&&(this.currentPath.shape.points.length?this.drawShape(new PIXI.Polygon(this.currentPath.shape.points.slice(-2))):(this.currentPath.lineWidth=this.lineWidth,this.currentPath.lineColor=this.lineColor,this.currentPath.lineAlpha=this.lineAlpha)),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||this.moveTo(0,0),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){if(d===e)return this;void 0===f&&(f=!1),!f&&d>=e?e+=2*Math.PI:f&&e>=d&&(d+=2*Math.PI);var g=f?-1*(d-e):e-d,h=40*Math.ceil(Math.abs(g)/(2*Math.PI));if(0===g)return this;var i=a+Math.cos(d)*c,j=b+Math.sin(d)*c;f&&this.filling?this.moveTo(a,b):this.moveTo(i,j);for(var k=this.currentPath.shape.points,l=g/(2*h),m=2*l,n=Math.cos(l),o=Math.sin(l),p=h-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);k.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){(a instanceof c.Polygon||a instanceof PIXI.Polygon)&&(a=a.points);var b=a;if(!Array.isArray(b)){b=new Array(arguments.length);for(var d=0;dp?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._currentBounds=this._bounds}return this._currentBounds},PIXI.Graphics.prototype.containsPoint=function(a){this.worldTransform.applyInverse(a,tempPoint);for(var b=this.graphicsData,c=0;ch?h:a,b=h+j>b?h+j:b,d=d>i?i:d,e=i+k>e?i+k:e;else if(n===PIXI.Graphics.CIRC)h=f.x,i=f.y,j=f.radius+o/2,k=f.radius+o/2,a=a>h-j?h-j:a,b=h+j>b?h+j:b,d=d>i-k?i-k:d,e=i+k>e?i+k:e;else if(n===PIXI.Graphics.ELIP)h=f.x,i=f.y,j=f.width+o/2,k=f.height+o/2,a=a>h-j?h-j:a,b=h+j>b?h+j:b,d=d>i-k?i-k:d,e=i+k>e?i+k:e;else{g=f.points;for(var p=0;ph-o?h-o:a,b=h+o>b?h+o:b,d=d>i-o?i-o:d,e=i+o>e?i+o:e}}else a=0,b=0,d=0,e=0;var q=this.boundsPadding;this._localBounds.x=a-q,this._localBounds.width=b-a+2*q,this._localBounds.y=d-q,this._localBounds.height=e-d+2*q},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,a instanceof c.Polygon&&(a=a.clone(),a.flatten());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},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.GraphicsData=function(a,b,c,d,e,f,g){this.lineWidth=a,this.lineColor=b,this.lineAlpha=c,this._lineTint=b,this.fillColor=d,this.fillAlpha=e,this._fillTint=d,this.fill=f,this.shape=g,this.type=g.type},PIXI.GraphicsData.prototype.constructor=PIXI.GraphicsData,PIXI.GraphicsData.prototype.clone=function(){return new GraphicsData(this.lineWidth,this.lineColor,this.lineAlpha,this.fillColor,this.fillAlpha,this.fill,this.shape)},c.Graphics=function(a,b,d){void 0===b&&(b=0),void 0===d&&(d=0),this.type=c.GRAPHICS,this.physicsType=c.SPRITE,PIXI.Graphics.call(this),c.Component.Core.init.call(this,a,b,d,"",null)},c.Graphics.prototype=Object.create(PIXI.Graphics.prototype),c.Graphics.prototype.constructor=c.Graphics,c.Component.Core.install.call(c.Graphics.prototype,["Angle","AutoCull","Bounds","Destroy","FixedToCamera","InputEnabled","InWorld","LifeSpan","PhysicsBody","Reset"]),c.Graphics.prototype.preUpdatePhysics=c.Component.PhysicsBody.preUpdate,c.Graphics.prototype.preUpdateLifeSpan=c.Component.LifeSpan.preUpdate,c.Graphics.prototype.preUpdateInWorld=c.Component.InWorld.preUpdate,c.Graphics.prototype.preUpdateCore=c.Component.Core.preUpdate,c.Graphics.prototype.preUpdate=function(){return this.preUpdatePhysics()&&this.preUpdateLifeSpan()&&this.preUpdateInWorld()?this.preUpdateCore():!1},c.Graphics.prototype.destroy=function(a){this.clear(),c.Component.Destroy.prototype.destroy.call(this,a)},c.Graphics.prototype.drawTriangle=function(a,b){void 0===b&&(b=!1);var d=new c.Polygon(a);if(b){var e=new c.Point(this.game.camera.x-a[0].x,this.game.camera.y-a[0].y),f=new c.Point(a[1].x-a[0].x,a[1].y-a[0].y),g=new c.Point(a[1].x-a[2].x,a[1].y-a[2].y),h=g.cross(f);e.dot(h)>0&&this.drawPolygon(d)}else this.drawPolygon(d)},c.Graphics.prototype.drawTriangles=function(a,b,d){void 0===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;e0&&(j+=c[k-1]),h=j+l}else for(var k=0;kq&&Math.abs(q)>o&&(q=-o),0!==q){var m=q*(b.length-1);p+=m}this.canvas.height=p*this._res,this.context.scale(this._res,this._res),navigator.isCocoonJS&&this.context.clearRect(0,0,this.canvas.width,this.canvas.height),this.style.backgroundColor&&(this.context.fillStyle=this.style.backgroundColor,this.context.fillRect(0,0,this.canvas.width,this.canvas.height)),this.context.fillStyle=this.style.fill,this.context.font=this.style.font,this.context.strokeStyle=this.style.stroke,this.context.textBaseline="alphabetic",this.context.lineWidth=this.style.strokeThickness,this.context.lineCap="round",this.context.lineJoin="round";var r,s;for(this._charCount=0,g=0;g0&&(s+=q*g),"right"===this.style.align?r+=e-d[g]:"center"===this.style.align&&(r+=(e-d[g])/2),this.autoRound&&(r=Math.round(r),s=Math.round(s)),this.colors.length>0||this.strokeColors.length>0?this.updateLine(b[g],r,s):(this.style.stroke&&this.style.strokeThickness&&(this.updateShadow(this.style.shadowStroke),0===c?this.context.strokeText(b[g],r,s):this.renderTabLine(b[g],r,s,!1)),this.style.fill&&(this.updateShadow(this.style.shadowFill),0===c?this.context.fillText(b[g],r,s):this.renderTabLine(b[g],r,s,!0)));this.updateTexture()},c.Text.prototype.renderTabLine=function(a,b,c,d){var e=a.split(/(?:\t)/),f=this.style.tabs,g=0;if(Array.isArray(f))for(var h=0,i=0;i0&&(h+=f[i-1]),g=b+h,d?this.context.fillText(e[i],g,c):this.context.strokeText(e[i],g,c);else for(var i=0;ie?(g>0&&(b+="\n"),b+=f[g]+" ",e=this.style.wordWrapWidth-h):(e-=i,b+=f[g]+" ")}dd&&(this.style.wordWrapWidth=d)),this.updateTexture(),this},c.Text.prototype.updateTexture=function(){var a=this.texture.baseTexture,b=this.texture.crop,c=this.texture.frame,d=this.canvas.width,e=this.canvas.height;if(a.width=d,a.height=e,b.width=d,b.height=e,c.width=d,c.height=e,this.texture.width=d,this.texture.height=e,this._width=d,this._height=e,this.textBounds){var f=this.textBounds.x,g=this.textBounds.y;"right"===this.style.boundsAlignH?f=this.textBounds.width-this.canvas.width:"center"===this.style.boundsAlignH&&(f=this.textBounds.halfWidth-this.canvas.width/2),"bottom"===this.style.boundsAlignV?g=this.textBounds.height-this.canvas.height:"middle"===this.style.boundsAlignV&&(g=this.textBounds.halfHeight-this.canvas.height/2),this.pivot.x=-f,this.pivot.y=-g}this.renderable=0!==d&&0!==e,this.texture.baseTexture.dirty()},c.Text.prototype._renderWebGL=function(a){this.dirty&&(this.updateText(),this.dirty=!1),PIXI.Sprite.prototype._renderWebGL.call(this,a)},c.Text.prototype._renderCanvas=function(a){this.dirty&&(this.updateText(),this.dirty=!1),PIXI.Sprite.prototype._renderCanvas.call(this,a)},c.Text.prototype.determineFontProperties=function(a){var b=c.Text.fontPropertiesCache[a];if(!b){b={};var d=c.Text.fontPropertiesCanvas,e=c.Text.fontPropertiesContext;e.font=a;var f=Math.ceil(e.measureText("|MÉq").width),g=Math.ceil(e.measureText("|MÉq").width),h=2*g;if(g=1.4*g|0,d.width=f,d.height=h,e.fillStyle="#f00",e.fillRect(0,0,f,h),e.font=a,e.textBaseline="alphabetic",e.fillStyle="#000",e.fillText("|MÉq",0,g),!e.getImageData(0,0,f,h))return b.ascent=g,b.descent=g+6,b.fontSize=b.ascent+b.descent,c.Text.fontPropertiesCache[a]=b,b;var i,j,k=e.getImageData(0,0,f,h).data,l=k.length,m=4*f,n=0,o=!1;for(i=0;g>i;i++){for(j=0;m>j;j+=4)if(255!==k[n+j]){o=!0;break}if(o)break;n+=m}for(b.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}b.descent=i-g,b.descent+=6,b.fontSize=b.ascent+b.descent,c.Text.fontPropertiesCache[a]=b}return b},c.Text.prototype.getBounds=function(a){return this.dirty&&(this.updateText(),this.dirty=!1),PIXI.Sprite.prototype.getBounds.call(this,a)},Object.defineProperty(c.Text.prototype,"text",{get:function(){return this._text},set:function(a){a!==this._text&&(this._text=a.toString()||"",this.dirty=!0,this.parent&&this.updateTransform())}}),Object.defineProperty(c.Text.prototype,"cssFont",{get:function(){return this.componentsToFont(this._fontComponents)},set:function(a){a=a||"bold 20pt Arial",this._fontComponents=this.fontToComponents(a),this.updateFont(this._fontComponents)}}),Object.defineProperty(c.Text.prototype,"font",{get:function(){return this._fontComponents.fontFamily},set:function(a){a=a||"Arial",a=a.trim(),/^(?:inherit|serif|sans-serif|cursive|fantasy|monospace)$/.exec(a)||/['",]/.exec(a)||(a="'"+a+"'"),this._fontComponents.fontFamily=a,this.updateFont(this._fontComponents)}}),Object.defineProperty(c.Text.prototype,"fontSize",{get:function(){var a=this._fontComponents.fontSize;return a&&/(?:^0$|px$)/.exec(a)?parseInt(a,10):a},set:function(a){a=a||"0","number"==typeof a&&(a+="px"),this._fontComponents.fontSize=a,this.updateFont(this._fontComponents)}}),Object.defineProperty(c.Text.prototype,"fontWeight",{get:function(){return this._fontComponents.fontWeight||"normal"},set:function(a){a=a||"normal",this._fontComponents.fontWeight=a,this.updateFont(this._fontComponents)}}),Object.defineProperty(c.Text.prototype,"fontStyle",{get:function(){return this._fontComponents.fontStyle||"normal"},set:function(a){a=a||"normal",this._fontComponents.fontStyle=a,this.updateFont(this._fontComponents)}}),Object.defineProperty(c.Text.prototype,"fontVariant",{get:function(){return this._fontComponents.fontVariant||"normal"},set:function(a){a=a||"normal",this._fontComponents.fontVariant=a,this.updateFont(this._fontComponents)}}),Object.defineProperty(c.Text.prototype,"fill",{get:function(){return this.style.fill},set:function(a){a!==this.style.fill&&(this.style.fill=a,this.dirty=!0)}}),Object.defineProperty(c.Text.prototype,"align",{get:function(){return this.style.align},set:function(a){a!==this.style.align&&(this.style.align=a,this.dirty=!0)}}),Object.defineProperty(c.Text.prototype,"resolution",{get:function(){return this._res},set:function(a){a!==this._res&&(this._res=a,this.dirty=!0)}}),Object.defineProperty(c.Text.prototype,"tabs",{get:function(){return this.style.tabs},set:function(a){a!==this.style.tabs&&(this.style.tabs=a,this.dirty=!0)}}),Object.defineProperty(c.Text.prototype,"boundsAlignH",{get:function(){return this.style.boundsAlignH},set:function(a){a!==this.style.boundsAlignH&&(this.style.boundsAlignH=a,this.dirty=!0)}}),Object.defineProperty(c.Text.prototype,"boundsAlignV",{get:function(){return this.style.boundsAlignV},set:function(a){a!==this.style.boundsAlignV&&(this.style.boundsAlignV=a,this.dirty=!0)}}),Object.defineProperty(c.Text.prototype,"stroke",{get:function(){return this.style.stroke},set:function(a){a!==this.style.stroke&&(this.style.stroke=a,this.dirty=!0)}}),Object.defineProperty(c.Text.prototype,"strokeThickness",{get:function(){return this.style.strokeThickness},set:function(a){a!==this.style.strokeThickness&&(this.style.strokeThickness=a,this.dirty=!0)}}),Object.defineProperty(c.Text.prototype,"wordWrap",{get:function(){return this.style.wordWrap},set:function(a){a!==this.style.wordWrap&&(this.style.wordWrap=a,this.dirty=!0)}}),Object.defineProperty(c.Text.prototype,"wordWrapWidth",{get:function(){return this.style.wordWrapWidth},set:function(a){a!==this.style.wordWrapWidth&&(this.style.wordWrapWidth=a,this.dirty=!0)}}),Object.defineProperty(c.Text.prototype,"lineSpacing",{get:function(){return this._lineSpacing},set:function(a){a!==this._lineSpacing&&(this._lineSpacing=parseFloat(a),this.dirty=!0,this.parent&&this.updateTransform())}}),Object.defineProperty(c.Text.prototype,"shadowOffsetX",{get:function(){return this.style.shadowOffsetX},set:function(a){a!==this.style.shadowOffsetX&&(this.style.shadowOffsetX=a,this.dirty=!0)}}),Object.defineProperty(c.Text.prototype,"shadowOffsetY",{get:function(){return this.style.shadowOffsetY},set:function(a){a!==this.style.shadowOffsetY&&(this.style.shadowOffsetY=a,this.dirty=!0)}}),Object.defineProperty(c.Text.prototype,"shadowColor",{get:function(){return this.style.shadowColor},set:function(a){a!==this.style.shadowColor&&(this.style.shadowColor=a,this.dirty=!0)}}),Object.defineProperty(c.Text.prototype,"shadowBlur",{get:function(){return this.style.shadowBlur},set:function(a){a!==this.style.shadowBlur&&(this.style.shadowBlur=a,this.dirty=!0)}}),Object.defineProperty(c.Text.prototype,"shadowStroke",{get:function(){return this.style.shadowStroke},set:function(a){a!==this.style.shadowStroke&&(this.style.shadowStroke=a,this.dirty=!0)}}),Object.defineProperty(c.Text.prototype,"shadowFill",{get:function(){return this.style.shadowFill},set:function(a){a!==this.style.shadowFill&&(this.style.shadowFill=a,this.dirty=!0)}}),Object.defineProperty(c.Text.prototype,"width",{get:function(){return this.dirty&&(this.updateText(),this.dirty=!1),this.scale.x*this.texture.frame.width},set:function(a){this.scale.x=a/this.texture.frame.width,this._width=a}}),Object.defineProperty(c.Text.prototype,"height",{get:function(){return this.dirty&&(this.updateText(),this.dirty=!1),this.scale.y*this.texture.frame.height},set:function(a){this.scale.y=a/this.texture.frame.height,this._height=a}}),c.Text.fontPropertiesCache={},c.Text.fontPropertiesCanvas=document.createElement("canvas"),c.Text.fontPropertiesContext=c.Text.fontPropertiesCanvas.getContext("2d"),c.BitmapText=function(a,b,d,e,f,g,h){b=b||0,d=d||0,e=e||"",f=f||"",g=g||32,h=h||"left",PIXI.DisplayObjectContainer.call(this),this.type=c.BITMAPTEXT,this.physicsType=c.SPRITE,this.textWidth=0,this.textHeight=0,this.anchor=new c.Point,this._prevAnchor=new c.Point,this._glyphs=[],this._maxWidth=0,this._text=f,this._data=a.cache.getBitmapFont(e),this._font=e,this._fontSize=g,this._align=h,this._tint=16777215,this.updateText(),this.dirty=!1,c.Component.Core.init.call(this,a,b,d,"",null)},c.BitmapText.prototype=Object.create(PIXI.DisplayObjectContainer.prototype),c.BitmapText.prototype.constructor=c.BitmapText,c.Component.Core.install.call(c.BitmapText.prototype,["Angle","AutoCull","Bounds","Destroy","FixedToCamera","InputEnabled","InWorld","LifeSpan","PhysicsBody","Reset"]),c.BitmapText.prototype.preUpdatePhysics=c.Component.PhysicsBody.preUpdate,c.BitmapText.prototype.preUpdateLifeSpan=c.Component.LifeSpan.preUpdate,c.BitmapText.prototype.preUpdateInWorld=c.Component.InWorld.preUpdate,c.BitmapText.prototype.preUpdateCore=c.Component.Core.preUpdate,c.BitmapText.prototype.preUpdate=function(){return this.preUpdatePhysics()&&this.preUpdateLifeSpan()&&this.preUpdateInWorld()?this.preUpdateCore():!1},c.BitmapText.prototype.postUpdate=function(){c.Component.PhysicsBody.postUpdate.call(this),c.Component.FixedToCamera.postUpdate.call(this),this.body&&this.body.type===c.Physics.ARCADE&&(this.textWidth!==this.body.sourceWidth||this.textHeight!==this.body.sourceHeight)&&this.body.setSize(this.textWidth,this.textHeight)},c.BitmapText.prototype.setText=function(a){this.text=a},c.BitmapText.prototype.scanLine=function(a,b,c){for(var d=0,e=0,f=-1,g=null,h=this._maxWidth>0?this._maxWidth:null,i=[],j=0;j=h&&f>-1)return{width:e,text:c.substr(0,j-(j-f)),end:k,chars:i};e+=m.xAdvance*b,i.push(d+m.xOffset*b),d+=m.xAdvance*b,g=l}}return{width:e,text:c,end:k,chars:i}},c.BitmapText.prototype.updateText=function(){var a=this._data.font;if(a){var b=this.text,c=this._fontSize/a.size,d=[],e=0;this.textWidth=0;do{var f=this.scanLine(a,c,b);f.y=e,d.push(f),f.width>this.textWidth&&(this.textWidth=f.width),e+=a.lineHeight*c,b=b.substr(f.text.length+1)}while(f.end===!1);this.textHeight=e;for(var g=0,h=0,i=this.textWidth*this.anchor.x,j=this.textHeight*this.anchor.y,k=0;k0&&(this._fontSize=a,this.updateText())}}),Object.defineProperty(c.BitmapText.prototype,"text",{get:function(){return this._text},set:function(a){a!==this._text&&(this._text=a.toString()||"",this.updateText())}}),Object.defineProperty(c.BitmapText.prototype,"maxWidth",{get:function(){return this._maxWidth},set:function(a){a!==this._maxWidth&&(this._maxWidth=a,this.updateText())}}),c.RetroFont=function(a,b,d,e,f,g,h,i,j,k){if(!a.cache.checkImageKey(b))return!1;(void 0===g||null===g)&&(g=a.cache.getImage(b).width/d),this.characterWidth=d,this.characterHeight=e,this.characterSpacingX=h||0,this.characterSpacingY=i||0,this.characterPerRow=g,this.offsetX=j||0,this.offsetY=k||0,this.align="left",this.multiLine=!1,this.autoUpperCase=!0,this.customSpacingX=0,this.customSpacingY=0,this.fixedWidth=0,this.fontSet=a.cache.getImage(b),this._text="",this.grabData=[],this.frameData=new c.FrameData;for(var l=this.offsetX,m=this.offsetY,n=0,o=0;o?@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){void 0===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 this.fixedWidth>0?this.resize(this.fixedWidth,this.characterHeight,!0):this.resize(this._text.length*(this.characterWidth+this.customSpacingX),this.characterHeight,!0),a=0,this.align===c.RetroFont.ALIGN_RIGHT?a=this.width-this._text.length*(this.characterWidth+this.customSpacingX):this.align===c.RetroFont.ALIGN_CENTER&&(a=this.width/2-this._text.length*(this.characterWidth+this.customSpacingX)/2,a+=this.customSpacingX/2),0>a&&(a=0),this.pasteLine(this._text,a,0,this.customSpacingX);this.requiresReTint=!0},c.RetroFont.prototype.pasteLine=function(a,b,c,d){for(var e=0;e=0&&(this.stamp.frame=this.grabData[a.charCodeAt(e)],this.renderXY(this.stamp,b,c,!1),b+=this.characterWidth+d,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;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()}}),PIXI.Strip=function(a){PIXI.DisplayObjectContainer.call(this),this.texture=a,this.uvs=new PIXI.Float32Array([0,1,1,1,1,0,0,1]),this.vertices=new PIXI.Float32Array([0,0,100,0,100,100,0,100]),this.colors=new PIXI.Float32Array([1,1,1,1]),this.indices=new PIXI.Uint16Array([0,1,2,3]),this.dirty=!0,this.blendMode=PIXI.blendModes.NORMAL,this.canvasPadding=0,this.drawMode=PIXI.Strip.DrawModes.TRIANGLE_STRIP},PIXI.Strip.prototype=Object.create(PIXI.DisplayObjectContainer.prototype),PIXI.Strip.prototype.constructor=PIXI.Strip,PIXI.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())},PIXI.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.vertices,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)},PIXI.Strip.prototype._renderStrip=function(a){var b=a.gl,c=a.projection,d=a.offset,e=a.shaderManager.stripShader,f=this.drawMode===PIXI.Strip.DrawModes.TRIANGLE_STRIP?b.TRIANGLE_STRIP:b.TRIANGLES;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.vertices,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.vertices),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(f,this.indices.length,b.UNSIGNED_SHORT,0)},PIXI.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),this.drawMode===PIXI.Strip.DrawModes.TRIANGLE_STRIP?this._renderCanvasTriangleStrip(b):this._renderCanvasTriangles(b)},PIXI.Strip.prototype._renderCanvasTriangleStrip=function(a){var b=this.vertices,c=this.uvs,d=b.length/2;this.count++;for(var e=0;d-2>e;e++){var f=2*e;this._renderCanvasDrawTriangle(a,b,c,f,f+2,f+4)}},PIXI.Strip.prototype._renderCanvasTriangles=function(a){var b=this.vertices,c=this.uvs,d=this.indices,e=d.length;this.count++;for(var f=0;e>f;f+=3){var g=2*d[f],h=2*d[f+1],i=2*d[f+2];this._renderCanvasDrawTriangle(a,b,c,g,h,i)}},PIXI.Strip.prototype._renderCanvasDrawTriangle=function(a,b,c,d,e,f){var g=this.texture.baseTexture.source,h=this.texture.width,i=this.texture.height,j=b[d],k=b[e],l=b[f],m=b[d+1],n=b[e+1],o=b[f+1],p=c[d]*h,q=c[e]*h,r=c[f]*h,s=c[d+1]*i,t=c[e+1]*i,u=c[f+1]*i;if(this.canvasPadding>0){var v=this.canvasPadding/this.worldTransform.a,w=this.canvasPadding/this.worldTransform.d,x=(j+k+l)/3,y=(m+n+o)/3,z=j-x,A=m-y,B=Math.sqrt(z*z+A*A);j=x+z/B*(B+v),m=y+A/B*(B+w),z=k-x,A=n-y,B=Math.sqrt(z*z+A*A),k=x+z/B*(B+v),n=y+A/B*(B+w),z=l-x,A=o-y,B=Math.sqrt(z*z+A*A),l=x+z/B*(B+v),o=y+A/B*(B+w)}a.save(),a.beginPath(),a.moveTo(j,m),a.lineTo(k,n),a.lineTo(l,o),a.closePath(),a.clip();var C=p*t+s*r+q*u-t*r-s*q-p*u,D=j*t+s*l+k*u-t*l-s*k-j*u,E=p*k+j*r+q*l-k*r-j*q-p*l,F=p*t*l+s*k*r+j*q*u-j*t*r-s*q*l-p*k*u,G=m*t+s*o+n*u-t*o-s*n-m*u,H=p*n+m*r+q*o-n*r-m*q-p*o,I=p*t*o+s*n*r+m*q*u-m*t*r-s*q*o-p*n*u;a.transform(D/C,G/C,E/C,H/C,F/C,I/C),a.drawImage(g,0,0),a.restore()},PIXI.Strip.prototype.renderStripFlat=function(a){var b=this.context,c=a.vertices,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()},PIXI.Strip.prototype.onTextureUpdate=function(){this.updateFrame=!0},PIXI.Strip.prototype.getBounds=function(a){for(var b=a||this.worldTransform,c=b.a,d=b.b,e=b.c,f=b.d,g=b.tx,h=b.ty,i=-1/0,j=-1/0,k=1/0,l=1/0,m=this.vertices,n=0,o=m.length;o>n;n+=2){var p=m[n],q=m[n+1],r=c*p+e*q+g,s=f*q+d*p+h;k=k>r?r:k,l=l>s?s:l,i=r>i?r:i,j=s>j?s:j}if(k===-1/0||1/0===j)return PIXI.EmptyRectangle;var t=this._bounds;return t.x=k,t.width=i-k,t.y=l,t.height=j-l,this._currentBounds=t,t},PIXI.Strip.DrawModes={TRIANGLE_STRIP:0,TRIANGLES:1},PIXI.Rope=function(a,b){PIXI.Strip.call(this,a),this.points=b,this.vertices=new PIXI.Float32Array(4*b.length),this.uvs=new PIXI.Float32Array(4*b.length),this.colors=new PIXI.Float32Array(2*b.length),this.indices=new PIXI.Uint16Array(2*b.length),this.refresh()},PIXI.Rope.prototype=Object.create(PIXI.Strip.prototype),PIXI.Rope.prototype.constructor=PIXI.Rope,PIXI.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}},PIXI.Rope.prototype.updateTransform=function(){var a=this.points;if(!(a.length<1)){var b,c=a[0],d={x:0,y:0};this.count-=.2;for(var e,f,g,h,i,j=this.vertices,k=a.length,l=0;k>l;l++)e=a[l],f=4*l,b=l1&&(g=1),h=Math.sqrt(d.x*d.x+d.y*d.y),i=this.texture.height/2,d.x/=h,d.y/=h,d.x*=i,d.y*=i,j[f]=e.x+d.x,j[f+1]=e.y+d.y,j[f+2]=e.x-d.x,j[f+3]=e.y-d.y,c=e;PIXI.DisplayObjectContainer.prototype.updateTransform.call(this)}},PIXI.Rope.prototype.setTexture=function(a){this.texture=a},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.type=c.ROPE,this._scroll=new c.Point,PIXI.Rope.call(this,PIXI.TextureCache.__default,this.points),c.Component.Core.init.call(this,a,b,d,e,f)},c.Rope.prototype=Object.create(PIXI.Rope.prototype),c.Rope.prototype.constructor=c.Rope,c.Component.Core.install.call(c.Rope.prototype,["Angle","Animation","AutoCull","Bounds","BringToTop","Crop","Delta","Destroy","FixedToCamera","InputEnabled","InWorld","LifeSpan","LoadTexture","Overlap","PhysicsBody","Reset","ScaleMinMax","Smoothed"]),c.Rope.prototype.preUpdatePhysics=c.Component.PhysicsBody.preUpdate,c.Rope.prototype.preUpdateLifeSpan=c.Component.LifeSpan.preUpdate,c.Rope.prototype.preUpdateInWorld=c.Component.InWorld.preUpdate,c.Rope.prototype.preUpdateCore=c.Component.Core.preUpdate,c.Rope.prototype.preUpdate=function(){return 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.preUpdatePhysics()&&this.preUpdateLifeSpan()&&this.preUpdateInWorld()?this.preUpdateCore():!1},c.Rope.prototype.update=function(){this._hasUpdateAnimation&&this.updateAnimation.call(this)},c.Rope.prototype.reset=function(a,b){return c.Component.Reset.prototype.reset.call(this,a,b),this.tilePosition.x=0,this.tilePosition.y=0,this},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;kn?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},PIXI.TilingSprite.prototype.destroy=function(){PIXI.Sprite.prototype.destroy.call(this),this.tileScale=null,this.tileScaleOffset=null,this.tilePosition=null,this.tilingTexture&&(this.tilingTexture.destroy(!0),this.tilingTexture=null)},Object.defineProperty(PIXI.TilingSprite.prototype,"width",{get:function(){return this._width},set:function(a){this._width=a}}),Object.defineProperty(PIXI.TilingSprite.prototype,"height",{get:function(){return this._height},set:function(a){this._height=a}}),c.TileSprite=function(a,b,d,e,f,g,h){b=b||0,d=d||0,e=e||256,f=f||256,g=g||null,h=h||null,this.type=c.TILESPRITE,this.physicsType=c.SPRITE,this._scroll=new c.Point;var i=a.cache.getImage("__default",!0);PIXI.TilingSprite.call(this,new PIXI.Texture(i.base),e,f),c.Component.Core.init.call(this,a,b,d,g,h)},c.TileSprite.prototype=Object.create(PIXI.TilingSprite.prototype),c.TileSprite.prototype.constructor=c.TileSprite,c.Component.Core.install.call(c.TileSprite.prototype,["Angle","Animation","AutoCull","Bounds","BringToTop","Destroy","FixedToCamera","Health","InCamera","InputEnabled","InWorld","LifeSpan","LoadTexture","Overlap","PhysicsBody","Reset","Smoothed"]),c.TileSprite.prototype.preUpdatePhysics=c.Component.PhysicsBody.preUpdate,c.TileSprite.prototype.preUpdateLifeSpan=c.Component.LifeSpan.preUpdate,c.TileSprite.prototype.preUpdateInWorld=c.Component.InWorld.preUpdate,c.TileSprite.prototype.preUpdateCore=c.Component.Core.preUpdate,c.TileSprite.prototype.preUpdate=function(){return 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.preUpdatePhysics()&&this.preUpdateLifeSpan()&&this.preUpdateInWorld()?this.preUpdateCore():!1},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.destroy=function(a){c.Component.Destroy.prototype.destroy.call(this,a),PIXI.TilingSprite.prototype.destroy.call(this)},c.TileSprite.prototype.reset=function(a,b){return c.Component.Reset.prototype.reset.call(this,a,b),this.tilePosition.x=0,this.tilePosition.y=0,this},c.Device=function(){this.deviceReadyAt=0,this.initialized=!1,this.desktop=!1,this.iOS=!1,this.cocoonJS=!1,this.cocoonJSApp=!1,this.cordova=!1,this.node=!1,this.nodeWebkit=!1,this.electron=!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.canvasBitBltShift=null,this.webGL=!1,this.file=!1,this.fileSystem=!1,this.localStorage=!1,this.worker=!1,this.css3D=!1,this.pointerLock=!1,this.typedArray=!1,this.vibration=!1,this.getUserMedia=!0,this.quirksMode=!1,this.touch=!1,this.mspointer=!1,this.wheelEvent=null,this.arora=!1,this.chrome=!1,this.chromeVersion=0,this.epiphany=!1,this.firefox=!1,this.firefoxVersion=0,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.oggVideo=!1,this.h264Video=!1,this.mp4Video=!1,this.webmVideo=!1,this.vp9Video=!1,this.hlsVideo=!1,this.iPhone=!1,this.iPhone4=!1,this.iPad=!1,this.pixelRatio=0,this.littleEndian=!1,this.LITTLE_ENDIAN=!1,this.support32bit=!1,this.fullscreen=!1,this.requestFullscreen="",this.cancelFullscreen="",this.fullscreenKeyboard=!1},c.Device=new c.Device,c.Device.onInitialized=new c.Signal,c.Device.whenReady=function(a,b,c){var d=this._readyCheck;if(this.deviceReadyAt||!d)a.call(b,this);else if(d._monitor||c)d._queue=d._queue||[],d._queue.push([a,b]);else{d._monitor=d.bind(this),d._queue=d._queue||[],d._queue.push([a,b]);var e="undefined"!=typeof window.cordova,f=navigator.isCocoonJS;"complete"===document.readyState||"interactive"===document.readyState?window.setTimeout(d._monitor,0):e&&!f?document.addEventListener("deviceready",d._monitor,!1):(document.addEventListener("DOMContentLoaded",d._monitor,!1),window.addEventListener("load",d._monitor,!1))}},c.Device._readyCheck=function(){var a=this._readyCheck;if(document.body){if(!this.deviceReadyAt){this.deviceReadyAt=Date.now(),document.removeEventListener("deviceready",a._monitor),document.removeEventListener("DOMContentLoaded",a._monitor),window.removeEventListener("load",a._monitor),this._initialize(),this.initialized=!0,this.onInitialized.dispatch(this);for(var b;b=a._queue.shift();){var c=b[0],d=b[1];c.call(d,this)}this._readyCheck=null,this._initialize=null,this.onInitialized=null}}else window.setTimeout(a._monitor,20)},c.Device._initialize=function(){function a(){var a=navigator.userAgent;/Playstation Vita/.test(a)?l.vita=!0:/Kindle/.test(a)||/\bKF[A-Z][A-Z]+/.test(a)||/Silk.*Mobile Safari/.test(a)?l.kindle=!0:/Android/.test(a)?l.android=!0:/CrOS/.test(a)?l.chromeOS=!0:/iP[ao]d|iPhone/i.test(a)?l.iOS=!0:/Linux/.test(a)?l.linux=!0:/Mac OS/.test(a)?l.macOS=!0:/Windows/.test(a)&&(l.windows=!0),(/Windows Phone/i.test(a)||/IEMobile/i.test(a))&&(l.android=!1,l.iOS=!1,l.macOS=!1,l.windows=!0,l.windowsPhone=!0);var b=/Silk/.test(a);(l.windows||l.macOS||l.linux&&!b||l.chromeOS)&&(l.desktop=!0),(l.windowsPhone||/Windows NT/i.test(a)&&/Touch/i.test(a))&&(l.desktop=!1)}function b(){l.canvas=!!window.CanvasRenderingContext2D||l.cocoonJS;try{l.localStorage=!!localStorage.getItem}catch(a){l.localStorage=!1}l.file=!!(window.File&&window.FileReader&&window.FileList&&window.Blob),l.fileSystem=!!window.requestFileSystem,l.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}}(),l.webGL=!!l.webGL,l.worker=!!window.Worker,l.pointerLock="pointerLockElement"in document||"mozPointerLockElement"in document||"webkitPointerLockElement"in document,l.quirksMode="CSS1Compat"===document.compatMode?!1:!0,navigator.getUserMedia=navigator.getUserMedia||navigator.webkitGetUserMedia||navigator.mozGetUserMedia||navigator.msGetUserMedia||navigator.oGetUserMedia,window.URL=window.URL||window.webkitURL||window.mozURL||window.msURL,l.getUserMedia=l.getUserMedia&&!!navigator.getUserMedia&&!!window.URL,l.firefox&&l.firefoxVersion<21&&(l.getUserMedia=!1),!l.iOS&&(l.ie||l.firefox||l.chrome)&&(l.canvasBitBltShift=!0),(l.safari||l.mobileSafari)&&(l.canvasBitBltShift=!1)}function c(){("ontouchstart"in document.documentElement||window.navigator.maxTouchPoints&&window.navigator.maxTouchPoints>=1)&&(l.touch=!0),(window.navigator.msPointerEnabled||window.navigator.pointerEnabled)&&(l.mspointer=!0),l.cocoonJS||("onwheel"in window||l.ie&&"WheelEvent"in window?l.wheelEvent="wheel":"onmousewheel"in window?l.wheelEvent="mousewheel":l.firefox&&"MouseScrollEvent"in window&&(l.wheelEvent="DOMMouseScroll"))}function d(){for(var a=["requestFullscreen","requestFullScreen","webkitRequestFullscreen","webkitRequestFullScreen","msRequestFullscreen","msRequestFullScreen","mozRequestFullScreen","mozRequestFullscreen"],b=document.createElement("div"),c=0;c0&&"none"!==a}var l=this;a(),g(),f(),e(),k(),h(),b(),d(),c()},c.Device.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},c.Device.canPlayVideo=function(a){return"webm"===a&&(this.webmVideo||this.vp9Video)?!0:"mp4"===a&&(this.mp4Video||this.h264Video)?!0:"ogg"===a&&this.oggVideo?!0:"mpeg"===a&&this.hlsVideo?!0:!1},c.Device.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.isAndroidStockBrowser=function(){var a=window.navigator.userAgent.match(/Android.*AppleWebKit\/([\d.]+)/);return a&&a[1]<537},c.DOM={getOffset:function(a,b){b=b||new c.Point;var d=a.getBoundingClientRect(),e=c.DOM.scrollY,f=c.DOM.scrollX,g=document.documentElement.clientTop,h=document.documentElement.clientLeft;return b.x=d.left+f-h,b.y=d.top+e-g,b},getBounds:function(a,b){return void 0===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.visualBounds:1===a.nodeType?this.getBounds(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},inLayoutViewport:function(a,b){var c=this.getBounds(a,b);return!!c&&c.bottom>=0&&c.right>=0&&c.top<=this.layoutBounds.width&&c.left<=this.layoutBounds.height},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.visualBounds.height>this.visualBounds.width?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.visualBounds.height>this.visualBounds.width?d:e},visualBounds:new c.Rectangle,layoutBounds:new c.Rectangle,documentBounds:new c.Rectangle},c.Device.whenReady(function(a){var b=window&&"pageXOffset"in window?function(){return window.pageXOffset}:function(){return document.documentElement.scrollLeft},d=window&&"pageYOffset"in window?function(){return window.pageYOffset}:function(){return document.documentElement.scrollTop};Object.defineProperty(c.DOM,"scrollX",{get:b}),Object.defineProperty(c.DOM,"scrollY",{get:d}),Object.defineProperty(c.DOM.visualBounds,"x",{get:b}),Object.defineProperty(c.DOM.visualBounds,"y",{get:d}),Object.defineProperty(c.DOM.layoutBounds,"x",{value:0}),Object.defineProperty(c.DOM.layoutBounds,"y",{value:0});var e=a.desktop&&document.documentElement.clientWidth<=window.innerWidth&&document.documentElement.clientHeight<=window.innerHeight;if(e){var f=function(){return Math.max(window.innerWidth,document.documentElement.clientWidth)},g=function(){return Math.max(window.innerHeight,document.documentElement.clientHeight)};Object.defineProperty(c.DOM.visualBounds,"width",{get:f}),Object.defineProperty(c.DOM.visualBounds,"height",{get:g}),Object.defineProperty(c.DOM.layoutBounds,"width",{get:f}),Object.defineProperty(c.DOM.layoutBounds,"height",{get:g})}else Object.defineProperty(c.DOM.visualBounds,"width",{get:function(){return window.innerWidth}}),Object.defineProperty(c.DOM.visualBounds,"height",{get:function(){return window.innerHeight}}),Object.defineProperty(c.DOM.layoutBounds,"width",{get:function(){var a=document.documentElement.clientWidth,b=window.innerWidth;return b>a?b:a}}),Object.defineProperty(c.DOM.layoutBounds,"height",{get:function(){var a=document.documentElement.clientHeight,b=window.innerHeight;return b>a?b:a}});Object.defineProperty(c.DOM.documentBounds,"x",{value:0}),Object.defineProperty(c.DOM.documentBounds,"y",{value:0}),Object.defineProperty(c.DOM.documentBounds,"width",{get:function(){var a=document.documentElement;return Math.max(a.clientWidth,a.offsetWidth,a.scrollWidth)}}),Object.defineProperty(c.DOM.documentBounds,"height",{get:function(){var a=document.documentElement;return Math.max(a.clientHeight,a.offsetHeight,a.scrollHeight)}})},null,!0),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 void 0===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){var c=["i","mozI","oI","webkitI","msI"];for(var d in c){var e=c[d]+"mageSmoothingEnabled";if(e in a)return a[e]=b,a}return 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.RequestAnimationFrame=function(a,b){void 0===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 void 0===c&&(c=1e-4),a>b-c},fuzzyCeil:function(a,b){return void 0===b&&(b=1e-4),Math.ceil(a-b)},fuzzyFloor:function(a,b){return void 0===b&&(b=1e-4),Math.floor(a+b)},average:function(){for(var a=0,b=0;b=0?a:a+2*Math.PI},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},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)},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)},roundAwayFromZero:function(a){return a>0?Math.ceil(a):Math.floor(a)},sinCosGenerator:function(a,b,c,d){void 0===b&&(b=1),void 0===c&&(c=1),void 0===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}},distance:function(a,b,c,d){var e=a-c,f=b-d;return Math.sqrt(e*e+f*f)},distanceSq:function(a,b,c,d){var e=a-c,f=b-d;return e*e+f*f},distancePow:function(a,b,c,d,e){return void 0===e&&(e=2),Math.sqrt(Math.pow(c-a,e)+Math.pow(d-b,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 void 0===c&&(c=0),a>b||c>b?1:c>a||c>a?0:(a-c)/b}};var j=Math.PI/180,k=180/Math.PI;c.Math.degToRad=function(a){return a*j},c.Math.radToDeg=function(a){return a*k},c.RandomDataGenerator=function(a){void 0===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){if(this.s0=this.hash(" "),this.s1=this.hash(this.s0),this.s2=this.hash(this.s1),this.c=1,a)for(var b=0;b>>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)+.5)]},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){void 0===c&&(c=!1),(void 0===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){void 0===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.easeMap={Power0:c.Easing.Power0,Power1:c.Easing.Power1,Power2:c.Easing.Power2,Power3:c.Easing.Power3,Power4:c.Easing.Power4,Linear:c.Easing.Linear.None,Quad:c.Easing.Quadratic.Out,Cubic:c.Easing.Cubic.Out,Quart:c.Easing.Quartic.Out,Quint:c.Easing.Quintic.Out,Sine:c.Easing.Sinusoidal.Out,Expo:c.Easing.Exponential.Out,Circ:c.Easing.Circular.Out,Elastic:c.Easing.Elastic.Out,Back:c.Easing.Back.Out,Bounce:c.Easing.Bounce.Out,"Quad.easeIn":c.Easing.Quadratic.In,"Cubic.easeIn":c.Easing.Cubic.In,"Quart.easeIn":c.Easing.Quartic.In,"Quint.easeIn":c.Easing.Quintic.In,"Sine.easeIn":c.Easing.Sinusoidal.In,"Expo.easeIn":c.Easing.Exponential.In,"Circ.easeIn":c.Easing.Circular.In,"Elastic.easeIn":c.Easing.Elastic.In,"Back.easeIn":c.Easing.Back.In,"Bounce.easeIn":c.Easing.Bounce.In,"Quad.easeOut":c.Easing.Quadratic.Out,"Cubic.easeOut":c.Easing.Cubic.Out,"Quart.easeOut":c.Easing.Quartic.Out,"Quint.easeOut":c.Easing.Quintic.Out,"Sine.easeOut":c.Easing.Sinusoidal.Out,"Expo.easeOut":c.Easing.Exponential.Out,"Circ.easeOut":c.Easing.Circular.Out,"Elastic.easeOut":c.Easing.Elastic.Out,"Back.easeOut":c.Easing.Back.Out,"Bounce.easeOut":c.Easing.Bounce.Out,"Quad.easeInOut":c.Easing.Quadratic.InOut,"Cubic.easeInOut":c.Easing.Cubic.InOut,"Quart.easeInOut":c.Easing.Quartic.InOut,"Quint.easeInOut":c.Easing.Quintic.InOut,"Sine.easeInOut":c.Easing.Sinusoidal.InOut,"Expo.easeInOut":c.Easing.Exponential.InOut,"Circ.easeInOut":c.Easing.Circular.InOut,"Elastic.easeInOut":c.Easing.Elastic.InOut,"Back.easeInOut":c.Easing.Back.InOut,"Bounce.easeInOut":c.Easing.Bounce.InOut},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;ad;d++)this.removeFrom(a[d]);else if(a.type===c.GROUP&&b)for(var d=0,e=a.children.length;e>d;d++)this.removeFrom(a.children[d]);else{for(d=0,e=this._tweens.length;e>d;d++)a===this._tweens[d].target&&this.remove(this._tweens[d]);for(d=0,e=this._add.length;e>d;d++)a===this._add[d].target&&this.remove(this._add[d])}},add:function(a){a._manager=this,this._add.push(a)},create:function(a){return new c.Tween(a,this.game,this)},remove:function(a){var b=this._tweens.indexOf(a);-1!==b?this._tweens[b].pendingDelete=!0:(b=this._add.indexOf(a),-1!==b&&(this._add[b].pendingDelete=!0))},update:function(){var a=this._add.length,b=this._tweens.length;if(0===b&&0===a)return!1;for(var c=0;b>c;)this._tweens[c].update(this.game.time.time)?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.target===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.game=b,this.target=a,this.manager=d,this.timeline=[],this.reverse=!1,this.timeScale=1,this.repeatCounter=0,this.pendingDelete=!1,this.onStart=new c.Signal,this.onLoop=new c.Signal,this.onRepeat=new c.Signal,this.onChildComplete=new c.Signal,this.onComplete=new c.Signal,this.isRunning=!1,this.current=0,this.properties={},this.chainedTween=null,this.isPaused=!1,this._onUpdateCallback=null,this._onUpdateCallbackContext=null,this._pausedTime=0,this._codePaused=!1,this._hasStarted=!1},c.Tween.prototype={to:function(a,b,d,e,f,g,h){return(void 0===b||0>=b)&&(b=1e3),(void 0===d||null===d)&&(d=c.Easing.Default),void 0===e&&(e=!1),void 0===f&&(f=0),void 0===g&&(g=0),void 0===h&&(h=!1),"string"==typeof d&&this.manager.easeMap[d]&&(d=this.manager.easeMap[d]),this.isRunning?(console.warn("Phaser.Tween.to cannot be called after Tween.start"),this):(this.timeline.push(new c.TweenData(this).to(a,b,d,f,g,h)),e&&this.start(),this)},from:function(a,b,d,e,f,g,h){return void 0===b&&(b=1e3),(void 0===d||null===d)&&(d=c.Easing.Default),void 0===e&&(e=!1),void 0===f&&(f=0),void 0===g&&(g=0),void 0===h&&(h=!1),"string"==typeof d&&this.manager.easeMap[d]&&(d=this.manager.easeMap[d]),this.isRunning?(console.warn("Phaser.Tween.from cannot be called after Tween.start"),this):(this.timeline.push(new c.TweenData(this).from(a,b,d,f,g,h)),e&&this.start(),this)},start:function(a){if(void 0===a&&(a=0),null===this.game||null===this.target||0===this.timeline.length||this.isRunning)return this;for(var b=0;ba||a>this.timeline.length-1)&&(a=0),this.current=a,this.timeline[this.current].start(),this},stop:function(a){return void 0===a&&(a=!1),this.isRunning=!1,this._onUpdateCallback=null,this._onUpdateCallbackContext=null,a&&(this.onComplete.dispatch(this.target,this),this.chainedTween&&this.chainedTween.start()),this.manager.remove(this),this},updateTweenData:function(a,b,c){if(0===this.timeline.length)return this;if(void 0===c&&(c=0),-1===c)for(var d=0;d0?arguments[a-1].chainedTween=arguments[a]:this.chainedTween=arguments[a];return this},loop:function(a){return void 0===a&&(a=!0),a?this.repeatAll(-1):this.repeatCounter=0,this},onUpdateCallback:function(a,b){return this._onUpdateCallback=a,this._onUpdateCallbackContext=b,this},pause:function(){this.isPaused=!0,this._codePaused=!0,this._pausedTime=this.game.time.time},_pause:function(){this._codePaused||(this.isPaused=!0,this._pausedTime=this.game.time.time)},resume:function(){if(this.isPaused){this.isPaused=!1,this._codePaused=!1;for(var a=0;a0?(this.repeatCounter--,this.timeline[this.current].start(),this.onRepeat.dispatch(this.target,this),!0):(this.isRunning=!1,this.onComplete.dispatch(this.target,this),this.chainedTween&&this.chainedTween.start(),!1):(this.onChildComplete.dispatch(this.target,this),this.timeline[this.current].start(),!0)}},generateData:function(a,b){if(null===this.game||null===this.target)return null;void 0===a&&(a=60),void 0===b&&(b=[]);for(var c=0;c0?!1:!0,this.isFrom)for(var a in this.vStartCache)this.vStart[a]=this.vEndCache[a],this.vEnd[a]=this.vStartCache[a],this.parent.target[a]=this.vStart[a];return this.value=0,this.yoyoCounter=0,this},loadValues:function(){for(var a in this.parent.properties){if(this.vStart[a]=this.parent.properties[a],Array.isArray(this.vEnd[a])){if(0===this.vEnd[a].length)continue;0===this.percent&&(this.vEnd[a]=[this.vStart[a]].concat(this.vEnd[a]))}"undefined"!=typeof this.vEnd[a]?("string"==typeof this.vEnd[a]&&(this.vEnd[a]=this.vStart[a]+parseFloat(this.vEnd[a],10)),this.parent.properties[a]=this.vEnd[a]):this.vEnd[a]=this.vStart[a],this.vStartCache[a]=this.vStart[a],this.vEndCache[a]=this.vEnd[a]}return this},update:function(a){if(this.isRunning){if(a=this.startTime))return c.TweenData.PENDING;this.isRunning=!0}this.parent.reverse?(this.dt-=this.game.time.elapsedMS*this.parent.timeScale,this.dt=Math.max(this.dt,0)):(this.dt+=this.game.time.elapsedMS*this.parent.timeScale,this.dt=Math.min(this.dt,this.duration)),this.percent=this.dt/this.duration,this.value=this.easingFunction(this.percent);for(var b in this.vEnd){var d=this.vStart[b],e=this.vEnd[b];this.parent.target[b]=Array.isArray(e)?this.interpolationFunction.call(this.interpolationContext,e,this.value):d+(e-d)*this.value}return!this.parent.reverse&&1===this.percent||this.parent.reverse&&0===this.percent?this.repeat():c.TweenData.RUNNING},generateData:function(a){this.dt=this.parent.reverse?this.duration:0;var b=[],c=!1,d=1/a*1e3;do{this.parent.reverse?(this.dt-=d,this.dt=Math.max(this.dt,0)):(this.dt+=d,this.dt=Math.min(this.dt,this.duration)),this.percent=this.dt/this.duration,this.value=this.easingFunction(this.percent);var e={};for(var f in this.vEnd){var g=this.vStart[f],h=this.vEnd[f];e[f]=Array.isArray(h)?this.interpolationFunction(h,this.value):g+(h-g)*this.value}b.push(e),(!this.parent.reverse&&1===this.percent||this.parent.reverse&&0===this.percent)&&(c=!0)}while(!c);if(this.yoyo){var i=b.slice();i.reverse(),b=b.concat(i)}return b},repeat:function(){if(this.yoyo){if(this.inReverse&&0===this.repeatCounter)return c.TweenData.COMPLETE;this.inReverse=!this.inReverse}else if(0===this.repeatCounter)return c.TweenData.COMPLETE;if(this.inReverse)for(var a in this.vStartCache)this.vStart[a]=this.vEndCache[a],this.vEnd[a]=this.vStartCache[a];else{for(var a in this.vStartCache)this.vStart[a]=this.vStartCache[a],this.vEnd[a]=this.vEndCache[a];this.repeatCounter>0&&this.repeatCounter--}return this.startTime=this.game.time.time,this.yoyo&&this.inReverse?this.startTime+=this.yoyoDelay:this.inReverse||(this.startTime+=this.repeatDelay),this.dt=this.parent.reverse?this.duration:0,c.TweenData.LOOPED}},c.TweenData.prototype.constructor=c.TweenData,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 0===a?0:1===a?1:1-Math.cos(a*Math.PI/2)},Out:function(a){return 0===a?0:1===a?1:Math.sin(a*Math.PI/2)},InOut:function(a){return 0===a?0:1===a?1:.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.Easing.Power0=c.Easing.Linear.None,c.Easing.Power1=c.Easing.Quadratic.Out,c.Easing.Power2=c.Easing.Cubic.Out,c.Easing.Power3=c.Easing.Quartic.Out,c.Easing.Power4=c.Easing.Quintic.Out,c.Time=function(a){this.game=a,this.time=0,this.prevTime=0,this.now=0,this.elapsed=0,this.elapsedMS=0,this.physicsElapsed=0,this.physicsElapsedMS=0,this.desiredFps=60,this.suggestedFps=null,this.slowMotion=1,this.advancedTiming=!1,this.frames=0,this.fps=0,this.fpsMin=1e3,this.fpsMax=0,this.msMin=1e3,this.msMax=0,this.pauseDuration=0,this.timeToCall=0,this.timeExpected=0,this.events=new c.Timer(this.game,!1),this._frameCount=0,this._elapsedAccumulator=0,this._started=0,this._timeLastSecond=0,this._pauseStarted=0,this._justResumed=!1,this._timers=[]},c.Time.prototype={boot:function(){this._started=Date.now(),this.time=Date.now(),this.events.start()},add:function(a){return this._timers.push(a),a},create:function(a){void 0===a&&(a=!0);var b=new c.Timer(this.game,a);return this._timers.push(b),b},removeAll:function(){for(var a=0;aa;)this._timers[a].update(this.time)?a++:(this._timers.splice(a,1),b--)},updateAdvancedTiming:function(){this._frameCount++,this._elapsedAccumulator+=this.elapsed,this._frameCount>=2*this.desiredFps&&(this.suggestedFps=5*Math.floor(200/(this._elapsedAccumulator/this._frameCount)),this._frameCount=0,this._elapsedAccumulator=0),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)},gamePaused:function(){this._pauseStarted=Date.now(),this.events.pause();for(var a=this._timers.length;a--;)this._timers[a]._pause()},gameResumed:function(){this.time=Date.now(),this.pauseDuration=this.time-this._pauseStarted,this.events.resume();for(var a=this._timers.length;a--;)this._timers[a]._resume()},totalElapsedSeconds:function(){return.001*(this.time-this._started)},elapsedSince:function(a){return this.time-a},elapsedSecondsSince:function(a){return.001*(this.time-a)},reset:function(){this._started=this.time,this.removeAll()}},c.Time.prototype.constructor=c.Time,c.Timer=function(a,b){void 0===b&&(b=!0),this.game=a,this.running=!1,this.autoDestroy=b,this.expired=!1,this.elapsed=0,this.events=[],this.onComplete=new c.Signal,this.nextTick=0,this.timeCap=1e3,this.paused=!1,this._codePaused=!1,this._started=0,this._pauseStarted=0,this._pauseTotal=0,this._now=Date.now(),this._len=0,this._marked=0,this._i=0,this._diff=0,this._newTick=0},c.Timer.MINUTE=6e4,c.Timer.SECOND=1e3,c.Timer.HALF=500,c.Timer.QUARTER=250,c.Timer.prototype={create:function(a,b,d,e,f,g){a=Math.round(a);var h=a;h+=0===this._now?this.game.time.time:this._now;var i=new c.TimerEvent(this,a,h,d,b,e,f,g);return this.events.push(i),this.order(),this.expired=!1,i},add:function(a,b,c){return this.create(a,!1,0,b,c,Array.prototype.splice.call(arguments,3))},repeat:function(a,b,c,d){return this.create(a,!1,b,c,d,Array.prototype.splice.call(arguments,4))},loop:function(a,b,c){return this.create(a,!0,0,b,c,Array.prototype.splice.call(arguments,3))},start:function(a){if(!this.running){this._started=this.game.time.time+(a||0),this.running=!0;for(var b=0;b0&&(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.events[this._i].pendingDelete;)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},destroy:function(){this.onComplete.removeAll(),this.running=!1,this.events=[],this._len=0,this._i=0}},Object.defineProperty(c.Timer.prototype,"next",{get:function(){return this.nextTick}}),Object.defineProperty(c.Timer.prototype,"duration",{get:function(){return this.running&&this.nextTick>this._now?this.nextTick-this._now:0}}),Object.defineProperty(c.Timer.prototype,"length",{get:function(){return this.events.length}}),Object.defineProperty(c.Timer.prototype,"ms",{get:function(){return this.running?this._now-this._started-this._pauseTotal:0}}),Object.defineProperty(c.Timer.prototype,"seconds",{get:function(){return this.running?.001*this.ms:0}}),c.Timer.prototype.constructor=c.Timer,c.TimerEvent=function(a,b,c,d,e,f,g,h){this.timer=a,this.delay=b,this.tick=c,this.repeatCount=d-1,this.loop=e,this.callback=f,this.callbackContext=g,this.args=h,this.pendingDelete=!1},c.TimerEvent.prototype.constructor=c.TimerEvent,c.AnimationManager=function(a){this.sprite=a,this.game=a.game,this.currentFrame=null,this.currentAnim=null,this.updateIfVisible=!0,this.isLoaded=!1,this._frameData=null,this._anims={},this._outputFrames=[]},c.AnimationManager.prototype={loadFrameData:function(a,b){if(void 0===a)return!1;if(this.isLoaded)for(var c in this._anims)this._anims[c].updateFrameData(a);return this._frameData=a,void 0===b||null===b?this.frame=0:"string"==typeof b?this.frameName=b:this.frame=b,this.isLoaded=!0,!0},copyFrameData:function(a,b){if(this._frameData=a.clone(),this.isLoaded)for(var c in this._anims)this._anims[c].updateFrameData(this._frameData);return void 0===b||null===b?this.frame=0:"string"==typeof b?this.frameName=b:this.frame=b,this.isLoaded=!0,!0},add:function(a,b,d,e,f){return b=b||[],d=d||60,void 0===e&&(e=!1),void 0===f&&(f=b&&"number"==typeof b[0]?!0:!1),this._outputFrames=[],this._frameData.getFrameIndexes(b,f,this._outputFrames),this._anims[a]=new c.Animation(this.game,this.sprite,a,this._frameData,this._outputFrames,d,e),this.currentAnim=this._anims[a],this.sprite.tilingTexture&&(this.sprite.refreshTexture=!0),this._anims[a]},validateFrames:function(a,b){void 0===b&&(b=!0);for(var c=0;cthis._frameData.total)return!1}else if(this._frameData.checkFrameName(a[c])===!1)return!1;return!0},play:function(a,b,c,d){return this._anims[a]?this.currentAnim===this._anims[a]?this.currentAnim.isPlaying===!1?(this.currentAnim.paused=!1,this.currentAnim.play(b,c,d)):this.currentAnim:(this.currentAnim&&this.currentAnim.isPlaying&&this.currentAnim.stop(),this.currentAnim=this._anims[a],this.currentAnim.paused=!1,this.currentFrame=this.currentAnim.currentFrame,this.currentAnim.play(b,c,d)):void 0},stop:function(a,b){void 0===b&&(b=!1),"string"==typeof a?this._anims[a]&&(this.currentAnim=this._anims[a],this.currentAnim.stop(b)):this.currentAnim&&this.currentAnim.stop(b)},update:function(){return this.updateIfVisible&&!this.sprite.visible?!1:this.currentAnim&&this.currentAnim.update()?(this.currentFrame=this.currentAnim.currentFrame,!0):!1},next:function(a){this.currentAnim&&(this.currentAnim.next(a),this.currentFrame=this.currentAnim.currentFrame)},previous:function(a){this.currentAnim&&(this.currentAnim.previous(a),this.currentFrame=this.currentAnim.currentFrame)},getAnimation:function(a){return"string"==typeof a&&this._anims[a]?this._anims[a]:null},refreshFrame:function(){this.sprite.setTexture(PIXI.TextureCache[this.currentFrame.uuid])},destroy:function(){var a=null;for(var a in this._anims)this._anims.hasOwnProperty(a)&&this._anims[a].destroy();this._anims={},this._outputFrames=[],this._frameData=null,this.currentAnim=null,this.currentFrame=null,this.sprite=null,this.game=null}},c.AnimationManager.prototype.constructor=c.AnimationManager,Object.defineProperty(c.AnimationManager.prototype,"frameData",{get:function(){return this._frameData}}),Object.defineProperty(c.AnimationManager.prototype,"frameTotal",{get:function(){return this._frameData.total}}),Object.defineProperty(c.AnimationManager.prototype,"paused",{get:function(){return this.currentAnim.isPaused},set:function(a){this.currentAnim.paused=a}}),Object.defineProperty(c.AnimationManager.prototype,"name",{get:function(){return this.currentAnim?this.currentAnim.name:void 0}}),Object.defineProperty(c.AnimationManager.prototype,"frame",{get:function(){return this.currentFrame?this.currentFrame.index:void 0},set:function(a){"number"==typeof a&&this._frameData&&null!==this._frameData.getFrame(a)&&(this.currentFrame=this._frameData.getFrame(a),this.currentFrame&&this.sprite.setFrame(this.currentFrame))}}),Object.defineProperty(c.AnimationManager.prototype,"frameName",{get:function(){return this.currentFrame?this.currentFrame.name:void 0},set:function(a){"string"==typeof a&&this._frameData&&null!==this._frameData.getFrameByName(a)?(this.currentFrame=this._frameData.getFrameByName(a),this.currentFrame&&(this._frameIndex=this.currentFrame.index,this.sprite.setFrame(this.currentFrame))):console.warn("Cannot set frameName: "+a)}}),c.Animation=function(a,b,d,e,f,g,h){void 0===h&&(h=!1),this.game=a,this._parent=b,this._frameData=e,this.name=d,this._frames=[],this._frames=this._frames.concat(f),this.delay=1e3/g,this.loop=h,this.loopCount=0,this.killOnComplete=!1,this.isFinished=!1,this.isPlaying=!1,this.isPaused=!1,this._pauseStartTime=0,this._frameIndex=0,this._frameDiff=0,this._frameSkip=1,this.currentFrame=this._frameData.getFrame(this._frames[this._frameIndex]),this.onStart=new c.Signal,this.onUpdate=null,this.onComplete=new c.Signal,this.onLoop=new c.Signal,this.game.onPause.add(this.onPause,this),this.game.onResume.add(this.onResume,this)},c.Animation.prototype={play:function(a,b,c){return"number"==typeof a&&(this.delay=1e3/a),"boolean"==typeof b&&(this.loop=b),"undefined"!=typeof c&&(this.killOnComplete=c),this.isPlaying=!0,this.isFinished=!1,this.paused=!1,this.loopCount=0,this._timeLastFrame=this.game.time.time,this._timeNextFrame=this.game.time.time+this.delay,this._frameIndex=0,this.updateCurrentFrame(!1,!0),this._parent.events.onAnimationStart$dispatch(this._parent,this),this.onStart.dispatch(this._parent,this),this._parent.animations.currentAnim=this,this._parent.animations.currentFrame=this.currentFrame,this},restart:function(){this.isPlaying=!0,this.isFinished=!1,this.paused=!1,this.loopCount=0,this._timeLastFrame=this.game.time.time,this._timeNextFrame=this.game.time.time+this.delay,this._frameIndex=0,this.currentFrame=this._frameData.getFrame(this._frames[this._frameIndex]),this._parent.setFrame(this.currentFrame),this._parent.animations.currentAnim=this,this._parent.animations.currentFrame=this.currentFrame,this.onStart.dispatch(this._parent,this)},setFrame:function(a,b){var c;if(void 0===b&&(b=!1),"string"==typeof a)for(var d=0;d=this._timeNextFrame?(this._frameSkip=1,this._frameDiff=this.game.time.time-this._timeNextFrame,this._timeLastFrame=this.game.time.time,this._frameDiff>this.delay&&(this._frameSkip=Math.floor(this._frameDiff/this.delay),this._frameDiff-=this._frameSkip*this.delay),this._timeNextFrame=this.game.time.time+(this.delay-this._frameDiff),this._frameIndex+=this._frameSkip,this._frameIndex>=this._frames.length?this.loop?(this._frameIndex%=this._frames.length,this.currentFrame=this._frameData.getFrame(this._frames[this._frameIndex]),this.currentFrame&&this._parent.setFrame(this.currentFrame),this.loopCount++,this._parent.events.onAnimationLoop$dispatch(this._parent,this),this.onLoop.dispatch(this._parent,this),this.onUpdate?(this.onUpdate.dispatch(this,this.currentFrame),!!this._frameData):!0):(this.complete(),!1):this.updateCurrentFrame(!0)):!1},updateCurrentFrame:function(a,b){if(void 0===b&&(b=!1),!this._frameData)return!1;var c=this.currentFrame.index;return this.currentFrame=this._frameData.getFrame(this._frames[this._frameIndex]),this.currentFrame&&(b||!b&&c!==this.currentFrame.index)&&this._parent.setFrame(this.currentFrame),this.onUpdate&&a?(this.onUpdate.dispatch(this,this.currentFrame),!!this._frameData):!0},next:function(a){void 0===a&&(a=1);var b=this._frameIndex+a;b>=this._frames.length&&(this.loop?b%=this._frames.length:b=this._frames.length-1),b!==this._frameIndex&&(this._frameIndex=b,this.updateCurrentFrame(!0))},previous:function(a){void 0===a&&(a=1);var b=this._frameIndex-a;0>b&&(this.loop?b=this._frames.length+b:b++),b!==this._frameIndex&&(this._frameIndex=b,this.updateCurrentFrame(!0))},updateFrameData:function(a){this._frameData=a,this.currentFrame=this._frameData?this._frameData.getFrame(this._frames[this._frameIndex%this._frames.length]):null},destroy:function(){this._frameData&&(this.game.onPause.remove(this.onPause,this),this.game.onResume.remove(this.onResume,this),this.game=null,this._parent=null,this._frames=null,this._frameData=null,this.currentFrame=null,this.isPlaying=!1,this.onStart.dispose(),this.onLoop.dispose(),this.onComplete.dispose(),this.onUpdate&&this.onUpdate.dispose())},complete:function(){this._frameIndex=this._frames.length-1,this.currentFrame=this._frameData.getFrame(this._frames[this._frameIndex]),this.isPlaying=!1,this.isFinished=!0,this.paused=!1,this._parent.events.onAnimationComplete$dispatch(this._parent,this),this.onComplete.dispatch(this._parent,this),this.killOnComplete&&this._parent.kill()}},c.Animation.prototype.constructor=c.Animation,Object.defineProperty(c.Animation.prototype,"paused",{get:function(){return this.isPaused},set:function(a){this.isPaused=a,a?this._pauseStartTime=this.game.time.time:this.isPlaying&&(this._timeNextFrame=this.game.time.time+this.delay)}}),Object.defineProperty(c.Animation.prototype,"frameTotal",{get:function(){return this._frames.length}}),Object.defineProperty(c.Animation.prototype,"frame",{get:function(){return null!==this.currentFrame?this.currentFrame.index:this._frameIndex},set:function(a){this.currentFrame=this._frameData.getFrame(this._frames[a]),null!==this.currentFrame&&(this._frameIndex=a,this._parent.setFrame(this.currentFrame),this.onUpdate&&this.onUpdate.dispatch(this,this.currentFrame))}}),Object.defineProperty(c.Animation.prototype,"speed",{get:function(){return Math.round(1e3/this.delay)},set:function(a){a>=1&&(this.delay=1e3/a)}}),Object.defineProperty(c.Animation.prototype,"enableUpdate",{get:function(){return null!==this.onUpdate},set:function(a){a&&null===this.onUpdate?this.onUpdate=new c.Signal:a||null===this.onUpdate||(this.onUpdate.dispose(),this.onUpdate=null)}}),c.Animation.generateFrameNames=function(a,b,d,e,f){void 0===e&&(e="");var g=[],h="";if(d>b)for(var i=b;d>=i;i++)h="number"==typeof f?c.Utils.pad(i.toString(),f,"0",1):i.toString(),h=a+h+e,g.push(h);else for(var i=b;i>=d;i--)h="number"==typeof f?c.Utils.pad(i.toString(),f,"0",1):i.toString(),h=a+h+e,g.push(h);return g},c.Frame=function(a,b,d,e,f,g){this.index=a,this.x=b,this.y=d,this.width=e,this.height=f,this.name=g,this.centerX=Math.floor(e/2),this.centerY=Math.floor(f/2),this.distance=c.Math.distance(0,0,e,f),this.rotated=!1,this.rotationDirection="cw",this.trimmed=!1,this.sourceSizeW=e,this.sourceSizeH=f,this.spriteSourceSizeX=0,this.spriteSourceSizeY=0,this.spriteSourceSizeW=0,this.spriteSourceSizeH=0,this.right=this.x+this.width,this.bottom=this.y+this.height -},c.Frame.prototype={resize:function(a,b){this.width=a,this.height=b,this.centerX=Math.floor(a/2),this.centerY=Math.floor(b/2),this.distance=c.Math.distance(0,0,a,b),this.sourceSizeW=a,this.sourceSizeH=b,this.right=this.x+a,this.bottom=this.y+b},setTrim:function(a,b,c,d,e,f,g){this.trimmed=a,a&&(this.sourceSizeW=b,this.sourceSizeH=c,this.centerX=Math.floor(b/2),this.centerY=Math.floor(c/2),this.spriteSourceSizeX=d,this.spriteSourceSizeY=e,this.spriteSourceSizeW=f,this.spriteSourceSizeH=g)},clone:function(){var a=new c.Frame(this.index,this.x,this.y,this.width,this.height,this.name);for(var b in this)this.hasOwnProperty(b)&&(a[b]=this[b]);return a},getRect:function(a){return void 0===a?a=new c.Rectangle(this.x,this.y,this.width,this.height):a.setTo(this.x,this.y,this.width,this.height),a}},c.Frame.prototype.constructor=c.Frame,c.FrameData=function(){this._frames=[],this._frameNames=[]},c.FrameData.prototype={addFrame:function(a){return a.index=this._frames.length,this._frames.push(a),""!==a.name&&(this._frameNames[a.name]=a.index),a},getFrame:function(a){return a>=this._frames.length&&(a=0),this._frames[a]},getFrameByName:function(a){return"number"==typeof this._frameNames[a]?this._frames[this._frameNames[a]]:null},checkFrameName:function(a){return null==this._frameNames[a]?!1:!0},clone:function(){for(var a=new c.FrameData,b=0;b=d;d++)c.push(this._frames[d]);return c},getFrames:function(a,b,c){if(void 0===b&&(b=!0),void 0===c&&(c=[]),void 0===a||0===a.length)for(var d=0;d=d&&(d=Math.floor(-j/Math.min(-1,d))),0>=e&&(e=Math.floor(-k/Math.min(-1,e)));var l=Math.floor((j-g)/(d+h)),m=Math.floor((k-g)/(e+h)),n=l*m;if(-1!==f&&(n=f),0===j||0===k||d>j||e>k||0===n)return console.warn("Phaser.AnimationParser.spriteSheet: '"+b+"'s width/height zero or width/height < given frameWidth/frameHeight"),null;for(var o=new c.FrameData,p=g,q=g,r=0;n>r;r++)o.addFrame(new c.Frame(r,p,q,d,e,"")),p+=d+h,p+d>j&&(p=g,q+=e+h);return o},JSONData:function(a,b){if(!b.frames)return console.warn("Phaser.AnimationParser.JSONData: Invalid Texture Atlas JSON given, missing 'frames' array"),void console.log(b);for(var d,e=new c.FrameData,f=b.frames,g=0;g tag");for(var d,e,f,g,h,i,j,k,l,m,n,o=new c.FrameData,p=b.getElementsByTagName("SubTexture"),q=0;q-1},getAssetIndex:function(a,b){for(var c=-1,d=0;d-1?{index:c,file:this._fileList[c]}:!1},reset:function(a,b){void 0===b&&(b=!1),this.resetLocked||(a&&(this.preloadSprite=null),this.isLoading=!1,this._processingHead=0,this._fileList.length=0,this._flightQueue.length=0,this._fileLoadStarted=!1,this._totalFileCount=0,this._totalPackCount=0,this._loadedPackCount=0,this._loadedFileCount=0,b&&(this.onLoadStart.removeAll(),this.onLoadComplete.removeAll(),this.onPackComplete.removeAll(),this.onFileStart.removeAll(),this.onFileComplete.removeAll(),this.onFileError.removeAll()))},addToFileList:function(a,b,c,d,e,f){if(void 0===e&&(e=!1),void 0===b||""===b)return console.warn("Phaser.Loader: Invalid or no key given of type "+a),this;if(void 0===c||null===c){if(!f)return console.warn("Phaser.Loader: No URL given for file type: "+a+" key: "+b),this;c=b+f}var g={type:a,key:b,path:this.path,url:c,syncPoint:this._withSyncPointDepth>0,data:null,loading:!1,loaded:!1,error:!1};if(d)for(var h in d)g[h]=d[h];var i=this.getAssetIndex(a,b);if(e&&i>-1){var j=this._fileList[i];j.loading||j.loaded?(this._fileList.push(g),this._totalFileCount++):this._fileList[i]=g}else-1===i&&(this._fileList.push(g),this._totalFileCount++);return this},replaceInFileList:function(a,b,c,d){return this.addToFileList(a,b,c,d,!0)},pack:function(a,b,c,d){if(void 0===b&&(b=null),void 0===c&&(c=null),void 0===d&&(d=null),!b&&!c)return console.warn("Phaser.Loader.pack - Both url and data are null. One must be set."),this;var e={type:"packfile",key:a,url:b,path:this.path,syncPoint:!0,data:null,loading:!1,loaded:!1,error:!1,callbackContext:d};c&&("string"==typeof c&&(c=JSON.parse(c)),e.data=c||{},e.loaded=!0);for(var f=0;f=e||d&&this._loadedPackCount===this._totalPackCount)break}if(this.updateProgress(),this._processingHead>=this._fileList.length)this.finishedLoading();else if(!this._flightQueue.length){console.warn("Phaser.Loader - aborting: processing queue empty, loading may have stalled");var f=this;setTimeout(function(){f.finishedLoading(!0)},2e3)}},finishedLoading:function(a){this.hasLoaded||(this.hasLoaded=!0,this.isLoading=!1,a||this._fileLoadStarted||(this._fileLoadStarted=!0,this.onLoadStart.dispatch()),this.onLoadComplete.dispatch(),this.reset(),this.game.state.loadComplete())},asyncComplete:function(a,b){void 0===b&&(b=""),a.loaded=!0,a.error=!!b,b&&(a.errorMessage=b,console.warn("Phaser.Loader - "+a.type+"["+a.key+"]: "+b)),this.processLoadQueue()},processPack:function(a){var b=a.data[a.key];if(!b)return void console.warn("Phaser.Loader - "+a.key+": pack has data, but not for pack key");for(var d=0;d=10)||(this._warnedAboutXDomainRequest=!0,console.warn("Phaser.Loader - using XDomainRequest outside of IE 9"));var f=new window.XDomainRequest;f.open("GET",b,!0),f.responseType=c,f.timeout=3e3,e=e||this.fileError;var g=this;f.onerror=function(){try{return e.call(g,a,f)}catch(b){g.asyncComplete(a,b.message||"Exception")}},f.ontimeout=function(){try{return e.call(g,a,f)}catch(b){g.asyncComplete(a,b.message||"Exception")}},f.onprogress=function(){},f.onload=function(){try{return d.call(g,a,f) -}catch(b){g.asyncComplete(a,b.message||"Exception")}},a.requestObject=f,a.requestUrl=b,setTimeout(function(){f.send()},0)},getVideoURL:function(a){for(var b=0;b=0&&(d=d.substr(0,d.indexOf("?")));var e=d.substr((Math.max(0,d.lastIndexOf("."))||1/0)+1);c=e.toLowerCase()}if(this.game.device.canPlayVideo(c))return a[b]}return null},getAudioURL:function(a){if(this.game.sound.noAudio)return null;for(var b=0;b=0&&(d=d.substr(0,d.indexOf("?")));var e=d.substr((Math.max(0,d.lastIndexOf("."))||1/0)+1);c=e.toLowerCase()}if(this.game.device.canPlayAudio(c))return a[b]}return null},fileError:function(a,b,c){var d=a.requestUrl||this.transformUrl(a.url,a),e="error loading asset from URL "+d;!c&&b&&(c=b.status),c&&(e=e+" ("+c+")"),this.asyncComplete(a,e)},fileComplete:function(a,b){var d=!0;switch(a.type){case"packfile":var e=JSON.parse(b.responseText);a.data=e||{};break;case"image":this.cache.addImage(a.key,a.url,a.data);break;case"spritesheet":this.cache.addSpriteSheet(a.key,a.url,a.data,a.frameWidth,a.frameHeight,a.frameMax,a.margin,a.spacing);break;case"textureatlas":if(null==a.atlasURL)this.cache.addTextureAtlas(a.key,a.url,a.data,a.atlasData,a.format);else if(d=!1,a.format==c.Loader.TEXTURE_ATLAS_JSON_ARRAY||a.format==c.Loader.TEXTURE_ATLAS_JSON_HASH)this.xhrLoad(a,this.transformUrl(a.atlasURL,a),"text",this.jsonLoadComplete);else{if(a.format!=c.Loader.TEXTURE_ATLAS_XML_STARLING)throw new Error("Phaser.Loader. Invalid Texture Atlas format: "+a.format);this.xhrLoad(a,this.transformUrl(a.atlasURL,a),"text",this.xmlLoadComplete)}break;case"bitmapfont":a.atlasURL?(d=!1,this.xhrLoad(a,this.transformUrl(a.atlasURL,a),"text",function(a,b){var c;try{c=JSON.parse(b.responseText)}catch(d){}c?(a.atlasType="json",this.jsonLoadComplete(a,b)):(a.atlasType="xml",this.xmlLoadComplete(a,b))})):this.cache.addBitmapFont(a.key,a.url,a.data,a.atlasData,a.atlasType,a.xSpacing,a.ySpacing);break;case"video":if(a.asBlob)try{a.data=new Blob([new Uint8Array(b.response)])}catch(f){throw new Error("Phaser.Loader. Unable to parse video file as Blob: "+a.key)}this.cache.addVideo(a.key,a.url,a.data,a.asBlob);break;case"audio":this.game.sound.usingWebAudio?(a.data=b.response,this.cache.addSound(a.key,a.url,a.data,!0,!1),a.autoDecode&&this.game.sound.decode(a.key)):this.cache.addSound(a.key,a.url,a.data,!1,!0);break;case"text":a.data=b.responseText,this.cache.addText(a.key,a.url,a.data);break;case"shader":a.data=b.responseText,this.cache.addShader(a.key,a.url,a.data);break;case"physics":var e=JSON.parse(b.responseText);this.cache.addPhysicsData(a.key,a.url,e,a.format);break;case"script":a.data=document.createElement("script"),a.data.language="javascript",a.data.type="text/javascript",a.data.defer=!1,a.data.text=b.responseText,document.head.appendChild(a.data),a.callback&&(a.data=a.callback.call(a.callbackContext,a.key,b.responseText));break;case"binary":a.data=a.callback?a.callback.call(a.callbackContext,a.key,b.response):b.response,this.cache.addBinary(a.key,a.data)}d&&this.asyncComplete(a)},jsonLoadComplete:function(a,b){var c=JSON.parse(b.responseText);"tilemap"===a.type?this.cache.addTilemap(a.key,a.url,c,a.format):"bitmapfont"===a.type?this.cache.addBitmapFont(a.key,a.url,a.data,c,a.atlasType,a.xSpacing,a.ySpacing):"json"===a.type?this.cache.addJSON(a.key,a.url,c):this.cache.addTextureAtlas(a.key,a.url,a.data,c,a.format),this.asyncComplete(a)},csvLoadComplete:function(a,b){var c=b.responseText;this.cache.addTilemap(a.key,a.url,c,a.format),this.asyncComplete(a)},xmlLoadComplete:function(a,b){var c=b.responseText,d=this.parseXml(c);if(!d){var e=b.responseType||b.contentType;return console.warn("Phaser.Loader - "+a.key+": invalid XML ("+e+")"),void this.asyncComplete(a,"invalid XML")}"bitmapfont"===a.type?this.cache.addBitmapFont(a.key,a.url,a.data,d,a.atlasType,a.xSpacing,a.ySpacing):"textureatlas"===a.type?this.cache.addTextureAtlas(a.key,a.url,a.data,d,a.format):"xml"===a.type&&this.cache.addXML(a.key,a.url,d),this.asyncComplete(a)},parseXml:function(a){var b;try{if(window.DOMParser){var c=new DOMParser;b=c.parseFromString(a,"text/xml")}else b=new ActiveXObject("Microsoft.XMLDOM"),b.async="false",b.loadXML(a)}catch(d){b=null}return b&&b.documentElement&&!b.getElementsByTagName("parsererror").length?b:null},updateProgress:function(){this.preloadSprite&&(0===this.preloadSprite.direction?this.preloadSprite.rect.width=Math.floor(this.preloadSprite.width/100*this.progress):this.preloadSprite.rect.height=Math.floor(this.preloadSprite.height/100*this.progress),this.preloadSprite.sprite?this.preloadSprite.sprite.updateCrop():this.preloadSprite=null)},totalLoadedFiles:function(){return this._loadedFileCount},totalQueuedFiles:function(){return this._totalFileCount-this._loadedFileCount},totalLoadedPacks:function(){return this._totalPackCount},totalQueuedPacks:function(){return this._totalPackCount-this._loadedPackCount}},Object.defineProperty(c.Loader.prototype,"progressFloat",{get:function(){var a=this._loadedFileCount/this._totalFileCount*100;return c.Math.clamp(a||0,0,100)}}),Object.defineProperty(c.Loader.prototype,"progress",{get:function(){return Math.round(this.progressFloat)}}),c.Loader.prototype.constructor=c.Loader,c.LoaderParser={bitmapFont:function(a,b,c,d){return this.xmlBitmapFont(a,b,c,d)},xmlBitmapFont:function(a,b,c,d){var e={},f=a.getElementsByTagName("info")[0],g=a.getElementsByTagName("common")[0];e.font=f.getAttribute("face"),e.size=parseInt(f.getAttribute("size"),10),e.lineHeight=parseInt(g.getAttribute("lineHeight"),10)+d,e.chars={};for(var h=a.getElementsByTagName("char"),i=0;i=this.durationMS&&(this.usingWebAudio?this.loop?(this.onLoop.dispatch(this),""===this.currentMarker?(this.currentTime=0,this.startTime=this.game.time.time):(this.onMarkerComplete.dispatch(this.currentMarker,this),this.play(this.currentMarker,0,this.volume,!0,!0))):""!==this.currentMarker&&this.stop():this.loop?(this.onLoop.dispatch(this),this.play(this.currentMarker,0,this.volume,!0,!0)):this.stop()))},loopFull:function(a){this.play(null,0,a,!0)},play:function(a,b,c,d,e){if((void 0===a||a===!1||null===a)&&(a=""),void 0===e&&(e=!0),this.isPlaying&&!this.allowMultiple&&!e&&!this.override)return this;if(this._sound&&this.isPlaying&&!this.allowMultiple&&(this.override||e))if(this.usingWebAudio)if(this._sound.disconnect(this.externalNode?this.externalNode:this.gainNode),void 0===this._sound.stop)this._sound.noteOff(0);else try{this._sound.stop(0)}catch(f){}else this.usingAudioTag&&(this._sound.pause(),this._sound.currentTime=0);if(""===a&&Object.keys(this.markers).length>0)return this;if(""!==a){if(this.currentMarker=a,!this.markers[a])return this;this.position=this.markers[a].start,this.volume=this.markers[a].volume,this.loop=this.markers[a].loop,this.duration=this.markers[a].duration,this.durationMS=this.markers[a].durationMS,"undefined"!=typeof c&&(this.volume=c),"undefined"!=typeof d&&(this.loop=d),this._tempMarker=a,this._tempPosition=this.position,this._tempVolume=this.volume,this._tempLoop=this.loop}else b=b||0,void 0===c&&(c=this._volume),void 0===d&&(d=this.loop),this.position=b,this.volume=c,this.loop=d,this.duration=0,this.durationMS=0,this._tempMarker=a,this._tempPosition=b,this._tempVolume=c,this._tempLoop=d;return this.usingWebAudio?this.game.cache.isSoundDecoded(this.key)?(this._sound=this.context.createBufferSource(),this._sound.connect(this.externalNode?this.externalNode:this.gainNode),this._buffer=this.game.cache.getSoundData(this.key),this._sound.buffer=this._buffer,this.loop&&""===a&&(this._sound.loop=!0),this.loop||""!==a||(this._sound.onended=this.onEndedHandler.bind(this)),this.totalDuration=this._sound.buffer.duration,0===this.duration&&(this.duration=this.totalDuration,this.durationMS=Math.ceil(1e3*this.totalDuration)),void 0===this._sound.start?this._sound.noteGrainOn(0,this.position,this.duration):this.loop&&""===a?this._sound.start(0,0):this._sound.start(0,this.position,this.duration),this.isPlaying=!0,this.startTime=this.game.time.time,this.currentTime=0,this.stopTime=this.startTime+this.durationMS,this.onPlay.dispatch(this)):(this.pendingPlayback=!0,this.game.cache.getSound(this.key)&&this.game.cache.getSound(this.key).isDecoding===!1&&this.game.sound.decode(this.key,this)):this.game.cache.getSound(this.key)&&this.game.cache.getSound(this.key).locked?(this.game.cache.reloadSound(this.key),this.pendingPlayback=!0):this._sound&&(this.game.device.cocoonJS||4===this._sound.readyState)?(this._sound.play(),this.totalDuration=this._sound.duration,0===this.duration&&(this.duration=this.totalDuration,this.durationMS=1e3*this.totalDuration),this._sound.currentTime=this.position,this._sound.muted=this._muted,this._sound.volume=this._muted?0:this._volume,this.isPlaying=!0,this.startTime=this.game.time.time,this.currentTime=0,this.stopTime=this.startTime+this.durationMS,this.onPlay.dispatch(this)):this.pendingPlayback=!0,this},restart:function(a,b,c,d){a=a||"",b=b||0,c=c||1,void 0===d&&(d=!1),this.play(a,b,c,d,!0)},pause:function(){this.isPlaying&&this._sound&&(this.paused=!0,this.pausedPosition=this.currentTime,this.pausedTime=this.game.time.time,this.onPause.dispatch(this),this.stop())},resume:function(){if(this.paused&&this._sound){if(this.usingWebAudio){var a=this.position+this.pausedPosition/1e3;this._sound=this.context.createBufferSource(),this._sound.buffer=this._buffer,this._sound.connect(this.externalNode?this.externalNode:this.gainNode),this.loop&&(this._sound.loop=!0),this.loop||""!==this.currentMarker||(this._sound.onended=this.onEndedHandler.bind(this));var b=this.duration-this.pausedPosition/1e3;void 0===this._sound.start?this._sound.noteGrainOn(0,a,b):this.loop&&this.game.device.chrome?42===this.game.device.chromeVersion?this._sound.start(0):this._sound.start(0,a):this._sound.start(0,a,b)}else this._sound.play();this.isPlaying=!0,this.paused=!1,this.startTime+=this.game.time.time-this.pausedTime,this.onResume.dispatch(this)}},stop:function(){if(this.isPlaying&&this._sound)if(this.usingWebAudio)if(this._sound.disconnect(this.externalNode?this.externalNode:this.gainNode),void 0===this._sound.stop)this._sound.noteOff(0);else try{this._sound.stop(0)}catch(a){}else this.usingAudioTag&&(this._sound.pause(),this._sound.currentTime=0);this.pendingPlayback=!1,this.isPlaying=!1;var b=this.currentMarker;""!==this.currentMarker&&this.onMarkerComplete.dispatch(this.currentMarker,this),this.currentMarker="",null!==this.fadeTween&&this.fadeTween.stop(),this.paused||this.onStop.dispatch(this,b)},fadeIn:function(a,b,c){void 0===b&&(b=!1),void 0===c&&(c=this.currentMarker),this.paused||(this.play(c,0,0,b),this.fadeTo(a,1))},fadeOut:function(a){this.fadeTo(a,0)},fadeTo:function(a,b){if(this.isPlaying&&!this.paused&&b!==this.volume){if(void 0===a&&(a=1e3),void 0===b)return void console.warn("Phaser.Sound.fadeTo: No Volume Specified.");this.fadeTween=this.game.add.tween(this).to({volume:b},a,c.Easing.Linear.None,!0),this.fadeTween.onComplete.add(this.fadeComplete,this)}},fadeComplete:function(){this.onFadeComplete.dispatch(this,this.volume),0===this.volume&&this.stop()},destroy:function(a){void 0===a&&(a=!0),this.stop(),a?this.game.sound.remove(this):(this.markers={},this.context=null,this._buffer=null,this.externalNode=null,this.onDecoded.dispose(),this.onPlay.dispose(),this.onPause.dispose(),this.onResume.dispose(),this.onLoop.dispose(),this.onStop.dispose(),this.onMute.dispose(),this.onMarkerComplete.dispose())}},c.Sound.prototype.constructor=c.Sound,Object.defineProperty(c.Sound.prototype,"isDecoding",{get:function(){return this.game.cache.getSound(this.key).isDecoding}}),Object.defineProperty(c.Sound.prototype,"isDecoded",{get:function(){return this.game.cache.isSoundDecoded(this.key)}}),Object.defineProperty(c.Sound.prototype,"mute",{get:function(){return this._muted||this.game.sound.mute},set:function(a){a=a||!1,a!==this._muted&&(a?(this._muted=!0,this._muteVolume=this._tempVolume,this.usingWebAudio?this.gainNode.gain.value=0:this.usingAudioTag&&this._sound&&(this._sound.volume=0)):(this._muted=!1,this.usingWebAudio?this.gainNode.gain.value=this._muteVolume:this.usingAudioTag&&this._sound&&(this._sound.volume=this._muteVolume)),this.onMute.dispatch(this))}}),Object.defineProperty(c.Sound.prototype,"volume",{get:function(){return this._volume},set:function(a){return this.game.device.firefox&&this.usingAudioTag&&(a=this.game.math.clamp(a,0,1)),this._muted?void(this._muteVolume=a):(this._tempVolume=a,this._volume=a,void(this.usingWebAudio?this.gainNode.gain.value=a:this.usingAudioTag&&this._sound&&(this._sound.volume=a)))}}),c.SoundManager=function(a){this.game=a,this.onSoundDecode=new c.Signal,this.onVolumeChange=new c.Signal,this.onMute=new c.Signal,this.onUnMute=new c.Signal,this.context=null,this.usingWebAudio=!1,this.usingAudioTag=!1,this.noAudio=!1,this.connectToMaster=!0,this.touchLocked=!1,this.channels=32,this._codeMuted=!1,this._muted=!1,this._unlockSource=null,this._volume=1,this._sounds=[],this._watchList=new c.ArraySet,this._watching=!1,this._watchCallback=null,this._watchContext=null},c.SoundManager.prototype={boot:function(){if(this.game.device.iOS&&this.game.device.webAudio===!1&&(this.channels=1),window.PhaserGlobal){if(window.PhaserGlobal.disableAudio===!0)return this.noAudio=!0,void(this.touchLocked=!1);if(window.PhaserGlobal.disableWebAudio===!0)return this.usingAudioTag=!0,void(this.touchLocked=!1)}if(window.PhaserGlobal&&window.PhaserGlobal.audioContext)this.context=window.PhaserGlobal.audioContext;else if(window.AudioContext)try{this.context=new window.AudioContext}catch(a){this.context=null,this.usingWebAudio=!1,this.touchLocked=!1}else if(window.webkitAudioContext)try{this.context=new window.webkitAudioContext}catch(a){this.context=null,this.usingWebAudio=!1,this.touchLocked=!1}if(null===this.context){if(void 0===window.Audio)return void(this.noAudio=!0);this.usingAudioTag=!0}else this.usingWebAudio=!0,this.masterGain=void 0===this.context.createGain?this.context.createGainNode():this.context.createGain(),this.masterGain.gain.value=1,this.masterGain.connect(this.context.destination);this.noAudio||(!this.game.device.cocoonJS&&this.game.device.iOS||window.PhaserGlobal&&window.PhaserGlobal.fakeiOSTouchLock)&&this.setTouchLock()},setTouchLock:function(){this.game.input.touch.addTouchLockCallback(this.unlock,this),this.touchLocked=!0},unlock:function(){if(this.noAudio||!this.touchLocked||null!==this._unlockSource)return!0;if(this.usingAudioTag)this.touchLocked=!1,this._unlockSource=null;else if(this.usingWebAudio){var a=this.context.createBuffer(1,1,22050);this._unlockSource=this.context.createBufferSource(),this._unlockSource.buffer=a,this._unlockSource.connect(this.context.destination),void 0===this._unlockSource.start?this._unlockSource.noteOn(0):this._unlockSource.start(0)}return!0},stopAll:function(){if(!this.noAudio)for(var a=0;aa?a=0:a>1&&(a=1),this._volume!==a){if(this._volume=a,this.usingWebAudio)this.masterGain.gain.value=a;else for(var b=0;b-1},reset:function(){this.list.length=0},remove:function(a){var b=this.list.indexOf(a);return b>-1?(this.list.splice(b,1),a):void 0},setAll:function(a,b){for(var c=this.list.length;c--;)this.list[c]&&(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)},removeAll:function(a){void 0===a&&(a=!1);for(var b=this.list.length;b--;)if(this.list[b]){var c=this.remove(this.list[b]);a&&c.destroy()}this.position=0,this.list=[]}},Object.defineProperty(c.ArraySet.prototype,"total",{get:function(){return this.list.length}}),Object.defineProperty(c.ArraySet.prototype,"first",{get:function(){return this.position=0,this.list.length>0?this.list[0]:null}}),Object.defineProperty(c.ArraySet.prototype,"next",{get:function(){return this.position0;b--){var c=Math.floor(Math.random()*(b+1)),d=a[b];a[b]=a[c],a[c]=d}return a},transposeMatrix:function(a){for(var b=a.length,c=a[0].length,d=new Array(c),e=0;c>e;e++){d[e]=new Array(b);for(var f=b-1;f>-1;f--)d[e][f]=a[f][e]}return d},rotateMatrix:function(a,b){if("string"!=typeof b&&(b=(b%360+360)%360),90===b||-270===b||"rotateLeft"===b)a=c.ArrayUtils.transposeMatrix(a),a=a.reverse();else if(-90===b||270===b||"rotateRight"===b)a=a.reverse(),a=c.ArrayUtils.transposeMatrix(a);else if(180===Math.abs(b)||"rotate180"===b){for(var d=0;d=e-a?e:d},rotate:function(a){var b=a.shift();return a.push(b),b},numberArray:function(a,b){for(var c=[],d=a;b>=d;d++)c.push(d);return c},numberArrayStep:function(a,b,d){a=+a||0;var e=typeof b;"number"!==e&&"string"!==e||!d||d[b]!==a||(b=d=null),d=null==d?1:+d||0,null===b?(b=a,a=0):b=+b||0;for(var f=-1,g=Math.max(c.Math.roundAwayFromZero((b-a)/(d||1)),0),h=new Array(g);++f>>0:(a<<24|b<<16|d<<8|e)>>>0},unpackPixel:function(a,b,d,e){return(void 0===b||null===b)&&(b=c.Color.createColor()),(void 0===d||null===d)&&(d=!1),(void 0===e||null===e)&&(e=!1),c.Device.LITTLE_ENDIAN?(b.a=(4278190080&a)>>>24,b.b=(16711680&a)>>>16,b.g=(65280&a)>>>8,b.r=255&a):(b.r=(4278190080&a)>>>24,b.g=(16711680&a)>>>16,b.b=(65280&a)>>>8,b.a=255&a),b.color=a,b.rgba="rgba("+b.r+","+b.g+","+b.b+","+b.a/255+")",d&&c.Color.RGBtoHSL(b.r,b.g,b.b,b),e&&c.Color.RGBtoHSV(b.r,b.g,b.b,b),b},fromRGBA:function(a,b){return b||(b=c.Color.createColor()),b.r=(4278190080&a)>>>24,b.g=(16711680&a)>>>16,b.b=(65280&a)>>>8,b.a=255&a,b.rgba="rgba("+b.r+","+b.g+","+b.b+","+b.a+")",b},toRGBA:function(a,b,c,d){return a<<24|b<<16|c<<8|d},RGBtoHSL:function(a,b,d,e){e||(e=c.Color.createColor(a,b,d,1)),a/=255,b/=255,d/=255;var f=Math.min(a,b,d),g=Math.max(a,b,d);if(e.h=0,e.s=0,e.l=(g+f)/2,g!==f){var h=g-f;e.s=e.l>.5?h/(2-g-f):h/(g+f),g===a?e.h=(b-d)/h+(d>b?6:0):g===b?e.h=(d-a)/h+2:g===d&&(e.h=(a-b)/h+4),e.h/=6}return e},HSLtoRGB:function(a,b,d,e){if(e?(e.r=d,e.g=d,e.b=d):e=c.Color.createColor(d,d,d),0!==b){var f=.5>d?d*(1+b):d+b-d*b,g=2*d-f;e.r=c.Color.hueToColor(g,f,a+1/3),e.g=c.Color.hueToColor(g,f,a),e.b=c.Color.hueToColor(g,f,a-1/3)}return e.r=Math.floor(255*e.r|0),e.g=Math.floor(255*e.g|0),e.b=Math.floor(255*e.b|0),c.Color.updateColor(e),e},RGBtoHSV:function(a,b,d,e){e||(e=c.Color.createColor(a,b,d,255)),a/=255,b/=255,d/=255;var f=Math.min(a,b,d),g=Math.max(a,b,d),h=g-f;return e.h=0,e.s=0===g?0:h/g,e.v=g,g!==f&&(g===a?e.h=(b-d)/h+(d>b?6:0):g===b?e.h=(d-a)/h+2:g===d&&(e.h=(a-b)/h+4),e.h/=6),e},HSVtoRGB:function(a,b,d,e){void 0===e&&(e=c.Color.createColor(0,0,0,1,a,b,0,d));var f,g,h,i=Math.floor(6*a),j=6*a-i,k=d*(1-b),l=d*(1-j*b),m=d*(1-(1-j)*b);switch(i%6){case 0:f=d,g=m,h=k;break;case 1:f=l,g=d,h=k;break;case 2:f=k,g=d,h=m;break;case 3:f=k,g=l,h=d;break;case 4:f=m,g=k,h=d;break;case 5:f=d,g=k,h=l}return e.r=Math.floor(255*f),e.g=Math.floor(255*g),e.b=Math.floor(255*h),c.Color.updateColor(e),e},hueToColor:function(a,b,c){return 0>c&&(c+=1),c>1&&(c-=1),1/6>c?a+6*(b-a)*c:.5>c?b:2/3>c?a+(b-a)*(2/3-c)*6:a},createColor:function(a,b,d,e,f,g,h,i){var j={r:a||0,g:b||0,b:d||0,a:e||1,h:f||0,s:g||0,l:h||0,v:i||0,color:0,color32:0,rgba:""};return c.Color.updateColor(j)},updateColor:function(a){return a.rgba="rgba("+a.r.toString()+","+a.g.toString()+","+a.b.toString()+","+a.a.toString()+")",a.color=c.Color.getColor(a.r,a.g,a.b),a.color32=c.Color.getColor32(a.a,a.r,a.g,a.b),a},getColor32:function(a,b,c,d){return a<<24|b<<16|c<<8|d},getColor:function(a,b,c){return a<<16|b<<8|c},RGBtoString:function(a,b,d,e,f){return void 0===e&&(e=255),void 0===f&&(f="#"),"#"===f?"#"+((1<<24)+(a<<16)+(b<<8)+d).toString(16).slice(1):"0x"+c.Color.componentToHex(e)+c.Color.componentToHex(a)+c.Color.componentToHex(b)+c.Color.componentToHex(d)},hexToRGB:function(a){var b=c.Color.hexToColor(a);return b?c.Color.getColor32(b.a,b.r,b.g,b.b):void 0},hexToColor:function(a,b){a=a.replace(/^(?:#|0x)?([a-f\d])([a-f\d])([a-f\d])$/i,function(a,b,c,d){return b+b+c+c+d+d});var d=/^(?:#|0x)?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i.exec(a);if(d){var e=parseInt(d[1],16),f=parseInt(d[2],16),g=parseInt(d[3],16);b?(b.r=e,b.g=f,b.b=g):b=c.Color.createColor(e,f,g)}return b},webToColor:function(a,b){b||(b=c.Color.createColor());var d=/^rgba?\(\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d+)\s*(?:,\s*(\d+(?:\.\d+)?))?\s*\)$/.exec(a);return d&&(b.r=parseInt(d[1],10),b.g=parseInt(d[2],10),b.b=parseInt(d[3],10),b.a=void 0!==d[4]?parseFloat(d[4]):1,c.Color.updateColor(b)),b},valueToColor:function(a,b){if(b||(b=c.Color.createColor()),"string"==typeof a)return 0===a.indexOf("rgb")?c.Color.webToColor(a,b):(b.a=1,c.Color.hexToColor(a,b));if("number"==typeof a){var d=c.Color.getRGB(a);return b.r=d.r,b.g=d.g,b.b=d.b,b.a=d.a/255,b}return b},componentToHex:function(a){var b=a.toString(16);return 1==b.length?"0"+b:b},HSVColorWheel:function(a,b){void 0===a&&(a=1),void 0===b&&(b=1);for(var d=[],e=0;359>=e;e++)d.push(c.Color.HSVtoRGB(e/359,a,b));return d},HSLColorWheel:function(a,b){void 0===a&&(a=.5),void 0===b&&(b=.5);for(var d=[],e=0;359>=e;e++)d.push(c.Color.HSLtoRGB(e/359,a,b));return d},interpolateColor:function(a,b,d,e,f){void 0===f&&(f=255);var g=c.Color.getRGB(a),h=c.Color.getRGB(b),i=(h.red-g.red)*e/d+g.red,j=(h.green-g.green)*e/d+g.green,k=(h.blue-g.blue)*e/d+g.blue;return c.Color.getColor32(f,i,j,k)},interpolateColorWithRGB:function(a,b,d,e,f,g){var h=c.Color.getRGB(a),i=(b-h.red)*g/f+h.red,j=(d-h.green)*g/f+h.green,k=(e-h.blue)*g/f+h.blue;return c.Color.getColor(i,j,k)},interpolateRGB:function(a,b,d,e,f,g,h,i){var j=(e-a)*i/h+a,k=(f-b)*i/h+b,l=(g-d)*i/h+d;return c.Color.getColor(j,k,l)},getRandomColor:function(a,b,d){if(void 0===a&&(a=0),void 0===b&&(b=255),void 0===d&&(d=255),b>255||a>b)return c.Color.getColor(255,255,255);var e=a+Math.round(Math.random()*(b-a)),f=a+Math.round(Math.random()*(b-a)),g=a+Math.round(Math.random()*(b-a));return c.Color.getColor32(d,e,f,g)},getRGB:function(a){return a>16777215?{alpha:a>>>24,red:a>>16&255,green:a>>8&255,blue:255&a,a:a>>>24,r:a>>16&255,g:a>>8&255,b:255&a}:{alpha:255,red:a>>16&255,green:a>>8&255,blue:255&a,a:255,r:a>>16&255,g:a>>8&255,b:255&a}},getWebRGB:function(a){if("object"==typeof a)return"rgba("+a.r.toString()+","+a.g.toString()+","+a.b.toString()+","+(a.a/255).toString()+")";var b=c.Color.getRGB(a);return"rgba("+b.r.toString()+","+b.g.toString()+","+b.b.toString()+","+(b.a/255).toString()+")"},getAlpha:function(a){return a>>>24},getAlphaFloat:function(a){return(a>>>24)/255},getRed:function(a){return a>>16&255},getGreen:function(a){return a>>8&255},getBlue:function(a){return 255&a},blendNormal:function(a){return a},blendLighten:function(a,b){return b>a?b:a},blendDarken:function(a,b){return b>a?a:b},blendMultiply:function(a,b){return a*b/255},blendAverage:function(a,b){return(a+b)/2},blendAdd:function(a,b){return Math.min(255,a+b)},blendSubtract:function(a,b){return Math.max(0,a+b-255)},blendDifference:function(a,b){return Math.abs(a-b)},blendNegation:function(a,b){return 255-Math.abs(255-a-b)},blendScreen:function(a,b){return 255-((255-a)*(255-b)>>8)},blendExclusion:function(a,b){return a+b-2*a*b/255},blendOverlay:function(a,b){return 128>b?2*a*b/255:255-2*(255-a)*(255-b)/255},blendSoftLight:function(a,b){return 128>b?2*((a>>1)+64)*(b/255):255-2*(255-((a>>1)+64))*(255-b)/255},blendHardLight:function(a,b){return c.Color.blendOverlay(b,a)},blendColorDodge:function(a,b){return 255===b?b:Math.min(255,(a<<8)/(255-b))},blendColorBurn:function(a,b){return 0===b?b:Math.max(0,255-(255-a<<8)/b)},blendLinearDodge:function(a,b){return c.Color.blendAdd(a,b)},blendLinearBurn:function(a,b){return c.Color.blendSubtract(a,b)},blendLinearLight:function(a,b){return 128>b?c.Color.blendLinearBurn(a,2*b):c.Color.blendLinearDodge(a,2*(b-128))},blendVividLight:function(a,b){return 128>b?c.Color.blendColorBurn(a,2*b):c.Color.blendColorDodge(a,2*(b-128))},blendPinLight:function(a,b){return 128>b?c.Color.blendDarken(a,2*b):c.Color.blendLighten(a,2*(b-128))},blendHardMix:function(a,b){return c.Color.blendVividLight(a,b)<128?0:255},blendReflect:function(a,b){return 255===b?b:Math.min(255,a*a/(255-b))},blendGlow:function(a,b){return c.Color.blendReflect(b,a)},blendPhoenix:function(a,b){return Math.min(a,b)-Math.max(a,b)+255}},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.Physics=function(a,b){b=b||{},this.game=a,this.config=b,this.arcade=null,this.p2=null,this.ninja=null,this.box2d=null,this.chipmunk=null,this.matter=null,this.parseConfig()},c.Physics.ARCADE=0,c.Physics.P2JS=1,c.Physics.NINJA=2,c.Physics.BOX2D=3,c.Physics.CHIPMUNK=4,c.Physics.MATTERJS=5,c.Physics.prototype={parseConfig:function(){this.config.hasOwnProperty("arcade")&&this.config.arcade!==!0||!c.Physics.hasOwnProperty("Arcade")||(this.arcade=new c.Physics.Arcade(this.game)),this.config.hasOwnProperty("ninja")&&this.config.ninja===!0&&c.Physics.hasOwnProperty("Ninja")&&(this.ninja=new c.Physics.Ninja(this.game)),this.config.hasOwnProperty("p2")&&this.config.p2===!0&&c.Physics.hasOwnProperty("P2")&&(this.p2=new c.Physics.P2(this.game,this.config)),this.config.hasOwnProperty("box2d")&&this.config.box2d===!0&&c.Physics.hasOwnProperty("BOX2D")&&(this.box2d=new c.Physics.BOX2D(this.game,this.config)),this.config.hasOwnProperty("matter")&&this.config.matter===!0&&c.Physics.hasOwnProperty("Matter")&&(this.matter=new c.Physics.Matter(this.game,this.config))},startSystem:function(a){a===c.Physics.ARCADE?this.arcade=new c.Physics.Arcade(this.game):a===c.Physics.P2JS?null===this.p2?this.p2=new c.Physics.P2(this.game,this.config):this.p2.reset():a===c.Physics.NINJA?this.ninja=new c.Physics.Ninja(this.game):a===c.Physics.BOX2D?null===this.box2d?this.box2d=new c.Physics.Box2D(this.game,this.config):this.box2d.reset():a===c.Physics.MATTERJS&&(null===this.matter?this.matter=new c.Physics.Matter(this.game,this.config):this.matter.reset())},enable:function(a,b,d){void 0===b&&(b=c.Physics.ARCADE),void 0===d&&(d=!1),b===c.Physics.ARCADE?this.arcade.enable(a):b===c.Physics.P2JS&&this.p2?this.p2.enable(a,d):b===c.Physics.NINJA&&this.ninja?this.ninja.enableAABB(a):b===c.Physics.BOX2D&&this.box2d?this.box2d.enable(a):b===c.Physics.MATTERJS&&this.matter&&this.matter.enable(a)},preUpdate:function(){this.p2&&this.p2.preUpdate(),this.box2d&&this.box2d.preUpdate(),this.matter&&this.matter.preUpdate()},update:function(){this.p2&&this.p2.update(),this.box2d&&this.box2d.update(),this.matter&&this.matter.update()},setBoundsToWorld:function(){this.arcade&&this.arcade.setBoundsToWorld(),this.ninja&&this.ninja.setBoundsToWorld(),this.p2&&this.p2.setBoundsToWorld(),this.box2d&&this.box2d.setBoundsToWorld(),this.matter&&this.matter.setBoundsToWorld()},clear:function(){this.p2&&this.p2.clear(),this.box2d&&this.box2d.clear(),this.matter&&this.matter.clear()},reset:function(){this.p2&&this.p2.reset(),this.box2d&&this.box2d.reset(),this.matter&&this.matter.reset()},destroy:function(){this.p2&&this.p2.destroy(),this.box2d&&this.box2d.destroy(),this.matter&&this.matter.destroy(),this.arcade=null,this.ninja=null,this.p2=null,this.box2d=null,this.matter=null}},c.Physics.prototype.constructor=c.Physics,c.Physics.Arcade=function(a){this.game=a,this.gravity=new c.Point,this.bounds=new c.Rectangle(0,0,a.world.width,a.world.height),this.checkCollision={up:!0,down:!0,left:!0,right:!0},this.maxObjects=10,this.maxLevels=4,this.OVERLAP_BIAS=4,this.forceX=!1,this.sortDirection=c.Physics.Arcade.LEFT_RIGHT,this.skipQuadTree=!0,this.isPaused=!1,this.quadTree=new c.QuadTree(this.game.world.bounds.x,this.game.world.bounds.y,this.game.world.bounds.width,this.game.world.bounds.height,this.maxObjects,this.maxLevels),this._total=0,this.setBoundsToWorld()},c.Physics.Arcade.prototype.constructor=c.Physics.Arcade,c.Physics.Arcade.SORT_NONE=0,c.Physics.Arcade.LEFT_RIGHT=1,c.Physics.Arcade.RIGHT_LEFT=2,c.Physics.Arcade.TOP_BOTTOM=3,c.Physics.Arcade.BOTTOM_TOP=4,c.Physics.Arcade.prototype={setBounds:function(a,b,c,d){this.bounds.setTo(a,b,c,d)},setBoundsToWorld:function(){this.bounds.copyFrom(this.game.world.bounds)},enable:function(a,b){void 0===b&&(b=!0);var d=1;if(Array.isArray(a))for(d=a.length;d--;)a[d]instanceof c.Group?this.enable(a[d].children,b):(this.enableBody(a[d]),b&&a[d].hasOwnProperty("children")&&a[d].children.length>0&&this.enable(a[d],!0));else a instanceof c.Group?this.enable(a.children,b):(this.enableBody(a),b&&a.hasOwnProperty("children")&&a.children.length>0&&this.enable(a.children,!0))},enableBody:function(a){a.hasOwnProperty("body")&&null===a.body&&(a.body=new c.Physics.Arcade.Body(a),a.parent&&a.parent instanceof c.Group&&a.parent.addToHash(a))},updateMotion:function(a){var b=this.computeVelocity(0,a,a.angularVelocity,a.angularAcceleration,a.angularDrag,a.maxAngular)-a.angularVelocity;a.angularVelocity+=b,a.rotation+=a.angularVelocity*this.game.time.physicsElapsed,a.velocity.x=this.computeVelocity(1,a,a.velocity.x,a.acceleration.x,a.drag.x,a.maxVelocity.x),a.velocity.y=this.computeVelocity(2,a,a.velocity.y,a.acceleration.y,a.drag.y,a.maxVelocity.y)},computeVelocity:function(a,b,c,d,e,f){return void 0===f&&(f=1e4),1===a&&b.allowGravity?c+=(this.gravity.x+b.gravity.x)*this.game.time.physicsElapsed:2===a&&b.allowGravity&&(c+=(this.gravity.y+b.gravity.y)*this.game.time.physicsElapsed),d?c+=d*this.game.time.physicsElapsed:e&&(e*=this.game.time.physicsElapsed,c-e>0?c-=e:0>c+e?c+=e:c=0),c>f?c=f:-f>c&&(c=-f),c},overlap:function(a,b,c,d,e){if(c=c||null,d=d||null,e=e||c,this._total=0,!Array.isArray(a)&&Array.isArray(b))for(var f=0;f0},collide:function(a,b,c,d,e){if(c=c||null,d=d||null,e=e||c,this._total=0,!Array.isArray(a)&&Array.isArray(b))for(var f=0;f0},sortLeftRight:function(a,b){return a.body&&b.body?a.body.x-b.body.x:0},sortRightLeft:function(a,b){return a.body&&b.body?b.body.x-a.body.x:0},sortTopBottom:function(a,b){return a.body&&b.body?a.body.y-b.body.y:0},sortBottomTop:function(a,b){return a.body&&b.body?b.body.y-a.body.y:0},sort:function(a,b){null!==a.physicsSortDirection?b=a.physicsSortDirection:void 0===b&&(b=this.sortDirection),b===c.Physics.Arcade.LEFT_RIGHT?a.hash.sort(this.sortLeftRight):b===c.Physics.Arcade.RIGHT_LEFT?a.hash.sort(this.sortRightLeft):b===c.Physics.Arcade.TOP_BOTTOM?a.hash.sort(this.sortTopBottom):b===c.Physics.Arcade.BOTTOM_TOP&&a.hash.sort(this.sortBottomTop)},collideHandler:function(a,b,d,e,f,g){return void 0===b&&a.physicsType===c.GROUP?(this.sort(a),void this.collideGroupVsSelf(a,d,e,f,g)):void(a&&b&&a.exists&&b.exists&&(this.sortDirection!==c.Physics.Arcade.SORT_NONE&&(a.physicsType===c.GROUP&&this.sort(a),b.physicsType===c.GROUP&&this.sort(b)),a.physicsType===c.SPRITE?b.physicsType===c.SPRITE?this.collideSpriteVsSprite(a,b,d,e,f,g):b.physicsType===c.GROUP?this.collideSpriteVsGroup(a,b,d,e,f,g):b.physicsType===c.TILEMAPLAYER&&this.collideSpriteVsTilemapLayer(a,b,d,e,f,g):a.physicsType===c.GROUP?b.physicsType===c.SPRITE?this.collideSpriteVsGroup(b,a,d,e,f,g):b.physicsType===c.GROUP?this.collideGroupVsGroup(a,b,d,e,f,g):b.physicsType===c.TILEMAPLAYER&&this.collideGroupVsTilemapLayer(a,b,d,e,f,g):a.physicsType===c.TILEMAPLAYER&&(b.physicsType===c.SPRITE?this.collideSpriteVsTilemapLayer(b,a,d,e,f,g):b.physicsType===c.GROUP&&this.collideGroupVsTilemapLayer(b,a,d,e,f,g))))},collideSpriteVsSprite:function(a,b,c,d,e,f){return a.body&&b.body?(this.separate(a.body,b.body,d,e,f)&&(c&&c.call(e,a,b),this._total++),!0):!1},collideSpriteVsGroup:function(a,b,d,e,f,g){if(0!==b.length&&a.body){var h;if(this.skipQuadTree||a.body.skipQuadTree){for(var i=0;ih.right)break;if(h.x>a.body.right)continue}else if(this.sortDirection===c.Physics.Arcade.TOP_BOTTOM){if(a.body.bottomh.bottom)break;if(h.y>a.body.bottom)continue}this.collideSpriteVsSprite(a,b.hash[i],d,e,f,g)}}else{this.quadTree.clear(),this.quadTree.reset(this.game.world.bounds.x,this.game.world.bounds.y,this.game.world.bounds.width,this.game.world.bounds.height,this.maxObjects,this.maxLevels),this.quadTree.populate(b);for(var j=this.quadTree.retrieve(a),i=0;ij.body.right)continue;if(j.body.x>h.body.right)break}else if(this.sortDirection===c.Physics.Arcade.TOP_BOTTOM){if(h.body.bottomj.body.bottom)continue;if(j.body.y>h.body.bottom)break}this.collideSpriteVsSprite(h,j,b,d,e,f)}},collideGroupVsGroup:function(a,b,d,e,f,g){if(0!==a.length&&0!==b.length)for(var h=0;h=b.right?!1:a.position.y>=b.bottom?!1:!0},separateX:function(a,b,c){if(a.immovable&&b.immovable)return!1;var d=0;if(this.intersects(a,b)){var e=a.deltaAbsX()+b.deltaAbsX()+this.OVERLAP_BIAS;if(0===a.deltaX()&&0===b.deltaX()?(a.embedded=!0,b.embedded=!0):a.deltaX()>b.deltaX()?(d=a.right-b.x,d>e||a.checkCollision.right===!1||b.checkCollision.left===!1?d=0:(a.touching.none=!1,a.touching.right=!0,b.touching.none=!1,b.touching.left=!0)):a.deltaX()e||a.checkCollision.left===!1||b.checkCollision.right===!1?d=0:(a.touching.none=!1,a.touching.left=!0,b.touching.none=!1,b.touching.right=!0)),a.overlapX=d,b.overlapX=d,0!==d){if(c||a.customSeparateX||b.customSeparateX)return!0;var f=a.velocity.x,g=b.velocity.x;if(a.immovable||b.immovable)a.immovable?b.immovable||(b.x+=d,b.velocity.x=f-g*b.bounce.x,a.moves&&(b.y+=(a.y-a.prev.y)*a.friction.y)):(a.x=a.x-d,a.velocity.x=g-f*a.bounce.x,b.moves&&(a.y+=(b.y-b.prev.y)*b.friction.y));else{d*=.5,a.x=a.x-d,b.x+=d;var h=Math.sqrt(g*g*b.mass/a.mass)*(g>0?1:-1),i=Math.sqrt(f*f*a.mass/b.mass)*(f>0?1:-1),j=.5*(h+i);h-=j,i-=j,a.velocity.x=j+h*a.bounce.x,b.velocity.x=j+i*b.bounce.x}return!0}}return!1},separateY:function(a,b,c){if(a.immovable&&b.immovable)return!1;var d=0;if(this.intersects(a,b)){var e=a.deltaAbsY()+b.deltaAbsY()+this.OVERLAP_BIAS;if(0===a.deltaY()&&0===b.deltaY()?(a.embedded=!0,b.embedded=!0):a.deltaY()>b.deltaY()?(d=a.bottom-b.y,d>e||a.checkCollision.down===!1||b.checkCollision.up===!1?d=0:(a.touching.none=!1,a.touching.down=!0,b.touching.none=!1,b.touching.up=!0)):a.deltaY()e||a.checkCollision.up===!1||b.checkCollision.down===!1?d=0:(a.touching.none=!1,a.touching.up=!0,b.touching.none=!1,b.touching.down=!0)),a.overlapY=d,b.overlapY=d,0!==d){if(c||a.customSeparateY||b.customSeparateY)return!0;var f=a.velocity.y,g=b.velocity.y;if(a.immovable||b.immovable)a.immovable?b.immovable||(b.y+=d,b.velocity.y=f-g*b.bounce.y,a.moves&&(b.x+=(a.x-a.prev.x)*a.friction.x)):(a.y=a.y-d,a.velocity.y=g-f*a.bounce.y,b.moves&&(a.x+=(b.x-b.prev.x)*b.friction.x));else{d*=.5,a.y=a.y-d,b.y+=d;var h=Math.sqrt(g*g*b.mass/a.mass)*(g>0?1:-1),i=Math.sqrt(f*f*a.mass/b.mass)*(f>0?1:-1),j=.5*(h+i);h-=j,i-=j,a.velocity.y=j+h*a.bounce.y,b.velocity.y=j+i*b.bounce.y}return!0}}return!1},getObjectsUnderPointer:function(a,b,c,d){return 0!==b.length&&a.exists?this.getObjectsAtLocation(a.x,a.y,b,c,d,a):void 0},getObjectsAtLocation:function(a,b,d,e,f,g){this.quadTree.clear(),this.quadTree.reset(this.game.world.bounds.x,this.game.world.bounds.y,this.game.world.bounds.width,this.game.world.bounds.height,this.maxObjects,this.maxLevels),this.quadTree.populate(d);for(var h=new c.Rectangle(a,b,1,1),i=[],j=this.quadTree.retrieve(h),k=0;k0&&(c=this.distanceBetween(a,b)/(d/1e3)),a.body.velocity.x=Math.cos(e)*c,a.body.velocity.y=Math.sin(e)*c,e},moveToPointer:function(a,b,c,d){void 0===b&&(b=60),c=c||this.game.input.activePointer,void 0===d&&(d=0);var e=this.angleToPointer(a,c);return d>0&&(b=this.distanceToPointer(a,c)/(d/1e3)),a.body.velocity.x=Math.cos(e)*b,a.body.velocity.y=Math.sin(e)*b,e},moveToXY:function(a,b,c,d,e){void 0===d&&(d=60),void 0===e&&(e=0);var f=Math.atan2(c-a.y,b-a.x);return e>0&&(d=this.distanceToXY(a,b,c)/(e/1e3)),a.body.velocity.x=Math.cos(f)*d,a.body.velocity.y=Math.sin(f)*d,f},velocityFromAngle:function(a,b,d){return void 0===b&&(b=60),d=d||new c.Point,d.setTo(Math.cos(this.game.math.degToRad(a))*b,Math.sin(this.game.math.degToRad(a))*b)},velocityFromRotation:function(a,b,d){return void 0===b&&(b=60),d=d||new c.Point,d.setTo(Math.cos(a)*b,Math.sin(a)*b)},accelerationFromRotation:function(a,b,d){return void 0===b&&(b=60),d=d||new c.Point,d.setTo(Math.cos(a)*b,Math.sin(a)*b)},accelerateToObject:function(a,b,c,d,e){void 0===c&&(c=60),void 0===d&&(d=1e3),void 0===e&&(e=1e3);var f=this.angleBetween(a,b);return a.body.acceleration.setTo(Math.cos(f)*c,Math.sin(f)*c),a.body.maxVelocity.setTo(d,e),f},accelerateToPointer:function(a,b,c,d,e){void 0===c&&(c=60),void 0===b&&(b=this.game.input.activePointer),void 0===d&&(d=1e3),void 0===e&&(e=1e3);var f=this.angleToPointer(a,b);return a.body.acceleration.setTo(Math.cos(f)*c,Math.sin(f)*c),a.body.maxVelocity.setTo(d,e),f},accelerateToXY:function(a,b,c,d,e,f){void 0===d&&(d=60),void 0===e&&(e=1e3),void 0===f&&(f=1e3);var g=this.angleToXY(a,b,c);return a.body.acceleration.setTo(Math.cos(g)*d,Math.sin(g)*d),a.body.maxVelocity.setTo(e,f),g},distanceBetween:function(a,b){var c=a.x-b.x,d=a.y-b.y;return Math.sqrt(c*c+d*d)},distanceToXY:function(a,b,c){var d=a.x-b,e=a.y-c;return Math.sqrt(d*d+e*e)},distanceToPointer:function(a,b){b=b||this.game.input.activePointer;var c=a.x-b.worldX,d=a.y-b.worldY;return Math.sqrt(c*c+d*d)},angleBetween:function(a,b){var c=b.x-a.x,d=b.y-a.y;return Math.atan2(d,c)},angleToXY:function(a,b,c){var d=b-a.x,e=c-a.y;return Math.atan2(e,d)},angleToPointer:function(a,b){b=b||this.game.input.activePointer;var c=b.worldX-a.x,d=b.worldY-a.y;return Math.atan2(d,c)}},c.Physics.Arcade.Body=function(a){this.sprite=a,this.game=a.game,this.type=c.Physics.ARCADE,this.enable=!0,this.offset=new c.Point,this.position=new c.Point(a.x,a.y),this.prev=new c.Point(this.position.x,this.position.y),this.allowRotation=!0,this.rotation=a.rotation,this.preRotation=a.rotation,this.width=a.width,this.height=a.height,this.sourceWidth=a.width,this.sourceHeight=a.height,a.texture&&(this.sourceWidth=a.texture.frame.width,this.sourceHeight=a.texture.frame.height),this.halfWidth=Math.abs(a.width/2),this.halfHeight=Math.abs(a.height/2),this.center=new c.Point(a.x+this.halfWidth,a.y+this.halfHeight),this.velocity=new c.Point,this.newVelocity=new c.Point(0,0),this.deltaMax=new c.Point(0,0),this.acceleration=new c.Point,this.drag=new c.Point,this.allowGravity=!0,this.gravity=new c.Point(0,0),this.bounce=new c.Point,this.maxVelocity=new c.Point(1e4,1e4),this.friction=new c.Point(1,0),this.angularVelocity=0,this.angularAcceleration=0,this.angularDrag=0,this.maxAngular=1e3,this.mass=1,this.angle=0,this.speed=0,this.facing=c.NONE,this.immovable=!1,this.moves=!0,this.customSeparateX=!1,this.customSeparateY=!1,this.overlapX=0,this.overlapY=0,this.embedded=!1,this.collideWorldBounds=!1,this.checkCollision={none:!1,any:!0,up:!0,down:!0,left:!0,right:!0},this.touching={none:!0,up:!1,down:!1,left:!1,right:!1},this.wasTouching={none:!0,up:!1,down:!1,left:!1,right:!1},this.blocked={up:!1,down:!1,left:!1,right:!1},this.tilePadding=new c.Point,this.dirty=!1,this.skipQuadTree=!1,this.syncBounds=!1,this._reset=!0,this._sx=a.scale.x,this._sy=a.scale.y,this._dx=0,this._dy=0},c.Physics.Arcade.Body.prototype={updateBounds:function(){if(this.syncBounds){var a=this.sprite.getBounds();a.ceilAll(),(a.width!==this.width||a.height!==this.height)&&(this.width=a.width,this.height=a.height,this._reset=!0)}else{var b=Math.abs(this.sprite.scale.x),c=Math.abs(this.sprite.scale.y);(b!==this._sx||c!==this._sy)&&(this.width=this.sourceWidth*b,this.height=this.sourceHeight*c,this._sx=b,this._sy=c,this._reset=!0)}this._reset&&(this.halfWidth=Math.floor(this.width/2),this.halfHeight=Math.floor(this.height/2),this.center.setTo(this.position.x+this.halfWidth,this.position.y+this.halfHeight))},preUpdate:function(){this.enable&&!this.game.physics.arcade.isPaused&&(this.dirty=!0,this.wasTouching.none=this.touching.none,this.wasTouching.up=this.touching.up,this.wasTouching.down=this.touching.down,this.wasTouching.left=this.touching.left,this.wasTouching.right=this.touching.right,this.touching.none=!0,this.touching.up=!1,this.touching.down=!1,this.touching.left=!1,this.touching.right=!1,this.blocked.up=!1,this.blocked.down=!1,this.blocked.left=!1,this.blocked.right=!1,this.embedded=!1,this.updateBounds(),this.position.x=this.sprite.world.x-this.sprite.anchor.x*this.width+this.offset.x,this.position.y=this.sprite.world.y-this.sprite.anchor.y*this.height+this.offset.y,this.rotation=this.sprite.angle,this.preRotation=this.rotation,(this._reset||this.sprite.fresh)&&(this.prev.x=this.position.x,this.prev.y=this.position.y),this.moves&&(this.game.physics.arcade.updateMotion(this),this.newVelocity.set(this.velocity.x*this.game.time.physicsElapsed,this.velocity.y*this.game.time.physicsElapsed),this.position.x+=this.newVelocity.x,this.position.y+=this.newVelocity.y,(this.position.x!==this.prev.x||this.position.y!==this.prev.y)&&(this.speed=Math.sqrt(this.velocity.x*this.velocity.x+this.velocity.y*this.velocity.y),this.angle=Math.atan2(this.velocity.y,this.velocity.x)),this.collideWorldBounds&&this.checkWorldBounds()),this._dx=this.deltaX(),this._dy=this.deltaY(),this._reset=!1)},postUpdate:function(){this.enable&&this.dirty&&(this.dirty=!1,this.deltaX()<0?this.facing=c.LEFT:this.deltaX()>0&&(this.facing=c.RIGHT),this.deltaY()<0?this.facing=c.UP:this.deltaY()>0&&(this.facing=c.DOWN),this.moves&&(this._dx=this.deltaX(),this._dy=this.deltaY(),0!==this.deltaMax.x&&0!==this._dx&&(this._dx<0&&this._dx<-this.deltaMax.x?this._dx=-this.deltaMax.x:this._dx>0&&this._dx>this.deltaMax.x&&(this._dx=this.deltaMax.x)),0!==this.deltaMax.y&&0!==this._dy&&(this._dy<0&&this._dy<-this.deltaMax.y?this._dy=-this.deltaMax.y:this._dy>0&&this._dy>this.deltaMax.y&&(this._dy=this.deltaMax.y)),this.sprite.position.x+=this._dx,this.sprite.position.y+=this._dy,this._reset=!0),this.center.setTo(this.position.x+this.halfWidth,this.position.y+this.halfHeight),this.allowRotation&&(this.sprite.angle+=this.deltaZ()),this.prev.x=this.position.x,this.prev.y=this.position.y)},destroy:function(){this.sprite.parent&&this.sprite.parent instanceof c.Group&&this.sprite.parent.removeFromHash(this.sprite),this.sprite.body=null,this.sprite=null},checkWorldBounds:function(){var a=this.position,b=this.game.physics.arcade.bounds,c=this.game.physics.arcade.checkCollision;a.xb.right&&c.right&&(a.x=b.right-this.width,this.velocity.x*=-this.bounce.x,this.blocked.right=!0),a.yb.bottom&&c.down&&(a.y=b.bottom-this.height,this.velocity.y*=-this.bounce.y,this.blocked.down=!0) +a.bindFramebuffer(a.FRAMEBUFFER,i.frameBuffer),a.activeTexture(a.TEXTURE0),a.bindTexture(a.TEXTURE_2D,h.texture),this.applyFilterPass(k,d,d.width,d.height);var l=h;h=i,i=l}a.enable(a.BLEND),e=h,this.texturePool.push(i)}var m=c.filterPasses[c.filterPasses.length-1];this.offsetX-=d.x,this.offsetY-=d.y;var n=this.width,o=this.height,p=0,q=0,r=this.buffer;if(0===this.filterStack.length)a.colorMask(!0,!0,!0,!0);else{var s=this.filterStack[this.filterStack.length-1];d=s._filterArea,n=d.width,o=d.height,p=d.x,q=d.y,r=s._glFilterTexture.frameBuffer}f.x=n/2,f.y=-o/2,g.x=p,g.y=q,d=c._filterArea;var t=d.x-p,u=d.y-q;a.bindBuffer(a.ARRAY_BUFFER,this.vertexBuffer),this.vertexArray[0]=t,this.vertexArray[1]=u+d.height,this.vertexArray[2]=t+d.width,this.vertexArray[3]=u+d.height,this.vertexArray[4]=t,this.vertexArray[5]=u,this.vertexArray[6]=t+d.width,this.vertexArray[7]=u,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),a.viewport(0,0,n*this.renderSession.resolution,o*this.renderSession.resolution),a.bindFramebuffer(a.FRAMEBUFFER,r),a.activeTexture(a.TEXTURE0),a.bindTexture(a.TEXTURE_2D,e.texture),this.applyFilterPass(m,d,n,o),this.texturePool.push(e),c._glFilterTexture=null},b.WebGLFilterManager.prototype.applyFilterPass=function(a,c,d,e){var f=this.gl,g=a.shaders[f.id];g||(g=new b.PixiShader(f),g.fragmentSrc=a.fragmentSrc,g.uniforms=a.uniforms,g.init(),a.shaders[f.id]=g),this.renderSession.shaderManager.setShader(g),f.uniform2f(g.projectionVector,d/2,-e/2),f.uniform2f(g.offsetVector,0,0),a.uniforms.dimensions&&(a.uniforms.dimensions.value[0]=this.width,a.uniforms.dimensions.value[1]=this.height,a.uniforms.dimensions.value[2]=this.vertexArray[0],a.uniforms.dimensions.value[3]=this.vertexArray[5]),g.syncUniforms(),f.bindBuffer(f.ARRAY_BUFFER,this.vertexBuffer),f.vertexAttribPointer(g.aVertexPosition,2,f.FLOAT,!1,0,0),f.bindBuffer(f.ARRAY_BUFFER,this.uvBuffer),f.vertexAttribPointer(g.aTextureCoord,2,f.FLOAT,!1,0,0),f.bindBuffer(f.ARRAY_BUFFER,this.colorBuffer),f.vertexAttribPointer(g.colorAttribute,2,f.FLOAT,!1,0,0),f.bindBuffer(f.ELEMENT_ARRAY_BUFFER,this.indexBuffer),f.drawElements(f.TRIANGLES,6,f.UNSIGNED_SHORT,0),this.renderSession.drawCount++},b.WebGLFilterManager.prototype.initShaderBuffers=function(){var a=this.gl;this.vertexBuffer=a.createBuffer(),this.uvBuffer=a.createBuffer(),this.colorBuffer=a.createBuffer(),this.indexBuffer=a.createBuffer(),this.vertexArray=new b.Float32Array([0,0,1,0,0,1,1,1]),a.bindBuffer(a.ARRAY_BUFFER,this.vertexBuffer),a.bufferData(a.ARRAY_BUFFER,this.vertexArray,a.STATIC_DRAW),this.uvArray=new b.Float32Array([0,0,1,0,0,1,1,1]),a.bindBuffer(a.ARRAY_BUFFER,this.uvBuffer),a.bufferData(a.ARRAY_BUFFER,this.uvArray,a.STATIC_DRAW),this.colorArray=new b.Float32Array([1,16777215,1,16777215,1,16777215,1,16777215]),a.bindBuffer(a.ARRAY_BUFFER,this.colorBuffer),a.bufferData(a.ARRAY_BUFFER,this.colorArray,a.STATIC_DRAW),a.bindBuffer(a.ELEMENT_ARRAY_BUFFER,this.indexBuffer),a.bufferData(a.ELEMENT_ARRAY_BUFFER,new Uint16Array([0,1,2,1,3,2]),a.STATIC_DRAW)},b.WebGLFilterManager.prototype.destroy=function(){var a=this.gl;this.filterStack=null,this.offsetX=0,this.offsetY=0;for(var b=0;bB?B:A,c.beginPath(),c.moveTo(w,x+A),c.lineTo(w,x+z-A),c.quadraticCurveTo(w,x+z,w+A,x+z),c.lineTo(w+y-A,x+z),c.quadraticCurveTo(w+y,x+z,w+y,x+z-A),c.lineTo(w+y,x+A),c.quadraticCurveTo(w+y,x,w+y-A,x),c.lineTo(w+A,x),c.quadraticCurveTo(w,x,w,x+A),c.closePath(),(f.fillColor||0===f.fillColor)&&(c.globalAlpha=f.fillAlpha*d,c.fillStyle="#"+("00000"+(0|h).toString(16)).substr(-6),c.fill()),f.lineWidth&&(c.globalAlpha=f.lineAlpha*d,c.strokeStyle="#"+("00000"+(0|i).toString(16)).substr(-6),c.stroke())}}},b.CanvasGraphics.renderGraphicsMask=function(a,c){var d=a.graphicsData.length;if(0!==d){c.beginPath();for(var e=0;d>e;e++){var f=a.graphicsData[e],g=f.shape;if(f.type===b.Graphics.POLY){var h=g.points;c.moveTo(h[0],h[1]);for(var i=1;iz?z:y,c.moveTo(u,v+y),c.lineTo(u,v+x-y),c.quadraticCurveTo(u,v+x,u+y,v+x),c.lineTo(u+w-y,v+x),c.quadraticCurveTo(u+w,v+x,u+w,v+x-y),c.lineTo(u+w,v+y),c.quadraticCurveTo(u+w,v,u+w-y,v),c.lineTo(u+y,v),c.quadraticCurveTo(u,v,u,v+y),c.closePath()}}}},b.CanvasGraphics.updateGraphicsTint=function(a){if(16777215!==a.tint)for(var b=(a.tint>>16&255)/255,c=(a.tint>>8&255)/255,d=(255&a.tint)/255,e=0;e>16&255)/255*b*255<<16)+((g>>8&255)/255*c*255<<8)+(255&g)/255*d*255,f._lineTint=((h>>16&255)/255*b*255<<16)+((h>>8&255)/255*c*255<<8)+(255&h)/255*d*255}},b.BaseTextureCache={},b.BaseTextureCacheIdGenerator=0,b.BaseTexture=function(a,c){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.mipmap=!1,this._dirty=[!0,!0,!0,!0],a&&((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()),this.imageUrl=null,this._powerOf2=!1)},b.BaseTexture.prototype.constructor=b.BaseTexture,b.BaseTexture.prototype.forceLoaded=function(a,b){this.hasLoaded=!0,this.width=a,this.height=b,this.dirty()},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++),0===a.width&&(a.width=1),0===a.height&&(a.height=1);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.TextureSilentFail=!1,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.isTiling=!1,this.requiresUpdate=!1,this.requiresReTint=!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))},b.Texture.prototype.constructor=b.Texture,b.Texture.prototype.onBaseTextureLoaded=function(){var a=this.baseTexture;this.noFrame&&(this.frame=new b.Rectangle(0,0,a.width,a.height)),this.setFrame(this.frame)},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)){if(!b.TextureSilentFail)throw new Error("Texture Error: frame does not fit inside the base Texture dimensions "+this);return void(this.valid=!1)}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.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.resolution,this.height*this.resolution)),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.height,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.tempMatrix=new Phaser.Matrix,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=a,this.height=c,this.frame.width=this.crop.width=a*this.resolution,this.frame.height=this.crop.height=c*this.resolution,d&&(this.baseTexture.width=this.width*this.resolution,this.baseTexture.height=this.height*this.resolution),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.height))},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&&0!==a.alpha){var d=a.worldTransform;d.identity(),d.translate(0,2*this.projection.y),b&&d.append(b),d.scale(1,-1);for(var e=0;ea;a++)this.shaders[a].dirty=!0},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.vertices=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.canvasPadding=0,this.drawMode=b.Strip.DrawModes.TRIANGLE_STRIP},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.vertices,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 c=a.gl,d=a.projection,e=a.offset,f=a.shaderManager.stripShader,g=this.drawMode===b.Strip.DrawModes.TRIANGLE_STRIP?c.TRIANGLE_STRIP:c.TRIANGLES;a.blendModeManager.setBlendMode(this.blendMode),c.uniformMatrix3fv(f.translationMatrix,!1,this.worldTransform.toArray(!0)),c.uniform2f(f.projectionVector,d.x,-d.y),c.uniform2f(f.offsetVector,-e.x,-e.y),c.uniform1f(f.alpha,this.worldAlpha),this.dirty?(this.dirty=!1,c.bindBuffer(c.ARRAY_BUFFER,this._vertexBuffer),c.bufferData(c.ARRAY_BUFFER,this.vertices,c.STATIC_DRAW),c.vertexAttribPointer(f.aVertexPosition,2,c.FLOAT,!1,0,0),c.bindBuffer(c.ARRAY_BUFFER,this._uvBuffer),c.bufferData(c.ARRAY_BUFFER,this.uvs,c.STATIC_DRAW),c.vertexAttribPointer(f.aTextureCoord,2,c.FLOAT,!1,0,0),c.activeTexture(c.TEXTURE0),this.texture.baseTexture._dirty[c.id]?a.renderer.updateTexture(this.texture.baseTexture):c.bindTexture(c.TEXTURE_2D,this.texture.baseTexture._glTextures[c.id]),c.bindBuffer(c.ELEMENT_ARRAY_BUFFER,this._indexBuffer),c.bufferData(c.ELEMENT_ARRAY_BUFFER,this.indices,c.STATIC_DRAW)):(c.bindBuffer(c.ARRAY_BUFFER,this._vertexBuffer),c.bufferSubData(c.ARRAY_BUFFER,0,this.vertices),c.vertexAttribPointer(f.aVertexPosition,2,c.FLOAT,!1,0,0),c.bindBuffer(c.ARRAY_BUFFER,this._uvBuffer),c.vertexAttribPointer(f.aTextureCoord,2,c.FLOAT,!1,0,0),c.activeTexture(c.TEXTURE0),this.texture.baseTexture._dirty[c.id]?a.renderer.updateTexture(this.texture.baseTexture):c.bindTexture(c.TEXTURE_2D,this.texture.baseTexture._glTextures[c.id]),c.bindBuffer(c.ELEMENT_ARRAY_BUFFER,this._indexBuffer)),c.drawElements(g,this.indices.length,c.UNSIGNED_SHORT,0)},b.Strip.prototype._renderCanvas=function(a){var c=a.context,d=this.worldTransform;a.roundPixels?c.setTransform(d.a,d.b,d.c,d.d,0|d.tx,0|d.ty):c.setTransform(d.a,d.b,d.c,d.d,d.tx,d.ty),this.drawMode===b.Strip.DrawModes.TRIANGLE_STRIP?this._renderCanvasTriangleStrip(c):this._renderCanvasTriangles(c)},b.Strip.prototype._renderCanvasTriangleStrip=function(a){var b=this.vertices,c=this.uvs,d=b.length/2;this.count++;for(var e=0;d-2>e;e++){var f=2*e;this._renderCanvasDrawTriangle(a,b,c,f,f+2,f+4)}},b.Strip.prototype._renderCanvasTriangles=function(a){var b=this.vertices,c=this.uvs,d=this.indices,e=d.length;this.count++;for(var f=0;e>f;f+=3){var g=2*d[f],h=2*d[f+1],i=2*d[f+2];this._renderCanvasDrawTriangle(a,b,c,g,h,i)}},b.Strip.prototype._renderCanvasDrawTriangle=function(a,b,c,d,e,f){var g=this.texture.baseTexture.source,h=this.texture.width,i=this.texture.height,j=b[d],k=b[e],l=b[f],m=b[d+1],n=b[e+1],o=b[f+1],p=c[d]*h,q=c[e]*h,r=c[f]*h,s=c[d+1]*i,t=c[e+1]*i,u=c[f+1]*i;if(this.canvasPadding>0){var v=this.canvasPadding/this.worldTransform.a,w=this.canvasPadding/this.worldTransform.d,x=(j+k+l)/3,y=(m+n+o)/3,z=j-x,A=m-y,B=Math.sqrt(z*z+A*A);j=x+z/B*(B+v),m=y+A/B*(B+w),z=k-x,A=n-y,B=Math.sqrt(z*z+A*A),k=x+z/B*(B+v),n=y+A/B*(B+w),z=l-x,A=o-y,B=Math.sqrt(z*z+A*A),l=x+z/B*(B+v),o=y+A/B*(B+w)}a.save(),a.beginPath(),a.moveTo(j,m),a.lineTo(k,n),a.lineTo(l,o),a.closePath(),a.clip();var C=p*t+s*r+q*u-t*r-s*q-p*u,D=j*t+s*l+k*u-t*l-s*k-j*u,E=p*k+j*r+q*l-k*r-j*q-p*l,F=p*t*l+s*k*r+j*q*u-j*t*r-s*q*l-p*k*u,G=m*t+s*o+n*u-t*o-s*n-m*u,H=p*n+m*r+q*o-n*r-m*q-p*o,I=p*t*o+s*n*r+m*q*u-m*t*r-s*q*o-p*n*u;a.transform(D/C,G/C,E/C,H/C,F/C,I/C),a.drawImage(g,0,0),a.restore()},b.Strip.prototype.renderStripFlat=function(a){var b=this.context,c=a.vertices,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.Strip.prototype.getBounds=function(a){for(var c=a||this.worldTransform,d=c.a,e=c.b,f=c.c,g=c.d,h=c.tx,i=c.ty,j=-1/0,k=-1/0,l=1/0,m=1/0,n=this.vertices,o=0,p=n.length;p>o;o+=2){var q=n[o],r=n[o+1],s=d*q+f*r+h,t=g*r+e*q+i;l=l>s?s:l,m=m>t?t:m,j=s>j?s:j,k=t>k?t:k}if(l===-1/0||1/0===k)return b.EmptyRectangle;var u=this._bounds;return u.x=l,u.width=j-l,u.y=m,u.height=k-m,this._currentBounds=u,u},b.Strip.DrawModes={TRIANGLE_STRIP:0,TRIANGLES:1},b.Rope=function(a,c){b.Strip.call(this,a),this.points=c,this.vertices=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.vertices,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||128,this._height=d||128,this.tileScale=new b.Point(1,1),this.tileScaleOffset=new b.Point(1,1),this.tilePosition=new b.Point,this.renderable=!0,this.tint=16777215,this.textureDebug=!1,this.blendMode=b.blendModes.NORMAL,this.canvasBuffer=null,this.tilingTexture=null,this.tilePattern=null,this.refreshTexture=!0,this.frameWidth=0,this.frameHeight=0 +},b.TilingSprite.prototype=Object.create(b.Sprite.prototype),b.TilingSprite.prototype.constructor=b.TilingSprite,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){if(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.refreshTexture){if(this.generateTilingTexture(!0),!this.tilingTexture)return;this.tilingTexture.needsUpdate&&(a.renderer.updateTexture(this.tilingTexture.baseTexture),this.tilingTexture.needsUpdate=!1)}a.spriteBatch.renderTilingSprite(this);for(var b=0;bn?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.destroy=function(){b.Sprite.prototype.destroy.call(this),this.tileScale=null,this.tileScaleOffset=null,this.tilePosition=null,this.tilingTexture&&(this.tilingTexture.destroy(!0),this.tilingTexture=null)},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}}),"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,b}).call(this),function(){function a(a,b){this._scaleFactor=a,this._deltaMode=b,this.originalEvent=null}var b=this,c=c||{VERSION:"2.4.1",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,CIRCLE:21,RECTANGLE:22,LINE:23,MATRIX:24,POINT:25,ROUNDEDRECTANGLE:26,CREATURE:27,VIDEO:28,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:PIXI||{}};if(Math.trunc||(Math.trunc=function(a){return 0>a?Math.ceil(a):Math.floor(a)}),Function.prototype.bind||(Function.prototype.bind=function(){var a=Array.prototype.slice;return function(b){function c(){var f=e.concat(a.call(arguments));d.apply(this instanceof c?this:b,f)}var d=this,e=a.call(arguments,1);if("function"!=typeof d)throw new TypeError;return c.prototype=function f(a){return a&&(f.prototype=a),this instanceof f?void 0:new f}(d.prototype),c}}()),Array.isArray||(Array.isArray=function(a){return"[object Array]"==Object.prototype.toString.call(a)}),Array.prototype.forEach||(Array.prototype.forEach=function(a){"use strict";if(void 0===this||null===this)throw new TypeError;var b=Object(this),c=b.length>>>0;if("function"!=typeof a)throw new TypeError;for(var d=arguments.length>=2?arguments[1]:void 0,e=0;c>e;e++)e in b&&a.call(d,b[e],e,b)}),"function"!=typeof window.Uint32Array&&"object"!=typeof window.Uint32Array){var d=function(a){var b=new Array;window[a]=function(a){if("number"==typeof a){Array.call(this,a),this.length=a;for(var b=0;bf&&(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 void 0===a&&(a=50),a>0&&100*Math.random()<=a},randomChoice:function(a,b){return Math.random()<.5?a:b},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(void 0===b)var b=0;if(void 0===c)var c=" ";if(void 0===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},mixinPrototype:function(a,b,c){void 0===c&&(c=!1);for(var d=Object.keys(b),e=0;e0&&(this._radius=.5*d),this.type=c.CIRCLE},c.Circle.prototype={circumference:function(){return 2*Math.PI*this._radius},random:function(a){void 0===a&&(a=new c.Point);var b=2*Math.PI*Math.random(),d=Math.random()+Math.random(),e=d>1?2-d:d,f=e*Math.cos(b),g=e*Math.sin(b);return a.x=this.x+f*this.radius,a.y=this.y+g*this.radius,a},getBounds:function(){return new c.Rectangle(this.x-this.radius,this.y-this.radius,this.diameter,this.diameter)},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 void 0===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 void 0===d&&(d=!1),void 0===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.Ellipse=function(a,b,d,e){a=a||0,b=b||0,d=d||0,e=e||0,this.x=a,this.y=b,this.width=d,this.height=e,this.type=c.ELLIPSE},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 void 0===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)},random:function(a){void 0===a&&(a=new c.Point);var b=Math.random()*Math.PI*2,d=Math.random();return a.x=Math.sqrt(d)*Math.cos(b),a.y=Math.sqrt(d)*Math.sin(b),a.x=this.x+a.x*this.width/2,a.y=this.y+a.y*this.height/2,a},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},PIXI.Ellipse=c.Ellipse,c.Line=function(a,b,d,e){a=a||0,b=b||0,d=d||0,e=e||0,this.start=new c.Point(a,b),this.end=new c.Point(d,e),this.type=c.LINE},c.Line.prototype={setTo:function(a,b,c,d){return this.start.setTo(a,b),this.end.setTo(c,d),this},fromSprite:function(a,b,c){return void 0===c&&(c=!1),c?this.setTo(a.center.x,a.center.y,b.center.x,b.center.y):this.setTo(a.x,a.y,b.x,b.y)},fromAngle:function(a,b,c,d){return this.start.setTo(a,b),this.end.setTo(a+Math.cos(c)*d,b+Math.sin(c)*d),this},rotate:function(a,b){var c=this.start.x,d=this.start.y;return this.start.rotate(this.end.x,this.end.y,a,b,this.length),this.end.rotate(c,d,a,b,this.length),this},intersects:function(a,b,d){return c.Line.intersectsPoints(this.start,this.end,a.start,a.end,b,d)},reflect:function(a){return c.Line.reflect(this,a)},pointOnLine:function(a,b){return(a-this.start.x)*(this.end.y-this.start.y)===(this.end.x-this.start.x)*(b-this.start.y)},pointOnSegment:function(a,b){var c=Math.min(this.start.x,this.end.x),d=Math.max(this.start.x,this.end.x),e=Math.min(this.start.y,this.end.y),f=Math.max(this.start.y,this.end.y);return this.pointOnLine(a,b)&&a>=c&&d>=a&&b>=e&&f>=b},random:function(a){void 0===a&&(a=new c.Point);var b=Math.random();return a.x=this.start.x+b*(this.end.x-this.start.x),a.y=this.start.y+b*(this.end.y-this.start.y),a},coordinatesOnLine:function(a,b){void 0===a&&(a=1),void 0===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 void 0===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)}}),Object.defineProperty(c.Line.prototype,"normalX",{get:function(){return Math.cos(this.angle-1.5707963267948966)}}),Object.defineProperty(c.Line.prototype,"normalY",{get:function(){return Math.sin(this.angle-1.5707963267948966)}}),Object.defineProperty(c.Line.prototype,"normalAngle",{get:function(){return c.Math.wrap(this.angle-1.5707963267948966,-Math.PI,Math.PI)}}),c.Line.intersectsPoints=function(a,b,d,e,f,g){void 0===f&&(f=!0),void 0===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.Line.reflect=function(a,b){return 2*b.normalAngle-3.141592653589793-a.angle},c.Matrix=function(a,b,d,e,f,g){a=a||1,b=b||0,d=d||0,e=e||1,f=f||0,g=g||0,this.a=a,this.b=b,this.c=d,this.d=e,this.tx=f,this.ty=g,this.type=c.MATRIX},c.Matrix.prototype={fromArray:function(a){return this.setTo(a[0],a[1],a[3],a[4],a[2],a[5])},setTo:function(a,b,c,d,e,f){return this.a=a,this.b=b,this.c=c,this.d=d,this.tx=e,this.ty=f,this},clone:function(a){return void 0===a||null===a?a=new c.Matrix(this.a,this.b,this.c,this.d,this.tx,this.ty):(a.a=this.a,a.b=this.b,a.c=this.c,a.d=this.d,a.tx=this.tx,a.ty=this.ty),a},copyTo:function(a){return a.copyFrom(this),a},copyFrom:function(a){return this.a=a.a,this.b=a.b,this.c=a.c,this.d=a.d,this.tx=a.tx,this.ty=a.ty,this},toArray:function(a,b){return void 0===b&&(b=new PIXI.Float32Array(9)),a?(b[0]=this.a,b[1]=this.b,b[2]=0,b[3]=this.c,b[4]=this.d,b[5]=0,b[6]=this.tx,b[7]=this.ty,b[8]=1):(b[0]=this.a,b[1]=this.c,b[2]=this.tx,b[3]=this.b,b[4]=this.d,b[5]=this.ty,b[6]=0,b[7]=0,b[8]=1),b},apply:function(a,b){return void 0===b&&(b=new c.Point),b.x=this.a*a.x+this.c*a.y+this.tx,b.y=this.b*a.x+this.d*a.y+this.ty,b},applyInverse:function(a,b){void 0===b&&(b=new c.Point);var d=1/(this.a*this.d+this.c*-this.b),e=a.x,f=a.y;return b.x=this.d*d*e+-this.c*d*f+(this.ty*this.c-this.tx*this.d)*d,b.y=this.a*d*f+-this.b*d*e+(-this.ty*this.a+this.tx*this.b)*d,b},translate:function(a,b){return this.tx+=a,this.ty+=b,this},scale:function(a,b){return this.a*=a,this.d*=b,this.c*=a,this.b*=b,this.tx*=a,this.ty*=b,this},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},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},identity:function(){return this.setTo(1,0,0,1,0,0)}},c.identityMatrix=new c.Matrix,PIXI.Matrix=c.Matrix,PIXI.identityMatrix=c.identityMatrix,c.Point=function(a,b){a=a||0,b=b||0,this.x=a,this.y=b,this.type=c.POINT},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 void 0===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 void 0===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)},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 void 0===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 void 0===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 void 0===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 void 0===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.negative=function(a,b){return void 0===b&&(b=new c.Point),b.setTo(-a.x,-a.y)},c.Point.multiplyAdd=function(a,b,d,e){return void 0===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 void 0===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 void 0===b&&(b=new c.Point),b.setTo(-a.y,a.x)},c.Point.rperp=function(a,b){return void 0===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){void 0===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){void 0===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 void 0===b&&(b=new c.Point),b.setTo(-1*a.y,a.x)},c.Point.normalize=function(a,b){void 0===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){void 0===f&&(f=!1),void 0===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.x=b+g*Math.cos(h),a.y=d+g*Math.sin(h),a},c.Point.centroid=function(a,b){if(void 0===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.Polygon=function(){this.area=0,this._points=[],arguments.length>0&&this.setTo.apply(this,arguments),this.closed=!0,this.type=c.POLYGON},c.Polygon.prototype={toNumberArray:function(a){void 0===a&&(a=[]);for(var b=0;b=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,c=0,d=a.length;d>c;c++){if("number"==typeof a[c]){var e=new PIXI.Point(a[c],a[c+1]);c++}else var e=new PIXI.Point(a[c].x,a[c].y);this._points.push(e),e.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.Polygon=c.Polygon,c.Rectangle=function(a,b,d,e){a=a||0,b=b||0,d=d||0,e=e||0,this.x=a,this.y=b,this.width=d,this.height=e,this.type=c.RECTANGLE},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 void 0===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)},ceil:function(){this.x=Math.ceil(this.x),this.y=Math.ceil(this.y)},ceilAll:function(){this.x=Math.ceil(this.x),this.y=Math.ceil(this.y),this.width=Math.ceil(this.width),this.height=Math.ceil(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)},resize:function(a,b){return this.width=a,this.height=b,this},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){return c.Rectangle.intersects(this,a)},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)},random:function(a){return void 0===a&&(a=new c.Point),a.x=this.randomX,a.y=this.randomY,a},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,"bottomLeft",{get:function(){return new c.Point(this.x,this.bottom)},set:function(a){this.x=a.x,this.bottom=a.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 void 0===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 void 0===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 void 0===f&&(f=0),!(b>a.right+f||ca.bottom+f||ed&&(d=a.x),a.xf&&(f=a.y),a.y=c&&a<=c+this.width){var d=this.y;if(b>=d&&b<=d+this.height)return!0}return!1}},c.RoundedRectangle.prototype.constructor=c.RoundedRectangle,PIXI.RoundedRectangle=c.RoundedRectangle,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.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.displayObject=null,this.scale=null,this.totalInView=0,this._targetPosition=new c.Point,this._edge=0,this._position=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={preUpdate:function(){this.totalInView=0},follow:function(a,b){void 0===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),this.target.parent&&this._targetPosition.multiply(this.target.parent.worldTransform.a,this.target.parent.worldTransform.d),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.copyFrom(this.game.world.bounds)},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.Create=function(a){this.game=a,this.bmd=a.make.bitmapData(),this.canvas=this.bmd.canvas,this.ctx=this.bmd.context,this.palettes=[{0:"#000",1:"#9D9D9D",2:"#FFF",3:"#BE2633",4:"#E06F8B",5:"#493C2B",6:"#A46422",7:"#EB8931",8:"#F7E26B",9:"#2F484E",A:"#44891A",B:"#A3CE27",C:"#1B2632",D:"#005784",E:"#31A2F2",F:"#B2DCEF"},{0:"#000",1:"#191028",2:"#46af45",3:"#a1d685",4:"#453e78",5:"#7664fe",6:"#833129",7:"#9ec2e8",8:"#dc534b",9:"#e18d79",A:"#d6b97b",B:"#e9d8a1",C:"#216c4b",D:"#d365c8",E:"#afaab9",F:"#f5f4eb"},{0:"#000",1:"#2234d1",2:"#0c7e45",3:"#44aacc",4:"#8a3622",5:"#5c2e78",6:"#aa5c3d",7:"#b5b5b5",8:"#5e606e",9:"#4c81fb",A:"#6cd947",B:"#7be2f9",C:"#eb8a60",D:"#e23d69",E:"#ffd93f",F:"#fff"},{0:"#000",1:"#fff",2:"#8b4131",3:"#7bbdc5",4:"#8b41ac",5:"#6aac41",6:"#3931a4",7:"#d5de73",8:"#945a20",9:"#5a4100",A:"#bd736a",B:"#525252",C:"#838383",D:"#acee8b",E:"#7b73de",F:"#acacac"},{0:"#000",1:"#191028",2:"#46af45",3:"#a1d685",4:"#453e78",5:"#7664fe",6:"#833129",7:"#9ec2e8",8:"#dc534b",9:"#e18d79",A:"#d6b97b",B:"#e9d8a1",C:"#216c4b",D:"#d365c8",E:"#afaab9",F:"#fff"}]},c.Create.PALETTE_ARNE=0,c.Create.PALETTE_JMP=1,c.Create.PALETTE_CGA=2,c.Create.PALETTE_C64=3,c.Create.PALETTE_JAPANESE_MACHINE=4,c.Create.prototype={texture:function(a,b,c,d,e){void 0===c&&(c=8),void 0===d&&(d=c),void 0===e&&(e=0);var f=b[0].length*c,g=b.length*d;this.bmd.resize(f,g),this.bmd.clear();for(var h=0;hg;g+=e)this.ctx.fillRect(0,g,b,1);for(var h=0;b>h;h+=d)this.ctx.fillRect(h,0,1,c);return this.bmd.generateTexture(a)}},c.Create.prototype.constructor=c.Create,c.State=function(){this.game=null,this.key="",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={init:function(){},preload:function(){},loadUpdate:function(){},loadRender:function(){},create:function(){},update:function(){},preRender:function(){},render:function(){},resize:function(){},paused:function(){},resumed: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.onStateChange=new c.Signal,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),null!==this._pendingState&&"string"!=typeof this._pendingState&&this.add("default",this._pendingState,!0)},add:function(a,b,d){void 0===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.onPreRenderCallback=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){void 0===b&&(b=!0),void 0===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){void 0===a&&(a=!0),void 0===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){var a=this.current;if(this.clearCurrentState(),this.setCurrentState(this._pendingState),this.onStateChange.dispatch(this.current,a),this.current!==this._pendingState)return;this._pendingState=null,this.onPreloadCallback?(this.game.load.reset(!0),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||this.states[a].create||this.states[a].update||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,this.states[a].key=a},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&&this.game.physics.reset(),this.current=a,this._created=!1,this.onInitCallback.apply(this.callbackContext,this._args),a===this._pendingState&&(this._args=[]),this.game._kickstart=!0},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(a){this._created&&this.onPreRenderCallback&&this.onPreRenderCallback.call(this.callbackContext,this.game,a)},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.context.restore()):this.onRenderCallback.call(this.callbackContext,this.game)):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,this.current=""}},c.StateManager.prototype.constructor=c.StateManager,Object.defineProperty(c.StateManager.prototype,"created",{get:function(){return this._created}}),c.Signal=function(){},c.Signal.prototype={_bindings:null,_prevParams:null,memorize:!1,_shouldPropagate:!0,active:!0,_boundDispatch:!0,validateListener:function(a,b){if("function"!=typeof a)throw new Error("Phaser.Signal: listener is a required param of {fn}() and should be a Function.".replace("{fn}",b))},_registerListener:function(a,b,d,e,f){var g,h=this._indexOfListener(a,d);if(-1!==h){if(g=this._bindings[h],g.isOnce()!==b)throw new Error("You cannot add"+(b?"":"Once")+"() then add"+(b?"Once":"")+"() the same listener without removing the relationship first.")}else g=new c.SignalBinding(this,a,b,d,e,f),this._addBinding(g);return this.memorize&&this._prevParams&&g.execute(this._prevParams),g},_addBinding:function(a){this._bindings||(this._bindings=[]);var b=this._bindings.length;do b--;while(this._bindings[b]&&a._priority<=this._bindings[b]._priority);this._bindings.splice(b+1,0,a)},_indexOfListener:function(a,b){if(!this._bindings)return-1;void 0===b&&(b=null);for(var c,d=this._bindings.length;d--;)if(c=this._bindings[d],c._listener===a&&c.context===b)return d;return-1},has:function(a,b){return-1!==this._indexOfListener(a,b)},add:function(a,b,c){this.validateListener(a,"add");var d=[];if(arguments.length>3)for(var e=3;e3)for(var e=3;ea||a>=this.children.length?-1:this.getChildAt(a)},c.Group.prototype.create=function(a,b,c,d,e){void 0===e&&(e=!0);var f=new this.classType(this.game,a,b,c,d);return f.exists=e,f.visible=e,f.alive=e,this.addChild(f),f.z=this.children.length,this.enableBody&&this.game.physics.enable(f,this.physicsBodyType,this.enableBodyDebug),f.events&&f.events.onAddedToGroup$dispatch(f,this),null===this.cursor&&(this.cursor=f),f},c.Group.prototype.createMultiple=function(a,b,c,d){void 0===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 void 0===a&&(a=0),a>this.children.length-1&&(a=0),this.cursor?(this.cursorIndex=a,this.cursor=this.children[this.cursorIndex],this.cursor):void 0},c.Group.prototype.next=function(){return this.cursor?(this.cursorIndex>=this.children.length-1?this.cursorIndex=0:this.cursorIndex++,this.cursor=this.children[this.cursorIndex],this.cursor):void 0},c.Group.prototype.previous=function(){return this.cursor?(0===this.cursorIndex?this.cursorIndex=this.children.length-1:this.cursorIndex--,this.cursor=this.children[this.cursorIndex],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);return-1!==d?(b.parent&&(b.parent instanceof c.Group?b.parent.remove(b):b.parent.removeChild(b)),this.remove(a),this.addAt(b,d),a):void 0},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(void 0===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 void 0===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 void 0===g&&(g=!1),b=b.split("."),void 0===d&&(d=!1),void 0===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){void 0===c&&(c=!1),void 0===d&&(d=!1),void 0===f&&(f=!1),a=a.split("."),e=e||0;for(var g=0;g2){c=[];for(var d=2;d2){e=[];for(var f=2;f2){d=[null];for(var e=2;e2){d=[null];for(var e=2;e2){d=[null];for(var e=2;eb[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;for(var h=0,i=0;i0?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(void 0===b&&(b=!1),void 0===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.removeFromHash(a),this.updateZ(),this.cursor===a&&this.next(),b&&d&&d.destroy(!0),!0},c.Group.prototype.moveAll=function(a,b){if(void 0===b&&(b=!1),this.children.length>0&&a instanceof c.Group){do a.add(this.children[0],b);while(this.children.length>0);this.hash=[],this.cursor=null}return a},c.Group.prototype.removeAll=function(a,b){if(void 0===a&&(a=!1),void 0===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]);this.removeFromHash(c),a&&c&&c.destroy(!0)}while(this.children.length>0);this.hash=[],this.cursor=null}},c.Group.prototype.removeBetween=function(a,b,c,d){if(void 0===b&&(b=this.children.length-1),void 0===c&&(c=!1),void 0===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]);this.removeFromHash(f),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||(void 0===a&&(a=!0),void 0===b&&(b=!1),this.onDestroy.dispatch(this,a,b),this.removeAll(a),this.cursor=null,this.filters=null,this.pendingDestroy=!1,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)}}),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,this.game.state.onStateChange.add(this.stateChange,this)},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.stateChange=function(){this.x=0,this.y=0,this.camera.reset()},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.x=a,this.y=b,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,this.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();(f||g)&&(this.onResize&&this.onResize.call(this.onResizeContext,this,e),this.updateLayout(),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,Object.defineProperty(c.ScaleManager.prototype,"boundingParent",{get:function(){if(this.parentIsWindow||this.isFullScreen&&!this._createdFullScreenTarget)return null;var a=this.game.canvas&&this.game.canvas.parentNode;return a||null}}),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,"isGamePortrait",{get:function(){return this.height>this.width}}),Object.defineProperty(c.ScaleManager.prototype,"isGameLandscape",{get:function(){return this.width>this.height}}),c.Game=function(a,b,d,e,f,g,h,i){return this.id=c.GAMES.push(this)-1,this.config=null,this.physicsConfig=i,this.parent="",this.width=800,this.height=600,this.resolution=1,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.plugins=null,this.rnd=null,this.device=c.Device,this.camera=null,this.canvas=null,this.context=null,this.debug=null,this.particles=null,this.create=null,this.lockRender=!1,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.currentUpdateID=0,this.updatesThisFrame=1,this._deltaTime=0,this._lastCount=0,this._spiraling=0,this._kickstart=!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)),this.device.whenReady(this.boot,this),this},c.Game.prototype={parseConfig:function(a){this.config=a,void 0===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.resolution&&(this.resolution=a.resolution),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||(this.onPause=new c.Signal,this.onResume=new c.Signal,this.onBlur=new c.Signal,this.onFocus=new c.Signal,this.isBooted=!0,this.math=c.Math,this.scale=new c.ScaleManager(this,this._width,this._height),this.stage=new c.Stage(this),this.setUpRenderer(),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.create=new c.Create(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.debug={preUpdate:function(){},update:function(){},reset:function(){}},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._kickstart=!0,window.focus&&(!window.PhaserGlobal||window.PhaserGlobal&&!window.PhaserGlobal.stopFocus)&&window.focus(),this.raf.start())},showDebugHeader:function(){if(!window.PhaserGlobal||!window.PhaserGlobal.hideBanner){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: #9854d8","background: #6c2ca7","color: #ffffff; background: #450f78;","background: #6c2ca7","background: #9854d8","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:this.resolution,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:this.resolution,antialias:this.antialias,preserveDrawingBuffer:this.preserveDrawingBuffer}),this.context=null,this.canvas.addEventListener("webglcontextlost",this.contextLost.bind(this),!1),this.canvas.addEventListener("webglcontextrestored",this.contextRestored.bind(this),!1);this.renderType!==c.HEADLESS&&(this.stage.smoothed=this.antialias,c.Canvas.addToDOM(this.canvas,this.parent,!1),c.Canvas.setTouchAction(this.canvas))},contextLost:function(a){a.preventDefault(),this.renderer.contextLost=!0},contextRestored:function(){this.renderer.initContext(),this.cache.clearGLTextures(),this.renderer.contextLost=!1},update:function(a){if(this.time.update(a),this._kickstart)return this.updateLogic(1/this.time.desiredFps),this.stage.updateTransform(),this.updateRender(this.time.slowMotion*this.time.desiredFps),void(this._kickstart=!1);if(this._spiraling>1&&!this.forceSingleUpdate)this.time.time>this._nextFpsNotification&&(this._nextFpsNotification=this.time.time+1e4,this.fpsProblemNotifier.dispatch()),this._deltaTime=0,this._spiraling=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);var c=0;for(this.updatesThisFrame=Math.floor(this._deltaTime/b),this.forceSingleUpdate&&(this.updatesThisFrame=Math.min(1,this.updatesThisFrame));this._deltaTime>=b&&(this._deltaTime-=b,this.currentUpdateID=c,this.updateLogic(1/this.time.desiredFps),this.stage.updateTransform(),c++,!this.forceSingleUpdate||1!==c););c>this._lastCount?this._spiraling++:c=c.Input.MAX_POINTERS)return console.warn("Phaser.Input.addPointer: Maximum limit of "+c.Input.MAX_POINTERS+" pointers reached."),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&&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 a-b},getPointer:function(a){void 0===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._pollCounterthis.game.time.time},justReleased:function(a){return a=a||250,this.isUp&&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,this.altKey=!1,this.shiftKey=!1,this.ctrlKey=!1},destroy:function(){this.onDown.dispose(),this.onUp.dispose(),this.onFloat.dispose(),this.parent=null,this.game=null}},c.DeviceButton.prototype.constructor=c.DeviceButton,Object.defineProperty(c.DeviceButton.prototype,"duration",{get:function(){return this.isUp?-1:this.game.time.time-this.timeDown}}),c.Pointer=function(a,b){this.game=a,this.id=b,this.type=c.POINTER,this.exists=!0,this.identifier=0,this.pointerId=null,this.target=null,this.button=null,this.leftButton=new c.DeviceButton(this,c.Pointer.LEFT_BUTTON),this.middleButton=new c.DeviceButton(this,c.Pointer.MIDDLE_BUTTON),this.rightButton=new c.DeviceButton(this,c.Pointer.RIGHT_BUTTON),this.backButton=new c.DeviceButton(this,c.Pointer.BACK_BUTTON),this.forwardButton=new c.DeviceButton(this,c.Pointer.FORWARD_BUTTON),this.eraserButton=new c.DeviceButton(this,c.Pointer.ERASER_BUTTON),this._holdSent=!1,this._history=[],this._nextDrop=0,this._stateReset=!1,this.withinGame=!1,this.clientX=-1,this.clientY=-1,this.pageX=-1,this.pageY=-1,this.screenX=-1,this.screenY=-1,this.rawMovementX=0,this.rawMovementY=0,this.movementX=0,this.movementY=0,this.x=-1,this.y=-1,this.isMouse=0===b,this.isDown=!1,this.isUp=!0,this.timeDown=0,this.timeUp=0,this.previousTapTime=0,this.totalTouches=0,this.msSinceLastClick=Number.MAX_VALUE,this.targetObject=null,this.active=!1,this.dirty=!1,this.position=new c.Point,this.positionDown=new c.Point,this.positionUp=new c.Point,this.circle=new c.Circle(0,0,44),this._clickTrampolines=null,this._trampolineTargetObject=null},c.Pointer.NO_BUTTON=0,c.Pointer.LEFT_BUTTON=1,c.Pointer.RIGHT_BUTTON=2,c.Pointer.MIDDLE_BUTTON=4,c.Pointer.BACK_BUTTON=8,c.Pointer.FORWARD_BUTTON=16,c.Pointer.ERASER_BUTTON=32,c.Pointer.prototype={resetButtons:function(){this.isDown=!1,this.isUp=!0,this.isMouse&&(this.leftButton.reset(),this.middleButton.reset(),this.rightButton.reset(),this.backButton.reset(),this.forwardButton.reset(),this.eraserButton.reset())},updateButtons:function(a){this.button=a.button;var b=a.buttons;void 0!==b&&(c.Pointer.LEFT_BUTTON&b?this.leftButton.start(a):this.leftButton.stop(a),c.Pointer.RIGHT_BUTTON&b?this.rightButton.start(a):this.rightButton.stop(a),c.Pointer.MIDDLE_BUTTON&b?this.middleButton.start(a):this.middleButton.stop(a),c.Pointer.BACK_BUTTON&b?this.backButton.start(a):this.backButton.stop(a),c.Pointer.FORWARD_BUTTON&b?this.forwardButton.start(a):this.forwardButton.stop(a),c.Pointer.ERASER_BUTTON&b?this.eraserButton.start(a):this.eraserButton.stop(a),a.ctrlKey&&this.leftButton.isDown&&this.rightButton.start(a),this.isUp=!0,this.isDown=!1,(this.leftButton.isDown||this.rightButton.isDown||this.middleButton.isDown||this.backButton.isDown||this.forwardButton.isDown||this.eraserButton.isDown)&&(this.isUp=!1,this.isDown=!0))},start:function(a){return a.pointerId&&(this.pointerId=a.pointerId),this.identifier=a.identifier,this.target=a.target,this.isMouse?this.updateButtons(a):(this.isDown=!0,this.isUp=!1),this._history=[],this.active=!0,this.withinGame=!0,this.dirty=!1,this._clickTrampolines=null,this._trampolineTargetObject=null,this.msSinceLastClick=this.game.time.time-this.timeDown,this.timeDown=this.game.time.time,this._holdSent=!1,this.move(a,!0),this.positionDown.setTo(this.x,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.totalActivePointers)&&(this.game.input.x=this.x,this.game.input.y=this.y,this.game.input.position.setTo(this.x,this.y),this.game.input.onDown.dispatch(this,a),this.game.input.resetSpeed(this.x,this.y)),this._stateReset=!1,this.totalTouches++,null!==this.targetObject&&this.targetObject._touchedHandler(this),this +},update:function(){this.active&&(this.dirty&&(this.game.input.interactiveItems.total>0&&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.totalActivePointers)&&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(void 0===b&&(b=!1),void 0!==a.button&&(this.button=a.button),b&&this.updateButtons(a),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.totalActivePointers)&&(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.renderOrderID,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.renderOrderID,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&&this.withinGame?void a.preventDefault():(this.isMouse?this.updateButtons(a):(this.isDown=!1,this.isUp=!0),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.totalActivePointers)&&(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.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&&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;fd;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}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 void 0===c&&(c=!0),0===this.sprite.scale.x||0===this.sprite.scale.y||this.priorityIDa||this.priorityID===a&&this.sprite.renderOrderIDb;b++)if(this._pointerData[b].isOver)return!0}return!1},pointerOut:function(a){if(this.enabled){if(void 0!==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)?(void 0===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)?(void 0===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&&this._pointerData[a.id].isOver){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.snapPoint.set(this.sprite.cameraOffset.x,this.sprite.cameraOffset.y))):(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,this.snapPoint.set(this.sprite.x,this.sprite.y))),this.sprite.events.onDragUpdate.dispatch(this.sprite,a,b,c,this.snapPoint),!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){var b=this.sprite.x,c=this.sprite.y;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 d=this.sprite.getBounds();this.sprite.x=this.globalToLocalX(a.x)+(this.sprite.x-d.centerX),this.sprite.y=this.globalToLocalY(a.y)+(this.sprite.y-d.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.dragStartPoint.set(b,c),this.sprite.events.onDragStart$dispatch(this.sprite,a,b,c)},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){void 0===a&&(a=!0),void 0===b&&(b=!0),this.allowHorizontalDrag=a,this.allowVerticalDrag=b},enableSnap:function(a,b,c,d,e,f){void 0===c&&(c=!0),void 0===d&&(d=!1),void 0===e&&(e=0),void 0===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.leftthis.boundsRect.right&&(this.sprite.x=this.boundsRect.right-(this.sprite.width-this.sprite.offsetX)),this.sprite.topthis.boundsRect.bottom&&(this.sprite.y=this.boundsRect.bottom-(this.sprite.height-this.sprite.offsetY)))},checkBoundsSprite:function(){this.sprite.fixedToCamera&&this.boundsSprite.fixedToCamera?(this.sprite.cameraOffset.xthis.boundsSprite.cameraOffset.x+this.boundsSprite.width&&(this.sprite.cameraOffset.x=this.boundsSprite.cameraOffset.x+this.boundsSprite.width-this.sprite.width),this.sprite.cameraOffset.ythis.boundsSprite.cameraOffset.y+this.boundsSprite.height&&(this.sprite.cameraOffset.y=this.boundsSprite.cameraOffset.y+this.boundsSprite.height-this.sprite.height)):(this.sprite.leftthis.boundsSprite.right&&(this.sprite.x=this.boundsSprite.right-(this.sprite.width-this.sprite.offsetX)),this.sprite.topthis.boundsSprite.bottom&&(this.sprite.y=this.boundsSprite.bottom-(this.sprite.height-this.sprite.offsetY)))}},c.InputHandler.prototype.constructor=c.InputHandler,c.Gamepad=function(a){this.game=a,this._gamepadIndexMap={},this._rawPads=[],this._active=!1,this.enabled=!0,this._gamepadSupportAvailable=!!navigator.webkitGetGamepads||!!navigator.webkitGamepads||-1!=navigator.userAgent.indexOf("Firefox/")||!!navigator.getGamepads,this._prevRawGamepadTypes=[],this._prevTimestamps=[],this.callbackContext=this,this.onConnectCallback=null,this.onDisconnectCallback=null,this.onDownCallback=null,this.onUpCallback=null,this.onAxisCallback=null,this.onFloatCallback=null,this._ongamepadconnected=null,this._gamepaddisconnected=null,this._gamepads=[new c.SinglePad(a,this),new c.SinglePad(a,this),new c.SinglePad(a,this),new c.SinglePad(a,this)]},c.Gamepad.prototype={addCallbacks:function(a,b){"undefined"!=typeof b&&(this.onConnectCallback="function"==typeof b.onConnect?b.onConnect:this.onConnectCallback,this.onDisconnectCallback="function"==typeof b.onDisconnect?b.onDisconnect:this.onDisconnectCallback,this.onDownCallback="function"==typeof b.onDown?b.onDown:this.onDownCallback,this.onUpCallback="function"==typeof b.onUp?b.onUp:this.onUpCallback,this.onAxisCallback="function"==typeof b.onAxis?b.onAxis:this.onAxisCallback,this.onFloatCallback="function"==typeof b.onFloat?b.onFloat:this.onFloatCallback,this.callbackContext=a)},start:function(){if(!this._active){this._active=!0;var a=this;this._onGamepadConnected=function(b){return a.onGamepadConnected(b)},this._onGamepadDisconnected=function(b){return a.onGamepadDisconnected(b)},window.addEventListener("gamepadconnected",this._onGamepadConnected,!1),window.addEventListener("gamepaddisconnected",this._onGamepadDisconnected,!1)}},onGamepadConnected:function(a){var b=a.gamepad;this._rawPads.push(b),this._gamepads[b.index].connect(b)},onGamepadDisconnected:function(a){var b=a.gamepad;for(var c in this._rawPads)this._rawPads[c].index===b.index&&this._rawPads.splice(c,1);this._gamepads[b.index].disconnect()},update:function(){this._pollGamepads(),this.pad1.pollStatus(),this.pad2.pollStatus(),this.pad3.pollStatus(),this.pad4.pollStatus()},_pollGamepads:function(){if(navigator.getGamepads)var a=navigator.getGamepads();else if(navigator.webkitGetGamepads)var a=navigator.webkitGetGamepads();else if(navigator.webkitGamepads)var a=navigator.webkitGamepads();if(a){this._rawPads=[];for(var b=!1,c=0;c0&&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.maxHealth&&(this.health=this.maxHealth)),this}},c.Component.InCamera=function(){},c.Component.InCamera.prototype={inCamera:{get:function(){return this.game.world.camera.view.intersects(this._bounds)}}},c.Component.InputEnabled=function(){},c.Component.InputEnabled.prototype={input:null,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()}}},c.Component.InWorld=function(){},c.Component.InWorld.preUpdate=function(){if((this.autoCull||this.checkWorldBounds)&&(this._bounds.copyFrom(this.getBounds()),this._bounds.x+=this.game.camera.view.x,this._bounds.y+=this.game.camera.view.y,this.autoCull&&(this.game.world.camera.view.intersects(this._bounds)?(this.renderable=!0,this.game.world.camera.totalInView++):this.renderable=!1),this.checkWorldBounds))if(this._outOfBoundsFired&&this.game.world.bounds.intersects(this._bounds))this._outOfBoundsFired=!1,this.events.onEnterBounds$dispatch(this);else if(!this._outOfBoundsFired&&!this.game.world.bounds.intersects(this._bounds)&&(this._outOfBoundsFired=!0,this.events.onOutOfBounds$dispatch(this),this.outOfBoundsKill))return this.kill(),!1;return!0},c.Component.InWorld.prototype={checkWorldBounds:!1,outOfBoundsKill:!1,_outOfBoundsFired:!1,inWorld:{get:function(){return this.game.world.bounds.intersects(this.getBounds())}}},c.Component.LifeSpan=function(){},c.Component.LifeSpan.preUpdate=function(){return this.lifespan>0&&(this.lifespan-=this.game.time.physicsElapsedMS,this.lifespan<=0)?(this.kill(),!1):!0},c.Component.LifeSpan.prototype={alive:!0,lifespan:0,revive:function(a){return void 0===a&&(a=1),this.alive=!0,this.exists=!0,this.visible=!0,"number"==typeof this.health&&(this.health=a),this.events&&this.events.onRevived$dispatch(this),this},kill:function(){return this.alive=!1,this.exists=!1,this.visible=!1,this.events&&this.events.onKilled$dispatch(this),this}},c.Component.LoadTexture=function(){},c.Component.LoadTexture.prototype={customRender:!1,_frame:null,loadTexture:function(a,b,d){b=b||0,(d||void 0===d)&&this.animations&&this.animations.stop(),this.key=a,this.customRender=!1;var e=this.game.cache,f=!0,g=!this.texture.baseTexture.scaleMode;if(c.RenderTexture&&a instanceof c.RenderTexture)this.key=a.key,this.setTexture(a);else if(c.BitmapData&&a instanceof c.BitmapData)this.customRender=!0,this.setTexture(a.texture),e.hasFrameData(a.key,c.Cache.BITMAPDATA)&&(f=!this.animations.loadFrameData(e.getFrameData(a.key,c.Cache.BITMAPDATA),b));else if(c.Video&&a instanceof c.Video){this.customRender=!0;var h=a.texture.valid;this.setTexture(a.texture),this.setFrame(a.texture.frame.clone()),a.onChangeSource.add(this.resizeFrame,this),this.texture.valid=h}else if(a instanceof PIXI.Texture)this.setTexture(a);else{var i=e.getImage(a,!0);this.key=i.key,this.setTexture(new PIXI.Texture(i.base)),f=!this.animations.loadFrameData(i.frameData,b)}f&&(this._frame=c.Rectangle.clone(this.texture.frame)),g||(this.texture.baseTexture.scaleMode=1)},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.requiresReTint=!0,this.texture._updateUvs(),this.tilingTexture&&(this.refreshTexture=!0)},resizeFrame:function(a,b,c){this.texture.frame.resize(b,c),this.texture.setFrame(this.texture.frame)},resetFrame:function(){this._frame&&this.setFrame(this._frame)},frame:{get:function(){return this.animations.frame},set:function(a){this.animations.frame=a}},frameName:{get:function(){return this.animations.frameName},set:function(a){this.animations.frameName=a}}},c.Component.Overlap=function(){},c.Component.Overlap.prototype={overlap:function(a){return c.Rectangle.intersects(this.getBounds(),a.getBounds())}},c.Component.PhysicsBody=function(){},c.Component.PhysicsBody.preUpdate=function(){return this.fresh&&this.exists?(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.previousPosition.set(this.world.x,this.world.y),this.previousRotation=this.rotation,this.body&&this.body.preUpdate(),this.fresh=!1,!1):(this.previousPosition.set(this.world.x,this.world.y),this.previousRotation=this.rotation,this._exists&&this.parent.exists?!0:(this.renderOrderID=-1,!1))},c.Component.PhysicsBody.postUpdate=function(){this.exists&&this.body&&this.body.postUpdate()},c.Component.PhysicsBody.prototype={body:null,x:{get:function(){return this.position.x},set:function(a){this.position.x=a,this.body&&!this.body.dirty&&(this.body._reset=!0)}},y:{get:function(){return this.position.y},set:function(a){this.position.y=a,this.body&&!this.body.dirty&&(this.body._reset=!0)}}},c.Component.Reset=function(){},c.Component.Reset.prototype.reset=function(a,b,c){return void 0===c&&(c=1),this.world.set(a,b),this.position.set(a,b),this.fresh=!0,this.exists=!0,this.visible=!0,this.renderable=!0,this.components.InWorld&&(this._outOfBoundsFired=!1),this.components.LifeSpan&&(this.alive=!0,this.health=c),this.components.PhysicsBody&&this.body&&this.body.reset(a,b,!1,!1),this},c.Component.ScaleMinMax=function(){},c.Component.ScaleMinMax.prototype={transformCallback:this.checkTransform,transformCallbackContext:this,scaleMin:null,scaleMax:null,checkTransform:function(a){this.scaleMin&&(a.athis.scaleMax.x&&(a.a=this.scaleMax.x),a.d>this.scaleMax.y&&(a.d=this.scaleMax.y))},setScaleMinMax:function(a,b,d,e){void 0===b?b=d=e=a:void 0===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)}},c.Component.Smoothed=function(){},c.Component.Smoothed.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)}}},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 void 0===f&&(f=this.world),f.add(new c.Image(this.game,a,b,d,e))},sprite:function(a,b,c,d,e){return void 0===e&&(e=this.world),e.create(a,b,c,d)},creature:function(a,b,d,e,f){void 0===f&&(f=this.world);var g=new c.Creature(this.game,a,b,d,e);return f.add(g),g},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 void 0===a&&(a=null),void 0===b&&(b="group"),void 0===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 void 0===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 void 0===g&&(g=this.world),g.add(new c.Rope(this.game,a,b,d,e,f))},text:function(a,b,d,e,f){return void 0===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 void 0===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 void 0===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 void 0===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){(void 0===d||""===d)&&(d=this.game.rnd.uuid()),void 0===e&&(e=!1);var f=new c.RenderTexture(this.game,a,b,d);return e&&this.game.cache.addRenderTexture(d,f),f},video:function(a,b){return new c.Video(this.game,a,b)},bitmapData:function(a,b,d,e){void 0===e&&(e=!1),(void 0===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,this.game.tweens)},group:function(a,b,d,e,f){return new c.Group(this.game,a,b,d,e,f)},spriteBatch:function(a,b,d){return void 0===b&&(b="group"),void 0===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,g){return new c.BitmapText(this.game,a,b,d,e,f,g)},tilemap:function(a,b,d,e,f){return new c.Tilemap(this.game,a,b,d,e,f)},renderTexture:function(a,b,d,e){(void 0===d||""===d)&&(d=this.game.rnd.uuid()),void 0===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){void 0===e&&(e=!1),(void 0===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.Sprite=function(a,b,d,e,f){b=b||0,d=d||0,e=e||null,f=f||null,this.type=c.SPRITE,this.physicsType=c.SPRITE,PIXI.Sprite.call(this,PIXI.TextureCache.__default),c.Component.Core.init.call(this,a,b,d,e,f)},c.Sprite.prototype=Object.create(PIXI.Sprite.prototype),c.Sprite.prototype.constructor=c.Sprite,c.Component.Core.install.call(c.Sprite.prototype,["Angle","Animation","AutoCull","Bounds","BringToTop","Crop","Delta","Destroy","FixedToCamera","Health","InCamera","InputEnabled","InWorld","LifeSpan","LoadTexture","Overlap","PhysicsBody","Reset","ScaleMinMax","Smoothed"]),c.Sprite.prototype.preUpdatePhysics=c.Component.PhysicsBody.preUpdate,c.Sprite.prototype.preUpdateLifeSpan=c.Component.LifeSpan.preUpdate,c.Sprite.prototype.preUpdateInWorld=c.Component.InWorld.preUpdate,c.Sprite.prototype.preUpdateCore=c.Component.Core.preUpdate,c.Sprite.prototype.preUpdate=function(){return this.preUpdatePhysics()&&this.preUpdateLifeSpan()&&this.preUpdateInWorld()?this.preUpdateCore():!1 +},c.Image=function(a,b,d,e,f){b=b||0,d=d||0,e=e||null,f=f||null,this.type=c.IMAGE,PIXI.Sprite.call(this,PIXI.TextureCache.__default),c.Component.Core.init.call(this,a,b,d,e,f)},c.Image.prototype=Object.create(PIXI.Sprite.prototype),c.Image.prototype.constructor=c.Image,c.Component.Core.install.call(c.Image.prototype,["Angle","Animation","AutoCull","Bounds","BringToTop","Crop","Destroy","FixedToCamera","InputEnabled","LifeSpan","LoadTexture","Overlap","Reset","Smoothed"]),c.Image.prototype.preUpdateInWorld=c.Component.InWorld.preUpdate,c.Image.prototype.preUpdateCore=c.Component.Core.preUpdate,c.Image.prototype.preUpdate=function(){return this.preUpdateInWorld()?this.preUpdateCore():!1},c.TileSprite=function(a,b,d,e,f,g,h){b=b||0,d=d||0,e=e||256,f=f||256,g=g||null,h=h||null,this.type=c.TILESPRITE,this.physicsType=c.SPRITE,this._scroll=new c.Point;var i=a.cache.getImage("__default",!0);PIXI.TilingSprite.call(this,new PIXI.Texture(i.base),e,f),c.Component.Core.init.call(this,a,b,d,g,h)},c.TileSprite.prototype=Object.create(PIXI.TilingSprite.prototype),c.TileSprite.prototype.constructor=c.TileSprite,c.Component.Core.install.call(c.TileSprite.prototype,["Angle","Animation","AutoCull","Bounds","BringToTop","Destroy","FixedToCamera","Health","InCamera","InputEnabled","InWorld","LifeSpan","LoadTexture","Overlap","PhysicsBody","Reset","Smoothed"]),c.TileSprite.prototype.preUpdatePhysics=c.Component.PhysicsBody.preUpdate,c.TileSprite.prototype.preUpdateLifeSpan=c.Component.LifeSpan.preUpdate,c.TileSprite.prototype.preUpdateInWorld=c.Component.InWorld.preUpdate,c.TileSprite.prototype.preUpdateCore=c.Component.Core.preUpdate,c.TileSprite.prototype.preUpdate=function(){return 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.preUpdatePhysics()&&this.preUpdateLifeSpan()&&this.preUpdateInWorld()?this.preUpdateCore():!1},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.destroy=function(a){c.Component.Destroy.prototype.destroy.call(this,a),PIXI.TilingSprite.prototype.destroy.call(this)},c.TileSprite.prototype.reset=function(a,b){return c.Component.Reset.prototype.reset.call(this,a,b),this.tilePosition.x=0,this.tilePosition.y=0,this},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.type=c.ROPE,this._scroll=new c.Point,PIXI.Rope.call(this,PIXI.TextureCache.__default,this.points),c.Component.Core.init.call(this,a,b,d,e,f)},c.Rope.prototype=Object.create(PIXI.Rope.prototype),c.Rope.prototype.constructor=c.Rope,c.Component.Core.install.call(c.Rope.prototype,["Angle","Animation","AutoCull","Bounds","BringToTop","Crop","Delta","Destroy","FixedToCamera","InputEnabled","InWorld","LifeSpan","LoadTexture","Overlap","PhysicsBody","Reset","ScaleMinMax","Smoothed"]),c.Rope.prototype.preUpdatePhysics=c.Component.PhysicsBody.preUpdate,c.Rope.prototype.preUpdateLifeSpan=c.Component.LifeSpan.preUpdate,c.Rope.prototype.preUpdateInWorld=c.Component.InWorld.preUpdate,c.Rope.prototype.preUpdateCore=c.Component.Core.preUpdate,c.Rope.prototype.preUpdate=function(){return 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.preUpdatePhysics()&&this.preUpdateLifeSpan()&&this.preUpdateInWorld()?this.preUpdateCore():!1},c.Rope.prototype.update=function(){this._hasUpdateAnimation&&this.updateAnimation.call(this)},c.Rope.prototype.reset=function(a,b){return c.Component.Reset.prototype.reset.call(this,a,b),this.tilePosition.x=0,this.tilePosition.y=0,this},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=Math.abs(a);var f=this.width-a;c.drawImage(e,0,0,a,d,f,0,a,d),c.drawImage(e,a,0,f,d,0,0,f,d)}else{var f=this.width-a;c.drawImage(e,f,0,a,d,0,0,a,d),c.drawImage(e,0,0,f,d,a,0,f,d)}return this.clear(),this.copy(this._swapCanvas)},moveV:function(a){var b=this._swapCanvas,c=b.getContext("2d"),d=this.width,e=this.canvas;if(c.clearRect(0,0,this.width,this.height),0>a){a=Math.abs(a);var f=this.height-a;c.drawImage(e,0,0,d,a,0,f,d,a),c.drawImage(e,0,a,d,f,0,0,d,f)}else{var f=this.height-a;c.drawImage(e,0,f,d,a,0,0,d,a),c.drawImage(e,0,0,d,f,0,a,d,f)}return this.clear(),this.copy(this._swapCanvas)},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){void 0===c&&(c=0),void 0===d&&(d=0),void 0===e&&(e=this.width),void 0===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((void 0===a||null===a)&&(a=!1),(void 0===b||null===b)&&(b=!1),(void 0===d||null===d)&&(d=!1),a||b||d){void 0===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){void 0===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 void 0===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((void 0===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,(void 0===g||null===g)&&(g=a.x),(void 0===h||null===h)&&(h=a.y),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(void 0===b||null===b)&&(b=0),(void 0===d||null===d)&&(d=0),e&&(this._size.x=e),f&&(this._size.y=f),(void 0===g||null===g)&&(g=b),(void 0===h||null===h)&&(h=d),(void 0===i||null===i)&&(i=this._size.x),(void 0===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),void 0===q&&(q=null),void 0===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)},drawGroup:function(a,b,c){return a.total>0&&a.forEachExists(this.copy,this,null,null,null,null,null,null,null,null,null,null,null,null,null,null,b,c),this},shadow:function(a,b,c,d){void 0===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 void 0===d||null===d?this.draw(b).blendSourceAtop():this.draw(b,d.x,d.y,d.width,d.height).blendSourceAtop(),void 0===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 void 0===e&&(e=255),void 0===f&&(f=!1),void 0===g&&(g=b),void 0===h&&(h=c),void 0===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},text:function(a,b,c,d,e,f){void 0===b&&(b=0),void 0===c&&(c=0),void 0===d&&(d="14px Courier"),void 0===e&&(e="rgb(255,255,255)"),void 0===f&&(f=!0);var g=this.context.font;this.context.font=d,f&&(this.context.fillStyle="rgb(0,0,0)",this.context.fillText(a,b+1,c+1)),this.context.fillStyle=e,this.context.fillText(a,b,c),this.context.font=g},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(void 0===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,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,PIXI.Graphics.prototype.lineStyle=function(a,b,c){return this.lineWidth=a||0,this.lineColor=b||0,this.lineAlpha=void 0===c?1:c,this.currentPath&&(this.currentPath.shape.points.length?this.drawShape(new PIXI.Polygon(this.currentPath.shape.points.slice(-2))):(this.currentPath.lineWidth=this.lineWidth,this.currentPath.lineColor=this.lineColor,this.currentPath.lineAlpha=this.lineAlpha)),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||this.moveTo(0,0),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){if(d===e)return this;void 0===f&&(f=!1),!f&&d>=e?e+=2*Math.PI:f&&e>=d&&(d+=2*Math.PI);var g=f?-1*(d-e):e-d,h=40*Math.ceil(Math.abs(g)/(2*Math.PI));if(0===g)return this;var i=a+Math.cos(d)*c,j=b+Math.sin(d)*c;f&&this.filling?this.moveTo(a,b):this.moveTo(i,j);for(var k=this.currentPath.shape.points,l=g/(2*h),m=2*l,n=Math.cos(l),o=Math.sin(l),p=h-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);k.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){(a instanceof c.Polygon||a instanceof PIXI.Polygon)&&(a=a.points);var b=a;if(!Array.isArray(b)){b=new Array(arguments.length);for(var d=0;dp?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._currentBounds=this._bounds}return this._currentBounds},PIXI.Graphics.prototype.containsPoint=function(a){this.worldTransform.applyInverse(a,tempPoint);for(var b=this.graphicsData,c=0;ch?h:a,b=h+j>b?h+j:b,d=d>i?i:d,e=i+k>e?i+k:e;else if(n===PIXI.Graphics.CIRC)h=f.x,i=f.y,j=f.radius+o/2,k=f.radius+o/2,a=a>h-j?h-j:a,b=h+j>b?h+j:b,d=d>i-k?i-k:d,e=i+k>e?i+k:e;else if(n===PIXI.Graphics.ELIP)h=f.x,i=f.y,j=f.width+o/2,k=f.height+o/2,a=a>h-j?h-j:a,b=h+j>b?h+j:b,d=d>i-k?i-k:d,e=i+k>e?i+k:e;else{g=f.points;for(var p=0;ph-o?h-o:a,b=h+o>b?h+o:b,d=d>i-o?i-o:d,e=i+o>e?i+o:e}}else a=0,b=0,d=0,e=0;var q=this.boundsPadding;this._localBounds.x=a-q,this._localBounds.width=b-a+2*q,this._localBounds.y=d-q,this._localBounds.height=e-d+2*q},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,a instanceof c.Polygon&&(a=a.clone(),a.flatten());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},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.GraphicsData=function(a,b,c,d,e,f,g){this.lineWidth=a,this.lineColor=b,this.lineAlpha=c,this._lineTint=b,this.fillColor=d,this.fillAlpha=e,this._fillTint=d,this.fill=f,this.shape=g,this.type=g.type},PIXI.GraphicsData.prototype.constructor=PIXI.GraphicsData,PIXI.GraphicsData.prototype.clone=function(){return new GraphicsData(this.lineWidth,this.lineColor,this.lineAlpha,this.fillColor,this.fillAlpha,this.fill,this.shape)},c.Graphics=function(a,b,d){void 0===b&&(b=0),void 0===d&&(d=0),this.type=c.GRAPHICS,this.physicsType=c.SPRITE,PIXI.Graphics.call(this),c.Component.Core.init.call(this,a,b,d,"",null)},c.Graphics.prototype=Object.create(PIXI.Graphics.prototype),c.Graphics.prototype.constructor=c.Graphics,c.Component.Core.install.call(c.Graphics.prototype,["Angle","AutoCull","Bounds","Destroy","FixedToCamera","InputEnabled","InWorld","LifeSpan","PhysicsBody","Reset"]),c.Graphics.prototype.preUpdatePhysics=c.Component.PhysicsBody.preUpdate,c.Graphics.prototype.preUpdateLifeSpan=c.Component.LifeSpan.preUpdate,c.Graphics.prototype.preUpdateInWorld=c.Component.InWorld.preUpdate,c.Graphics.prototype.preUpdateCore=c.Component.Core.preUpdate,c.Graphics.prototype.preUpdate=function(){return this.preUpdatePhysics()&&this.preUpdateLifeSpan()&&this.preUpdateInWorld()?this.preUpdateCore():!1},c.Graphics.prototype.destroy=function(a){this.clear(),c.Component.Destroy.prototype.destroy.call(this,a)},c.Graphics.prototype.drawTriangle=function(a,b){void 0===b&&(b=!1);var d=new c.Polygon(a);if(b){var e=new c.Point(this.game.camera.x-a[0].x,this.game.camera.y-a[0].y),f=new c.Point(a[1].x-a[0].x,a[1].y-a[0].y),g=new c.Point(a[1].x-a[2].x,a[1].y-a[2].y),h=g.cross(f);e.dot(h)>0&&this.drawPolygon(d)}else this.drawPolygon(d)},c.Graphics.prototype.drawTriangles=function(a,b,d){void 0===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;e0&&(j+=c[k-1]),h=j+l}else for(var k=0;kq&&Math.abs(q)>o&&(q=-o),0!==q){var m=q*(b.length-1);p+=m}this.canvas.height=p*this._res,this.context.scale(this._res,this._res),navigator.isCocoonJS&&this.context.clearRect(0,0,this.canvas.width,this.canvas.height),this.style.backgroundColor&&(this.context.fillStyle=this.style.backgroundColor,this.context.fillRect(0,0,this.canvas.width,this.canvas.height)),this.context.fillStyle=this.style.fill,this.context.font=this.style.font,this.context.strokeStyle=this.style.stroke,this.context.textBaseline="alphabetic",this.context.lineWidth=this.style.strokeThickness,this.context.lineCap="round",this.context.lineJoin="round";var r,s;for(this._charCount=0,g=0;g0&&(s+=q*g),"right"===this.style.align?r+=e-d[g]:"center"===this.style.align&&(r+=(e-d[g])/2),this.autoRound&&(r=Math.round(r),s=Math.round(s)),this.colors.length>0||this.strokeColors.length>0?this.updateLine(b[g],r,s):(this.style.stroke&&this.style.strokeThickness&&(this.updateShadow(this.style.shadowStroke),0===c?this.context.strokeText(b[g],r,s):this.renderTabLine(b[g],r,s,!1)),this.style.fill&&(this.updateShadow(this.style.shadowFill),0===c?this.context.fillText(b[g],r,s):this.renderTabLine(b[g],r,s,!0)));this.updateTexture()},c.Text.prototype.renderTabLine=function(a,b,c,d){var e=a.split(/(?:\t)/),f=this.style.tabs,g=0;if(Array.isArray(f))for(var h=0,i=0;i0&&(h+=f[i-1]),g=b+h,d?this.context.fillText(e[i],g,c):this.context.strokeText(e[i],g,c);else for(var i=0;ie?(g>0&&(b+="\n"),b+=f[g]+" ",e=this.style.wordWrapWidth-h):(e-=i,b+=f[g]+" ")}dd&&(this.style.wordWrapWidth=d)),this.updateTexture(),this},c.Text.prototype.updateTexture=function(){var a=this.texture.baseTexture,b=this.texture.crop,c=this.texture.frame,d=this.canvas.width,e=this.canvas.height;if(a.width=d,a.height=e,b.width=d,b.height=e,c.width=d,c.height=e,this.texture.width=d,this.texture.height=e,this._width=d,this._height=e,this.textBounds){var f=this.textBounds.x,g=this.textBounds.y;"right"===this.style.boundsAlignH?f=this.textBounds.width-this.canvas.width:"center"===this.style.boundsAlignH&&(f=this.textBounds.halfWidth-this.canvas.width/2),"bottom"===this.style.boundsAlignV?g=this.textBounds.height-this.canvas.height:"middle"===this.style.boundsAlignV&&(g=this.textBounds.halfHeight-this.canvas.height/2),this.pivot.x=-f,this.pivot.y=-g}this.renderable=0!==d&&0!==e,this.texture.baseTexture.dirty()},c.Text.prototype._renderWebGL=function(a){this.dirty&&(this.updateText(),this.dirty=!1),PIXI.Sprite.prototype._renderWebGL.call(this,a)},c.Text.prototype._renderCanvas=function(a){this.dirty&&(this.updateText(),this.dirty=!1),PIXI.Sprite.prototype._renderCanvas.call(this,a)},c.Text.prototype.determineFontProperties=function(a){var b=c.Text.fontPropertiesCache[a];if(!b){b={};var d=c.Text.fontPropertiesCanvas,e=c.Text.fontPropertiesContext;e.font=a;var f=Math.ceil(e.measureText("|MÉq").width),g=Math.ceil(e.measureText("|MÉq").width),h=2*g;if(g=1.4*g|0,d.width=f,d.height=h,e.fillStyle="#f00",e.fillRect(0,0,f,h),e.font=a,e.textBaseline="alphabetic",e.fillStyle="#000",e.fillText("|MÉq",0,g),!e.getImageData(0,0,f,h))return b.ascent=g,b.descent=g+6,b.fontSize=b.ascent+b.descent,c.Text.fontPropertiesCache[a]=b,b;var i,j,k=e.getImageData(0,0,f,h).data,l=k.length,m=4*f,n=0,o=!1;for(i=0;g>i;i++){for(j=0;m>j;j+=4)if(255!==k[n+j]){o=!0;break}if(o)break;n+=m}for(b.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}b.descent=i-g,b.descent+=6,b.fontSize=b.ascent+b.descent,c.Text.fontPropertiesCache[a]=b}return b},c.Text.prototype.getBounds=function(a){return this.dirty&&(this.updateText(),this.dirty=!1),PIXI.Sprite.prototype.getBounds.call(this,a)},Object.defineProperty(c.Text.prototype,"text",{get:function(){return this._text},set:function(a){a!==this._text&&(this._text=a.toString()||"",this.dirty=!0,this.parent&&this.updateTransform())}}),Object.defineProperty(c.Text.prototype,"cssFont",{get:function(){return this.componentsToFont(this._fontComponents)},set:function(a){a=a||"bold 20pt Arial",this._fontComponents=this.fontToComponents(a),this.updateFont(this._fontComponents)}}),Object.defineProperty(c.Text.prototype,"font",{get:function(){return this._fontComponents.fontFamily},set:function(a){a=a||"Arial",a=a.trim(),/^(?:inherit|serif|sans-serif|cursive|fantasy|monospace)$/.exec(a)||/['",]/.exec(a)||(a="'"+a+"'"),this._fontComponents.fontFamily=a,this.updateFont(this._fontComponents)}}),Object.defineProperty(c.Text.prototype,"fontSize",{get:function(){var a=this._fontComponents.fontSize;return a&&/(?:^0$|px$)/.exec(a)?parseInt(a,10):a},set:function(a){a=a||"0","number"==typeof a&&(a+="px"),this._fontComponents.fontSize=a,this.updateFont(this._fontComponents)}}),Object.defineProperty(c.Text.prototype,"fontWeight",{get:function(){return this._fontComponents.fontWeight||"normal"},set:function(a){a=a||"normal",this._fontComponents.fontWeight=a,this.updateFont(this._fontComponents)}}),Object.defineProperty(c.Text.prototype,"fontStyle",{get:function(){return this._fontComponents.fontStyle||"normal"},set:function(a){a=a||"normal",this._fontComponents.fontStyle=a,this.updateFont(this._fontComponents)}}),Object.defineProperty(c.Text.prototype,"fontVariant",{get:function(){return this._fontComponents.fontVariant||"normal"},set:function(a){a=a||"normal",this._fontComponents.fontVariant=a,this.updateFont(this._fontComponents)}}),Object.defineProperty(c.Text.prototype,"fill",{get:function(){return this.style.fill},set:function(a){a!==this.style.fill&&(this.style.fill=a,this.dirty=!0)}}),Object.defineProperty(c.Text.prototype,"align",{get:function(){return this.style.align},set:function(a){a!==this.style.align&&(this.style.align=a,this.dirty=!0)}}),Object.defineProperty(c.Text.prototype,"resolution",{get:function(){return this._res},set:function(a){a!==this._res&&(this._res=a,this.dirty=!0)}}),Object.defineProperty(c.Text.prototype,"tabs",{get:function(){return this.style.tabs},set:function(a){a!==this.style.tabs&&(this.style.tabs=a,this.dirty=!0)}}),Object.defineProperty(c.Text.prototype,"boundsAlignH",{get:function(){return this.style.boundsAlignH},set:function(a){a!==this.style.boundsAlignH&&(this.style.boundsAlignH=a,this.dirty=!0)}}),Object.defineProperty(c.Text.prototype,"boundsAlignV",{get:function(){return this.style.boundsAlignV},set:function(a){a!==this.style.boundsAlignV&&(this.style.boundsAlignV=a,this.dirty=!0)}}),Object.defineProperty(c.Text.prototype,"stroke",{get:function(){return this.style.stroke},set:function(a){a!==this.style.stroke&&(this.style.stroke=a,this.dirty=!0)}}),Object.defineProperty(c.Text.prototype,"strokeThickness",{get:function(){return this.style.strokeThickness},set:function(a){a!==this.style.strokeThickness&&(this.style.strokeThickness=a,this.dirty=!0)}}),Object.defineProperty(c.Text.prototype,"wordWrap",{get:function(){return this.style.wordWrap},set:function(a){a!==this.style.wordWrap&&(this.style.wordWrap=a,this.dirty=!0)}}),Object.defineProperty(c.Text.prototype,"wordWrapWidth",{get:function(){return this.style.wordWrapWidth},set:function(a){a!==this.style.wordWrapWidth&&(this.style.wordWrapWidth=a,this.dirty=!0)}}),Object.defineProperty(c.Text.prototype,"lineSpacing",{get:function(){return this._lineSpacing},set:function(a){a!==this._lineSpacing&&(this._lineSpacing=parseFloat(a),this.dirty=!0,this.parent&&this.updateTransform())}}),Object.defineProperty(c.Text.prototype,"shadowOffsetX",{get:function(){return this.style.shadowOffsetX},set:function(a){a!==this.style.shadowOffsetX&&(this.style.shadowOffsetX=a,this.dirty=!0)}}),Object.defineProperty(c.Text.prototype,"shadowOffsetY",{get:function(){return this.style.shadowOffsetY},set:function(a){a!==this.style.shadowOffsetY&&(this.style.shadowOffsetY=a,this.dirty=!0)}}),Object.defineProperty(c.Text.prototype,"shadowColor",{get:function(){return this.style.shadowColor},set:function(a){a!==this.style.shadowColor&&(this.style.shadowColor=a,this.dirty=!0)}}),Object.defineProperty(c.Text.prototype,"shadowBlur",{get:function(){return this.style.shadowBlur},set:function(a){a!==this.style.shadowBlur&&(this.style.shadowBlur=a,this.dirty=!0)}}),Object.defineProperty(c.Text.prototype,"shadowStroke",{get:function(){return this.style.shadowStroke},set:function(a){a!==this.style.shadowStroke&&(this.style.shadowStroke=a,this.dirty=!0)}}),Object.defineProperty(c.Text.prototype,"shadowFill",{get:function(){return this.style.shadowFill},set:function(a){a!==this.style.shadowFill&&(this.style.shadowFill=a,this.dirty=!0)}}),Object.defineProperty(c.Text.prototype,"width",{get:function(){return this.dirty&&(this.updateText(),this.dirty=!1),this.scale.x*this.texture.frame.width},set:function(a){this.scale.x=a/this.texture.frame.width,this._width=a}}),Object.defineProperty(c.Text.prototype,"height",{get:function(){return this.dirty&&(this.updateText(),this.dirty=!1),this.scale.y*this.texture.frame.height},set:function(a){this.scale.y=a/this.texture.frame.height,this._height=a}}),c.Text.fontPropertiesCache={},c.Text.fontPropertiesCanvas=document.createElement("canvas"),c.Text.fontPropertiesContext=c.Text.fontPropertiesCanvas.getContext("2d"),c.BitmapText=function(a,b,d,e,f,g,h){b=b||0,d=d||0,e=e||"",f=f||"",g=g||32,h=h||"left",PIXI.DisplayObjectContainer.call(this),this.type=c.BITMAPTEXT,this.physicsType=c.SPRITE,this.textWidth=0,this.textHeight=0,this.anchor=new c.Point,this._prevAnchor=new c.Point,this._glyphs=[],this._maxWidth=0,this._text=f,this._data=a.cache.getBitmapFont(e),this._font=e,this._fontSize=g,this._align=h,this._tint=16777215,this.updateText(),this.dirty=!1,c.Component.Core.init.call(this,a,b,d,"",null)},c.BitmapText.prototype=Object.create(PIXI.DisplayObjectContainer.prototype),c.BitmapText.prototype.constructor=c.BitmapText,c.Component.Core.install.call(c.BitmapText.prototype,["Angle","AutoCull","Bounds","Destroy","FixedToCamera","InputEnabled","InWorld","LifeSpan","PhysicsBody","Reset"]),c.BitmapText.prototype.preUpdatePhysics=c.Component.PhysicsBody.preUpdate,c.BitmapText.prototype.preUpdateLifeSpan=c.Component.LifeSpan.preUpdate,c.BitmapText.prototype.preUpdateInWorld=c.Component.InWorld.preUpdate,c.BitmapText.prototype.preUpdateCore=c.Component.Core.preUpdate,c.BitmapText.prototype.preUpdate=function(){return this.preUpdatePhysics()&&this.preUpdateLifeSpan()&&this.preUpdateInWorld()?this.preUpdateCore():!1},c.BitmapText.prototype.postUpdate=function(){c.Component.PhysicsBody.postUpdate.call(this),c.Component.FixedToCamera.postUpdate.call(this),this.body&&this.body.type===c.Physics.ARCADE&&(this.textWidth!==this.body.sourceWidth||this.textHeight!==this.body.sourceHeight)&&this.body.setSize(this.textWidth,this.textHeight)},c.BitmapText.prototype.setText=function(a){this.text=a},c.BitmapText.prototype.scanLine=function(a,b,c){for(var d=0,e=0,f=-1,g=null,h=this._maxWidth>0?this._maxWidth:null,i=[],j=0;j=h&&f>-1)return{width:e,text:c.substr(0,j-(j-f)),end:k,chars:i};e+=m.xAdvance*b,i.push(d+m.xOffset*b),d+=m.xAdvance*b,g=l}}return{width:e,text:c,end:k,chars:i}},c.BitmapText.prototype.updateText=function(){var a=this._data.font;if(a){var b=this.text,c=this._fontSize/a.size,d=[],e=0;this.textWidth=0;do{var f=this.scanLine(a,c,b);f.y=e,d.push(f),f.width>this.textWidth&&(this.textWidth=f.width),e+=a.lineHeight*c,b=b.substr(f.text.length+1)}while(f.end===!1);this.textHeight=e;for(var g=0,h=0,i=this.textWidth*this.anchor.x,j=this.textHeight*this.anchor.y,k=0;k0&&(this._fontSize=a,this.updateText())}}),Object.defineProperty(c.BitmapText.prototype,"text",{get:function(){return this._text},set:function(a){a!==this._text&&(this._text=a.toString()||"",this.updateText())}}),Object.defineProperty(c.BitmapText.prototype,"maxWidth",{get:function(){return this._maxWidth},set:function(a){a!==this._maxWidth&&(this._maxWidth=a,this.updateText())}}),c.RetroFont=function(a,b,d,e,f,g,h,i,j,k){if(!a.cache.checkImageKey(b))return!1;(void 0===g||null===g)&&(g=a.cache.getImage(b).width/d),this.characterWidth=d,this.characterHeight=e,this.characterSpacingX=h||0,this.characterSpacingY=i||0,this.characterPerRow=g,this.offsetX=j||0,this.offsetY=k||0,this.align="left",this.multiLine=!1,this.autoUpperCase=!0,this.customSpacingX=0,this.customSpacingY=0,this.fixedWidth=0,this.fontSet=a.cache.getImage(b),this._text="",this.grabData=[],this.frameData=new c.FrameData;for(var l=this.offsetX,m=this.offsetY,n=0,o=0;o?@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){void 0===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 this.fixedWidth>0?this.resize(this.fixedWidth,this.characterHeight,!0):this.resize(this._text.length*(this.characterWidth+this.customSpacingX),this.characterHeight,!0),a=0,this.align===c.RetroFont.ALIGN_RIGHT?a=this.width-this._text.length*(this.characterWidth+this.customSpacingX):this.align===c.RetroFont.ALIGN_CENTER&&(a=this.width/2-this._text.length*(this.characterWidth+this.customSpacingX)/2,a+=this.customSpacingX/2),0>a&&(a=0),this.pasteLine(this._text,a,0,this.customSpacingX);this.requiresReTint=!0},c.RetroFont.prototype.pasteLine=function(a,b,c,d){for(var e=0;e=0&&(this.stamp.frame=this.grabData[a.charCodeAt(e)],this.renderXY(this.stamp,b,c,!1),b+=this.characterWidth+d,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;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.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.type=c.ROPE,this._scroll=new c.Point,PIXI.Rope.call(this,PIXI.TextureCache.__default,this.points),c.Component.Core.init.call(this,a,b,d,e,f)},c.Rope.prototype=Object.create(PIXI.Rope.prototype),c.Rope.prototype.constructor=c.Rope,c.Component.Core.install.call(c.Rope.prototype,["Angle","Animation","AutoCull","Bounds","BringToTop","Crop","Delta","Destroy","FixedToCamera","InputEnabled","InWorld","LifeSpan","LoadTexture","Overlap","PhysicsBody","Reset","ScaleMinMax","Smoothed"]),c.Rope.prototype.preUpdatePhysics=c.Component.PhysicsBody.preUpdate,c.Rope.prototype.preUpdateLifeSpan=c.Component.LifeSpan.preUpdate,c.Rope.prototype.preUpdateInWorld=c.Component.InWorld.preUpdate,c.Rope.prototype.preUpdateCore=c.Component.Core.preUpdate,c.Rope.prototype.preUpdate=function(){return 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.preUpdatePhysics()&&this.preUpdateLifeSpan()&&this.preUpdateInWorld()?this.preUpdateCore():!1 +},c.Rope.prototype.update=function(){this._hasUpdateAnimation&&this.updateAnimation.call(this)},c.Rope.prototype.reset=function(a,b){return c.Component.Reset.prototype.reset.call(this,a,b),this.tilePosition.x=0,this.tilePosition.y=0,this},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;k=1)&&(l.touch=!0),(window.navigator.msPointerEnabled||window.navigator.pointerEnabled)&&(l.mspointer=!0),l.cocoonJS||("onwheel"in window||l.ie&&"WheelEvent"in window?l.wheelEvent="wheel":"onmousewheel"in window?l.wheelEvent="mousewheel":l.firefox&&"MouseScrollEvent"in window&&(l.wheelEvent="DOMMouseScroll"))}function d(){for(var a=["requestFullscreen","requestFullScreen","webkitRequestFullscreen","webkitRequestFullScreen","msRequestFullscreen","msRequestFullScreen","mozRequestFullScreen","mozRequestFullscreen"],b=document.createElement("div"),c=0;c0&&"none"!==a}var l=this;a(),g(),f(),e(),k(),h(),b(),d(),c()},c.Device.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},c.Device.canPlayVideo=function(a){return"webm"===a&&(this.webmVideo||this.vp9Video)?!0:"mp4"===a&&(this.mp4Video||this.h264Video)?!0:"ogg"===a&&this.oggVideo?!0:"mpeg"===a&&this.hlsVideo?!0:!1},c.Device.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.isAndroidStockBrowser=function(){var a=window.navigator.userAgent.match(/Android.*AppleWebKit\/([\d.]+)/);return a&&a[1]<537},c.DOM={getOffset:function(a,b){b=b||new c.Point;var d=a.getBoundingClientRect(),e=c.DOM.scrollY,f=c.DOM.scrollX,g=document.documentElement.clientTop,h=document.documentElement.clientLeft;return b.x=d.left+f-h,b.y=d.top+e-g,b},getBounds:function(a,b){return void 0===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.visualBounds:1===a.nodeType?this.getBounds(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},inLayoutViewport:function(a,b){var c=this.getBounds(a,b);return!!c&&c.bottom>=0&&c.right>=0&&c.top<=this.layoutBounds.width&&c.left<=this.layoutBounds.height},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.visualBounds.height>this.visualBounds.width?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.visualBounds.height>this.visualBounds.width?d:e},visualBounds:new c.Rectangle,layoutBounds:new c.Rectangle,documentBounds:new c.Rectangle},c.Device.whenReady(function(a){var b=window&&"pageXOffset"in window?function(){return window.pageXOffset}:function(){return document.documentElement.scrollLeft},d=window&&"pageYOffset"in window?function(){return window.pageYOffset}:function(){return document.documentElement.scrollTop};Object.defineProperty(c.DOM,"scrollX",{get:b}),Object.defineProperty(c.DOM,"scrollY",{get:d}),Object.defineProperty(c.DOM.visualBounds,"x",{get:b}),Object.defineProperty(c.DOM.visualBounds,"y",{get:d}),Object.defineProperty(c.DOM.layoutBounds,"x",{value:0}),Object.defineProperty(c.DOM.layoutBounds,"y",{value:0});var e=a.desktop&&document.documentElement.clientWidth<=window.innerWidth&&document.documentElement.clientHeight<=window.innerHeight;if(e){var f=function(){return Math.max(window.innerWidth,document.documentElement.clientWidth)},g=function(){return Math.max(window.innerHeight,document.documentElement.clientHeight)};Object.defineProperty(c.DOM.visualBounds,"width",{get:f}),Object.defineProperty(c.DOM.visualBounds,"height",{get:g}),Object.defineProperty(c.DOM.layoutBounds,"width",{get:f}),Object.defineProperty(c.DOM.layoutBounds,"height",{get:g})}else Object.defineProperty(c.DOM.visualBounds,"width",{get:function(){return window.innerWidth}}),Object.defineProperty(c.DOM.visualBounds,"height",{get:function(){return window.innerHeight}}),Object.defineProperty(c.DOM.layoutBounds,"width",{get:function(){var a=document.documentElement.clientWidth,b=window.innerWidth;return b>a?b:a}}),Object.defineProperty(c.DOM.layoutBounds,"height",{get:function(){var a=document.documentElement.clientHeight,b=window.innerHeight;return b>a?b:a}});Object.defineProperty(c.DOM.documentBounds,"x",{value:0}),Object.defineProperty(c.DOM.documentBounds,"y",{value:0}),Object.defineProperty(c.DOM.documentBounds,"width",{get:function(){var a=document.documentElement;return Math.max(a.clientWidth,a.offsetWidth,a.scrollWidth)}}),Object.defineProperty(c.DOM.documentBounds,"height",{get:function(){var a=document.documentElement;return Math.max(a.clientHeight,a.offsetHeight,a.scrollHeight)}})},null,!0),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 void 0===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){var c=["i","mozI","oI","webkitI","msI"];for(var d in c){var e=c[d]+"mageSmoothingEnabled";if(e in a)return a[e]=b,a}return 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.RequestAnimationFrame=function(a,b){void 0===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 void 0===c&&(c=1e-4),a>b-c},fuzzyCeil:function(a,b){return void 0===b&&(b=1e-4),Math.ceil(a-b)},fuzzyFloor:function(a,b){return void 0===b&&(b=1e-4),Math.floor(a+b)},average:function(){for(var a=0,b=0;b=0?a:a+2*Math.PI},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},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)},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)},roundAwayFromZero:function(a){return a>0?Math.ceil(a):Math.floor(a)},sinCosGenerator:function(a,b,c,d){void 0===b&&(b=1),void 0===c&&(c=1),void 0===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}},distance:function(a,b,c,d){var e=a-c,f=b-d;return Math.sqrt(e*e+f*f)},distanceSq:function(a,b,c,d){var e=a-c,f=b-d;return e*e+f*f},distancePow:function(a,b,c,d,e){return void 0===e&&(e=2),Math.sqrt(Math.pow(c-a,e)+Math.pow(d-b,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 void 0===c&&(c=0),a>b||c>b?1:c>a||c>a?0:(a-c)/b}};var j=Math.PI/180,k=180/Math.PI;c.Math.degToRad=function(a){return a*j},c.Math.radToDeg=function(a){return a*k},c.RandomDataGenerator=function(a){void 0===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){if(this.s0=this.hash(" "),this.s1=this.hash(this.s0),this.s2=this.hash(this.s1),this.c=1,a)for(var b=0;b>>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)+.5)]},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){void 0===c&&(c=!1),(void 0===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){void 0===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.easeMap={Power0:c.Easing.Power0,Power1:c.Easing.Power1,Power2:c.Easing.Power2,Power3:c.Easing.Power3,Power4:c.Easing.Power4,Linear:c.Easing.Linear.None,Quad:c.Easing.Quadratic.Out,Cubic:c.Easing.Cubic.Out,Quart:c.Easing.Quartic.Out,Quint:c.Easing.Quintic.Out,Sine:c.Easing.Sinusoidal.Out,Expo:c.Easing.Exponential.Out,Circ:c.Easing.Circular.Out,Elastic:c.Easing.Elastic.Out,Back:c.Easing.Back.Out,Bounce:c.Easing.Bounce.Out,"Quad.easeIn":c.Easing.Quadratic.In,"Cubic.easeIn":c.Easing.Cubic.In,"Quart.easeIn":c.Easing.Quartic.In,"Quint.easeIn":c.Easing.Quintic.In,"Sine.easeIn":c.Easing.Sinusoidal.In,"Expo.easeIn":c.Easing.Exponential.In,"Circ.easeIn":c.Easing.Circular.In,"Elastic.easeIn":c.Easing.Elastic.In,"Back.easeIn":c.Easing.Back.In,"Bounce.easeIn":c.Easing.Bounce.In,"Quad.easeOut":c.Easing.Quadratic.Out,"Cubic.easeOut":c.Easing.Cubic.Out,"Quart.easeOut":c.Easing.Quartic.Out,"Quint.easeOut":c.Easing.Quintic.Out,"Sine.easeOut":c.Easing.Sinusoidal.Out,"Expo.easeOut":c.Easing.Exponential.Out,"Circ.easeOut":c.Easing.Circular.Out,"Elastic.easeOut":c.Easing.Elastic.Out,"Back.easeOut":c.Easing.Back.Out,"Bounce.easeOut":c.Easing.Bounce.Out,"Quad.easeInOut":c.Easing.Quadratic.InOut,"Cubic.easeInOut":c.Easing.Cubic.InOut,"Quart.easeInOut":c.Easing.Quartic.InOut,"Quint.easeInOut":c.Easing.Quintic.InOut,"Sine.easeInOut":c.Easing.Sinusoidal.InOut,"Expo.easeInOut":c.Easing.Exponential.InOut,"Circ.easeInOut":c.Easing.Circular.InOut,"Elastic.easeInOut":c.Easing.Elastic.InOut,"Back.easeInOut":c.Easing.Back.InOut,"Bounce.easeInOut":c.Easing.Bounce.InOut},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;ad;d++)this.removeFrom(a[d]);else if(a.type===c.GROUP&&b)for(var d=0,e=a.children.length;e>d;d++)this.removeFrom(a.children[d]);else{for(d=0,e=this._tweens.length;e>d;d++)a===this._tweens[d].target&&this.remove(this._tweens[d]);for(d=0,e=this._add.length;e>d;d++)a===this._add[d].target&&this.remove(this._add[d])}},add:function(a){a._manager=this,this._add.push(a) +},create:function(a){return new c.Tween(a,this.game,this)},remove:function(a){var b=this._tweens.indexOf(a);-1!==b?this._tweens[b].pendingDelete=!0:(b=this._add.indexOf(a),-1!==b&&(this._add[b].pendingDelete=!0))},update:function(){var a=this._add.length,b=this._tweens.length;if(0===b&&0===a)return!1;for(var c=0;b>c;)this._tweens[c].update(this.game.time.time)?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.target===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.game=b,this.target=a,this.manager=d,this.timeline=[],this.reverse=!1,this.timeScale=1,this.repeatCounter=0,this.pendingDelete=!1,this.onStart=new c.Signal,this.onLoop=new c.Signal,this.onRepeat=new c.Signal,this.onChildComplete=new c.Signal,this.onComplete=new c.Signal,this.isRunning=!1,this.current=0,this.properties={},this.chainedTween=null,this.isPaused=!1,this._onUpdateCallback=null,this._onUpdateCallbackContext=null,this._pausedTime=0,this._codePaused=!1,this._hasStarted=!1},c.Tween.prototype={to:function(a,b,d,e,f,g,h){return(void 0===b||0>=b)&&(b=1e3),(void 0===d||null===d)&&(d=c.Easing.Default),void 0===e&&(e=!1),void 0===f&&(f=0),void 0===g&&(g=0),void 0===h&&(h=!1),"string"==typeof d&&this.manager.easeMap[d]&&(d=this.manager.easeMap[d]),this.isRunning?(console.warn("Phaser.Tween.to cannot be called after Tween.start"),this):(this.timeline.push(new c.TweenData(this).to(a,b,d,f,g,h)),e&&this.start(),this)},from:function(a,b,d,e,f,g,h){return void 0===b&&(b=1e3),(void 0===d||null===d)&&(d=c.Easing.Default),void 0===e&&(e=!1),void 0===f&&(f=0),void 0===g&&(g=0),void 0===h&&(h=!1),"string"==typeof d&&this.manager.easeMap[d]&&(d=this.manager.easeMap[d]),this.isRunning?(console.warn("Phaser.Tween.from cannot be called after Tween.start"),this):(this.timeline.push(new c.TweenData(this).from(a,b,d,f,g,h)),e&&this.start(),this)},start:function(a){if(void 0===a&&(a=0),null===this.game||null===this.target||0===this.timeline.length||this.isRunning)return this;for(var b=0;ba||a>this.timeline.length-1)&&(a=0),this.current=a,this.timeline[this.current].start(),this},stop:function(a){return void 0===a&&(a=!1),this.isRunning=!1,this._onUpdateCallback=null,this._onUpdateCallbackContext=null,a&&(this.onComplete.dispatch(this.target,this),this.chainedTween&&this.chainedTween.start()),this.manager.remove(this),this},updateTweenData:function(a,b,c){if(0===this.timeline.length)return this;if(void 0===c&&(c=0),-1===c)for(var d=0;d0?arguments[a-1].chainedTween=arguments[a]:this.chainedTween=arguments[a];return this},loop:function(a){return void 0===a&&(a=!0),a?this.repeatAll(-1):this.repeatCounter=0,this},onUpdateCallback:function(a,b){return this._onUpdateCallback=a,this._onUpdateCallbackContext=b,this},pause:function(){this.isPaused=!0,this._codePaused=!0,this._pausedTime=this.game.time.time},_pause:function(){this._codePaused||(this.isPaused=!0,this._pausedTime=this.game.time.time)},resume:function(){if(this.isPaused){this.isPaused=!1,this._codePaused=!1;for(var a=0;a0?(this.repeatCounter--,this.timeline[this.current].start(),this.onRepeat.dispatch(this.target,this),!0):(this.isRunning=!1,this.onComplete.dispatch(this.target,this),this.chainedTween&&this.chainedTween.start(),!1):(this.onChildComplete.dispatch(this.target,this),this.timeline[this.current].start(),!0)}},generateData:function(a,b){if(null===this.game||null===this.target)return null;void 0===a&&(a=60),void 0===b&&(b=[]);for(var c=0;c0?!1:!0,this.isFrom)for(var a in this.vStartCache)this.vStart[a]=this.vEndCache[a],this.vEnd[a]=this.vStartCache[a],this.parent.target[a]=this.vStart[a];return this.value=0,this.yoyoCounter=0,this},loadValues:function(){for(var a in this.parent.properties){if(this.vStart[a]=this.parent.properties[a],Array.isArray(this.vEnd[a])){if(0===this.vEnd[a].length)continue;0===this.percent&&(this.vEnd[a]=[this.vStart[a]].concat(this.vEnd[a]))}"undefined"!=typeof this.vEnd[a]?("string"==typeof this.vEnd[a]&&(this.vEnd[a]=this.vStart[a]+parseFloat(this.vEnd[a],10)),this.parent.properties[a]=this.vEnd[a]):this.vEnd[a]=this.vStart[a],this.vStartCache[a]=this.vStart[a],this.vEndCache[a]=this.vEnd[a]}return this},update:function(a){if(this.isRunning){if(a=this.startTime))return c.TweenData.PENDING;this.isRunning=!0}this.parent.reverse?(this.dt-=this.game.time.elapsedMS*this.parent.timeScale,this.dt=Math.max(this.dt,0)):(this.dt+=this.game.time.elapsedMS*this.parent.timeScale,this.dt=Math.min(this.dt,this.duration)),this.percent=this.dt/this.duration,this.value=this.easingFunction(this.percent);for(var b in this.vEnd){var d=this.vStart[b],e=this.vEnd[b];this.parent.target[b]=Array.isArray(e)?this.interpolationFunction.call(this.interpolationContext,e,this.value):d+(e-d)*this.value}return!this.parent.reverse&&1===this.percent||this.parent.reverse&&0===this.percent?this.repeat():c.TweenData.RUNNING},generateData:function(a){this.dt=this.parent.reverse?this.duration:0;var b=[],c=!1,d=1/a*1e3;do{this.parent.reverse?(this.dt-=d,this.dt=Math.max(this.dt,0)):(this.dt+=d,this.dt=Math.min(this.dt,this.duration)),this.percent=this.dt/this.duration,this.value=this.easingFunction(this.percent);var e={};for(var f in this.vEnd){var g=this.vStart[f],h=this.vEnd[f];e[f]=Array.isArray(h)?this.interpolationFunction(h,this.value):g+(h-g)*this.value}b.push(e),(!this.parent.reverse&&1===this.percent||this.parent.reverse&&0===this.percent)&&(c=!0)}while(!c);if(this.yoyo){var i=b.slice();i.reverse(),b=b.concat(i)}return b},repeat:function(){if(this.yoyo){if(this.inReverse&&0===this.repeatCounter)return c.TweenData.COMPLETE;this.inReverse=!this.inReverse}else if(0===this.repeatCounter)return c.TweenData.COMPLETE;if(this.inReverse)for(var a in this.vStartCache)this.vStart[a]=this.vEndCache[a],this.vEnd[a]=this.vStartCache[a];else{for(var a in this.vStartCache)this.vStart[a]=this.vStartCache[a],this.vEnd[a]=this.vEndCache[a];this.repeatCounter>0&&this.repeatCounter--}return this.startTime=this.game.time.time,this.yoyo&&this.inReverse?this.startTime+=this.yoyoDelay:this.inReverse||(this.startTime+=this.repeatDelay),this.dt=this.parent.reverse?this.duration:0,c.TweenData.LOOPED}},c.TweenData.prototype.constructor=c.TweenData,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 0===a?0:1===a?1:1-Math.cos(a*Math.PI/2)},Out:function(a){return 0===a?0:1===a?1:Math.sin(a*Math.PI/2)},InOut:function(a){return 0===a?0:1===a?1:.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.Easing.Power0=c.Easing.Linear.None,c.Easing.Power1=c.Easing.Quadratic.Out,c.Easing.Power2=c.Easing.Cubic.Out,c.Easing.Power3=c.Easing.Quartic.Out,c.Easing.Power4=c.Easing.Quintic.Out,c.Time=function(a){this.game=a,this.time=0,this.prevTime=0,this.now=0,this.elapsed=0,this.elapsedMS=0,this.physicsElapsed=0,this.physicsElapsedMS=0,this.desiredFps=60,this.suggestedFps=null,this.slowMotion=1,this.advancedTiming=!1,this.frames=0,this.fps=0,this.fpsMin=1e3,this.fpsMax=0,this.msMin=1e3,this.msMax=0,this.pauseDuration=0,this.timeToCall=0,this.timeExpected=0,this.events=new c.Timer(this.game,!1),this._frameCount=0,this._elapsedAccumulator=0,this._started=0,this._timeLastSecond=0,this._pauseStarted=0,this._justResumed=!1,this._timers=[]},c.Time.prototype={boot:function(){this._started=Date.now(),this.time=Date.now(),this.events.start()},add:function(a){return this._timers.push(a),a},create:function(a){void 0===a&&(a=!0);var b=new c.Timer(this.game,a);return this._timers.push(b),b},removeAll:function(){for(var a=0;aa;)this._timers[a].update(this.time)?a++:(this._timers.splice(a,1),b--)},updateAdvancedTiming:function(){this._frameCount++,this._elapsedAccumulator+=this.elapsed,this._frameCount>=2*this.desiredFps&&(this.suggestedFps=5*Math.floor(200/(this._elapsedAccumulator/this._frameCount)),this._frameCount=0,this._elapsedAccumulator=0),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)},gamePaused:function(){this._pauseStarted=Date.now(),this.events.pause();for(var a=this._timers.length;a--;)this._timers[a]._pause()},gameResumed:function(){this.time=Date.now(),this.pauseDuration=this.time-this._pauseStarted,this.events.resume();for(var a=this._timers.length;a--;)this._timers[a]._resume()},totalElapsedSeconds:function(){return.001*(this.time-this._started)},elapsedSince:function(a){return this.time-a},elapsedSecondsSince:function(a){return.001*(this.time-a)},reset:function(){this._started=this.time,this.removeAll()}},c.Time.prototype.constructor=c.Time,c.Timer=function(a,b){void 0===b&&(b=!0),this.game=a,this.running=!1,this.autoDestroy=b,this.expired=!1,this.elapsed=0,this.events=[],this.onComplete=new c.Signal,this.nextTick=0,this.timeCap=1e3,this.paused=!1,this._codePaused=!1,this._started=0,this._pauseStarted=0,this._pauseTotal=0,this._now=Date.now(),this._len=0,this._marked=0,this._i=0,this._diff=0,this._newTick=0},c.Timer.MINUTE=6e4,c.Timer.SECOND=1e3,c.Timer.HALF=500,c.Timer.QUARTER=250,c.Timer.prototype={create:function(a,b,d,e,f,g){a=Math.round(a);var h=a;h+=0===this._now?this.game.time.time:this._now;var i=new c.TimerEvent(this,a,h,d,b,e,f,g);return this.events.push(i),this.order(),this.expired=!1,i},add:function(a,b,c){return this.create(a,!1,0,b,c,Array.prototype.splice.call(arguments,3))},repeat:function(a,b,c,d){return this.create(a,!1,b,c,d,Array.prototype.splice.call(arguments,4))},loop:function(a,b,c){return this.create(a,!0,0,b,c,Array.prototype.splice.call(arguments,3))},start:function(a){if(!this.running){this._started=this.game.time.time+(a||0),this.running=!0;for(var b=0;b0&&(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.events[this._i].pendingDelete;)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},destroy:function(){this.onComplete.removeAll(),this.running=!1,this.events=[],this._len=0,this._i=0}},Object.defineProperty(c.Timer.prototype,"next",{get:function(){return this.nextTick}}),Object.defineProperty(c.Timer.prototype,"duration",{get:function(){return this.running&&this.nextTick>this._now?this.nextTick-this._now:0}}),Object.defineProperty(c.Timer.prototype,"length",{get:function(){return this.events.length}}),Object.defineProperty(c.Timer.prototype,"ms",{get:function(){return this.running?this._now-this._started-this._pauseTotal:0}}),Object.defineProperty(c.Timer.prototype,"seconds",{get:function(){return this.running?.001*this.ms:0}}),c.Timer.prototype.constructor=c.Timer,c.TimerEvent=function(a,b,c,d,e,f,g,h){this.timer=a,this.delay=b,this.tick=c,this.repeatCount=d-1,this.loop=e,this.callback=f,this.callbackContext=g,this.args=h,this.pendingDelete=!1},c.TimerEvent.prototype.constructor=c.TimerEvent,c.AnimationManager=function(a){this.sprite=a,this.game=a.game,this.currentFrame=null,this.currentAnim=null,this.updateIfVisible=!0,this.isLoaded=!1,this._frameData=null,this._anims={},this._outputFrames=[]},c.AnimationManager.prototype={loadFrameData:function(a,b){if(void 0===a)return!1;if(this.isLoaded)for(var c in this._anims)this._anims[c].updateFrameData(a);return this._frameData=a,void 0===b||null===b?this.frame=0:"string"==typeof b?this.frameName=b:this.frame=b,this.isLoaded=!0,!0},copyFrameData:function(a,b){if(this._frameData=a.clone(),this.isLoaded)for(var c in this._anims)this._anims[c].updateFrameData(this._frameData);return void 0===b||null===b?this.frame=0:"string"==typeof b?this.frameName=b:this.frame=b,this.isLoaded=!0,!0},add:function(a,b,d,e,f){return b=b||[],d=d||60,void 0===e&&(e=!1),void 0===f&&(f=b&&"number"==typeof b[0]?!0:!1),this._outputFrames=[],this._frameData.getFrameIndexes(b,f,this._outputFrames),this._anims[a]=new c.Animation(this.game,this.sprite,a,this._frameData,this._outputFrames,d,e),this.currentAnim=this._anims[a],this.sprite.tilingTexture&&(this.sprite.refreshTexture=!0),this._anims[a]},validateFrames:function(a,b){void 0===b&&(b=!0);for(var c=0;cthis._frameData.total)return!1}else if(this._frameData.checkFrameName(a[c])===!1)return!1;return!0},play:function(a,b,c,d){return this._anims[a]?this.currentAnim===this._anims[a]?this.currentAnim.isPlaying===!1?(this.currentAnim.paused=!1,this.currentAnim.play(b,c,d)):this.currentAnim:(this.currentAnim&&this.currentAnim.isPlaying&&this.currentAnim.stop(),this.currentAnim=this._anims[a],this.currentAnim.paused=!1,this.currentFrame=this.currentAnim.currentFrame,this.currentAnim.play(b,c,d)):void 0},stop:function(a,b){void 0===b&&(b=!1),"string"==typeof a?this._anims[a]&&(this.currentAnim=this._anims[a],this.currentAnim.stop(b)):this.currentAnim&&this.currentAnim.stop(b)},update:function(){return this.updateIfVisible&&!this.sprite.visible?!1:this.currentAnim&&this.currentAnim.update()?(this.currentFrame=this.currentAnim.currentFrame,!0):!1},next:function(a){this.currentAnim&&(this.currentAnim.next(a),this.currentFrame=this.currentAnim.currentFrame)},previous:function(a){this.currentAnim&&(this.currentAnim.previous(a),this.currentFrame=this.currentAnim.currentFrame)},getAnimation:function(a){return"string"==typeof a&&this._anims[a]?this._anims[a]:null},refreshFrame:function(){this.sprite.setTexture(PIXI.TextureCache[this.currentFrame.uuid])},destroy:function(){var a=null;for(var a in this._anims)this._anims.hasOwnProperty(a)&&this._anims[a].destroy();this._anims={},this._outputFrames=[],this._frameData=null,this.currentAnim=null,this.currentFrame=null,this.sprite=null,this.game=null}},c.AnimationManager.prototype.constructor=c.AnimationManager,Object.defineProperty(c.AnimationManager.prototype,"frameData",{get:function(){return this._frameData}}),Object.defineProperty(c.AnimationManager.prototype,"frameTotal",{get:function(){return this._frameData.total}}),Object.defineProperty(c.AnimationManager.prototype,"paused",{get:function(){return this.currentAnim.isPaused},set:function(a){this.currentAnim.paused=a}}),Object.defineProperty(c.AnimationManager.prototype,"name",{get:function(){return this.currentAnim?this.currentAnim.name:void 0}}),Object.defineProperty(c.AnimationManager.prototype,"frame",{get:function(){return this.currentFrame?this.currentFrame.index:void 0},set:function(a){"number"==typeof a&&this._frameData&&null!==this._frameData.getFrame(a)&&(this.currentFrame=this._frameData.getFrame(a),this.currentFrame&&this.sprite.setFrame(this.currentFrame))}}),Object.defineProperty(c.AnimationManager.prototype,"frameName",{get:function(){return this.currentFrame?this.currentFrame.name:void 0},set:function(a){"string"==typeof a&&this._frameData&&null!==this._frameData.getFrameByName(a)?(this.currentFrame=this._frameData.getFrameByName(a),this.currentFrame&&(this._frameIndex=this.currentFrame.index,this.sprite.setFrame(this.currentFrame))):console.warn("Cannot set frameName: "+a)}}),c.Animation=function(a,b,d,e,f,g,h){void 0===h&&(h=!1),this.game=a,this._parent=b,this._frameData=e,this.name=d,this._frames=[],this._frames=this._frames.concat(f),this.delay=1e3/g,this.loop=h,this.loopCount=0,this.killOnComplete=!1,this.isFinished=!1,this.isPlaying=!1,this.isPaused=!1,this._pauseStartTime=0,this._frameIndex=0,this._frameDiff=0,this._frameSkip=1,this.currentFrame=this._frameData.getFrame(this._frames[this._frameIndex]),this.onStart=new c.Signal,this.onUpdate=null,this.onComplete=new c.Signal,this.onLoop=new c.Signal,this.game.onPause.add(this.onPause,this),this.game.onResume.add(this.onResume,this)},c.Animation.prototype={play:function(a,b,c){return"number"==typeof a&&(this.delay=1e3/a),"boolean"==typeof b&&(this.loop=b),"undefined"!=typeof c&&(this.killOnComplete=c),this.isPlaying=!0,this.isFinished=!1,this.paused=!1,this.loopCount=0,this._timeLastFrame=this.game.time.time,this._timeNextFrame=this.game.time.time+this.delay,this._frameIndex=0,this.updateCurrentFrame(!1,!0),this._parent.events.onAnimationStart$dispatch(this._parent,this),this.onStart.dispatch(this._parent,this),this._parent.animations.currentAnim=this,this._parent.animations.currentFrame=this.currentFrame,this},restart:function(){this.isPlaying=!0,this.isFinished=!1,this.paused=!1,this.loopCount=0,this._timeLastFrame=this.game.time.time,this._timeNextFrame=this.game.time.time+this.delay,this._frameIndex=0,this.currentFrame=this._frameData.getFrame(this._frames[this._frameIndex]),this._parent.setFrame(this.currentFrame),this._parent.animations.currentAnim=this,this._parent.animations.currentFrame=this.currentFrame,this.onStart.dispatch(this._parent,this)},setFrame:function(a,b){var c;if(void 0===b&&(b=!1),"string"==typeof a)for(var d=0;d=this._timeNextFrame?(this._frameSkip=1,this._frameDiff=this.game.time.time-this._timeNextFrame,this._timeLastFrame=this.game.time.time,this._frameDiff>this.delay&&(this._frameSkip=Math.floor(this._frameDiff/this.delay),this._frameDiff-=this._frameSkip*this.delay),this._timeNextFrame=this.game.time.time+(this.delay-this._frameDiff),this._frameIndex+=this._frameSkip,this._frameIndex>=this._frames.length?this.loop?(this._frameIndex%=this._frames.length,this.currentFrame=this._frameData.getFrame(this._frames[this._frameIndex]),this.currentFrame&&this._parent.setFrame(this.currentFrame),this.loopCount++,this._parent.events.onAnimationLoop$dispatch(this._parent,this),this.onLoop.dispatch(this._parent,this),this.onUpdate?(this.onUpdate.dispatch(this,this.currentFrame),!!this._frameData):!0):(this.complete(),!1):this.updateCurrentFrame(!0)):!1},updateCurrentFrame:function(a,b){if(void 0===b&&(b=!1),!this._frameData)return!1;var c=this.currentFrame.index;return this.currentFrame=this._frameData.getFrame(this._frames[this._frameIndex]),this.currentFrame&&(b||!b&&c!==this.currentFrame.index)&&this._parent.setFrame(this.currentFrame),this.onUpdate&&a?(this.onUpdate.dispatch(this,this.currentFrame),!!this._frameData):!0},next:function(a){void 0===a&&(a=1);var b=this._frameIndex+a;b>=this._frames.length&&(this.loop?b%=this._frames.length:b=this._frames.length-1),b!==this._frameIndex&&(this._frameIndex=b,this.updateCurrentFrame(!0))},previous:function(a){void 0===a&&(a=1);var b=this._frameIndex-a;0>b&&(this.loop?b=this._frames.length+b:b++),b!==this._frameIndex&&(this._frameIndex=b,this.updateCurrentFrame(!0))},updateFrameData:function(a){this._frameData=a,this.currentFrame=this._frameData?this._frameData.getFrame(this._frames[this._frameIndex%this._frames.length]):null},destroy:function(){this._frameData&&(this.game.onPause.remove(this.onPause,this),this.game.onResume.remove(this.onResume,this),this.game=null,this._parent=null,this._frames=null,this._frameData=null,this.currentFrame=null,this.isPlaying=!1,this.onStart.dispose(),this.onLoop.dispose(),this.onComplete.dispose(),this.onUpdate&&this.onUpdate.dispose())},complete:function(){this._frameIndex=this._frames.length-1,this.currentFrame=this._frameData.getFrame(this._frames[this._frameIndex]),this.isPlaying=!1,this.isFinished=!0,this.paused=!1,this._parent.events.onAnimationComplete$dispatch(this._parent,this),this.onComplete.dispatch(this._parent,this),this.killOnComplete&&this._parent.kill()}},c.Animation.prototype.constructor=c.Animation,Object.defineProperty(c.Animation.prototype,"paused",{get:function(){return this.isPaused},set:function(a){this.isPaused=a,a?this._pauseStartTime=this.game.time.time:this.isPlaying&&(this._timeNextFrame=this.game.time.time+this.delay)}}),Object.defineProperty(c.Animation.prototype,"frameTotal",{get:function(){return this._frames.length}}),Object.defineProperty(c.Animation.prototype,"frame",{get:function(){return null!==this.currentFrame?this.currentFrame.index:this._frameIndex},set:function(a){this.currentFrame=this._frameData.getFrame(this._frames[a]),null!==this.currentFrame&&(this._frameIndex=a,this._parent.setFrame(this.currentFrame),this.onUpdate&&this.onUpdate.dispatch(this,this.currentFrame))}}),Object.defineProperty(c.Animation.prototype,"speed",{get:function(){return Math.round(1e3/this.delay)},set:function(a){a>=1&&(this.delay=1e3/a)}}),Object.defineProperty(c.Animation.prototype,"enableUpdate",{get:function(){return null!==this.onUpdate},set:function(a){a&&null===this.onUpdate?this.onUpdate=new c.Signal:a||null===this.onUpdate||(this.onUpdate.dispose(),this.onUpdate=null)}}),c.Animation.generateFrameNames=function(a,b,d,e,f){void 0===e&&(e="");var g=[],h="";if(d>b)for(var i=b;d>=i;i++)h="number"==typeof f?c.Utils.pad(i.toString(),f,"0",1):i.toString(),h=a+h+e,g.push(h);else for(var i=b;i>=d;i--)h="number"==typeof f?c.Utils.pad(i.toString(),f,"0",1):i.toString(),h=a+h+e,g.push(h);return g},c.Frame=function(a,b,d,e,f,g){this.index=a,this.x=b,this.y=d,this.width=e,this.height=f,this.name=g,this.centerX=Math.floor(e/2),this.centerY=Math.floor(f/2),this.distance=c.Math.distance(0,0,e,f),this.rotated=!1,this.rotationDirection="cw",this.trimmed=!1,this.sourceSizeW=e,this.sourceSizeH=f,this.spriteSourceSizeX=0,this.spriteSourceSizeY=0,this.spriteSourceSizeW=0,this.spriteSourceSizeH=0,this.right=this.x+this.width,this.bottom=this.y+this.height},c.Frame.prototype={resize:function(a,b){this.width=a,this.height=b,this.centerX=Math.floor(a/2),this.centerY=Math.floor(b/2),this.distance=c.Math.distance(0,0,a,b),this.sourceSizeW=a,this.sourceSizeH=b,this.right=this.x+a,this.bottom=this.y+b +},setTrim:function(a,b,c,d,e,f,g){this.trimmed=a,a&&(this.sourceSizeW=b,this.sourceSizeH=c,this.centerX=Math.floor(b/2),this.centerY=Math.floor(c/2),this.spriteSourceSizeX=d,this.spriteSourceSizeY=e,this.spriteSourceSizeW=f,this.spriteSourceSizeH=g)},clone:function(){var a=new c.Frame(this.index,this.x,this.y,this.width,this.height,this.name);for(var b in this)this.hasOwnProperty(b)&&(a[b]=this[b]);return a},getRect:function(a){return void 0===a?a=new c.Rectangle(this.x,this.y,this.width,this.height):a.setTo(this.x,this.y,this.width,this.height),a}},c.Frame.prototype.constructor=c.Frame,c.FrameData=function(){this._frames=[],this._frameNames=[]},c.FrameData.prototype={addFrame:function(a){return a.index=this._frames.length,this._frames.push(a),""!==a.name&&(this._frameNames[a.name]=a.index),a},getFrame:function(a){return a>=this._frames.length&&(a=0),this._frames[a]},getFrameByName:function(a){return"number"==typeof this._frameNames[a]?this._frames[this._frameNames[a]]:null},checkFrameName:function(a){return null==this._frameNames[a]?!1:!0},clone:function(){for(var a=new c.FrameData,b=0;b=d;d++)c.push(this._frames[d]);return c},getFrames:function(a,b,c){if(void 0===b&&(b=!0),void 0===c&&(c=[]),void 0===a||0===a.length)for(var d=0;d=d&&(d=Math.floor(-j/Math.min(-1,d))),0>=e&&(e=Math.floor(-k/Math.min(-1,e)));var l=Math.floor((j-g)/(d+h)),m=Math.floor((k-g)/(e+h)),n=l*m;if(-1!==f&&(n=f),0===j||0===k||d>j||e>k||0===n)return console.warn("Phaser.AnimationParser.spriteSheet: '"+b+"'s width/height zero or width/height < given frameWidth/frameHeight"),null;for(var o=new c.FrameData,p=g,q=g,r=0;n>r;r++)o.addFrame(new c.Frame(r,p,q,d,e,"")),p+=d+h,p+d>j&&(p=g,q+=e+h);return o},JSONData:function(a,b){if(!b.frames)return console.warn("Phaser.AnimationParser.JSONData: Invalid Texture Atlas JSON given, missing 'frames' array"),void console.log(b);for(var d,e=new c.FrameData,f=b.frames,g=0;g tag");for(var d,e,f,g,h,i,j,k,l,m,n,o=new c.FrameData,p=b.getElementsByTagName("SubTexture"),q=0;q-1},getAssetIndex:function(a,b){for(var c=-1,d=0;d-1?{index:c,file:this._fileList[c]}:!1},reset:function(a,b){void 0===b&&(b=!1),this.resetLocked||(a&&(this.preloadSprite=null),this.isLoading=!1,this._processingHead=0,this._fileList.length=0,this._flightQueue.length=0,this._fileLoadStarted=!1,this._totalFileCount=0,this._totalPackCount=0,this._loadedPackCount=0,this._loadedFileCount=0,b&&(this.onLoadStart.removeAll(),this.onLoadComplete.removeAll(),this.onPackComplete.removeAll(),this.onFileStart.removeAll(),this.onFileComplete.removeAll(),this.onFileError.removeAll()))},addToFileList:function(a,b,c,d,e,f){if(void 0===e&&(e=!1),void 0===b||""===b)return console.warn("Phaser.Loader: Invalid or no key given of type "+a),this;if(void 0===c||null===c){if(!f)return console.warn("Phaser.Loader: No URL given for file type: "+a+" key: "+b),this;c=b+f}var g={type:a,key:b,path:this.path,url:c,syncPoint:this._withSyncPointDepth>0,data:null,loading:!1,loaded:!1,error:!1};if(d)for(var h in d)g[h]=d[h];var i=this.getAssetIndex(a,b);if(e&&i>-1){var j=this._fileList[i];j.loading||j.loaded?(this._fileList.push(g),this._totalFileCount++):this._fileList[i]=g}else-1===i&&(this._fileList.push(g),this._totalFileCount++);return this},replaceInFileList:function(a,b,c,d){return this.addToFileList(a,b,c,d,!0)},pack:function(a,b,c,d){if(void 0===b&&(b=null),void 0===c&&(c=null),void 0===d&&(d=null),!b&&!c)return console.warn("Phaser.Loader.pack - Both url and data are null. One must be set."),this;var e={type:"packfile",key:a,url:b,path:this.path,syncPoint:!0,data:null,loading:!1,loaded:!1,error:!1,callbackContext:d};c&&("string"==typeof c&&(c=JSON.parse(c)),e.data=c||{},e.loaded=!0);for(var f=0;f=e||d&&this._loadedPackCount===this._totalPackCount)break}if(this.updateProgress(),this._processingHead>=this._fileList.length)this.finishedLoading();else if(!this._flightQueue.length){console.warn("Phaser.Loader - aborting: processing queue empty, loading may have stalled");var f=this;setTimeout(function(){f.finishedLoading(!0)},2e3)}},finishedLoading:function(a){this.hasLoaded||(this.hasLoaded=!0,this.isLoading=!1,a||this._fileLoadStarted||(this._fileLoadStarted=!0,this.onLoadStart.dispatch()),this.onLoadComplete.dispatch(),this.reset(),this.game.state.loadComplete())},asyncComplete:function(a,b){void 0===b&&(b=""),a.loaded=!0,a.error=!!b,b&&(a.errorMessage=b,console.warn("Phaser.Loader - "+a.type+"["+a.key+"]: "+b)),this.processLoadQueue()},processPack:function(a){var b=a.data[a.key];if(!b)return void console.warn("Phaser.Loader - "+a.key+": pack has data, but not for pack key");for(var d=0;d=10)||(this._warnedAboutXDomainRequest=!0,console.warn("Phaser.Loader - using XDomainRequest outside of IE 9"));var f=new window.XDomainRequest;f.open("GET",b,!0),f.responseType=c,f.timeout=3e3,e=e||this.fileError;var g=this;f.onerror=function(){try{return e.call(g,a,f)}catch(b){g.asyncComplete(a,b.message||"Exception")}},f.ontimeout=function(){try{return e.call(g,a,f)}catch(b){g.asyncComplete(a,b.message||"Exception")}},f.onprogress=function(){},f.onload=function(){try{return d.call(g,a,f)}catch(b){g.asyncComplete(a,b.message||"Exception")}},a.requestObject=f,a.requestUrl=b,setTimeout(function(){f.send()},0)},getVideoURL:function(a){for(var b=0;b=0&&(d=d.substr(0,d.indexOf("?")));var e=d.substr((Math.max(0,d.lastIndexOf("."))||1/0)+1);c=e.toLowerCase()}if(this.game.device.canPlayVideo(c))return a[b]}return null},getAudioURL:function(a){if(this.game.sound.noAudio)return null;for(var b=0;b=0&&(d=d.substr(0,d.indexOf("?")));var e=d.substr((Math.max(0,d.lastIndexOf("."))||1/0)+1);c=e.toLowerCase()}if(this.game.device.canPlayAudio(c))return a[b]}return null},fileError:function(a,b,c){var d=a.requestUrl||this.transformUrl(a.url,a),e="error loading asset from URL "+d;!c&&b&&(c=b.status),c&&(e=e+" ("+c+")"),this.asyncComplete(a,e)},fileComplete:function(a,b){var d=!0;switch(a.type){case"packfile":var e=JSON.parse(b.responseText);a.data=e||{};break;case"image":this.cache.addImage(a.key,a.url,a.data);break;case"spritesheet":this.cache.addSpriteSheet(a.key,a.url,a.data,a.frameWidth,a.frameHeight,a.frameMax,a.margin,a.spacing);break;case"textureatlas":if(null==a.atlasURL)this.cache.addTextureAtlas(a.key,a.url,a.data,a.atlasData,a.format);else if(d=!1,a.format==c.Loader.TEXTURE_ATLAS_JSON_ARRAY||a.format==c.Loader.TEXTURE_ATLAS_JSON_HASH)this.xhrLoad(a,this.transformUrl(a.atlasURL,a),"text",this.jsonLoadComplete);else{if(a.format!=c.Loader.TEXTURE_ATLAS_XML_STARLING)throw new Error("Phaser.Loader. Invalid Texture Atlas format: "+a.format);this.xhrLoad(a,this.transformUrl(a.atlasURL,a),"text",this.xmlLoadComplete)}break;case"bitmapfont":a.atlasURL?(d=!1,this.xhrLoad(a,this.transformUrl(a.atlasURL,a),"text",function(a,b){var c;try{c=JSON.parse(b.responseText)}catch(d){}c?(a.atlasType="json",this.jsonLoadComplete(a,b)):(a.atlasType="xml",this.xmlLoadComplete(a,b))})):this.cache.addBitmapFont(a.key,a.url,a.data,a.atlasData,a.atlasType,a.xSpacing,a.ySpacing);break;case"video":if(a.asBlob)try{a.data=new Blob([new Uint8Array(b.response)])}catch(f){throw new Error("Phaser.Loader. Unable to parse video file as Blob: "+a.key)}this.cache.addVideo(a.key,a.url,a.data,a.asBlob);break;case"audio":this.game.sound.usingWebAudio?(a.data=b.response,this.cache.addSound(a.key,a.url,a.data,!0,!1),a.autoDecode&&this.game.sound.decode(a.key)):this.cache.addSound(a.key,a.url,a.data,!1,!0);break;case"text":a.data=b.responseText,this.cache.addText(a.key,a.url,a.data);break;case"shader":a.data=b.responseText,this.cache.addShader(a.key,a.url,a.data);break;case"physics":var e=JSON.parse(b.responseText);this.cache.addPhysicsData(a.key,a.url,e,a.format);break;case"script":a.data=document.createElement("script"),a.data.language="javascript",a.data.type="text/javascript",a.data.defer=!1,a.data.text=b.responseText,document.head.appendChild(a.data),a.callback&&(a.data=a.callback.call(a.callbackContext,a.key,b.responseText));break;case"binary":a.data=a.callback?a.callback.call(a.callbackContext,a.key,b.response):b.response,this.cache.addBinary(a.key,a.data)}d&&this.asyncComplete(a)},jsonLoadComplete:function(a,b){var c=JSON.parse(b.responseText);"tilemap"===a.type?this.cache.addTilemap(a.key,a.url,c,a.format):"bitmapfont"===a.type?this.cache.addBitmapFont(a.key,a.url,a.data,c,a.atlasType,a.xSpacing,a.ySpacing):"json"===a.type?this.cache.addJSON(a.key,a.url,c):this.cache.addTextureAtlas(a.key,a.url,a.data,c,a.format),this.asyncComplete(a)},csvLoadComplete:function(a,b){var c=b.responseText;this.cache.addTilemap(a.key,a.url,c,a.format),this.asyncComplete(a)},xmlLoadComplete:function(a,b){var c=b.responseText,d=this.parseXml(c);if(!d){var e=b.responseType||b.contentType;return console.warn("Phaser.Loader - "+a.key+": invalid XML ("+e+")"),void this.asyncComplete(a,"invalid XML")}"bitmapfont"===a.type?this.cache.addBitmapFont(a.key,a.url,a.data,d,a.atlasType,a.xSpacing,a.ySpacing):"textureatlas"===a.type?this.cache.addTextureAtlas(a.key,a.url,a.data,d,a.format):"xml"===a.type&&this.cache.addXML(a.key,a.url,d),this.asyncComplete(a)},parseXml:function(a){var b;try{if(window.DOMParser){var c=new DOMParser;b=c.parseFromString(a,"text/xml")}else b=new ActiveXObject("Microsoft.XMLDOM"),b.async="false",b.loadXML(a)}catch(d){b=null}return b&&b.documentElement&&!b.getElementsByTagName("parsererror").length?b:null},updateProgress:function(){this.preloadSprite&&(0===this.preloadSprite.direction?this.preloadSprite.rect.width=Math.floor(this.preloadSprite.width/100*this.progress):this.preloadSprite.rect.height=Math.floor(this.preloadSprite.height/100*this.progress),this.preloadSprite.sprite?this.preloadSprite.sprite.updateCrop():this.preloadSprite=null)},totalLoadedFiles:function(){return this._loadedFileCount},totalQueuedFiles:function(){return this._totalFileCount-this._loadedFileCount},totalLoadedPacks:function(){return this._totalPackCount},totalQueuedPacks:function(){return this._totalPackCount-this._loadedPackCount}},Object.defineProperty(c.Loader.prototype,"progressFloat",{get:function(){var a=this._loadedFileCount/this._totalFileCount*100;return c.Math.clamp(a||0,0,100)}}),Object.defineProperty(c.Loader.prototype,"progress",{get:function(){return Math.round(this.progressFloat)}}),c.Loader.prototype.constructor=c.Loader,c.LoaderParser={bitmapFont:function(a,b,c,d){return this.xmlBitmapFont(a,b,c,d)},xmlBitmapFont:function(a,b,c,d){var e={},f=a.getElementsByTagName("info")[0],g=a.getElementsByTagName("common")[0];e.font=f.getAttribute("face"),e.size=parseInt(f.getAttribute("size"),10),e.lineHeight=parseInt(g.getAttribute("lineHeight"),10)+d,e.chars={};for(var h=a.getElementsByTagName("char"),i=0;i=this.durationMS&&(this.usingWebAudio?this.loop?(this.onLoop.dispatch(this),""===this.currentMarker?(this.currentTime=0,this.startTime=this.game.time.time):(this.onMarkerComplete.dispatch(this.currentMarker,this),this.play(this.currentMarker,0,this.volume,!0,!0))):""!==this.currentMarker&&this.stop():this.loop?(this.onLoop.dispatch(this),this.play(this.currentMarker,0,this.volume,!0,!0)):this.stop()))},loopFull:function(a){this.play(null,0,a,!0)},play:function(a,b,c,d,e){if((void 0===a||a===!1||null===a)&&(a=""),void 0===e&&(e=!0),this.isPlaying&&!this.allowMultiple&&!e&&!this.override)return this;if(this._sound&&this.isPlaying&&!this.allowMultiple&&(this.override||e))if(this.usingWebAudio)if(this._sound.disconnect(this.externalNode?this.externalNode:this.gainNode),void 0===this._sound.stop)this._sound.noteOff(0);else try{this._sound.stop(0)}catch(f){}else this.usingAudioTag&&(this._sound.pause(),this._sound.currentTime=0);if(""===a&&Object.keys(this.markers).length>0)return this;if(""!==a){if(this.currentMarker=a,!this.markers[a])return this;this.position=this.markers[a].start,this.volume=this.markers[a].volume,this.loop=this.markers[a].loop,this.duration=this.markers[a].duration,this.durationMS=this.markers[a].durationMS,"undefined"!=typeof c&&(this.volume=c),"undefined"!=typeof d&&(this.loop=d),this._tempMarker=a,this._tempPosition=this.position,this._tempVolume=this.volume,this._tempLoop=this.loop}else b=b||0,void 0===c&&(c=this._volume),void 0===d&&(d=this.loop),this.position=b,this.volume=c,this.loop=d,this.duration=0,this.durationMS=0,this._tempMarker=a,this._tempPosition=b,this._tempVolume=c,this._tempLoop=d;return this.usingWebAudio?this.game.cache.isSoundDecoded(this.key)?(this._sound=this.context.createBufferSource(),this._sound.connect(this.externalNode?this.externalNode:this.gainNode),this._buffer=this.game.cache.getSoundData(this.key),this._sound.buffer=this._buffer,this.loop&&""===a&&(this._sound.loop=!0),this.loop||""!==a||(this._sound.onended=this.onEndedHandler.bind(this)),this.totalDuration=this._sound.buffer.duration,0===this.duration&&(this.duration=this.totalDuration,this.durationMS=Math.ceil(1e3*this.totalDuration)),void 0===this._sound.start?this._sound.noteGrainOn(0,this.position,this.duration):this.loop&&""===a?this._sound.start(0,0):this._sound.start(0,this.position,this.duration),this.isPlaying=!0,this.startTime=this.game.time.time,this.currentTime=0,this.stopTime=this.startTime+this.durationMS,this.onPlay.dispatch(this)):(this.pendingPlayback=!0,this.game.cache.getSound(this.key)&&this.game.cache.getSound(this.key).isDecoding===!1&&this.game.sound.decode(this.key,this)):this.game.cache.getSound(this.key)&&this.game.cache.getSound(this.key).locked?(this.game.cache.reloadSound(this.key),this.pendingPlayback=!0):this._sound&&(this.game.device.cocoonJS||4===this._sound.readyState)?(this._sound.play(),this.totalDuration=this._sound.duration,0===this.duration&&(this.duration=this.totalDuration,this.durationMS=1e3*this.totalDuration),this._sound.currentTime=this.position,this._sound.muted=this._muted,this._sound.volume=this._muted?0:this._volume,this.isPlaying=!0,this.startTime=this.game.time.time,this.currentTime=0,this.stopTime=this.startTime+this.durationMS,this.onPlay.dispatch(this)):this.pendingPlayback=!0,this},restart:function(a,b,c,d){a=a||"",b=b||0,c=c||1,void 0===d&&(d=!1),this.play(a,b,c,d,!0)},pause:function(){this.isPlaying&&this._sound&&(this.paused=!0,this.pausedPosition=this.currentTime,this.pausedTime=this.game.time.time,this.onPause.dispatch(this),this.stop())},resume:function(){if(this.paused&&this._sound){if(this.usingWebAudio){var a=this.position+this.pausedPosition/1e3;this._sound=this.context.createBufferSource(),this._sound.buffer=this._buffer,this._sound.connect(this.externalNode?this.externalNode:this.gainNode),this.loop&&(this._sound.loop=!0),this.loop||""!==this.currentMarker||(this._sound.onended=this.onEndedHandler.bind(this));var b=this.duration-this.pausedPosition/1e3;void 0===this._sound.start?this._sound.noteGrainOn(0,a,b):this.loop&&this.game.device.chrome?42===this.game.device.chromeVersion?this._sound.start(0):this._sound.start(0,a):this._sound.start(0,a,b)}else this._sound.play();this.isPlaying=!0,this.paused=!1,this.startTime+=this.game.time.time-this.pausedTime,this.onResume.dispatch(this)}},stop:function(){if(this.isPlaying&&this._sound)if(this.usingWebAudio)if(this._sound.disconnect(this.externalNode?this.externalNode:this.gainNode),void 0===this._sound.stop)this._sound.noteOff(0);else try{this._sound.stop(0)}catch(a){}else this.usingAudioTag&&(this._sound.pause(),this._sound.currentTime=0);this.pendingPlayback=!1,this.isPlaying=!1;var b=this.currentMarker;""!==this.currentMarker&&this.onMarkerComplete.dispatch(this.currentMarker,this),this.currentMarker="",null!==this.fadeTween&&this.fadeTween.stop(),this.paused||this.onStop.dispatch(this,b)},fadeIn:function(a,b,c){void 0===b&&(b=!1),void 0===c&&(c=this.currentMarker),this.paused||(this.play(c,0,0,b),this.fadeTo(a,1))},fadeOut:function(a){this.fadeTo(a,0)},fadeTo:function(a,b){if(this.isPlaying&&!this.paused&&b!==this.volume){if(void 0===a&&(a=1e3),void 0===b)return void console.warn("Phaser.Sound.fadeTo: No Volume Specified.");this.fadeTween=this.game.add.tween(this).to({volume:b},a,c.Easing.Linear.None,!0),this.fadeTween.onComplete.add(this.fadeComplete,this)}},fadeComplete:function(){this.onFadeComplete.dispatch(this,this.volume),0===this.volume&&this.stop()},destroy:function(a){void 0===a&&(a=!0),this.stop(),a?this.game.sound.remove(this):(this.markers={},this.context=null,this._buffer=null,this.externalNode=null,this.onDecoded.dispose(),this.onPlay.dispose(),this.onPause.dispose(),this.onResume.dispose(),this.onLoop.dispose(),this.onStop.dispose(),this.onMute.dispose(),this.onMarkerComplete.dispose())}},c.Sound.prototype.constructor=c.Sound,Object.defineProperty(c.Sound.prototype,"isDecoding",{get:function(){return this.game.cache.getSound(this.key).isDecoding}}),Object.defineProperty(c.Sound.prototype,"isDecoded",{get:function(){return this.game.cache.isSoundDecoded(this.key)}}),Object.defineProperty(c.Sound.prototype,"mute",{get:function(){return this._muted||this.game.sound.mute},set:function(a){a=a||!1,a!==this._muted&&(a?(this._muted=!0,this._muteVolume=this._tempVolume,this.usingWebAudio?this.gainNode.gain.value=0:this.usingAudioTag&&this._sound&&(this._sound.volume=0)):(this._muted=!1,this.usingWebAudio?this.gainNode.gain.value=this._muteVolume:this.usingAudioTag&&this._sound&&(this._sound.volume=this._muteVolume)),this.onMute.dispatch(this))}}),Object.defineProperty(c.Sound.prototype,"volume",{get:function(){return this._volume},set:function(a){return this.game.device.firefox&&this.usingAudioTag&&(a=this.game.math.clamp(a,0,1)),this._muted?void(this._muteVolume=a):(this._tempVolume=a,this._volume=a,void(this.usingWebAudio?this.gainNode.gain.value=a:this.usingAudioTag&&this._sound&&(this._sound.volume=a)))}}),c.SoundManager=function(a){this.game=a,this.onSoundDecode=new c.Signal,this.onVolumeChange=new c.Signal,this.onMute=new c.Signal,this.onUnMute=new c.Signal,this.context=null,this.usingWebAudio=!1,this.usingAudioTag=!1,this.noAudio=!1,this.connectToMaster=!0,this.touchLocked=!1,this.channels=32,this._codeMuted=!1,this._muted=!1,this._unlockSource=null,this._volume=1,this._sounds=[],this._watchList=new c.ArraySet,this._watching=!1,this._watchCallback=null,this._watchContext=null},c.SoundManager.prototype={boot:function(){if(this.game.device.iOS&&this.game.device.webAudio===!1&&(this.channels=1),window.PhaserGlobal){if(window.PhaserGlobal.disableAudio===!0)return this.noAudio=!0,void(this.touchLocked=!1);if(window.PhaserGlobal.disableWebAudio===!0)return this.usingAudioTag=!0,void(this.touchLocked=!1)}if(window.PhaserGlobal&&window.PhaserGlobal.audioContext)this.context=window.PhaserGlobal.audioContext;else if(window.AudioContext)try{this.context=new window.AudioContext}catch(a){this.context=null,this.usingWebAudio=!1,this.touchLocked=!1}else if(window.webkitAudioContext)try{this.context=new window.webkitAudioContext}catch(a){this.context=null,this.usingWebAudio=!1,this.touchLocked=!1}if(null===this.context){if(void 0===window.Audio)return void(this.noAudio=!0);this.usingAudioTag=!0}else this.usingWebAudio=!0,this.masterGain=void 0===this.context.createGain?this.context.createGainNode():this.context.createGain(),this.masterGain.gain.value=1,this.masterGain.connect(this.context.destination);this.noAudio||(!this.game.device.cocoonJS&&this.game.device.iOS||window.PhaserGlobal&&window.PhaserGlobal.fakeiOSTouchLock)&&this.setTouchLock()},setTouchLock:function(){this.game.input.touch.addTouchLockCallback(this.unlock,this),this.touchLocked=!0},unlock:function(){if(this.noAudio||!this.touchLocked||null!==this._unlockSource)return!0;if(this.usingAudioTag)this.touchLocked=!1,this._unlockSource=null;else if(this.usingWebAudio){var a=this.context.createBuffer(1,1,22050);this._unlockSource=this.context.createBufferSource(),this._unlockSource.buffer=a,this._unlockSource.connect(this.context.destination),void 0===this._unlockSource.start?this._unlockSource.noteOn(0):this._unlockSource.start(0)}return!0},stopAll:function(){if(!this.noAudio)for(var a=0;aa?a=0:a>1&&(a=1),this._volume!==a){if(this._volume=a,this.usingWebAudio)this.masterGain.gain.value=a;else for(var b=0;b-1},reset:function(){this.list.length=0},remove:function(a){var b=this.list.indexOf(a);return b>-1?(this.list.splice(b,1),a):void 0},setAll:function(a,b){for(var c=this.list.length;c--;)this.list[c]&&(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)},removeAll:function(a){void 0===a&&(a=!1);for(var b=this.list.length;b--;)if(this.list[b]){var c=this.remove(this.list[b]);a&&c.destroy()}this.position=0,this.list=[]}},Object.defineProperty(c.ArraySet.prototype,"total",{get:function(){return this.list.length}}),Object.defineProperty(c.ArraySet.prototype,"first",{get:function(){return this.position=0,this.list.length>0?this.list[0]:null}}),Object.defineProperty(c.ArraySet.prototype,"next",{get:function(){return this.position0;b--){var c=Math.floor(Math.random()*(b+1)),d=a[b];a[b]=a[c],a[c]=d}return a},transposeMatrix:function(a){for(var b=a.length,c=a[0].length,d=new Array(c),e=0;c>e;e++){d[e]=new Array(b);for(var f=b-1;f>-1;f--)d[e][f]=a[f][e]}return d},rotateMatrix:function(a,b){if("string"!=typeof b&&(b=(b%360+360)%360),90===b||-270===b||"rotateLeft"===b)a=c.ArrayUtils.transposeMatrix(a),a=a.reverse();else if(-90===b||270===b||"rotateRight"===b)a=a.reverse(),a=c.ArrayUtils.transposeMatrix(a);else if(180===Math.abs(b)||"rotate180"===b){for(var d=0;d=e-a?e:d},rotate:function(a){var b=a.shift();return a.push(b),b},numberArray:function(a,b){for(var c=[],d=a;b>=d;d++)c.push(d);return c},numberArrayStep:function(a,b,d){a=+a||0;var e=typeof b;"number"!==e&&"string"!==e||!d||d[b]!==a||(b=d=null),d=null==d?1:+d||0,null===b?(b=a,a=0):b=+b||0;for(var f=-1,g=Math.max(c.Math.roundAwayFromZero((b-a)/(d||1)),0),h=new Array(g);++f>>0:(a<<24|b<<16|d<<8|e)>>>0},unpackPixel:function(a,b,d,e){return(void 0===b||null===b)&&(b=c.Color.createColor()),(void 0===d||null===d)&&(d=!1),(void 0===e||null===e)&&(e=!1),c.Device.LITTLE_ENDIAN?(b.a=(4278190080&a)>>>24,b.b=(16711680&a)>>>16,b.g=(65280&a)>>>8,b.r=255&a):(b.r=(4278190080&a)>>>24,b.g=(16711680&a)>>>16,b.b=(65280&a)>>>8,b.a=255&a),b.color=a,b.rgba="rgba("+b.r+","+b.g+","+b.b+","+b.a/255+")",d&&c.Color.RGBtoHSL(b.r,b.g,b.b,b),e&&c.Color.RGBtoHSV(b.r,b.g,b.b,b),b},fromRGBA:function(a,b){return b||(b=c.Color.createColor()),b.r=(4278190080&a)>>>24,b.g=(16711680&a)>>>16,b.b=(65280&a)>>>8,b.a=255&a,b.rgba="rgba("+b.r+","+b.g+","+b.b+","+b.a+")",b},toRGBA:function(a,b,c,d){return a<<24|b<<16|c<<8|d},RGBtoHSL:function(a,b,d,e){e||(e=c.Color.createColor(a,b,d,1)),a/=255,b/=255,d/=255;var f=Math.min(a,b,d),g=Math.max(a,b,d);if(e.h=0,e.s=0,e.l=(g+f)/2,g!==f){var h=g-f;e.s=e.l>.5?h/(2-g-f):h/(g+f),g===a?e.h=(b-d)/h+(d>b?6:0):g===b?e.h=(d-a)/h+2:g===d&&(e.h=(a-b)/h+4),e.h/=6}return e},HSLtoRGB:function(a,b,d,e){if(e?(e.r=d,e.g=d,e.b=d):e=c.Color.createColor(d,d,d),0!==b){var f=.5>d?d*(1+b):d+b-d*b,g=2*d-f;e.r=c.Color.hueToColor(g,f,a+1/3),e.g=c.Color.hueToColor(g,f,a),e.b=c.Color.hueToColor(g,f,a-1/3)}return e.r=Math.floor(255*e.r|0),e.g=Math.floor(255*e.g|0),e.b=Math.floor(255*e.b|0),c.Color.updateColor(e),e},RGBtoHSV:function(a,b,d,e){e||(e=c.Color.createColor(a,b,d,255)),a/=255,b/=255,d/=255;var f=Math.min(a,b,d),g=Math.max(a,b,d),h=g-f;return e.h=0,e.s=0===g?0:h/g,e.v=g,g!==f&&(g===a?e.h=(b-d)/h+(d>b?6:0):g===b?e.h=(d-a)/h+2:g===d&&(e.h=(a-b)/h+4),e.h/=6),e},HSVtoRGB:function(a,b,d,e){void 0===e&&(e=c.Color.createColor(0,0,0,1,a,b,0,d));var f,g,h,i=Math.floor(6*a),j=6*a-i,k=d*(1-b),l=d*(1-j*b),m=d*(1-(1-j)*b);switch(i%6){case 0:f=d,g=m,h=k;break;case 1:f=l,g=d,h=k;break;case 2:f=k,g=d,h=m;break;case 3:f=k,g=l,h=d;break;case 4:f=m,g=k,h=d;break;case 5:f=d,g=k,h=l}return e.r=Math.floor(255*f),e.g=Math.floor(255*g),e.b=Math.floor(255*h),c.Color.updateColor(e),e},hueToColor:function(a,b,c){return 0>c&&(c+=1),c>1&&(c-=1),1/6>c?a+6*(b-a)*c:.5>c?b:2/3>c?a+(b-a)*(2/3-c)*6:a},createColor:function(a,b,d,e,f,g,h,i){var j={r:a||0,g:b||0,b:d||0,a:e||1,h:f||0,s:g||0,l:h||0,v:i||0,color:0,color32:0,rgba:""};return c.Color.updateColor(j)},updateColor:function(a){return a.rgba="rgba("+a.r.toString()+","+a.g.toString()+","+a.b.toString()+","+a.a.toString()+")",a.color=c.Color.getColor(a.r,a.g,a.b),a.color32=c.Color.getColor32(a.a,a.r,a.g,a.b),a},getColor32:function(a,b,c,d){return a<<24|b<<16|c<<8|d},getColor:function(a,b,c){return a<<16|b<<8|c},RGBtoString:function(a,b,d,e,f){return void 0===e&&(e=255),void 0===f&&(f="#"),"#"===f?"#"+((1<<24)+(a<<16)+(b<<8)+d).toString(16).slice(1):"0x"+c.Color.componentToHex(e)+c.Color.componentToHex(a)+c.Color.componentToHex(b)+c.Color.componentToHex(d)},hexToRGB:function(a){var b=c.Color.hexToColor(a);return b?c.Color.getColor32(b.a,b.r,b.g,b.b):void 0},hexToColor:function(a,b){a=a.replace(/^(?:#|0x)?([a-f\d])([a-f\d])([a-f\d])$/i,function(a,b,c,d){return b+b+c+c+d+d});var d=/^(?:#|0x)?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i.exec(a);if(d){var e=parseInt(d[1],16),f=parseInt(d[2],16),g=parseInt(d[3],16);b?(b.r=e,b.g=f,b.b=g):b=c.Color.createColor(e,f,g)}return b},webToColor:function(a,b){b||(b=c.Color.createColor());var d=/^rgba?\(\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d+)\s*(?:,\s*(\d+(?:\.\d+)?))?\s*\)$/.exec(a);return d&&(b.r=parseInt(d[1],10),b.g=parseInt(d[2],10),b.b=parseInt(d[3],10),b.a=void 0!==d[4]?parseFloat(d[4]):1,c.Color.updateColor(b)),b},valueToColor:function(a,b){if(b||(b=c.Color.createColor()),"string"==typeof a)return 0===a.indexOf("rgb")?c.Color.webToColor(a,b):(b.a=1,c.Color.hexToColor(a,b));if("number"==typeof a){var d=c.Color.getRGB(a);return b.r=d.r,b.g=d.g,b.b=d.b,b.a=d.a/255,b}return b},componentToHex:function(a){var b=a.toString(16);return 1==b.length?"0"+b:b},HSVColorWheel:function(a,b){void 0===a&&(a=1),void 0===b&&(b=1);for(var d=[],e=0;359>=e;e++)d.push(c.Color.HSVtoRGB(e/359,a,b));return d},HSLColorWheel:function(a,b){void 0===a&&(a=.5),void 0===b&&(b=.5);for(var d=[],e=0;359>=e;e++)d.push(c.Color.HSLtoRGB(e/359,a,b));return d},interpolateColor:function(a,b,d,e,f){void 0===f&&(f=255);var g=c.Color.getRGB(a),h=c.Color.getRGB(b),i=(h.red-g.red)*e/d+g.red,j=(h.green-g.green)*e/d+g.green,k=(h.blue-g.blue)*e/d+g.blue;return c.Color.getColor32(f,i,j,k)},interpolateColorWithRGB:function(a,b,d,e,f,g){var h=c.Color.getRGB(a),i=(b-h.red)*g/f+h.red,j=(d-h.green)*g/f+h.green,k=(e-h.blue)*g/f+h.blue;return c.Color.getColor(i,j,k)},interpolateRGB:function(a,b,d,e,f,g,h,i){var j=(e-a)*i/h+a,k=(f-b)*i/h+b,l=(g-d)*i/h+d;return c.Color.getColor(j,k,l)},getRandomColor:function(a,b,d){if(void 0===a&&(a=0),void 0===b&&(b=255),void 0===d&&(d=255),b>255||a>b)return c.Color.getColor(255,255,255);var e=a+Math.round(Math.random()*(b-a)),f=a+Math.round(Math.random()*(b-a)),g=a+Math.round(Math.random()*(b-a));return c.Color.getColor32(d,e,f,g)},getRGB:function(a){return a>16777215?{alpha:a>>>24,red:a>>16&255,green:a>>8&255,blue:255&a,a:a>>>24,r:a>>16&255,g:a>>8&255,b:255&a}:{alpha:255,red:a>>16&255,green:a>>8&255,blue:255&a,a:255,r:a>>16&255,g:a>>8&255,b:255&a}},getWebRGB:function(a){if("object"==typeof a)return"rgba("+a.r.toString()+","+a.g.toString()+","+a.b.toString()+","+(a.a/255).toString()+")";var b=c.Color.getRGB(a);return"rgba("+b.r.toString()+","+b.g.toString()+","+b.b.toString()+","+(b.a/255).toString()+")"},getAlpha:function(a){return a>>>24},getAlphaFloat:function(a){return(a>>>24)/255},getRed:function(a){return a>>16&255},getGreen:function(a){return a>>8&255},getBlue:function(a){return 255&a},blendNormal:function(a){return a},blendLighten:function(a,b){return b>a?b:a},blendDarken:function(a,b){return b>a?a:b},blendMultiply:function(a,b){return a*b/255},blendAverage:function(a,b){return(a+b)/2},blendAdd:function(a,b){return Math.min(255,a+b)},blendSubtract:function(a,b){return Math.max(0,a+b-255)},blendDifference:function(a,b){return Math.abs(a-b)},blendNegation:function(a,b){return 255-Math.abs(255-a-b)},blendScreen:function(a,b){return 255-((255-a)*(255-b)>>8)},blendExclusion:function(a,b){return a+b-2*a*b/255},blendOverlay:function(a,b){return 128>b?2*a*b/255:255-2*(255-a)*(255-b)/255},blendSoftLight:function(a,b){return 128>b?2*((a>>1)+64)*(b/255):255-2*(255-((a>>1)+64))*(255-b)/255},blendHardLight:function(a,b){return c.Color.blendOverlay(b,a)},blendColorDodge:function(a,b){return 255===b?b:Math.min(255,(a<<8)/(255-b))},blendColorBurn:function(a,b){return 0===b?b:Math.max(0,255-(255-a<<8)/b)},blendLinearDodge:function(a,b){return c.Color.blendAdd(a,b)},blendLinearBurn:function(a,b){return c.Color.blendSubtract(a,b)},blendLinearLight:function(a,b){return 128>b?c.Color.blendLinearBurn(a,2*b):c.Color.blendLinearDodge(a,2*(b-128))},blendVividLight:function(a,b){return 128>b?c.Color.blendColorBurn(a,2*b):c.Color.blendColorDodge(a,2*(b-128))},blendPinLight:function(a,b){return 128>b?c.Color.blendDarken(a,2*b):c.Color.blendLighten(a,2*(b-128))},blendHardMix:function(a,b){return c.Color.blendVividLight(a,b)<128?0:255},blendReflect:function(a,b){return 255===b?b:Math.min(255,a*a/(255-b))},blendGlow:function(a,b){return c.Color.blendReflect(b,a)},blendPhoenix:function(a,b){return Math.min(a,b)-Math.max(a,b)+255}},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.Physics=function(a,b){b=b||{},this.game=a,this.config=b,this.arcade=null,this.p2=null,this.ninja=null,this.box2d=null,this.chipmunk=null,this.matter=null,this.parseConfig()},c.Physics.ARCADE=0,c.Physics.P2JS=1,c.Physics.NINJA=2,c.Physics.BOX2D=3,c.Physics.CHIPMUNK=4,c.Physics.MATTERJS=5,c.Physics.prototype={parseConfig:function(){this.config.hasOwnProperty("arcade")&&this.config.arcade!==!0||!c.Physics.hasOwnProperty("Arcade")||(this.arcade=new c.Physics.Arcade(this.game)),this.config.hasOwnProperty("ninja")&&this.config.ninja===!0&&c.Physics.hasOwnProperty("Ninja")&&(this.ninja=new c.Physics.Ninja(this.game)),this.config.hasOwnProperty("p2")&&this.config.p2===!0&&c.Physics.hasOwnProperty("P2")&&(this.p2=new c.Physics.P2(this.game,this.config)),this.config.hasOwnProperty("box2d")&&this.config.box2d===!0&&c.Physics.hasOwnProperty("BOX2D")&&(this.box2d=new c.Physics.BOX2D(this.game,this.config)),this.config.hasOwnProperty("matter")&&this.config.matter===!0&&c.Physics.hasOwnProperty("Matter")&&(this.matter=new c.Physics.Matter(this.game,this.config))},startSystem:function(a){a===c.Physics.ARCADE?this.arcade=new c.Physics.Arcade(this.game):a===c.Physics.P2JS?null===this.p2?this.p2=new c.Physics.P2(this.game,this.config):this.p2.reset():a===c.Physics.NINJA?this.ninja=new c.Physics.Ninja(this.game):a===c.Physics.BOX2D?null===this.box2d?this.box2d=new c.Physics.Box2D(this.game,this.config):this.box2d.reset():a===c.Physics.MATTERJS&&(null===this.matter?this.matter=new c.Physics.Matter(this.game,this.config):this.matter.reset())},enable:function(a,b,d){void 0===b&&(b=c.Physics.ARCADE),void 0===d&&(d=!1),b===c.Physics.ARCADE?this.arcade.enable(a):b===c.Physics.P2JS&&this.p2?this.p2.enable(a,d):b===c.Physics.NINJA&&this.ninja?this.ninja.enableAABB(a):b===c.Physics.BOX2D&&this.box2d?this.box2d.enable(a):b===c.Physics.MATTERJS&&this.matter&&this.matter.enable(a)},preUpdate:function(){this.p2&&this.p2.preUpdate(),this.box2d&&this.box2d.preUpdate(),this.matter&&this.matter.preUpdate()},update:function(){this.p2&&this.p2.update(),this.box2d&&this.box2d.update(),this.matter&&this.matter.update()},setBoundsToWorld:function(){this.arcade&&this.arcade.setBoundsToWorld(),this.ninja&&this.ninja.setBoundsToWorld(),this.p2&&this.p2.setBoundsToWorld(),this.box2d&&this.box2d.setBoundsToWorld(),this.matter&&this.matter.setBoundsToWorld()},clear:function(){this.p2&&this.p2.clear(),this.box2d&&this.box2d.clear(),this.matter&&this.matter.clear()},reset:function(){this.p2&&this.p2.reset(),this.box2d&&this.box2d.reset(),this.matter&&this.matter.reset()},destroy:function(){this.p2&&this.p2.destroy(),this.box2d&&this.box2d.destroy(),this.matter&&this.matter.destroy(),this.arcade=null,this.ninja=null,this.p2=null,this.box2d=null,this.matter=null}},c.Physics.prototype.constructor=c.Physics,c.Physics.Arcade=function(a){this.game=a,this.gravity=new c.Point,this.bounds=new c.Rectangle(0,0,a.world.width,a.world.height),this.checkCollision={up:!0,down:!0,left:!0,right:!0},this.maxObjects=10,this.maxLevels=4,this.OVERLAP_BIAS=4,this.forceX=!1,this.sortDirection=c.Physics.Arcade.LEFT_RIGHT,this.skipQuadTree=!0,this.isPaused=!1,this.quadTree=new c.QuadTree(this.game.world.bounds.x,this.game.world.bounds.y,this.game.world.bounds.width,this.game.world.bounds.height,this.maxObjects,this.maxLevels),this._total=0,this.setBoundsToWorld()},c.Physics.Arcade.prototype.constructor=c.Physics.Arcade,c.Physics.Arcade.SORT_NONE=0,c.Physics.Arcade.LEFT_RIGHT=1,c.Physics.Arcade.RIGHT_LEFT=2,c.Physics.Arcade.TOP_BOTTOM=3,c.Physics.Arcade.BOTTOM_TOP=4,c.Physics.Arcade.prototype={setBounds:function(a,b,c,d){this.bounds.setTo(a,b,c,d)},setBoundsToWorld:function(){this.bounds.copyFrom(this.game.world.bounds)},enable:function(a,b){void 0===b&&(b=!0);var d=1;if(Array.isArray(a))for(d=a.length;d--;)a[d]instanceof c.Group?this.enable(a[d].children,b):(this.enableBody(a[d]),b&&a[d].hasOwnProperty("children")&&a[d].children.length>0&&this.enable(a[d],!0));else a instanceof c.Group?this.enable(a.children,b):(this.enableBody(a),b&&a.hasOwnProperty("children")&&a.children.length>0&&this.enable(a.children,!0))},enableBody:function(a){a.hasOwnProperty("body")&&null===a.body&&(a.body=new c.Physics.Arcade.Body(a),a.parent&&a.parent instanceof c.Group&&a.parent.addToHash(a))},updateMotion:function(a){var b=this.computeVelocity(0,a,a.angularVelocity,a.angularAcceleration,a.angularDrag,a.maxAngular)-a.angularVelocity;a.angularVelocity+=b,a.rotation+=a.angularVelocity*this.game.time.physicsElapsed,a.velocity.x=this.computeVelocity(1,a,a.velocity.x,a.acceleration.x,a.drag.x,a.maxVelocity.x),a.velocity.y=this.computeVelocity(2,a,a.velocity.y,a.acceleration.y,a.drag.y,a.maxVelocity.y)},computeVelocity:function(a,b,c,d,e,f){return void 0===f&&(f=1e4),1===a&&b.allowGravity?c+=(this.gravity.x+b.gravity.x)*this.game.time.physicsElapsed:2===a&&b.allowGravity&&(c+=(this.gravity.y+b.gravity.y)*this.game.time.physicsElapsed),d?c+=d*this.game.time.physicsElapsed:e&&(e*=this.game.time.physicsElapsed,c-e>0?c-=e:0>c+e?c+=e:c=0),c>f?c=f:-f>c&&(c=-f),c},overlap:function(a,b,c,d,e){if(c=c||null,d=d||null,e=e||c,this._total=0,!Array.isArray(a)&&Array.isArray(b))for(var f=0;f0},collide:function(a,b,c,d,e){if(c=c||null,d=d||null,e=e||c,this._total=0,!Array.isArray(a)&&Array.isArray(b))for(var f=0;f0},sortLeftRight:function(a,b){return a.body&&b.body?a.body.x-b.body.x:0},sortRightLeft:function(a,b){return a.body&&b.body?b.body.x-a.body.x:0},sortTopBottom:function(a,b){return a.body&&b.body?a.body.y-b.body.y:0},sortBottomTop:function(a,b){return a.body&&b.body?b.body.y-a.body.y:0},sort:function(a,b){null!==a.physicsSortDirection?b=a.physicsSortDirection:void 0===b&&(b=this.sortDirection),b===c.Physics.Arcade.LEFT_RIGHT?a.hash.sort(this.sortLeftRight):b===c.Physics.Arcade.RIGHT_LEFT?a.hash.sort(this.sortRightLeft):b===c.Physics.Arcade.TOP_BOTTOM?a.hash.sort(this.sortTopBottom):b===c.Physics.Arcade.BOTTOM_TOP&&a.hash.sort(this.sortBottomTop)},collideHandler:function(a,b,d,e,f,g){return void 0===b&&a.physicsType===c.GROUP?(this.sort(a),void this.collideGroupVsSelf(a,d,e,f,g)):void(a&&b&&a.exists&&b.exists&&(this.sortDirection!==c.Physics.Arcade.SORT_NONE&&(a.physicsType===c.GROUP&&this.sort(a),b.physicsType===c.GROUP&&this.sort(b)),a.physicsType===c.SPRITE?b.physicsType===c.SPRITE?this.collideSpriteVsSprite(a,b,d,e,f,g):b.physicsType===c.GROUP?this.collideSpriteVsGroup(a,b,d,e,f,g):b.physicsType===c.TILEMAPLAYER&&this.collideSpriteVsTilemapLayer(a,b,d,e,f,g):a.physicsType===c.GROUP?b.physicsType===c.SPRITE?this.collideSpriteVsGroup(b,a,d,e,f,g):b.physicsType===c.GROUP?this.collideGroupVsGroup(a,b,d,e,f,g):b.physicsType===c.TILEMAPLAYER&&this.collideGroupVsTilemapLayer(a,b,d,e,f,g):a.physicsType===c.TILEMAPLAYER&&(b.physicsType===c.SPRITE?this.collideSpriteVsTilemapLayer(b,a,d,e,f,g):b.physicsType===c.GROUP&&this.collideGroupVsTilemapLayer(b,a,d,e,f,g))))},collideSpriteVsSprite:function(a,b,c,d,e,f){return a.body&&b.body?(this.separate(a.body,b.body,d,e,f)&&(c&&c.call(e,a,b),this._total++),!0):!1},collideSpriteVsGroup:function(a,b,d,e,f,g){if(0!==b.length&&a.body){var h;if(this.skipQuadTree||a.body.skipQuadTree){for(var i=0;ih.right)break;if(h.x>a.body.right)continue}else if(this.sortDirection===c.Physics.Arcade.TOP_BOTTOM){if(a.body.bottomh.bottom)break;if(h.y>a.body.bottom)continue}this.collideSpriteVsSprite(a,b.hash[i],d,e,f,g)}}else{this.quadTree.clear(),this.quadTree.reset(this.game.world.bounds.x,this.game.world.bounds.y,this.game.world.bounds.width,this.game.world.bounds.height,this.maxObjects,this.maxLevels),this.quadTree.populate(b);for(var j=this.quadTree.retrieve(a),i=0;ij.body.right)continue;if(j.body.x>h.body.right)break}else if(this.sortDirection===c.Physics.Arcade.TOP_BOTTOM){if(h.body.bottomj.body.bottom)continue;if(j.body.y>h.body.bottom)break}this.collideSpriteVsSprite(h,j,b,d,e,f)}},collideGroupVsGroup:function(a,b,d,e,f,g){if(0!==a.length&&0!==b.length)for(var h=0;h=b.right?!1:a.position.y>=b.bottom?!1:!0},separateX:function(a,b,c){if(a.immovable&&b.immovable)return!1;var d=0;if(this.intersects(a,b)){var e=a.deltaAbsX()+b.deltaAbsX()+this.OVERLAP_BIAS;if(0===a.deltaX()&&0===b.deltaX()?(a.embedded=!0,b.embedded=!0):a.deltaX()>b.deltaX()?(d=a.right-b.x,d>e||a.checkCollision.right===!1||b.checkCollision.left===!1?d=0:(a.touching.none=!1,a.touching.right=!0,b.touching.none=!1,b.touching.left=!0)):a.deltaX()e||a.checkCollision.left===!1||b.checkCollision.right===!1?d=0:(a.touching.none=!1,a.touching.left=!0,b.touching.none=!1,b.touching.right=!0)),a.overlapX=d,b.overlapX=d,0!==d){if(c||a.customSeparateX||b.customSeparateX)return!0;var f=a.velocity.x,g=b.velocity.x;if(a.immovable||b.immovable)a.immovable?b.immovable||(b.x+=d,b.velocity.x=f-g*b.bounce.x,a.moves&&(b.y+=(a.y-a.prev.y)*a.friction.y)):(a.x=a.x-d,a.velocity.x=g-f*a.bounce.x,b.moves&&(a.y+=(b.y-b.prev.y)*b.friction.y));else{d*=.5,a.x=a.x-d,b.x+=d;var h=Math.sqrt(g*g*b.mass/a.mass)*(g>0?1:-1),i=Math.sqrt(f*f*a.mass/b.mass)*(f>0?1:-1),j=.5*(h+i);h-=j,i-=j,a.velocity.x=j+h*a.bounce.x,b.velocity.x=j+i*b.bounce.x}return!0}}return!1},separateY:function(a,b,c){if(a.immovable&&b.immovable)return!1;var d=0;if(this.intersects(a,b)){var e=a.deltaAbsY()+b.deltaAbsY()+this.OVERLAP_BIAS;if(0===a.deltaY()&&0===b.deltaY()?(a.embedded=!0,b.embedded=!0):a.deltaY()>b.deltaY()?(d=a.bottom-b.y,d>e||a.checkCollision.down===!1||b.checkCollision.up===!1?d=0:(a.touching.none=!1,a.touching.down=!0,b.touching.none=!1,b.touching.up=!0)):a.deltaY()e||a.checkCollision.up===!1||b.checkCollision.down===!1?d=0:(a.touching.none=!1,a.touching.up=!0,b.touching.none=!1,b.touching.down=!0)),a.overlapY=d,b.overlapY=d,0!==d){if(c||a.customSeparateY||b.customSeparateY)return!0;var f=a.velocity.y,g=b.velocity.y;if(a.immovable||b.immovable)a.immovable?b.immovable||(b.y+=d,b.velocity.y=f-g*b.bounce.y,a.moves&&(b.x+=(a.x-a.prev.x)*a.friction.x)):(a.y=a.y-d,a.velocity.y=g-f*a.bounce.y,b.moves&&(a.x+=(b.x-b.prev.x)*b.friction.x));else{d*=.5,a.y=a.y-d,b.y+=d;var h=Math.sqrt(g*g*b.mass/a.mass)*(g>0?1:-1),i=Math.sqrt(f*f*a.mass/b.mass)*(f>0?1:-1),j=.5*(h+i);h-=j,i-=j,a.velocity.y=j+h*a.bounce.y,b.velocity.y=j+i*b.bounce.y}return!0}}return!1},getObjectsUnderPointer:function(a,b,c,d){return 0!==b.length&&a.exists?this.getObjectsAtLocation(a.x,a.y,b,c,d,a):void 0},getObjectsAtLocation:function(a,b,d,e,f,g){this.quadTree.clear(),this.quadTree.reset(this.game.world.bounds.x,this.game.world.bounds.y,this.game.world.bounds.width,this.game.world.bounds.height,this.maxObjects,this.maxLevels),this.quadTree.populate(d);for(var h=new c.Rectangle(a,b,1,1),i=[],j=this.quadTree.retrieve(h),k=0;k0&&(c=this.distanceBetween(a,b)/(d/1e3)),a.body.velocity.x=Math.cos(e)*c,a.body.velocity.y=Math.sin(e)*c,e},moveToPointer:function(a,b,c,d){void 0===b&&(b=60),c=c||this.game.input.activePointer,void 0===d&&(d=0);var e=this.angleToPointer(a,c);return d>0&&(b=this.distanceToPointer(a,c)/(d/1e3)),a.body.velocity.x=Math.cos(e)*b,a.body.velocity.y=Math.sin(e)*b,e},moveToXY:function(a,b,c,d,e){void 0===d&&(d=60),void 0===e&&(e=0);var f=Math.atan2(c-a.y,b-a.x);return e>0&&(d=this.distanceToXY(a,b,c)/(e/1e3)),a.body.velocity.x=Math.cos(f)*d,a.body.velocity.y=Math.sin(f)*d,f},velocityFromAngle:function(a,b,d){return void 0===b&&(b=60),d=d||new c.Point,d.setTo(Math.cos(this.game.math.degToRad(a))*b,Math.sin(this.game.math.degToRad(a))*b)},velocityFromRotation:function(a,b,d){return void 0===b&&(b=60),d=d||new c.Point,d.setTo(Math.cos(a)*b,Math.sin(a)*b)},accelerationFromRotation:function(a,b,d){return void 0===b&&(b=60),d=d||new c.Point,d.setTo(Math.cos(a)*b,Math.sin(a)*b)},accelerateToObject:function(a,b,c,d,e){void 0===c&&(c=60),void 0===d&&(d=1e3),void 0===e&&(e=1e3);var f=this.angleBetween(a,b);return a.body.acceleration.setTo(Math.cos(f)*c,Math.sin(f)*c),a.body.maxVelocity.setTo(d,e),f},accelerateToPointer:function(a,b,c,d,e){void 0===c&&(c=60),void 0===b&&(b=this.game.input.activePointer),void 0===d&&(d=1e3),void 0===e&&(e=1e3);var f=this.angleToPointer(a,b);return a.body.acceleration.setTo(Math.cos(f)*c,Math.sin(f)*c),a.body.maxVelocity.setTo(d,e),f},accelerateToXY:function(a,b,c,d,e,f){void 0===d&&(d=60),void 0===e&&(e=1e3),void 0===f&&(f=1e3);var g=this.angleToXY(a,b,c);return a.body.acceleration.setTo(Math.cos(g)*d,Math.sin(g)*d),a.body.maxVelocity.setTo(e,f),g},distanceBetween:function(a,b){var c=a.x-b.x,d=a.y-b.y;return Math.sqrt(c*c+d*d)},distanceToXY:function(a,b,c){var d=a.x-b,e=a.y-c;return Math.sqrt(d*d+e*e)},distanceToPointer:function(a,b){b=b||this.game.input.activePointer;var c=a.x-b.worldX,d=a.y-b.worldY;return Math.sqrt(c*c+d*d)},angleBetween:function(a,b){var c=b.x-a.x,d=b.y-a.y;return Math.atan2(d,c)},angleToXY:function(a,b,c){var d=b-a.x,e=c-a.y;return Math.atan2(e,d)},angleToPointer:function(a,b){b=b||this.game.input.activePointer;var c=b.worldX-a.x,d=b.worldY-a.y;return Math.atan2(d,c)}},c.Physics.Arcade.Body=function(a){this.sprite=a,this.game=a.game,this.type=c.Physics.ARCADE,this.enable=!0,this.offset=new c.Point,this.position=new c.Point(a.x,a.y),this.prev=new c.Point(this.position.x,this.position.y),this.allowRotation=!0,this.rotation=a.rotation,this.preRotation=a.rotation,this.width=a.width,this.height=a.height,this.sourceWidth=a.width,this.sourceHeight=a.height,a.texture&&(this.sourceWidth=a.texture.frame.width,this.sourceHeight=a.texture.frame.height),this.halfWidth=Math.abs(a.width/2),this.halfHeight=Math.abs(a.height/2),this.center=new c.Point(a.x+this.halfWidth,a.y+this.halfHeight),this.velocity=new c.Point,this.newVelocity=new c.Point(0,0),this.deltaMax=new c.Point(0,0),this.acceleration=new c.Point,this.drag=new c.Point,this.allowGravity=!0,this.gravity=new c.Point(0,0),this.bounce=new c.Point,this.maxVelocity=new c.Point(1e4,1e4),this.friction=new c.Point(1,0),this.angularVelocity=0,this.angularAcceleration=0,this.angularDrag=0,this.maxAngular=1e3,this.mass=1,this.angle=0,this.speed=0,this.facing=c.NONE,this.immovable=!1,this.moves=!0,this.customSeparateX=!1,this.customSeparateY=!1,this.overlapX=0,this.overlapY=0,this.embedded=!1,this.collideWorldBounds=!1,this.checkCollision={none:!1,any:!0,up:!0,down:!0,left:!0,right:!0},this.touching={none:!0,up:!1,down:!1,left:!1,right:!1},this.wasTouching={none:!0,up:!1,down:!1,left:!1,right:!1},this.blocked={up:!1,down:!1,left:!1,right:!1},this.tilePadding=new c.Point,this.dirty=!1,this.skipQuadTree=!1,this.syncBounds=!1,this._reset=!0,this._sx=a.scale.x,this._sy=a.scale.y,this._dx=0,this._dy=0},c.Physics.Arcade.Body.prototype={updateBounds:function(){if(this.syncBounds){var a=this.sprite.getBounds();a.ceilAll(),(a.width!==this.width||a.height!==this.height)&&(this.width=a.width,this.height=a.height,this._reset=!0)}else{var b=Math.abs(this.sprite.scale.x),c=Math.abs(this.sprite.scale.y);(b!==this._sx||c!==this._sy)&&(this.width=this.sourceWidth*b,this.height=this.sourceHeight*c,this._sx=b,this._sy=c,this._reset=!0)}this._reset&&(this.halfWidth=Math.floor(this.width/2),this.halfHeight=Math.floor(this.height/2),this.center.setTo(this.position.x+this.halfWidth,this.position.y+this.halfHeight))},preUpdate:function(){this.enable&&!this.game.physics.arcade.isPaused&&(this.dirty=!0,this.wasTouching.none=this.touching.none,this.wasTouching.up=this.touching.up,this.wasTouching.down=this.touching.down,this.wasTouching.left=this.touching.left,this.wasTouching.right=this.touching.right,this.touching.none=!0,this.touching.up=!1,this.touching.down=!1,this.touching.left=!1,this.touching.right=!1,this.blocked.up=!1,this.blocked.down=!1,this.blocked.left=!1,this.blocked.right=!1,this.embedded=!1,this.updateBounds(),this.position.x=this.sprite.world.x-this.sprite.anchor.x*this.width+this.offset.x,this.position.y=this.sprite.world.y-this.sprite.anchor.y*this.height+this.offset.y,this.rotation=this.sprite.angle,this.preRotation=this.rotation,(this._reset||this.sprite.fresh)&&(this.prev.x=this.position.x,this.prev.y=this.position.y),this.moves&&(this.game.physics.arcade.updateMotion(this),this.newVelocity.set(this.velocity.x*this.game.time.physicsElapsed,this.velocity.y*this.game.time.physicsElapsed),this.position.x+=this.newVelocity.x,this.position.y+=this.newVelocity.y,(this.position.x!==this.prev.x||this.position.y!==this.prev.y)&&(this.speed=Math.sqrt(this.velocity.x*this.velocity.x+this.velocity.y*this.velocity.y),this.angle=Math.atan2(this.velocity.y,this.velocity.x)),this.collideWorldBounds&&this.checkWorldBounds()),this._dx=this.deltaX(),this._dy=this.deltaY(),this._reset=!1)},postUpdate:function(){this.enable&&this.dirty&&(this.dirty=!1,this.deltaX()<0?this.facing=c.LEFT:this.deltaX()>0&&(this.facing=c.RIGHT),this.deltaY()<0?this.facing=c.UP:this.deltaY()>0&&(this.facing=c.DOWN),this.moves&&(this._dx=this.deltaX(),this._dy=this.deltaY(),0!==this.deltaMax.x&&0!==this._dx&&(this._dx<0&&this._dx<-this.deltaMax.x?this._dx=-this.deltaMax.x:this._dx>0&&this._dx>this.deltaMax.x&&(this._dx=this.deltaMax.x)),0!==this.deltaMax.y&&0!==this._dy&&(this._dy<0&&this._dy<-this.deltaMax.y?this._dy=-this.deltaMax.y:this._dy>0&&this._dy>this.deltaMax.y&&(this._dy=this.deltaMax.y)),this.sprite.position.x+=this._dx,this.sprite.position.y+=this._dy,this._reset=!0),this.center.setTo(this.position.x+this.halfWidth,this.position.y+this.halfHeight),this.allowRotation&&(this.sprite.angle+=this.deltaZ()),this.prev.x=this.position.x,this.prev.y=this.position.y)},destroy:function(){this.sprite.parent&&this.sprite.parent instanceof c.Group&&this.sprite.parent.removeFromHash(this.sprite),this.sprite.body=null,this.sprite=null},checkWorldBounds:function(){var a=this.position,b=this.game.physics.arcade.bounds,c=this.game.physics.arcade.checkCollision;a.xb.right&&c.right&&(a.x=b.right-this.width,this.velocity.x*=-this.bounce.x,this.blocked.right=!0),a.yb.bottom&&c.down&&(a.y=b.bottom-this.height,this.velocity.y*=-this.bounce.y,this.blocked.down=!0) },setSize:function(a,b,c,d){void 0===c&&(c=this.offset.x),void 0===d&&(d=this.offset.y),this.sourceWidth=a,this.sourceHeight=b,this.width=this.sourceWidth*this._sx,this.height=this.sourceHeight*this._sy,this.halfWidth=Math.floor(this.width/2),this.halfHeight=Math.floor(this.height/2),this.offset.setTo(c,d),this.center.setTo(this.position.x+this.halfWidth,this.position.y+this.halfHeight)},reset:function(a,b){this.velocity.set(0),this.acceleration.set(0),this.speed=0,this.angularVelocity=0,this.angularAcceleration=0,this.position.x=a-this.sprite.anchor.x*this.width+this.offset.x,this.position.y=b-this.sprite.anchor.y*this.height+this.offset.y,this.prev.x=this.position.x,this.prev.y=this.position.y,this.rotation=this.sprite.angle,this.preRotation=this.rotation,this._sx=this.sprite.scale.x,this._sy=this.sprite.scale.y,this.center.setTo(this.position.x+this.halfWidth,this.position.y+this.halfHeight)},hitTest:function(a,b){return c.Rectangle.contains(this,a,b)},onFloor:function(){return this.blocked.down},onWall:function(){return this.blocked.left||this.blocked.right},deltaAbsX:function(){return this.deltaX()>0?this.deltaX():-this.deltaX()},deltaAbsY:function(){return this.deltaY()>0?this.deltaY():-this.deltaY()},deltaX:function(){return this.position.x-this.prev.x},deltaY:function(){return this.position.y-this.prev.y},deltaZ:function(){return this.rotation-this.preRotation}},Object.defineProperty(c.Physics.Arcade.Body.prototype,"bottom",{get:function(){return this.position.y+this.height}}),Object.defineProperty(c.Physics.Arcade.Body.prototype,"right",{get:function(){return this.position.x+this.width}}),Object.defineProperty(c.Physics.Arcade.Body.prototype,"x",{get:function(){return this.position.x},set:function(a){this.position.x=a}}),Object.defineProperty(c.Physics.Arcade.Body.prototype,"y",{get:function(){return this.position.y},set:function(a){this.position.y=a}}),c.Physics.Arcade.Body.render=function(a,b,c,d){void 0===d&&(d=!0),c=c||"rgba(0,255,0,0.4)",d?(a.fillStyle=c,a.fillRect(b.position.x-b.game.camera.x,b.position.y-b.game.camera.y,b.width,b.height)):(a.strokeStyle=c,a.strokeRect(b.position.x-b.game.camera.x,b.position.y-b.game.camera.y,b.width,b.height))},c.Physics.Arcade.Body.renderBodyInfo=function(a,b){a.line("x: "+b.x.toFixed(2),"y: "+b.y.toFixed(2),"width: "+b.width,"height: "+b.height),a.line("velocity x: "+b.velocity.x.toFixed(2),"y: "+b.velocity.y.toFixed(2),"deltaX: "+b._dx.toFixed(2),"deltaY: "+b._dy.toFixed(2)),a.line("acceleration x: "+b.acceleration.x.toFixed(2),"y: "+b.acceleration.y.toFixed(2),"speed: "+b.speed.toFixed(2),"angle: "+b.angle.toFixed(2)),a.line("gravity x: "+b.gravity.x,"y: "+b.gravity.y,"bounce x: "+b.bounce.x.toFixed(2),"y: "+b.bounce.y.toFixed(2)),a.line("touching left: "+b.touching.left,"right: "+b.touching.right,"up: "+b.touching.up,"down: "+b.touching.down),a.line("blocked left: "+b.blocked.left,"right: "+b.blocked.right,"up: "+b.blocked.up,"down: "+b.blocked.down)},c.Physics.Arcade.Body.prototype.constructor=c.Physics.Arcade.Body,c.Physics.Arcade.TilemapCollision=function(){},c.Physics.Arcade.TilemapCollision.prototype={TILE_BIAS:16,collideSpriteVsTilemapLayer:function(a,b,c,d,e,f){if(a.body){var g=b.getTiles(a.body.position.x-a.body.tilePadding.x,a.body.position.y-a.body.tilePadding.y,a.body.width+a.body.tilePadding.x,a.body.height+a.body.tilePadding.y,!1,!1);if(0!==g.length)for(var h=0;hb.deltaAbsY()?g=-1:b.deltaAbsX()g){if((c.faceLeft||c.faceRight)&&(e=this.tileCheckX(b,c),0!==e&&!c.intersects(b.position.x,b.position.y,b.right,b.bottom)))return!0;(c.faceTop||c.faceBottom)&&(f=this.tileCheckY(b,c))}else{if((c.faceTop||c.faceBottom)&&(f=this.tileCheckY(b,c),0!==f&&!c.intersects(b.position.x,b.position.y,b.right,b.bottom)))return!0;(c.faceLeft||c.faceRight)&&(e=this.tileCheckX(b,c))}return 0!==e||0!==f},tileCheckX:function(a,b){var c=0;return a.deltaX()<0&&!a.blocked.left&&b.collideRight&&a.checkCollision.left?b.faceRight&&a.x0&&!a.blocked.right&&b.collideLeft&&a.checkCollision.right&&b.faceLeft&&a.right>b.left&&(c=a.right-b.left,c>this.TILE_BIAS&&(c=0)),0!==c&&(a.customSeparateX?a.overlapX=c:this.processTileSeparationX(a,c)),c},tileCheckY:function(a,b){var c=0;return a.deltaY()<0&&!a.blocked.up&&b.collideDown&&a.checkCollision.up?b.faceBottom&&a.y0&&!a.blocked.down&&b.collideUp&&a.checkCollision.down&&b.faceTop&&a.bottom>b.top&&(c=a.bottom-b.top,c>this.TILE_BIAS&&(c=0)),0!==c&&(a.customSeparateY?a.overlapY=c:this.processTileSeparationY(a,c)),c},processTileSeparationX:function(a,b){0>b?a.blocked.left=!0:b>0&&(a.blocked.right=!0),a.position.x-=b,a.velocity.x=0===a.bounce.x?0:-a.velocity.x*a.bounce.x},processTileSeparationY:function(a,b){0>b?a.blocked.up=!0:b>0&&(a.blocked.down=!0),a.position.y-=b,a.velocity.y=0===a.bounce.y?0:-a.velocity.y*a.bounce.y}},c.Utils.mixinPrototype(c.Physics.Arcade.prototype,c.Physics.Arcade.TilemapCollision.prototype),c.ImageCollection=function(a,b,c,d,e,f,g){(void 0===c||0>=c)&&(c=32),(void 0===d||0>=d)&&(d=32),void 0===e&&(e=0),void 0===f&&(f=0),this.name=a,this.firstgid=0|b,this.imageWidth=0|c,this.imageHeight=0|d,this.imageMargin=0|e,this.imageSpacing=0|f,this.properties=g||{},this.images=[],this.total=0},c.ImageCollection.prototype={containsImageIndex:function(a){return a>=this.firstgid&&athis.right||b>this.bottom)},intersects:function(a,b,c,d){return c<=this.worldX?!1:d<=this.worldY?!1:a>=this.worldX+this.width?!1:b>=this.worldY+this.height?!1:!0},setCollisionCallback:function(a,b){this.collisionCallback=a,this.collisionCallbackContext=b},destroy:function(){this.collisionCallback=null,this.collisionCallbackContext=null,this.properties=null},setCollision:function(a,b,c,d){this.collideLeft=a,this.collideRight=b,this.collideUp=c,this.collideDown=d,this.faceLeft=a,this.faceRight=b,this.faceTop=c,this.faceBottom=d},resetCollision:function(){this.collideLeft=!1,this.collideRight=!1,this.collideUp=!1,this.collideDown=!1,this.faceTop=!1,this.faceBottom=!1,this.faceLeft=!1,this.faceRight=!1},isInteresting:function(a,b){return a&&b?this.collideLeft||this.collideRight||this.collideUp||this.collideDown||this.faceTop||this.faceBottom||this.faceLeft||this.faceRight||this.collisionCallback:a?this.collideLeft||this.collideRight||this.collideUp||this.collideDown:b?this.faceTop||this.faceBottom||this.faceLeft||this.faceRight:!1},copy:function(a){this.index=a.index,this.alpha=a.alpha,this.properties=a.properties,this.collideUp=a.collideUp,this.collideDown=a.collideDown,this.collideLeft=a.collideLeft,this.collideRight=a.collideRight,this.collisionCallback=a.collisionCallback,this.collisionCallbackContext=a.collisionCallbackContext}},c.Tile.prototype.constructor=c.Tile,Object.defineProperty(c.Tile.prototype,"collides",{get:function(){return this.collideLeft||this.collideRight||this.collideUp||this.collideDown}}),Object.defineProperty(c.Tile.prototype,"canCollide",{get:function(){return this.collideLeft||this.collideRight||this.collideUp||this.collideDown||this.collisionCallback}}),Object.defineProperty(c.Tile.prototype,"left",{get:function(){return this.worldX}}),Object.defineProperty(c.Tile.prototype,"right",{get:function(){return this.worldX+this.width}}),Object.defineProperty(c.Tile.prototype,"top",{get:function(){return this.worldY}}),Object.defineProperty(c.Tile.prototype,"bottom",{get:function(){return this.worldY+this.height}}),c.Tilemap=function(a,b,d,e,f,g){this.game=a,this.key=b;var h=c.TilemapParser.parse(this.game,b,d,e,f,g);null!==h&&(this.width=h.width,this.height=h.height,this.tileWidth=h.tileWidth,this.tileHeight=h.tileHeight,this.orientation=h.orientation,this.format=h.format,this.version=h.version,this.properties=h.properties,this.widthInPixels=h.widthInPixels,this.heightInPixels=h.heightInPixels,this.layers=h.layers,this.tilesets=h.tilesets,this.imagecollections=h.imagecollections,this.tiles=h.tiles,this.objects=h.objects,this.collideIndexes=[],this.collision=h.collision,this.images=h.images,this.currentLayer=0,this.debugMap=[],this._results=[],this._tempA=0,this._tempB=0)},c.Tilemap.CSV=0,c.Tilemap.TILED_JSON=1,c.Tilemap.NORTH=0,c.Tilemap.EAST=1,c.Tilemap.SOUTH=2,c.Tilemap.WEST=3,c.Tilemap.prototype={create:function(a,b,c,d,e,f){return void 0===f&&(f=this.game.world),this.width=b,this.height=c,this.setTileSize(d,e),this.layers.length=0,this.createBlankLayer(a,b,c,d,e,f)},setTileSize:function(a,b){this.tileWidth=a,this.tileHeight=b,this.widthInPixels=this.width*a,this.heightInPixels=this.height*b},addTilesetImage:function(a,b,d,e,f,g,h){if(void 0===a)return null;void 0===d&&(d=this.tileWidth),void 0===e&&(e=this.tileHeight),void 0===f&&(f=0),void 0===g&&(g=0),void 0===h&&(h=0),0===d&&(d=32),0===e&&(e=32);var i=null;if((void 0===b||null===b)&&(b=a),b instanceof c.BitmapData)i=b.canvas;else{if(!this.game.cache.checkImageKey(b))return console.warn('Phaser.Tilemap.addTilesetImage: Invalid image key given: "'+b+'"'),null;i=this.game.cache.getImage(b)}var j=this.getTilesetIndex(a);if(null===j&&this.format===c.Tilemap.TILED_JSON)return console.warn('Phaser.Tilemap.addTilesetImage: No data found in the JSON matching the tileset name: "'+b+'"'),null;if(this.tilesets[j])return this.tilesets[j].setImage(i),this.tilesets[j];var k=new c.Tileset(a,h,d,e,f,g,{});k.setImage(i),this.tilesets.push(k);for(var l=this.tilesets.length-1,m=f,n=f,o=0,p=0,q=0,r=h;rm;m++)if("undefined"!=typeof this.objects[a][m].gid&&"number"==typeof b&&this.objects[a][m].gid===b&&(l=!0),"undefined"!=typeof this.objects[a][m].id&&"number"==typeof b&&this.objects[a][m].id===b&&(l=!0),"undefined"!=typeof this.objects[a][m].name&&"string"==typeof b&&this.objects[a][m].name===b&&(l=!0),l){k=new i(this.game,this.objects[a][m].x,this.objects[a][m].y,d,e),k.name=this.objects[a][m].name,k.visible=this.objects[a][m].visible,k.autoCull=g,k.exists=f,k.width=this.objects[a][m].width,k.height=this.objects[a][m].height,this.objects[a][m].rotation&&(k.angle=this.objects[a][m].rotation),j&&(k.y-=k.height),h.add(k);for(var o in this.objects[a][m].properties)h.set(k,o,this.objects[a][m].properties[o],!1,!1,0,!0)}},createFromTiles:function(a,b,d,e,f,g){"number"==typeof a&&(a=[a]),void 0===b||null===b?b=[]:"number"==typeof b&&(b=[b]),e=this.getLayer(e),void 0===f&&(f=this.game.world),void 0===g&&(g={}),void 0===g.customClass&&(g.customClass=c.Sprite),void 0===g.adjustY&&(g.adjustY=!0);var h=this.layers[e].width,i=this.layers[e].height;if(this.copy(0,0,h,i,e),this._results.length<2)return 0;for(var j,k=0,l=1,m=this._results.length;m>l;l++)if(-1!==a.indexOf(this._results[l].index)){j=new g.customClass(this.game,this._results[l].worldX,this._results[l].worldY,d);for(var n in g)j[n]=g[n];f.add(j),k++}if(1===b.length)for(l=0;l1)for(l=0;lthis.layers.length?void console.warn("Tilemap.createLayer: Invalid layer ID given: "+f):e.add(new c.TilemapLayer(this.game,this,f,b,d))},createBlankLayer:function(a,b,d,e,f,g){if(void 0===g&&(g=this.game.world),null!==this.getLayerIndex(a))return void console.warn("Tilemap.createBlankLayer: Layer with matching name already exists");for(var h,i={name:a,x:0,y:0,width:b,height:d,widthInPixels:b*e,heightInPixels:d*f,alpha:1,visible:!0,properties:{},indexes:[],callbacks:[],bodies:[],data:null},j=[],k=0;d>k;k++){h=[];for(var l=0;b>l;l++)h.push(new c.Tile(i,-1,l,k,e,f));j.push(h)}i.data=j,this.layers.push(i),this.currentLayer=this.layers.length-1;var m=i.widthInPixels,n=i.heightInPixels;m>this.game.width&&(m=this.game.width),n>this.game.height&&(n=this.game.height);var j=new c.TilemapLayer(this.game,this,this.layers.length-1,m,n);return j.name=a,g.add(j)},getIndex:function(a,b){for(var c=0;ce;e++)this.layers[d].callbacks[a[e]]={callback:b,callbackContext:c}},setTileLocationCallback:function(a,b,c,d,e,f,g){if(g=this.getLayer(g),this.copy(a,b,c,d,g),!(this._results.length<2))for(var h=1;hb)){for(var f=a;b>=f;f++)this.setCollisionByIndex(f,c,d,!1);e&&this.calculateFaces(d)}},setCollisionByExclusion:function(a,b,c,d){void 0===b&&(b=!0),void 0===d&&(d=!0),c=this.getLayer(c);for(var e=0,f=this.tiles.length;f>e;e++)-1===a.indexOf(e)&&this.setCollisionByIndex(e,b,c,!1);d&&this.calculateFaces(c)},setCollisionByIndex:function(a,b,c,d){if(void 0===b&&(b=!0),void 0===c&&(c=this.currentLayer),void 0===d&&(d=!0),b)this.collideIndexes.push(a);else{var e=this.collideIndexes.indexOf(a);e>-1&&this.collideIndexes.splice(e,1)}for(var f=0;ff;f++)for(var h=0,i=this.layers[a].width;i>h;h++){var j=this.layers[a].data[f][h];j&&(b=this.getTileAbove(a,h,f),c=this.getTileBelow(a,h,f),d=this.getTileLeft(a,h,f),e=this.getTileRight(a,h,f),j.collides&&(j.faceTop=!0,j.faceBottom=!0,j.faceLeft=!0,j.faceRight=!0),b&&b.collides&&(j.faceTop=!1),c&&c.collides&&(j.faceBottom=!1),d&&d.collides&&(j.faceLeft=!1),e&&e.collides&&(j.faceRight=!1))}},getTileAbove:function(a,b,c){return c>0?this.layers[a].data[c-1][b]:null},getTileBelow:function(a,b,c){return c0?this.layers[a].data[c][b-1]:null},getTileRight:function(a,b,c){return b-1},removeTile:function(a,b,d){if(d=this.getLayer(d),a>=0&&a=0&&b=0&&b=0&&d-1?this.layers[e].data[d][b].setCollision(!0,!0,!0,!0):this.layers[e].data[d][b].resetCollision(),this.layers[e].dirty=!0,this.calculateFaces(e),this.layers[e].data[d][b]}return null},putTileWorldXY:function(a,b,c,d,e,f){return f=this.getLayer(f),b=this.game.math.snapToFloor(b,d)/d,c=this.game.math.snapToFloor(c,e)/e,this.putTile(a,b,c,f)},searchTileIndex:function(a,b,c,d){void 0===b&&(b=0),void 0===c&&(c=!1),d=this.getLayer(d);var e=0;if(c){for(var f=this.layers[d].height-1;f>=0;f--)for(var g=this.layers[d].width-1;g>=0;g--)if(this.layers[d].data[f][g].index===a){if(e===b)return this.layers[d].data[f][g];e++}}else for(var f=0;f=0&&a=0&&ba&&(a=0),0>b&&(b=0),c>this.layers[e].width&&(c=this.layers[e].width),d>this.layers[e].height&&(d=this.layers[e].height),this._results.length=0,this._results.push({x:a,y:b,width:c,height:d,layer:e});for(var f=b;b+d>f;f++)for(var g=a;a+c>g;g++)this._results.push(this.layers[e].data[f][g]);return this._results},paste:function(a,b,c,d){if(void 0===a&&(a=0),void 0===b&&(b=0),d=this.getLayer(d),c&&!(c.length<2)){for(var e=a-c[1].x,f=b-c[1].y,g=1;g1?this.debugMap[this.layers[this.currentLayer].data[c][d]]?"background: "+this.debugMap[this.layers[this.currentLayer].data[c][d]]:"background: #ffffff":"background: rgb(0, 0, 0)");a+="\n"}b[0]=a,console.log.apply(console,b)},destroy:function(){this.removeAllLayers(),this.data=[],this.game=null}},c.Tilemap.prototype.constructor=c.Tilemap,Object.defineProperty(c.Tilemap.prototype,"layer",{get:function(){return this.layers[this.currentLayer]},set:function(a){a!==this.currentLayer&&this.setLayer(a)}}),c.TilemapLayer=function(a,b,d,e,f){e|=0,f|=0,c.Sprite.call(this,a,0,0),this.map=b,this.index=d,this.layer=b.layers[d],this.canvas=c.Canvas.create(e,f),this.context=this.canvas.getContext("2d"),this.setTexture(new PIXI.Texture(new PIXI.BaseTexture(this.canvas))),this.type=c.TILEMAPLAYER,this.physicsType=c.TILEMAPLAYER,this.renderSettings={enableScrollDelta:!1,overdrawRatio:.2,copyCanvas:null},this.debug=!1,this.exists=!0,this.debugSettings={missingImageFill:"rgb(255,255,255)",debuggedTileOverfill:"rgba(0,255,0,0.4)",forceFullRedraw:!0,debugAlpha:.5,facingEdgeStroke:"rgba(0,255,0,1)",collidingTileOverfill:"rgba(0,255,0,0.2)"},this.scrollFactorX=1,this.scrollFactorY=1,this.dirty=!0,this.rayStepRate=4,this._wrap=!1,this._mc={scrollX:0,scrollY:0,renderWidth:0,renderHeight:0,tileWidth:b.tileWidth,tileHeight:b.tileHeight,cw:b.tileWidth,ch:b.tileHeight,tilesets:[]},this._scrollX=0,this._scrollY=0,this._results=[],a.device.canvasBitBltShift||(this.renderSettings.copyCanvas=c.TilemapLayer.ensureSharedCopyCanvas()),this.fixedToCamera=!0},c.TilemapLayer.prototype=Object.create(c.Sprite.prototype),c.TilemapLayer.prototype.constructor=c.TilemapLayer,c.TilemapLayer.prototype.preUpdateCore=c.Component.Core.preUpdate,c.TilemapLayer.sharedCopyCanvas=null,c.TilemapLayer.ensureSharedCopyCanvas=function(){return this.sharedCopyCanvas||(this.sharedCopyCanvas=c.Canvas.create(2,2)),this.sharedCopyCanvas},c.TilemapLayer.prototype.preUpdate=function(){return this.preUpdateCore()},c.TilemapLayer.prototype.postUpdate=function(){c.Component.FixedToCamera.postUpdate.call(this);var a=this.game.camera;this.scrollX=a.x*this.scrollFactorX/this.scale.x,this.scrollY=a.y*this.scrollFactorY/this.scale.y,this.render()},c.TilemapLayer.prototype.resize=function(a,b){this.canvas.width=a,this.canvas.height=b,this.texture.frame.resize(a,b),this.texture.width=a,this.texture.height=b,this.texture.crop.width=a,this.texture.crop.height=b,this.texture.baseTexture.width=a,this.texture.baseTexture.height=b,this.texture.baseTexture.dirty(),this.texture.requiresUpdate=!0,this.texture._updateUvs(),this.dirty=!0},c.TilemapLayer.prototype.resizeWorld=function(){this.game.world.setBounds(0,0,this.layer.widthInPixels*this.scale.x,this.layer.heightInPixels*this.scale.y)},c.TilemapLayer.prototype._fixX=function(a){return 0>a&&(a=0),1===this.scrollFactorX?a:this._scrollX+(a-this._scrollX/this.scrollFactorX)},c.TilemapLayer.prototype._unfixX=function(a){return 1===this.scrollFactorX?a:this._scrollX/this.scrollFactorX+(a-this._scrollX)},c.TilemapLayer.prototype._fixY=function(a){return 0>a&&(a=0),1===this.scrollFactorY?a:this._scrollY+(a-this._scrollY/this.scrollFactorY)},c.TilemapLayer.prototype._unfixY=function(a){return 1===this.scrollFactorY?a:this._scrollY/this.scrollFactorY+(a-this._scrollY)},c.TilemapLayer.prototype.getTileX=function(a){return Math.floor(this._fixX(a)/this._mc.tileWidth)},c.TilemapLayer.prototype.getTileY=function(a){return Math.floor(this._fixY(a)/this._mc.tileHeight)},c.TilemapLayer.prototype.getTileXY=function(a,b,c){return c.x=this.getTileX(a),c.y=this.getTileY(b),c},c.TilemapLayer.prototype.getRayCastTiles=function(a,b,c,d){b||(b=this.rayStepRate),void 0===c&&(c=!1),void 0===d&&(d=!1);var e=this.getTiles(a.x,a.y,a.width,a.height,c,d);if(0===e.length)return[];for(var f=a.coordinatesOnLine(b),g=[],h=0;hl;l++)for(var m=h;h+j>m;m++){var n=this.layer.data[l];n&&n[m]&&(g||n[m].isInteresting(e,f))&&this._results.push(n[m])}return this._results.slice()},c.TilemapLayer.prototype.resolveTileset=function(a){var b=this._mc.tilesets;if(2e3>a)for(;b.lengthb&&(g=-b,i=0),0>c&&(h=-c,j=0);var k=this.renderSettings.copyCanvas;if(k){(k.width=c&&(c=Math.max(0,c),e=Math.min(h-1,e)),f>=d&&(d=Math.max(0,d),f=Math.min(i-1,f)));var n,o,p,q,r,s,t=c*j-a,u=d*k-b,v=(c+(1<<20)*h)%h,w=(d+(1<<20)*i)%i;for(g.fillStyle=this.tileColor,q=w,s=f-d,o=u;s>=0;q++,s--,o+=k){q>=i&&(q-=i);var x=this.layer.data[q];for(p=v,r=e-c,n=t;r>=0;p++,r--,n+=j){p>=h&&(p-=h);var y=x[p];if(y&&!(y.index<0)){var z=y.index,A=l[z];void 0===A&&(A=this.resolveTileset(z)),y.alpha===m||this.debug||(g.globalAlpha=y.alpha,m=y.alpha),A?y.rotation||y.flipped?(g.save(),g.translate(n+y.centerX,o+y.centerY),g.rotate(y.rotation),y.flipped&&g.scale(-1,1),A.draw(g,-y.centerX,-y.centerY,z),g.restore()):A.draw(g,n,o,z):this.debugSettings.missingImageFill&&(g.fillStyle=this.debugSettings.missingImageFill,g.fillRect(n,o,j,k)),y.debug&&this.debugSettings.debuggedTileOverfill&&(g.fillStyle=this.debugSettings.debuggedTileOverfill,g.fillRect(n,o,j,k))}}}},c.TilemapLayer.prototype.renderDeltaScroll=function(a,b){var c=this._mc.scrollX,d=this._mc.scrollY,e=this.canvas.width,f=this.canvas.height,g=this._mc.tileWidth,h=this._mc.tileHeight,i=0,j=-g,k=0,l=-h;if(0>a?(i=e+a,j=e-1):a>0&&(j=a),0>b?(k=f+b,l=f-1):b>0&&(l=b),this.shiftCanvas(this.context,a,b),i=Math.floor((i+c)/g),j=Math.floor((j+c)/g),k=Math.floor((k+d)/h),l=Math.floor((l+d)/h),j>=i){this.context.clearRect(i*g-c,0,(j-i+1)*g,f);var m=Math.floor((0+d)/h),n=Math.floor((f-1+d)/h);this.renderRegion(c,d,i,m,j,n)}if(l>=k){this.context.clearRect(0,k*h-d,e,(l-k+1)*h);var o=Math.floor((0+c)/g),p=Math.floor((e-1+c)/g);this.renderRegion(c,d,o,k,p,l)}},c.TilemapLayer.prototype.renderFull=function(){var a=this._mc.scrollX,b=this._mc.scrollY,c=this.canvas.width,d=this.canvas.height,e=this._mc.tileWidth,f=this._mc.tileHeight,g=Math.floor(a/e),h=Math.floor((c-1+a)/e),i=Math.floor(b/f),j=Math.floor((d-1+b)/f);this.context.clearRect(0,0,c,d),this.renderRegion(a,b,g,i,h,j)},c.TilemapLayer.prototype.render=function(){var a=!1;if(this.visible){this.context.save(),(this.dirty||this.layer.dirty)&&(this.layer.dirty=!1,a=!0);var b=this.canvas.width,c=this.canvas.height,d=0|this._scrollX,e=0|this._scrollY,f=this._mc,g=f.scrollX-d,h=f.scrollY-e;if(a||0!==g||0!==h||f.renderWidth!==b||f.renderHeight!==c)return f.scrollX=d,f.scrollY=e,(f.renderWidth!==b||f.renderHeight!==c)&&(f.renderWidth=b,f.renderHeight=c),this.debug&&(this.context.globalAlpha=this.debugSettings.debugAlpha,this.debugSettings.forceFullRedraw&&(a=!0)),!a&&this.renderSettings.enableScrollDelta&&Math.abs(g)+Math.abs(h)=0;d++,f--,b+=o){d>=m&&(d-=m);var x=this.layer.data[d];for(c=v,e=q-p,a=t;e>=0;c++,e--,a+=n){c>=l&&(c-=l);var y=x[c];!y||y.index<0||!y.collides||(this.debugSettings.collidingTileOverfill&&(i.fillStyle=this.debugSettings.collidingTileOverfill,i.fillRect(a,b,this._mc.cw,this._mc.ch)),this.debugSettings.facingEdgeStroke&&(i.beginPath(),y.faceTop&&(i.moveTo(a,b),i.lineTo(a+this._mc.cw,b)),y.faceBottom&&(i.moveTo(a,b+this._mc.ch),i.lineTo(a+this._mc.cw,b+this._mc.ch)),y.faceLeft&&(i.moveTo(a,b),i.lineTo(a,b+this._mc.ch)),y.faceRight&&(i.moveTo(a+this._mc.cw,b),i.lineTo(a+this._mc.cw,b+this._mc.ch)),i.stroke())) -}}},Object.defineProperty(c.TilemapLayer.prototype,"wrap",{get:function(){return this._wrap},set:function(a){this._wrap=a,this.dirty=!0}}),Object.defineProperty(c.TilemapLayer.prototype,"scrollX",{get:function(){return this._scrollX},set:function(a){this._scrollX=a}}),Object.defineProperty(c.TilemapLayer.prototype,"scrollY",{get:function(){return this._scrollY},set:function(a){this._scrollY=a}}),Object.defineProperty(c.TilemapLayer.prototype,"collisionWidth",{get:function(){return this._mc.cw},set:function(a){this._mc.cw=0|a,this.dirty=!0}}),Object.defineProperty(c.TilemapLayer.prototype,"collisionHeight",{get:function(){return this._mc.ch},set:function(a){this._mc.ch=0|a,this.dirty=!0}}),c.TilemapParser={parse:function(a,b,d,e,f,g){if(void 0===d&&(d=32),void 0===e&&(e=32),void 0===f&&(f=10),void 0===g&&(g=10),void 0===b)return this.getEmptyData();if(null===b)return this.getEmptyData(d,e,f,g);var h=a.cache.getTilemapData(b);if(h){if(h.format===c.Tilemap.CSV)return this.parseCSV(b,h.data,d,e);if(!h.format||h.format===c.Tilemap.TILED_JSON)return this.parseTiledJSON(h.data)}else console.warn("Phaser.TilemapParser.parse - No map data found for key "+b)},parseCSV:function(a,b,d,e){var f=this.getEmptyData();b=b.trim();for(var g=[],h=b.split("\n"),i=h.length,j=0,k=0;ko;o++){if(h=0,i=!1,k=a.layers[f].data[o],k>536870912)switch(j=0,k>2147483648&&(k-=2147483648,j+=4),k>1073741824&&(k-=1073741824,j+=2),k>536870912&&(k-=536870912,j+=1),j){case 5:h=Math.PI/2;break;case 6:h=Math.PI;break;case 3:h=3*Math.PI/2;break;case 4:h=0,i=!0;break;case 7:h=Math.PI/2,i=!0;break;case 2:h=Math.PI,i=!0;break;case 1:h=3*Math.PI/2,i=!0}k>0?(m.push(new c.Tile(g,k,l,n.length,a.tilewidth,a.tileheight)),m[m.length-1].rotation=h,m[m.length-1].flipped=i):m.push(new c.Tile(g,-1,l,n.length,a.tilewidth,a.tileheight)),l++,l===a.layers[f].width&&(n.push(m),l=0,m=[])}g.data=n,e.push(g)}d.layers=e;for(var q=[],f=0;fz;z++)if(a.layers[f].objects[z].gid){var A={gid:a.layers[f].objects[z].gid,name:a.layers[f].objects[z].name,type:a.layers[f].objects[z].hasOwnProperty("type")?a.layers[f].objects[z].type:"",x:a.layers[f].objects[z].x,y:a.layers[f].objects[z].y,visible:a.layers[f].objects[z].visible,properties:a.layers[f].objects[z].properties};a.layers[f].objects[z].rotation&&(A.rotation=a.layers[f].objects[z].rotation),x[a.layers[f].name].push(A)}else if(a.layers[f].objects[z].polyline){var A={name:a.layers[f].objects[z].name,type:a.layers[f].objects[z].type,x:a.layers[f].objects[z].x,y:a.layers[f].objects[z].y,width:a.layers[f].objects[z].width,height:a.layers[f].objects[z].height,visible:a.layers[f].objects[z].visible,properties:a.layers[f].objects[z].properties};a.layers[f].objects[z].rotation&&(A.rotation=a.layers[f].objects[z].rotation),A.polyline=[];for(var B=0;B=c)&&(c=32),(void 0===d||0>=d)&&(d=32),void 0===e&&(e=0),void 0===f&&(f=0),this.name=a,this.firstgid=0|b,this.tileWidth=0|c,this.tileHeight=0|d,this.tileMargin=0|e,this.tileSpacing=0|f,this.properties=g||{},this.image=null,this.rows=0,this.columns=0,this.total=0,this.drawCoords=[]},c.Tileset.prototype={draw:function(a,b,c,d){var e=d-this.firstgid<<1;e>=0&&e+1=this.firstgid&&a=this._timer)if(this._timer=this.game.time.time+this.frequency*this.game.time.slowMotion,0!==this._flowTotal)if(this._flowQuantity>0){for(var a=0;a=this._flowTotal)){this.on=!1;break}}else this.emitParticle()&&(this._counter++,-1!==this._flowTotal&&this._counter>=this._flowTotal&&(this.on=!1));else this.emitParticle()&&(this._counter++,this._quantity>0&&this._counter>=this._quantity&&(this.on=!1));for(var a=this.children.length;a--;)this.children[a].exists&&this.children[a].update()},c.Particles.Arcade.Emitter.prototype.makeParticles=function(a,b,c,d,e){void 0===b&&(b=0),void 0===c&&(c=this.maxParticles),void 0===d&&(d=!1),void 0===e&&(e=!1);var f,g=0,h=a,i=b;for(this._frames=b,c>this.maxParticles&&(this.maxParticles=c);c>g;)Array.isArray(a)&&(h=this.game.rnd.pick(a)),Array.isArray(b)&&(i=this.game.rnd.pick(b)),f=new this.particleClass(this.game,0,0,h,i),this.game.physics.arcade.enable(f,!1),d?(f.body.checkCollision.any=!0,f.body.checkCollision.none=!1):f.body.checkCollision.none=!0,f.body.collideWorldBounds=e,f.body.skipQuadTree=!0,f.exists=!1,f.visible=!1,f.anchor.copyFrom(this.particleAnchor),this.add(f),g++;return this},c.Particles.Arcade.Emitter.prototype.kill=function(){this.on=!1,this.alive=!1,this.exists=!1},c.Particles.Arcade.Emitter.prototype.revive=function(){this.alive=!0,this.exists=!0},c.Particles.Arcade.Emitter.prototype.explode=function(a,b){this._flowTotal=0,this.start(!0,a,0,b,!1)},c.Particles.Arcade.Emitter.prototype.flow=function(a,b,c,d,e){(void 0===c||0===c)&&(c=1),void 0===d&&(d=-1),void 0===e&&(e=!0),c>this.maxParticles&&(c=this.maxParticles),this._counter=0,this._flowQuantity=c,this._flowTotal=d,e?(this.start(!0,a,b,c),this._counter+=c,this.on=!0,this._timer=this.game.time.time+b*this.game.time.slowMotion):this.start(!1,a,b,c)},c.Particles.Arcade.Emitter.prototype.start=function(a,b,c,d,e){if(void 0===a&&(a=!0),void 0===b&&(b=0),(void 0===c||null===c)&&(c=250),void 0===d&&(d=0),void 0===e&&(e=!1),d>this.maxParticles&&(d=this.maxParticles),this.revive(),this.visible=!0,this.lifespan=b,this.frequency=c,a||e)for(var f=0;d>f;f++)this.emitParticle();else this.on=!0,this._quantity+=d,this._counter=0,this._timer=this.game.time.time+c*this.game.time.slowMotion},c.Particles.Arcade.Emitter.prototype.emitParticle=function(){var a=this.getFirstExists(!1);return null===a?!1:(this.width>1||this.height>1?a.reset(this.game.rnd.integerInRange(this.left,this.right),this.game.rnd.integerInRange(this.top,this.bottom)):a.reset(this.emitX,this.emitY),a.angle=0,a.lifespan=this.lifespan,this.particleBringToTop?this.bringToTop(a):this.particleSendToBack&&this.sendToBack(a),this.autoScale?a.setScaleData(this.scaleData):1!==this.minParticleScale||1!==this.maxParticleScale?a.scale.set(this.game.rnd.realInRange(this.minParticleScale,this.maxParticleScale)):(this._minParticleScale.x!==this._maxParticleScale.x||this._minParticleScale.y!==this._maxParticleScale.y)&&a.scale.set(this.game.rnd.realInRange(this._minParticleScale.x,this._maxParticleScale.x),this.game.rnd.realInRange(this._minParticleScale.y,this._maxParticleScale.y)),a.frame=Array.isArray("object"===this._frames)?this.game.rnd.pick(this._frames):this._frames,this.autoAlpha?a.setAlphaData(this.alphaData):a.alpha=this.game.rnd.realInRange(this.minParticleAlpha,this.maxParticleAlpha),a.blendMode=this.blendMode,a.body.updateBounds(),a.body.bounce.setTo(this.bounce.x,this.bounce.y),a.body.velocity.x=this.game.rnd.between(this.minParticleSpeed.x,this.maxParticleSpeed.x),a.body.velocity.y=this.game.rnd.between(this.minParticleSpeed.y,this.maxParticleSpeed.y),a.body.angularVelocity=this.game.rnd.between(this.minRotation,this.maxRotation),a.body.gravity.y=this.gravity,a.body.drag.x=this.particleDrag.x,a.body.drag.y=this.particleDrag.y,a.body.angularDrag=this.angularDrag,a.onEmit(),!0)},c.Particles.Arcade.Emitter.prototype.destroy=function(){this.game.particles.remove(this),c.Group.prototype.destroy.call(this,!0,!1)},c.Particles.Arcade.Emitter.prototype.setSize=function(a,b){this.area.width=a,this.area.height=b},c.Particles.Arcade.Emitter.prototype.setXSpeed=function(a,b){a=a||0,b=b||0,this.minParticleSpeed.x=a,this.maxParticleSpeed.x=b},c.Particles.Arcade.Emitter.prototype.setYSpeed=function(a,b){a=a||0,b=b||0,this.minParticleSpeed.y=a,this.maxParticleSpeed.y=b},c.Particles.Arcade.Emitter.prototype.setRotation=function(a,b){a=a||0,b=b||0,this.minRotation=a,this.maxRotation=b},c.Particles.Arcade.Emitter.prototype.setAlpha=function(a,b,d,e,f){if(void 0===a&&(a=1),void 0===b&&(b=1),void 0===d&&(d=0),void 0===e&&(e=c.Easing.Linear.None),void 0===f&&(f=!1),this.minParticleAlpha=a,this.maxParticleAlpha=b,this.autoAlpha=!1,d>0&&a!==b){var g={v:a},h=this.game.make.tween(g).to({v:b},d,e);h.yoyo(f),this.alphaData=h.generateData(60),this.alphaData.reverse(),this.autoAlpha=!0}},c.Particles.Arcade.Emitter.prototype.setScale=function(a,b,d,e,f,g,h){if(void 0===a&&(a=1),void 0===b&&(b=1),void 0===d&&(d=1),void 0===e&&(e=1),void 0===f&&(f=0),void 0===g&&(g=c.Easing.Linear.None),void 0===h&&(h=!1),this.minParticleScale=1,this.maxParticleScale=1,this._minParticleScale.set(a,d),this._maxParticleScale.set(b,e),this.autoScale=!1,f>0&&(a!==b||d!==e)){var i={x:a,y:d},j=this.game.make.tween(i).to({x:b,y:e},f,g);j.yoyo(h),this.scaleData=j.generateData(60),this.scaleData.reverse(),this.autoScale=!0}},c.Particles.Arcade.Emitter.prototype.at=function(a){a.center?(this.emitX=a.center.x,this.emitY=a.center.y):(this.emitX=a.world.x+a.anchor.x*a.width,this.emitY=a.world.y+a.anchor.y*a.height)},Object.defineProperty(c.Particles.Arcade.Emitter.prototype,"width",{get:function(){return this.area.width},set:function(a){this.area.width=a}}),Object.defineProperty(c.Particles.Arcade.Emitter.prototype,"height",{get:function(){return this.area.height},set:function(a){this.area.height=a}}),Object.defineProperty(c.Particles.Arcade.Emitter.prototype,"x",{get:function(){return this.emitX},set:function(a){this.emitX=a}}),Object.defineProperty(c.Particles.Arcade.Emitter.prototype,"y",{get:function(){return this.emitY},set:function(a){this.emitY=a}}),Object.defineProperty(c.Particles.Arcade.Emitter.prototype,"left",{get:function(){return Math.floor(this.x-this.area.width/2)}}),Object.defineProperty(c.Particles.Arcade.Emitter.prototype,"right",{get:function(){return Math.floor(this.x+this.area.width/2)}}),Object.defineProperty(c.Particles.Arcade.Emitter.prototype,"top",{get:function(){return Math.floor(this.y-this.area.height/2)}}),Object.defineProperty(c.Particles.Arcade.Emitter.prototype,"bottom",{get:function(){return Math.floor(this.y+this.area.height/2)}}),c.Video=function(a,b,d){if(void 0===b&&(b=null),void 0===d&&(d=null),this.game=a,this.key=b,this.width=0,this.height=0,this.type=c.VIDEO,this.disableTextureUpload=!1,this.touchLocked=!1,this.onPlay=new c.Signal,this.onChangeSource=new c.Signal,this.onComplete=new c.Signal,this.onAccess=new c.Signal,this.onError=new c.Signal,this.onTimeout=new c.Signal,this.timeout=15e3,this._timeOutID=null,this.video=null,this.videoStream=null,this.isStreaming=!1,this.retryLimit=20,this.retry=0,this.retryInterval=500,this._retryID=null,this._codeMuted=!1,this._muted=!1,this._codePaused=!1,this._paused=!1,this._pending=!1,this._autoplay=!1,b&&this.game.cache.checkVideoKey(b)){var e=this.game.cache.getVideo(b);e.isBlob?this.createVideoFromBlob(e.data):this.video=e.data,this.width=this.video.videoWidth,this.height=this.video.videoHeight}else d&&this.createVideoFromURL(d,!1);this.video&&!d?(this.baseTexture=new PIXI.BaseTexture(this.video),this.baseTexture.forceLoaded(this.width,this.height)):(this.baseTexture=new PIXI.BaseTexture(PIXI.TextureCache.__default.baseTexture.source),this.baseTexture.forceLoaded(this.width,this.height)),this.texture=new PIXI.Texture(this.baseTexture),this.textureFrame=new c.Frame(0,0,0,this.width,this.height,"video"),this.texture.setFrame(this.textureFrame),this.texture.valid=!1,null!==b&&this.video&&(this.texture.valid=this.video.canplay),this.snapshot=null,c.BitmapData&&(this.snapshot=new c.BitmapData(this.game,"",this.width,this.height)),!this.game.device.cocoonJS&&(this.game.device.iOS||this.game.device.android)||window.PhaserGlobal&&window.PhaserGlobal.fakeiOSTouchLock?this.setTouchLock():e&&(e.locked=!1)},c.Video.prototype={connectToMediaStream:function(a,b){return a&&b&&(this.video=a,this.videoStream=b,this.isStreaming=!0,this.baseTexture.source=this.video,this.updateTexture(null,this.video.videoWidth,this.video.videoHeight),this.onAccess.dispatch(this)),this},startMediaStream:function(a,b,c){if(void 0===a&&(a=!1),void 0===b&&(b=null),void 0===c&&(c=null),!this.game.device.getUserMedia)return this.onError.dispatch(this,"No getUserMedia"),!1;null!==this.videoStream&&this.videoStream.stop(),this.removeVideoElement(),this.video=document.createElement("video"),this.video.setAttribute("autoplay","autoplay"),null!==b&&(this.video.width=b),null!==c&&(this.video.height=c),this._timeOutID=window.setTimeout(this.getUserMediaTimeout.bind(this),this.timeout);try{navigator.getUserMedia({audio:a,video:!0},this.getUserMediaSuccess.bind(this),this.getUserMediaError.bind(this))}catch(d){this.getUserMediaError(d)}return this},getUserMediaTimeout:function(){clearTimeout(this._timeOutID),this.onTimeout.dispatch(this)},getUserMediaError:function(a){clearTimeout(this._timeOutID),this.onError.dispatch(this,a)},getUserMediaSuccess:function(a){clearTimeout(this._timeOutID),this.videoStream=a,void 0!==this.video.mozSrcObject?this.video.mozSrcObject=a:this.video.src=window.URL&&window.URL.createObjectURL(a)||a;var b=this;this.video.onloadeddata=function(){function a(){if(c>0)if(b.video.videoWidth>0){var d=b.video.videoWidth,e=b.video.videoHeight;isNaN(b.video.videoHeight)&&(e=d/(4/3)),b.video.play(),b.isStreaming=!0,b.baseTexture.source=b.video,b.updateTexture(null,d,e),b.onAccess.dispatch(b)}else window.setTimeout(a,500);else console.warn("Unable to connect to video stream. Webcam error?");c--}var c=10;a()}},createVideoFromBlob:function(a){var b=this;return this.video=document.createElement("video"),this.video.controls=!1,this.video.setAttribute("autoplay","autoplay"),this.video.addEventListener("loadeddata",function(a){b.updateTexture(a)},!0),this.video.src=window.URL.createObjectURL(a),this.video.canplay=!0,this},createVideoFromURL:function(a,b){return void 0===b&&(b=!1),this.texture&&(this.texture.valid=!1),this.video=document.createElement("video"),this.video.controls=!1,b&&this.video.setAttribute("autoplay","autoplay"),this.video.src=a,this.video.canplay=!0,this.video.load(),this.retry=this.retryLimit,this._retryID=window.setTimeout(this.checkVideoProgress.bind(this),this.retryInterval),this.key=a,this},updateTexture:function(a,b,c){var d=!1;(void 0===b||null===b)&&(b=this.video.videoWidth,d=!0),(void 0===c||null===c)&&(c=this.video.videoHeight),this.width=b,this.height=c,this.baseTexture.source!==this.video&&(this.baseTexture.source=this.video),this.baseTexture.forceLoaded(b,c),this.texture.frame.resize(b,c),this.texture.width=b,this.texture.height=c,this.texture.valid=!0,this.snapshot&&this.snapshot.resize(b,c),d&&null!==this.key&&(this.onChangeSource.dispatch(this,b,c),this._autoplay&&(this.video.play(),this.onPlay.dispatch(this,this.loop,this.playbackRate)))},complete:function(){this.onComplete.dispatch(this)},play:function(a,b){return void 0===a&&(a=!1),void 0===b&&(b=1),this.game.sound.onMute&&(this.game.sound.onMute.add(this.setMute,this),this.game.sound.onUnMute.add(this.unsetMute,this),this.game.sound.mute&&this.setMute()),this.game.onPause.add(this.setPause,this),this.game.onResume.add(this.setResume,this),this.video.addEventListener("ended",this.complete.bind(this),!0),this.video.loop=a?"loop":"",this.video.playbackRate=b,this.touchLocked?this._pending=!0:(this._pending=!1,null!==this.key&&(4!==this.video.readyState?(this.retry=this.retryLimit,this._retryID=window.setTimeout(this.checkVideoProgress.bind(this),this.retryInterval)):this.video.addEventListener("playing",this.playHandler.bind(this),!0)),this.video.play(),this.onPlay.dispatch(this,a,b)),this},playHandler:function(){this.video.removeEventListener("playing",this.playHandler.bind(this)),this.updateTexture()},stop:function(){return this.game.sound.onMute&&(this.game.sound.onMute.remove(this.setMute,this),this.game.sound.onUnMute.remove(this.unsetMute,this)),this.game.onPause.remove(this.setPause,this),this.game.onResume.remove(this.setResume,this),this.isStreaming?(this.video.mozSrcObject?(this.video.mozSrcObject.stop(),this.video.src=null):(this.video.src="",this.videoStream.stop()),this.videoStream=null,this.isStreaming=!1):(this.video.removeEventListener("ended",this.complete.bind(this)),this.touchLocked?this._pending=!1:this.video.pause()),this},add:function(a){if(Array.isArray(a))for(var b=0;b0?this._retryID=window.setTimeout(this.checkVideoProgress.bind(this),this.retryInterval):console.warn("Phaser.Video: Unable to start downloading video in time",this.isStreaming))},setTouchLock:function(){this.game.input.touch.addTouchLockCallback(this.unlock,this),this.touchLocked=!0},unlock:function(){if(this.touchLocked=!1,this.video.play(),this.onPlay.dispatch(this,this.loop,this.playbackRate),this.key){var a=this.game.cache.getVideo(this.key);a&&!a.isBlob&&(a.locked=!1)}return!0},grab:function(a,b,c){return void 0===a&&(a=!1),void 0===b&&(b=1),void 0===c&&(c=null),null===this.snapshot?void console.warn("Video.grab cannot run because Phaser.BitmapData is unavailable"):(a&&this.snapshot.cls(),this.snapshot.copy(this.video,0,0,this.width,this.height,0,0,this.width,this.height,0,0,0,1,1,b,c),this.snapshot)},removeVideoElement:function(){if(this.video){for(this.video.parentNode&&this.video.parentNode.removeChild(this.video);this.video.hasChildNodes();)this.video.removeChild(this.video.firstChild);this.video.removeAttribute("autoplay"),this.video.removeAttribute("src"),this.video=null}},destroy:function(){this.stop(),this.removeVideoElement(),this.touchLocked&&this.game.input.touch.removeTouchLockCallback(this.unlock,this),this._retryID&&window.clearTimeout(this._retryID)}},Object.defineProperty(c.Video.prototype,"currentTime",{get:function(){return this.video?this.video.currentTime:0},set:function(a){this.video.currentTime=a}}),Object.defineProperty(c.Video.prototype,"duration",{get:function(){return this.video?this.video.duration:0}}),Object.defineProperty(c.Video.prototype,"progress",{get:function(){return this.video?this.video.currentTime/this.video.duration:0}}),Object.defineProperty(c.Video.prototype,"mute",{get:function(){return this._muted},set:function(a){if(a=a||null){if(this._muted)return;this._codeMuted=!0,this.setMute()}else{if(!this._muted)return;this._codeMuted=!1,this.unsetMute()}}}),Object.defineProperty(c.Video.prototype,"paused",{get:function(){return this._paused},set:function(a){if(a=a||null,!this.touchLocked)if(a){if(this._paused)return;this._codePaused=!0,this.setPause()}else{if(!this._paused)return;this._codePaused=!1,this.setResume()}}}),Object.defineProperty(c.Video.prototype,"volume",{get:function(){return this.video?this.video.volume:1},set:function(a){0>a?a=0:a>1&&(a=1),this.video&&(this.video.volume=a)}}),Object.defineProperty(c.Video.prototype,"playbackRate",{get:function(){return this.video?this.video.playbackRate:1},set:function(a){this.video&&(this.video.playbackRate=a)}}),Object.defineProperty(c.Video.prototype,"loop",{get:function(){return this.video?this.video.loop:!1},set:function(a){a&&this.video?this.video.loop="loop":this.video&&(this.video.loop="")}}),Object.defineProperty(c.Video.prototype,"playing",{get:function(){return!(this.video.paused&&this.video.ended)}}),c.Video.prototype.constructor=c.Video,void 0===PIXI.blendModes&&(PIXI.blendModes=c.blendModes),void 0===PIXI.scaleModes&&(PIXI.scaleModes=c.scaleModes),void 0===PIXI.Texture.emptyTexture&&(PIXI.Texture.emptyTexture=new PIXI.Texture(new PIXI.BaseTexture)),void 0===PIXI.DisplayObject._tempMatrix&&(PIXI.DisplayObject._tempMatrix=new PIXI.Matrix),void 0===PIXI.RenderTexture.tempMatrix&&(PIXI.RenderTexture.tempMatrix=new PIXI.Matrix),void 0===PIXI.Graphics.POLY&&(PIXI.Graphics.POLY=c.POLYGON,PIXI.Graphics.RECT=c.RECTANGLE,PIXI.Graphics.CIRC=c.CIRCLE,PIXI.Graphics.ELIP=c.ELLIPSE,PIXI.Graphics.RREC=c.ROUNDEDRECTANGLE),PIXI.TextureSilentFail=!0,"undefined"!=typeof exports?("undefined"!=typeof module&&module.exports&&(exports=module.exports=c),exports.Phaser=c):"undefined"!=typeof define&&define.amd?define("Phaser",function(){return b.Phaser=c}()):b.Phaser=c}).call(this); +}}},Object.defineProperty(c.TilemapLayer.prototype,"wrap",{get:function(){return this._wrap},set:function(a){this._wrap=a,this.dirty=!0}}),Object.defineProperty(c.TilemapLayer.prototype,"scrollX",{get:function(){return this._scrollX},set:function(a){this._scrollX=a}}),Object.defineProperty(c.TilemapLayer.prototype,"scrollY",{get:function(){return this._scrollY},set:function(a){this._scrollY=a}}),Object.defineProperty(c.TilemapLayer.prototype,"collisionWidth",{get:function(){return this._mc.cw},set:function(a){this._mc.cw=0|a,this.dirty=!0}}),Object.defineProperty(c.TilemapLayer.prototype,"collisionHeight",{get:function(){return this._mc.ch},set:function(a){this._mc.ch=0|a,this.dirty=!0}}),c.TilemapParser={parse:function(a,b,d,e,f,g){if(void 0===d&&(d=32),void 0===e&&(e=32),void 0===f&&(f=10),void 0===g&&(g=10),void 0===b)return this.getEmptyData();if(null===b)return this.getEmptyData(d,e,f,g);var h=a.cache.getTilemapData(b);if(h){if(h.format===c.Tilemap.CSV)return this.parseCSV(b,h.data,d,e);if(!h.format||h.format===c.Tilemap.TILED_JSON)return this.parseTiledJSON(h.data)}else console.warn("Phaser.TilemapParser.parse - No map data found for key "+b)},parseCSV:function(a,b,d,e){var f=this.getEmptyData();b=b.trim();for(var g=[],h=b.split("\n"),i=h.length,j=0,k=0;ko;o++){if(h=0,i=!1,k=a.layers[f].data[o],k>536870912)switch(j=0,k>2147483648&&(k-=2147483648,j+=4),k>1073741824&&(k-=1073741824,j+=2),k>536870912&&(k-=536870912,j+=1),j){case 5:h=Math.PI/2;break;case 6:h=Math.PI;break;case 3:h=3*Math.PI/2;break;case 4:h=0,i=!0;break;case 7:h=Math.PI/2,i=!0;break;case 2:h=Math.PI,i=!0;break;case 1:h=3*Math.PI/2,i=!0}k>0?(m.push(new c.Tile(g,k,l,n.length,a.tilewidth,a.tileheight)),m[m.length-1].rotation=h,m[m.length-1].flipped=i):m.push(new c.Tile(g,-1,l,n.length,a.tilewidth,a.tileheight)),l++,l===a.layers[f].width&&(n.push(m),l=0,m=[])}g.data=n,e.push(g)}d.layers=e;for(var q=[],f=0;fz;z++)if(a.layers[f].objects[z].gid){var A={gid:a.layers[f].objects[z].gid,name:a.layers[f].objects[z].name,type:a.layers[f].objects[z].hasOwnProperty("type")?a.layers[f].objects[z].type:"",x:a.layers[f].objects[z].x,y:a.layers[f].objects[z].y,visible:a.layers[f].objects[z].visible,properties:a.layers[f].objects[z].properties};a.layers[f].objects[z].rotation&&(A.rotation=a.layers[f].objects[z].rotation),x[a.layers[f].name].push(A)}else if(a.layers[f].objects[z].polyline){var A={name:a.layers[f].objects[z].name,type:a.layers[f].objects[z].type,x:a.layers[f].objects[z].x,y:a.layers[f].objects[z].y,width:a.layers[f].objects[z].width,height:a.layers[f].objects[z].height,visible:a.layers[f].objects[z].visible,properties:a.layers[f].objects[z].properties};a.layers[f].objects[z].rotation&&(A.rotation=a.layers[f].objects[z].rotation),A.polyline=[];for(var B=0;B=c)&&(c=32),(void 0===d||0>=d)&&(d=32),void 0===e&&(e=0),void 0===f&&(f=0),this.name=a,this.firstgid=0|b,this.tileWidth=0|c,this.tileHeight=0|d,this.tileMargin=0|e,this.tileSpacing=0|f,this.properties=g||{},this.image=null,this.rows=0,this.columns=0,this.total=0,this.drawCoords=[]},c.Tileset.prototype={draw:function(a,b,c,d){var e=d-this.firstgid<<1;e>=0&&e+1=this.firstgid&&a=this._timer)if(this._timer=this.game.time.time+this.frequency*this.game.time.slowMotion,0!==this._flowTotal)if(this._flowQuantity>0){for(var a=0;a=this._flowTotal)){this.on=!1;break}}else this.emitParticle()&&(this._counter++,-1!==this._flowTotal&&this._counter>=this._flowTotal&&(this.on=!1));else this.emitParticle()&&(this._counter++,this._quantity>0&&this._counter>=this._quantity&&(this.on=!1));for(var a=this.children.length;a--;)this.children[a].exists&&this.children[a].update()},c.Particles.Arcade.Emitter.prototype.makeParticles=function(a,b,c,d,e){void 0===b&&(b=0),void 0===c&&(c=this.maxParticles),void 0===d&&(d=!1),void 0===e&&(e=!1);var f,g=0,h=a,i=b;for(this._frames=b,c>this.maxParticles&&(this.maxParticles=c);c>g;)Array.isArray(a)&&(h=this.game.rnd.pick(a)),Array.isArray(b)&&(i=this.game.rnd.pick(b)),f=new this.particleClass(this.game,0,0,h,i),this.game.physics.arcade.enable(f,!1),d?(f.body.checkCollision.any=!0,f.body.checkCollision.none=!1):f.body.checkCollision.none=!0,f.body.collideWorldBounds=e,f.body.skipQuadTree=!0,f.exists=!1,f.visible=!1,f.anchor.copyFrom(this.particleAnchor),this.add(f),g++;return this},c.Particles.Arcade.Emitter.prototype.kill=function(){this.on=!1,this.alive=!1,this.exists=!1},c.Particles.Arcade.Emitter.prototype.revive=function(){this.alive=!0,this.exists=!0},c.Particles.Arcade.Emitter.prototype.explode=function(a,b){this._flowTotal=0,this.start(!0,a,0,b,!1)},c.Particles.Arcade.Emitter.prototype.flow=function(a,b,c,d,e){(void 0===c||0===c)&&(c=1),void 0===d&&(d=-1),void 0===e&&(e=!0),c>this.maxParticles&&(c=this.maxParticles),this._counter=0,this._flowQuantity=c,this._flowTotal=d,e?(this.start(!0,a,b,c),this._counter+=c,this.on=!0,this._timer=this.game.time.time+b*this.game.time.slowMotion):this.start(!1,a,b,c)},c.Particles.Arcade.Emitter.prototype.start=function(a,b,c,d,e){if(void 0===a&&(a=!0),void 0===b&&(b=0),(void 0===c||null===c)&&(c=250),void 0===d&&(d=0),void 0===e&&(e=!1),d>this.maxParticles&&(d=this.maxParticles),this.revive(),this.visible=!0,this.lifespan=b,this.frequency=c,a||e)for(var f=0;d>f;f++)this.emitParticle();else this.on=!0,this._quantity+=d,this._counter=0,this._timer=this.game.time.time+c*this.game.time.slowMotion},c.Particles.Arcade.Emitter.prototype.emitParticle=function(){var a=this.getFirstExists(!1);return null===a?!1:(this.width>1||this.height>1?a.reset(this.game.rnd.integerInRange(this.left,this.right),this.game.rnd.integerInRange(this.top,this.bottom)):a.reset(this.emitX,this.emitY),a.angle=0,a.lifespan=this.lifespan,this.particleBringToTop?this.bringToTop(a):this.particleSendToBack&&this.sendToBack(a),this.autoScale?a.setScaleData(this.scaleData):1!==this.minParticleScale||1!==this.maxParticleScale?a.scale.set(this.game.rnd.realInRange(this.minParticleScale,this.maxParticleScale)):(this._minParticleScale.x!==this._maxParticleScale.x||this._minParticleScale.y!==this._maxParticleScale.y)&&a.scale.set(this.game.rnd.realInRange(this._minParticleScale.x,this._maxParticleScale.x),this.game.rnd.realInRange(this._minParticleScale.y,this._maxParticleScale.y)),a.frame=Array.isArray("object"===this._frames)?this.game.rnd.pick(this._frames):this._frames,this.autoAlpha?a.setAlphaData(this.alphaData):a.alpha=this.game.rnd.realInRange(this.minParticleAlpha,this.maxParticleAlpha),a.blendMode=this.blendMode,a.body.updateBounds(),a.body.bounce.setTo(this.bounce.x,this.bounce.y),a.body.velocity.x=this.game.rnd.between(this.minParticleSpeed.x,this.maxParticleSpeed.x),a.body.velocity.y=this.game.rnd.between(this.minParticleSpeed.y,this.maxParticleSpeed.y),a.body.angularVelocity=this.game.rnd.between(this.minRotation,this.maxRotation),a.body.gravity.y=this.gravity,a.body.drag.x=this.particleDrag.x,a.body.drag.y=this.particleDrag.y,a.body.angularDrag=this.angularDrag,a.onEmit(),!0)},c.Particles.Arcade.Emitter.prototype.destroy=function(){this.game.particles.remove(this),c.Group.prototype.destroy.call(this,!0,!1)},c.Particles.Arcade.Emitter.prototype.setSize=function(a,b){this.area.width=a,this.area.height=b},c.Particles.Arcade.Emitter.prototype.setXSpeed=function(a,b){a=a||0,b=b||0,this.minParticleSpeed.x=a,this.maxParticleSpeed.x=b},c.Particles.Arcade.Emitter.prototype.setYSpeed=function(a,b){a=a||0,b=b||0,this.minParticleSpeed.y=a,this.maxParticleSpeed.y=b},c.Particles.Arcade.Emitter.prototype.setRotation=function(a,b){a=a||0,b=b||0,this.minRotation=a,this.maxRotation=b},c.Particles.Arcade.Emitter.prototype.setAlpha=function(a,b,d,e,f){if(void 0===a&&(a=1),void 0===b&&(b=1),void 0===d&&(d=0),void 0===e&&(e=c.Easing.Linear.None),void 0===f&&(f=!1),this.minParticleAlpha=a,this.maxParticleAlpha=b,this.autoAlpha=!1,d>0&&a!==b){var g={v:a},h=this.game.make.tween(g).to({v:b},d,e);h.yoyo(f),this.alphaData=h.generateData(60),this.alphaData.reverse(),this.autoAlpha=!0}},c.Particles.Arcade.Emitter.prototype.setScale=function(a,b,d,e,f,g,h){if(void 0===a&&(a=1),void 0===b&&(b=1),void 0===d&&(d=1),void 0===e&&(e=1),void 0===f&&(f=0),void 0===g&&(g=c.Easing.Linear.None),void 0===h&&(h=!1),this.minParticleScale=1,this.maxParticleScale=1,this._minParticleScale.set(a,d),this._maxParticleScale.set(b,e),this.autoScale=!1,f>0&&(a!==b||d!==e)){var i={x:a,y:d},j=this.game.make.tween(i).to({x:b,y:e},f,g);j.yoyo(h),this.scaleData=j.generateData(60),this.scaleData.reverse(),this.autoScale=!0}},c.Particles.Arcade.Emitter.prototype.at=function(a){a.center?(this.emitX=a.center.x,this.emitY=a.center.y):(this.emitX=a.world.x+a.anchor.x*a.width,this.emitY=a.world.y+a.anchor.y*a.height)},Object.defineProperty(c.Particles.Arcade.Emitter.prototype,"width",{get:function(){return this.area.width},set:function(a){this.area.width=a}}),Object.defineProperty(c.Particles.Arcade.Emitter.prototype,"height",{get:function(){return this.area.height},set:function(a){this.area.height=a}}),Object.defineProperty(c.Particles.Arcade.Emitter.prototype,"x",{get:function(){return this.emitX},set:function(a){this.emitX=a}}),Object.defineProperty(c.Particles.Arcade.Emitter.prototype,"y",{get:function(){return this.emitY},set:function(a){this.emitY=a}}),Object.defineProperty(c.Particles.Arcade.Emitter.prototype,"left",{get:function(){return Math.floor(this.x-this.area.width/2)}}),Object.defineProperty(c.Particles.Arcade.Emitter.prototype,"right",{get:function(){return Math.floor(this.x+this.area.width/2)}}),Object.defineProperty(c.Particles.Arcade.Emitter.prototype,"top",{get:function(){return Math.floor(this.y-this.area.height/2)}}),Object.defineProperty(c.Particles.Arcade.Emitter.prototype,"bottom",{get:function(){return Math.floor(this.y+this.area.height/2)}}),c.Video=function(a,b,d){if(void 0===b&&(b=null),void 0===d&&(d=null),this.game=a,this.key=b,this.width=0,this.height=0,this.type=c.VIDEO,this.disableTextureUpload=!1,this.touchLocked=!1,this.onPlay=new c.Signal,this.onChangeSource=new c.Signal,this.onComplete=new c.Signal,this.onAccess=new c.Signal,this.onError=new c.Signal,this.onTimeout=new c.Signal,this.timeout=15e3,this._timeOutID=null,this.video=null,this.videoStream=null,this.isStreaming=!1,this.retryLimit=20,this.retry=0,this.retryInterval=500,this._retryID=null,this._codeMuted=!1,this._muted=!1,this._codePaused=!1,this._paused=!1,this._pending=!1,this._autoplay=!1,b&&this.game.cache.checkVideoKey(b)){var e=this.game.cache.getVideo(b);e.isBlob?this.createVideoFromBlob(e.data):this.video=e.data,this.width=this.video.videoWidth,this.height=this.video.videoHeight}else d&&this.createVideoFromURL(d,!1);this.video&&!d?(this.baseTexture=new PIXI.BaseTexture(this.video),this.baseTexture.forceLoaded(this.width,this.height)):(this.baseTexture=new PIXI.BaseTexture(PIXI.TextureCache.__default.baseTexture.source),this.baseTexture.forceLoaded(this.width,this.height)),this.texture=new PIXI.Texture(this.baseTexture),this.textureFrame=new c.Frame(0,0,0,this.width,this.height,"video"),this.texture.setFrame(this.textureFrame),this.texture.valid=!1,null!==b&&this.video&&(this.texture.valid=this.video.canplay),this.snapshot=null,c.BitmapData&&(this.snapshot=new c.BitmapData(this.game,"",this.width,this.height)),!this.game.device.cocoonJS&&(this.game.device.iOS||this.game.device.android)||window.PhaserGlobal&&window.PhaserGlobal.fakeiOSTouchLock?this.setTouchLock():e&&(e.locked=!1)},c.Video.prototype={connectToMediaStream:function(a,b){return a&&b&&(this.video=a,this.videoStream=b,this.isStreaming=!0,this.baseTexture.source=this.video,this.updateTexture(null,this.video.videoWidth,this.video.videoHeight),this.onAccess.dispatch(this)),this},startMediaStream:function(a,b,c){if(void 0===a&&(a=!1),void 0===b&&(b=null),void 0===c&&(c=null),!this.game.device.getUserMedia)return this.onError.dispatch(this,"No getUserMedia"),!1;null!==this.videoStream&&this.videoStream.stop(),this.removeVideoElement(),this.video=document.createElement("video"),this.video.setAttribute("autoplay","autoplay"),null!==b&&(this.video.width=b),null!==c&&(this.video.height=c),this._timeOutID=window.setTimeout(this.getUserMediaTimeout.bind(this),this.timeout);try{navigator.getUserMedia({audio:a,video:!0},this.getUserMediaSuccess.bind(this),this.getUserMediaError.bind(this))}catch(d){this.getUserMediaError(d)}return this},getUserMediaTimeout:function(){clearTimeout(this._timeOutID),this.onTimeout.dispatch(this)},getUserMediaError:function(a){clearTimeout(this._timeOutID),this.onError.dispatch(this,a)},getUserMediaSuccess:function(a){clearTimeout(this._timeOutID),this.videoStream=a,void 0!==this.video.mozSrcObject?this.video.mozSrcObject=a:this.video.src=window.URL&&window.URL.createObjectURL(a)||a;var b=this;this.video.onloadeddata=function(){function a(){if(c>0)if(b.video.videoWidth>0){var d=b.video.videoWidth,e=b.video.videoHeight;isNaN(b.video.videoHeight)&&(e=d/(4/3)),b.video.play(),b.isStreaming=!0,b.baseTexture.source=b.video,b.updateTexture(null,d,e),b.onAccess.dispatch(b)}else window.setTimeout(a,500);else console.warn("Unable to connect to video stream. Webcam error?");c--}var c=10;a()}},createVideoFromBlob:function(a){var b=this;return this.video=document.createElement("video"),this.video.controls=!1,this.video.setAttribute("autoplay","autoplay"),this.video.addEventListener("loadeddata",function(a){b.updateTexture(a)},!0),this.video.src=window.URL.createObjectURL(a),this.video.canplay=!0,this},createVideoFromURL:function(a,b){return void 0===b&&(b=!1),this.texture&&(this.texture.valid=!1),this.video=document.createElement("video"),this.video.controls=!1,b&&this.video.setAttribute("autoplay","autoplay"),this.video.src=a,this.video.canplay=!0,this.video.load(),this.retry=this.retryLimit,this._retryID=window.setTimeout(this.checkVideoProgress.bind(this),this.retryInterval),this.key=a,this},updateTexture:function(a,b,c){var d=!1;(void 0===b||null===b)&&(b=this.video.videoWidth,d=!0),(void 0===c||null===c)&&(c=this.video.videoHeight),this.width=b,this.height=c,this.baseTexture.source!==this.video&&(this.baseTexture.source=this.video),this.baseTexture.forceLoaded(b,c),this.texture.frame.resize(b,c),this.texture.width=b,this.texture.height=c,this.texture.valid=!0,this.snapshot&&this.snapshot.resize(b,c),d&&null!==this.key&&(this.onChangeSource.dispatch(this,b,c),this._autoplay&&(this.video.play(),this.onPlay.dispatch(this,this.loop,this.playbackRate)))},complete:function(){this.onComplete.dispatch(this)},play:function(a,b){return void 0===a&&(a=!1),void 0===b&&(b=1),this.game.sound.onMute&&(this.game.sound.onMute.add(this.setMute,this),this.game.sound.onUnMute.add(this.unsetMute,this),this.game.sound.mute&&this.setMute()),this.game.onPause.add(this.setPause,this),this.game.onResume.add(this.setResume,this),this.video.addEventListener("ended",this.complete.bind(this),!0),this.video.loop=a?"loop":"",this.video.playbackRate=b,this.touchLocked?this._pending=!0:(this._pending=!1,null!==this.key&&(4!==this.video.readyState?(this.retry=this.retryLimit,this._retryID=window.setTimeout(this.checkVideoProgress.bind(this),this.retryInterval)):this.video.addEventListener("playing",this.playHandler.bind(this),!0)),this.video.play(),this.onPlay.dispatch(this,a,b)),this},playHandler:function(){this.video.removeEventListener("playing",this.playHandler.bind(this)),this.updateTexture()},stop:function(){return this.game.sound.onMute&&(this.game.sound.onMute.remove(this.setMute,this),this.game.sound.onUnMute.remove(this.unsetMute,this)),this.game.onPause.remove(this.setPause,this),this.game.onResume.remove(this.setResume,this),this.isStreaming?(this.video.mozSrcObject?(this.video.mozSrcObject.stop(),this.video.src=null):(this.video.src="",this.videoStream.stop()),this.videoStream=null,this.isStreaming=!1):(this.video.removeEventListener("ended",this.complete.bind(this)),this.touchLocked?this._pending=!1:this.video.pause()),this},add:function(a){if(Array.isArray(a))for(var b=0;b0?this._retryID=window.setTimeout(this.checkVideoProgress.bind(this),this.retryInterval):console.warn("Phaser.Video: Unable to start downloading video in time",this.isStreaming))},setTouchLock:function(){this.game.input.touch.addTouchLockCallback(this.unlock,this),this.touchLocked=!0},unlock:function(){if(this.touchLocked=!1,this.video.play(),this.onPlay.dispatch(this,this.loop,this.playbackRate),this.key){var a=this.game.cache.getVideo(this.key);a&&!a.isBlob&&(a.locked=!1)}return!0},grab:function(a,b,c){return void 0===a&&(a=!1),void 0===b&&(b=1),void 0===c&&(c=null),null===this.snapshot?void console.warn("Video.grab cannot run because Phaser.BitmapData is unavailable"):(a&&this.snapshot.cls(),this.snapshot.copy(this.video,0,0,this.width,this.height,0,0,this.width,this.height,0,0,0,1,1,b,c),this.snapshot)},removeVideoElement:function(){if(this.video){for(this.video.parentNode&&this.video.parentNode.removeChild(this.video);this.video.hasChildNodes();)this.video.removeChild(this.video.firstChild);this.video.removeAttribute("autoplay"),this.video.removeAttribute("src"),this.video=null}},destroy:function(){this.stop(),this.removeVideoElement(),this.touchLocked&&this.game.input.touch.removeTouchLockCallback(this.unlock,this),this._retryID&&window.clearTimeout(this._retryID)}},Object.defineProperty(c.Video.prototype,"currentTime",{get:function(){return this.video?this.video.currentTime:0},set:function(a){this.video.currentTime=a}}),Object.defineProperty(c.Video.prototype,"duration",{get:function(){return this.video?this.video.duration:0}}),Object.defineProperty(c.Video.prototype,"progress",{get:function(){return this.video?this.video.currentTime/this.video.duration:0}}),Object.defineProperty(c.Video.prototype,"mute",{get:function(){return this._muted},set:function(a){if(a=a||null){if(this._muted)return;this._codeMuted=!0,this.setMute()}else{if(!this._muted)return;this._codeMuted=!1,this.unsetMute()}}}),Object.defineProperty(c.Video.prototype,"paused",{get:function(){return this._paused},set:function(a){if(a=a||null,!this.touchLocked)if(a){if(this._paused)return;this._codePaused=!0,this.setPause()}else{if(!this._paused)return;this._codePaused=!1,this.setResume()}}}),Object.defineProperty(c.Video.prototype,"volume",{get:function(){return this.video?this.video.volume:1},set:function(a){0>a?a=0:a>1&&(a=1),this.video&&(this.video.volume=a)}}),Object.defineProperty(c.Video.prototype,"playbackRate",{get:function(){return this.video?this.video.playbackRate:1},set:function(a){this.video&&(this.video.playbackRate=a)}}),Object.defineProperty(c.Video.prototype,"loop",{get:function(){return this.video?this.video.loop:!1},set:function(a){a&&this.video?this.video.loop="loop":this.video&&(this.video.loop="")}}),Object.defineProperty(c.Video.prototype,"playing",{get:function(){return!(this.video.paused&&this.video.ended)}}),c.Video.prototype.constructor=c.Video,void 0===PIXI.blendModes&&(PIXI.blendModes=c.blendModes),void 0===PIXI.scaleModes&&(PIXI.scaleModes=c.scaleModes),void 0===PIXI.Texture.emptyTexture&&(PIXI.Texture.emptyTexture=new PIXI.Texture(new PIXI.BaseTexture)),void 0===PIXI.DisplayObject._tempMatrix&&(PIXI.DisplayObject._tempMatrix=new PIXI.Matrix),void 0===PIXI.RenderTexture.tempMatrix&&(PIXI.RenderTexture.tempMatrix=new PIXI.Matrix),void 0===PIXI.Graphics.POLY&&(PIXI.Graphics.POLY=c.POLYGON,PIXI.Graphics.RECT=c.RECTANGLE,PIXI.Graphics.CIRC=c.CIRCLE,PIXI.Graphics.ELIP=c.ELLIPSE,PIXI.Graphics.RREC=c.ROUNDEDRECTANGLE),PIXI.TextureSilentFail=!0,"undefined"!=typeof exports?("undefined"!=typeof module&&module.exports&&(exports=module.exports=c),exports.Phaser=c):"undefined"!=typeof define&&define.amd?define("Phaser",function(){return b.Phaser=c}()):b.Phaser=c}.call(this); //# sourceMappingURL=phaser-arcade-physics.map \ No newline at end of file diff --git a/build/custom/phaser-minimum.js b/build/custom/phaser-minimum.js index 052ebf21b..29a2b5443 100644 --- a/build/custom/phaser-minimum.js +++ b/build/custom/phaser-minimum.js @@ -7,7 +7,7 @@ * * Phaser - http://phaser.io * -* v2.4.0 "Katar" - Built: Wed Jul 22 2015 15:30:39 +* v2.4.1 "Ionin Spring" - Built: Thu Jul 23 2015 16:02:03 * * By Richard Davey http://www.photonstorm.com @photonstorm * @@ -32,7 +32,7 @@ * @author Mat Groves http://matgroves.com/ @Doormat23 */ -var PIXI = (function(){ +(function(){ var root = this; @@ -9186,7 +9186,7 @@ var Phaser = Phaser || { * @constant * @type {string} */ - VERSION: '2.4.0', + VERSION: '2.4.1', /** * An array of Phaser game instances. @@ -32354,6 +32354,39 @@ Phaser.GameObjectFactory.prototype = { }, + /** + * Create a new Creature Animation object. + * + * Creature is a custom Game Object used in conjunction with the Creature Runtime libraries by Kestrel Moon Studios. + * + * It allows you to display animated Game Objects that were created with the [Creature Automated Animation Tool](http://www.kestrelmoon.com/creature/). + * + * Note 1: You can only use Phaser.Creature objects in WebGL enabled games. They do not work in Canvas mode games. + * + * Note 2: You must use a build of Phaser that includes the CreatureMeshBone.js runtime and gl-matrix.js, or have them + * loaded before your Phaser game boots. + * + * See the Phaser custom build process for more details. + * + * @method Phaser.GameObjectFactory#creature + * @param {number} [x=0] - The x coordinate of the creature. The coordinate is relative to any parent container this creature may be in. + * @param {number} [y=0] - The y coordinate of the creature. The coordinate is relative to any parent container this creature may be in. + * @param {string|PIXI.Texture} [key] - The image used as a texture by this creature object during rendering. If a string Phaser will get for an entry in the Image Cache. Or it can be an instance of a PIXI.Texture. + * @param {Phaser.Group} [group] - Optional Group to add the object to. If not specified it will be added to the World group. + * @returns {Phaser.Creature} The newly created Sprite object. + */ + creature: function (x, y, key, mesh, group) { + + if (group === undefined) { group = this.world; } + + var obj = new Phaser.Creature(this.game, x, y, key, mesh); + + group.add(obj); + + return obj; + + }, + /** * Create a tween on a specific object. * @@ -43729,6 +43762,9 @@ Phaser.Cache.prototype = { /** * Gets a PIXI.Texture by key from the PIXI.TextureCache. * + * If the texture isn't found in the cache, then it searches the Phaser Image Cache and + * creates a new PIXI.Texture object which is then returned. + * * @method Phaser.Cache#getPixiTexture * @deprecated * @param {string} key - Asset key of the Texture to retrieve from the Cache. @@ -43742,19 +43778,29 @@ Phaser.Cache.prototype = { } else { - console.warn('Phaser.Cache.getPixiTexture: Invalid key: "' + key + '"'); - return null; + var base = this.getPixiBaseTexture(key); + + if (base) + { + return new PIXI.Texture(base); + } + else + { + return null; + } } }, /** - * Gets a PIXI.BaseTexture by key from the PIXI.BaseTExtureCache. + * Gets a PIXI.BaseTexture by key from the PIXI.BaseTextureCache. + * + * If the texture isn't found in the cache, then it searches the Phaser Image Cache. * * @method Phaser.Cache#getPixiBaseTexture * @deprecated * @param {string} key - Asset key of the BaseTexture to retrieve from the Cache. - * @return {PIXI.BaseTexture} The BaseTexture object. + * @return {PIXI.BaseTexture} The BaseTexture object or null if not found. */ getPixiBaseTexture: function (key) { @@ -43764,8 +43810,16 @@ Phaser.Cache.prototype = { } else { - console.warn('Phaser.Cache.getPixiBaseTexture: Invalid key: "' + key + '"'); - return null; + var img = this.getItem(key, Phaser.Cache.IMAGE, 'getPixiBaseTexture'); + + if (img !== null) + { + return img.base; + } + else + { + return null; + } } }, @@ -43808,9 +43862,9 @@ Phaser.Cache.prototype = { var out = []; - if (this._cache[cache]) + if (this._cacheMap[cache]) { - for (var key in this._cache[cache]) + for (var key in this._cacheMap[cache]) { if (key !== '__default' && key !== '__missing') { diff --git a/build/custom/phaser-minimum.map b/build/custom/phaser-minimum.map index 36239bcb1..b3f0b4e40 100644 --- a/build/custom/phaser-minimum.map +++ b/build/custom/phaser-minimum.map @@ -1 +1 @@ -{"version":3,"file":"phaser-minimum.min.js","sources":["phaser-minimum.js"],"names":["PIXI","root","this","WEBGL_RENDERER","CANVAS_RENDERER","VERSION","_UID","Float32Array","Uint16Array","Uint32Array","ArrayBuffer","Array","PI_2","Math","PI","RAD_TO_DEG","DEG_TO_RAD","RETINA_PREFIX","defaultRenderOptions","view","transparent","antialias","preserveDrawingBuffer","resolution","clearBeforeRender","autoResize","DisplayObject","position","Point","scale","transformCallback","transformCallbackContext","pivot","rotation","alpha","visible","hitArea","renderable","parent","stage","worldAlpha","worldTransform","Matrix","worldPosition","worldScale","worldRotation","_sr","_cr","filterArea","_bounds","Rectangle","_currentBounds","_mask","_cacheAsBitmap","_cacheIsDirty","prototype","constructor","destroy","children","i","length","_destroyCachedSprite","Object","defineProperty","get","item","set","value","isMask","_filters","passes","filterPasses","j","push","_filterBlock","target","_generateCachedSprite","updateTransform","game","p","world","a","b","c","d","tx","ty","pt","wt","rotationCache","sin","cos","x","y","sqrt","atan2","call","displayObjectUpdateTransform","getBounds","matrix","EmptyRectangle","getLocalBounds","identityMatrix","setStageReference","preUpdate","generateTexture","scaleMode","renderer","bounds","renderTexture","RenderTexture","width","height","_tempMatrix","render","updateCache","toGlobal","apply","toLocal","from","applyInverse","_renderCachedSprite","renderSession","_cachedSprite","gl","Sprite","_renderWebGL","_renderCanvas","texture","resize","tempFilters","filters","anchor","DisplayObjectContainer","create","_width","_height","addChild","child","addChildAt","index","removeChild","splice","Error","swapChildren","child2","index1","getChildIndex","index2","indexOf","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","Texture","emptyTexture","tint","cachedTint","tintedTexture","blendMode","blendModes","NORMAL","shader","baseTexture","hasLoaded","onTextureUpdate","frame","setTexture","valid","w0","w1","h0","h1","x1","y1","x2","y2","x3","y3","x4","y4","crop","currentBlendMode","context","globalCompositeOperation","blendModesCanvas","globalAlpha","smoothProperty","scaleModes","LINEAR","dx","trim","dy","roundPixels","setTransform","cw","ch","requiresReTint","CanvasTinter","getTintedTexture","drawImage","cx","cy","source","fromFrame","frameId","TextureCache","fromImage","imageId","crossorigin","SpriteBatch","textureThing","ready","initWebGL","fastSpriteBatch","WebGLFastSpriteBatch","setContext","shaderManager","setShader","fastShader","transform","isRotated","childTransform","Stage","backgroundColor","setBackgroundColor","backgroundColorSplit","hex2rgb","hex","toString","substr","backgroundColorString","rgb2hex","rgb","canUseNewCanvasBlendModes","document","pngHead","pngEnd","magenta","Image","src","yellow","canvas","createElement","getContext","getImageData","data","getNextPowerOfTwo","number","result","isPowerOfTwo","PolyK","Triangulate","sign","n","tgs","avl","al","i0","i1","i2","ax","ay","bx","by","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","isArray","join","createShader","shaderSource","compileShader","getShaderParameter","COMPILE_STATUS","window","console","log","getShaderInfoLog","compileProgram","vertexSrc","fragmentSrc","fragmentShader","vertexShader","shaderProgram","createProgram","attachShader","linkProgram","getProgramParameter","LINK_STATUS","PixiShader","program","textureCount","firstRun","dirty","attributes","init","defaultVertexSrc","useProgram","uSampler","getUniformLocation","projectionVector","offsetVector","dimensions","aVertexPosition","getAttribLocation","aTextureCoord","colorAttribute","key","uniforms","uniformLocation","initUniforms","uniform","type","_init","initSampler2D","glMatrix","glValueLength","glFunc","uniformMatrix2fv","uniformMatrix3fv","uniformMatrix4fv","activeTexture","bindTexture","TEXTURE_2D","_glTextures","id","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","transpose","z","w","_dirty","instances","updateTexture","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","toArray","uniform1f","uniform2f","uniform3fv","bindBuffer","ARRAY_BUFFER","buffer","vertexAttribPointer","FLOAT","ELEMENT_ARRAY_BUFFER","indexBuffer","TRIANGLE_STRIP","lastIndex","clearDirty","graphicsData","reset","graphicsDataPool","Graphics","POLY","points","shape","slice","closed","fill","switchMode","canDrawUsingSimple","buildPoly","buildComplexPoly","lineWidth","buildLine","RECT","buildRectangle","CIRC","ELIP","buildCircle","RREC","buildRoundedRectangle","upload","pop","WebGLGraphicsData","rectData","fillColor","fillAlpha","r","g","verts","vertPos","tempPoints","rrectData","radius","recPoints","concat","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","a1","b1","c1","a2","b2","c2","denom","pdist","dist","indexCount","indexStart","lineColor","lineAlpha","abs","createBuffer","glPoints","bufferData","STATIC_DRAW","glIndicies","glContexts","WebGLRenderer","options","defaultRenderer","_contextOptions","premultipliedAlpha","stencil","WebGLShaderManager","WebGLSpriteBatch","WebGLMaskManager","WebGLFilterManager","WebGLStencilManager","blendModeManager","WebGLBlendModeManager","drawCount","initContext","mapBlendModes","glContextId","disable","DEPTH_TEST","CULL_FACE","enable","BLEND","contextLost","__stage","viewport","bindFramebuffer","FRAMEBUFFER","clearColor","clear","COLOR_BUFFER_BIT","renderDisplayObject","displayObject","setBlendMode","style","createTexture","UNPACK_PREMULTIPLY_ALPHA_WEBGL","NEAREST","mipmap","LINEAR_MIPMAP_LINEAR","NEAREST_MIPMAP_NEAREST","generateMipmap","_powerOf2","blendModesWebGL","ONE","ONE_MINUS_SRC_ALPHA","ADD","SRC_ALPHA","DST_ALPHA","MULTIPLY","DST_COLOR","SCREEN","OVERLAY","DARKEN","LIGHTEN","COLOR_DODGE","COLOR_BURN","HARD_LIGHT","SOFT_LIGHT","DIFFERENCE","EXCLUSION","HUE","SATURATION","COLOR","LUMINOSITY","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","size","numVerts","numIndices","vertices","positions","colors","lastIndexCount","drawing","currentBatchSize","currentBaseTexture","textures","shaders","sprites","AbstractFilter","vertexBuffer","DYNAMIC_DRAW","sprite","uvs","_uvs","aX","aY","x0","y0","renderTilingSprite","tilingTexture","TextureUvs","h","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","DEFAULT","framebufferTexture2D","COLOR_ATTACHMENT0","renderBuffer","createRenderbuffer","bindRenderbuffer","RENDERBUFFER","framebufferRenderbuffer","DEPTH_STENCIL_ATTACHMENT","renderbufferStorage","DEPTH_STENCIL","deleteFramebuffer","deleteTexture","CanvasBuffer","clearRect","CanvasMaskManager","save","cacheAlpha","CanvasGraphics","renderGraphicsMask","clip","restore","tintMethod","tintWithMultiply","fillStyle","fillRect","tintWithPerPixel","rgbValues","pixelData","pixels","canHandleAlpha","putImageData","checkInverseAlpha","s1","s2","canUseMultiply","CanvasRenderer","refresh","navigator","isCocoonJS","screencanvas","removeView","updateGraphicsTint","_fillTint","_lineTint","beginPath","moveTo","lineTo","closePath","strokeStyle","stroke","strokeRect","arc","kappa","ox","oy","xe","ye","xm","ym","bezierCurveTo","rx","ry","maxRadius","min","quadraticCurveTo","len","rect","tintR","tintG","tintB","BaseTextureCache","BaseTextureCacheIdGenerator","BaseTexture","complete","naturalWidth","naturalHeight","imageUrl","forceLoaded","_pixiId","unloadFromGPU","updateSourceImage","newSrc","glTexture","image","crossOrigin","fromCanvas","TextureCacheIdGenerator","FrameCache","TextureSilentFail","noFrame","isTiling","requiresUpdate","setFrame","onBaseTextureLoaded","destroyBase","_updateUvs","tw","th","addTextureToCache","removeTextureFromCache","textureBuffer","renderWebGL","renderCanvas","tempMatrix","Phaser","updateBase","identity","translate","append","realResolution","getImage","getBase64","getCanvas","toDataURL","webGLPixels","Uint8Array","readPixels","tempCanvas","canvasData","exports","module","define","amd","WheelEventProxy","scaleFactor","deltaMode","_scaleFactor","_deltaMode","originalEvent","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","CIRCLE","RECTANGLE","LINE","MATRIX","POINT","ROUNDEDRECTANGLE","CREATURE","VIDEO","trunc","ceil","floor","Function","bind","thisArg","bound","args","boundArgs","arguments","TypeError","F","proto","arg","forEach","fun","t","CheapArray","assert","warn","Utils","getProperty","obj","prop","parts","split","last","l","current","setProperty","chanceRoll","chance","random","randomChoice","choice1","choice2","parseDimension","dimension","f","parseInt","innerWidth","innerHeight","pad","str","dir","padlen","right","left","isPlainObject","nodeType","hasOwnProperty","e","extend","name","copy","copyIsArray","clone","deep","mixinPrototype","mixin","replace","mixinKeys","keys","to","o","childNodes","cloneNode","Circle","diameter","_diameter","_radius","circumference","out","setTo","copyFrom","copyTo","dest","distance","round","output","contains","circumferencePoint","angle","asDegrees","offsetPoint","point","top","bottom","equals","intersects","degToRad","intersectsRectangle","halfWidth","xDist","halfHeight","yDist","xCornerDist","yCornerDist","xCornerDistSq","yCornerDistSq","maxCornerDistSq","Ellipse","normx","normy","Line","fromSprite","startSprite","endSprite","useCenter","center","fromAngle","rotate","line","asSegment","intersectsPoints","reflect","pointOnLine","pointOnSegment","xMin","xMax","max","yMin","yMax","coordinatesOnLine","stepRate","results","sx","sy","err","e2","wrap","uc","ua","ub","normalAngle","fromArray","array","pos","newPos","tx1","d1","invert","add","subtract","multiply","divide","clampX","clamp","clampY","radToDeg","getMagnitude","getMagnitudeSq","setMagnitude","magnitude","normalize","isZero","m","dot","cross","perp","rperp","normalRightHand","negative","multiplyAdd","s","interpolate","project","amt","projectUnit","centroid","pointslength","parse","xProp","yProp","Polygon","area","_points","toNumberArray","flatten","inside","ix","iy","jx","jy","Number","MAX_VALUE","calculateArea","p1","p2","avgHeight","centerOn","centerX","centerY","floorAll","ceilAll","inflate","containsRect","intersection","intersectsRaw","tolerance","union","randomX","randomY","empty","inflatePoint","containsRaw","rw","rh","containsPoint","volume","sameDimensions","aabb","MIN_VALUE","RoundedRectangle","Camera","deadzone","roundPx","atLimit","totalInView","_targetPosition","_edge","_position","FOLLOW_LOCKON","FOLLOW_PLATFORMER","FOLLOW_TOPDOWN","FOLLOW_TOPDOWN_TIGHT","follow","helper","unfollow","focusOn","setPosition","focusOnXY","update","updateTarget","checkBounds","setBoundsToWorld","setSize","Create","bmd","make","bitmapData","ctx","palettes",1,2,3,4,5,6,7,8,9,"A","B","C","D","E","PALETTE_ARNE","PALETTE_JMP","PALETTE_CGA","PALETTE_C64","PALETTE_JAPANESE_MACHINE","pixelWidth","pixelHeight","palette","row","grid","cellWidth","cellHeight","State","camera","cache","input","load","math","sound","time","tweens","particles","physics","rnd","preload","loadUpdate","loadRender","preRender","paused","resumed","pauseUpdate","shutdown","StateManager","pendingState","states","_pendingState","_clearWorld","_clearCache","_created","_args","onStateChange","Signal","onInitCallback","onPreloadCallback","onCreateCallback","onUpdateCallback","onRenderCallback","onResizeCallback","onPreRenderCallback","onLoadUpdateCallback","onLoadRenderCallback","onPausedCallback","onResumedCallback","onPauseUpdateCallback","onShutDownCallback","boot","onPause","pause","onResume","resume","state","autoStart","newState","isBooted","remove","callbackContext","clearWorld","clearCache","checkState","restart","dummy","previousStateKey","clearCurrentState","setCurrentState","dispatch","totalQueuedFiles","totalQueuedPacks","loadComplete","removeAll","debug","link","unlink","_kickstart","getCurrentState","elapsedTime","renderType","_bindings","_prevParams","memorize","_shouldPropagate","active","_boundDispatch","validateListener","listener","fnName","_registerListener","isOnce","listenerContext","priority","binding","prevIndex","_indexOfListener","SignalBinding","_addBinding","execute","_priority","cur","_listener","has","addOnce","_destroy","getNumListeners","halt","bindings","paramsArr","forget","dispose","_this","signal","_isOnce","_signal","callCount","params","handlerReturn","detach","isBound","getListener","getSignal","Filter","prevPoint","Date","mouse","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","exists","currentRenderOrderID","_hiddenVar","_onChange","_backgroundColor","config","parseConfig","DOM","getOffset","Canvas","setUserSelect","setTouchAction","checkVisibility","webkitHidden","mozHidden","msHidden","hidden","event","visibilityChange","addEventListener","onblur","onfocus","onpagehide","onpageshow","device","cocoonJSApp","CocoonJS","App","onSuspended","onActivated","focusLoss","focusGain","gamePaused","gameResumed","Color","valueToColor","getColor","RGBtoString","removeEventListener","Group","addToStage","enableBody","physicsBodyType","Physics","ARCADE","physicsType","alive","ignoreDestroy","pendingDestroy","classType","cursor","enableBodyDebug","physicsSortDirection","onDestroy","cursorIndex","fixedToCamera","cameraOffset","hash","_sortProperty","RETURN_NONE","RETURN_TOTAL","RETURN_CHILD","SORT_ASCENDING","SORT_DESCENDING","silent","body","addToHash","events","onAddedToGroup$dispatch","removeFromHash","addMultiple","moveAll","addAt","updateZ","getAt","createMultiple","quantity","resetCursor","next","previous","swap","child1","bringToTop","getIndex","sendToBack","moveUp","moveDown","xy","oldChild","newChild","hasProperty","operation","force","checkProperty","checkAlive","checkVisible","setAll","setAllChildren","checkAll","addAll","property","amount","subAll","multiplyAll","divideAll","callAllExists","callback","existsValue","callbackFromArray","callAll","method","methodLength","contextLength","renderOrderID","predicate","checkExists","ArraySet","forEachExists","iterate","forEachAlive","forEachDead","sort","order","ascendingSortHandler","descendingSortHandler","customSort","sortHandler","returnType","total","getFirstExists","getFirstAlive","getFirstDead","getTop","getBottom","countLiving","countDead","getRandom","ArrayUtils","getRandomItem","destroyPhase","onRemovedFromGroup$dispatch","group","removeBetween","destroyChildren","soft","World","_definedSize","stateChange","setBounds","useBounds","horizontal","vertical","between","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","text","geom","uuid","topLeft","topMiddle","topRight","bottomLeft","bottomMiddle","bottomRight","ScaleManager","dom","minWidth","maxWidth","minHeight","maxHeight","forceLandscape","forcePortrait","incorrectOrientation","_pageAlignHorizontally","_pageAlignVertically","onOrientationChange","enterIncorrectOrientation","leaveIncorrectOrientation","fullScreenTarget","_createdFullScreenTarget","onFullScreenInit","onFullScreenChange","onFullScreenError","screenOrientation","getScreenOrientation","scaleFactorInversed","margin","aspectRatio","sourceAspectRatio","windowConstraints","compatibility","supportsFullScreen","orientationFallback","noMargins","scrollTo","forceMinimumDocumentHeight","canExpandParent","clickTrampoline","_scaleMode","NO_SCALE","_fullScreenScaleMode","parentIsWindow","parentNode","parentScaleFactor","trackParentInterval","onSizeChange","onResizeContext","_pendingScaleMode","_fullScreenRestore","_gameSize","_userScaleFactor","_userScaleTrim","_lastUpdate","_updateThrottle","_updateThrottleReset","_parentBounds","_tempBounds","_lastReportedCanvasSize","_lastReportedGameSize","_booted","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","visualBounds","newWidth","newHeight","updateDimensions","queueUpdate","currentScaleMode","setUserScale","hScale","vScale","hTrim","vTrim","setResizeCallback","signalSizeChange","setMinMax","prevThrottle","prevWidth","prevHeight","boundsChanged","orientationChanged","updateOrientationState","updateLayout","throttle","updateScalingAndBounds","forceOrientation","classifyOrientation","orientation","previousOrientation","previouslyIncorrect","isLandscape","isPortrait","changed","correctnessChanged","scrollTop","reflowGame","documentElement","setMaximum","setExactFit","isFullScreen","boundingParent","setShowAll","resetCanvas","reflowCanvas","layoutBounds","clientRect","getBoundingClientRect","wc","windowBounds","alignCanvas","parentBounds","canvasBounds","currentEdge","targetEdge","marginLeft","marginRight","marginTop","marginBottom","pageAlignHorizontally","pageAlignVertically","cssWidth","cssHeight","expanding","createFullScreenTarget","fsTarget","background","startFullScreen","allowTrampoline","setTimeout","activePointer","mousePointer","addClickTrampoline","smoothed","cleanupCreatedTarget","initData","targetElement","insertBefore","appendChild","fullscreenKeyboard","requestFullscreen","Element","ALLOW_KEYBOARD_INPUT","stopFullScreen","cancelFullscreen","prepScreenMode","enteringFullscreen","createdTarget","targetWidth","targetHeight","enterFullScreen","leaveFullScreen","letterBox","scaleX1","scaleY1","scaleX2","scaleY2","scaleOnWidth","Game","physicsConfig","isRunning","raf","net","Device","lockRender","stepping","pendingStep","stepCount","onBlur","onFocus","_paused","_codePaused","currentUpdateID","updatesThisFrame","_deltaTime","_lastCount","_spiraling","fpsProblemNotifier","forceSingleUpdate","_nextFpsNotification","enableDebug","RandomDataGenerator","now","whenReady","seed","setUpRenderer","GameObjectFactory","GameObjectCreator","Cache","Loader","Time","TweenManager","Input","SoundManager","Particles","Net","Debug","showDebugHeader","RequestAnimationFrame","stopFocus","focus","hideBanner","webAudio","contextRestored","addToDOM","preventDefault","clearGLTextures","updateLogic","desiredFps","updateRender","slowMotion","slowStep","elapsed","timeStep","enableStep","disableStep","step","removeFromDOM","setMute","cordova","iOS","unsetMute","hitCanvas","hitContext","moveCallbacks","pollRate","enabled","multiInputOverride","MOUSE_TOUCH_COMBINE","speed","circle","maxPointers","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","Touch","MSPointer","Keyboard","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","mouseDownCallback","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","BACK_BUTTON","FORWARD_BUTTON","WHEEL_UP","WHEEL_DOWN","onMouseDown","onMouseMove","onMouseUp","_onMouseUpGlobal","onMouseUpGlobal","onMouseOut","onMouseOver","onMouseWheel","wheelEvent","mouseMoveCallback","withinGame","bindEvent","deltaY","requestPointerLock","element","mozRequestPointerLock","webkitRequestPointerLock","_pointerLockChange","pointerLockChange","pointerLockElement","mozPointerLockElement","webkitPointerLockElement","releasePointerLock","exitPointerLock","mozExitPointerLock","webkitExitPointerLock","_stubsGenerated","makeBinder","defineProperties","detail","deltaX","wheelDeltaX","deltaZ","pointerDownCallback","pointerMoveCallback","pointerUpCallback","_onMSPointerDown","_onMSPointerMove","_onMSPointerUp","onPointerDown","onPointerMove","onPointerUp","pointerType","DeviceButton","buttonCode","isDown","isUp","timeDown","duration","timeUp","repeats","altKey","shiftKey","ctrlKey","onFloat","padFloat","justPressed","justReleased","leftButton","middleButton","rightButton","backButton","forwardButton","eraserButton","ERASER_BUTTON","_holdSent","_history","_nextDrop","_stateReset","clientX","clientY","pageX","pageY","screenX","screenY","rawMovementX","rawMovementY","movementX","movementY","isMouse","previousTapTime","totalTouches","msSinceLastClick","targetObject","positionDown","positionUp","_clickTrampolines","_trampolineTargetObject","resetButtons","updateButtons","buttons","totalActivePointers","_touchedHandler","processInteractiveObjects","shift","fromClick","pollLocked","mozMovementX","webkitMovementX","mozMovementY","webkitMovementY","isDragged","highestRenderOrderID","highestInputPriorityID","candidateTarget","currentNode","first","checked","validForInput","checkPointerDown","checkPointerOver","priorityID","_pointerOutHandler","_pointerOverHandler","leave","currentPointers","callbackArgs","trampolines","trampoline","_releasedHandler","resetMovement","touchLockCallbacks","touchStartCallback","touchMoveCallback","touchEndCallback","touchEnterCallback","touchLeaveCallback","touchCancelCallback","_onTouchStart","_onTouchMove","_onTouchEnd","_onTouchEnter","_onTouchLeave","_onTouchCancel","onTouchStart","onTouchMove","onTouchEnd","onTouchEnter","onTouchLeave","onTouchCancel","consumeDocumentTouches","_documentTouchMove","addTouchLockCallback","removeTouchLockCallback","changedTouches","InputHandler","useHandCursor","_setHandCursor","allowHorizontalDrag","allowVerticalDrag","snapOffset","snapOnDrag","snapOnRelease","snapX","snapY","snapOffsetX","snapOffsetY","pixelPerfectOver","pixelPerfectClick","pixelPerfectAlpha","draggable","boundsRect","boundsSprite","consumePointerEvent","scaleLayer","dragOffset","dragFromCenter","dragStartPoint","snapPoint","_dragPoint","_dragPhase","_wasEnabled","_tempPoint","_pointerData","isOver","isOut","timeOver","timeOut","downDuration","onAddedToGroup","addedToGroup","onRemovedFromGroup","removedFromGroup","flagged","highestID","highestRenderID","includePixelPerfect","isPixelPerfect","pointerX","pointerY","pointerDown","pointerUp","pointerTimeDown","pointerTimeUp","pointerOver","pointerOut","pointerTimeOver","pointerTimeOut","pointerDragged","fastTest","checkPixel","_dx","_dy","_draggedPointerID","updateDrag","onInputOver$dispatch","onInputOut$dispatch","onInputDown$dispatch","startDrag","onInputUp$dispatch","stopDrag","globalToLocalX","globalToLocalY","checkBoundsRect","checkBoundsSprite","onDragUpdate","justOver","delay","overDuration","justOut","enableDrag","lockCenter","pixelPerfect","alphaThreshold","disableDrag","onDragStart$dispatch","onDragStop$dispatch","setDragLock","allowHorizontal","allowVertical","enableSnap","onDrag","onRelease","disableSnap","Component","Angle","wrapAngle","Animation","play","frameRate","loop","killOnComplete","animations","AutoCull","autoCull","inCamera","checkWorldBounds","Bounds","BringToTop","Core","install","components","previousPosition","Events","PhysicsBody","AnimationManager","LoadTexture","loadTexture","FixedToCamera","previousRotation","fresh","_exists","P2JS","removeFromWorld","customRender","Crop","cropRect","_crop","updateCrop","resetFrame","_frame","Delta","Destroy","onDestroy$dispatch","Video","onChangeSource","resizeFrame","BitmapText","_glyphs","_parent","_onDestroy","_onAddedToGroup","_onRemovedFromGroup","_onRemovedFromWorld","_onKilled","_onRevived","_onEnterBounds","_onOutOfBounds","_onInputOver","_onInputOut","_onInputDown","_onInputUp","_onDragStart","_onDragUpdate","_onDragStop","_onAnimationStart","_onAnimationComplete","_onAnimationLoop","onRemovedFromWorld","onKilled","onRevived","onOutOfBounds","onEnterBounds","onInputOver","onInputOut","onInputDown","onInputUp","onDragStart","onDragStop","onAnimationStart","onAnimationComplete","onAnimationLoop","backing","_fixedToCamera","Health","health","maxHealth","damage","kill","heal","InCamera","InputEnabled","inputEnabled","InWorld","_outOfBoundsFired","onEnterBounds$dispatch","onOutOfBounds$dispatch","outOfBoundsKill","inWorld","LifeSpan","lifespan","physicsElapsedMS","revive","onRevived$dispatch","onKilled$dispatch","stopAnimation","BitmapData","hasFrameData","loadFrameData","getFrameData","img","base","frameData","trimmed","spriteSourceSizeX","spriteSourceSizeY","sourceSizeW","sourceSizeH","refreshTexture","frameName","Overlap","overlap","_reset","Reset","ScaleMinMax","checkTransform","scaleMin","scaleMax","setScaleMinMax","Smoothed","existing","object","tween","physicsGroup","audio","connect","audioSprite","addSprite","tileSprite","rope","Rope","Text","overFrame","outFrame","downFrame","upFrame","Button","emitter","maxParticles","Arcade","Emitter","retroFont","font","characterWidth","characterHeight","chars","charsPerRow","xSpacing","ySpacing","xOffset","yOffset","RetroFont","bitmapText","tilemap","tileWidth","tileHeight","Tilemap","addToCache","addRenderTexture","video","url","addBitmapData","Tween","align","preUpdatePhysics","preUpdateLifeSpan","preUpdateInWorld","preUpdateCore","_scroll","def","TilingSprite","physicsElapsed","autoScroll","stopScroll","_hasUpdateAnimation","_updateAnimationCallback","updateAnimation","_updateAnimation","segments","difference","_onOverFrame","_onOutFrame","_onDownFrame","_onUpFrame","onOverSound","onOutSound","onDownSound","onUpSound","onOverSoundMarker","onOutSoundMarker","onDownSoundMarker","onUpSoundMarker","onOverMouseOnly","freezeFrames","forceOut","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","Particle","autoScale","scaleData","_s","autoAlpha","alphaData","_a","onEmit","setAlphaData","setScaleData","deviceReadyAt","initialized","node","nodeWebkit","electron","ejecta","crosswalk","chromeOS","linux","macOS","windows","windowsPhone","canvasBitBltShift","file","fileSystem","localStorage","worker","css3D","typedArray","vibration","getUserMedia","quirksMode","arora","chromeVersion","epiphany","firefox","firefoxVersion","ie","ieVersion","trident","tridentVersion","mobileSafari","midori","opera","safari","silk","audioData","ogg","opus","mp3","wav","m4a","webm","oggVideo","h264Video","mp4Video","webmVideo","vp9Video","hlsVideo","iPhone","iPhone4","pixelRatio","littleEndian","LITTLE_ENDIAN","support32bit","onInitialized","nonPrimer","readyCheck","_readyCheck","_monitor","_queue","readyState","_initialize","_checkOS","userAgent","test","vita","kindle","_checkFeatures","getItem","error","WebGLRenderingContext","compatMode","webkitGetUserMedia","mozGetUserMedia","msGetUserMedia","oGetUserMedia","URL","webkitURL","mozURL","msURL","_checkInput","maxTouchPoints","msPointerEnabled","pointerEnabled","_checkFullScreenSupport","fs","cfs","_checkBrowser","RegExp","$1","$3","process","require","versions","_checkVideo","videoElement","canPlayType","_checkAudio","audioElement","_checkDevice","toLowerCase","Int8Array","_checkIsLittleEndian","Uint8ClampedArray","Int32Array","_checkIsUint8ClampedImageData","vibrate","webkitVibrate","mozVibrate","msVibrate","elem","createImageData","_checkCSS3D","has3d","el","transforms","webkitTransform","OTransform","msTransform","MozTransform","getComputedStyle","getPropertyValue","canPlayAudio","canPlayVideo","isConsoleOpen","profile","profileEnd","isAndroidStockBrowser","matches","match","box","scrollY","scrollLeft","scrollX","clientTop","clientLeft","cushion","calibrate","coords","getAspectRatio","inLayoutViewport","primaryFallback","screen","mozOrientation","msOrientation","PORTRAIT","LANDSCAPE","matchMedia","documentBounds","pageXOffset","pageYOffset","treatAsDesktop","clientWidth","clientHeight","offsetWidth","scrollWidth","offsetHeight","scrollHeight","display","msTouchAction","overflowHidden","overflow","translateX","translateY","skewX","skewY","setSmoothingEnabled","vendor","prefix","getSmoothingEnabled","setImageRenderingCrisp","msInterpolationMode","setImageRenderingBicubic","forceSetTimeOut","vendors","requestAnimationFrame","cancelAnimationFrame","_isSetTimeOut","_onLoop","_timeOutID","updateSetTimeout","updateRAF","rafTime","timeToCall","clearTimeout","isSetTimeOut","isRAF","PI2","fuzzyEqual","epsilon","fuzzyLessThan","fuzzyGreaterThan","fuzzyCeil","val","fuzzyFloor","average","sum","shear","snapTo","gap","snapToFloor","snapToCeil","roundTo","place","pow","floorTo","ceilTo","angleBetween","angleBetweenY","angleBetweenPoints","point1","point2","angleBetweenPointsY","reverseAngle","angleRad","normalizeAngle","maxAdd","minSub","wrapValue","isOdd","isEven","minProperty","maxProperty","radians","linearInterpolation","k","linear","bezierInterpolation","bernstein","catmullRomInterpolation","catmullRom","p0","factorial","res","p3","v0","v1","t2","t3","roundAwayFromZero","sinCosGenerator","sinAmplitude","cosAmplitude","frequency","frq","cosTable","sinTable","distanceSq","distancePow","clampBottom","within","mapLinear","smoothstep","smootherstep","percent","degreeToRadiansFactor","radianToDegreesFactor","degrees","seeds","s0","sow","charCodeAt","integer","frac","real","integerInRange","realInRange","normal","pick","ary","weightedPick","timestamp","QuadTree","maxObjects","maxLevels","objects","nodes","_empty","subWidth","subHeight","populate","populateHandler","insert","retrieve","returnObjects","netNoop","isDisabled","getHostName","checkDomainName","updateQueryString","getQueryString","decodeURI","prevTime","elapsedMS","suggestedFps","advancedTiming","frames","fps","fpsMin","fpsMax","msMin","msMax","pauseDuration","timeExpected","Timer","_frameCount","_elapsedAccumulator","_started","_timeLastSecond","_pauseStarted","_justResumed","_timers","timer","autoDestroy","updateAdvancedTiming","updateTimers","previousDateNow","timeCallExpected","_pause","_resume","elapsedSince","since","elapsedSecondsSince","running","expired","onComplete","nextTick","timeCap","_pauseTotal","_now","_marked","_diff","_newTick","MINUTE","SECOND","HALF","QUARTER","repeatCount","tick","TimerEvent","clearEvents","pendingDelete","clearPendingEvents","adjustEvents","baseTime","ms","currentFrame","currentAnim","updateIfVisible","isLoaded","_frameData","_anims","_outputFrames","anim","updateFrameData","copyFrameData","useNumericIndex","getFrameIndexes","validateFrames","checkFrameName","isPlaying","getAnimation","refreshFrame","isPaused","getFrame","getFrameByName","_frameIndex","_frames","loopCount","isFinished","_pauseStartTime","_frameDiff","_frameSkip","onStart","onUpdate","onLoop","_timeLastFrame","_timeNextFrame","updateCurrentFrame","onAnimationStart$dispatch","useLocalFrameIndex","frameIndex","dispatchComplete","onAnimationComplete$dispatch","onAnimationLoop$dispatch","signalUpdate","fromPlay","idx","generateFrameNames","suffix","zeroPad","Frame","rotated","rotationDirection","spriteSourceSizeW","spriteSourceSizeH","setTrim","actualWidth","actualHeight","destX","destY","destWidth","destHeight","getRect","FrameData","_frameNames","addFrame","getFrameRange","getFrames","AnimationParser","spriteSheet","frameWidth","frameHeight","frameMax","spacing","column","JSONData","json","newFrame","filename","sourceSize","spriteSourceSize","JSONDataHash","XMLData","xml","getElementsByTagName","frameX","frameY","autoResolveURL","_cache","binary","bitmapFont","_urlMap","_urlResolver","_urlTemp","onSoundUnlock","_cacheMap","TEXTURE","SOUND","PHYSICS","BINARY","BITMAPFONT","JSON","XML","SHADER","RENDER_TEXTURE","addDefaultImage","addMissingImage","addCanvas","addImage","checkImageKey","removeImage","_resolveURL","addSound","audioTag","decoded","isDecoding","touchLocked","addText","addPhysicsData","addTilemap","mapData","addBinary","binaryData","textureFrame","addBitmapFont","atlasData","atlasType","LoaderParser","jsonBitmapFont","xmlBitmapFont","addJSON","addXML","addVideo","isBlob","addShader","addSpriteSheet","addTextureAtlas","TEXTURE_ATLAS_XML_STARLING","reloadSound","getSound","reloadSoundComplete","updateSound","decodedSound","isSoundDecoded","isSoundReady","checkKey","checkURL","checkCanvasKey","checkTextureKey","checkSoundKey","checkTextKey","checkPhysicsKey","checkTilemapKey","checkBinaryKey","checkBitmapDataKey","checkBitmapFontKey","checkJSONKey","checkXMLKey","checkVideoKey","checkShaderKey","checkRenderTextureKey","full","getTextureFrame","getSoundData","getText","getPhysicsData","fixtureKey","fixtures","fixture","getTilemapData","getBinary","getBitmapData","getBitmapFont","getJSON","getXML","getVideo","getShader","getRenderTexture","getBaseTexture","getFrameCount","getFrameByIndex","getPixiTexture","getPixiBaseTexture","getURL","getKeys","removeCanvas","removeFromPixi","removeSound","removeText","removePhysics","removeTilemap","removeBinary","removeBitmapData","removeBitmapFont","removeJSON","removeXML","removeVideo","removeShader","removeRenderTexture","removeSpriteSheet","removeTextureAtlas","atlas","baseURL","isLoading","preloadSprite","path","onLoadStart","onLoadComplete","onPackComplete","onFileStart","onFileComplete","onFileError","useXDomainRequest","_warnedAboutXDomainRequest","enableParallel","maxParallelDownloads","_withSyncPointDepth","_fileList","_flightQueue","_processingHead","_fileLoadStarted","_totalPackCount","_totalFileCount","_loadedPackCount","_loadedFileCount","TEXTURE_ATLAS_JSON_ARRAY","TEXTURE_ATLAS_JSON_HASH","PHYSICS_LIME_CORONA_JSON","PHYSICS_PHASER_JSON","setPreloadSprite","direction","checkKeyExists","getAssetIndex","bestFound","loaded","loading","getAsset","fileIndex","addToFileList","properties","overwrite","extension","syncPoint","currentFile","replaceInFileList","pack","script","spritesheet","urls","autoDecode","noAudio","audiosprite","jsonURL","jsonData","loadEvent","asBlob","CSV","TILED_JSON","LIME_CORONA_JSON","textureURL","atlasURL","parseXml","atlasJSONArray","atlasJSONHash","atlasXML","withSyncPoint","addSyncPoint","asset","removeFile","updateProgress","processLoadQueue","finishedLoading","requestUrl","requestObject","progress","syncblock","inflightLimit","processPack","loadFile","abnormal","asyncComplete","errorMessage","packData","transformUrl","xhrLoad","fileComplete","loadImageTag","getAudioURL","usingWebAudio","usingAudioTag","loadAudioTag","fileError","getVideoURL","loadVideoTag","jsonLoadComplete","xmlLoadComplete","csvLoadComplete","onload","onerror","controls","autoplay","videoLoadEvent","canplay","Audio","playThroughEvent","XDomainRequest","xhrLoadWithXDR","xhr","XMLHttpRequest","open","responseType","message","send","timeout","ontimeout","onprogress","videoType","uri","lastIndexOf","audioType","reason","status","loadNext","responseText","Blob","response","decode","language","defer","head","contentType","domparser","DOMParser","parseFromString","ActiveXObject","async","loadXML","totalLoadedFiles","totalLoadedPacks","progressFloat","info","common","getAttribute","lineHeight","letters","charCode","xAdvance","kerning","kernings","second","finalizeBitmapFont","_face","_size","_lineHeight","letter","_id","_xoffset","_yoffset","_xadvance","_second","_first","_amount","bitmapFontData","debugNoop","soundInfo","cameraInfo","spriteInputInfo","inputInfo","spriteBounds","ropeSegments","spriteInfo","spriteCoords","lineInfo","pixel","rectangle","quadTree","bodyInfo","box2dWorld","box2dBody","list","getByKey","randomIndex","removeRandomItem","shuffle","transposeMatrix","sourceRowCount","sourceColCount","rotateMatrix","findClosest","arr","NaN","low","high","POSITIVE_INFINITY","numberArray","numberArrayStep","packPixel","unpackPixel","rgba","hsl","hsv","createColor","RGBtoHSL","RGBtoHSV","fromRGBA","toRGBA","HSLtoRGB","q","hueToColor","updateColor","HSVtoRGB","color32","getColor32","componentToHex","hexToRGB","hexToColor","exec","webToColor","web","parseFloat","tempColor","getRGB","HSVColorWheel","HSLColorWheel","interpolateColor","color1","color2","steps","currentStep","src1","src2","red","green","blue","interpolateColorWithRGB","or","og","ob","interpolateRGB","r1","g1","r2","g2","getRandomColor","getWebRGB","getAlpha","getAlphaFloat","getRed","getGreen","getBlue","blendNormal","blendLighten","blendDarken","blendMultiply","blendAverage","blendAdd","blendSubtract","blendDifference","blendNegation","blendScreen","blendExclusion","blendOverlay","blendSoftLight","blendHardLight","blendColorDodge","blendColorBurn","blendLinearDodge","blendLinearBurn","blendLinearLight","blendVividLight","blendPinLight","blendHardMix","blendReflect","blendGlow","blendPhoenix","LinkedList","prev","entity","arcade","ninja","box2d","chipmunk","matter","NINJA","BOX2D","CHIPMUNK","MATTERJS","Ninja","P2","Matter","startSystem","system","Box2D","enableAABB","emitters","ID"],"mappings":";;AAkCA,GAAIA,MAAO,WAEP,GAAIC,GAAOC,KAoBXF,EAAOA,KA+4RP,OAx4RJA,GAAKG,eAAiB,EAOtBH,EAAKI,gBAAkB,EAOvBJ,EAAKK,QAAU,SAGfL,EAAKM,KAAO,EAEgB,mBAAlB,eAENN,EAAKO,aAAeA,aACpBP,EAAKQ,YAAcA,YAOnBR,EAAKS,YAAcA,YACnBT,EAAKU,YAAcA,cAInBV,EAAKO,aAAeI,MACpBX,EAAKQ,YAAcG,OAOvBX,EAAKY,KAAiB,EAAVC,KAAKC,GAMjBd,EAAKe,WAAa,IAAMF,KAAKC,GAM7Bd,EAAKgB,WAAaH,KAAKC,GAAK,IAO5Bd,EAAKiB,cAAgB,MAgBrBjB,EAAKkB,sBACDC,KAAM,KACNC,aAAa,EACbC,WAAW,EACXC,uBAAuB,EACvBC,WAAY,EACZC,mBAAmB,EACnBC,YAAY,GAchBzB,EAAK0B,cAAgB,WAQjBxB,KAAKyB,SAAW,GAAI3B,GAAK4B,MAAM,EAAG,GAQlC1B,KAAK2B,MAAQ,GAAI7B,GAAK4B,MAAM,EAAG,GAW/B1B,KAAK4B,kBAAoB,KAQzB5B,KAAK6B,yBAA2B,KAQhC7B,KAAK8B,MAAQ,GAAIhC,GAAK4B,MAAM,EAAG,GAQ/B1B,KAAK+B,SAAW,EAQhB/B,KAAKgC,MAAQ,EAQbhC,KAAKiC,SAAU,EASfjC,KAAKkC,QAAU,KAQflC,KAAKmC,YAAa,EASlBnC,KAAKoC,OAAS,KASdpC,KAAKqC,MAAQ,KASbrC,KAAKsC,WAAa,EAUlBtC,KAAKuC,eAAiB,GAAIzC,GAAK0C,OAU/BxC,KAAKyC,cAAgB,GAAI3C,GAAK4B,MAAM,EAAG,GAUvC1B,KAAK0C,WAAa,GAAI5C,GAAK4B,MAAM,EAAG,GAUpC1B,KAAK2C,cAAgB,EASrB3C,KAAK4C,IAAM,EASX5C,KAAK6C,IAAM,EASX7C,KAAK8C,WAAa,KASlB9C,KAAK+C,QAAU,GAAIjD,GAAKkD,UAAU,EAAG,EAAG,EAAG,GAS3ChD,KAAKiD,eAAiB,KAStBjD,KAAKkD,MAAQ,KASblD,KAAKmD,gBAAiB,EAStBnD,KAAKoD,eAAgB,GAKzBtD,EAAK0B,cAAc6B,UAAUC,YAAcxD,EAAK0B,cAQhD1B,EAAK0B,cAAc6B,UAAUE,QAAU,WAEnC,GAAIvD,KAAKwD,SACT,CAGI,IAFA,GAAIC,GAAIzD,KAAKwD,SAASE,OAEfD,KAEHzD,KAAKwD,SAASC,GAAGF,SAGrBvD,MAAKwD,YAGTxD,KAAK4B,kBAAoB,KACzB5B,KAAK6B,yBAA2B,KAChC7B,KAAKkC,QAAU,KACflC,KAAKoC,OAAS,KACdpC,KAAKqC,MAAQ,KACbrC,KAAKuC,eAAiB,KACtBvC,KAAK8C,WAAa,KAClB9C,KAAK+C,QAAU,KACf/C,KAAKiD,eAAiB,KACtBjD,KAAKkD,MAAQ,KAGblD,KAAKmC,YAAa,EAElBnC,KAAK2D,wBASTC,OAAOC,eAAe/D,EAAK0B,cAAc6B,UAAW,gBAEhDS,IAAK,WAED,GAAIC,GAAO/D,IAEX,GACA,CACI,IAAK+D,EAAK9B,QAAS,OAAO,CAC1B8B,GAAOA,EAAK3B,aAEV2B,EAEN,QAAO,KAafH,OAAOC,eAAe/D,EAAK0B,cAAc6B,UAAW,QAEhDS,IAAK,WACD,MAAO9D,MAAKkD,OAGhBc,IAAK,SAASC,GAENjE,KAAKkD,QAAOlD,KAAKkD,MAAMgB,QAAS,GAEpClE,KAAKkD,MAAQe,EAETjE,KAAKkD,QAAOlD,KAAKkD,MAAMgB,QAAS,MAY5CN,OAAOC,eAAe/D,EAAK0B,cAAc6B,UAAW,WAEhDS,IAAK,WACD,MAAO9D,MAAKmE,UAGhBH,IAAK,SAASC,GAEV,GAAIA,EACJ,CAII,IAAK,GAFDG,MAEKX,EAAI,EAAGA,EAAIQ,EAAMP,OAAQD,IAI9B,IAAK,GAFDY,GAAeJ,EAAMR,GAAGW,OAEnBE,EAAI,EAAGA,EAAID,EAAaX,OAAQY,IAErCF,EAAOG,KAAKF,EAAaC,GAKjCtE,MAAKwE,cAAiBC,OAAQzE,KAAMqE,aAAcD,GAGtDpE,KAAKmE,SAAWF,KAWxBL,OAAOC,eAAe/D,EAAK0B,cAAc6B,UAAW,iBAEhDS,IAAK,WACD,MAAQ9D,MAAKmD,gBAGjBa,IAAK,SAASC,GAENjE,KAAKmD,iBAAmBc,IAExBA,EAEAjE,KAAK0E,wBAIL1E,KAAK2D,uBAGT3D,KAAKmD,eAAiBc,MAgB9BnE,EAAK0B,cAAc6B,UAAUsB,gBAAkB,SAASvC,GAEpD,GAAKA,GAAWpC,KAAKoC,QAAWpC,KAAK4E,KAArC,CAKA,GAAIC,GAAI7E,KAAKoC,MAETA,GAEAyC,EAAIzC,EAEEpC,KAAKoC,SAEXyC,EAAI7E,KAAK4E,KAAKE,MAIlB,IAIIC,GAAGC,EAAGC,EAAGC,EAAGC,EAAIC,EAJhBC,EAAKR,EAAEtC,eACP+C,EAAKtF,KAAKuC,cAMVvC,MAAK+B,SAAWjC,EAAKY,MAGjBV,KAAK+B,WAAa/B,KAAKuF,gBAEvBvF,KAAKuF,cAAgBvF,KAAK+B,SAC1B/B,KAAK4C,IAAMjC,KAAK6E,IAAIxF,KAAK+B,UACzB/B,KAAK6C,IAAMlC,KAAK8E,IAAIzF,KAAK+B,WAI7BgD,EAAM/E,KAAK6C,IAAM7C,KAAK2B,MAAM+D,EAC5BV,EAAMhF,KAAK4C,IAAM5C,KAAK2B,MAAM+D,EAC5BT,GAAMjF,KAAK4C,IAAM5C,KAAK2B,MAAMgE,EAC5BT,EAAMlF,KAAK6C,IAAM7C,KAAK2B,MAAMgE,EAC5BR,EAAMnF,KAAKyB,SAASiE,EACpBN,EAAMpF,KAAKyB,SAASkE,GAGhB3F,KAAK8B,MAAM4D,GAAK1F,KAAK8B,MAAM6D,KAE3BR,GAAMnF,KAAK8B,MAAM4D,EAAIX,EAAI/E,KAAK8B,MAAM6D,EAAIV,EACxCG,GAAMpF,KAAK8B,MAAM4D,EAAIV,EAAIhF,KAAK8B,MAAM6D,EAAIT,GAI5CI,EAAGP,EAAKA,EAAKM,EAAGN,EAAIC,EAAKK,EAAGJ,EAC5BK,EAAGN,EAAKD,EAAKM,EAAGL,EAAIA,EAAKK,EAAGH,EAC5BI,EAAGL,EAAKA,EAAKI,EAAGN,EAAIG,EAAKG,EAAGJ,EAC5BK,EAAGJ,EAAKD,EAAKI,EAAGL,EAAIE,EAAKG,EAAGH,EAC5BI,EAAGH,GAAKA,EAAKE,EAAGN,EAAIK,EAAKC,EAAGJ,EAAII,EAAGF,GACnCG,EAAGF,GAAKD,EAAKE,EAAGL,EAAII,EAAKC,EAAGH,EAAIG,EAAGD,KAKnCL,EAAK/E,KAAK2B,MAAM+D,EAChBR,EAAKlF,KAAK2B,MAAMgE,EAEhBR,EAAKnF,KAAKyB,SAASiE,EAAI1F,KAAK8B,MAAM4D,EAAIX,EACtCK,EAAKpF,KAAKyB,SAASkE,EAAI3F,KAAK8B,MAAM6D,EAAIT,EAEtCI,EAAGP,EAAKA,EAAKM,EAAGN,EAChBO,EAAGN,EAAKD,EAAKM,EAAGL,EAChBM,EAAGL,EAAKC,EAAKG,EAAGJ,EAChBK,EAAGJ,EAAKA,EAAKG,EAAGH,EAChBI,EAAGH,GAAKA,EAAKE,EAAGN,EAAIK,EAAKC,EAAGJ,EAAII,EAAGF,GACnCG,EAAGF,GAAKD,EAAKE,EAAGL,EAAII,EAAKC,EAAGH,EAAIG,EAAGD,IAIvCpF,KAAKsC,WAAatC,KAAKgC,MAAQ6C,EAAEvC,WAEjCtC,KAAKyC,cAAcuB,IAAIsB,EAAGH,GAAIG,EAAGF,IACjCpF,KAAK0C,WAAWsB,IAAIrD,KAAKiF,KAAKN,EAAGP,EAAIO,EAAGP,EAAIO,EAAGN,EAAIM,EAAGN,GAAIrE,KAAKiF,KAAKN,EAAGL,EAAIK,EAAGL,EAAIK,EAAGJ,EAAII,EAAGJ,IAC5FlF,KAAK2C,cAAgBhC,KAAKkF,OAAOP,EAAGL,EAAGK,EAAGJ,GAG1ClF,KAAKiD,eAAiB,KAGlBjD,KAAK4B,mBAEL5B,KAAK4B,kBAAkBkE,KAAK9F,KAAK6B,yBAA0ByD,EAAID,KAMvEvF,EAAK0B,cAAc6B,UAAU0C,6BAA+BjG,EAAK0B,cAAc6B,UAAUsB,gBASzF7E,EAAK0B,cAAc6B,UAAU2C,UAAY,SAASC,GAG9C,MADAA,GAASA,EACFnG,EAAKoG,gBAShBpG,EAAK0B,cAAc6B,UAAU8C,eAAiB,WAE1C,MAAOnG,MAAKgG,UAAUlG,EAAKsG,iBAS/BtG,EAAK0B,cAAc6B,UAAUgD,kBAAoB,SAAShE,GAEtDrC,KAAKqC,MAAQA,GAQjBvC,EAAK0B,cAAc6B,UAAUiD,UAAY,aAczCxG,EAAK0B,cAAc6B,UAAUkD,gBAAkB,SAASlF,EAAYmF,EAAWC,GAE3E,GAAIC,GAAS1G,KAAKmG,iBAEdQ,EAAgB,GAAI7G,GAAK8G,cAA6B,EAAfF,EAAOG,MAA2B,EAAhBH,EAAOI,OAAYL,EAAUD,EAAWnF,EAOrG,OALAvB,GAAK0B,cAAcuF,YAAY5B,IAAMuB,EAAOhB,EAC5C5F,EAAK0B,cAAcuF,YAAY3B,IAAMsB,EAAOf,EAE5CgB,EAAcK,OAAOhH,KAAMF,EAAK0B,cAAcuF,aAEvCJ,GAQX7G,EAAK0B,cAAc6B,UAAU4D,YAAc,WAEvCjH,KAAK0E,yBAUT5E,EAAK0B,cAAc6B,UAAU6D,SAAW,SAASzF,GAI7C,MADAzB,MAAK+F,+BACE/F,KAAKuC,eAAe4E,MAAM1F,IAWrC3B,EAAK0B,cAAc6B,UAAU+D,QAAU,SAAS3F,EAAU4F,GAUtD,MARIA,KAEA5F,EAAW4F,EAAKH,SAASzF,IAI7BzB,KAAK+F,+BAEE/F,KAAKuC,eAAe+E,aAAa7F,IAU5C3B,EAAK0B,cAAc6B,UAAUkE,oBAAsB,SAASC,GAExDxH,KAAKyH,cAAcnF,WAAatC,KAAKsC,WAEjCkF,EAAcE,GAEd5H,EAAK6H,OAAOtE,UAAUuE,aAAa9B,KAAK9F,KAAKyH,cAAeD,GAI5D1H,EAAK6H,OAAOtE,UAAUwE,cAAc/B,KAAK9F,KAAKyH,cAAeD,IAUrE1H,EAAK0B,cAAc6B,UAAUqB,sBAAwB,WAEjD1E,KAAKmD,gBAAiB,CAEtB,IAAIuD,GAAS1G,KAAKmG,gBAElB,IAAKnG,KAAKyH,cASNzH,KAAKyH,cAAcK,QAAQC,OAAsB,EAAfrB,EAAOG,MAA2B,EAAhBH,EAAOI,YAR/D,CACI,GAAIH,GAAgB,GAAI7G,GAAK8G,cAA6B,EAAfF,EAAOG,MAA2B,EAAhBH,EAAOI,OAEpE9G,MAAKyH,cAAgB,GAAI3H,GAAK6H,OAAOhB,GACrC3G,KAAKyH,cAAclF,eAAiBvC,KAAKuC,eAQ7C,GAAIyF,GAAchI,KAAKmE,QACvBnE,MAAKmE,SAAW,KAEhBnE,KAAKyH,cAAcQ,QAAUD,EAE7BlI,EAAK0B,cAAcuF,YAAY5B,IAAMuB,EAAOhB,EAC5C5F,EAAK0B,cAAcuF,YAAY3B,IAAMsB,EAAOf,EAE5C3F,KAAKyH,cAAcK,QAAQd,OAAOhH,KAAMF,EAAK0B,cAAcuF,aAAa,GAExE/G,KAAKyH,cAAcS,OAAOxC,IAAOgB,EAAOhB,EAAIgB,EAAOG,OACnD7G,KAAKyH,cAAcS,OAAOvC,IAAOe,EAAOf,EAAIe,EAAOI,QAEnD9G,KAAKmE,SAAW6D,EAEhBhI,KAAKmD,gBAAiB,GAS1BrD,EAAK0B,cAAc6B,UAAUM,qBAAuB,WAE3C3D,KAAKyH,gBAEVzH,KAAKyH,cAAcK,QAAQvE,SAAQ,GAGnCvD,KAAKyH,cAAgB,OAUzB3H,EAAK0B,cAAc6B,UAAUuE,aAAe,SAASJ,GAIjDA,EAAgBA,GAUpB1H,EAAK0B,cAAc6B,UAAUwE,cAAgB,SAASL,GAIlDA,EAAgBA,GASpB5D,OAAOC,eAAe/D,EAAK0B,cAAc6B,UAAW,KAEhDS,IAAK,WACD,MAAQ9D,MAAKyB,SAASiE,GAG1B1B,IAAK,SAASC,GACVjE,KAAKyB,SAASiE,EAAIzB,KAW1BL,OAAOC,eAAe/D,EAAK0B,cAAc6B,UAAW,KAEhDS,IAAK,WACD,MAAQ9D,MAAKyB,SAASkE,GAG1B3B,IAAK,SAASC,GACVjE,KAAKyB,SAASkE,EAAI1B,KAiB1BnE,EAAKqI,uBAAyB,WAE1BrI,EAAK0B,cAAcsE,KAAK9F,MASxBA,KAAKwD,aAKT1D,EAAKqI,uBAAuB9E,UAAYO,OAAOwE,OAAQtI,EAAK0B,cAAc6B,WAC1EvD,EAAKqI,uBAAuB9E,UAAUC,YAAcxD,EAAKqI,uBAQzDvE,OAAOC,eAAe/D,EAAKqI,uBAAuB9E,UAAW,SAEzDS,IAAK,WACD,MAAO9D,MAAK2B,MAAM+D,EAAI1F,KAAKmG,iBAAiBU,OAGhD7C,IAAK,SAASC,GAEV,GAAI4C,GAAQ7G,KAAKmG,iBAAiBU,KAI9B7G,MAAK2B,MAAM+D,EAFD,IAAVmB,EAEe5C,EAAQ4C,EAIR,EAGnB7G,KAAKqI,OAASpE,KAUtBL,OAAOC,eAAe/D,EAAKqI,uBAAuB9E,UAAW,UAEzDS,IAAK,WACD,MAAQ9D,MAAK2B,MAAMgE,EAAI3F,KAAKmG,iBAAiBW,QAGjD9C,IAAK,SAASC,GAEV,GAAI6C,GAAS9G,KAAKmG,iBAAiBW,MAI/B9G,MAAK2B,MAAMgE,EAFA,IAAXmB,EAEe7C,EAAQ6C,EAIR,EAGnB9G,KAAKsI,QAAUrE,KAYvBnE,EAAKqI,uBAAuB9E,UAAUkF,SAAW,SAASC,GAEtD,MAAOxI,MAAKyI,WAAWD,EAAOxI,KAAKwD,SAASE,SAWhD5D,EAAKqI,uBAAuB9E,UAAUoF,WAAa,SAASD,EAAOE,GAE/D,GAAGA,GAAS,GAAKA,GAAS1I,KAAKwD,SAASE,OAapC,MAXG8E,GAAMpG,QAELoG,EAAMpG,OAAOuG,YAAYH,GAG7BA,EAAMpG,OAASpC,KAEfA,KAAKwD,SAASoF,OAAOF,EAAO,EAAGF,GAE5BxI,KAAKqC,OAAMmG,EAAMnC,kBAAkBrG,KAAKqC,OAEpCmG,CAIP,MAAM,IAAIK,OAAML,EAAQ,yBAA0BE,EAAO,8BAAgC1I,KAAKwD,SAASE,SAW/G5D,EAAKqI,uBAAuB9E,UAAUyF,aAAe,SAASN,EAAOO,GAEjE,GAAGP,IAAUO,EAAb,CAIA,GAAIC,GAAShJ,KAAKiJ,cAAcT,GAC5BU,EAASlJ,KAAKiJ,cAAcF,EAEhC,IAAY,EAATC,GAAuB,EAATE,EACb,KAAM,IAAIL,OAAM,gFAGpB7I,MAAKwD,SAASwF,GAAUD,EACxB/I,KAAKwD,SAAS0F,GAAUV,IAW5B1I,EAAKqI,uBAAuB9E,UAAU4F,cAAgB,SAAST,GAE3D,GAAIE,GAAQ1I,KAAKwD,SAAS2F,QAAQX,EAClC,IAAc,KAAVE,EAEA,KAAM,IAAIG,OAAM,2DAEpB,OAAOH,IAUX5I,EAAKqI,uBAAuB9E,UAAU+F,cAAgB,SAASZ,EAAOE,GAElE,GAAY,EAARA,GAAaA,GAAS1I,KAAKwD,SAASE,OAEpC,KAAM,IAAImF,OAAM,sCAEpB,IAAIQ,GAAerJ,KAAKiJ,cAAcT,EACtCxI,MAAKwD,SAASoF,OAAOS,EAAc,GACnCrJ,KAAKwD,SAASoF,OAAOF,EAAO,EAAGF,IAUnC1I,EAAKqI,uBAAuB9E,UAAUiG,WAAa,SAASZ,GAExD,GAAY,EAARA,GAAaA,GAAS1I,KAAKwD,SAASE,OAEpC,KAAM,IAAImF,OAAM,8BAA+BH,EAAO,iGAE1D,OAAO1I,MAAKwD,SAASkF,IAWzB5I,EAAKqI,uBAAuB9E,UAAUsF,YAAc,SAASH,GAEzD,GAAIE,GAAQ1I,KAAKwD,SAAS2F,QAASX,EACnC,IAAa,KAAVE,EAEH,MAAO1I,MAAKuJ,cAAeb,IAU/B5I,EAAKqI,uBAAuB9E,UAAUkG,cAAgB,SAASb,GAE3D,GAAIF,GAAQxI,KAAKsJ,WAAYZ,EAM7B,OALG1I,MAAKqC,OACJmG,EAAMgB,uBAEVhB,EAAMpG,OAASqH,OACfzJ,KAAKwD,SAASoF,OAAQF,EAAO,GACtBF,GAUX1I,EAAKqI,uBAAuB9E,UAAUqG,eAAiB,SAASC,EAAYC,GAExE,GAAIC,GAAQF,GAAc,EACtBG,EAA0B,gBAAbF,GAAwBA,EAAW5J,KAAKwD,SAASE,OAC9DqG,EAAQD,EAAMD,CAElB,IAAIE,EAAQ,GAAcD,GAATC,EACjB,CAEI,IAAK,GADDC,GAAUhK,KAAKwD,SAASoF,OAAOiB,EAAOE,GACjCtG,EAAI,EAAGA,EAAIuG,EAAQtG,OAAQD,IAAK,CACrC,GAAI+E,GAAQwB,EAAQvG,EACjBzD,MAAKqC,OACJmG,EAAMgB,uBACVhB,EAAMpG,OAASqH,OAEnB,MAAOO,GAEN,GAAc,IAAVD,GAAwC,IAAzB/J,KAAKwD,SAASE,OAElC,QAIA,MAAM,IAAImF,OAAO,iFAUzB/I,EAAKqI,uBAAuB9E,UAAUsB,gBAAkB,WAEpD,GAAK3E,KAAKiC,UAKVjC,KAAK+F,gCAED/F,KAAKmD,gBAKT,IAAK,GAAIM,GAAI,EAAGA,EAAIzD,KAAKwD,SAASE,OAAQD,IAEtCzD,KAAKwD,SAASC,GAAGkB,mBAKzB7E,EAAKqI,uBAAuB9E,UAAU4G,sCAAwCnK,EAAKqI,uBAAuB9E,UAAUsB,gBAQpH7E,EAAKqI,uBAAuB9E,UAAU2C,UAAY,WAE9C,GAA4B,IAAzBhG,KAAKwD,SAASE,OAAa,MAAO5D,GAAKoG,cAgB1C,KAAI,GANAgE,GACAC,EACAC,EARAC,EAAOC,IACPC,EAAOD,IAEPE,GAAQF,IACRG,GAAQH,IAMRI,GAAe,EAEXjH,EAAE,EAAEa,EAAEtE,KAAKwD,SAASE,OAAUY,EAAFb,EAAKA,IACzC,CACI,GAAI+E,GAAQxI,KAAKwD,SAASC,EAEtB+E,GAAMvG,UAEVyI,GAAe,EAEfR,EAAclK,KAAKwD,SAASC,GAAGuC,YAE/BqE,EAAOA,EAAOH,EAAYxE,EAAI2E,EAAOH,EAAYxE,EACjD6E,EAAOA,EAAOL,EAAYvE,EAAI4E,EAAOL,EAAYvE,EAEjDwE,EAAYD,EAAYrD,MAAQqD,EAAYxE,EAC5C0E,EAAYF,EAAYpD,OAASoD,EAAYvE,EAE7C6E,EAAOA,EAAOL,EAAYK,EAAOL,EACjCM,EAAOA,EAAOL,EAAYK,EAAOL,GAGrC,IAAIM,EACA,MAAO5K,GAAKoG,cAEhB,IAAIQ,GAAS1G,KAAK+C,OAUlB,OARA2D,GAAOhB,EAAI2E,EACX3D,EAAOf,EAAI4E,EACX7D,EAAOG,MAAQ2D,EAAOH,EACtB3D,EAAOI,OAAS2D,EAAOF,EAKhB7D,GASX5G,EAAKqI,uBAAuB9E,UAAU8C,eAAiB,WAEnD,GAAIwE,GAAc3K,KAAKuC,cAEvBvC,MAAKuC,eAAiBzC,EAAKsG,cAE3B,KAAI,GAAI3C,GAAE,EAAEa,EAAEtE,KAAKwD,SAASE,OAAUY,EAAFb,EAAKA,IAErCzD,KAAKwD,SAASC,GAAGkB,iBAGrB,IAAI+B,GAAS1G,KAAKgG,WAIlB,OAFAhG,MAAKuC,eAAiBoI,EAEfjE,GASX5G,EAAKqI,uBAAuB9E,UAAUgD,kBAAoB,SAAShE,GAE/DrC,KAAKqC,MAAQA,CAEb,KAAK,GAAIoB,GAAE,EAAGA,EAAIzD,KAAKwD,SAASE,OAAQD,IAEpCzD,KAAKwD,SAASC,GAAG4C,kBAAkBhE,IAS3CvC,EAAKqI,uBAAuB9E,UAAUmG,qBAAuB,WAEzD,IAAK,GAAI/F,GAAI,EAAGA,EAAIzD,KAAKwD,SAASE,OAAQD,IAEtCzD,KAAKwD,SAASC,GAAG+F,sBAGrBxJ,MAAKqC,MAAQ,MAUjBvC,EAAKqI,uBAAuB9E,UAAUuE,aAAe,SAASJ,GAE1D,GAAKxH,KAAKiC,WAAWjC,KAAKgC,OAAS,GAAnC,CAEA,GAAIhC,KAAKmD,eAGL,WADAnD,MAAKuH,oBAAoBC,EAI7B,IAAI/D,EAEJ,IAAIzD,KAAKkD,OAASlD,KAAKmE,SACvB,CAgBI,IAdInE,KAAKmE,WAELqD,EAAcoD,YAAYC,QAC1BrD,EAAcsD,cAAcC,WAAW/K,KAAKwE,eAG5CxE,KAAKkD,QAELsE,EAAcoD,YAAYI,OAC1BxD,EAAcyD,YAAYC,SAASlL,KAAKmL,KAAM3D,GAC9CA,EAAcoD,YAAYQ,SAIzB3H,EAAI,EAAGA,EAAIzD,KAAKwD,SAASE,OAAQD,IAElCzD,KAAKwD,SAASC,GAAGmE,aAAaJ,EAGlCA,GAAcoD,YAAYI,OAEtBhL,KAAKkD,OAAOsE,EAAcyD,YAAYI,QAAQrL,KAAKkD,MAAOsE,GAC1DxH,KAAKmE,UAAUqD,EAAcsD,cAAcQ,YAE/C9D,EAAcoD,YAAYQ,YAK1B,KAAK3H,EAAI,EAAGA,EAAIzD,KAAKwD,SAASE,OAAQD,IAElCzD,KAAKwD,SAASC,GAAGmE,aAAaJ,KAY1C1H,EAAKqI,uBAAuB9E,UAAUwE,cAAgB,SAASL,GAE3D,GAAIxH,KAAKiC,WAAY,GAAwB,IAAfjC,KAAKgC,MAAnC,CAEA,GAAIhC,KAAKmD,eAGL,WADAnD,MAAKuH,oBAAoBC,EAIzBxH,MAAKkD,OAELsE,EAAcyD,YAAYC,SAASlL,KAAKkD,MAAOsE,EAGnD,KAAK,GAAI/D,GAAI,EAAGA,EAAIzD,KAAKwD,SAASE,OAAQD,IAEtCzD,KAAKwD,SAASC,GAAGoE,cAAcL,EAG/BxH,MAAKkD,OAELsE,EAAcyD,YAAYI,QAAQ7D,KAqB1C1H,EAAK6H,OAAS,SAASG,GAEnBhI,EAAKqI,uBAAuBrC,KAAK9F,MAWjCA,KAAKkI,OAAS,GAAIpI,GAAK4B,MAQvB1B,KAAK8H,QAAUA,GAAWhI,EAAKyL,QAAQC,aASvCxL,KAAKqI,OAAS,EASdrI,KAAKsI,QAAU,EASftI,KAAKyL,KAAO,SAUZzL,KAAK0L,WAAa,GASlB1L,KAAK2L,cAAgB,KASrB3L,KAAK4L,UAAY9L,EAAK+L,WAAWC,OASjC9L,KAAK+L,OAAS,KAEV/L,KAAK8H,QAAQkE,YAAYC,WAEzBjM,KAAKkM,kBAGTlM,KAAKmC,YAAa,GAKtBrC,EAAK6H,OAAOtE,UAAYO,OAAOwE,OAAOtI,EAAKqI,uBAAuB9E,WAClEvD,EAAK6H,OAAOtE,UAAUC,YAAcxD,EAAK6H,OAQzC/D,OAAOC,eAAe/D,EAAK6H,OAAOtE,UAAW,SAEzCS,IAAK,WACD,MAAO9D,MAAK2B,MAAM+D,EAAI1F,KAAK8H,QAAQqE,MAAMtF,OAG7C7C,IAAK,SAASC,GACVjE,KAAK2B,MAAM+D,EAAIzB,EAAQjE,KAAK8H,QAAQqE,MAAMtF,MAC1C7G,KAAKqI,OAASpE,KAWtBL,OAAOC,eAAe/D,EAAK6H,OAAOtE,UAAW,UAEzCS,IAAK,WACD,MAAQ9D,MAAK2B,MAAMgE,EAAI3F,KAAK8H,QAAQqE,MAAMrF,QAG9C9C,IAAK,SAASC,GACVjE,KAAK2B,MAAMgE,EAAI1B,EAAQjE,KAAK8H,QAAQqE,MAAMrF,OAC1C9G,KAAKsI,QAAUrE,KAWvBnE,EAAK6H,OAAOtE,UAAU+I,WAAa,SAAStE,GAExC9H,KAAK8H,QAAUA,EACf9H,KAAK8H,QAAQuE,OAAQ,GAUzBvM,EAAK6H,OAAOtE,UAAU6I,gBAAkB,WAGhClM,KAAKqI,SAAQrI,KAAK2B,MAAM+D,EAAI1F,KAAKqI,OAASrI,KAAK8H,QAAQqE,MAAMtF,OAC7D7G,KAAKsI,UAAStI,KAAK2B,MAAMgE,EAAI3F,KAAKsI,QAAUtI,KAAK8H,QAAQqE,MAAMrF,SAUvEhH,EAAK6H,OAAOtE,UAAU2C,UAAY,SAASC,GAEvC,GAAIY,GAAQ7G,KAAK8H,QAAQqE,MAAMtF,MAC3BC,EAAS9G,KAAK8H,QAAQqE,MAAMrF,OAE5BwF,EAAKzF,GAAS,EAAE7G,KAAKkI,OAAOxC,GAC5B6G,EAAK1F,GAAS7G,KAAKkI,OAAOxC,EAE1B8G,EAAK1F,GAAU,EAAE9G,KAAKkI,OAAOvC,GAC7B8G,EAAK3F,GAAU9G,KAAKkI,OAAOvC,EAE3BpD,EAAiB0D,GAAUjG,KAAKuC,eAEhCwC,EAAIxC,EAAewC,EACnBC,EAAIzC,EAAeyC,EACnBC,EAAI1C,EAAe0C,EACnBC,EAAI3C,EAAe2C,EACnBC,EAAK5C,EAAe4C,GACpBC,EAAK7C,EAAe6C,GAEpBoF,GAAQF,IACRG,GAAQH,IAERD,EAAOC,IACPC,EAAOD,GAEX,IAAU,IAANtF,GAAiB,IAANC,EAGH,EAAJF,IAAOA,GAAK,IACR,EAAJG,IAAOA,GAAK,IAIhBmF,EAAOtF,EAAIwH,EAAKpH,EAChBqF,EAAOzF,EAAIuH,EAAKnH,EAChBoF,EAAOrF,EAAIuH,EAAKrH,EAChBqF,EAAOvF,EAAIsH,EAAKpH,MAGpB,CACI,GAAIsH,GAAK3H,EAAIwH,EAAKtH,EAAIwH,EAAKtH,EACvBwH,EAAKzH,EAAIuH,EAAKzH,EAAIuH,EAAKnH,EAEvBwH,EAAK7H,EAAIuH,EAAKrH,EAAIwH,EAAKtH,EACvB0H,EAAK3H,EAAIuH,EAAKzH,EAAIsH,EAAKlH,EAEvB0H,EAAK/H,EAAIuH,EAAKrH,EAAIuH,EAAKrH,EACvB4H,EAAK7H,EAAIsH,EAAKxH,EAAIsH,EAAKlH,EAEvB4H,EAAMjI,EAAIwH,EAAKtH,EAAIuH,EAAKrH,EACxB8H,EAAM/H,EAAIsH,EAAKxH,EAAIuH,EAAKnH,CAE5BiF,GAAYA,EAALqC,EAAYA,EAAKrC,EACxBA,EAAYA,EAALuC,EAAYA,EAAKvC,EACxBA,EAAYA,EAALyC,EAAYA,EAAKzC,EACxBA,EAAYA,EAAL2C,EAAYA,EAAK3C,EAExBE,EAAYA,EAALoC,EAAYA,EAAKpC,EACxBA,EAAYA,EAALsC,EAAYA,EAAKtC,EACxBA,EAAYA,EAALwC,EAAYA,EAAKxC,EACxBA,EAAYA,EAAL0C,EAAYA,EAAK1C,EAExBC,EAAOkC,EAAKlC,EAAOkC,EAAKlC,EACxBA,EAAOoC,EAAKpC,EAAOoC,EAAKpC,EACxBA,EAAOsC,EAAKtC,EAAOsC,EAAKtC,EACxBA,EAAOwC,EAAKxC,EAAOwC,EAAKxC,EAExBC,EAAOkC,EAAKlC,EAAOkC,EAAKlC,EACxBA,EAAOoC,EAAKpC,EAAOoC,EAAKpC,EACxBA,EAAOsC,EAAKtC,EAAOsC,EAAKtC,EACxBA,EAAOwC,EAAKxC,EAAOwC,EAAKxC,EAG5B,GAAI/D,GAAS1G,KAAK+C,OAWlB,OATA2D,GAAOhB,EAAI2E,EACX3D,EAAOG,MAAQ2D,EAAOH,EAEtB3D,EAAOf,EAAI4E,EACX7D,EAAOI,OAAS2D,EAAOF,EAGvBvK,KAAKiD,eAAiByD,EAEfA,GAWX5G,EAAK6H,OAAOtE,UAAUuE,aAAe,SAASJ,EAAevB,GAGzD,GAAKjG,KAAKiC,WAAWjC,KAAKgC,OAAS,IAAMhC,KAAKmC,WAA9C,CAGA,GAAImD,GAAKtF,KAAKuC,cAQd,IANI0D,IAEAX,EAAKW,GAILjG,KAAKkD,OAASlD,KAAKmE,SACvB,CACI,GAAIyG,GAAcpD,EAAcoD,WAG5B5K,MAAKmE,WAELyG,EAAYC,QACZrD,EAAcsD,cAAcC,WAAW/K,KAAKwE,eAG5CxE,KAAKkD,QAEL0H,EAAYI,OACZxD,EAAcyD,YAAYC,SAASlL,KAAKmL,KAAM3D,GAC9CoD,EAAYQ,SAIhBR,EAAY5D,OAAOhH,KAGnB,KAAK,GAAIyD,GAAI,EAAGA,EAAIzD,KAAKwD,SAASE,OAAQD,IAEtCzD,KAAKwD,SAASC,GAAGmE,aAAaJ,EAIlCoD,GAAYI,OAERhL,KAAKkD,OAAOsE,EAAcyD,YAAYI,QAAQrL,KAAKkD,MAAOsE,GAC1DxH,KAAKmE,UAAUqD,EAAcsD,cAAcQ,YAE/CV,EAAYQ,YAGhB,CACI5D,EAAcoD,YAAY5D,OAAOhH,KAGjC,KAAK,GAAIyD,GAAI,EAAGA,EAAIzD,KAAKwD,SAASE,OAAQD,IAEtCzD,KAAKwD,SAASC,GAAGmE,aAAaJ,EAAelC,MAczDxF,EAAK6H,OAAOtE,UAAUwE,cAAgB,SAASL,EAAevB,GAG1D,KAAIjG,KAAKiC,WAAY,GAAwB,IAAfjC,KAAKgC,OAAehC,KAAKmC,cAAe,GAASnC,KAAK8H,QAAQoF,KAAKrG,OAAS,GAAK7G,KAAK8H,QAAQoF,KAAKpG,QAAU,GAA3I,CAKA,GAAIxB,GAAKtF,KAAKuC,cAoBd,IAjBI0D,IAEAX,EAAKW,GAGLjG,KAAK4L,YAAcpE,EAAc2F,mBAEjC3F,EAAc2F,iBAAmBnN,KAAK4L,UACtCpE,EAAc4F,QAAQC,yBAA2BvN,EAAKwN,iBAAiB9F,EAAc2F,mBAGrFnN,KAAKkD,OAELsE,EAAcyD,YAAYC,SAASlL,KAAKkD,MAAOsE,GAI/CxH,KAAK8H,QAAQuE,MACjB,CACI,GAAIhL,GAAarB,KAAK8H,QAAQkE,YAAY3K,WAAamG,EAAcnG,UAErEmG,GAAc4F,QAAQG,YAAcvN,KAAKsC,WAGrCkF,EAAcgG,gBAAkBhG,EAAchB,YAAcxG,KAAK8H,QAAQkE,YAAYxF,YAErFgB,EAAchB,UAAYxG,KAAK8H,QAAQkE,YAAYxF,UACnDgB,EAAc4F,QAAQ5F,EAAcgG,gBAAmBhG,EAAchB,YAAc1G,EAAK2N,WAAWC,OAIvG,IAAIC,GAAM3N,KAAK8H,QAAY,KAAI9H,KAAK8H,QAAQ8F,KAAKlI,EAAI1F,KAAKkI,OAAOxC,EAAI1F,KAAK8H,QAAQ8F,KAAK/G,MAAQ7G,KAAKkI,OAAOxC,GAAK1F,KAAK8H,QAAQqE,MAAMtF,MAC/HgH,EAAM7N,KAAK8H,QAAY,KAAI9H,KAAK8H,QAAQ8F,KAAKjI,EAAI3F,KAAKkI,OAAOvC,EAAI3F,KAAK8H,QAAQ8F,KAAK9G,OAAS9G,KAAKkI,OAAOvC,GAAK3F,KAAK8H,QAAQqE,MAAMrF,MAGhIU,GAAcsG,aAEdtG,EAAc4F,QAAQW,aAAazI,EAAGP,EAAGO,EAAGN,EAAGM,EAAGL,EAAGK,EAAGJ,EAAII,EAAGH,GAAKqC,EAAcnG,WAAc,EAAIiE,EAAGF,GAAKoC,EAAcnG,WAAc,GACxIsM,EAAU,EAALA,EACLE,EAAU,EAALA,GAILrG,EAAc4F,QAAQW,aAAazI,EAAGP,EAAGO,EAAGN,EAAGM,EAAGL,EAAGK,EAAGJ,EAAGI,EAAGH,GAAKqC,EAAcnG,WAAYiE,EAAGF,GAAKoC,EAAcnG,WAGvH,IAAI2M,GAAKhO,KAAK8H,QAAQoF,KAAKrG,MACvBoH,EAAKjO,KAAK8H,QAAQoF,KAAKpG,MAK3B,IAHA6G,GAAMtM,EACNwM,GAAMxM,EAEY,WAAdrB,KAAKyL,MAEDzL,KAAK8H,QAAQoG,gBAAkBlO,KAAK0L,aAAe1L,KAAKyL,QAExDzL,KAAK2L,cAAgB7L,EAAKqO,aAAaC,iBAAiBpO,KAAMA,KAAKyL,MAEnEzL,KAAK0L,WAAa1L,KAAKyL,MAG3BjE,EAAc4F,QAAQiB,UAAUrO,KAAK2L,cAAe,EAAG,EAAGqC,EAAIC,EAAIN,EAAIE,EAAIG,EAAK3M,EAAY4M,EAAK5M,OAGpG,CACI,GAAIiN,GAAKtO,KAAK8H,QAAQoF,KAAKxH,EACvB6I,EAAKvO,KAAK8H,QAAQoF,KAAKvH,CAC3B6B,GAAc4F,QAAQiB,UAAUrO,KAAK8H,QAAQkE,YAAYwC,OAAQF,EAAIC,EAAIP,EAAIC,EAAIN,EAAIE,EAAIG,EAAK3M,EAAY4M,EAAK5M,IAIvH,IAAK,GAAIoC,GAAI,EAAGA,EAAIzD,KAAKwD,SAASE,OAAQD,IAEtCzD,KAAKwD,SAASC,GAAGoE,cAAcL,EAG/BxH,MAAKkD,OAELsE,EAAcyD,YAAYI,QAAQ7D,KAiB1C1H,EAAK6H,OAAO8G,UAAY,SAASC,GAE7B,GAAI5G,GAAUhI,EAAK6O,aAAaD,EAEhC,KAAK5G,EAAS,KAAM,IAAIe,OAAM,gBAAkB6F,EAAU,wCAA0C1O,KAEpG,OAAO,IAAIF,GAAK6H,OAAOG,IAa3BhI,EAAK6H,OAAOiH,UAAY,SAASC,EAASC,EAAatI,GAEnD,GAAIsB,GAAUhI,EAAKyL,QAAQqD,UAAUC,EAASC,EAAatI,EAE3D,OAAO,IAAI1G,GAAK6H,OAAOG,IA2B3BhI,EAAKiP,YAAc,SAASjH,GAExBhI,EAAKqI,uBAAuBrC,KAAM9F,MAElCA,KAAKgP,aAAelH,EAEpB9H,KAAKiP,OAAQ,GAGjBnP,EAAKiP,YAAY1L,UAAYO,OAAOwE,OAAOtI,EAAKqI,uBAAuB9E,WACvEvD,EAAKiP,YAAY1L,UAAUC,YAAcxD,EAAKiP,YAQ9CjP,EAAKiP,YAAY1L,UAAU6L,UAAY,SAASxH,GAG5C1H,KAAKmP,gBAAkB,GAAIrP,GAAKsP,qBAAqB1H,GAErD1H,KAAKiP,OAAQ,GASjBnP,EAAKiP,YAAY1L,UAAUsB,gBAAkB,WAGzC3E,KAAK+F,gCAWTjG,EAAKiP,YAAY1L,UAAUuE,aAAe,SAASJ,IAE1CxH,KAAKiC,SAAWjC,KAAKgC,OAAS,IAAMhC,KAAKwD,SAASE,SAElD1D,KAAKiP,OAENjP,KAAKkP,UAAU1H,EAAcE,IAG7B1H,KAAKmP,gBAAgBzH,KAAOF,EAAcE,IAE1C1H,KAAKmP,gBAAgBE,WAAW7H,EAAcE,IAGlDF,EAAcoD,YAAYI,OAE1BxD,EAAc8H,cAAcC,UAAU/H,EAAc8H,cAAcE,YAElExP,KAAKmP,gBAAgBtF,MAAM7J,KAAMwH,GACjCxH,KAAKmP,gBAAgBnI,OAAOhH,MAE5BwH,EAAcoD,YAAYQ,UAW9BtL,EAAKiP,YAAY1L,UAAUwE,cAAgB,SAASL,GAEhD,GAAKxH,KAAKiC,WAAWjC,KAAKgC,OAAS,IAAMhC,KAAKwD,SAASE,OAAvD,CAEA,GAAI0J,GAAU5F,EAAc4F,OAE5BA,GAAQG,YAAcvN,KAAKsC,WAE3BtC,KAAK+F,8BAML,KAAK,GAJD0J,GAAYzP,KAAKuC,eAEjBmN,GAAY,EAEPjM,EAAI,EAAGA,EAAIzD,KAAKwD,SAASE,OAAQD,IAC1C,CACI,GAAI+E,GAAQxI,KAAKwD,SAASC,EAE1B,IAAK+E,EAAMvG,QAAX,CAEA,GAAI6F,GAAUU,EAAMV,QAChBqE,EAAQrE,EAAQqE,KAIpB,IAFAiB,EAAQG,YAAcvN,KAAKsC,WAAakG,EAAMxG,MAE1CwG,EAAMzG,UAAsB,EAAVpB,KAAKC,MAAY,EAE/B8O,IAEAtC,EAAQW,aAAa0B,EAAU1K,EAAG0K,EAAUzK,EAAGyK,EAAUxK,EAAGwK,EAAUvK,EAAGuK,EAAUtK,GAAIsK,EAAUrK,IACjGsK,GAAY,GAIhBtC,EAAQiB,UAAUvG,EAAQkE,YAAYwC,OACjBrC,EAAMzG,EACNyG,EAAMxG,EACNwG,EAAMtF,MACNsF,EAAMrF,OACJ0B,EAAMN,OAAQ,GAAMiE,EAAMtF,MAAQ2B,EAAM7G,MAAM+D,EAAK8C,EAAM/G,SAASiE,EAAK,GAAO,EAC9E8C,EAAMN,OAAQ,GAAMiE,EAAMrF,OAAS0B,EAAM7G,MAAMgE,EAAK6C,EAAM/G,SAASkE,EAAK,GAAO,EACjFwG,EAAMtF,MAAQ2B,EAAM7G,MAAM+D,EAC1ByG,EAAMrF,OAAS0B,EAAM7G,MAAMgE,OAGpD,CACS+J,IAAWA,GAAY,GAE5BlH,EAAMzC,8BAEN,IAAI4J,GAAiBnH,EAAMjG,cAIvBiF,GAAcsG,YAEdV,EAAQW,aAAa4B,EAAe5K,EAAG4K,EAAe3K,EAAG2K,EAAe1K,EAAG0K,EAAezK,EAAuB,EAApByK,EAAexK,GAA4B,EAApBwK,EAAevK,IAInIgI,EAAQW,aAAa4B,EAAe5K,EAAG4K,EAAe3K,EAAG2K,EAAe1K,EAAG0K,EAAezK,EAAGyK,EAAexK,GAAIwK,EAAevK,IAGnIgI,EAAQiB,UAAUvG,EAAQkE,YAAYwC,OACjBrC,EAAMzG,EACNyG,EAAMxG,EACNwG,EAAMtF,MACNsF,EAAMrF,OACJ0B,EAAMN,OAAQ,GAAMiE,EAAMtF,MAAS,GAAO,EAC1C2B,EAAMN,OAAQ,GAAMiE,EAAMrF,OAAU,GAAO,EAC7CqF,EAAMtF,MACNsF,EAAMrF,aA0BvChH,EAAK8P,MAAQ,SAASC,GAElB/P,EAAKqI,uBAAuBrC,KAAM9F,MAUlCA,KAAKuC,eAAiB,GAAIzC,GAAK0C,OAG/BxC,KAAKqC,MAAQrC,KAEbA,KAAK8P,mBAAmBD,IAI5B/P,EAAK8P,MAAMvM,UAAYO,OAAOwE,OAAQtI,EAAKqI,uBAAuB9E,WAClEvD,EAAK8P,MAAMvM,UAAUC,YAAcxD,EAAK8P,MAQxC9P,EAAK8P,MAAMvM,UAAUsB,gBAAkB,WAEnC3E,KAAKsC,WAAa,CAElB,KAAK,GAAImB,GAAI,EAAGA,EAAIzD,KAAKwD,SAASE,OAAQD,IAEtCzD,KAAKwD,SAASC,GAAGkB,mBAWzB7E,EAAK8P,MAAMvM,UAAUyM,mBAAqB,SAASD,GAE/C7P,KAAK6P,gBAAkBA,GAAmB,EAC1C7P,KAAK+P,qBAAuBjQ,EAAKkQ,QAAQhQ,KAAK6P,gBAC9C,IAAII,GAAMjQ,KAAK6P,gBAAgBK,SAAS,GACxCD,GAAM,SAASE,OAAO,EAAG,EAAIF,EAAIvM,QAAUuM,EAC3CjQ,KAAKoQ,sBAAwB,IAAMH,GAavCnQ,EAAKkQ,QAAU,SAASC,GACpB,QAASA,GAAO,GAAK,KAAQ,KAAOA,GAAO,EAAI,KAAQ,KAAY,IAANA,GAAa,MAS9EnQ,EAAKuQ,QAAU,SAASC,GACpB,OAAgB,IAAPA,EAAI,IAAU,KAAc,IAAPA,EAAI,IAAU,GAAY,IAAPA,EAAI,IASzDxQ,EAAKyQ,0BAA4B,WAE7B,GAAiB9G,SAAb+G,SAAwB,OAAO,CAEnC,IAAIC,GAAU,iFACVC,EAAS,mDAETC,EAAU,GAAIC,MAClBD,GAAQE,IAAMJ,EAAU,WAAaC,CAErC,IAAII,GAAS,GAAIF,MACjBE,GAAOD,IAAMJ,EAAU,WAAaC,CAEpC,IAAIK,GAASP,SAASQ,cAAc,SACpCD,GAAOlK,MAAQ,EACfkK,EAAOjK,OAAS,CAChB,IAAIsG,GAAU2D,EAAOE,WAAW,KAKhC,IAJA7D,EAAQC,yBAA2B,WACnCD,EAAQiB,UAAUsC,EAAS,EAAG,GAC9BvD,EAAQiB,UAAUyC,EAAQ,EAAG,IAExB1D,EAAQ8D,aAAa,EAAE,EAAE,EAAE,GAE5B,OAAO,CAGX,IAAIC,GAAO/D,EAAQ8D,aAAa,EAAE,EAAE,EAAE,GAAGC,IAEzC,OAAoB,OAAZA,EAAK,IAA0B,IAAZA,EAAK,IAAwB,IAAZA,EAAK,IAWrDrR,EAAKsR,kBAAoB,SAASC,GAE9B,GAAIA,EAAS,GAAiC,KAA3BA,EAAUA,EAAS,GAClC,MAAOA,EAIP,KADA,GAAIC,GAAS,EACGD,EAATC,GAAiBA,IAAW,CACnC,OAAOA,IAWfxR,EAAKyR,aAAe,SAAS1K,EAAOC,GAEhC,MAAQD,GAAQ,GAA+B,KAAzBA,EAASA,EAAQ,IAAaC,EAAS,GAAiC,KAA3BA,EAAUA,EAAS,IA2C1FhH,EAAK0R,SAOL1R,EAAK0R,MAAMC,YAAc,SAAS5M,GAE9B,GAAI6M,IAAO,EAEPC,EAAI9M,EAAEnB,QAAU,CACpB,IAAO,EAAJiO,EAAO,QAIV,KAAI,GAFAC,MACAC,KACIpO,EAAI,EAAOkO,EAAJlO,EAAOA,IAAKoO,EAAItN,KAAKd,EAEpCA,GAAI,CAEJ,KADA,GAAIqO,GAAKH,EACHG,EAAK,GACX,CACI,GAAIC,GAAKF,GAAKpO,EAAE,GAAGqO,GACfE,EAAKH,GAAKpO,EAAE,GAAGqO,GACfG,EAAKJ,GAAKpO,EAAE,GAAGqO,GAEfI,EAAKrN,EAAE,EAAEkN,GAAMI,EAAKtN,EAAE,EAAEkN,EAAG,GAC3BK,EAAKvN,EAAE,EAAEmN,GAAMK,EAAKxN,EAAE,EAAEmN,EAAG,GAC3B1D,EAAKzJ,EAAE,EAAEoN,GAAM1D,EAAK1J,EAAE,EAAEoN,EAAG,GAE3BK,GAAW,CACf,IAAGxS,EAAK0R,MAAMe,QAAQL,EAAIC,EAAIC,EAAIC,EAAI/D,EAAIC,EAAImD,GAC9C,CACIY,GAAW,CACX,KAAI,GAAIhO,GAAI,EAAOwN,EAAJxN,EAAQA,IACvB,CACI,GAAIkO,GAAKX,EAAIvN,EACb,IAAGkO,IAAOT,GAAMS,IAAOR,GAAMQ,IAAOP,GAEjCnS,EAAK0R,MAAMiB,iBAAiB5N,EAAE,EAAE2N,GAAK3N,EAAE,EAAE2N,EAAG,GAAIN,EAAIC,EAAIC,EAAIC,EAAI/D,EAAIC,GAAK,CACxE+D,GAAW,CACX,SAKZ,GAAGA,EAECV,EAAIrN,KAAKwN,EAAIC,EAAIC,GACjBJ,EAAIjJ,QAAQnF,EAAE,GAAGqO,EAAI,GACrBA,IACArO,EAAI,MAEH,IAAGA,IAAM,EAAEqO,EAChB,CAGI,IAAGJ,EAcC,MAAO,KAVP,KAFAE,KACAC,KACIpO,EAAI,EAAOkO,EAAJlO,EAAOA,IAAKoO,EAAItN,KAAKd,EAEhCA,GAAI,EACJqO,EAAKH,EAELD,GAAO,GAWnB,MADAE,GAAIrN,KAAKsN,EAAI,GAAIA,EAAI,GAAIA,EAAI,IACtBD,GAkBX9R,EAAK0R,MAAMiB,iBAAmB,SAASC,EAAIC,EAAIT,EAAIC,EAAIC,EAAIC,EAAI/D,EAAIC,GAE/D,GAAIqE,GAAMtE,EAAG4D,EACTW,EAAMtE,EAAG4D,EACTW,EAAMV,EAAGF,EACTa,EAAMV,EAAGF,EACTa,EAAMN,EAAGR,EACTe,EAAMN,EAAGR,EAETe,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,GAUxC3T,EAAK0R,MAAMe,QAAU,SAASL,EAAIC,EAAIC,EAAIC,EAAI/D,EAAIC,EAAImD,GAElD,OAASS,EAAGE,IAAK/D,EAAG8D,IAAOA,EAAGF,IAAK3D,EAAG8D,IAAO,IAAOX,GAYxD5R,EAAK4T,mBAAqB,aAW1B5T,EAAK6T,oBAAsB,SAASjM,EAAIkM,GAEpC,MAAO9T,GAAK+T,eAAenM,EAAIkM,EAAWlM,EAAGoM,gBAUjDhU,EAAKiU,sBAAwB,SAASrM,EAAIkM,GAEtC,MAAO9T,GAAK+T,eAAenM,EAAIkM,EAAWlM,EAAGsM,kBAYjDlU,EAAK+T,eAAiB,SAASnM,EAAIkM,EAAWK,GAE1C,GAAIpD,GAAM+C,CAENnT,OAAMyT,QAAQN,KAEd/C,EAAM+C,EAAUO,KAAK,MAGzB,IAAIpI,GAASrE,EAAG0M,aAAaH,EAI7B,OAHAvM,GAAG2M,aAAatI,EAAQ8E,GACxBnJ,EAAG4M,cAAcvI,GAEZrE,EAAG6M,mBAAmBxI,EAAQrE,EAAG8M,gBAM/BzI,GAJH0I,OAAOC,QAAQC,IAAIjN,EAAGkN,iBAAiB7I,IAChC,OAcfjM,EAAK+U,eAAiB,SAASnN,EAAIoN,EAAWC,GAE1C,GAAIC,GAAiBlV,EAAKiU,sBAAsBrM,EAAIqN,GAChDE,EAAenV,EAAK6T,oBAAoBjM,EAAIoN,GAE5CI,EAAgBxN,EAAGyN,eAWvB,OATAzN,GAAG0N,aAAaF,EAAeD,GAC/BvN,EAAG0N,aAAaF,EAAeF,GAC/BtN,EAAG2N,YAAYH,GAEVxN,EAAG4N,oBAAoBJ,EAAexN,EAAG6N,cAE1Cd,OAAOC,QAAQC,IAAI,gCAGhBO,GAaXpV,EAAK0V,WAAa,SAAS9N,GAOvB1H,KAAKI,KAAON,EAAKM,OAMjBJ,KAAK0H,GAAKA,EAOV1H,KAAKyV,QAAU,KAOfzV,KAAK+U,aACD,wBACA,8BACA,uBACA,8BACA,oBACA,kEACA,KAQJ/U,KAAK0V,aAAe,EAQpB1V,KAAK2V,UAAW,EAOhB3V,KAAK4V,OAAQ,EAQb5V,KAAK6V,cAEL7V,KAAK8V,QAGThW,EAAK0V,WAAWnS,UAAUC,YAAcxD,EAAK0V,WAO7C1V,EAAK0V,WAAWnS,UAAUyS,KAAO,WAE7B,GAAIpO,GAAK1H,KAAK0H,GAEV+N,EAAU3V,EAAK+U,eAAenN,EAAI1H,KAAK8U,WAAahV,EAAK0V,WAAWO,iBAAkB/V,KAAK+U,YAE/FrN,GAAGsO,WAAWP,GAGdzV,KAAKiW,SAAWvO,EAAGwO,mBAAmBT,EAAS,YAC/CzV,KAAKmW,iBAAmBzO,EAAGwO,mBAAmBT,EAAS,oBACvDzV,KAAKoW,aAAe1O,EAAGwO,mBAAmBT,EAAS,gBACnDzV,KAAKqW,WAAa3O,EAAGwO,mBAAmBT,EAAS,cAGjDzV,KAAKsW,gBAAkB5O,EAAG6O,kBAAkBd,EAAS,mBACrDzV,KAAKwW,cAAgB9O,EAAG6O,kBAAkBd,EAAS,iBACnDzV,KAAKyW,eAAiB/O,EAAG6O,kBAAkBd,EAAS,UAQzB,KAAxBzV,KAAKyW,iBAEJzW,KAAKyW,eAAiB,GAG1BzW,KAAK6V,YAAc7V,KAAKsW,gBAAiBtW,KAAKwW,cAAexW,KAAKyW,eAKlE,KAAK,GAAIC,KAAO1W,MAAK2W,SAGjB3W,KAAK2W,SAASD,GAAKE,gBAAkBlP,EAAGwO,mBAAmBT,EAASiB,EAGxE1W,MAAK6W,eAEL7W,KAAKyV,QAAUA,GAWnB3V,EAAK0V,WAAWnS,UAAUwT,aAAe,WAErC7W,KAAK0V,aAAe,CACpB,IACIoB,GADApP,EAAK1H,KAAK0H,EAGd,KAAK,GAAIgP,KAAO1W,MAAK2W,SACrB,CACIG,EAAU9W,KAAK2W,SAASD,EAExB,IAAIK,GAAOD,EAAQC,IAEN,eAATA,GAEAD,EAAQE,OAAQ,EAEM,OAAlBF,EAAQ7S,OAERjE,KAAKiX,cAAcH,IAGT,SAATC,GAA4B,SAATA,GAA4B,SAATA,GAG3CD,EAAQI,UAAW,EACnBJ,EAAQK,cAAgB,EAEX,SAATJ,EAEAD,EAAQM,OAAS1P,EAAG2P,iBAEN,SAATN,EAELD,EAAQM,OAAS1P,EAAG4P,iBAEN,SAATP,IAELD,EAAQM,OAAS1P,EAAG6P,oBAMxBT,EAAQM,OAAS1P,EAAG,UAAYqP,GAI5BD,EAAQK,cAFC,OAATJ,GAA0B,OAATA,EAEO,EAEV,OAATA,GAA0B,OAATA,EAEE,EAEV,OAATA,GAA0B,OAATA,EAEE,EAIA,KAYxCjX,EAAK0V,WAAWnS,UAAU4T,cAAgB,SAASH,GAE/C,GAAKA,EAAQ7S,OAAU6S,EAAQ7S,MAAM+H,aAAgB8K,EAAQ7S,MAAM+H,YAAYC,UAA/E,CAKA,GAAIvE,GAAK1H,KAAK0H,EAMd,IAJAA,EAAG8P,cAAc9P,EAAG,UAAY1H,KAAK0V,eACrChO,EAAG+P,YAAY/P,EAAGgQ,WAAYZ,EAAQ7S,MAAM+H,YAAY2L,YAAYjQ,EAAGkQ,KAGnEd,EAAQe,YACZ,CACI,GAAI1G,GAAO2F,EAAQe,YAYfC,EAAa3G,EAAc,UAAIA,EAAK2G,UAAYpQ,EAAGgG,OACnDqK,EAAa5G,EAAc,UAAIA,EAAK4G,UAAYrQ,EAAGgG,OACnDsK,EAAS7G,EAAU,MAAIA,EAAK6G,MAAQtQ,EAAGuQ,cACvCC,EAAS/G,EAAU,MAAIA,EAAK+G,MAAQxQ,EAAGuQ,cACvCE,EAAUhH,EAAc,UAAIzJ,EAAG0Q,UAAY1Q,EAAG2Q,IAUlD,IARIlH,EAAKmH,SAELN,EAAQtQ,EAAG6Q,OACXL,EAAQxQ,EAAG6Q,QAGf7Q,EAAG8Q,YAAY9Q,EAAG+Q,sBAAuBtH,EAAKuH,OAE1CvH,EAAKtK,MACT,CACI,GAAIA,GAASsK,EAAU,MAAIA,EAAKtK,MAAQ,IACpCC,EAAUqK,EAAW,OAAIA,EAAKrK,OAAS,EACvC6R,EAAUxH,EAAW,OAAIA,EAAKwH,OAAS,CAG3CjR,GAAGkR,WAAWlR,EAAGgQ,WAAY,EAAGS,EAAQtR,EAAOC,EAAQ6R,EAAQR,EAAQzQ,EAAGmR,cAAe,UAKzFnR,GAAGkR,WAAWlR,EAAGgQ,WAAY,EAAGS,EAAQzQ,EAAG2Q,KAAM3Q,EAAGmR,cAAe/B,EAAQ7S,MAAM+H,YAAYwC,OAGjG9G,GAAGoR,cAAcpR,EAAGgQ,WAAYhQ,EAAGqR,mBAAoBjB,GACvDpQ,EAAGoR,cAAcpR,EAAGgQ,WAAYhQ,EAAGsR,mBAAoBjB,GACvDrQ,EAAGoR,cAAcpR,EAAGgQ,WAAYhQ,EAAGuR,eAAgBjB,GACnDtQ,EAAGoR,cAAcpR,EAAGgQ,WAAYhQ,EAAGwR,eAAgBhB,GAGvDxQ,EAAGyR,UAAUrC,EAAQF,gBAAiB5W,KAAK0V,cAE3CoB,EAAQE,OAAQ,EAEhBhX,KAAK0V,iBAST5V,EAAK0V,WAAWnS,UAAU+V,aAAe,WAErCpZ,KAAK0V,aAAe,CACpB,IAAIoB,GACApP,EAAK1H,KAAK0H,EAGd,KAAK,GAAIgP,KAAO1W,MAAK2W,SAEjBG,EAAU9W,KAAK2W,SAASD,GAEM,IAA1BI,EAAQK,cAEJL,EAAQI,YAAa,EAErBJ,EAAQM,OAAOtR,KAAK4B,EAAIoP,EAAQF,gBAAiBE,EAAQuC,UAAWvC,EAAQ7S,OAI5E6S,EAAQM,OAAOtR,KAAK4B,EAAIoP,EAAQF,gBAAiBE,EAAQ7S,OAG9B,IAA1B6S,EAAQK,cAEbL,EAAQM,OAAOtR,KAAK4B,EAAIoP,EAAQF,gBAAiBE,EAAQ7S,MAAMyB,EAAGoR,EAAQ7S,MAAM0B,GAEjD,IAA1BmR,EAAQK,cAEbL,EAAQM,OAAOtR,KAAK4B,EAAIoP,EAAQF,gBAAiBE,EAAQ7S,MAAMyB,EAAGoR,EAAQ7S,MAAM0B,EAAGmR,EAAQ7S,MAAMqV,GAElE,IAA1BxC,EAAQK,cAEbL,EAAQM,OAAOtR,KAAK4B,EAAIoP,EAAQF,gBAAiBE,EAAQ7S,MAAMyB,EAAGoR,EAAQ7S,MAAM0B,EAAGmR,EAAQ7S,MAAMqV,EAAGxC,EAAQ7S,MAAMsV,GAE5F,cAAjBzC,EAAQC,OAETD,EAAQE,OAERtP,EAAG8P,cAAc9P,EAAG,UAAY1H,KAAK0V,eAElCoB,EAAQ7S,MAAM+H,YAAYwN,OAAO9R,EAAGkQ,IAEnC9X,EAAK2Z,UAAU/R,EAAGkQ,IAAI8B,cAAc5C,EAAQ7S,MAAM+H,aAKlDtE,EAAG+P,YAAY/P,EAAGgQ,WAAYZ,EAAQ7S,MAAM+H,YAAY2L,YAAYjQ,EAAGkQ,KAI3ElQ,EAAGyR,UAAUrC,EAAQF,gBAAiB5W,KAAK0V,cAC3C1V,KAAK0V,gBAIL1V,KAAKiX,cAAcH,KAYnChX,EAAK0V,WAAWnS,UAAUE,QAAU,WAEhCvD,KAAK0H,GAAGiS,cAAe3Z,KAAKyV,SAC5BzV,KAAK2W,SAAW,KAChB3W,KAAK0H,GAAK,KAEV1H,KAAK6V,WAAa,MAStB/V,EAAK0V,WAAWO,kBACZ,kCACA,gCACA,yBAEA,iCACA,6BAEA,8BACA,uBAEA,uCAEA,oBACA,qGACA,oCACA,qDACA,KAWJjW,EAAK8Z,eAAiB,SAASlS,GAO3B1H,KAAKI,KAAON,EAAKM,OAMjBJ,KAAK0H,GAAKA,EAOV1H,KAAKyV,QAAU,KAOfzV,KAAK+U,aACD,wBACA,8BACA,wBACA,8BACA,oBACA,kEACA,KAQJ/U,KAAK8U,WACD,kCACA,iCACA,yBACA,6BACA,gCACA,0BAEA,iCACA,6BACA,wBAEA,8BACA,wBAEA,uCAEA,oBACA,aACA,yCACA,8DACA,8DACA,2DACA,uEACA,oCAEA,sBACA,KAQJ9U,KAAK0V,aAAe,EAEpB1V,KAAK8V,QAGThW,EAAK8Z,eAAevW,UAAUC,YAAcxD,EAAK8Z,eAOjD9Z,EAAK8Z,eAAevW,UAAUyS,KAAO,WAEjC,GAAIpO,GAAK1H,KAAK0H,GAEV+N,EAAU3V,EAAK+U,eAAenN,EAAI1H,KAAK8U,UAAW9U,KAAK+U,YAE3DrN,GAAGsO,WAAWP,GAGdzV,KAAKiW,SAAWvO,EAAGwO,mBAAmBT,EAAS,YAE/CzV,KAAKmW,iBAAmBzO,EAAGwO,mBAAmBT,EAAS,oBACvDzV,KAAKoW,aAAe1O,EAAGwO,mBAAmBT,EAAS,gBACnDzV,KAAKqW,WAAa3O,EAAGwO,mBAAmBT,EAAS,cACjDzV,KAAK6Z,QAAUnS,EAAGwO,mBAAmBT,EAAS,WAG9CzV,KAAKsW,gBAAkB5O,EAAG6O,kBAAkBd,EAAS,mBACrDzV,KAAK8Z,eAAiBpS,EAAG6O,kBAAkBd,EAAS,kBAEpDzV,KAAK+Z,OAASrS,EAAG6O,kBAAkBd,EAAS,UAC5CzV,KAAKga,UAAYtS,EAAG6O,kBAAkBd,EAAS,aAE/CzV,KAAKwW,cAAgB9O,EAAG6O,kBAAkBd,EAAS,iBACnDzV,KAAKyW,eAAiB/O,EAAG6O,kBAAkBd,EAAS,UAQzB,KAAxBzV,KAAKyW,iBAEJzW,KAAKyW,eAAiB,GAG1BzW,KAAK6V,YAAc7V,KAAKsW,gBAAiBtW,KAAK8Z,eAAiB9Z,KAAK+Z,OAAQ/Z,KAAKga,UAAWha,KAAKwW,cAAexW,KAAKyW,gBAIrHzW,KAAKyV,QAAUA,GAQnB3V,EAAK8Z,eAAevW,UAAUE,QAAU,WAEpCvD,KAAK0H,GAAGiS,cAAe3Z,KAAKyV,SAC5BzV,KAAK2W,SAAW,KAChB3W,KAAK0H,GAAK,KAEV1H,KAAK6V,WAAa,MAYtB/V,EAAKma,YAAc,SAASvS,GAOxB1H,KAAKI,KAAON,EAAKM,OAMjBJ,KAAK0H,GAAKA,EAOV1H,KAAKyV,QAAU,KAOfzV,KAAK+U,aACD,2BACA,8BAEA,uBACA,8BAEA,oBACA,yFAEA,KAQJ/U,KAAK8U,WACD,kCACA,gCACA,kCACA,iCACA,6BAGA,8BAGA,oBACA,+DACA,4BACA,qGACA,oCAEA,KAGJ9U,KAAK8V,QAGThW,EAAKma,YAAY5W,UAAUC,YAAcxD,EAAKma,YAO9Cna,EAAKma,YAAY5W,UAAUyS,KAAO,WAE9B,GAAIpO,GAAK1H,KAAK0H,GAEV+N,EAAU3V,EAAK+U,eAAenN,EAAI1H,KAAK8U,UAAW9U,KAAK+U,YAC3DrN,GAAGsO,WAAWP,GAGdzV,KAAKiW,SAAWvO,EAAGwO,mBAAmBT,EAAS,YAC/CzV,KAAKmW,iBAAmBzO,EAAGwO,mBAAmBT,EAAS,oBACvDzV,KAAKoW,aAAe1O,EAAGwO,mBAAmBT,EAAS,gBACnDzV,KAAKyW,eAAiB/O,EAAG6O,kBAAkBd,EAAS,UAIpDzV,KAAKsW,gBAAkB5O,EAAG6O,kBAAkBd,EAAS,mBACrDzV,KAAKwW,cAAgB9O,EAAG6O,kBAAkBd,EAAS,iBAEnDzV,KAAK6V,YAAc7V,KAAKsW,gBAAiBtW,KAAKwW,eAE9CxW,KAAKka,kBAAoBxS,EAAGwO,mBAAmBT,EAAS,qBACxDzV,KAAKgC,MAAQ0F,EAAGwO,mBAAmBT,EAAS,SAE5CzV,KAAKyV,QAAUA,GAQnB3V,EAAKma,YAAY5W,UAAUE,QAAU,WAEjCvD,KAAK0H,GAAGiS,cAAe3Z,KAAKyV,SAC5BzV,KAAK2W,SAAW,KAChB3W,KAAK0H,GAAK,KAEV1H,KAAKma,UAAY,MAYrBra,EAAKsa,gBAAkB,SAAS1S,GAO5B1H,KAAKI,KAAON,EAAKM,OAMjBJ,KAAK0H,GAAKA,EAOV1H,KAAKyV,QAAU,KAOfzV,KAAK+U,aACD,2BACA,uBAEA,oBACA,4BACA,KAQJ/U,KAAK8U,WACD,kCACA,yBACA,kCACA,iCACA,6BACA,uBACA,uBACA,qBACA,uBAEA,oBACA,+DACA,4BACA,iHACA,kDACA,KAGJ9U,KAAK8V,QAGThW,EAAKsa,gBAAgB/W,UAAUC,YAAcxD,EAAKsa,gBAOlDta,EAAKsa,gBAAgB/W,UAAUyS,KAAO,WAElC,GAAIpO,GAAK1H,KAAK0H,GAEV+N,EAAU3V,EAAK+U,eAAenN,EAAI1H,KAAK8U,UAAW9U,KAAK+U,YAC3DrN,GAAGsO,WAAWP,GAGdzV,KAAKmW,iBAAmBzO,EAAGwO,mBAAmBT,EAAS,oBACvDzV,KAAKoW,aAAe1O,EAAGwO,mBAAmBT,EAAS,gBACnDzV,KAAKqa,UAAY3S,EAAGwO,mBAAmBT,EAAS,QAChDzV,KAAK0Y,MAAQhR,EAAGwO,mBAAmBT,EAAS,SAG5CzV,KAAKsW,gBAAkB5O,EAAG6O,kBAAkBd,EAAS,mBACrDzV,KAAKyW,eAAiB/O,EAAG6O,kBAAkBd,EAAS,UAEpDzV,KAAK6V,YAAc7V,KAAKsW,gBAAiBtW,KAAKyW,gBAE9CzW,KAAKka,kBAAoBxS,EAAGwO,mBAAmBT,EAAS,qBACxDzV,KAAKgC,MAAQ0F,EAAGwO,mBAAmBT,EAAS,SAE5CzV,KAAKyV,QAAUA,GAQnB3V,EAAKsa,gBAAgB/W,UAAUE,QAAU,WAErCvD,KAAK0H,GAAGiS,cAAe3Z,KAAKyV,SAC5BzV,KAAK2W,SAAW,KAChB3W,KAAK0H,GAAK,KAEV1H,KAAK6V,WAAa,MAYtB/V,EAAKwa,uBAAyB,SAAS5S,GAOnC1H,KAAKI,KAAON,EAAKM,OAMjBJ,KAAK0H,GAAKA,EAOV1H,KAAKyV,QAAU,KAOfzV,KAAK+U,aAED,2BAEA,uBAEA,oBACA,4BACA,KAQJ/U,KAAK8U,WACD,kCAEA,kCACA,iCACA,6BAEA,qBACA,uBACA,sBACA,uBACA,uBAEA,oBACA,+DACA,4BACA,iHACA,iDACA,KAGJ9U,KAAK8V,QAGThW,EAAKwa,uBAAuBjX,UAAUC,YAAcxD,EAAKwa,uBAOzDxa,EAAKwa,uBAAuBjX,UAAUyS,KAAO,WAEzC,GAAIpO,GAAK1H,KAAK0H,GAEV+N,EAAU3V,EAAK+U,eAAenN,EAAI1H,KAAK8U,UAAW9U,KAAK+U,YAC3DrN,GAAGsO,WAAWP,GAGdzV,KAAKmW,iBAAmBzO,EAAGwO,mBAAmBT,EAAS,oBACvDzV,KAAKoW,aAAe1O,EAAGwO,mBAAmBT,EAAS,gBACnDzV,KAAKqa,UAAY3S,EAAGwO,mBAAmBT,EAAS,QAChDzV,KAAKua,MAAQ7S,EAAGwO,mBAAmBT,EAAS,SAC5CzV,KAAK0Y,MAAQhR,EAAGwO,mBAAmBT,EAAS,SAG5CzV,KAAKsW,gBAAkB5O,EAAG6O,kBAAkBd,EAAS,mBAGrDzV,KAAK6V,YAAc7V,KAAKsW,gBAAiBtW,KAAKyW,gBAE9CzW,KAAKka,kBAAoBxS,EAAGwO,mBAAmBT,EAAS,qBACxDzV,KAAKgC,MAAQ0F,EAAGwO,mBAAmBT,EAAS,SAE5CzV,KAAKyV,QAAUA,GAQnB3V,EAAKwa,uBAAuBjX,UAAUE,QAAU,WAE5CvD,KAAK0H,GAAGiS,cAAe3Z,KAAKyV,SAC5BzV,KAAK2W,SAAW,KAChB3W,KAAK0H,GAAK,KAEV1H,KAAKma,UAAY,MAcrBra,EAAK0a,cAAgB,aAarB1a,EAAK0a,cAAcC,eAAiB,SAASC,EAAUlT,GAEnD,GAIImT,GAJAjT,EAAKF,EAAcE,GACnBkT,EAAapT,EAAcoT,WAC3BC,EAASrT,EAAcqT,OACvB9O,EAASvE,EAAc8H,cAAcwL,eAGtCJ,GAAS9E,OAER9V,EAAK0a,cAAcO,eAAeL,EAAUhT,EAOhD,KAAK,GAJDsT,GAAQN,EAASO,OAAOvT,EAAGkQ,IAItBnU,EAAI,EAAGA,EAAIuX,EAAM7J,KAAKzN,OAAQD,IAET,IAAvBuX,EAAM7J,KAAK1N,GAAGyX,MAEbP,EAAYK,EAAM7J,KAAK1N,GAEvB+D,EAAc2T,eAAeC,YAAYV,EAAUC,EAAWnT,GAG9DE,EAAG2T,aAAa3T,EAAG4T,aAAc,EAAG5T,EAAG6T,eAAmD,GAAjCZ,EAAUa,QAAQ9X,OAAS,IAEpF8D,EAAc2T,eAAeM,WAAWf,EAAUC,EAAWnT,KAI7DmT,EAAYK,EAAM7J,KAAK1N,GAGvB+D,EAAc8H,cAAcC,UAAWxD,GACvCA,EAASvE,EAAc8H,cAAcwL,gBACrCpT,EAAG4P,iBAAiBvL,EAAOmO,mBAAmB,EAAOQ,EAASnY,eAAemZ,SAAQ,IAErFhU,EAAGiU,UAAU5P,EAAO2M,MAAO,GAE3BhR,EAAGkU,UAAU7P,EAAOoK,iBAAkByE,EAAWlV,GAAIkV,EAAWjV,GAChE+B,EAAGkU,UAAU7P,EAAOqK,cAAeyE,EAAOnV,GAAImV,EAAOlV,GAErD+B,EAAGmU,WAAW9P,EAAOsO,UAAWva,EAAKkQ,QAAQ0K,EAASjP,OAEtD/D,EAAGiU,UAAU5P,EAAO/J,MAAO0Y,EAASpY,YAGpCoF,EAAGoU,WAAWpU,EAAGqU,aAAcpB,EAAUqB,QAEzCtU,EAAGuU,oBAAoBlQ,EAAOuK,gBAAiB,EAAG5O,EAAGwU,OAAO,EAAO,GAAO,GAC1ExU,EAAGuU,oBAAoBlQ,EAAO0K,eAAgB,EAAG/O,EAAGwU,OAAO,EAAM,GAAO,GAGxExU,EAAGoU,WAAWpU,EAAGyU,qBAAsBxB,EAAUyB,aACjD1U,EAAG2T,aAAa3T,EAAG2U,eAAiB1B,EAAUa,QAAQ9X,OAAQgE,EAAG6T,eAAgB;EAc7Fzb,EAAK0a,cAAcO,eAAiB,SAASL,EAAUhT,GAGnD,GAAIsT,GAAQN,EAASO,OAAOvT,EAAGkQ,GAE3BoD,KAAMA,EAAQN,EAASO,OAAOvT,EAAGkQ,KAAO0E,UAAU,EAAGnL,QAASzJ,GAAGA,IAGrEgT,EAAS9E,OAAQ,CAEjB,IAAInS,EAGJ,IAAGiX,EAAS6B,WACZ,CAII,IAHA7B,EAAS6B,YAAa,EAGjB9Y,EAAI,EAAGA,EAAIuX,EAAM7J,KAAKzN,OAAQD,IACnC,CACI,GAAI+Y,GAAexB,EAAM7J,KAAK1N,EAC9B+Y,GAAaC,QACb3c,EAAK0a,cAAckC,iBAAiBnY,KAAMiY,GAI9CxB,EAAM7J,QACN6J,EAAMsB,UAAY,EAGtB,GAAI3B,EAKJ,KAAKlX,EAAIuX,EAAMsB,UAAW7Y,EAAIiX,EAAS8B,aAAa9Y,OAAQD,IAC5D,CACI,GAAI0N,GAAOuJ,EAAS8B,aAAa/Y,EAEjC,IAAG0N,EAAK4F,OAASjX,EAAK6c,SAASC,KAC/B,CAaI,GAXAzL,EAAK0L,OAAS1L,EAAK2L,MAAMD,OAAOE,QAC7B5L,EAAK2L,MAAME,SAGP7L,EAAK0L,OAAO,KAAO1L,EAAK0L,OAAO1L,EAAK0L,OAAOnZ,OAAO,IAAMyN,EAAK0L,OAAO,KAAO1L,EAAK0L,OAAO1L,EAAK0L,OAAOnZ,OAAO,KAEzGyN,EAAK0L,OAAOtY,KAAK4M,EAAK0L,OAAO,GAAI1L,EAAK0L,OAAO,IAKlD1L,EAAK8L,MAED9L,EAAK0L,OAAOnZ,QAAU,EAErB,GAAGyN,EAAK0L,OAAOnZ,OAAS,GACxB,CACIiX,EAAY7a,EAAK0a,cAAc0C,WAAWlC,EAAO,EAEjD,IAAImC,GAAqBrd,EAAK0a,cAAc4C,UAAUjM,EAAMwJ,EAGxDwC,KAGAxC,EAAY7a,EAAK0a,cAAc0C,WAAWlC,EAAO,GACjDlb,EAAK0a,cAAc6C,iBAAiBlM,EAAMwJ,QAM9CA,GAAY7a,EAAK0a,cAAc0C,WAAWlC,EAAO,GACjDlb,EAAK0a,cAAc6C,iBAAiBlM,EAAMwJ,EAKnDxJ,GAAKmM,UAAY,IAEhB3C,EAAY7a,EAAK0a,cAAc0C,WAAWlC,EAAO,GACjDlb,EAAK0a,cAAc+C,UAAUpM,EAAMwJ,QAMvCA,GAAY7a,EAAK0a,cAAc0C,WAAWlC,EAAO,GAE9C7J,EAAK4F,OAASjX,EAAK6c,SAASa,KAE3B1d,EAAK0a,cAAciD,eAAetM,EAAMwJ,GAEpCxJ,EAAK4F,OAASjX,EAAK6c,SAASe,MAAQvM,EAAK4F,OAASjX,EAAK6c,SAASgB,KAEpE7d,EAAK0a,cAAcoD,YAAYzM,EAAMwJ,GAEjCxJ,EAAK4F,OAASjX,EAAK6c,SAASkB,MAEhC/d,EAAK0a,cAAcsD,sBAAsB3M,EAAMwJ,EAIvDK,GAAMsB,YAIV,IAAK7Y,EAAI,EAAGA,EAAIuX,EAAM7J,KAAKzN,OAAQD,IAE/BkX,EAAYK,EAAM7J,KAAK1N,GACpBkX,EAAU/E,OAAM+E,EAAUoD,UAWrCje,EAAK0a,cAAc0C,WAAa,SAASlC,EAAOjE,GAE5C,GAAI4D,EAsBJ,OApBIK,GAAM7J,KAAKzN,QAQXiX,EAAYK,EAAM7J,KAAK6J,EAAM7J,KAAKzN,OAAO,IAEtCiX,EAAUO,OAASnE,GAAiB,IAATA,KAE1B4D,EAAY7a,EAAK0a,cAAckC,iBAAiBsB,OAAS,GAAIle,GAAKme,kBAAkBjD,EAAMtT,IAC1FiT,EAAUO,KAAOnE,EACjBiE,EAAM7J,KAAK5M,KAAKoW,MAZpBA,EAAY7a,EAAK0a,cAAckC,iBAAiBsB,OAAS,GAAIle,GAAKme,kBAAkBjD,EAAMtT,IAC1FiT,EAAUO,KAAOnE,EACjBiE,EAAM7J,KAAK5M,KAAKoW,IAcpBA,EAAU/E,OAAQ,EAEX+E,GAYX7a,EAAK0a,cAAciD,eAAiB,SAASjB,EAAc7B,GAKvD,GAAIuD,GAAW1B,EAAaM,MACxBpX,EAAIwY,EAASxY,EACbC,EAAIuY,EAASvY,EACbkB,EAAQqX,EAASrX,MACjBC,EAASoX,EAASpX,MAEtB,IAAG0V,EAAaS,KAChB,CACI,GAAI1C,GAAQza,EAAKkQ,QAAQwM,EAAa2B,WAClCnc,EAAQwa,EAAa4B,UAErBC,EAAI9D,EAAM,GAAKvY,EACfsc,EAAI/D,EAAM,GAAKvY,EACfgD,EAAIuV,EAAM,GAAKvY,EAEfuc,EAAQ5D,EAAUkC,OAClBrB,EAAUb,EAAUa,QAEpBgD,EAAUD,EAAM7a,OAAO,CAG3B6a,GAAMha,KAAKmB,EAAGC,GACd4Y,EAAMha,KAAK8Z,EAAGC,EAAGtZ,EAAGhD,GAEpBuc,EAAMha,KAAKmB,EAAImB,EAAOlB,GACtB4Y,EAAMha,KAAK8Z,EAAGC,EAAGtZ,EAAGhD,GAEpBuc,EAAMha,KAAKmB,EAAIC,EAAImB,GACnByX,EAAMha,KAAK8Z,EAAGC,EAAGtZ,EAAGhD,GAEpBuc,EAAMha,KAAKmB,EAAImB,EAAOlB,EAAImB,GAC1ByX,EAAMha,KAAK8Z,EAAGC,EAAGtZ,EAAGhD,GAGpBwZ,EAAQjX,KAAKia,EAASA,EAASA,EAAQ,EAAGA,EAAQ,EAAGA,EAAQ,EAAGA,EAAQ,GAG5E,GAAGhC,EAAac,UAChB,CACI,GAAImB,GAAajC,EAAaK,MAE9BL,GAAaK,QAAUnX,EAAGC,EAChBD,EAAImB,EAAOlB,EACXD,EAAImB,EAAOlB,EAAImB,EACfpB,EAAGC,EAAImB,EACPpB,EAAGC,GAGb7F,EAAK0a,cAAc+C,UAAUf,EAAc7B,GAE3C6B,EAAaK,OAAS4B,IAa9B3e,EAAK0a,cAAcsD,sBAAwB,SAAStB,EAAc7B,GAE9D,GAAI+D,GAAYlC,EAAaM,MACzBpX,EAAIgZ,EAAUhZ,EACdC,EAAI+Y,EAAU/Y,EACdkB,EAAQ6X,EAAU7X,MAClBC,EAAS4X,EAAU5X,OAEnB6X,EAASD,EAAUC,OAEnBC,IAOJ,IANAA,EAAUra,KAAKmB,EAAGC,EAAIgZ,GACtBC,EAAYA,EAAUC,OAAO/e,EAAK0a,cAAcsE,qBAAqBpZ,EAAGC,EAAImB,EAAS6X,EAAQjZ,EAAGC,EAAImB,EAAQpB,EAAIiZ,EAAQhZ,EAAImB,IAC5H8X,EAAYA,EAAUC,OAAO/e,EAAK0a,cAAcsE,qBAAqBpZ,EAAImB,EAAQ8X,EAAQhZ,EAAImB,EAAQpB,EAAImB,EAAOlB,EAAImB,EAAQpB,EAAImB,EAAOlB,EAAImB,EAAS6X,IACpJC,EAAYA,EAAUC,OAAO/e,EAAK0a,cAAcsE,qBAAqBpZ,EAAImB,EAAOlB,EAAIgZ,EAAQjZ,EAAImB,EAAOlB,EAAGD,EAAImB,EAAQ8X,EAAQhZ,IAC9HiZ,EAAYA,EAAUC,OAAO/e,EAAK0a,cAAcsE,qBAAqBpZ,EAAIiZ,EAAQhZ,EAAGD,EAAGC,EAAGD,EAAGC,EAAIgZ,IAE7FnC,EAAaS,KAAM,CACnB,GAAI1C,GAAQza,EAAKkQ,QAAQwM,EAAa2B,WAClCnc,EAAQwa,EAAa4B,UAErBC,EAAI9D,EAAM,GAAKvY,EACfsc,EAAI/D,EAAM,GAAKvY,EACfgD,EAAIuV,EAAM,GAAKvY,EAEfuc,EAAQ5D,EAAUkC,OAClBrB,EAAUb,EAAUa,QAEpBuD,EAASR,EAAM7a,OAAO,EAEtBsb,EAAYlf,EAAK0R,MAAMC,YAAYmN,GAInCnb,EAAI,CACR,KAAKA,EAAI,EAAGA,EAAIub,EAAUtb,OAAQD,GAAG,EAEjC+X,EAAQjX,KAAKya,EAAUvb,GAAKsb,GAC5BvD,EAAQjX,KAAKya,EAAUvb,GAAKsb,GAC5BvD,EAAQjX,KAAKya,EAAUvb,EAAE,GAAKsb,GAC9BvD,EAAQjX,KAAKya,EAAUvb,EAAE,GAAKsb,GAC9BvD,EAAQjX,KAAKya,EAAUvb,EAAE,GAAKsb,EAIlC,KAAKtb,EAAI,EAAGA,EAAImb,EAAUlb,OAAQD,IAE9B8a,EAAMha,KAAKqa,EAAUnb,GAAImb,IAAYnb,GAAI4a,EAAGC,EAAGtZ,EAAGhD,GAI1D,GAAIwa,EAAac,UAAW,CACxB,GAAImB,GAAajC,EAAaK,MAE9BL,GAAaK,OAAS+B,EAEtB9e,EAAK0a,cAAc+C,UAAUf,EAAc7B,GAE3C6B,EAAaK,OAAS4B,IAmB9B3e,EAAK0a,cAAcsE,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,EACAra,EACAC,EACAgM,EAAI,GACJkL,KAQAvY,EAAI,EACCb,EAAI,EAAQkO,GAALlO,EAAQA,IAEpBa,EAAIb,EAAIkO,EAGRiO,EAAKL,EAAON,EAAQE,EAAM7a,GAC1Bub,EAAKN,EAAOL,EAAQE,EAAM9a,GAC1Bwb,EAAKP,EAAOJ,EAAME,EAAM/a,GACxByb,EAAKR,EAAOH,EAAME,EAAMhb,GAGxBoB,EAAI6Z,EAAOK,EAAKE,EAAKxb,GACrBqB,EAAI4Z,EAAOM,EAAKE,EAAKzb,GAErBuY,EAAOtY,KAAKmB,EAAGC,EAEnB,OAAOkX,IAYX/c,EAAK0a,cAAcoD,YAAc,SAASpB,EAAc7B,GAGpD,GAGI9T,GACAC,EAJAkZ,EAAaxD,EAAaM,MAC1BpX,EAAIsa,EAAWta,EACfC,EAAIqa,EAAWra,CAKhB6W,GAAazF,OAASjX,EAAK6c,SAASe,MAEnC7W,EAAQmZ,EAAWrB,OACnB7X,EAASkZ,EAAWrB,SAIpB9X,EAAQmZ,EAAWnZ,MACnBC,EAASkZ,EAAWlZ,OAGxB,IAAImZ,GAAY,GACZC,EAAiB,EAAVvf,KAAKC,GAAUqf,EAEtBxc,EAAI,CAER,IAAG+Y,EAAaS,KAChB,CACI,GAAI1C,GAAQza,EAAKkQ,QAAQwM,EAAa2B,WAClCnc,EAAQwa,EAAa4B,UAErBC,EAAI9D,EAAM,GAAKvY,EACfsc,EAAI/D,EAAM,GAAKvY,EACfgD,EAAIuV,EAAM,GAAKvY,EAEfuc,EAAQ5D,EAAUkC,OAClBrB,EAAUb,EAAUa,QAEpBuD,EAASR,EAAM7a,OAAO,CAI1B,KAFA8X,EAAQjX,KAAKwa,GAERtb,EAAI,EAAOwc,EAAY,EAAhBxc,EAAoBA,IAE5B8a,EAAMha,KAAKmB,EAAEC,EAAG0Y,EAAGC,EAAGtZ,EAAGhD,GAEzBuc,EAAMha,KAAKmB,EAAI/E,KAAK6E,IAAI0a,EAAMzc,GAAKoD,EACxBlB,EAAIhF,KAAK8E,IAAIya,EAAMzc,GAAKqD,EACxBuX,EAAGC,EAAGtZ,EAAGhD,GAEpBwZ,EAAQjX,KAAKwa,IAAUA,IAG3BvD,GAAQjX,KAAKwa,EAAO,GAGxB,GAAGvC,EAAac,UAChB,CACI,GAAImB,GAAajC,EAAaK,MAI9B,KAFAL,EAAaK,UAERpZ,EAAI,EAAOwc,EAAY,EAAhBxc,EAAmBA,IAE3B+Y,EAAaK,OAAOtY,KAAKmB,EAAI/E,KAAK6E,IAAI0a,EAAMzc,GAAKoD,EACxBlB,EAAIhF,KAAK8E,IAAIya,EAAMzc,GAAKqD,EAGrDhH,GAAK0a,cAAc+C,UAAUf,EAAc7B,GAE3C6B,EAAaK,OAAS4B,IAa9B3e,EAAK0a,cAAc+C,UAAY,SAASf,EAAc7B,GAGlD,GAAIlX,GAAI,EACJoZ,EAASL,EAAaK,MAC1B,IAAqB,IAAlBA,EAAOnZ,OAAV,CAGA,GAAG8Y,EAAac,UAAU,EAEtB,IAAK7Z,EAAI,EAAGA,EAAIoZ,EAAOnZ,OAAQD,IAC3BoZ,EAAOpZ,IAAM,EAKrB,IAAI0c,GAAa,GAAIrgB,GAAK4B,MAAOmb,EAAO,GAAIA,EAAO,IAC/CuD,EAAY,GAAItgB,GAAK4B,MAAOmb,EAAOA,EAAOnZ,OAAS,GAAImZ,EAAOA,EAAOnZ,OAAS,GAGlF,IAAGyc,EAAWza,IAAM0a,EAAU1a,GAAKya,EAAWxa,IAAMya,EAAUza,EAC9D,CAEIkX,EAASA,EAAOE,QAEhBF,EAAOmB,MACPnB,EAAOmB,MAEPoC,EAAY,GAAItgB,GAAK4B,MAAOmb,EAAOA,EAAOnZ,OAAS,GAAImZ,EAAOA,EAAOnZ,OAAS,GAE9E,IAAI2c,GAAYD,EAAU1a,EAAkC,IAA7Bya,EAAWza,EAAI0a,EAAU1a,GACpD4a,EAAYF,EAAUza,EAAkC,IAA7Bwa,EAAWxa,EAAIya,EAAUza,EAExDkX,GAAO0D,QAAQF,EAAWC,GAC1BzD,EAAOtY,KAAK8b,EAAWC,GAG3B,GAgBI5N,GAAIC,EAAI6N,EAAKC,EAAKC,EAAKC,EAAKC,EAAKC,EACjCC,EAAOC,EAAOC,EAAQC,EAAQC,EAAQC,EACtCC,EAAIC,EAAIC,EAAIC,EAAIC,EAAIC,EACpBC,EAAOC,EAAOC,EAnBdrD,EAAQ5D,EAAUkC,OAClBrB,EAAUb,EAAUa,QACpB9X,EAASmZ,EAAOnZ,OAAS,EACzBme,EAAahF,EAAOnZ,OACpBoe,EAAavD,EAAM7a,OAAO,EAG1BmD,EAAQ2V,EAAac,UAAY,EAGjC/C,EAAQza,EAAKkQ,QAAQwM,EAAauF,WAClC/f,EAAQwa,EAAawF,UACrB3D,EAAI9D,EAAM,GAAKvY,EACfsc,EAAI/D,EAAM,GAAKvY,EACfgD,EAAIuV,EAAM,GAAKvY,CA8BnB,KAvBAwe,EAAM3D,EAAO,GACb4D,EAAM5D,EAAO,GAEb6D,EAAM7D,EAAO,GACb8D,EAAM9D,EAAO,GAEbiE,IAAUL,EAAME,GAChBI,EAASP,EAAME,EAEfkB,EAAOjhB,KAAKiF,KAAKkb,EAAMA,EAAQC,EAAMA,GAErCD,GAASc,EACTb,GAASa,EACTd,GAASja,EACTka,GAASla,EAGT0X,EAAMha,KAAKic,EAAMM,EAAQL,EAAMM,EACnB1C,EAAGC,EAAGtZ,EAAGhD,GAErBuc,EAAMha,KAAKic,EAAMM,EAAQL,EAAMM,EACnB1C,EAAGC,EAAGtZ,EAAGhD,GAEhByB,EAAI,EAAOC,EAAO,EAAXD,EAAcA,IAEtB+c,EAAM3D,EAAa,GAALpZ,EAAE,IAChBgd,EAAM5D,EAAa,GAALpZ,EAAE,GAAO,GAEvBid,EAAM7D,EAAW,EAAJ,GACb8D,EAAM9D,EAAW,EAAJ,EAAQ,GAErB+D,EAAM/D,EAAa,GAALpZ,EAAE,IAChBod,EAAMhE,EAAa,GAALpZ,EAAE,GAAO,GAEvBqd,IAAUL,EAAME,GAChBI,EAAQP,EAAME,EAEdkB,EAAOjhB,KAAKiF,KAAKkb,EAAMA,EAAQC,EAAMA,GACrCD,GAASc,EACTb,GAASa,EACTd,GAASja,EACTka,GAASla,EAETma,IAAWL,EAAME,GACjBI,EAASP,EAAME,EAEfgB,EAAOjhB,KAAKiF,KAAKob,EAAOA,EAASC,EAAOA,GACxCD,GAAUY,EACVX,GAAUW,EACVZ,GAAUna,EACVoa,GAAUpa,EAEVua,GAAOL,EAAQN,IAASM,EAAQJ,GAChCU,GAAOP,EAAQJ,IAASI,EAAQN,GAChCc,IAAOR,EAAQN,KAASO,EAAQJ,KAASG,EAAQJ,KAASK,EAAQN,GAClEc,GAAON,EAASJ,IAASI,EAASN,GAClCa,GAAOR,EAASN,IAASM,EAASJ,GAClCa,IAAOT,EAASJ,KAASK,EAASN,KAASK,EAASN,KAASO,EAASJ,GAEtEa,EAAQN,EAAGI,EAAKD,EAAGF,EAEhB1gB,KAAKshB,IAAIP,GAAS,IAGjBA,GAAO,KACPnD,EAAMha,KAAKmc,EAAMI,EAAQH,EAAMI,EAC3B1C,EAAGC,EAAGtZ,EAAGhD,GAEbuc,EAAMha,KAAKmc,EAAMI,EAAQH,EAAMI,EAC3B1C,EAAGC,EAAGtZ,EAAGhD,KAKjB0Q,GAAM2O,EAAGI,EAAKD,EAAGF,GAAII,EACrB/O,GAAM4O,EAAGD,EAAKF,EAAGK,GAAIC,EAGrBC,GAASjP,EAAIgO,IAAQhO,EAAIgO,IAAQ/N,EAAIgO,IAAQhO,EAAIgO,GAG9CgB,EAAQ,OAEPT,EAASJ,EAAQE,EACjBG,EAASJ,EAAQE,EAEjBW,EAAOjhB,KAAKiF,KAAKsb,EAAOA,EAASC,EAAOA,GACxCD,GAAUU,EACVT,GAAUS,EACVV,GAAUra,EACVsa,GAAUta,EAEV0X,EAAMha,KAAKmc,EAAMQ,EAAQP,EAAKQ,GAC9B5C,EAAMha,KAAK8Z,EAAGC,EAAGtZ,EAAGhD,GAEpBuc,EAAMha,KAAKmc,EAAMQ,EAAQP,EAAKQ,GAC9B5C,EAAMha,KAAK8Z,EAAGC,EAAGtZ,EAAGhD,GAEpBuc,EAAMha,KAAKmc,EAAMQ,EAAQP,EAAKQ,GAC9B5C,EAAMha,KAAK8Z,EAAGC,EAAGtZ,EAAGhD,GAEpB6f,MAKAtD,EAAMha,KAAKmO,EAAKC,GAChB4L,EAAMha,KAAK8Z,EAAGC,EAAGtZ,EAAGhD,GAEpBuc,EAAMha,KAAKmc,GAAOhO,EAAGgO,GAAMC,GAAOhO,EAAKgO,IACvCpC,EAAMha,KAAK8Z,EAAGC,EAAGtZ,EAAGhD,IA2B5B,KAvBAwe,EAAM3D,EAAkB,GAAVnZ,EAAO,IACrB+c,EAAM5D,EAAkB,GAAVnZ,EAAO,GAAO,GAE5Bgd,EAAM7D,EAAkB,GAAVnZ,EAAO,IACrBid,EAAM9D,EAAkB,GAAVnZ,EAAO,GAAO,GAE5Bod,IAAUL,EAAME,GAChBI,EAAQP,EAAME,EAEdkB,EAAOjhB,KAAKiF,KAAKkb,EAAMA,EAAQC,EAAMA,GACrCD,GAASc,EACTb,GAASa,EACTd,GAASja,EACTka,GAASla,EAET0X,EAAMha,KAAKmc,EAAMI,EAAQH,EAAMI,GAC/BxC,EAAMha,KAAK8Z,EAAGC,EAAGtZ,EAAGhD,GAEpBuc,EAAMha,KAAKmc,EAAMI,EAAQH,EAAMI,GAC/BxC,EAAMha,KAAK8Z,EAAGC,EAAGtZ,EAAGhD,GAEpBwZ,EAAQjX,KAAKud,GAERre,EAAI,EAAOoe,EAAJpe,EAAgBA,IAExB+X,EAAQjX,KAAKud,IAGjBtG,GAAQjX,KAAKud,EAAW,KAY5BhiB,EAAK0a,cAAc6C,iBAAmB,SAASb,EAAc7B,GAGzD,GAAIkC,GAASL,EAAaK,OAAOE,OACjC,MAAGF,EAAOnZ,OAAS,GAAnB,CAGA,GAAI8X,GAAUb,EAAUa,OACxBb,GAAUkC,OAASA,EACnBlC,EAAU3Y,MAAQwa,EAAa4B,UAC/BzD,EAAUJ,MAAQza,EAAKkQ,QAAQwM,EAAa2B,UAc5C,KAAK,GAHDzY,GAAEC,EANF0E,EAAOC,IACPE,GAAQF,IAERC,EAAOD,IACPG,GAAQH,IAKH7G,EAAI,EAAGA,EAAIoZ,EAAOnZ,OAAQD,GAAG,EAElCiC,EAAImX,EAAOpZ,GACXkC,EAAIkX,EAAOpZ,EAAE,GAEb4G,EAAWA,EAAJ3E,EAAWA,EAAI2E,EACtBG,EAAO9E,EAAI8E,EAAO9E,EAAI8E,EAEtBD,EAAWA,EAAJ5E,EAAWA,EAAI4E,EACtBE,EAAO9E,EAAI8E,EAAO9E,EAAI8E,CAI1BoS,GAAOtY,KAAK8F,EAAME,EACNC,EAAMD,EACNC,EAAMC,EACNJ,EAAMI,EAKlB,IAAI/G,GAASmZ,EAAOnZ,OAAS,CAC7B,KAAKD,EAAI,EAAOC,EAAJD,EAAYA,IAEpB+X,EAAQjX,KAAMd,KActB3D,EAAK0a,cAAc4C,UAAY,SAASZ,EAAc7B,GAElD,GAAIkC,GAASL,EAAaK,MAE1B,MAAGA,EAAOnZ,OAAS,GAAnB,CAEA,GAAI6a,GAAQ5D,EAAUkC,OAClBrB,EAAUb,EAAUa,QAEpB9X,EAASmZ,EAAOnZ,OAAS,EAGzB6W,EAAQza,EAAKkQ,QAAQwM,EAAa2B,WAClCnc,EAAQwa,EAAa4B,UACrBC,EAAI9D,EAAM,GAAKvY,EACfsc,EAAI/D,EAAM,GAAKvY,EACfgD,EAAIuV,EAAM,GAAKvY,EAEfgd,EAAYlf,EAAK0R,MAAMC,YAAYoL,EAEvC,KAAImC,EAAU,OAAO,CAErB,IAAIR,GAAUD,EAAM7a,OAAS,EAEzBD,EAAI,CAER,KAAKA,EAAI,EAAGA,EAAIub,EAAUtb,OAAQD,GAAG,EAEjC+X,EAAQjX,KAAKya,EAAUvb,GAAK+a,GAC5BhD,EAAQjX,KAAKya,EAAUvb,GAAK+a,GAC5BhD,EAAQjX,KAAKya,EAAUvb,EAAE,GAAK+a,GAC9BhD,EAAQjX,KAAKya,EAAUvb,EAAE,GAAI+a,GAC7BhD,EAAQjX,KAAKya,EAAUvb,EAAE,GAAK+a,EAGlC,KAAK/a,EAAI,EAAOC,EAAJD,EAAYA,IAEpB8a,EAAMha,KAAKsY,EAAW,EAAJpZ,GAAQoZ,EAAW,EAAJpZ,EAAQ,GAC9B4a,EAAGC,EAAGtZ,EAAGhD,EAGxB,QAAO,IAGXlC,EAAK0a,cAAckC,oBAOnB5c,EAAKme,kBAAoB,SAASvW,GAE9B1H,KAAK0H,GAAKA,EAGV1H,KAAKua,OAAS,EAAE,EAAE,GAClBva,KAAK6c,UACL7c,KAAKwb,WACLxb,KAAKgc,OAAStU,EAAGwa,eACjBliB,KAAKoc,YAAc1U,EAAGwa,eACtBliB,KAAKkb,KAAO,EACZlb,KAAKgC,MAAQ,EACbhC,KAAK4V,OAAQ,GAMjB9V,EAAKme,kBAAkB5a,UAAUoZ,MAAQ,WAErCzc,KAAK6c,UACL7c,KAAKwb,YAMT1b,EAAKme,kBAAkB5a,UAAU0a,OAAS,WAEtC,GAAIrW,GAAK1H,KAAK0H,EAGd1H,MAAKmiB,SAAW,GAAIriB,GAAKO,aAAaL,KAAK6c,QAE3CnV,EAAGoU,WAAWpU,EAAGqU,aAAc/b,KAAKgc,QACpCtU,EAAG0a,WAAW1a,EAAGqU,aAAc/b,KAAKmiB,SAAUza,EAAG2a,aAEjDriB,KAAKsiB,WAAa,GAAIxiB,GAAKQ,YAAYN,KAAKwb,SAE5C9T,EAAGoU,WAAWpU,EAAGyU,qBAAsBnc,KAAKoc,aAC5C1U,EAAG0a,WAAW1a,EAAGyU,qBAAsBnc,KAAKsiB,WAAY5a,EAAG2a,aAE3DriB,KAAK4V,OAAQ,GAOjB9V,EAAKyiB,cACLziB,EAAK2Z,aAoBL3Z,EAAK0iB,cAAgB,SAAS3b,EAAOC,EAAQ2b,GAEzC,GAAGA,EAEC,IAAK,GAAIhf,KAAK3D,GAAKkB,qBAEIyI,SAAfgZ,EAAQhf,KAAkBgf,EAAQhf,GAAK3D,EAAKkB,qBAAqByC,QAKzEgf,GAAU3iB,EAAKkB,oBAGflB,GAAK4iB,kBAEL5iB,EAAK4iB,gBAAkB1iB,MAO3BA,KAAK+W,KAAOjX,EAAKG,eASjBD,KAAKqB,WAAaohB,EAAQphB,WAU1BrB,KAAKkB,YAAcuhB,EAAQvhB,YAQ3BlB,KAAKuB,WAAakhB,EAAQlhB,aAAc,EAQxCvB,KAAKoB,sBAAwBqhB,EAAQrhB,sBAYrCpB,KAAKsB,kBAAoBmhB,EAAQnhB,kBASjCtB,KAAK6G,MAAQA,GAAS,IAStB7G,KAAK8G,OAASA,GAAU,IAQxB9G,KAAKiB,KAAOwhB,EAAQxhB,MAAQuP,SAASQ,cAAc,UAOnDhR,KAAK2iB,iBACD3gB,MAAOhC,KAAKkB,YACZC,UAAWshB,EAAQthB,UACnByhB,mBAAmB5iB,KAAKkB,aAAoC,kBAArBlB,KAAKkB,YAC5C2hB,SAAQ,EACRzhB,sBAAuBqhB,EAAQrhB,uBAOnCpB,KAAK4a,WAAa,GAAI9a,GAAK4B,MAM3B1B,KAAK6a,OAAS,GAAI/a,GAAK4B,MAAM,EAAG,GAShC1B,KAAKsP,cAAgB,GAAIxP,GAAKgjB,mBAO9B9iB,KAAK4K,YAAc,GAAI9K,GAAKijB,iBAO5B/iB,KAAKiL,YAAc,GAAInL,GAAKkjB,iBAO5BhjB,KAAK8K,cAAgB,GAAIhL,GAAKmjB,mBAO9BjjB,KAAKmb,eAAiB,GAAIrb,GAAKojB,oBAO/BljB,KAAKmjB,iBAAmB,GAAIrjB,GAAKsjB,sBAOjCpjB,KAAKwH,iBACLxH,KAAKwH,cAAcE,GAAK1H,KAAK0H,GAC7B1H,KAAKwH,cAAc6b,UAAY,EAC/BrjB,KAAKwH,cAAc8H,cAAgBtP,KAAKsP,cACxCtP,KAAKwH,cAAcyD,YAAcjL,KAAKiL,YACtCjL,KAAKwH,cAAcsD,cAAgB9K,KAAK8K,cACxC9K,KAAKwH,cAAc2b,iBAAmBnjB,KAAKmjB,iBAC3CnjB,KAAKwH,cAAcoD,YAAc5K,KAAK4K,YACtC5K,KAAKwH,cAAc2T,eAAiBnb,KAAKmb,eACzCnb,KAAKwH,cAAcf,SAAWzG,KAC9BA,KAAKwH,cAAcnG,WAAarB,KAAKqB,WAGrCrB,KAAKsjB,cAGLtjB,KAAKujB,iBAITzjB,EAAK0iB,cAAcnf,UAAUC,YAAcxD,EAAK0iB,cAKhD1iB,EAAK0iB,cAAcnf,UAAUigB,YAAc,WAEvC,GAAI5b,GAAK1H,KAAKiB,KAAKgQ,WAAW,QAASjR,KAAK2iB,kBAAoB3iB,KAAKiB,KAAKgQ,WAAW,qBAAsBjR,KAAK2iB,gBAGhH,IAFA3iB,KAAK0H,GAAKA,GAELA,EAED,KAAM,IAAImB,OAAM,qEAGpB7I,MAAKwjB,YAAc9b,EAAGkQ,GAAK9X,EAAK0iB,cAAcgB,cAE9C1jB,EAAKyiB,WAAWviB,KAAKwjB,aAAe9b,EAEpC5H,EAAK2Z,UAAUzZ,KAAKwjB,aAAexjB,KAGnC0H,EAAG+b,QAAQ/b,EAAGgc,YACdhc,EAAG+b,QAAQ/b,EAAGic,WACdjc,EAAGkc,OAAOlc,EAAGmc,OAGb7jB,KAAKsP,cAAcD,WAAW3H,GAC9B1H,KAAK4K,YAAYyE,WAAW3H,GAC5B1H,KAAKiL,YAAYoE,WAAW3H,GAC5B1H,KAAK8K,cAAcuE,WAAW3H,GAC9B1H,KAAKmjB,iBAAiB9T,WAAW3H,GACjC1H,KAAKmb,eAAe9L,WAAW3H,GAE/B1H,KAAKwH,cAAcE,GAAK1H,KAAK0H,GAG7B1H,KAAK+H,OAAO/H,KAAK6G,MAAO7G,KAAK8G,SASjChH,EAAK0iB,cAAcnf,UAAU2D,OAAS,SAAS3E,GAG3C,IAAIrC,KAAK8jB,YAAT,CAGI9jB,KAAK+jB,UAAY1hB,IAIjBrC,KAAK+jB,QAAU1hB,GAInBA,EAAMsC,iBAEN,IAAI+C,GAAK1H,KAAK0H,EAGdA,GAAGsc,SAAS,EAAG,EAAGhkB,KAAK6G,MAAO7G,KAAK8G,QAGnCY,EAAGuc,gBAAgBvc,EAAGwc,YAAa,MAE/BlkB,KAAKsB,oBAEDtB,KAAKkB,YAELwG,EAAGyc,WAAW,EAAG,EAAG,EAAG,GAIvBzc,EAAGyc,WAAW9hB,EAAM0N,qBAAqB,GAAG1N,EAAM0N,qBAAqB,GAAG1N,EAAM0N,qBAAqB,GAAI,GAG7GrI,EAAG0c,MAAO1c,EAAG2c,mBAGjBrkB,KAAKskB,oBAAqBjiB,EAAOrC,KAAK4a,cAW1C9a,EAAK0iB,cAAcnf,UAAUihB,oBAAsB,SAASC,EAAe3J,EAAYoB,EAAQ/V,GAE3FjG,KAAKwH,cAAc2b,iBAAiBqB,aAAa1kB,EAAK+L,WAAWC,QAGjE9L,KAAKwH,cAAc6b,UAAY,EAG/BrjB,KAAKwH,cAAckR,MAAQsD,EAAS,GAAK,EAGzChc,KAAKwH,cAAcoT,WAAaA,EAGhC5a,KAAKwH,cAAcqT,OAAS7a,KAAK6a,OAGjC7a,KAAK4K,YAAYf,MAAM7J,KAAKwH,eAG5BxH,KAAK8K,cAAcjB,MAAM7J,KAAKwH,cAAewU,GAG7CuI,EAAc3c,aAAa5H,KAAKwH,cAAevB,GAG/CjG,KAAK4K,YAAYd,OAUrBhK,EAAK0iB,cAAcnf,UAAU0E,OAAS,SAASlB,EAAOC,GAElD9G,KAAK6G,MAAQA,EAAQ7G,KAAKqB,WAC1BrB,KAAK8G,OAASA,EAAS9G,KAAKqB,WAE5BrB,KAAKiB,KAAK4F,MAAQ7G,KAAK6G,MACvB7G,KAAKiB,KAAK6F,OAAS9G,KAAK8G,OAEpB9G,KAAKuB,aACLvB,KAAKiB,KAAKwjB,MAAM5d,MAAQ7G,KAAK6G,MAAQ7G,KAAKqB,WAAa,KACvDrB,KAAKiB,KAAKwjB,MAAM3d,OAAS9G,KAAK8G,OAAS9G,KAAKqB,WAAa,MAG7DrB,KAAK0H,GAAGsc,SAAS,EAAG,EAAGhkB,KAAK6G,MAAO7G,KAAK8G,QAExC9G,KAAK4a,WAAWlV,EAAK1F,KAAK6G,MAAQ,EAAI7G,KAAKqB,WAC3CrB,KAAK4a,WAAWjV,GAAM3F,KAAK8G,OAAS,EAAI9G,KAAKqB,YASjDvB,EAAK0iB,cAAcnf,UAAUqW,cAAgB,SAAS5R,GAElD,GAAKA,EAAQmE,UAAb,CAKA,GAAIvE,GAAK1H,KAAK0H,EAsCd,OApCKI,GAAQ6P,YAAYjQ,EAAGkQ,MAExB9P,EAAQ6P,YAAYjQ,EAAGkQ,IAAMlQ,EAAGgd,iBAGpChd,EAAG+P,YAAY/P,EAAGgQ,WAAY5P,EAAQ6P,YAAYjQ,EAAGkQ,KAErDlQ,EAAG8Q,YAAY9Q,EAAGid,+BAAgC7c,EAAQ8a,oBAE1Dlb,EAAGkR,WAAWlR,EAAGgQ,WAAY,EAAGhQ,EAAG2Q,KAAM3Q,EAAG2Q,KAAM3Q,EAAGmR,cAAe/Q,EAAQ0G,QAE5E9G,EAAGoR,cAAcpR,EAAGgQ,WAAYhQ,EAAGqR,mBAAoBjR,EAAQtB,YAAc1G,EAAK2N,WAAWC,OAAShG,EAAGgG,OAAShG,EAAGkd,SAEjH9c,EAAQ+c,QAAU/kB,EAAKyR,aAAazJ,EAAQjB,MAAOiB,EAAQhB,SAE3DY,EAAGoR,cAAcpR,EAAGgQ,WAAYhQ,EAAGsR,mBAAoBlR,EAAQtB,YAAc1G,EAAK2N,WAAWC,OAAShG,EAAGod,qBAAuBpd,EAAGqd,wBACnIrd,EAAGsd,eAAetd,EAAGgQ,aAIrBhQ,EAAGoR,cAAcpR,EAAGgQ,WAAYhQ,EAAGsR,mBAAoBlR,EAAQtB,YAAc1G,EAAK2N,WAAWC,OAAShG,EAAGgG,OAAShG,EAAGkd,SAGpH9c,EAAQmd,WAOTvd,EAAGoR,cAAcpR,EAAGgQ,WAAYhQ,EAAGuR,eAAgBvR,EAAG6Q,QACtD7Q,EAAGoR,cAAcpR,EAAGgQ,WAAYhQ,EAAGwR,eAAgBxR,EAAG6Q,UANtD7Q,EAAGoR,cAAcpR,EAAGgQ,WAAYhQ,EAAGuR,eAAgBvR,EAAGuQ,eACtDvQ,EAAGoR,cAAcpR,EAAGgQ,WAAYhQ,EAAGwR,eAAgBxR,EAAGuQ,gBAQ1DnQ,EAAQ0R,OAAO9R,EAAGkQ,KAAM,EAEhB9P,EAAQ6P,YAAYjQ,EAAGkQ,MASnC9X,EAAK0iB,cAAcnf,UAAUE,QAAU,WAEnCzD,EAAKyiB,WAAWviB,KAAKwjB,aAAe,KAEpCxjB,KAAK4a,WAAa,KAClB5a,KAAK6a,OAAS,KAEd7a,KAAKsP,cAAc/L,UACnBvD,KAAK4K,YAAYrH,UACjBvD,KAAKiL,YAAY1H,UACjBvD,KAAK8K,cAAcvH,UAEnBvD,KAAKsP,cAAgB,KACrBtP,KAAK4K,YAAc,KACnB5K,KAAKiL,YAAc,KACnBjL,KAAK8K,cAAgB,KAErB9K,KAAK0H,GAAK,KACV1H,KAAKwH,cAAgB,KAErB1H,EAAK2Z,UAAUzZ,KAAKwjB,aAAe,KAEnC1jB,EAAK0iB,cAAcgB,eAQvB1jB,EAAK0iB,cAAcnf,UAAUkgB,cAAgB,WAEzC,GAAI7b,GAAK1H,KAAK0H,EAET5H,GAAKolB,kBAENplB,EAAKolB,mBAELplB,EAAKolB,gBAAgBplB,EAAK+L,WAAWC,SAAkBpE,EAAGyd,IAAWzd,EAAG0d,qBACxEtlB,EAAKolB,gBAAgBplB,EAAK+L,WAAWwZ,MAAkB3d,EAAG4d,UAAW5d,EAAG6d,WACxEzlB,EAAKolB,gBAAgBplB,EAAK+L,WAAW2Z,WAAkB9d,EAAG+d,UAAW/d,EAAG0d,qBACxEtlB,EAAKolB,gBAAgBplB,EAAK+L,WAAW6Z,SAAkBhe,EAAG4d,UAAW5d,EAAGyd,KACxErlB,EAAKolB,gBAAgBplB,EAAK+L,WAAW8Z,UAAkBje,EAAGyd,IAAWzd,EAAG0d,qBACxEtlB,EAAKolB,gBAAgBplB,EAAK+L,WAAW+Z,SAAkBle,EAAGyd,IAAWzd,EAAG0d,qBACxEtlB,EAAKolB,gBAAgBplB,EAAK+L,WAAWga,UAAkBne,EAAGyd,IAAWzd,EAAG0d,qBACxEtlB,EAAKolB,gBAAgBplB,EAAK+L,WAAWia,cAAkBpe,EAAGyd,IAAWzd,EAAG0d,qBACxEtlB,EAAKolB,gBAAgBplB,EAAK+L,WAAWka,aAAkBre,EAAGyd,IAAWzd,EAAG0d,qBACxEtlB,EAAKolB,gBAAgBplB,EAAK+L,WAAWma,aAAkBte,EAAGyd,IAAWzd,EAAG0d,qBACxEtlB,EAAKolB,gBAAgBplB,EAAK+L,WAAWoa,aAAkBve,EAAGyd,IAAWzd,EAAG0d,qBACxEtlB,EAAKolB,gBAAgBplB,EAAK+L,WAAWqa,aAAkBxe,EAAGyd,IAAWzd,EAAG0d,qBACxEtlB,EAAKolB,gBAAgBplB,EAAK+L,WAAWsa,YAAkBze,EAAGyd,IAAWzd,EAAG0d,qBACxEtlB,EAAKolB,gBAAgBplB,EAAK+L,WAAWua,MAAkB1e,EAAGyd,IAAWzd,EAAG0d,qBACxEtlB,EAAKolB,gBAAgBplB,EAAK+L,WAAWwa,aAAkB3e,EAAGyd,IAAWzd,EAAG0d,qBACxEtlB,EAAKolB,gBAAgBplB,EAAK+L,WAAWya,QAAkB5e,EAAGyd,IAAWzd,EAAG0d,qBACxEtlB,EAAKolB,gBAAgBplB,EAAK+L,WAAW0a,aAAkB7e,EAAGyd,IAAWzd,EAAG0d,uBAIhFtlB,EAAK0iB,cAAcgB,YAAc,EAWjC1jB,EAAKsjB,sBAAwB,WAMzBpjB,KAAKmN,iBAAmB,OAG5BrN,EAAKsjB,sBAAsB/f,UAAUC,YAAcxD,EAAKsjB,sBAQxDtjB,EAAKsjB,sBAAsB/f,UAAUgM,WAAa,SAAS3H,GAEvD1H,KAAK0H,GAAKA,GASd5H,EAAKsjB,sBAAsB/f,UAAUmhB,aAAe,SAAS5Y,GAEzD,GAAG5L,KAAKmN,mBAAqBvB,EAAU,OAAO,CAE9C5L,MAAKmN,iBAAmBvB,CAExB,IAAI4a,GAAiB1mB,EAAKolB,gBAAgBllB,KAAKmN,iBAG/C,OAFAnN,MAAK0H,GAAG+e,UAAUD,EAAe,GAAIA,EAAe,KAE7C,GAQX1mB,EAAKsjB,sBAAsB/f,UAAUE,QAAU,WAE3CvD,KAAK0H,GAAK,MAYd5H,EAAKkjB,iBAAmB,aAIxBljB,EAAKkjB,iBAAiB3f,UAAUC,YAAcxD,EAAKkjB,iBAQnDljB,EAAKkjB,iBAAiB3f,UAAUgM,WAAa,SAAS3H,GAElD1H,KAAK0H,GAAKA,GAUd5H,EAAKkjB,iBAAiB3f,UAAU6H,SAAW,SAASwb,EAAUlf,GAE1D,GAAIE,GAAKF,EAAcE,EAEpBgf,GAAS9Q,OAER9V,EAAK0a,cAAcO,eAAe2L,EAAUhf,GAG5Cgf,EAASzL,OAAOvT,EAAGkQ,IAAIzG,KAAKzN,QAEhC8D,EAAc2T,eAAeC,YAAYsL,EAAUA,EAASzL,OAAOvT,EAAGkQ,IAAIzG,KAAK,GAAI3J,IAUvF1H,EAAKkjB,iBAAiB3f,UAAUgI,QAAU,SAASqb,EAAUlf,GAEzD,GAAIE,GAAK1H,KAAK0H,EACdF,GAAc2T,eAAeM,WAAWiL,EAAUA,EAASzL,OAAOvT,EAAGkQ,IAAIzG,KAAK,GAAI3J,IAQtF1H,EAAKkjB,iBAAiB3f,UAAUE,QAAU,WAEtCvD,KAAK0H,GAAK,MAYd5H,EAAKojB,oBAAsB,WAEvBljB,KAAK2mB,gBACL3mB,KAAK4mB,SAAU,EACf5mB,KAAK6mB,MAAQ,GASjB/mB,EAAKojB,oBAAoB7f,UAAUgM,WAAa,SAAS3H,GAErD1H,KAAK0H,GAAKA,GAWd5H,EAAKojB,oBAAoB7f,UAAU+X,YAAc,SAASV,EAAUC,EAAWnT,GAE3E,GAAIE,GAAK1H,KAAK0H,EACd1H,MAAK8mB,aAAapM,EAAUC,EAAWnT,GAEP,IAA7BxH,KAAK2mB,aAAajjB,SAEjBgE,EAAGkc,OAAOlc,EAAGqf,cACbrf,EAAG0c,MAAM1c,EAAGsf,oBACZhnB,KAAK4mB,SAAU,EACf5mB,KAAK6mB,MAAQ,GAGjB7mB,KAAK2mB,aAAapiB,KAAKoW,EAEvB,IAAIsM,GAAQjnB,KAAK6mB,KAEjBnf,GAAGwf,WAAU,GAAO,GAAO,GAAO,GAElCxf,EAAGyf,YAAYzf,EAAG0f,OAAO,EAAE,KAC3B1f,EAAG2f,UAAU3f,EAAG4f,KAAK5f,EAAG4f,KAAK5f,EAAG6f,QAIV,IAAnB5M,EAAUO,MAETxT,EAAG2T,aAAa3T,EAAG4T,aAAeX,EAAUa,QAAQ9X,OAAS,EAAGgE,EAAG6T,eAAgB,GAEhFvb,KAAK4mB,SAEJlf,EAAGyf,YAAYzf,EAAG8f,MAAO,IAAOP,EAAO,KACvCvf,EAAG2f,UAAU3f,EAAG4f,KAAK5f,EAAG4f,KAAK5f,EAAG+f,QAIhC/f,EAAGyf,YAAYzf,EAAG8f,MAAMP,EAAO,KAC/Bvf,EAAG2f,UAAU3f,EAAG4f,KAAK5f,EAAG4f,KAAK5f,EAAGggB,OAIpChgB,EAAG2T,aAAa3T,EAAG4T,aAAc,EAAG5T,EAAG6T,eAAmD,GAAjCZ,EAAUa,QAAQ9X,OAAS,IAEjF1D,KAAK4mB,QAEJlf,EAAGyf,YAAYzf,EAAG8f,MAAM,KAAMP,EAAM,GAAI,KAIxCvf,EAAGyf,YAAYzf,EAAG8f,MAAMP,EAAM,EAAG,KAGrCjnB,KAAK4mB,SAAW5mB,KAAK4mB,UAIjB5mB,KAAK4mB,SAOLlf,EAAGyf,YAAYzf,EAAG8f,MAAMP,EAAO,KAC/Bvf,EAAG2f,UAAU3f,EAAG4f,KAAK5f,EAAG4f,KAAK5f,EAAGggB,QANhChgB,EAAGyf,YAAYzf,EAAG8f,MAAO,IAAOP,EAAO,KACvCvf,EAAG2f,UAAU3f,EAAG4f,KAAK5f,EAAG4f,KAAK5f,EAAG+f,OAQpC/f,EAAG2T,aAAa3T,EAAG2U,eAAiB1B,EAAUa,QAAQ9X,OAAQgE,EAAG6T,eAAgB,GAE7Evb,KAAK4mB,QAMLlf,EAAGyf,YAAYzf,EAAG8f,MAAMP,EAAM,EAAG,KAJjCvf,EAAGyf,YAAYzf,EAAG8f,MAAM,KAAMP,EAAM,GAAI,MAQhDvf,EAAGwf,WAAU,GAAM,GAAM,GAAM,GAC/Bxf,EAAG2f,UAAU3f,EAAG4f,KAAK5f,EAAG4f,KAAK5f,EAAG4f,MAEhCtnB,KAAK6mB,SAWT/mB,EAAKojB,oBAAoB7f,UAAUyjB,aAAe,SAASpM,EAAUC,EAAWnT,GAG5ExH,KAAK2nB,iBAAmBjN,CAExB,IAKI3O,GALArE,EAAK1H,KAAK0H,GAGVkT,EAAapT,EAAcoT,WAC3BC,EAASrT,EAAcqT,MAGL,KAAnBF,EAAUO,MAETnP,EAASvE,EAAc8H,cAAcsY,uBAErCpgB,EAAc8H,cAAcC,UAAWxD,GAEvCrE,EAAGiU,UAAU5P,EAAO2M,MAAOlR,EAAckR,OAEzChR,EAAG4P,iBAAiBvL,EAAOmO,mBAAmB,EAAOQ,EAASnY,eAAemZ,SAAQ,IAErFhU,EAAGkU,UAAU7P,EAAOoK,iBAAkByE,EAAWlV,GAAIkV,EAAWjV,GAChE+B,EAAGkU,UAAU7P,EAAOqK,cAAeyE,EAAOnV,GAAImV,EAAOlV,GAErD+B,EAAGmU,WAAW9P,EAAOsO,UAAWva,EAAKkQ,QAAQ0K,EAASjP,OACtD/D,EAAGmU,WAAW9P,EAAOwO,MAAOI,EAAUJ,OAEtC7S,EAAGiU,UAAU5P,EAAO/J,MAAO0Y,EAASpY,WAAaqY,EAAU3Y,OAE3D0F,EAAGoU,WAAWpU,EAAGqU,aAAcpB,EAAUqB,QAEzCtU,EAAGuU,oBAAoBlQ,EAAOuK,gBAAiB,EAAG5O,EAAGwU,OAAO,EAAO,EAAO,GAK1ExU,EAAGoU,WAAWpU,EAAGyU,qBAAsBxB,EAAUyB,eAKjDrQ,EAASvE,EAAc8H,cAAcwL,gBACrCtT,EAAc8H,cAAcC,UAAWxD,GAEvCrE,EAAG4P,iBAAiBvL,EAAOmO,mBAAmB,EAAOQ,EAASnY,eAAemZ,SAAQ,IAErFhU,EAAGiU,UAAU5P,EAAO2M,MAAOlR,EAAckR,OACzChR,EAAGkU,UAAU7P,EAAOoK,iBAAkByE,EAAWlV,GAAIkV,EAAWjV,GAChE+B,EAAGkU,UAAU7P,EAAOqK,cAAeyE,EAAOnV,GAAImV,EAAOlV,GAErD+B,EAAGmU,WAAW9P,EAAOsO,UAAWva,EAAKkQ,QAAQ0K,EAASjP,OAEtD/D,EAAGiU,UAAU5P,EAAO/J,MAAO0Y,EAASpY,YAEpCoF,EAAGoU,WAAWpU,EAAGqU,aAAcpB,EAAUqB,QAEzCtU,EAAGuU,oBAAoBlQ,EAAOuK,gBAAiB,EAAG5O,EAAGwU,OAAO,EAAO,GAAO,GAC1ExU,EAAGuU,oBAAoBlQ,EAAO0K,eAAgB,EAAG/O,EAAGwU,OAAO,EAAM,GAAO,GAGxExU,EAAGoU,WAAWpU,EAAGyU,qBAAsBxB,EAAUyB,eAUzDtc,EAAKojB,oBAAoB7f,UAAUoY,WAAa,SAASf,EAAUC,EAAWnT,GAE7E,GAAIE,GAAK1H,KAAK0H,EAKX,IAJA1H,KAAK2mB,aAAa3I,MAElBhe,KAAK6mB,QAE2B,IAA7B7mB,KAAK2mB,aAAajjB,OAGjBgE,EAAG+b,QAAQ/b,EAAGqf,kBAIlB,CAEI,GAAIE,GAAQjnB,KAAK6mB,KAEjB7mB,MAAK8mB,aAAapM,EAAUC,EAAWnT,GAEvCE,EAAGwf,WAAU,GAAO,GAAO,GAAO,GAEZ,IAAnBvM,EAAUO,MAETlb,KAAK4mB,SAAW5mB,KAAK4mB,QAElB5mB,KAAK4mB,SAEJlf,EAAGyf,YAAYzf,EAAG8f,MAAO,KAAQP,EAAM,GAAI,KAC3Cvf,EAAG2f,UAAU3f,EAAG4f,KAAK5f,EAAG4f,KAAK5f,EAAGggB,QAIhChgB,EAAGyf,YAAYzf,EAAG8f,MAAMP,EAAM,EAAG,KACjCvf,EAAG2f,UAAU3f,EAAG4f,KAAK5f,EAAG4f,KAAK5f,EAAG+f,OAIpC/f,EAAG2T,aAAa3T,EAAG4T,aAAc,EAAG5T,EAAG6T,eAAmD,GAAjCZ,EAAUa,QAAQ9X,OAAS,IAEpFgE,EAAGyf,YAAYzf,EAAG0f,OAAO,EAAE,KAC3B1f,EAAG2f,UAAU3f,EAAG4f,KAAK5f,EAAG4f,KAAK5f,EAAG6f,QAGhC7f,EAAG2T,aAAa3T,EAAG4T,aAAeX,EAAUa,QAAQ9X,OAAS,EAAGgE,EAAG6T,eAAgB,GAE/Evb,KAAK4mB,QAMLlf,EAAGyf,YAAYzf,EAAG8f,MAAMP,EAAO,KAJ/Bvf,EAAGyf,YAAYzf,EAAG8f,MAAM,IAAK,EAAS,OAWtCxnB,KAAK4mB,SAOLlf,EAAGyf,YAAYzf,EAAG8f,MAAMP,EAAM,EAAG,KACjCvf,EAAG2f,UAAU3f,EAAG4f,KAAK5f,EAAG4f,KAAK5f,EAAG+f,QANhC/f,EAAGyf,YAAYzf,EAAG8f,MAAO,KAAQP,EAAM,GAAI,KAC3Cvf,EAAG2f,UAAU3f,EAAG4f,KAAK5f,EAAG4f,KAAK5f,EAAGggB,OAQpChgB,EAAG2T,aAAa3T,EAAG2U,eAAiB1B,EAAUa,QAAQ9X,OAAQgE,EAAG6T,eAAgB,GAE7Evb,KAAK4mB,QAMLlf,EAAGyf,YAAYzf,EAAG8f,MAAMP,EAAO,KAJ/Bvf,EAAGyf,YAAYzf,EAAG8f,MAAM,IAAK,EAAS,MAQ9C9f,EAAGwf,WAAU,GAAM,GAAM,GAAM,GAC/Bxf,EAAG2f,UAAU3f,EAAG4f,KAAK5f,EAAG4f,KAAK5f,EAAG4f,QAWxCxnB,EAAKojB,oBAAoB7f,UAAUE,QAAU,WAEzCvD,KAAK2mB,aAAe,KACpB3mB,KAAK0H,GAAK,MAYd5H,EAAKgjB,mBAAqB,WAMtB9iB,KAAK6nB,UAAY,GAMjB7nB,KAAK8nB,eAML9nB,KAAK+nB,kBAEL,KAAK,GAAItkB,GAAI,EAAGA,EAAIzD,KAAK6nB,UAAWpkB,IAEhCzD,KAAK8nB,YAAYrkB,IAAK,CAO1BzD,MAAKgoB,UAITloB,EAAKgjB,mBAAmBzf,UAAUC,YAAcxD,EAAKgjB,mBAQrDhjB,EAAKgjB,mBAAmBzf,UAAUgM,WAAa,SAAS3H,GAEpD1H,KAAK0H,GAAKA,EAGV1H,KAAK8a,gBAAkB,GAAIhb,GAAKsa,gBAAgB1S,GAGhD1H,KAAK4nB,uBAAyB,GAAI9nB,GAAKwa,uBAAuB5S,GAG9D1H,KAAKioB,cAAgB,GAAInoB,GAAK0V,WAAW9N,GAGzC1H,KAAKwP,WAAa,GAAI1P,GAAK8Z,eAAelS,GAG1C1H,KAAKkoB,YAAc,GAAIpoB,GAAKma,YAAYvS,GACxC1H,KAAKuP,UAAUvP,KAAKioB,gBASxBnoB,EAAKgjB,mBAAmBzf,UAAU8kB,WAAa,SAASC,GAGpD,GAAI3kB,EAEJ,KAAKA,EAAI,EAAGA,EAAIzD,KAAK+nB,gBAAgBrkB,OAAQD,IAEzCzD,KAAK+nB,gBAAgBtkB,IAAK,CAI9B,KAAKA,EAAI,EAAGA,EAAI2kB,EAAQ1kB,OAAQD,IAChC,CACI,GAAI4kB,GAAWD,EAAQ3kB,EACvBzD,MAAK+nB,gBAAgBM,IAAY,EAGrC,GAAI3gB,GAAK1H,KAAK0H,EAEd,KAAKjE,EAAI,EAAGA,EAAIzD,KAAK8nB,YAAYpkB,OAAQD,IAElCzD,KAAK8nB,YAAYrkB,KAAOzD,KAAK+nB,gBAAgBtkB,KAE5CzD,KAAK8nB,YAAYrkB,GAAKzD,KAAK+nB,gBAAgBtkB,GAExCzD,KAAK+nB,gBAAgBtkB,GAEpBiE,EAAG4gB,wBAAwB7kB,GAI3BiE,EAAG6gB,yBAAyB9kB,KAY5C3D,EAAKgjB,mBAAmBzf,UAAUkM,UAAY,SAASxD,GAEnD,MAAG/L,MAAKwoB,aAAezc,EAAO3L,MAAY,GAE1CJ,KAAKwoB,WAAazc,EAAO3L,KAEzBJ,KAAKyoB,cAAgB1c,EAErB/L,KAAK0H,GAAGsO,WAAWjK,EAAO0J,SAC1BzV,KAAKmoB,WAAWpc,EAAO8J,aAEhB,IAQX/V,EAAKgjB,mBAAmBzf,UAAUE,QAAU,WAExCvD,KAAK8nB,YAAc,KAEnB9nB,KAAK+nB,gBAAkB,KAEvB/nB,KAAK8a,gBAAgBvX,UAErBvD,KAAK4nB,uBAAuBrkB,UAE5BvD,KAAKioB,cAAc1kB,UAEnBvD,KAAKwP,WAAWjM,UAEhBvD,KAAKkoB,YAAY3kB,UAEjBvD,KAAK0H,GAAK,MAoBd5H,EAAKijB,iBAAmB,WAMpB/iB,KAAK0oB,SAAW,EAOhB1oB,KAAK2oB,KAAO,GAGZ,IAAIC,GAAuB,EAAZ5oB,KAAK2oB,KAAW,EAAI3oB,KAAK0oB,SAEpCG,EAAyB,EAAZ7oB,KAAK2oB,IAQtB3oB,MAAK8oB,SAAW,GAAIhpB,GAAKU,YAAYooB,GAQrC5oB,KAAK+oB,UAAY,GAAIjpB,GAAKO,aAAaL,KAAK8oB,UAQ5C9oB,KAAKgpB,OAAS,GAAIlpB,GAAKS,YAAYP,KAAK8oB,UAQxC9oB,KAAKwb,QAAU,GAAI1b,GAAKQ,YAAYuoB,GAMpC7oB,KAAKipB,eAAiB,CAEtB,KAAK,GAAIxlB,GAAE,EAAGa,EAAE,EAAOukB,EAAJplB,EAAgBA,GAAK,EAAGa,GAAK,EAE5CtE,KAAKwb,QAAQ/X,EAAI,GAAKa,EAAI,EAC1BtE,KAAKwb,QAAQ/X,EAAI,GAAKa,EAAI,EAC1BtE,KAAKwb,QAAQ/X,EAAI,GAAKa,EAAI,EAC1BtE,KAAKwb,QAAQ/X,EAAI,GAAKa,EAAI,EAC1BtE,KAAKwb,QAAQ/X,EAAI,GAAKa,EAAI,EAC1BtE,KAAKwb,QAAQ/X,EAAI,GAAKa,EAAI,CAO9BtE,MAAKkpB,SAAU,EAMflpB,KAAKmpB,iBAAmB,EAMxBnpB,KAAKopB,mBAAqB,KAM1BppB,KAAK4V,OAAQ,EAMb5V,KAAKqpB,YAMLrpB,KAAK6L,cAML7L,KAAKspB,WAMLtpB,KAAKupB,WAMLvpB,KAAKioB,cAAgB,GAAInoB,GAAK0pB,gBAC1B,wBACA,8BACA,uBACA,8BACA,oBACA,kEACA,OAQR1pB,EAAKijB,iBAAiB1f,UAAUgM,WAAa,SAAS3H,GAElD1H,KAAK0H,GAAKA,EAGV1H,KAAKypB,aAAe/hB,EAAGwa,eACvBliB,KAAKoc,YAAc1U,EAAGwa,eAKtBxa,EAAGoU,WAAWpU,EAAGyU,qBAAsBnc,KAAKoc,aAC5C1U,EAAG0a,WAAW1a,EAAGyU,qBAAsBnc,KAAKwb,QAAS9T,EAAG2a,aAExD3a,EAAGoU,WAAWpU,EAAGqU,aAAc/b,KAAKypB,cACpC/hB,EAAG0a,WAAW1a,EAAGqU,aAAc/b,KAAK8oB,SAAUphB,EAAGgiB,cAEjD1pB,KAAKmN,iBAAmB,KAExB,IAAIpB,GAAS,GAAIjM,GAAK0V,WAAW9N,EAEjCqE,GAAOgJ,YAAc/U,KAAKioB,cAAclT,YACxChJ,EAAO4K,YACP5K,EAAO+J,OAEP9V,KAAKioB,cAAcqB,QAAQ5hB,EAAGkQ,IAAM7L,GAOxCjM,EAAKijB,iBAAiB1f,UAAUwG,MAAQ,SAASrC,GAE7CxH,KAAKwH,cAAgBA,EACrBxH,KAAK+L,OAAS/L,KAAKwH,cAAc8H,cAAc2Y,cAE/CjoB,KAAKoL,SAMTtL,EAAKijB,iBAAiB1f,UAAUyG,IAAM,WAElC9J,KAAK6K,SAQT/K,EAAKijB,iBAAiB1f,UAAU2D,OAAS,SAAS2iB,EAAQ1jB,GAEtD,GAAI6B,GAAU6hB,EAAO7hB,QAGjBxC,EAAKqkB,EAAOpnB,cAEZ0D,KAEAX,EAAKW,GAILjG,KAAKmpB,kBAAoBnpB,KAAK2oB,OAE9B3oB,KAAK6K,QACL7K,KAAKopB,mBAAqBthB,EAAQkE,YAItC,IAAI4d,GAAM9hB,EAAQ+hB,IAGlB,IAAKD,EAAL,CAKA,GAGItd,GAAIC,EAAIC,EAAIC,EAHZqd,EAAKH,EAAOzhB,OAAOxC,EACnBqkB,EAAKJ,EAAOzhB,OAAOvC,CAIvB,IAAImC,EAAQ8F,KACZ,CAEI,GAAIA,GAAO9F,EAAQ8F,IAEnBrB,GAAKqB,EAAKlI,EAAIokB,EAAKlc,EAAK/G,MACxByF,EAAKC,EAAKzE,EAAQoF,KAAKrG,MAEvB4F,EAAKmB,EAAKjI,EAAIokB,EAAKnc,EAAK9G,OACxB0F,EAAKC,EAAK3E,EAAQoF,KAAKpG,WAIvBwF,GAAMxE,EAAQqE,MAAW,OAAK,EAAE2d,GAChCvd,EAAMzE,EAAQqE,MAAW,OAAK2d,EAE9Btd,EAAK1E,EAAQqE,MAAMrF,QAAU,EAAEijB,GAC/Btd,EAAK3E,EAAQqE,MAAMrF,QAAUijB,CAGjC,IAAItmB,GAA4B,EAAxBzD,KAAKmpB,iBAAuBnpB,KAAK0oB,SACrCrnB,EAAayG,EAAQkE,YAAY3K,WAEjC0D,EAAIO,EAAGP,EAAI1D,EACX2D,EAAIM,EAAGN,EAAI3D,EACX4D,EAAIK,EAAGL,EAAI5D,EACX6D,EAAII,EAAGJ,EAAI7D,EACX8D,EAAKG,EAAGH,GACRC,EAAKE,EAAGF,GAER4jB,EAAShpB,KAAKgpB,OACdD,EAAY/oB,KAAK+oB,SAEjB/oB,MAAKwH,cAAcsG,aAGnBib,EAAUtlB,GAAKsB,EAAIwH,EAAKtH,EAAIwH,EAAKtH,EAAK,EACtC4jB,EAAUtlB,EAAE,GAAKyB,EAAIuH,EAAKzH,EAAIuH,EAAKnH,EAAK,EAGxC2jB,EAAUtlB,EAAE,GAAKsB,EAAIuH,EAAKrH,EAAIwH,EAAKtH,EAAK,EACxC4jB,EAAUtlB,EAAE,GAAKyB,EAAIuH,EAAKzH,EAAIsH,EAAKlH,EAAK,EAGxC2jB,EAAUtlB,EAAE,IAAMsB,EAAIuH,EAAKrH,EAAIuH,EAAKrH,EAAK,EACzC4jB,EAAUtlB,EAAE,IAAMyB,EAAIsH,EAAKxH,EAAIsH,EAAKlH,EAAK,EAGzC2jB,EAAUtlB,EAAE,IAAMsB,EAAIwH,EAAKtH,EAAIuH,EAAKrH,EAAK,EACzC4jB,EAAUtlB,EAAE,IAAMyB,EAAIsH,EAAKxH,EAAIuH,EAAKnH,EAAK,IAKzC2jB,EAAUtlB,GAAKsB,EAAIwH,EAAKtH,EAAIwH,EAAKtH,EACjC4jB,EAAUtlB,EAAE,GAAKyB,EAAIuH,EAAKzH,EAAIuH,EAAKnH,EAGnC2jB,EAAUtlB,EAAE,GAAKsB,EAAIuH,EAAKrH,EAAIwH,EAAKtH,EACnC4jB,EAAUtlB,EAAE,GAAKyB,EAAIuH,EAAKzH,EAAIsH,EAAKlH,EAGnC2jB,EAAUtlB,EAAE,IAAMsB,EAAIuH,EAAKrH,EAAIuH,EAAKrH,EACpC4jB,EAAUtlB,EAAE,IAAMyB,EAAIsH,EAAKxH,EAAIsH,EAAKlH,EAGpC2jB,EAAUtlB,EAAE,IAAMsB,EAAIwH,EAAKtH,EAAIuH,EAAKrH,EACpC4jB,EAAUtlB,EAAE,IAAMyB,EAAIsH,EAAKxH,EAAIuH,EAAKnH,GAIxC2jB,EAAUtlB,EAAE,GAAKmmB,EAAII,GACrBjB,EAAUtlB,EAAE,GAAKmmB,EAAIK,GAGrBlB,EAAUtlB,EAAE,GAAKmmB,EAAIld,GACrBqc,EAAUtlB,EAAE,GAAKmmB,EAAIjd,GAGrBoc,EAAUtlB,EAAE,IAAMmmB,EAAIhd,GACtBmc,EAAUtlB,EAAE,IAAMmmB,EAAI/c,GAGtBkc,EAAUtlB,EAAE,IAAMmmB,EAAI9c,GACtBic,EAAUtlB,EAAE,IAAMmmB,EAAI7c,EAGtB,IAAItB,GAAOke,EAAOle,IAElBud,GAAOvlB,EAAE,GAAKulB,EAAOvlB,EAAE,GAAKulB,EAAOvlB,EAAE,IAAMulB,EAAOvlB,EAAE,KAAOgI,GAAQ,KAAc,MAAPA,KAA0B,IAAPA,IAAgB,KAA2B,IAApBke,EAAOrnB,YAAoB,IAG/ItC,KAAKupB,QAAQvpB,KAAKmpB,oBAAsBQ,IAU5C7pB,EAAKijB,iBAAiB1f,UAAU6mB,mBAAqB,SAASP,GAE1D,GAAI7hB,GAAU6hB,EAAOQ,aAGjBnqB,MAAKmpB,kBAAoBnpB,KAAK2oB,OAE9B3oB,KAAK6K,QACL7K,KAAKopB,mBAAqBthB,EAAQkE,aAIjC2d,EAAOE,OAERF,EAAOE,KAAO,GAAI/pB,GAAKsqB,WAG3B,IAAIR,GAAMD,EAAOE,KAEbtQ,EAAIzR,EAAQkE,YAAYnF,MACxBwjB,EAAIviB,EAAQkE,YAAYlF,MAQ5B6iB,GAAOW,aAAa5kB,GAAK6T,EAAIoQ,EAAOY,gBAAgB7kB,EACpDikB,EAAOW,aAAa3kB,GAAK0kB,EAAIV,EAAOY,gBAAgB5kB,CAEpD,IAAI6kB,GAAUb,EAAOW,aAAa5kB,GAAK6T,EAAIoQ,EAAOY,gBAAgB7kB,GAC9D+kB,EAAUd,EAAOW,aAAa3kB,GAAK0kB,EAAIV,EAAOY,gBAAgB5kB,GAE9D+kB,EAAUf,EAAO9iB,MAAQ0S,GAAMoQ,EAAOgB,UAAUjlB,EAAIikB,EAAOY,gBAAgB7kB,GAC3EklB,EAAUjB,EAAO7iB,OAASujB,GAAMV,EAAOgB,UAAUhlB,EAAIgkB,EAAOY,gBAAgB5kB,EAEhFikB,GAAII,GAAK,EAAIQ,EACbZ,EAAIK,GAAK,EAAIQ,EAEbb,EAAIld,GAAM,EAAIge,EAAUF,EACxBZ,EAAIjd,GAAK,EAAI8d,EAEbb,EAAIhd,GAAM,EAAI8d,EAAUF,EACxBZ,EAAI/c,GAAM,EAAI+d,EAAUH,EAExBb,EAAI9c,GAAK,EAAI0d,EACbZ,EAAI7c,GAAM,EAAI6d,EAAUH,CAGxB,IAAIhf,GAAOke,EAAOle,KACd8O,GAAS9O,GAAQ,KAAc,MAAPA,KAA0B,IAAPA,IAAgB,KAA2B,IAApBke,EAAOrnB,YAAoB,IAE7FymB,EAAY/oB,KAAK+oB,UACjBC,EAAShpB,KAAKgpB,OAEdniB,EAAQ8iB,EAAO9iB,MACfC,EAAS6iB,EAAO7iB,OAGhBgjB,EAAKH,EAAOzhB,OAAOxC,EACnBqkB,EAAKJ,EAAOzhB,OAAOvC,EACnB2G,EAAKzF,GAAS,EAAEijB,GAChBvd,EAAK1F,GAASijB,EAEdtd,EAAK1F,GAAU,EAAEijB,GACjBtd,EAAK3F,GAAUijB,EAEftmB,EAA4B,EAAxBzD,KAAKmpB,iBAAuBnpB,KAAK0oB,SAErCrnB,EAAayG,EAAQkE,YAAY3K,WAEjCiE,EAAKqkB,EAAOpnB,eAEZwC,EAAIO,EAAGP,EAAI1D,EACX2D,EAAIM,EAAGN,EAAI3D,EACX4D,EAAIK,EAAGL,EAAI5D,EACX6D,EAAII,EAAGJ,EAAI7D,EACX8D,EAAKG,EAAGH,GACRC,EAAKE,EAAGF,EAGZ2jB,GAAUtlB,KAAOsB,EAAIwH,EAAKtH,EAAIwH,EAAKtH,EACnC4jB,EAAUtlB,KAAOyB,EAAIuH,EAAKzH,EAAIuH,EAAKnH,EAEnC2jB,EAAUtlB,KAAOmmB,EAAII,GACrBjB,EAAUtlB,KAAOmmB,EAAIK,GAErBjB,EAAOvlB,KAAO8W,EAGdwO,EAAUtlB,KAAQsB,EAAIuH,EAAKrH,EAAIwH,EAAKtH,EACpC4jB,EAAUtlB,KAAOyB,EAAIuH,EAAKzH,EAAIsH,EAAKlH,EAEnC2jB,EAAUtlB,KAAOmmB,EAAIld,GACrBqc,EAAUtlB,KAAOmmB,EAAIjd,GAErBqc,EAAOvlB,KAAO8W,EAGdwO,EAAUtlB,KAAOsB,EAAIuH,EAAKrH,EAAIuH,EAAKrH,EACnC4jB,EAAUtlB,KAAOyB,EAAIsH,EAAKxH,EAAIsH,EAAKlH,EAEnC2jB,EAAUtlB,KAAOmmB,EAAIhd,GACrBmc,EAAUtlB,KAAOmmB,EAAI/c,GAErBmc,EAAOvlB,KAAO8W,EAGdwO,EAAUtlB,KAAOsB,EAAIwH,EAAKtH,EAAIuH,EAAKrH,EACnC4jB,EAAUtlB,KAAOyB,EAAIsH,EAAKxH,EAAIuH,EAAKnH,EAEnC2jB,EAAUtlB,KAAOmmB,EAAI9c,GACrBic,EAAUtlB,KAAOmmB,EAAI7c,GAErBic,EAAOvlB,KAAO8W,EAGdva,KAAKupB,QAAQvpB,KAAKmpB,oBAAsBQ,GAQ5C7pB,EAAKijB,iBAAiB1f,UAAUwH,MAAQ,WAGpC,GAA8B,IAA1B7K,KAAKmpB,iBAAT,CAKA,GACIpd,GADArE,EAAK1H,KAAK0H,EAGd,IAAI1H,KAAK4V,MACT,CACI5V,KAAK4V,OAAQ,EAGblO,EAAG8P,cAAc9P,EAAGmjB,UAGpBnjB,EAAGoU,WAAWpU,EAAGqU,aAAc/b,KAAKypB,cACpC/hB,EAAGoU,WAAWpU,EAAGyU,qBAAsBnc,KAAKoc,aAE5CrQ,EAAS/L,KAAKioB,cAAcqB,QAAQ5hB,EAAGkQ,GAGvC,IAAIkT,GAAyB,EAAhB9qB,KAAK0oB,QAClBhhB,GAAGuU,oBAAoBlQ,EAAOuK,gBAAiB,EAAG5O,EAAGwU,OAAO,EAAO4O,EAAQ,GAC3EpjB,EAAGuU,oBAAoBlQ,EAAOyK,cAAe,EAAG9O,EAAGwU,OAAO,EAAO4O,EAAQ,GAGzEpjB,EAAGuU,oBAAoBlQ,EAAO0K,eAAgB,EAAG/O,EAAGmR,eAAe,EAAMiS,EAAQ,IAIrF,GAAI9qB,KAAKmpB,iBAAgC,GAAZnpB,KAAK2oB,KAE9BjhB,EAAGqjB,cAAcrjB,EAAGqU,aAAc,EAAG/b,KAAK8oB,cAG9C,CACI,GAAI7nB,GAAOjB,KAAK+oB,UAAUiC,SAAS,EAA2B,EAAxBhrB,KAAKmpB,iBAAuBnpB,KAAK0oB,SACvEhhB,GAAGqjB,cAAcrjB,EAAGqU,aAAc,EAAG9a,GAezC,IAAK,GAZDgqB,GAAaC,EAAeC,EAU5BxB,EATAyB,EAAY,EACZhgB,EAAQ,EAERge,EAAqB,KACrBjc,EAAmBnN,KAAKwH,cAAc2b,iBAAiBhW,iBACvDsb,EAAgB,KAEhB4C,GAAY,EACZC,GAAa,EAGR7nB,EAAI,EAAGa,EAAItE,KAAKmpB,iBAAsB7kB,EAAJb,EAAOA,IAAK,CAmBnD,GAjBAkmB,EAAS3pB,KAAKupB,QAAQ9lB,GAIlBwnB,EAFAtB,EAAOQ,cAEOR,EAAOQ,cAAcne,YAIrB2d,EAAO7hB,QAAQkE,YAGjCkf,EAAgBvB,EAAO/d,UACvBuf,EAAaxB,EAAO5d,QAAU/L,KAAKioB,cAEnCoD,EAAYle,IAAqB+d,EACjCI,EAAa7C,IAAkB0C,GAE3B/B,IAAuB6B,GAAeI,GAAaC,KAEnDtrB,KAAKurB,YAAYnC,EAAoBgC,EAAWhgB,GAEhDA,EAAQ3H,EACR2nB,EAAY,EACZhC,EAAqB6B,EAEjBI,IAEAle,EAAmB+d,EACnBlrB,KAAKwH,cAAc2b,iBAAiBqB,aAAarX,IAGjDme,GACJ,CACI7C,EAAgB0C,EAEhBpf,EAAS0c,EAAca,QAAQ5hB,EAAGkQ,IAE7B7L,IAEDA,EAAS,GAAIjM,GAAK0V,WAAW9N,GAE7BqE,EAAOgJ,YAAc0T,EAAc1T,YACnChJ,EAAO4K,SAAW8R,EAAc9R,SAChC5K,EAAO+J,OAEP2S,EAAca,QAAQ5hB,EAAGkQ,IAAM7L,GAInC/L,KAAKwH,cAAc8H,cAAcC,UAAUxD,GAEvCA,EAAO6J,OAEP7J,EAAOqN,cAKX,IAAIwB,GAAa5a,KAAKwH,cAAcoT,UACpClT,GAAGkU,UAAU7P,EAAOoK,iBAAkByE,EAAWlV,EAAGkV,EAAWjV,EAG/D,IAAIyQ,GAAepW,KAAKwH,cAAcqT,MACtCnT,GAAGkU,UAAU7P,EAAOqK,aAAcA,EAAa1Q,EAAG0Q,EAAazQ,GAMvEylB,IAGJprB,KAAKurB,YAAYnC,EAAoBgC,EAAWhgB,GAGhDpL,KAAKmpB,iBAAmB,IAS5BrpB,EAAKijB,iBAAiB1f,UAAUkoB,YAAc,SAASzjB,EAAS6gB,EAAM6C,GAElE,GAAa,IAAT7C,EAAJ,CAKA,GAAIjhB,GAAK1H,KAAK0H,EAGVI,GAAQ0R,OAAO9R,EAAGkQ,IAElB5X,KAAKwH,cAAcf,SAASiT,cAAc5R,GAK1CJ,EAAG+P,YAAY/P,EAAGgQ,WAAY5P,EAAQ6P,YAAYjQ,EAAGkQ,KAIzDlQ,EAAG2T,aAAa3T,EAAG+jB,UAAkB,EAAP9C,EAAUjhB,EAAG6T,eAA6B,EAAbiQ,EAAiB,GAG5ExrB,KAAKwH,cAAc6b,cAMvBvjB,EAAKijB,iBAAiB1f,UAAU2H,KAAO,WAEnChL,KAAK6K,QACL7K,KAAK4V,OAAQ,GAMjB9V,EAAKijB,iBAAiB1f,UAAU+H,MAAQ,WAEpCpL,KAAK4V,OAAQ,GAQjB9V,EAAKijB,iBAAiB1f,UAAUE,QAAU,WAEtCvD,KAAK8oB,SAAW,KAChB9oB,KAAKwb,QAAU,KAEfxb,KAAK0H,GAAGgkB,aAAa1rB,KAAKypB,cAC1BzpB,KAAK0H,GAAGgkB,aAAa1rB,KAAKoc,aAE1Bpc,KAAKopB,mBAAqB,KAE1BppB,KAAK0H,GAAK,MAgBd5H,EAAKsP,qBAAuB,SAAS1H,GAMjC1H,KAAK0oB,SAAW,GAMhB1oB,KAAK2rB,QAAU,IAMf3rB,KAAK2oB,KAAO3oB,KAAK2rB,OAGjB,IAAI/C,GAAuB,EAAZ5oB,KAAK2oB,KAAY3oB,KAAK0oB,SAGjCG,EAA4B,EAAf7oB,KAAK2rB,OAOtB3rB,MAAK8oB,SAAW,GAAIhpB,GAAKO,aAAauoB,GAOtC5oB,KAAKwb,QAAU,GAAI1b,GAAKQ,YAAYuoB,GAMpC7oB,KAAKypB,aAAe,KAMpBzpB,KAAKoc,YAAc,KAMnBpc,KAAKipB,eAAiB,CAEtB,KAAK,GAAIxlB,GAAE,EAAGa,EAAE,EAAOukB,EAAJplB,EAAgBA,GAAK,EAAGa,GAAK,EAE5CtE,KAAKwb,QAAQ/X,EAAI,GAAKa,EAAI,EAC1BtE,KAAKwb,QAAQ/X,EAAI,GAAKa,EAAI,EAC1BtE,KAAKwb,QAAQ/X,EAAI,GAAKa,EAAI,EAC1BtE,KAAKwb,QAAQ/X,EAAI,GAAKa,EAAI,EAC1BtE,KAAKwb,QAAQ/X,EAAI,GAAKa,EAAI,EAC1BtE,KAAKwb,QAAQ/X,EAAI,GAAKa,EAAI,CAO9BtE,MAAKkpB,SAAU,EAMflpB,KAAKmpB,iBAAmB,EAMxBnpB,KAAKopB,mBAAqB,KAM1BppB,KAAKmN,iBAAmB,EAMxBnN,KAAKwH,cAAgB,KAMrBxH,KAAK+L,OAAS,KAMd/L,KAAKiG,OAAS,KAEdjG,KAAKqP,WAAW3H,IAGpB5H,EAAKsP,qBAAqB/L,UAAUC,YAAcxD,EAAKsP,qBAQvDtP,EAAKsP,qBAAqB/L,UAAUgM,WAAa,SAAS3H,GAEtD1H,KAAK0H,GAAKA,EAGV1H,KAAKypB,aAAe/hB,EAAGwa,eACvBliB,KAAKoc,YAAc1U,EAAGwa,eAKtBxa,EAAGoU,WAAWpU,EAAGyU,qBAAsBnc,KAAKoc,aAC5C1U,EAAG0a,WAAW1a,EAAGyU,qBAAsBnc,KAAKwb,QAAS9T,EAAG2a,aAExD3a,EAAGoU,WAAWpU,EAAGqU,aAAc/b,KAAKypB,cACpC/hB,EAAG0a,WAAW1a,EAAGqU,aAAc/b,KAAK8oB,SAAUphB,EAAGgiB,eAQrD5pB,EAAKsP,qBAAqB/L,UAAUwG,MAAQ,SAASe,EAAapD,GAE9DxH,KAAKwH,cAAgBA,EACrBxH,KAAK+L,OAAS/L,KAAKwH,cAAc8H,cAAcE,WAE/CxP,KAAKiG,OAAS2E,EAAYrI,eAAemZ,SAAQ,GAEjD1b,KAAKoL,SAMTtL,EAAKsP,qBAAqB/L,UAAUyG,IAAM,WAEtC9J,KAAK6K,SAOT/K,EAAKsP,qBAAqB/L,UAAU2D,OAAS,SAAS4D,GAElD,GAAIpH,GAAWoH,EAAYpH,SACvBmmB,EAASnmB,EAAS,EAKtB,IAAImmB,EAAO7hB,QAAQ+hB,KAAnB,CAEA7pB,KAAKopB,mBAAqBO,EAAO7hB,QAAQkE,YAGtC2d,EAAO/d,YAAc5L,KAAKwH,cAAc2b,iBAAiBhW,mBAExDnN,KAAK6K,QACL7K,KAAKwH,cAAc2b,iBAAiBqB,aAAamF,EAAO/d,WAG5D,KAAI,GAAInI,GAAE,EAAEa,EAAGd,EAASE,OAAUY,EAAFb,EAAKA,IAEjCzD,KAAK4rB,aAAapoB,EAASC,GAG/BzD,MAAK6K,UAOT/K,EAAKsP,qBAAqB/L,UAAUuoB,aAAe,SAASjC,GAGxD,GAAIA,EAAO1nB,UAGR0nB,EAAO7hB,QAAQkE,cAAgBhM,KAAKopB,qBAEnCppB,KAAK6K,QACL7K,KAAKopB,mBAAqBO,EAAO7hB,QAAQkE,YAErC2d,EAAO7hB,QAAQ+hB,OALvB,CAQA,GAAID,GAA+B/iB,EAAOC,EAAQwF,EAAIC,EAAIC,EAAIC,EAAI/D,EAAzDogB,EAAW9oB,KAAK8oB,QAOzB,IALAc,EAAMD,EAAO7hB,QAAQ+hB,KAErBhjB,EAAQ8iB,EAAO7hB,QAAQqE,MAAMtF,MAC7BC,EAAS6iB,EAAO7hB,QAAQqE,MAAMrF,OAE1B6iB,EAAO7hB,QAAQ8F,KACnB,CAEI,GAAIA,GAAO+b,EAAO7hB,QAAQ8F,IAE1BrB,GAAKqB,EAAKlI,EAAIikB,EAAOzhB,OAAOxC,EAAIkI,EAAK/G,MACrCyF,EAAKC,EAAKod,EAAO7hB,QAAQoF,KAAKrG,MAE9B4F,EAAKmB,EAAKjI,EAAIgkB,EAAOzhB,OAAOvC,EAAIiI,EAAK9G,OACrC0F,EAAKC,EAAKkd,EAAO7hB,QAAQoF,KAAKpG,WAI9BwF,GAAMqd,EAAO7hB,QAAQqE,MAAY,OAAK,EAAEwd,EAAOzhB,OAAOxC,GACtD6G,EAAMod,EAAO7hB,QAAQqE,MAAY,OAAKwd,EAAOzhB,OAAOxC,EAEpD8G,EAAKmd,EAAO7hB,QAAQqE,MAAMrF,QAAU,EAAE6iB,EAAOzhB,OAAOvC,GACpD8G,EAAKkd,EAAO7hB,QAAQqE,MAAMrF,QAAU6iB,EAAOzhB,OAAOvC,CAGtD+C,GAAgC,EAAxB1I,KAAKmpB,iBAAuBnpB,KAAK0oB,SAGzCI,EAASpgB,KAAW6D,EACpBuc,EAASpgB,KAAW+D,EAEpBqc,EAASpgB,KAAWihB,EAAOloB,SAASiE,EACpCojB,EAASpgB,KAAWihB,EAAOloB,SAASkE,EAGpCmjB,EAASpgB,KAAWihB,EAAOhoB,MAAM+D,EACjCojB,EAASpgB,KAAWihB,EAAOhoB,MAAMgE,EAGjCmjB,EAASpgB,KAAWihB,EAAO5nB,SAG3B+mB,EAASpgB,KAAWkhB,EAAII,GACxBlB,EAASpgB,KAAWkhB,EAAIjd,GAExBmc,EAASpgB,KAAWihB,EAAO3nB,MAI3B8mB,EAASpgB,KAAW4D,EACpBwc,EAASpgB,KAAW+D,EAEpBqc,EAASpgB,KAAWihB,EAAOloB,SAASiE,EACpCojB,EAASpgB,KAAWihB,EAAOloB,SAASkE,EAGpCmjB,EAASpgB,KAAWihB,EAAOhoB,MAAM+D,EACjCojB,EAASpgB,KAAWihB,EAAOhoB,MAAMgE,EAGjCmjB,EAASpgB,KAAWihB,EAAO5nB,SAG3B+mB,EAASpgB,KAAWkhB,EAAIld,GACxBoc,EAASpgB,KAAWkhB,EAAIjd,GAExBmc,EAASpgB,KAAWihB,EAAO3nB,MAI3B8mB,EAASpgB,KAAW4D,EACpBwc,EAASpgB,KAAW8D,EAEpBsc,EAASpgB,KAAWihB,EAAOloB,SAASiE,EACpCojB,EAASpgB,KAAWihB,EAAOloB,SAASkE,EAGpCmjB,EAASpgB,KAAWihB,EAAOhoB,MAAM+D,EACjCojB,EAASpgB,KAAWihB,EAAOhoB,MAAMgE,EAGjCmjB,EAASpgB,KAAWihB,EAAO5nB,SAG3B+mB,EAASpgB,KAAWkhB,EAAIhd,GACxBkc,EAASpgB,KAAWkhB,EAAI/c,GAExBic,EAASpgB,KAAWihB,EAAO3nB,MAM3B8mB,EAASpgB,KAAW6D,EACpBuc,EAASpgB,KAAW8D,EAEpBsc,EAASpgB,KAAWihB,EAAOloB,SAASiE,EACpCojB,EAASpgB,KAAWihB,EAAOloB,SAASkE,EAGpCmjB,EAASpgB,KAAWihB,EAAOhoB,MAAM+D,EACjCojB,EAASpgB,KAAWihB,EAAOhoB,MAAMgE,EAGjCmjB,EAASpgB,KAAWihB,EAAO5nB,SAG3B+mB,EAASpgB,KAAWkhB,EAAI9c,GACxBgc,EAASpgB,KAAWkhB,EAAI7c,GAExB+b,EAASpgB,KAAWihB,EAAO3nB,MAG3BhC,KAAKmpB,mBAEFnpB,KAAKmpB,kBAAoBnpB,KAAK2oB,MAE7B3oB,KAAK6K,UAOb/K,EAAKsP,qBAAqB/L,UAAUwH,MAAQ,WAGxC,GAA4B,IAAxB7K,KAAKmpB,iBAAT,CAEA,GAAIzhB,GAAK1H,KAAK0H,EAUd,IANI1H,KAAKopB,mBAAmBzR,YAAYjQ,EAAGkQ,KAAI5X,KAAKwH,cAAcf,SAASiT,cAAc1Z,KAAKopB,mBAAoB1hB,GAElHA,EAAG+P,YAAY/P,EAAGgQ,WAAY1X,KAAKopB,mBAAmBzR,YAAYjQ,EAAGkQ,KAIlE5X,KAAKmpB,iBAAiC,GAAZnpB,KAAK2oB,KAE9BjhB,EAAGqjB,cAAcrjB,EAAGqU,aAAc,EAAG/b,KAAK8oB,cAG9C,CACI,GAAI7nB,GAAOjB,KAAK8oB,SAASkC,SAAS,EAA2B,EAAxBhrB,KAAKmpB,iBAAuBnpB,KAAK0oB,SAEtEhhB,GAAGqjB,cAAcrjB,EAAGqU,aAAc,EAAG9a,GAIzCyG,EAAG2T,aAAa3T,EAAG+jB,UAAmC,EAAxBzrB,KAAKmpB,iBAAsBzhB,EAAG6T,eAAgB,GAG5Evb,KAAKmpB,iBAAmB,EAGxBnpB,KAAKwH,cAAc6b,cAOvBvjB,EAAKsP,qBAAqB/L,UAAU2H,KAAO,WAEvChL,KAAK6K,SAMT/K,EAAKsP,qBAAqB/L,UAAU+H,MAAQ,WAExC,GAAI1D,GAAK1H,KAAK0H,EAGdA,GAAG8P,cAAc9P,EAAGmjB,UAGpBnjB,EAAGoU,WAAWpU,EAAGqU,aAAc/b,KAAKypB,cACpC/hB,EAAGoU,WAAWpU,EAAGyU,qBAAsBnc,KAAKoc,YAG5C,IAAIxB,GAAa5a,KAAKwH,cAAcoT,UACpClT,GAAGkU,UAAU5b,KAAK+L,OAAOoK,iBAAkByE,EAAWlV,EAAGkV,EAAWjV,GAGpE+B,EAAG4P,iBAAiBtX,KAAK+L,OAAO8N,SAAS,EAAO7Z,KAAKiG,OAGrD,IAAI6kB,GAA0B,EAAhB9qB,KAAK0oB,QAEnBhhB,GAAGuU,oBAAoBjc,KAAK+L,OAAOuK,gBAAiB,EAAG5O,EAAGwU,OAAO,EAAO4O,EAAQ,GAChFpjB,EAAGuU,oBAAoBjc,KAAK+L,OAAO+N,eAAgB,EAAGpS,EAAGwU,OAAO,EAAO4O,EAAQ,GAC/EpjB,EAAGuU,oBAAoBjc,KAAK+L,OAAOgO,OAAQ,EAAGrS,EAAGwU,OAAO,EAAO4O,EAAQ,IACvEpjB,EAAGuU,oBAAoBjc,KAAK+L,OAAOiO,UAAW,EAAGtS,EAAGwU,OAAO,EAAO4O,EAAQ,IAC1EpjB,EAAGuU,oBAAoBjc,KAAK+L,OAAOyK,cAAe,EAAG9O,EAAGwU,OAAO,EAAO4O,EAAQ,IAC9EpjB,EAAGuU,oBAAoBjc,KAAK+L,OAAO0K,eAAgB,EAAG/O,EAAGwU,OAAO,EAAO4O,EAAQ,KAYnFhrB,EAAKmjB,mBAAqB,WAMtBjjB,KAAK6rB,eAML7rB,KAAKwqB,QAAU,EAMfxqB,KAAKyqB,QAAU,GAGnB3qB,EAAKmjB,mBAAmB5f,UAAUC,YAAcxD,EAAKmjB,mBAQrDnjB,EAAKmjB,mBAAmB5f,UAAUgM,WAAa,SAAS3H,GAEpD1H,KAAK0H,GAAKA,EACV1H,KAAK8rB,eAEL9rB,KAAK+rB,qBAQTjsB,EAAKmjB,mBAAmB5f,UAAUwG,MAAQ,SAASrC,EAAewU,GAE9Dhc,KAAKwH,cAAgBA,EACrBxH,KAAKioB,cAAgBzgB,EAAc8H,cAAc2Y,aAEjD,IAAIrN,GAAa5a,KAAKwH,cAAcoT,UACpC5a,MAAK6G,MAAuB,EAAf+T,EAAWlV,EACxB1F,KAAK8G,OAAyB,GAAf8T,EAAWjV,EAC1B3F,KAAKgc,OAASA,GASlBlc,EAAKmjB,mBAAmB5f,UAAU0H,WAAa,SAASihB,GAEpD,GAAItkB,GAAK1H,KAAK0H,GAEVkT,EAAa5a,KAAKwH,cAAcoT,WAChCC,EAAS7a,KAAKwH,cAAcqT,MAEhCmR,GAAYC,YAAcD,EAAYvnB,OAAO3B,YAAckpB,EAAYvnB,OAAOuB,YAI9EhG,KAAK6rB,YAAYtnB,KAAKynB,EAEtB,IAAIE,GAASF,EAAY3nB,aAAa,EAEtCrE,MAAKwqB,SAAWwB,EAAYC,YAAYvmB,EACxC1F,KAAKyqB,SAAWuB,EAAYC,YAAYtmB,CAExC,IAAImC,GAAU9H,KAAK8rB,YAAY9N,KAC3BlW,GAMAA,EAAQC,OAAO/H,KAAK6G,MAAO7G,KAAK8G,QAJhCgB,EAAU,GAAIhI,GAAKqsB,cAAcnsB,KAAK0H,GAAI1H,KAAK6G,MAAO7G,KAAK8G,QAO/DY,EAAG+P,YAAY/P,EAAGgQ,WAAa5P,EAAQA,QAEvC,IAAIhF,GAAakpB,EAAYC,YAEzBG,EAAUF,EAAOE,OACrBtpB,GAAW4C,GAAK0mB,EAChBtpB,EAAW6C,GAAKymB,EAChBtpB,EAAW+D,OAAmB,EAAVulB,EACpBtpB,EAAWgE,QAAoB,EAAVslB,EAGlBtpB,EAAW4C,EAAI,IAAE5C,EAAW4C,EAAI,GAChC5C,EAAW+D,MAAQ7G,KAAK6G,QAAM/D,EAAW+D,MAAQ7G,KAAK6G,OACtD/D,EAAW6C,EAAI,IAAE7C,EAAW6C,EAAI,GAChC7C,EAAWgE,OAAS9G,KAAK8G,SAAOhE,EAAWgE,OAAS9G,KAAK8G,QAG5DY,EAAGuc,gBAAgBvc,EAAGwc,YAAapc,EAAQukB,aAG3C3kB,EAAGsc,SAAS,EAAG,EAAGlhB,EAAW+D,MAAO/D,EAAWgE,QAE/C8T,EAAWlV,EAAI5C,EAAW+D,MAAM,EAChC+T,EAAWjV,GAAK7C,EAAWgE,OAAO,EAElC+T,EAAOnV,GAAK5C,EAAW4C,EACvBmV,EAAOlV,GAAK7C,EAAW6C,EAQvB+B,EAAGwf,WAAU,GAAM,GAAM,GAAM,GAC/Bxf,EAAGyc,WAAW,EAAE,EAAE,EAAG,GACrBzc,EAAG0c,MAAM1c,EAAG2c,kBAEZ2H,EAAYM,iBAAmBxkB,GASnChI,EAAKmjB,mBAAmB5f,UAAUiI,UAAY,WAE1C,GAAI5D,GAAK1H,KAAK0H,GACVskB,EAAchsB,KAAK6rB,YAAY7N,MAC/Blb,EAAakpB,EAAYC,YACzBnkB,EAAUkkB,EAAYM,iBACtB1R,EAAa5a,KAAKwH,cAAcoT,WAChCC,EAAS7a,KAAKwH,cAAcqT,MAEhC,IAAGmR,EAAY3nB,aAAaX,OAAS,EACrC,CACIgE,EAAGsc,SAAS,EAAG,EAAGlhB,EAAW+D,MAAO/D,EAAWgE,QAE/CY,EAAGoU,WAAWpU,EAAGqU,aAAc/b,KAAKypB,cAEpCzpB,KAAKusB,YAAY,GAAK,EACtBvsB,KAAKusB,YAAY,GAAKzpB,EAAWgE,OAEjC9G,KAAKusB,YAAY,GAAKzpB,EAAW+D,MACjC7G,KAAKusB,YAAY,GAAKzpB,EAAWgE,OAEjC9G,KAAKusB,YAAY,GAAK,EACtBvsB,KAAKusB,YAAY,GAAK,EAEtBvsB,KAAKusB,YAAY,GAAKzpB,EAAW+D,MACjC7G,KAAKusB,YAAY,GAAK,EAEtB7kB,EAAGqjB,cAAcrjB,EAAGqU,aAAc,EAAG/b,KAAKusB,aAE1C7kB,EAAGoU,WAAWpU,EAAGqU,aAAc/b,KAAKwsB,UAEpCxsB,KAAKysB,QAAQ,GAAK3pB,EAAW+D,MAAM7G,KAAK6G,MACxC7G,KAAKysB,QAAQ,GAAK3pB,EAAWgE,OAAO9G,KAAK8G,OACzC9G,KAAKysB,QAAQ,GAAK3pB,EAAW+D,MAAM7G,KAAK6G,MACxC7G,KAAKysB,QAAQ,GAAK3pB,EAAWgE,OAAO9G,KAAK8G,OAEzCY,EAAGqjB,cAAcrjB,EAAGqU,aAAc,EAAG/b,KAAKysB,QAE1C,IAAIC,GAAe5kB,EACf6kB,EAAgB3sB,KAAK8rB,YAAY9N,KACjC2O,KAAcA,EAAgB,GAAI7sB,GAAKqsB,cAAcnsB,KAAK0H,GAAI1H,KAAK6G,MAAO7G,KAAK8G,SACnF6lB,EAAc5kB,OAAO/H,KAAK6G,MAAO7G,KAAK8G,QAGtCY,EAAGuc,gBAAgBvc,EAAGwc,YAAayI,EAAcN,aACjD3kB,EAAG0c,MAAM1c,EAAG2c,kBAEZ3c,EAAG+b,QAAQ/b,EAAGmc,MAEd,KAAK,GAAIpgB,GAAI,EAAGA,EAAIuoB,EAAY3nB,aAAaX,OAAO,EAAGD,IACvD,CACI,GAAImpB,GAAaZ,EAAY3nB,aAAaZ,EAE1CiE;EAAGuc,gBAAgBvc,EAAGwc,YAAayI,EAAcN,aAGjD3kB,EAAG8P,cAAc9P,EAAGmjB,UACpBnjB,EAAG+P,YAAY/P,EAAGgQ,WAAYgV,EAAa5kB,SAI3C9H,KAAK6sB,gBAAgBD,EAAY9pB,EAAYA,EAAW+D,MAAO/D,EAAWgE,OAG1E,IAAIgmB,GAAOJ,CACXA,GAAeC,EACfA,EAAgBG,EAGpBplB,EAAGkc,OAAOlc,EAAGmc,OAEb/b,EAAU4kB,EACV1sB,KAAK8rB,YAAYvnB,KAAKooB,GAG1B,GAAIT,GAASF,EAAY3nB,aAAa2nB,EAAY3nB,aAAaX,OAAO,EAEtE1D,MAAKwqB,SAAW1nB,EAAW4C,EAC3B1F,KAAKyqB,SAAW3nB,EAAW6C,CAE3B,IAAIonB,GAAQ/sB,KAAK6G,MACbmmB,EAAQhtB,KAAK8G,OAEb0jB,EAAU,EACVC,EAAU,EAEVzO,EAAShc,KAAKgc,MAGlB,IAA+B,IAA5Bhc,KAAK6rB,YAAYnoB,OAEhBgE,EAAGwf,WAAU,GAAM,GAAM,GAAM,OAGnC,CACI,GAAI+F,GAAgBjtB,KAAK6rB,YAAY7rB,KAAK6rB,YAAYnoB,OAAO,EAC7DZ,GAAamqB,EAAchB,YAE3Bc,EAAQjqB,EAAW+D,MACnBmmB,EAAQlqB,EAAWgE,OAEnB0jB,EAAU1nB,EAAW4C,EACrB+kB,EAAU3nB,EAAW6C,EAErBqW,EAAUiR,EAAcX,iBAAiBD,YAI7CzR,EAAWlV,EAAIqnB,EAAM,EACrBnS,EAAWjV,GAAKqnB,EAAM,EAEtBnS,EAAOnV,EAAI8kB,EACX3P,EAAOlV,EAAI8kB,EAEX3nB,EAAakpB,EAAYC,WAEzB,IAAIvmB,GAAI5C,EAAW4C,EAAE8kB,EACjB7kB,EAAI7C,EAAW6C,EAAE8kB,CAIrB/iB,GAAGoU,WAAWpU,EAAGqU,aAAc/b,KAAKypB,cAEpCzpB,KAAKusB,YAAY,GAAK7mB,EACtB1F,KAAKusB,YAAY,GAAK5mB,EAAI7C,EAAWgE,OAErC9G,KAAKusB,YAAY,GAAK7mB,EAAI5C,EAAW+D,MACrC7G,KAAKusB,YAAY,GAAK5mB,EAAI7C,EAAWgE,OAErC9G,KAAKusB,YAAY,GAAK7mB,EACtB1F,KAAKusB,YAAY,GAAK5mB,EAEtB3F,KAAKusB,YAAY,GAAK7mB,EAAI5C,EAAW+D,MACrC7G,KAAKusB,YAAY,GAAK5mB,EAEtB+B,EAAGqjB,cAAcrjB,EAAGqU,aAAc,EAAG/b,KAAKusB,aAE1C7kB,EAAGoU,WAAWpU,EAAGqU,aAAc/b,KAAKwsB,UAEpCxsB,KAAKysB,QAAQ,GAAK3pB,EAAW+D,MAAM7G,KAAK6G,MACxC7G,KAAKysB,QAAQ,GAAK3pB,EAAWgE,OAAO9G,KAAK8G,OACzC9G,KAAKysB,QAAQ,GAAK3pB,EAAW+D,MAAM7G,KAAK6G,MACxC7G,KAAKysB,QAAQ,GAAK3pB,EAAWgE,OAAO9G,KAAK8G,OAEzCY,EAAGqjB,cAAcrjB,EAAGqU,aAAc,EAAG/b,KAAKysB,SAE1C/kB,EAAGsc,SAAS,EAAG,EAAG+I,EAAQ/sB,KAAKwH,cAAcnG,WAAY2rB,EAAQhtB,KAAKwH,cAAcnG,YAGpFqG,EAAGuc,gBAAgBvc,EAAGwc,YAAalI,GAMnCtU,EAAG8P,cAAc9P,EAAGmjB,UACpBnjB,EAAG+P,YAAY/P,EAAGgQ,WAAY5P,EAAQA,SAGtC9H,KAAK6sB,gBAAgBX,EAAQppB,EAAYiqB,EAAOC,GAQhDhtB,KAAK8rB,YAAYvnB,KAAKuD,GACtBkkB,EAAYM,iBAAmB,MAanCxsB,EAAKmjB,mBAAmB5f,UAAUwpB,gBAAkB,SAASX,EAAQppB,EAAY+D,EAAOC,GAGpF,GAAIY,GAAK1H,KAAK0H,GACVqE,EAASmgB,EAAO5C,QAAQ5hB,EAAGkQ,GAE3B7L,KAEAA,EAAS,GAAIjM,GAAK0V,WAAW9N,GAE7BqE,EAAOgJ,YAAcmX,EAAOnX,YAC5BhJ,EAAO4K,SAAWuV,EAAOvV,SACzB5K,EAAO+J,OAEPoW,EAAO5C,QAAQ5hB,EAAGkQ,IAAM7L,GAI5B/L,KAAKwH,cAAc8H,cAAcC,UAAUxD,GAI3CrE,EAAGkU,UAAU7P,EAAOoK,iBAAkBtP,EAAM,GAAIC,EAAO,GACvDY,EAAGkU,UAAU7P,EAAOqK,aAAc,EAAE,GAEjC8V,EAAOvV,SAASN,aAEf6V,EAAOvV,SAASN,WAAWpS,MAAM,GAAKjE,KAAK6G,MAC3CqlB,EAAOvV,SAASN,WAAWpS,MAAM,GAAKjE,KAAK8G,OAC3ColB,EAAOvV,SAASN,WAAWpS,MAAM,GAAKjE,KAAKusB,YAAY,GACvDL,EAAOvV,SAASN,WAAWpS,MAAM,GAAKjE,KAAKusB,YAAY,IAG3DxgB,EAAOqN,eAEP1R,EAAGoU,WAAWpU,EAAGqU,aAAc/b,KAAKypB,cACpC/hB,EAAGuU,oBAAoBlQ,EAAOuK,gBAAiB,EAAG5O,EAAGwU,OAAO,EAAO,EAAG,GAEtExU,EAAGoU,WAAWpU,EAAGqU,aAAc/b,KAAKwsB,UACpC9kB,EAAGuU,oBAAoBlQ,EAAOyK,cAAe,EAAG9O,EAAGwU,OAAO,EAAO,EAAG,GAEpExU,EAAGoU,WAAWpU,EAAGqU,aAAc/b,KAAKktB,aACpCxlB,EAAGuU,oBAAoBlQ,EAAO0K,eAAgB,EAAG/O,EAAGwU,OAAO,EAAO,EAAG,GAErExU,EAAGoU,WAAWpU,EAAGyU,qBAAsBnc,KAAKoc,aAG5C1U,EAAG2T,aAAa3T,EAAG+jB,UAAW,EAAG/jB,EAAG6T,eAAgB,GAEpDvb,KAAKwH,cAAc6b,aAQvBvjB,EAAKmjB,mBAAmB5f,UAAU0oB,kBAAoB,WAElD,GAAIrkB,GAAK1H,KAAK0H,EAGd1H,MAAKypB,aAAe/hB,EAAGwa,eACvBliB,KAAKwsB,SAAW9kB,EAAGwa,eACnBliB,KAAKktB,YAAcxlB,EAAGwa,eACtBliB,KAAKoc,YAAc1U,EAAGwa,eAItBliB,KAAKusB,YAAc,GAAIzsB,GAAKO,cAAc,EAAK,EACV,EAAK,EACL,EAAK,EACL,EAAK,IAE1CqH,EAAGoU,WAAWpU,EAAGqU,aAAc/b,KAAKypB,cACpC/hB,EAAG0a,WAAW1a,EAAGqU,aAAc/b,KAAKusB,YAAa7kB,EAAG2a,aAGpDriB,KAAKysB,QAAU,GAAI3sB,GAAKO,cAAc,EAAK,EACV,EAAK,EACL,EAAK,EACL,EAAK,IAEtCqH,EAAGoU,WAAWpU,EAAGqU,aAAc/b,KAAKwsB,UACpC9kB,EAAG0a,WAAW1a,EAAGqU,aAAc/b,KAAKysB,QAAS/kB,EAAG2a,aAEhDriB,KAAKmtB,WAAa,GAAIrtB,GAAKO,cAAc,EAAK,SACV,EAAK,SACL,EAAK,SACL,EAAK,WAEzCqH,EAAGoU,WAAWpU,EAAGqU,aAAc/b,KAAKktB,aACpCxlB,EAAG0a,WAAW1a,EAAGqU,aAAc/b,KAAKmtB,WAAYzlB,EAAG2a,aAGnD3a,EAAGoU,WAAWpU,EAAGyU,qBAAsBnc,KAAKoc,aAC5C1U,EAAG0a,WAAW1a,EAAGyU,qBAAsB,GAAI7b,cAAa,EAAG,EAAG,EAAG,EAAG,EAAG,IAAKoH,EAAG2a,cASnFviB,EAAKmjB,mBAAmB5f,UAAUE,QAAU,WAExC,GAAImE,GAAK1H,KAAK0H,EAEd1H,MAAK6rB,YAAc,KAEnB7rB,KAAKwqB,QAAU,EACfxqB,KAAKyqB,QAAU,CAGf,KAAK,GAAIhnB,GAAI,EAAGA,EAAIzD,KAAK8rB,YAAYpoB,OAAQD,IACzCzD,KAAK8rB,YAAYroB,GAAGF,SAGxBvD,MAAK8rB,YAAc,KAGnBpkB,EAAGgkB,aAAa1rB,KAAKypB,cACrB/hB,EAAGgkB,aAAa1rB,KAAKwsB,UACrB9kB,EAAGgkB,aAAa1rB,KAAKktB,aACrBxlB,EAAGgkB,aAAa1rB,KAAKoc,cAezBtc,EAAKqsB,cAAgB,SAASzkB,EAAIb,EAAOC,EAAQN,GAM7CxG,KAAK0H,GAAKA,EAQV1H,KAAKqsB,YAAc3kB,EAAG0lB,oBAMtBptB,KAAK8H,QAAUJ,EAAGgd,gBAMlBle,EAAYA,GAAa1G,EAAK2N,WAAW4f,QAEzC3lB,EAAG+P,YAAY/P,EAAGgQ,WAAa1X,KAAK8H,SACpCJ,EAAGoR,cAAcpR,EAAGgQ,WAAYhQ,EAAGqR,mBAAoBvS,IAAc1G,EAAK2N,WAAWC,OAAShG,EAAGgG,OAAShG,EAAGkd,SAC7Gld,EAAGoR,cAAcpR,EAAGgQ,WAAYhQ,EAAGsR,mBAAoBxS,IAAc1G,EAAK2N,WAAWC,OAAShG,EAAGgG,OAAShG,EAAGkd,SAC7Gld,EAAGoR,cAAcpR,EAAGgQ,WAAYhQ,EAAGuR,eAAgBvR,EAAGuQ,eACtDvQ,EAAGoR,cAAcpR,EAAGgQ,WAAYhQ,EAAGwR,eAAgBxR,EAAGuQ,eACtDvQ,EAAGuc,gBAAgBvc,EAAGwc,YAAalkB,KAAKqsB,aAExC3kB,EAAGuc,gBAAgBvc,EAAGwc,YAAalkB,KAAKqsB,aACxC3kB,EAAG4lB,qBAAqB5lB,EAAGwc,YAAaxc,EAAG6lB,kBAAmB7lB,EAAGgQ,WAAY1X,KAAK8H,QAAS,GAG3F9H,KAAKwtB,aAAe9lB,EAAG+lB,qBACvB/lB,EAAGgmB,iBAAiBhmB,EAAGimB,aAAc3tB,KAAKwtB,cAC1C9lB,EAAGkmB,wBAAwBlmB,EAAGwc,YAAaxc,EAAGmmB,yBAA0BnmB,EAAGimB,aAAc3tB,KAAKwtB,cAE9FxtB,KAAK+H,OAAOlB,EAAOC,IAGvBhH,EAAKqsB,cAAc9oB,UAAUC,YAAcxD,EAAKqsB,cAOhDrsB,EAAKqsB,cAAc9oB,UAAU+gB,MAAQ,WAEjC,GAAI1c,GAAK1H,KAAK0H,EAEdA,GAAGyc,WAAW,EAAE,EAAE,EAAG,GACrBzc,EAAG0c,MAAM1c,EAAG2c,mBAUhBvkB,EAAKqsB,cAAc9oB,UAAU0E,OAAS,SAASlB,EAAOC,GAElD,GAAG9G,KAAK6G,QAAUA,GAAS7G,KAAK8G,SAAWA,EAA3C,CAEA9G,KAAK6G,MAAQA,EACb7G,KAAK8G,OAASA,CAEd,IAAIY,GAAK1H,KAAK0H,EAEdA,GAAG+P,YAAY/P,EAAGgQ,WAAa1X,KAAK8H,SACpCJ,EAAGkR,WAAWlR,EAAGgQ,WAAY,EAAGhQ,EAAG2Q,KAAOxR,EAAQC,EAAS,EAAGY,EAAG2Q,KAAM3Q,EAAGmR,cAAe,MAEzFnR,EAAGgmB,iBAAiBhmB,EAAGimB,aAAc3tB,KAAKwtB,cAC1C9lB,EAAGomB,oBAAoBpmB,EAAGimB,aAAcjmB,EAAGqmB,cAAelnB,EAAQC,KAQtEhH,EAAKqsB,cAAc9oB,UAAUE,QAAU,WAEnC,GAAImE,GAAK1H,KAAK0H,EACdA,GAAGsmB,kBAAmBhuB,KAAKqsB,aAC3B3kB,EAAGumB,cAAejuB,KAAK8H,SAEvB9H,KAAKqsB,YAAc,KACnBrsB,KAAK8H,QAAU,MAenBhI,EAAKouB,aAAe,SAASrnB,EAAOC,GAQhC9G,KAAK6G,MAAQA,EAQb7G,KAAK8G,OAASA,EAQd9G,KAAK+Q,OAASP,SAASQ,cAAc,UAQrChR,KAAKoN,QAAUpN,KAAK+Q,OAAOE,WAAW,MAEtCjR,KAAK+Q,OAAOlK,MAAQA,EACpB7G,KAAK+Q,OAAOjK,OAASA,GAGzBhH,EAAKouB,aAAa7qB,UAAUC,YAAcxD,EAAKouB,aAQ/CpuB,EAAKouB,aAAa7qB,UAAU+gB,MAAQ,WAEhCpkB,KAAKoN,QAAQW,aAAa,EAAG,EAAG,EAAG,EAAG,EAAG,GACzC/N,KAAKoN,QAAQ+gB,UAAU,EAAE,EAAGnuB,KAAK6G,MAAO7G,KAAK8G,SAUjDhH,EAAKouB,aAAa7qB,UAAU0E,OAAS,SAASlB,EAAOC,GAEjD9G,KAAK6G,MAAQ7G,KAAK+Q,OAAOlK,MAAQA,EACjC7G,KAAK8G,OAAS9G,KAAK+Q,OAAOjK,OAASA,GAavChH,EAAKsuB,kBAAoB,aAIzBtuB,EAAKsuB,kBAAkB/qB,UAAUC,YAAcxD,EAAKsuB,kBASpDtuB,EAAKsuB,kBAAkB/qB,UAAU6H,SAAW,SAASwb,EAAUlf,GAE9D,GAAI4F,GAAU5F,EAAc4F,OAEzBA,GAAQihB,MAER,IAAIC,GAAa5H,EAAS1kB,MACtByN,EAAYiX,EAASnkB,eAErBlB,EAAamG,EAAcnG,UAE/B+L,GAAQW,aAAa0B,EAAU1K,EAAI1D,EACdoO,EAAUzK,EAAI3D,EACdoO,EAAUxK,EAAI5D,EACdoO,EAAUvK,EAAI7D,EACdoO,EAAUtK,GAAK9D,EACfoO,EAAUrK,GAAK/D,GAEpCvB,EAAKyuB,eAAeC,mBAAmB9H,EAAUtZ,GAEjDA,EAAQqhB,OAER/H,EAASpkB,WAAagsB,GAS1BxuB,EAAKsuB,kBAAkB/qB,UAAUgI,QAAU,SAAS7D,GAEhDA,EAAc4F,QAAQshB,WAa1B5uB,EAAKqO,aAAe,aAWpBrO,EAAKqO,aAAaC,iBAAmB,SAASub,EAAQpP,GAElD,GAAIxJ,GAAS4Y,EAAOhe,eAAiB6E,SAASQ,cAAc,SAI5D,OAFAlR,GAAKqO,aAAawgB,WAAWhF,EAAO7hB,QAASyS,EAAOxJ,GAE7CA,GAYXjR,EAAKqO,aAAaygB,iBAAmB,SAAS9mB,EAASyS,EAAOxJ,GAE1D,GAAI3D,GAAU2D,EAAOE,WAAW,MAE5B/D,EAAOpF,EAAQoF,MAEf6D,EAAOlK,QAAUqG,EAAKrG,OAASkK,EAAOjK,SAAWoG,EAAKpG,UAEtDiK,EAAOlK,MAAQqG,EAAKrG,MACpBkK,EAAOjK,OAASoG,EAAKpG,QAGzBsG,EAAQ+gB,UAAU,EAAG,EAAGjhB,EAAKrG,MAAOqG,EAAKpG,QAEzCsG,EAAQyhB,UAAY,KAAO,SAAmB,EAARtU,GAAWrK,SAAS,KAAKC,OAAO,IACtE/C,EAAQ0hB,SAAS,EAAG,EAAG5hB,EAAKrG,MAAOqG,EAAKpG,QAExCsG,EAAQC,yBAA2B,WACnCD,EAAQiB,UAAUvG,EAAQkE,YAAYwC,OAAQtB,EAAKxH,EAAGwH,EAAKvH,EAAGuH,EAAKrG,MAAOqG,EAAKpG,OAAQ,EAAG,EAAGoG,EAAKrG,MAAOqG,EAAKpG,QAE9GsG,EAAQC,yBAA2B,mBACnCD,EAAQiB,UAAUvG,EAAQkE,YAAYwC,OAAQtB,EAAKxH,EAAGwH,EAAKvH,EAAGuH,EAAKrG,MAAOqG,EAAKpG,OAAQ,EAAG,EAAGoG,EAAKrG,MAAOqG,EAAKpG,SAalHhH,EAAKqO,aAAa4gB,iBAAmB,SAASjnB,EAASyS,EAAOxJ,GAE1D,GAAI3D,GAAU2D,EAAOE,WAAW,MAE5B/D,EAAOpF,EAAQoF,IAEnB6D,GAAOlK,MAAQqG,EAAKrG,MACpBkK,EAAOjK,OAASoG,EAAKpG,OAErBsG,EAAQC,yBAA2B,OAEnCD,EAAQiB,UAAUvG,EAAQkE,YAAYwC,OAAQtB,EAAKxH,EAAGwH,EAAKvH,EAAGuH,EAAKrG,MAAOqG,EAAKpG,OAAQ,EAAG,EAAGoG,EAAKrG,MAAOqG,EAAKpG,OAS9G,KAAK,GAPDkoB,GAAYlvB,EAAKkQ,QAAQuK,GACzB8D,EAAI2Q,EAAU,GAAI1Q,EAAI0Q,EAAU,GAAIhqB,EAAIgqB,EAAU,GAElDC,EAAY7hB,EAAQ8D,aAAa,EAAG,EAAGhE,EAAKrG,MAAOqG,EAAKpG,QAExDooB,EAASD,EAAU9d,KAEd1N,EAAI,EAAGA,EAAIyrB,EAAOxrB,OAAQD,GAAK,EAMpC,GAJAyrB,EAAOzrB,EAAI,IAAM4a,EACjB6Q,EAAOzrB,EAAI,IAAM6a,EACjB4Q,EAAOzrB,EAAI,IAAMuB,GAEZlF,EAAKqO,aAAaghB,eACvB,CACI,GAAIntB,GAAQktB,EAAOzrB,EAAI,EAEvByrB,GAAOzrB,EAAI,IAAM,IAAMzB,EACvBktB,EAAOzrB,EAAI,IAAM,IAAMzB,EACvBktB,EAAOzrB,EAAI,IAAM,IAAMzB,EAI/BoL,EAAQgiB,aAAaH,EAAW,EAAG,IASvCnvB,EAAKqO,aAAakhB,kBAAoB,WAElC,GAAIte,GAAS,GAAIjR,GAAKouB,aAAa,EAAG,EAEtCnd,GAAO3D,QAAQyhB,UAAY,wBAG3B9d,EAAO3D,QAAQ0hB,SAAS,EAAG,EAAG,EAAG,EAGjC,IAAIQ,GAAKve,EAAO3D,QAAQ8D,aAAa,EAAG,EAAG,EAAG,EAE9C,IAAW,OAAPoe,EAEA,OAAO,CAIXve,GAAO3D,QAAQgiB,aAAaE,EAAI,EAAG,EAGnC,IAAIC,GAAKxe,EAAO3D,QAAQ8D,aAAa,EAAG,EAAG,EAAG,EAG9C,OAAQqe,GAAGpe,KAAK,KAAOme,EAAGne,KAAK,IAAMoe,EAAGpe,KAAK,KAAOme,EAAGne,KAAK,IAAMoe,EAAGpe,KAAK,KAAOme,EAAGne,KAAK,IAAMoe,EAAGpe,KAAK,KAAOme,EAAGne,KAAK,IAW1HrR,EAAKqO,aAAaghB,eAAiBrvB,EAAKqO,aAAakhB,oBASrDvvB,EAAKqO,aAAaqhB,eAAiB1vB,EAAKyQ,4BAQxCzQ,EAAKqO,aAAawgB,WAAa7uB,EAAKqO,aAAaqhB,eAAiB1vB,EAAKqO,aAAaygB,iBAAoB9uB,EAAKqO,aAAa4gB,iBAqB1HjvB,EAAK2vB,eAAiB,SAAS5oB,EAAOC,EAAQ2b,GAE1C,GAAIA,EAEA,IAAK,GAAIhf,KAAK3D,GAAKkB,qBAEIyI,SAAfgZ,EAAQhf,KAAkBgf,EAAQhf,GAAK3D,EAAKkB,qBAAqByC,QAKzEgf,GAAU3iB,EAAKkB,oBAGdlB,GAAK4iB,kBAEN5iB,EAAK4iB,gBAAkB1iB,MAS3BA,KAAK+W,KAAOjX,EAAKI,gBAQjBF,KAAKqB,WAAaohB,EAAQphB,WAY1BrB,KAAKsB,kBAAoBmhB,EAAQnhB,kBAQjCtB,KAAKkB,YAAcuhB,EAAQvhB,YAQ3BlB,KAAKuB,WAAakhB,EAAQlhB,aAAc,EASxCvB,KAAK6G,MAAQA,GAAS,IAStB7G,KAAK8G,OAASA,GAAU,IAExB9G,KAAK6G,OAAS7G,KAAKqB,WACnBrB,KAAK8G,QAAU9G,KAAKqB,WAQpBrB,KAAKiB,KAAOwhB,EAAQxhB,MAAQuP,SAASQ,cAAe,UAOpDhR,KAAKoN,QAAUpN,KAAKiB,KAAKgQ,WAAY,MAAQjP,MAAOhC,KAAKkB,cAQzDlB,KAAK0vB,SAAU,EAEf1vB,KAAKiB,KAAK4F,MAAQ7G,KAAK6G,MAAQ7G,KAAKqB,WACpCrB,KAAKiB,KAAK6F,OAAS9G,KAAK8G,OAAS9G,KAAKqB,WAQtCrB,KAAK6mB,MAAQ,EAOb7mB,KAAKiL,YAAc,GAAInL,GAAKsuB,kBAO5BpuB,KAAKwH,eACD4F,QAASpN,KAAKoN,QACdnC,YAAajL,KAAKiL,YAClBzE,UAAW,KACXgH,eAAgB,KAKhBM,aAAa,GAGjB9N,KAAKujB,gBAELvjB,KAAK+H,OAAOlB,EAAOC,GAEhB,yBAA2B9G,MAAKoN,QAC/BpN,KAAKwH,cAAcgG,eAAiB,wBAChC,+BAAiCxN,MAAKoN,QAC1CpN,KAAKwH,cAAcgG,eAAiB,8BAChC,4BAA8BxN,MAAKoN,QACvCpN,KAAKwH,cAAcgG,eAAiB,2BAChC,0BAA4BxN,MAAKoN,QACrCpN,KAAKwH,cAAcgG,eAAiB,yBAC/B,2BAA6BxN,MAAKoN,UACvCpN,KAAKwH,cAAcgG,eAAiB,4BAI5C1N,EAAK2vB,eAAepsB,UAAUC,YAAcxD,EAAK2vB,eAQjD3vB,EAAK2vB,eAAepsB,UAAU2D,OAAS,SAAS3E,GAE5CA,EAAMsC,kBAEN3E,KAAKoN,QAAQW,aAAa,EAAE,EAAE,EAAE,EAAE,EAAE,GAEpC/N,KAAKoN,QAAQG,YAAc,EAE3BvN,KAAKwH,cAAc2F,iBAAmBrN,EAAK+L,WAAWC,OACtD9L,KAAKoN,QAAQC,yBAA2BvN,EAAKwN,iBAAiBxN,EAAK+L,WAAWC,QAE1E6jB,UAAUC,YAAc5vB,KAAKiB,KAAK4uB,eAElC7vB,KAAKoN,QAAQyhB,UAAY,QACzB7uB,KAAKoN,QAAQgX,SAGbpkB,KAAKsB,oBAEDtB,KAAKkB,YAELlB,KAAKoN,QAAQ+gB,UAAU,EAAG,EAAGnuB,KAAK6G,MAAO7G,KAAK8G,SAI9C9G,KAAKoN,QAAQyhB,UAAYxsB,EAAM+N,sBAC/BpQ,KAAKoN,QAAQ0hB,SAAS,EAAG,EAAG9uB,KAAK6G,MAAQ7G,KAAK8G,UAItD9G,KAAKskB,oBAAoBjiB,IAU7BvC,EAAK2vB,eAAepsB,UAAUE,QAAU,SAASusB,GAE1BrmB,SAAfqmB,IAA4BA,GAAa,GAEzCA,GAAc9vB,KAAKiB,KAAKmB,QAExBpC,KAAKiB,KAAKmB,OAAOuG,YAAY3I,KAAKiB,MAGtCjB,KAAKiB,KAAO,KACZjB,KAAKoN,QAAU,KACfpN,KAAKiL,YAAc,KACnBjL,KAAKwH,cAAgB,MAWzB1H,EAAK2vB,eAAepsB,UAAU0E,OAAS,SAASlB,EAAOC,GAEnD9G,KAAK6G,MAAQA,EAAQ7G,KAAKqB,WAC1BrB,KAAK8G,OAASA,EAAS9G,KAAKqB,WAE5BrB,KAAKiB,KAAK4F,MAAQ7G,KAAK6G,MACvB7G,KAAKiB,KAAK6F,OAAS9G,KAAK8G,OAEpB9G,KAAKuB,aACLvB,KAAKiB,KAAKwjB,MAAM5d,MAAQ7G,KAAK6G,MAAQ7G,KAAKqB,WAAa,KACvDrB,KAAKiB,KAAKwjB,MAAM3d,OAAS9G,KAAK8G,OAAS9G,KAAKqB,WAAa,OAajEvB,EAAK2vB,eAAepsB,UAAUihB,oBAAsB,SAASC,EAAenX,EAASnH,GAEjFjG,KAAKwH,cAAc4F,QAAUA,GAAWpN,KAAKoN,QAC7CpN,KAAKwH,cAAcnG,WAAarB,KAAKqB,WACrCkjB,EAAc1c,cAAc7H,KAAKwH,cAAevB,IASpDnG,EAAK2vB,eAAepsB,UAAUkgB,cAAgB,WAEtCzjB,EAAKwN,mBAELxN,EAAKwN,oBAEFxN,EAAKyQ,6BAEJzQ,EAAKwN,iBAAiBxN,EAAK+L,WAAWC,QAAY,cAClDhM,EAAKwN,iBAAiBxN,EAAK+L,WAAWwZ,KAAY,UAClDvlB,EAAKwN,iBAAiBxN,EAAK+L,WAAW2Z,UAAY,WAClD1lB,EAAKwN,iBAAiBxN,EAAK+L,WAAW6Z,QAAY,SAClD5lB,EAAKwN,iBAAiBxN,EAAK+L,WAAW8Z,SAAY,UAClD7lB,EAAKwN,iBAAiBxN,EAAK+L,WAAW+Z,QAAY,SAClD9lB,EAAKwN,iBAAiBxN,EAAK+L,WAAWga,SAAY,UAClD/lB,EAAKwN,iBAAiBxN,EAAK+L,WAAWia,aAAe,cACrDhmB,EAAKwN,iBAAiBxN,EAAK+L,WAAWka,YAAc,aACpDjmB,EAAKwN,iBAAiBxN,EAAK+L,WAAWma,YAAc,aACpDlmB,EAAKwN,iBAAiBxN,EAAK+L,WAAWoa,YAAc,aACpDnmB,EAAKwN,iBAAiBxN,EAAK+L,WAAWqa,YAAc,aACpDpmB,EAAKwN,iBAAiBxN,EAAK+L,WAAWsa,WAAa,YACnDrmB,EAAKwN,iBAAiBxN,EAAK+L,WAAWua,KAAa,MACnDtmB,EAAKwN,iBAAiBxN,EAAK+L,WAAWwa,YAAc,aACpDvmB,EAAKwN,iBAAiBxN,EAAK+L,WAAWya,OAAc,QACpDxmB,EAAKwN,iBAAiBxN,EAAK+L,WAAW0a,YAAc,eAKpDzmB,EAAKwN,iBAAiBxN,EAAK+L,WAAWC,QAAY,cAClDhM,EAAKwN,iBAAiBxN,EAAK+L,WAAWwZ,KAAY,UAClDvlB,EAAKwN,iBAAiBxN,EAAK+L,WAAW2Z,UAAY,cAClD1lB,EAAKwN,iBAAiBxN,EAAK+L,WAAW6Z,QAAY,cAClD5lB,EAAKwN,iBAAiBxN,EAAK+L,WAAW8Z,SAAY,cAClD7lB,EAAKwN,iBAAiBxN,EAAK+L,WAAW+Z,QAAY,cAClD9lB,EAAKwN,iBAAiBxN,EAAK+L,WAAWga,SAAY,cAClD/lB,EAAKwN,iBAAiBxN,EAAK+L,WAAWia,aAAe,cACrDhmB,EAAKwN,iBAAiBxN,EAAK+L,WAAWka,YAAc,cACpDjmB,EAAKwN,iBAAiBxN,EAAK+L,WAAWma,YAAc,cACpDlmB,EAAKwN,iBAAiBxN,EAAK+L,WAAWoa,YAAc,cACpDnmB,EAAKwN,iBAAiBxN,EAAK+L,WAAWqa,YAAc,cACpDpmB,EAAKwN,iBAAiBxN,EAAK+L,WAAWsa,WAAa,cACnDrmB,EAAKwN,iBAAiBxN,EAAK+L,WAAWua,KAAa,cACnDtmB,EAAKwN,iBAAiBxN,EAAK+L,WAAWwa,YAAc,cACpDvmB,EAAKwN,iBAAiBxN,EAAK+L,WAAWya,OAAc,cACpDxmB,EAAKwN,iBAAiBxN,EAAK+L,WAAW0a,YAAc,iBAgBhEzmB,EAAKyuB,eAAiB,aAYtBzuB,EAAKyuB,eAAe9T,eAAiB,SAASC,EAAUtN,GAEpD,GAAI9K,GAAaoY,EAASpY,UAEtBoY,GAAS9E,QAET5V,KAAK+vB,mBAAmBrV,GACxBA,EAAS9E,OAAQ,EAGrB,KAAK,GAAInS,GAAI,EAAGA,EAAIiX,EAAS8B,aAAa9Y,OAAQD,IAClD,CACI,GAAI0N,GAAOuJ,EAAS8B,aAAa/Y,GAC7BqZ,EAAQ3L,EAAK2L,MAEbqB,EAAYhN,EAAK6e,UACjBjO,EAAY5Q,EAAK8e,SAIrB,IAFA7iB,EAAQkQ,UAAYnM,EAAKmM,UAErBnM,EAAK4F,OAASjX,EAAK6c,SAASC,KAChC,CACIxP,EAAQ8iB,WAER,IAAIrT,GAASC,EAAMD,MAEnBzP,GAAQ+iB,OAAOtT,EAAO,GAAIA,EAAO,GAEjC,KAAK,GAAIvY,GAAE,EAAGA,EAAIuY,EAAOnZ,OAAO,EAAGY,IAE/B8I,EAAQgjB,OAAOvT,EAAW,EAAJvY,GAAQuY,EAAW,EAAJvY,EAAQ,GAG7CwY,GAAME,QAEN5P,EAAQgjB,OAAOvT,EAAO,GAAIA,EAAO,IAIjCA,EAAO,KAAOA,EAAOA,EAAOnZ,OAAO,IAAMmZ,EAAO,KAAOA,EAAOA,EAAOnZ,OAAO,IAE5E0J,EAAQijB,YAGRlf,EAAK8L,OAEL7P,EAAQG,YAAc4D,EAAKiN,UAAY9b,EACvC8K,EAAQyhB,UAAY,KAAO,SAAwB,EAAZ1Q,GAAejO,SAAS,KAAKC,OAAO,IAC3E/C,EAAQ6P,QAGR9L,EAAKmM,YAELlQ,EAAQG,YAAc4D,EAAK6Q,UAAY1f,EACvC8K,EAAQkjB,YAAc,KAAO,SAAwB,EAAZvO,GAAe7R,SAAS,KAAKC,OAAO,IAC7E/C,EAAQmjB,cAGX,IAAIpf,EAAK4F,OAASjX,EAAK6c,SAASa,MAE7BrM,EAAKgN,WAAgC,IAAnBhN,EAAKgN,aAEvB/Q,EAAQG,YAAc4D,EAAKiN,UAAY9b,EACvC8K,EAAQyhB,UAAY,KAAO,SAAwB,EAAZ1Q,GAAejO,SAAS,KAAKC,OAAO,IAC3E/C,EAAQ0hB,SAAShS,EAAMpX,EAAGoX,EAAMnX,EAAGmX,EAAMjW,MAAOiW,EAAMhW,SAGtDqK,EAAKmM,YAELlQ,EAAQG,YAAc4D,EAAK6Q,UAAY1f,EACvC8K,EAAQkjB,YAAc,KAAO,SAAwB,EAAZvO,GAAe7R,SAAS,KAAKC,OAAO,IAC7E/C,EAAQojB,WAAW1T,EAAMpX,EAAGoX,EAAMnX,EAAGmX,EAAMjW,MAAOiW,EAAMhW,aAG3D,IAAIqK,EAAK4F,OAASjX,EAAK6c,SAASe,KAGjCtQ,EAAQ8iB,YACR9iB,EAAQqjB,IAAI3T,EAAMpX,EAAGoX,EAAMnX,EAAGmX,EAAM6B,OAAO,EAAE,EAAEhe,KAAKC,IACpDwM,EAAQijB,YAEJlf,EAAK8L,OAEL7P,EAAQG,YAAc4D,EAAKiN,UAAY9b,EACvC8K,EAAQyhB,UAAY,KAAO,SAAwB,EAAZ1Q,GAAejO,SAAS,KAAKC,OAAO,IAC3E/C,EAAQ6P,QAGR9L,EAAKmM,YAELlQ,EAAQG,YAAc4D,EAAK6Q,UAAY1f,EACvC8K,EAAQkjB,YAAc,KAAO,SAAwB,EAAZvO,GAAe7R,SAAS,KAAKC,OAAO,IAC7E/C,EAAQmjB,cAGX,IAAIpf,EAAK4F,OAASjX,EAAK6c,SAASgB,KACrC,CAGI,GAAIpE,GAAkB,EAAduD,EAAMjW,MACVwjB,EAAmB,EAAfvN,EAAMhW,OAEVpB,EAAIoX,EAAMpX,EAAI6T,EAAE,EAChB5T,EAAImX,EAAMnX,EAAI0kB,EAAE,CAEpBjd,GAAQ8iB,WAER,IAAIQ,GAAQ,SACRC,EAAMpX,EAAI,EAAKmX,EACfE,EAAMvG,EAAI,EAAKqG,EACfG,EAAKnrB,EAAI6T,EACTuX,EAAKnrB,EAAI0kB,EACT0G,EAAKrrB,EAAI6T,EAAI,EACbyX,EAAKrrB,EAAI0kB,EAAI,CAEjBjd,GAAQ+iB,OAAOzqB,EAAGsrB,GAClB5jB,EAAQ6jB,cAAcvrB,EAAGsrB,EAAKJ,EAAIG,EAAKJ,EAAIhrB,EAAGorB,EAAIprB,GAClDyH,EAAQ6jB,cAAcF,EAAKJ,EAAIhrB,EAAGkrB,EAAIG,EAAKJ,EAAIC,EAAIG,GACnD5jB,EAAQ6jB,cAAcJ,EAAIG,EAAKJ,EAAIG,EAAKJ,EAAIG,EAAIC,EAAID,GACpD1jB,EAAQ6jB,cAAcF,EAAKJ,EAAIG,EAAIprB,EAAGsrB,EAAKJ,EAAIlrB,EAAGsrB,GAElD5jB,EAAQijB,YAEJlf,EAAK8L,OAEL7P,EAAQG,YAAc4D,EAAKiN,UAAY9b,EACvC8K,EAAQyhB,UAAY,KAAO,SAAwB,EAAZ1Q,GAAejO,SAAS,KAAKC,OAAO,IAC3E/C,EAAQ6P,QAGR9L,EAAKmM,YAELlQ,EAAQG,YAAc4D,EAAK6Q,UAAY1f,EACvC8K,EAAQkjB,YAAc,KAAO,SAAwB,EAAZvO,GAAe7R,SAAS,KAAKC,OAAO,IAC7E/C,EAAQmjB,cAGX,IAAIpf,EAAK4F,OAASjX,EAAK6c,SAASkB,KACrC,CACI,GAAIqT,GAAKpU,EAAMpX,EACXyrB,EAAKrU,EAAMnX,EACXkB,EAAQiW,EAAMjW,MACdC,EAASgW,EAAMhW,OACf6X,EAAS7B,EAAM6B,OAEfyS,EAAYzwB,KAAK0wB,IAAIxqB,EAAOC,GAAU,EAAI,CAC9C6X,GAASA,EAASyS,EAAYA,EAAYzS,EAE1CvR,EAAQ8iB,YACR9iB,EAAQ+iB,OAAOe,EAAIC,EAAKxS,GACxBvR,EAAQgjB,OAAOc,EAAIC,EAAKrqB,EAAS6X,GACjCvR,EAAQkkB,iBAAiBJ,EAAIC,EAAKrqB,EAAQoqB,EAAKvS,EAAQwS,EAAKrqB,GAC5DsG,EAAQgjB,OAAOc,EAAKrqB,EAAQ8X,EAAQwS,EAAKrqB,GACzCsG,EAAQkkB,iBAAiBJ,EAAKrqB,EAAOsqB,EAAKrqB,EAAQoqB,EAAKrqB,EAAOsqB,EAAKrqB,EAAS6X,GAC5EvR,EAAQgjB,OAAOc,EAAKrqB,EAAOsqB,EAAKxS,GAChCvR,EAAQkkB,iBAAiBJ,EAAKrqB,EAAOsqB,EAAID,EAAKrqB,EAAQ8X,EAAQwS,GAC9D/jB,EAAQgjB,OAAOc,EAAKvS,EAAQwS,GAC5B/jB,EAAQkkB,iBAAiBJ,EAAIC,EAAID,EAAIC,EAAKxS,GAC1CvR,EAAQijB,aAEJlf,EAAKgN,WAAgC,IAAnBhN,EAAKgN,aAEvB/Q,EAAQG,YAAc4D,EAAKiN,UAAY9b,EACvC8K,EAAQyhB,UAAY,KAAO,SAAwB,EAAZ1Q,GAAejO,SAAS,KAAKC,OAAO,IAC3E/C,EAAQ6P,QAGR9L,EAAKmM,YAELlQ,EAAQG,YAAc4D,EAAK6Q,UAAY1f,EACvC8K,EAAQkjB,YAAc,KAAO,SAAwB,EAAZvO,GAAe7R,SAAS,KAAKC,OAAO,IAC7E/C,EAAQmjB,aAexBzwB,EAAKyuB,eAAeC,mBAAqB,SAAS9T,EAAUtN,GAExD,GAAImkB,GAAM7W,EAAS8B,aAAa9Y,MAEhC,IAAY,IAAR6tB,EAAJ,CAKAnkB,EAAQ8iB,WAER,KAAK,GAAIzsB,GAAI,EAAO8tB,EAAJ9tB,EAASA,IACzB,CACI,GAAI0N,GAAOuJ,EAAS8B,aAAa/Y,GAC7BqZ,EAAQ3L,EAAK2L,KAEjB,IAAI3L,EAAK4F,OAASjX,EAAK6c,SAASC,KAChC,CAEI,GAAIC,GAASC,EAAMD,MAEnBzP,GAAQ+iB,OAAOtT,EAAO,GAAIA,EAAO,GAEjC,KAAK,GAAIvY,GAAE,EAAGA,EAAIuY,EAAOnZ,OAAO,EAAGY,IAE/B8I,EAAQgjB,OAAOvT,EAAW,EAAJvY,GAAQuY,EAAW,EAAJvY,EAAQ,GAI7CuY,GAAO,KAAOA,EAAOA,EAAOnZ,OAAO,IAAMmZ,EAAO,KAAOA,EAAOA,EAAOnZ,OAAO,IAE5E0J,EAAQijB,gBAIX,IAAIlf,EAAK4F,OAASjX,EAAK6c,SAASa,KAEjCpQ,EAAQokB,KAAK1U,EAAMpX,EAAGoX,EAAMnX,EAAGmX,EAAMjW,MAAOiW,EAAMhW,QAClDsG,EAAQijB,gBAEP,IAAIlf,EAAK4F,OAASjX,EAAK6c,SAASe,KAGjCtQ,EAAQqjB,IAAI3T,EAAMpX,EAAGoX,EAAMnX,EAAGmX,EAAM6B,OAAQ,EAAG,EAAIhe,KAAKC,IACxDwM,EAAQijB,gBAEP,IAAIlf,EAAK4F,OAASjX,EAAK6c,SAASgB,KACrC,CAII,GAAIpE,GAAkB,EAAduD,EAAMjW,MACVwjB,EAAmB,EAAfvN,EAAMhW,OAEVpB,EAAIoX,EAAMpX,EAAI6T,EAAE,EAChB5T,EAAImX,EAAMnX,EAAI0kB,EAAE,EAEhBqG,EAAQ,SACRC,EAAMpX,EAAI,EAAKmX,EACfE,EAAMvG,EAAI,EAAKqG,EACfG,EAAKnrB,EAAI6T,EACTuX,EAAKnrB,EAAI0kB,EACT0G,EAAKrrB,EAAI6T,EAAI,EACbyX,EAAKrrB,EAAI0kB,EAAI,CAEjBjd,GAAQ+iB,OAAOzqB,EAAGsrB,GAClB5jB,EAAQ6jB,cAAcvrB,EAAGsrB,EAAKJ,EAAIG,EAAKJ,EAAIhrB,EAAGorB,EAAIprB,GAClDyH,EAAQ6jB,cAAcF,EAAKJ,EAAIhrB,EAAGkrB,EAAIG,EAAKJ,EAAIC,EAAIG,GACnD5jB,EAAQ6jB,cAAcJ,EAAIG,EAAKJ,EAAIG,EAAKJ,EAAIG,EAAIC,EAAID,GACpD1jB,EAAQ6jB,cAAcF,EAAKJ,EAAIG,EAAIprB,EAAGsrB,EAAKJ,EAAIlrB,EAAGsrB,GAClD5jB,EAAQijB,gBAEP,IAAIlf,EAAK4F,OAASjX,EAAK6c,SAASkB,KACrC,CAEI,GAAIqT,GAAKpU,EAAMpX,EACXyrB,EAAKrU,EAAMnX,EACXkB,EAAQiW,EAAMjW,MACdC,EAASgW,EAAMhW,OACf6X,EAAS7B,EAAM6B,OAEfyS,EAAYzwB,KAAK0wB,IAAIxqB,EAAOC,GAAU,EAAI,CAC9C6X,GAASA,EAASyS,EAAYA,EAAYzS,EAE1CvR,EAAQ+iB,OAAOe,EAAIC,EAAKxS,GACxBvR,EAAQgjB,OAAOc,EAAIC,EAAKrqB,EAAS6X,GACjCvR,EAAQkkB,iBAAiBJ,EAAIC,EAAKrqB,EAAQoqB,EAAKvS,EAAQwS,EAAKrqB,GAC5DsG,EAAQgjB,OAAOc,EAAKrqB,EAAQ8X,EAAQwS,EAAKrqB,GACzCsG,EAAQkkB,iBAAiBJ,EAAKrqB,EAAOsqB,EAAKrqB,EAAQoqB,EAAKrqB,EAAOsqB,EAAKrqB,EAAS6X,GAC5EvR,EAAQgjB,OAAOc,EAAKrqB,EAAOsqB,EAAKxS,GAChCvR,EAAQkkB,iBAAiBJ,EAAKrqB,EAAOsqB,EAAID,EAAKrqB,EAAQ8X,EAAQwS,GAC9D/jB,EAAQgjB,OAAOc,EAAKvS,EAAQwS,GAC5B/jB,EAAQkkB,iBAAiBJ,EAAIC,EAAID,EAAIC,EAAKxS,GAC1CvR,EAAQijB,gBAKpBvwB,EAAKyuB,eAAewB,mBAAqB,SAASrV,GAE9C,GAAsB,WAAlBA,EAASjP,KASb,IAAK,GAJDgmB,IAAS/W,EAASjP,MAAQ,GAAK,KAAQ,IACvCimB,GAAShX,EAASjP,MAAQ,EAAI,KAAQ,IACtCkmB,GAAyB,IAAhBjX,EAASjP,MAAc,IAE3BhI,EAAI,EAAGA,EAAIiX,EAAS8B,aAAa9Y,OAAQD,IAClD,CACI,GAAI0N,GAAOuJ,EAAS8B,aAAa/Y,GAE7B0a,EAA6B,EAAjBhN,EAAKgN,UACjB4D,EAA6B,EAAjB5Q,EAAK4Q,SAwBrB5Q,GAAK6e,YAAe7R,GAAa,GAAK,KAAQ,IAAMsT,EAAM,KAAO,MAAQtT,GAAa,EAAI,KAAQ,IAAMuT,EAAM,KAAO,IAAmB,IAAZvT,GAAoB,IAAMwT,EAAM,IAC5JxgB,EAAK8e,YAAelO,GAAa,GAAK,KAAQ,IAAM0P,EAAM,KAAO,MAAQ1P,GAAa,EAAI,KAAQ,IAAM2P,EAAM,KAAO,IAAmB,IAAZ3P,GAAoB,IAAM4P,EAAM,MASpK7xB,EAAK8xB,oBAEL9xB,EAAK+xB,4BAA8B,EAWnC/xB,EAAKgyB,YAAc,SAAStjB,EAAQhI,GAQhCxG,KAAKqB,WAAa,EASlBrB,KAAK6G,MAAQ,IASb7G,KAAK8G,OAAS,IASd9G,KAAKwG,UAAYA,GAAa1G,EAAK2N,WAAW4f,QAS9CrtB,KAAKiM,WAAY,EAQjBjM,KAAKwO,OAASA,EAEdxO,KAAKI,KAAON,EAAKM,OASjBJ,KAAK4iB,oBAAqB,EAS1B5iB,KAAK2X,eASL3X,KAAK6kB,QAAS,EAOd7kB,KAAKwZ,SAAU,GAAM,GAAM,GAAM,GAE5BhL,KAKAxO,KAAKwO,OAAOujB,UAAY/xB,KAAKwO,OAAOyC,aAAejR,KAAKwO,OAAO3H,OAAS7G,KAAKwO,OAAO1H,SAErF9G,KAAKiM,WAAY,EACjBjM,KAAK6G,MAAQ7G,KAAKwO,OAAOwjB,cAAgBhyB,KAAKwO,OAAO3H,MACrD7G,KAAK8G,OAAS9G,KAAKwO,OAAOyjB,eAAiBjyB,KAAKwO,OAAO1H,OACvD9G,KAAK4V,SAOT5V,KAAKkyB,SAAW,KAOhBlyB,KAAKilB,WAAY,IAIrBnlB,EAAKgyB,YAAYzuB,UAAUC,YAAcxD,EAAKgyB,YAW9ChyB,EAAKgyB,YAAYzuB,UAAU8uB,YAAc,SAAStrB,EAAOC,GAErD9G,KAAKiM,WAAY,EACjBjM,KAAK6G,MAAQA,EACb7G,KAAK8G,OAASA,EACd9G,KAAK4V,SAST9V,EAAKgyB,YAAYzuB,UAAUE,QAAU,WAE7BvD,KAAKkyB,gBAEEpyB,GAAK8xB,iBAAiB5xB,KAAKkyB,gBAC3BpyB,GAAK6O,aAAa3O,KAAKkyB,UAC9BlyB,KAAKkyB,SAAW,KACXvC,UAAUC,aAAY5vB,KAAKwO,OAAOqC,IAAM,KAExC7Q,KAAKwO,QAAUxO,KAAKwO,OAAO4jB,eAEzBtyB,GAAK8xB,iBAAiB5xB,KAAKwO,OAAO4jB,SAE7CpyB,KAAKwO,OAAS,KAEdxO,KAAKqyB,iBASTvyB,EAAKgyB,YAAYzuB,UAAUivB,kBAAoB,SAASC,GAEpDvyB,KAAKiM,WAAY,EACjBjM,KAAKwO,OAAOqC,IAAM,KAClB7Q,KAAKwO,OAAOqC,IAAM0hB,GAQtBzyB,EAAKgyB,YAAYzuB,UAAUuS,MAAQ,WAE/B,IAAK,GAAInS,GAAI,EAAGA,EAAIzD,KAAK2X,YAAYjU,OAAQD,IAEzCzD,KAAKwZ,OAAO/V,IAAK,GAUzB3D,EAAKgyB,YAAYzuB,UAAUgvB,cAAgB,WAEvCryB,KAAK4V,OAGL,KAAK,GAAInS,GAAIzD,KAAK2X,YAAYjU,OAAS,EAAGD,GAAK,EAAGA,IAClD,CACI,GAAI+uB,GAAYxyB,KAAK2X,YAAYlU,GAC7BiE,EAAK5H,EAAKyiB,WAAW9e,EAEtBiE,IAAM8qB,GAEL9qB,EAAGumB,cAAcuE,GAKzBxyB,KAAK2X,YAAYjU,OAAS,EAE1B1D,KAAK4V,SAcT9V,EAAKgyB,YAAYljB,UAAY,SAASsjB,EAAUpjB,EAAatI,GAEzD,GAAIwF,GAAclM,EAAK8xB,iBAAiBM,EAIxC,IAFmBzoB,SAAhBqF,GAA2D,KAA9BojB,EAAS/oB,QAAQ,WAAiB2F,GAAc,IAE5E9C,EACJ,CAGI,GAAIymB,GAAQ,GAAI7hB,MAEZ9B,KAEA2jB,EAAMC,YAAc,IAGxBD,EAAM5hB,IAAMqhB,EACZlmB,EAAc,GAAIlM,GAAKgyB,YAAYW,EAAOjsB,GAC1CwF,EAAYkmB,SAAWA,EACvBpyB,EAAK8xB,iBAAiBM,GAAYlmB,EAGiB,KAA/CkmB,EAAS/oB,QAAQrJ,EAAKiB,cAAgB,OAEtCiL,EAAY3K,WAAa,GAIjC,MAAO2K,IAYXlM,EAAKgyB,YAAYa,WAAa,SAAS5hB,EAAQvK,GAEvCuK,EAAOqhB,UAEPrhB,EAAOqhB,QAAU,UAAYtyB,EAAK8yB,2BAGjB,IAAjB7hB,EAAOlK,QAEPkK,EAAOlK,MAAQ,GAGG,IAAlBkK,EAAOjK,SAEPiK,EAAOjK,OAAS,EAGpB,IAAIkF,GAAclM,EAAK8xB,iBAAiB7gB,EAAOqhB,QAQ/C,OANIpmB,KAEAA,EAAc,GAAIlM,GAAKgyB,YAAY/gB,EAAQvK,GAC3C1G,EAAK8xB,iBAAiB7gB,EAAOqhB,SAAWpmB,GAGrCA,GAOXlM,EAAK6O,gBACL7O,EAAK+yB,cASL/yB,EAAKgzB,mBAAoB,EAEzBhzB,EAAK8yB,wBAA0B,EAc/B9yB,EAAKyL,QAAU,SAASS,EAAaG,EAAOe,EAAMU,GAQ9C5N,KAAK+yB,SAAU,EAEV5mB,IAEDnM,KAAK+yB,SAAU,EACf5mB,EAAQ,GAAIrM,GAAKkD,UAAU,EAAE,EAAE,EAAE,IAGjCgJ,YAAuBlM,GAAKyL,UAE5BS,EAAcA,EAAYA,aAS9BhM,KAAKgM,YAAcA,EAQnBhM,KAAKmM,MAAQA,EAQbnM,KAAK4N,KAAOA,EAQZ5N,KAAKqM,OAAQ,EAQbrM,KAAKgzB,UAAW,EAQhBhzB,KAAKizB,gBAAiB,EAQtBjzB,KAAKkO,gBAAiB,EAStBlO,KAAK6pB,KAAO,KAQZ7pB,KAAK6G,MAAQ,EAQb7G,KAAK8G,OAAS,EASd9G,KAAKkN,KAAOA,GAAQ,GAAIpN,GAAKkD,UAAU,EAAG,EAAG,EAAG,GAE5CgJ,EAAYC,YAERjM,KAAK+yB,UAAS5mB,EAAQ,GAAIrM,GAAKkD,UAAU,EAAG,EAAGgJ,EAAYnF,MAAOmF,EAAYlF,SAClF9G,KAAKkzB,SAAS/mB,KAKtBrM,EAAKyL,QAAQlI,UAAUC,YAAcxD,EAAKyL,QAQ1CzL,EAAKyL,QAAQlI,UAAU8vB,oBAAsB,WAEzC,GAAInnB,GAAchM,KAAKgM,WAEnBhM,MAAK+yB,UAEL/yB,KAAKmM,MAAQ,GAAIrM,GAAKkD,UAAU,EAAG,EAAGgJ,EAAYnF,MAAOmF,EAAYlF,SAGzE9G,KAAKkzB,SAASlzB,KAAKmM,QASvBrM,EAAKyL,QAAQlI,UAAUE,QAAU,SAAS6vB,GAElCA,GAAapzB,KAAKgM,YAAYzI,UAElCvD,KAAKqM,OAAQ,GASjBvM,EAAKyL,QAAQlI,UAAU6vB,SAAW,SAAS/mB,GAavC,GAXAnM,KAAK+yB,SAAU,EAEf/yB,KAAKmM,MAAQA,EACbnM,KAAK6G,MAAQsF,EAAMtF,MACnB7G,KAAK8G,OAASqF,EAAMrF,OAEpB9G,KAAKkN,KAAKxH,EAAIyG,EAAMzG,EACpB1F,KAAKkN,KAAKvH,EAAIwG,EAAMxG,EACpB3F,KAAKkN,KAAKrG,MAAQsF,EAAMtF,MACxB7G,KAAKkN,KAAKpG,OAASqF,EAAMrF,QAEpB9G,KAAK4N,OAASzB,EAAMzG,EAAIyG,EAAMtF,MAAQ7G,KAAKgM,YAAYnF,OAASsF,EAAMxG,EAAIwG,EAAMrF,OAAS9G,KAAKgM,YAAYlF,QAC/G,CACI,IAAKhH,EAAKgzB,kBAEN,KAAM,IAAIjqB,OAAM,wEAA0E7I,KAI9F,aADAA,KAAKqM,OAAQ,GAIjBrM,KAAKqM,MAAQF,GAASA,EAAMtF,OAASsF,EAAMrF,QAAU9G,KAAKgM,YAAYwC,QAAUxO,KAAKgM,YAAYC,UAE7FjM,KAAK4N,OAEL5N,KAAK6G,MAAQ7G,KAAK4N,KAAK/G,MACvB7G,KAAK8G,OAAS9G,KAAK4N,KAAK9G,OACxB9G,KAAKmM,MAAMtF,MAAQ7G,KAAK4N,KAAK/G,MAC7B7G,KAAKmM,MAAMrF,OAAS9G,KAAK4N,KAAK9G,QAG9B9G,KAAKqM,OAAOrM,KAAKqzB,cAUzBvzB,EAAKyL,QAAQlI,UAAUgwB,WAAa,WAE5BrzB,KAAK6pB,OAAK7pB,KAAK6pB,KAAO,GAAI/pB,GAAKsqB,WAEnC,IAAIje,GAAQnM,KAAKkN,KACbomB,EAAKtzB,KAAKgM,YAAYnF,MACtB0sB,EAAKvzB,KAAKgM,YAAYlF,MAE1B9G,MAAK6pB,KAAKG,GAAK7d,EAAMzG,EAAI4tB,EACzBtzB,KAAK6pB,KAAKI,GAAK9d,EAAMxG,EAAI4tB,EAEzBvzB,KAAK6pB,KAAKnd,IAAMP,EAAMzG,EAAIyG,EAAMtF,OAASysB,EACzCtzB,KAAK6pB,KAAKld,GAAKR,EAAMxG,EAAI4tB,EAEzBvzB,KAAK6pB,KAAKjd,IAAMT,EAAMzG,EAAIyG,EAAMtF,OAASysB,EACzCtzB,KAAK6pB,KAAKhd,IAAMV,EAAMxG,EAAIwG,EAAMrF,QAAUysB,EAE1CvzB,KAAK6pB,KAAK/c,GAAKX,EAAMzG,EAAI4tB,EACzBtzB,KAAK6pB,KAAK9c,IAAMZ,EAAMxG,EAAIwG,EAAMrF,QAAUysB,GAc9CzzB,EAAKyL,QAAQqD,UAAY,SAASsjB,EAAUpjB,EAAatI,GAErD,GAAIsB,GAAUhI,EAAK6O,aAAaujB,EAQhC,OANIpqB,KAEAA,EAAU,GAAIhI,GAAKyL,QAAQzL,EAAKgyB,YAAYljB,UAAUsjB,EAAUpjB,EAAatI,IAC7E1G,EAAK6O,aAAaujB,GAAYpqB,GAG3BA,GAYXhI,EAAKyL,QAAQkD,UAAY,SAASC,GAE9B,GAAI5G,GAAUhI,EAAK6O,aAAaD,EAChC,KAAI5G,EAAS,KAAM,IAAIe,OAAM,gBAAkB6F,EAAU,yCACzD,OAAO5G,IAYXhI,EAAKyL,QAAQonB,WAAa,SAAS5hB,EAAQvK,GAEvC,GAAIwF,GAAclM,EAAKgyB,YAAYa,WAAW5hB,EAAQvK,EAEtD,OAAO,IAAI1G,GAAKyL,QAAQS,IAY5BlM,EAAKyL,QAAQioB,kBAAoB,SAAS1rB,EAAS8P,GAE/C9X,EAAK6O,aAAaiJ,GAAM9P,GAW5BhI,EAAKyL,QAAQkoB,uBAAyB,SAAS7b,GAE3C,GAAI9P,GAAUhI,EAAK6O,aAAaiJ,EAGhC,cAFO9X,GAAK6O,aAAaiJ,SAClB9X,GAAK8xB,iBAAiBha,GACtB9P,GAGXhI,EAAKsqB,WAAa,WAEdpqB,KAAKgqB,GAAK,EACVhqB,KAAKiqB,GAAK,EAEVjqB,KAAK0M,GAAK,EACV1M,KAAK2M,GAAK,EAEV3M,KAAK4M,GAAK,EACV5M,KAAK6M,GAAK,EAEV7M,KAAK8M,GAAK,EACV9M,KAAK+M,GAAK,GAqCdjN,EAAK8G,cAAgB,SAASC,EAAOC,EAAQL,EAAUD,EAAWnF,GAwE9D,GAhEArB,KAAK6G,MAAQA,GAAS,IAQtB7G,KAAK8G,OAASA,GAAU,IAQxB9G,KAAKqB,WAAaA,GAAc,EAQhCrB,KAAKmM,MAAQ,GAAIrM,GAAKkD,UAAU,EAAG,EAAGhD,KAAK6G,MAAQ7G,KAAKqB,WAAYrB,KAAK8G,OAAS9G,KAAKqB,YASvFrB,KAAKkN,KAAO,GAAIpN,GAAKkD,UAAU,EAAG,EAAGhD,KAAK6G,MAAQ7G,KAAKqB,WAAYrB,KAAK8G,OAAS9G,KAAKqB,YAQtFrB,KAAKgM,YAAc,GAAIlM,GAAKgyB,YAC5B9xB,KAAKgM,YAAYnF,MAAQ7G,KAAK6G,MAAQ7G,KAAKqB,WAC3CrB,KAAKgM,YAAYlF,OAAS9G,KAAK8G,OAAS9G,KAAKqB,WAC7CrB,KAAKgM,YAAY2L,eACjB3X,KAAKgM,YAAY3K,WAAarB,KAAKqB,WAEnCrB,KAAKgM,YAAYxF,UAAYA,GAAa1G,EAAK2N,WAAW4f,QAE1DrtB,KAAKgM,YAAYC,WAAY,EAE7BnM,EAAKyL,QAAQzF,KAAK9F,KACdA,KAAKgM,YACL,GAAIlM,GAAKkD,UAAU,EAAG,EAAGhD,KAAK6G,MAAQ7G,KAAKqB,WAAYrB,KAAK8G,OAAS9G,KAAKqB,aAS9ErB,KAAKyG,SAAWA,GAAY3G,EAAK4iB,gBAE7B1iB,KAAKyG,SAASsQ,OAASjX,EAAKG,eAChC,CACI,GAAIyH,GAAK1H,KAAKyG,SAASiB,EACvB1H,MAAKgM,YAAYwN,OAAO9R,EAAGkQ,KAAM,EAEjC5X,KAAK0zB,cAAgB,GAAI5zB,GAAKqsB,cAAczkB,EAAI1H,KAAK6G,MAAO7G,KAAK8G,OAAQ9G,KAAKgM,YAAYxF,WAC1FxG,KAAKgM,YAAY2L,YAAYjQ,EAAGkQ,IAAO5X,KAAK0zB,cAAc5rB,QAE1D9H,KAAKgH,OAAShH,KAAK2zB,YACnB3zB,KAAK4a,WAAa,GAAI9a,GAAK4B,MAAmB,GAAb1B,KAAK6G,MAA4B,IAAd7G,KAAK8G,YAIzD9G,MAAKgH,OAAShH,KAAK4zB,aACnB5zB,KAAK0zB,cAAgB,GAAI5zB,GAAKouB,aAAaluB,KAAK6G,MAAQ7G,KAAKqB,WAAYrB,KAAK8G,OAAS9G,KAAKqB,YAC5FrB,KAAKgM,YAAYwC,OAASxO,KAAK0zB,cAAc3iB,MAOjD/Q,MAAKqM,OAAQ,EAEbrM,KAAK6zB,WAAa,GAAIC,QAAOtxB,OAE7BxC,KAAKqzB,cAGTvzB,EAAK8G,cAAcvD,UAAYO,OAAOwE,OAAOtI,EAAKyL,QAAQlI,WAC1DvD,EAAK8G,cAAcvD,UAAUC,YAAcxD,EAAK8G,cAUhD9G,EAAK8G,cAAcvD,UAAU0E,OAAS,SAASlB,EAAOC,EAAQitB,IAEtDltB,IAAU7G,KAAK6G,OAASC,IAAW9G,KAAK8G,UAE5C9G,KAAKqM,MAASxF,EAAQ,GAAKC,EAAS,EAEpC9G,KAAK6G,MAAQA,EACb7G,KAAK8G,OAASA,EACd9G,KAAKmM,MAAMtF,MAAQ7G,KAAKkN,KAAKrG,MAAQA,EAAQ7G,KAAKqB,WAClDrB,KAAKmM,MAAMrF,OAAS9G,KAAKkN,KAAKpG,OAASA,EAAS9G,KAAKqB,WAEjD0yB,IAEA/zB,KAAKgM,YAAYnF,MAAQ7G,KAAK6G,MAAQ7G,KAAKqB,WAC3CrB,KAAKgM,YAAYlF,OAAS9G,KAAK8G,OAAS9G,KAAKqB,YAG7CrB,KAAKyG,SAASsQ,OAASjX,EAAKG,iBAE5BD,KAAK4a,WAAWlV,EAAI1F,KAAK6G,MAAQ,EACjC7G,KAAK4a,WAAWjV,GAAK3F,KAAK8G,OAAS,GAGnC9G,KAAKqM,OAETrM,KAAK0zB,cAAc3rB,OAAO/H,KAAK6G,MAAO7G,KAAK8G,UAQ/ChH,EAAK8G,cAAcvD,UAAU+gB,MAAQ,WAE5BpkB,KAAKqM,QAKNrM,KAAKyG,SAASsQ,OAASjX,EAAKG,gBAE5BD,KAAKyG,SAASiB,GAAGuc,gBAAgBjkB,KAAKyG,SAASiB,GAAGwc,YAAalkB,KAAK0zB,cAAcrH,aAGtFrsB,KAAK0zB,cAActP,UAYvBtkB,EAAK8G,cAAcvD,UAAUswB,YAAc,SAASpP,EAAete,EAAQme,GAEvE,GAAKpkB,KAAKqM,OAAiC,IAAxBkY,EAAcviB,MAAjC,CAOA,GAAIsD,GAAKif,EAAchiB,cACvB+C,GAAG0uB,WACH1uB,EAAG2uB,UAAU,EAAuB,EAApBj0B,KAAK4a,WAAWjV,GAE5BM,GAEAX,EAAG4uB,OAAOjuB,GAGdX,EAAG3D,MAAM,EAAG,GAGZ,KAAK,GAAI8B,GAAI,EAAGA,EAAI8gB,EAAc/gB,SAASE,OAAQD,IAE/C8gB,EAAc/gB,SAASC,GAAGkB,iBAI9B,IAAI+C,GAAK1H,KAAKyG,SAASiB,EAEvBA,GAAGsc,SAAS,EAAG,EAAGhkB,KAAK6G,MAAQ7G,KAAKqB,WAAYrB,KAAK8G,OAAS9G,KAAKqB,YAEnEqG,EAAGuc,gBAAgBvc,EAAGwc,YAAalkB,KAAK0zB,cAAcrH,aAElDjI,GAEApkB,KAAK0zB,cAActP,QAGvBpkB,KAAKyG,SAASmE,YAAYgL,OAAQ,EAElC5V,KAAKyG,SAAS6d,oBAAoBC,EAAevkB,KAAK4a,WAAY5a,KAAK0zB,cAAcrH,YAAapmB,GAElGjG,KAAKyG,SAASmE,YAAYgL,OAAQ,IAatC9V,EAAK8G,cAAcvD,UAAUuwB,aAAe,SAASrP,EAAete,EAAQme,GAExE,GAAKpkB,KAAKqM,OAAiC,IAAxBkY,EAAcviB,MAAjC,CAMA,IAAK,GAAIyB,GAAI,EAAGA,EAAI8gB,EAAc/gB,SAASE,OAAQD,IAE/C8gB,EAAc/gB,SAASC,GAAGkB,iBAG1Byf,IAEApkB,KAAK0zB,cAActP,OAGvB,IAAI+P,GAAiBn0B,KAAKyG,SAASpF,UAEnCrB,MAAKyG,SAASpF,WAAarB,KAAKqB,WAEhCrB,KAAKyG,SAAS6d,oBAAoBC,EAAevkB,KAAK0zB,cAActmB,QAASnH,GAE7EjG,KAAKyG,SAASpF,WAAa8yB,IAS/Br0B,EAAK8G,cAAcvD,UAAU+wB,SAAW,WAEpC,GAAI3B,GAAQ,GAAI7hB,MAEhB,OADA6hB,GAAM5hB,IAAM7Q,KAAKq0B,YACV5B,GASX3yB,EAAK8G,cAAcvD,UAAUgxB,UAAY,WAErC,MAAOr0B,MAAKs0B,YAAYC,aAS5Bz0B,EAAK8G,cAAcvD,UAAUixB,UAAY,WAErC,GAAIt0B,KAAKyG,SAASsQ,OAASjX,EAAKG,eAChC,CACI,GAAIyH,GAAM1H,KAAKyG,SAASiB,GACpBb,EAAQ7G,KAAK0zB,cAAc7sB,MAC3BC,EAAS9G,KAAK0zB,cAAc5sB,OAE5B0tB,EAAc,GAAIC,YAAW,EAAI5tB,EAAQC,EAE7CY,GAAGuc,gBAAgBvc,EAAGwc,YAAalkB,KAAK0zB,cAAcrH,aACtD3kB,EAAGgtB,WAAW,EAAG,EAAG7tB,EAAOC,EAAQY,EAAG2Q,KAAM3Q,EAAGmR,cAAe2b,GAC9D9sB,EAAGuc,gBAAgBvc,EAAGwc,YAAa,KAEnC,IAAIyQ,GAAa,GAAI70B,GAAKouB,aAAarnB,EAAOC,GAC1C8tB,EAAaD,EAAWvnB,QAAQ8D,aAAa,EAAG,EAAGrK,EAAOC,EAK9D,OAJA8tB,GAAWzjB,KAAKnN,IAAIwwB,GAEpBG,EAAWvnB,QAAQgiB,aAAawF,EAAY,EAAG,GAExCD,EAAW5jB,OAIlB,MAAO/Q,MAAK0zB,cAAc3iB,QAgBlCjR,EAAK0pB,eAAiB,SAASzU,EAAa4B,GASxC3W,KAAKoE,QAAUpE,MAOfA,KAAKspB,WAMLtpB,KAAK4V,OAAQ,EAMb5V,KAAKosB,QAAU,EAOfpsB,KAAK2W,SAAWA,MAOhB3W,KAAK+U,YAAcA,OAGvBjV,EAAK0pB,eAAenmB,UAAUC,YAAcxD,EAAK0pB,eAOjD1pB,EAAK0pB,eAAenmB,UAAU+V,aAAe,WAEzC,IAAI,GAAI3V,GAAE,EAAEa,EAAEtE,KAAKspB,QAAQ5lB,OAAUY,EAAFb,EAAKA,IAEpCzD,KAAKspB,QAAQ7lB,GAAGmS,OAAQ,GAcL,mBAAZif,UACe,mBAAXC,SAA0BA,OAAOD,UACxCA,QAAUC,OAAOD,QAAU/0B,GAE/B+0B,QAAQ/0B,KAAOA,GACU,mBAAXi1B,SAA0BA,OAAOC,IAC/CD,OAAO,OAAQ,WAAc,MAAOh1B,GAAKD,KAAOA,MAEhDC,EAAKD,KAAOA,EAGTA,GACRgG,KAAK9F,OAOR,WAi3gBA,QAASi1B,GAAiBC,EAAaC,GAMnCn1B,KAAKo1B,aAAeF,EAMpBl1B,KAAKq1B,WAAaF,EAMlBn1B,KAAKs1B,cAAgB,KAj4gBrB,GAAIv1B,GAAOC,KAYX8zB,EAASA,IAOT3zB,QAAS,QAOTo1B,SAOAC,KAAM,EAONC,OAAQ,EAORC,MAAO,EAOPC,SAAU,EAOVC,KAAM,EAONC,KAAM,EAONC,MAAO,EAOPC,GAAI,EAOJC,KAAM,EAONC,OAAQ,EAORC,OAAQ,EAORC,MAAO,EAOPC,SAAU,EAOVC,KAAM,EAONC,WAAY,EAOZC,WAAY,EAOZC,MAAO,EAOPC,cAAe,EAOfC,QAAS,EAOTC,aAAc,GAOdC,QAAS,GAOTC,QAAS,GAOTC,WAAY,GAOZC,cAAe,GAOfC,aAAc,GAOdC,QAAS,GAOTC,YAAa,GAObC,UAAW,GAOXC,QAAS,GAOTC,KAAM,GAONC,OAAQ,GAORC,UAAW,GAOXC,KAAM,GAONC,OAAQ,GAORC,MAAO,GAOPC,iBAAkB,GAOlBC,SAAU,GAOVC,MAAO,GA2BPhsB,YACIC,OAAO,EACPuZ,IAAI,EACJG,SAAS,EACTE,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,IAgBf9Y,YACI4f,QAAQ,EACR3f,OAAO,EACPkX,QAAQ,GAGZ9kB,KAAMA,SA6GV,IAnGKa,KAAKm3B,QACNn3B,KAAKm3B,MAAQ,SAAepyB,GACxB,MAAW,GAAJA,EAAQ/E,KAAKo3B,KAAKryB,GAAK/E,KAAKq3B,MAAMtyB,KAO5CuyB,SAAS50B,UAAU60B,OAGpBD,SAAS50B,UAAU60B,KAAO,WAEtB,GAAInb,GAAQtc,MAAM4C,UAAU0Z,KAE5B,OAAO,UAAUob,GASb,QAASC,KACL,GAAIC,GAAOC,EAAUzZ,OAAO9B,EAAMjX,KAAKyyB,WACvC9zB,GAAO0C,MAAMnH,eAAgBo4B,GAAQp4B,KAAOm4B,EAASE,GATzD,GAAI5zB,GAASzE,KAAMs4B,EAAYvb,EAAMjX,KAAKyyB,UAAW,EAErD,IAAsB,kBAAX9zB,GAEP,KAAM,IAAI+zB,UAqBd,OAbAJ,GAAM/0B,UAAY,QAAUo1B,GAAEC,GAM1B,MALIA,KAEAD,EAAEp1B,UAAYq1B,GAGZ14B,eAAgBy4B,GAAtB,OAGW,GAAIA,IAEhBh0B,EAAOpB,WAEH+0B,OAQd33B,MAAMyT,UAEPzT,MAAMyT,QAAU,SAAUykB,GAEtB,MAA8C,kBAAvC/0B,OAAOP,UAAU6M,SAASpK,KAAK6yB,KAQzCl4B,MAAM4C,UAAUu1B,UAEjBn4B,MAAM4C,UAAUu1B,QAAU,SAASC,GAE/B,YAEA,IAAa,SAAT74B,MAA4B,OAATA,KAEnB,KAAM,IAAIw4B,UAGd,IAAIM,GAAIl1B,OAAO5D,MACXuxB,EAAMuH,EAAEp1B,SAAW,CAEvB,IAAmB,kBAARm1B,GAEP,KAAM,IAAIL,UAKd,KAAK,GAFDL,GAAUI,UAAU70B,QAAU,EAAI60B,UAAU,GAAK,OAE5C90B,EAAI,EAAO8tB,EAAJ9tB,EAASA,IAEjBA,IAAKq1B,IAELD,EAAI/yB,KAAKqyB,EAASW,EAAEr1B,GAAIA,EAAGq1B,KAWT,kBAAvBrkB,QAAOlU,aAA4D,gBAAvBkU,QAAOlU,YAC9D,CACI,GAAIw4B,GAAa,SAAShiB,GAEtB,GAAI2hB,GAAQ,GAAIj4B,MAEhBgU,QAAOsC,GAAQ,SAAS4hB,GAEpB,GAAoB,gBAAV,GACV,CACIl4B,MAAMqF,KAAK9F,KAAM24B,GACjB34B,KAAK0D,OAASi1B,CAEd,KAAK,GAAIl1B,GAAI,EAAGA,EAAIzD,KAAK0D,OAAQD,IAE7BzD,KAAKyD,GAAK,MAIlB,CACIhD,MAAMqF,KAAK9F,KAAM24B,EAAIj1B,QAErB1D,KAAK0D,OAASi1B,EAAIj1B,MAElB,KAAK,GAAID,GAAI,EAAGA,EAAIzD,KAAK0D,OAAQD,IAE7BzD,KAAKyD,GAAKk1B,EAAIl1B,KAK1BgR,OAAOsC,GAAM1T,UAAYq1B,EACzBjkB,OAAOsC,GAAMzT,YAAcmR,OAAOsC,GAGtCgiB,GAAW,eACXA,EAAW,cAMVtkB,OAAOC,UAERD,OAAOC,WACPD,OAAOC,QAAQC,IAAMF,OAAOC,QAAQskB,OAAS,aAC7CvkB,OAAOC,QAAQukB,KAAOxkB,OAAOC,QAAQskB,OAAS,cAalDlF,EAAOoF,OAUHC,YAAa,SAASC,EAAKC,GAQvB,IANA,GAAIC,GAAQD,EAAKE,MAAM,KACnBC,EAAOF,EAAMtb,MACbyb,EAAIH,EAAM51B,OACVD,EAAI,EACJi2B,EAAUJ,EAAM,GAETG,EAAJh2B,IAAU21B,EAAMA,EAAIM,KAEvBA,EAAUJ,EAAM71B,GAChBA,GAGJ,OAAI21B,GAEOA,EAAII,GAIJ,MAafG,YAAa,SAASP,EAAKC,EAAMp1B,GAQ7B,IANA,GAAIq1B,GAAQD,EAAKE,MAAM,KACnBC,EAAOF,EAAMtb,MACbyb,EAAIH,EAAM51B,OACVD,EAAI,EACJi2B,EAAUJ,EAAM,GAETG,EAAJh2B,IAAU21B,EAAMA,EAAIM,KAEvBA,EAAUJ,EAAM71B,GAChBA,GAQJ,OALI21B,KAEAA,EAAII,GAAQv1B,GAGTm1B,GAcXQ,WAAY,SAAUC,GAElB,MADepwB,UAAXowB,IAAwBA,EAAS,IAC9BA,EAAS,GAAsB,IAAhBl5B,KAAKm5B,UAAkBD,GAWjDE,aAAc,SAAUC,EAASC,GAC7B,MAAQt5B,MAAKm5B,SAAW,GAAOE,EAAUC,GAW7CC,eAAgB,SAAUvR,EAAMwR,GAE5B,GAAIC,GAAI,EACJ1nB,EAAK,CA4BT,OA1BoB,gBAATiW,GAGiB,MAApBA,EAAKxY,OAAO,KAEZiqB,EAAIC,SAAS1R,EAAM,IAAM,IAIrBjW,EAFc,IAAdynB,EAEK1lB,OAAO6lB,WAAaF,EAIpB3lB,OAAO8lB,YAAcH,GAK9B1nB,EAAK2nB,SAAS1R,EAAM,IAKxBjW,EAAKiW,EAGFjW,GAcX8nB,IAAK,SAAUC,EAAKlJ,EAAKiJ,EAAKE,GAE1B,GAAYjxB,SAAR8nB,EAAqB,GAAIA,GAAM,CACnC,IAAY9nB,SAAR+wB,EAAqB,GAAIA,GAAM,GACnC,IAAY/wB,SAARixB,EAAqB,GAAIA,GAAM,CAEnC,IAAIC,GAAS,CAEb,IAAIpJ,EAAM,GAAKkJ,EAAI/2B,OAEf,OAAQg3B,GAEJ,IAAK,GACDD,EAAM,GAAIh6B,OAAM8wB,EAAM,EAAIkJ,EAAI/2B,QAAQyQ,KAAKqmB,GAAOC,CAClD,MAEJ,KAAK,GACD,GAAIG,GAAQj6B,KAAKo3B,MAAM4C,EAASpJ,EAAMkJ,EAAI/2B,QAAU,GAChDm3B,EAAOF,EAASC,CACpBH,GAAM,GAAIh6B,OAAMo6B,EAAK,GAAG1mB,KAAKqmB,GAAOC,EAAM,GAAIh6B,OAAMm6B,EAAM,GAAGzmB,KAAKqmB,EAClE,MAEJ,SACIC,GAAY,GAAIh6B,OAAM8wB,EAAM,EAAIkJ,EAAI/2B,QAAQyQ,KAAKqmB,GAK7D,MAAOC,IAWXK,cAAe,SAAU1B,GAMrB,GAAoB,gBAAV,IAAsBA,EAAI2B,UAAY3B,IAAQA,EAAI3kB,OAExD,OAAO,CAOX,KACI,GAAI2kB,EAAI91B,iBAAqB03B,eAAel1B,KAAKszB,EAAI91B,YAAYD,UAAW,iBAExE,OAAO,EAEb,MAAO43B,GACL,OAAO,EAKX,OAAO,GAWXC,OAAQ,WAEJ,GAAIzY,GAAS0Y,EAAMtqB,EAAKuqB,EAAMC,EAAaC,EACvC72B,EAAS8zB,UAAU,OACnB90B,EAAI,EACJC,EAAS60B,UAAU70B,OACnB63B,GAAO,CAkBX,KAfsB,iBAAX92B,KAEP82B,EAAO92B,EACPA,EAAS8zB,UAAU,OAEnB90B,EAAI,GAIJC,IAAWD,IAEXgB,EAASzE,OACPyD,GAGKC,EAAJD,EAAYA,IAGf,GAAgC,OAA3Bgf,EAAU8V,UAAU90B,IAGrB,IAAK03B,IAAQ1Y,GAET5R,EAAMpM,EAAO02B,GACbC,EAAO3Y,EAAQ0Y,GAGX12B,IAAW22B,IAMXG,GAAQH,IAAStH,EAAOoF,MAAM4B,cAAcM,KAAUC,EAAc56B,MAAMyT,QAAQknB,MAE9EC,GAEAA,GAAc,EACdC,EAAQzqB,GAAOpQ,MAAMyT,QAAQrD,GAAOA,MAIpCyqB,EAAQzqB,GAAOijB,EAAOoF,MAAM4B,cAAcjqB,GAAOA,KAIrDpM,EAAO02B,GAAQrH,EAAOoF,MAAMgC,OAAOK,EAAMD,EAAOF,IAIlC3xB,SAAT2xB,IAEL32B,EAAO02B,GAAQC,GAO/B,OAAO32B,IAgBX+2B,eAAgB,SAAU/2B,EAAQg3B,EAAOC,GAErBjyB,SAAZiyB,IAAyBA,GAAU,EAIvC,KAAK,GAFDC,GAAY/3B,OAAOg4B,KAAKH,GAEnBh4B,EAAI,EAAGA,EAAIk4B,EAAUj4B,OAAQD,IACtC,CACI,GAAIiT,GAAMilB,EAAUl4B,GAChBQ,EAAQw3B,EAAM/kB,IAEbglB,GAAYhlB,IAAOjS,MAOhBR,GACsB,kBAAdA,GAAMH,KAA2C,kBAAdG,GAAMD,IAcjDS,EAAOiS,GAAOzS,EAXa,kBAAhBA,GAAMq3B,MAEb72B,EAAOiS,GAAOzS,EAAMq3B,QAIpB13B,OAAOC,eAAeY,EAAQiS,EAAKzS,MAqBvDw3B,MAAO,SAAUp0B,EAAMw0B,GAEnB,IAAKx0B,GAA0B,gBAAX,GAEhB,MAAOw0B,EAGX,KAAK,GAAInlB,KAAOrP,GAChB,CACI,GAAIy0B,GAAIz0B,EAAKqP,EAEb,KAAIolB,EAAEC,aAAcD,EAAEE,UAAtB,CAKA,GAAIjlB,SAAe1P,GAAKqP,EAWhBmlB,GAAGnlB,GATNrP,EAAKqP,IAAiB,WAATK,QAOF8kB,GAAGnlB,KAAUK,EAEX+c,EAAOoF,MAAMuC,MAAMp0B,EAAKqP,GAAMmlB,EAAGnlB,IAIjCod,EAAOoF,MAAMuC,MAAMp0B,EAAKqP,GAAM,GAAIolB,GAAEx4B,aAXxC+D,EAAKqP,IAgBvB,MAAOmlB,KAsBf/H,EAAOmI,OAAS,SAAUv2B,EAAGC,EAAGu2B,GAE5Bx2B,EAAIA,GAAK,EACTC,EAAIA,GAAK,EACTu2B,EAAWA,GAAY,EAKvBl8B,KAAK0F,EAAIA,EAKT1F,KAAK2F,EAAIA,EAMT3F,KAAKm8B,UAAYD,EAMjBl8B,KAAKo8B,QAAU,EAEXF,EAAW,IAEXl8B,KAAKo8B,QAAqB,GAAXF,GAOnBl8B,KAAK+W,KAAO+c,EAAOwD,QAIvBxD,EAAOmI,OAAO54B,WAQVg5B,cAAe,WAEX,MAAO,GAAK17B,KAAKC,GAAKZ,KAAKo8B,SAY/BtC,OAAQ,SAAUwC,GAEF7yB,SAAR6yB,IAAqBA,EAAM,GAAIxI,GAAOpyB,MAE1C,IAAIo3B,GAAI,EAAIn4B,KAAKC,GAAKD,KAAKm5B,SACvBtmB,EAAI7S,KAAKm5B,SAAWn5B,KAAKm5B,SACzBzb,EAAK7K,EAAI,EAAK,EAAIA,EAAIA,EACtB9N,EAAI2Y,EAAI1d,KAAK8E,IAAIqzB,GACjBnzB,EAAI0Y,EAAI1d,KAAK6E,IAAIszB,EAKrB,OAHAwD,GAAI52B,EAAI1F,KAAK0F,EAAKA,EAAI1F,KAAK2e,OAC3B2d,EAAI32B,EAAI3F,KAAK2F,EAAKA,EAAI3F,KAAK2e,OAEpB2d,GAUXt2B,UAAW,WAEP,MAAO,IAAI8tB,GAAO9wB,UAAUhD,KAAK0F,EAAI1F,KAAK2e,OAAQ3e,KAAK2F,EAAI3F,KAAK2e,OAAQ3e,KAAKk8B,SAAUl8B,KAAKk8B,WAYhGK,MAAO,SAAU72B,EAAGC,EAAGu2B,GAOnB,MALAl8B,MAAK0F,EAAIA,EACT1F,KAAK2F,EAAIA,EACT3F,KAAKm8B,UAAYD,EACjBl8B,KAAKo8B,QAAqB,GAAXF,EAERl8B,MAUXw8B,SAAU,SAAUhuB,GAEhB,MAAOxO,MAAKu8B,MAAM/tB,EAAO9I,EAAG8I,EAAO7I,EAAG6I,EAAO0tB,WAUjDO,OAAQ,SAAUC,GAMd,MAJAA,GAAKh3B,EAAI1F,KAAK0F,EACdg3B,EAAK/2B,EAAI3F,KAAK2F,EACd+2B,EAAKR,SAAWl8B,KAAKm8B,UAEdO,GAYXC,SAAU,SAAUD,EAAME,GAEtB,GAAID,GAAW7I,EAAOnzB,KAAKg8B,SAAS38B,KAAK0F,EAAG1F,KAAK2F,EAAG+2B,EAAKh3B,EAAGg3B,EAAK/2B,EACjE,OAAOi3B,GAAQj8B,KAAKi8B,MAAMD,GAAYA,GAU1CrB,MAAO,SAAUuB,GAWb,MATepzB,UAAXozB,GAAmC,OAAXA,EAExBA,EAAS,GAAI/I,GAAOmI,OAAOj8B,KAAK0F,EAAG1F,KAAK2F,EAAG3F,KAAKk8B,UAIhDW,EAAON,MAAMv8B,KAAK0F,EAAG1F,KAAK2F,EAAG3F,KAAKk8B,UAG/BW,GAWXC,SAAU,SAAUp3B,EAAGC,GAEnB,MAAOmuB,GAAOmI,OAAOa,SAAS98B,KAAM0F,EAAGC,IAY3Co3B,mBAAoB,SAAUC,EAAOC,EAAWX,GAE5C,MAAOxI,GAAOmI,OAAOc,mBAAmB/8B,KAAMg9B,EAAOC,EAAWX,IAWpEzhB,OAAQ,SAAUlN,EAAIE,GAKlB,MAHA7N,MAAK0F,GAAKiI,EACV3N,KAAK2F,GAAKkI,EAEH7N,MAUXk9B,YAAa,SAAUC,GACnB,MAAOn9B,MAAK6a,OAAOsiB,EAAMz3B,EAAGy3B,EAAMx3B,IAQtCuK,SAAU,WACN,MAAO,sBAAwBlQ,KAAK0F,EAAI,MAAQ1F,KAAK2F,EAAI,aAAe3F,KAAKk8B,SAAW,WAAal8B,KAAK2e,OAAS,QAK3HmV,EAAOmI,OAAO54B,UAAUC,YAAcwwB,EAAOmI,OAQ7Cr4B,OAAOC,eAAeiwB,EAAOmI,OAAO54B,UAAW,YAE3CS,IAAK,WACD,MAAO9D,MAAKm8B,WAGhBn4B,IAAK,SAAUC,GAEPA,EAAQ,IAERjE,KAAKm8B,UAAYl4B,EACjBjE,KAAKo8B,QAAkB,GAARn4B,MAW3BL,OAAOC,eAAeiwB,EAAOmI,OAAO54B,UAAW,UAE3CS,IAAK,WACD,MAAO9D,MAAKo8B,SAGhBp4B,IAAK,SAAUC,GAEPA,EAAQ,IAERjE,KAAKo8B,QAAUn4B,EACfjE,KAAKm8B,UAAoB,EAARl4B,MAY7BL,OAAOC,eAAeiwB,EAAOmI,OAAO54B,UAAW,QAE3CS,IAAK,WACD,MAAO9D,MAAK0F,EAAI1F,KAAKo8B,SAGzBp4B,IAAK,SAAUC,GAEPA,EAAQjE,KAAK0F,GAEb1F,KAAKo8B,QAAU,EACfp8B,KAAKm8B,UAAY,GAIjBn8B,KAAK2e,OAAS3e,KAAK0F,EAAIzB,KAYnCL,OAAOC,eAAeiwB,EAAOmI,OAAO54B,UAAW,SAE3CS,IAAK,WACD,MAAO9D,MAAK0F,EAAI1F,KAAKo8B,SAGzBp4B,IAAK,SAAUC,GAEPA,EAAQjE,KAAK0F,GAEb1F,KAAKo8B,QAAU,EACfp8B,KAAKm8B,UAAY,GAIjBn8B,KAAK2e,OAAS1a,EAAQjE,KAAK0F,KAYvC9B,OAAOC,eAAeiwB,EAAOmI,OAAO54B,UAAW,OAE3CS,IAAK,WACD,MAAO9D,MAAK2F,EAAI3F,KAAKo8B,SAGzBp4B,IAAK,SAAUC,GAEPA,EAAQjE,KAAK2F,GAEb3F,KAAKo8B,QAAU,EACfp8B,KAAKm8B,UAAY,GAIjBn8B,KAAK2e,OAAS3e,KAAK2F,EAAI1B,KAYnCL,OAAOC,eAAeiwB,EAAOmI,OAAO54B,UAAW,UAE3CS,IAAK,WACD,MAAO9D,MAAK2F,EAAI3F,KAAKo8B;EAGzBp4B,IAAK,SAAUC,GAEPA,EAAQjE,KAAK2F,GAEb3F,KAAKo8B,QAAU,EACfp8B,KAAKm8B,UAAY,GAIjBn8B,KAAK2e,OAAS1a,EAAQjE,KAAK2F,KAavC/B,OAAOC,eAAeiwB,EAAOmI,OAAO54B,UAAW,QAE3CS,IAAK,WAED,MAAI9D,MAAKo8B,QAAU,EAERz7B,KAAKC,GAAKZ,KAAKo8B,QAAUp8B,KAAKo8B,QAI9B,KAanBx4B,OAAOC,eAAeiwB,EAAOmI,OAAO54B,UAAW,SAE3CS,IAAK,WACD,MAA2B,KAAnB9D,KAAKm8B,WAGjBn4B,IAAK,SAAUC,GAEPA,KAAU,GAEVjE,KAAKu8B,MAAM,EAAG,EAAG,MAe7BzI,EAAOmI,OAAOa,SAAW,SAAU/3B,EAAGW,EAAGC,GAGrC,GAAIZ,EAAE4Z,OAAS,GAAKjZ,GAAKX,EAAE81B,MAAQn1B,GAAKX,EAAE61B,OAASj1B,GAAKZ,EAAEq4B,KAAOz3B,GAAKZ,EAAEs4B,OACxE,CACI,GAAI1vB,IAAM5I,EAAEW,EAAIA,IAAMX,EAAEW,EAAIA,GACxBmI,GAAM9I,EAAEY,EAAIA,IAAMZ,EAAEY,EAAIA,EAE5B,OAAQgI,GAAKE,GAAQ9I,EAAE4Z,OAAS5Z,EAAE4Z,OAIlC,OAAO,GAYfmV,EAAOmI,OAAOqB,OAAS,SAAUv4B,EAAGC,GAChC,MAAQD,GAAEW,GAAKV,EAAEU,GAAKX,EAAEY,GAAKX,EAAEW,GAAKZ,EAAEm3B,UAAYl3B,EAAEk3B,UAWxDpI,EAAOmI,OAAOsB,WAAa,SAAUx4B,EAAGC,GACpC,MAAQ8uB,GAAOnzB,KAAKg8B,SAAS53B,EAAEW,EAAGX,EAAEY,EAAGX,EAAEU,EAAGV,EAAEW,IAAOZ,EAAE4Z,OAAS3Z,EAAE2Z,QAYtEmV,EAAOmI,OAAOc,mBAAqB,SAAUh4B,EAAGi4B,EAAOC,EAAWX,GAa9D,MAXkB7yB,UAAdwzB,IAA2BA,GAAY,GAC/BxzB,SAAR6yB,IAAqBA,EAAM,GAAIxI,GAAOpyB,OAEtCu7B,KAAc,IAEdD,EAAQlJ,EAAOnzB,KAAK68B,SAASR,IAGjCV,EAAI52B,EAAIX,EAAEW,EAAIX,EAAE4Z,OAAShe,KAAK8E,IAAIu3B,GAClCV,EAAI32B,EAAIZ,EAAEY,EAAIZ,EAAE4Z,OAAShe,KAAK6E,IAAIw3B,GAE3BV,GAWXxI,EAAOmI,OAAOwB,oBAAsB,SAAUx4B,EAAGoZ,GAE7C,GAAI/P,GAAK3N,KAAKshB,IAAIhd,EAAES,EAAI2Y,EAAE3Y,EAAI2Y,EAAEqf,WAC5BC,EAAQtf,EAAEqf,UAAYz4B,EAAE0Z,MAE5B,IAAIrQ,EAAKqvB,EAEL,OAAO,CAGX,IAAIpvB,GAAK5N,KAAKshB,IAAIhd,EAAEU,EAAI0Y,EAAE1Y,EAAI0Y,EAAEuf,YAC5BC,EAAQxf,EAAEuf,WAAa34B,EAAE0Z,MAE7B,IAAIpQ,EAAKsvB,EAEL,OAAO,CAGX,IAAIvvB,GAAM+P,EAAEqf,WAAanvB,GAAM8P,EAAEuf,WAE7B,OAAO,CAGX,IAAIE,GAAcxvB,EAAK+P,EAAEqf,UACrBK,EAAcxvB,EAAK8P,EAAEuf,WACrBI,EAAgBF,EAAcA,EAC9BG,EAAgBF,EAAcA,EAC9BG,EAAkBj5B,EAAE0Z,OAAS1Z,EAAE0Z,MAEnC,OAAwCuf,IAAjCF,EAAgBC,GAK3Bn+B,KAAKm8B,OAASnI,EAAOmI,OAmBrBnI,EAAOqK,QAAU,SAAUz4B,EAAGC,EAAGkB,EAAOC,GAEpCpB,EAAIA,GAAK,EACTC,EAAIA,GAAK,EACTkB,EAAQA,GAAS,EACjBC,EAASA,GAAU,EAKnB9G,KAAK0F,EAAIA,EAKT1F,KAAK2F,EAAIA,EAKT3F,KAAK6G,MAAQA,EAKb7G,KAAK8G,OAASA,EAMd9G,KAAK+W,KAAO+c,EAAOmD,SAIvBnD,EAAOqK,QAAQ96B,WAWXk5B,MAAO,SAAU72B,EAAGC,EAAGkB,EAAOC,GAO1B,MALA9G,MAAK0F,EAAIA,EACT1F,KAAK2F,EAAIA,EACT3F,KAAK6G,MAAQA,EACb7G,KAAK8G,OAASA,EAEP9G,MAUXgG,UAAW,WAEP,MAAO,IAAI8tB,GAAO9wB,UAAUhD,KAAK0F,EAAI1F,KAAK6G,MAAO7G,KAAK2F,EAAI3F,KAAK8G,OAAQ9G,KAAK6G,MAAO7G,KAAK8G,SAW5F01B,SAAU,SAAUhuB,GAEhB,MAAOxO,MAAKu8B,MAAM/tB,EAAO9I,EAAG8I,EAAO7I,EAAG6I,EAAO3H,MAAO2H,EAAO1H,SAU/D21B,OAAQ,SAASC,GAOb,MALAA,GAAKh3B,EAAI1F,KAAK0F,EACdg3B,EAAK/2B,EAAI3F,KAAK2F,EACd+2B,EAAK71B,MAAQ7G,KAAK6G,MAClB61B,EAAK51B,OAAS9G,KAAK8G,OAEZ41B,GAUXpB,MAAO,SAASuB,GAWZ,MATepzB,UAAXozB,GAAmC,OAAXA,EAExBA,EAAS,GAAI/I,GAAOqK,QAAQn+B,KAAK0F,EAAG1F,KAAK2F,EAAG3F,KAAK6G,MAAO7G,KAAK8G,QAI7D+1B,EAAON,MAAMv8B,KAAK0F,EAAG1F,KAAK2F,EAAG3F,KAAK6G,MAAO7G,KAAK8G,QAG3C+1B,GAYXC,SAAU,SAAUp3B,EAAGC,GAEnB,MAAOmuB,GAAOqK,QAAQrB,SAAS98B,KAAM0F,EAAGC,IAY5Cm0B,OAAQ,SAAUwC,GAEF7yB,SAAR6yB,IAAqBA,EAAM,GAAIxI,GAAOpyB,MAE1C,IAAImD,GAAIlE,KAAKm5B,SAAWn5B,KAAKC,GAAK,EAC9Byd,EAAI1d,KAAKm5B,QAQb,OANAwC,GAAI52B,EAAI/E,KAAKiF,KAAKyY,GAAK1d,KAAK8E,IAAIZ,GAChCy3B,EAAI32B,EAAIhF,KAAKiF,KAAKyY,GAAK1d,KAAK6E,IAAIX,GAEhCy3B,EAAI52B,EAAI1F,KAAK0F,EAAK42B,EAAI52B,EAAI1F,KAAK6G,MAAQ,EACvCy1B,EAAI32B,EAAI3F,KAAK2F,EAAK22B,EAAI32B,EAAI3F,KAAK8G,OAAS,EAEjCw1B,GASXpsB,SAAU,WACN,MAAO,uBAAyBlQ,KAAK0F,EAAI,MAAQ1F,KAAK2F,EAAI,UAAY3F,KAAK6G,MAAQ,WAAa7G,KAAK8G,OAAS,QAKtHgtB,EAAOqK,QAAQ96B,UAAUC,YAAcwwB,EAAOqK,QAO9Cv6B,OAAOC,eAAeiwB,EAAOqK,QAAQ96B,UAAW,QAE5CS,IAAK,WACD,MAAO9D,MAAK0F,GAGhB1B,IAAK,SAAUC,GAEXjE,KAAK0F,EAAIzB,KAWjBL,OAAOC,eAAeiwB,EAAOqK,QAAQ96B,UAAW,SAE5CS,IAAK,WACD,MAAO9D,MAAK0F,EAAI1F,KAAK6G,OAGzB7C,IAAK,SAAUC,GAIPjE,KAAK6G,MAFL5C,EAAQjE,KAAK0F,EAEA,EAIAzB,EAAQjE,KAAK0F,KAWtC9B,OAAOC,eAAeiwB,EAAOqK,QAAQ96B,UAAW,OAE5CS,IAAK,WACD,MAAO9D,MAAK2F,GAGhB3B,IAAK,SAAUC,GACXjE,KAAK2F,EAAI1B,KAUjBL,OAAOC,eAAeiwB,EAAOqK,QAAQ96B,UAAW,UAE5CS,IAAK,WACD,MAAO9D,MAAK2F,EAAI3F,KAAK8G,QAGzB9C,IAAK,SAAUC,GAIPjE,KAAK8G,OAFL7C,EAAQjE,KAAK2F,EAEC,EAIA1B,EAAQjE,KAAK2F,KAYvC/B,OAAOC,eAAeiwB,EAAOqK,QAAQ96B,UAAW,SAE5CS,IAAK,WACD,MAAuB,KAAf9D,KAAK6G,OAA+B,IAAhB7G,KAAK8G,QAGrC9C,IAAK,SAAUC,GAEPA,KAAU,GAEVjE,KAAKu8B,MAAM,EAAG,EAAG,EAAG,MAgBhCzI,EAAOqK,QAAQrB,SAAW,SAAU/3B,EAAGW,EAAGC,GAEtC,GAAIZ,EAAE8B,OAAS,GAAK9B,EAAE+B,QAAU,EAC5B,OAAO,CAIX,IAAIs3B,IAAU14B,EAAIX,EAAEW,GAAKX,EAAE8B,MAAS,GAChCw3B,GAAU14B,EAAIZ,EAAEY,GAAKZ,EAAE+B,OAAU,EAKrC,OAHAs3B,IAASA,EACTC,GAASA,EAEe,IAAhBD,EAAQC,GAKpBv+B,KAAKq+B,QAAUrK,EAAOqK,QAkBtBrK,EAAOwK,KAAO,SAAU5xB,EAAIC,EAAIC,EAAIC,GAEhCH,EAAKA,GAAM,EACXC,EAAKA,GAAM,EACXC,EAAKA,GAAM,EACXC,EAAKA,GAAM,EAKX7M,KAAKoL,MAAQ,GAAI0oB,GAAOpyB,MAAMgL,EAAIC,GAKlC3M,KAAK8J,IAAM,GAAIgqB,GAAOpyB,MAAMkL,EAAIC,GAMhC7M,KAAK+W,KAAO+c,EAAO0D,MAIvB1D,EAAOwK,KAAKj7B,WAYRk5B,MAAO,SAAU7vB,EAAIC,EAAIC,EAAIC,GAKzB,MAHA7M,MAAKoL,MAAMmxB,MAAM7vB,EAAIC,GACrB3M,KAAK8J,IAAIyyB,MAAM3vB,EAAIC,GAEZ7M,MAcXu+B,WAAY,SAAUC,EAAaC,EAAWC,GAI1C,MAFkBj1B,UAAdi1B,IAA2BA,GAAY,GAEvCA,EAEO1+B,KAAKu8B,MAAMiC,EAAYG,OAAOj5B,EAAG84B,EAAYG,OAAOh5B,EAAG84B,EAAUE,OAAOj5B,EAAG+4B,EAAUE,OAAOh5B,GAGhG3F,KAAKu8B,MAAMiC,EAAY94B,EAAG84B,EAAY74B,EAAG84B,EAAU/4B,EAAG+4B,EAAU94B,IAc3Ei5B,UAAW,SAAUl5B,EAAGC,EAAGq3B,EAAOt5B,GAK9B,MAHA1D,MAAKoL,MAAMmxB,MAAM72B,EAAGC,GACpB3F,KAAK8J,IAAIyyB,MAAM72B,EAAK/E,KAAK8E,IAAIu3B,GAASt5B,EAASiC,EAAKhF,KAAK6E,IAAIw3B,GAASt5B,GAE/D1D,MAgBX6+B,OAAQ,SAAU7B,EAAOC,GAErB,GAAIv3B,GAAI1F,KAAKoL,MAAM1F,EACfC,EAAI3F,KAAKoL,MAAMzF,CAKnB,OAHA3F,MAAKoL,MAAMyzB,OAAO7+B,KAAK8J,IAAIpE,EAAG1F,KAAK8J,IAAInE,EAAGq3B,EAAOC,EAAWj9B,KAAK0D,QACjE1D,KAAK8J,IAAI+0B,OAAOn5B,EAAGC,EAAGq3B,EAAOC,EAAWj9B,KAAK0D,QAEtC1D,MAeXu9B,WAAY,SAAUuB,EAAMC,EAAWztB,GAEnC,MAAOwiB,GAAOwK,KAAKU,iBAAiBh/B,KAAKoL,MAAOpL,KAAK8J,IAAKg1B,EAAK1zB,MAAO0zB,EAAKh1B,IAAKi1B,EAAWztB,IAY/F2tB,QAAS,SAAUH,GAEf,MAAOhL,GAAOwK,KAAKW,QAAQj/B,KAAM8+B,IAYrCI,YAAa,SAAUx5B,EAAGC,GAEtB,OAASD,EAAI1F,KAAKoL,MAAM1F,IAAM1F,KAAK8J,IAAInE,EAAI3F,KAAKoL,MAAMzF,MAAQ3F,KAAK8J,IAAIpE,EAAI1F,KAAKoL,MAAM1F,IAAMC,EAAI3F,KAAKoL,MAAMzF,IAY/Gw5B,eAAgB,SAAUz5B,EAAGC,GAEzB,GAAIy5B,GAAOz+B,KAAK0wB,IAAIrxB,KAAKoL,MAAM1F,EAAG1F,KAAK8J,IAAIpE,GACvC25B,EAAO1+B,KAAK2+B,IAAIt/B,KAAKoL,MAAM1F,EAAG1F,KAAK8J,IAAIpE,GACvC65B,EAAO5+B,KAAK0wB,IAAIrxB,KAAKoL,MAAMzF,EAAG3F,KAAK8J,IAAInE,GACvC65B,EAAO7+B,KAAK2+B,IAAIt/B,KAAKoL,MAAMzF,EAAG3F,KAAK8J,IAAInE,EAE3C,OAAQ3F,MAAKk/B,YAAYx5B,EAAGC,IAAOD,GAAK05B,GAAaC,GAAL35B,GAAeC,GAAK45B,GAAaC,GAAL75B,GAYhFm0B,OAAQ,SAAUwC,GAEF7yB,SAAR6yB,IAAqBA,EAAM,GAAIxI,GAAOpyB,MAE1C,IAAIo3B,GAAIn4B,KAAKm5B,QAKb,OAHAwC,GAAI52B,EAAI1F,KAAKoL,MAAM1F,EAAIozB,GAAK94B,KAAK8J,IAAIpE,EAAI1F,KAAKoL,MAAM1F,GACpD42B,EAAI32B,EAAI3F,KAAKoL,MAAMzF,EAAImzB,GAAK94B,KAAK8J,IAAInE,EAAI3F,KAAKoL,MAAMzF,GAE7C22B,GAaXmD,kBAAmB,SAAUC,EAAUC,GAElBl2B,SAAbi2B,IAA0BA,EAAW,GACzBj2B,SAAZk2B,IAAyBA,KAE7B,IAAIjzB,GAAK/L,KAAKi8B,MAAM58B,KAAKoL,MAAM1F,GAC3BiH,EAAKhM,KAAKi8B,MAAM58B,KAAKoL,MAAMzF,GAC3BiH,EAAKjM,KAAKi8B,MAAM58B,KAAK8J,IAAIpE,GACzBmH,EAAKlM,KAAKi8B,MAAM58B,KAAK8J,IAAInE,GAEzBgI,EAAKhN,KAAKshB,IAAIrV,EAAKF,GACnBmB,EAAKlN,KAAKshB,IAAIpV,EAAKF,GACnBizB,EAAWhzB,EAALF,EAAW,EAAI,GACrBmzB,EAAWhzB,EAALF,EAAW,EAAI,GACrBmzB,EAAMnyB,EAAKE,CAEf8xB,GAAQp7B,MAAMmI,EAAIC,GAIlB,KAFA,GAAIlJ,GAAI,EAEEiJ,GAAME,GAAQD,GAAME,GAC9B,CACI,GAAIkzB,GAAKD,GAAO,CAEZC,IAAMlyB,IAENiyB,GAAOjyB,EACPnB,GAAMkzB,GAGDjyB,EAALoyB,IAEAD,GAAOnyB,EACPhB,GAAMkzB,GAGNp8B,EAAIi8B,IAAa,GAEjBC,EAAQp7B,MAAMmI,EAAIC,IAGtBlJ,IAIJ,MAAOk8B,IAUXrE,MAAO,SAAUuB,GAWb,MATepzB,UAAXozB,GAAmC,OAAXA,EAExBA,EAAS,GAAI/I,GAAOwK,KAAKt+B,KAAKoL,MAAM1F,EAAG1F,KAAKoL,MAAMzF,EAAG3F,KAAK8J,IAAIpE,EAAG1F,KAAK8J,IAAInE,GAI1Ek3B,EAAON,MAAMv8B,KAAKoL,MAAM1F,EAAG1F,KAAKoL,MAAMzF,EAAG3F,KAAK8J,IAAIpE,EAAG1F,KAAK8J,IAAInE,GAG3Dk3B,IAWfj5B,OAAOC,eAAeiwB,EAAOwK,KAAKj7B,UAAW,UAEzCS,IAAK,WACD,MAAOnD,MAAKiF,MAAM5F,KAAK8J,IAAIpE,EAAI1F,KAAKoL,MAAM1F,IAAM1F,KAAK8J,IAAIpE,EAAI1F,KAAKoL,MAAM1F,IAAM1F,KAAK8J,IAAInE,EAAI3F,KAAKoL,MAAMzF,IAAM3F,KAAK8J,IAAInE,EAAI3F,KAAKoL,MAAMzF,OAU5I/B,OAAOC,eAAeiwB,EAAOwK,KAAKj7B,UAAW,SAEzCS,IAAK,WACD,MAAOnD,MAAKkF,MAAM7F,KAAK8J,IAAInE,EAAI3F,KAAKoL,MAAMzF,EAAG3F,KAAK8J,IAAIpE,EAAI1F,KAAKoL,MAAM1F,MAU7E9B,OAAOC,eAAeiwB,EAAOwK,KAAKj7B,UAAW,SAEzCS,IAAK,WACD,OAAQ9D,KAAK8J,IAAInE,EAAI3F,KAAKoL,MAAMzF,IAAM3F,KAAK8J,IAAIpE,EAAI1F,KAAKoL,MAAM1F,MAUtE9B,OAAOC,eAAeiwB,EAAOwK,KAAKj7B,UAAW,aAEzCS,IAAK,WACD,SAAU9D,KAAK8J,IAAIpE,EAAI1F,KAAKoL,MAAM1F,IAAM1F,KAAK8J,IAAInE,EAAI3F,KAAKoL,MAAMzF,OAUxE/B,OAAOC,eAAeiwB,EAAOwK,KAAKj7B,UAAW,KAEzCS,IAAK,WACD,MAAOnD,MAAK0wB,IAAIrxB,KAAKoL,MAAM1F,EAAG1F,KAAK8J,IAAIpE,MAU/C9B,OAAOC,eAAeiwB,EAAOwK,KAAKj7B,UAAW,KAEzCS,IAAK,WACD,MAAOnD,MAAK0wB,IAAIrxB,KAAKoL,MAAMzF,EAAG3F,KAAK8J,IAAInE,MAU/C/B,OAAOC,eAAeiwB,EAAOwK,KAAKj7B,UAAW,QAEzCS,IAAK,WACD,MAAOnD,MAAK0wB,IAAIrxB,KAAKoL,MAAM1F,EAAG1F,KAAK8J,IAAIpE,MAU/C9B,OAAOC,eAAeiwB,EAAOwK,KAAKj7B,UAAW,SAEzCS,IAAK,WACD,MAAOnD,MAAK2+B,IAAIt/B,KAAKoL,MAAM1F,EAAG1F,KAAK8J,IAAIpE,MAU/C9B,OAAOC,eAAeiwB,EAAOwK,KAAKj7B,UAAW,OAEzCS,IAAK,WACD,MAAOnD,MAAK0wB,IAAIrxB,KAAKoL,MAAMzF,EAAG3F,KAAK8J,IAAInE,MAU/C/B,OAAOC,eAAeiwB,EAAOwK,KAAKj7B,UAAW,UAEzCS,IAAK,WACD,MAAOnD,MAAK2+B,IAAIt/B,KAAKoL,MAAMzF,EAAG3F,KAAK8J,IAAInE,MAU/C/B,OAAOC,eAAeiwB,EAAOwK,KAAKj7B,UAAW,SAEzCS,IAAK,WACD,MAAOnD,MAAKshB,IAAIjiB,KAAKoL,MAAM1F,EAAI1F,KAAK8J,IAAIpE,MAUhD9B,OAAOC,eAAeiwB,EAAOwK,KAAKj7B,UAAW,UAEzCS,IAAK,WACD,MAAOnD,MAAKshB,IAAIjiB,KAAKoL,MAAMzF,EAAI3F,KAAK8J,IAAInE,MAUhD/B,OAAOC,eAAeiwB,EAAOwK,KAAKj7B,UAAW,WAEzCS,IAAK,WACD,MAAOnD,MAAK8E,IAAIzF,KAAKg9B,MAAQ,uBAUrCp5B,OAAOC,eAAeiwB,EAAOwK,KAAKj7B,UAAW,WAEzCS,IAAK,WACD,MAAOnD,MAAK6E,IAAIxF,KAAKg9B,MAAQ,uBAUrCp5B,OAAOC,eAAeiwB,EAAOwK,KAAKj7B,UAAW,eAEzCS,IAAK,WACD,MAAOgwB,GAAOnzB,KAAKq/B,KAAKhgC,KAAKg9B,MAAQ,oBAAqBr8B,KAAKC,GAAID,KAAKC,OAoBhFkzB,EAAOwK,KAAKU,iBAAmB,SAAUj6B,EAAGC,EAAGi2B,EAAGb,EAAG2E,EAAWztB,GAE1C7H,SAAds1B,IAA2BA,GAAY,GAC5Bt1B,SAAX6H,IAAwBA,EAAS,GAAIwiB,GAAOpyB,MAEhD,IAAI0f,GAAKpc,EAAEW,EAAIZ,EAAEY,EACb4b,EAAK6Y,EAAEz0B,EAAIs1B,EAAEt1B,EACb0b,EAAKtc,EAAEW,EAAIV,EAAEU,EACb8b,EAAKyZ,EAAEv1B,EAAI00B,EAAE10B,EACb4b,EAAMtc,EAAEU,EAAIX,EAAEY,EAAMZ,EAAEW,EAAIV,EAAEW,EAC5B8b,EAAM2Y,EAAE10B,EAAIu1B,EAAEt1B,EAAMs1B,EAAEv1B,EAAI00B,EAAEz0B,EAC5B+b,EAASN,EAAKI,EAAOD,EAAKF,CAE9B,IAAc,IAAVK,EAEA,MAAO,KAMX,IAHApQ,EAAO5L,GAAM2b,EAAKI,EAAOD,EAAKF,GAAOI,EACrCpQ,EAAO3L,GAAM4b,EAAKD,EAAOF,EAAKK,GAAOC,EAEjCqd,EACJ,CACI,GAAIkB,IAAO7F,EAAEz0B,EAAIs1B,EAAEt1B,IAAMX,EAAEU,EAAIX,EAAEW,IAAM00B,EAAE10B,EAAIu1B,EAAEv1B,IAAMV,EAAEW,EAAIZ,EAAEY,GACzDu6B,IAAQ9F,EAAE10B,EAAIu1B,EAAEv1B,IAAMX,EAAEY,EAAIs1B,EAAEt1B,IAAOy0B,EAAEz0B,EAAIs1B,EAAEt1B,IAAMZ,EAAEW,EAAIu1B,EAAEv1B,IAAMu6B,EACjEE,IAAQn7B,EAAEU,EAAIX,EAAEW,IAAMX,EAAEY,EAAIs1B,EAAEt1B,IAAQX,EAAEW,EAAIZ,EAAEY,IAAMZ,EAAEW,EAAIu1B,EAAEv1B,IAAOu6B,CAEvE,OAAIC,IAAM,GAAW,GAANA,GAAWC,GAAM,GAAW,GAANA,EAE1B7uB,EAIA,KAIf,MAAOA,IAkBXwiB,EAAOwK,KAAKf,WAAa,SAAUx4B,EAAGC,EAAG+5B,EAAWztB,GAEhD,MAAOwiB,GAAOwK,KAAKU,iBAAiBj6B,EAAEqG,MAAOrG,EAAE+E,IAAK9E,EAAEoG,MAAOpG,EAAE8E,IAAKi1B,EAAWztB,IAanFwiB,EAAOwK,KAAKW,QAAU,SAAUl6B,EAAGC,GAE/B,MAAO,GAAIA,EAAEo7B,YAAc,kBAAoBr7B,EAAEi4B,OA6BrDlJ,EAAOtxB,OAAS,SAAUuC,EAAGC,EAAGC,EAAGC,EAAGC,EAAIC,GAEtCL,EAAIA,GAAK,EACTC,EAAIA,GAAK,EACTC,EAAIA,GAAK,EACTC,EAAIA,GAAK,EACTC,EAAKA,GAAM,EACXC,EAAKA,GAAM,EAMXpF,KAAK+E,EAAIA,EAMT/E,KAAKgF,EAAIA,EAMThF,KAAKiF,EAAIA,EAMTjF,KAAKkF,EAAIA,EAMTlF,KAAKmF,GAAKA,EAMVnF,KAAKoF,GAAKA,EAMVpF,KAAK+W,KAAO+c,EAAO2D,QAIvB3D,EAAOtxB,OAAOa,WAkBVg9B,UAAW,SAAUC,GAEjB,MAAOtgC,MAAKu8B,MAAM+D,EAAM,GAAIA,EAAM,GAAIA,EAAM,GAAIA,EAAM,GAAIA,EAAM,GAAIA,EAAM,KAgB9E/D,MAAO,SAAUx3B,EAAGC,EAAGC,EAAGC,EAAGC,EAAIC,GAS7B,MAPApF,MAAK+E,EAAIA,EACT/E,KAAKgF,EAAIA,EACThF,KAAKiF,EAAIA,EACTjF,KAAKkF,EAAIA,EACTlF,KAAKmF,GAAKA,EACVnF,KAAKoF,GAAKA,EAEHpF,MAaXs7B,MAAO,SAAUuB,GAgBb,MAdepzB,UAAXozB,GAAmC,OAAXA,EAExBA,EAAS,GAAI/I,GAAOtxB,OAAOxC,KAAK+E,EAAG/E,KAAKgF,EAAGhF,KAAKiF,EAAGjF,KAAKkF,EAAGlF,KAAKmF,GAAInF,KAAKoF,KAIzEy3B,EAAO93B,EAAI/E,KAAK+E,EAChB83B,EAAO73B,EAAIhF,KAAKgF,EAChB63B,EAAO53B,EAAIjF,KAAKiF,EAChB43B,EAAO33B,EAAIlF,KAAKkF,EAChB23B,EAAO13B,GAAKnF,KAAKmF,GACjB03B,EAAOz3B,GAAKpF,KAAKoF,IAGdy3B,GAWXJ,OAAQ,SAAUx2B,GAId,MAFAA,GAAOu2B,SAASx8B,MAETiG,GAWXu2B,SAAU,SAAUv2B,GAShB,MAPAjG,MAAK+E,EAAIkB,EAAOlB,EAChB/E,KAAKgF,EAAIiB,EAAOjB,EAChBhF,KAAKiF,EAAIgB,EAAOhB,EAChBjF,KAAKkF,EAAIe,EAAOf,EAChBlF,KAAKmF,GAAKc,EAAOd,GACjBnF,KAAKoF,GAAKa,EAAOb,GAEVpF,MAYX0b,QAAS,SAAUrC,EAAWinB,GA6B1B,MA3Bc72B,UAAV62B,IAAuBA,EAAQ,GAAIxgC,MAAKO,aAAa,IAErDgZ,GAEAinB,EAAM,GAAKtgC,KAAK+E,EAChBu7B,EAAM,GAAKtgC,KAAKgF,EAChBs7B,EAAM,GAAK,EACXA,EAAM,GAAKtgC,KAAKiF,EAChBq7B,EAAM,GAAKtgC,KAAKkF,EAChBo7B,EAAM,GAAK,EACXA,EAAM,GAAKtgC,KAAKmF,GAChBm7B,EAAM,GAAKtgC,KAAKoF,GAChBk7B,EAAM,GAAK,IAIXA,EAAM,GAAKtgC,KAAK+E,EAChBu7B,EAAM,GAAKtgC,KAAKiF,EAChBq7B,EAAM,GAAKtgC,KAAKmF,GAChBm7B,EAAM,GAAKtgC,KAAKgF,EAChBs7B,EAAM,GAAKtgC,KAAKkF,EAChBo7B,EAAM,GAAKtgC,KAAKoF,GAChBk7B,EAAM,GAAK,EACXA,EAAM,GAAK,EACXA,EAAM,GAAK,GAGRA,GAcXn5B,MAAO,SAAUo5B,EAAKC,GAOlB,MALe/2B,UAAX+2B,IAAwBA,EAAS,GAAI1M,GAAOpyB,OAEhD8+B,EAAO96B,EAAI1F,KAAK+E,EAAIw7B,EAAI76B,EAAI1F,KAAKiF,EAAIs7B,EAAI56B,EAAI3F,KAAKmF,GAClDq7B,EAAO76B,EAAI3F,KAAKgF,EAAIu7B,EAAI76B,EAAI1F,KAAKkF,EAAIq7B,EAAI56B,EAAI3F,KAAKoF,GAE3Co7B,GAcXl5B,aAAc,SAAUi5B,EAAKC,GAEV/2B,SAAX+2B,IAAwBA,EAAS,GAAI1M,GAAOpyB,MAEhD,IAAIkW,GAAK,GAAK5X,KAAK+E,EAAI/E,KAAKkF,EAAIlF,KAAKiF,GAAKjF,KAAKgF,GAC3CU,EAAI66B,EAAI76B,EACRC,EAAI46B,EAAI56B,CAKZ,OAHA66B,GAAO96B,EAAI1F,KAAKkF,EAAI0S,EAAKlS,GAAK1F,KAAKiF,EAAI2S,EAAKjS,GAAK3F,KAAKoF,GAAKpF,KAAKiF,EAAIjF,KAAKmF,GAAKnF,KAAKkF,GAAK0S,EACxF4oB,EAAO76B,EAAI3F,KAAK+E,EAAI6S,EAAKjS,GAAK3F,KAAKgF,EAAI4S,EAAKlS,IAAM1F,KAAKoF,GAAKpF,KAAK+E,EAAI/E,KAAKmF,GAAKnF,KAAKgF,GAAK4S,EAElF4oB,GAaXvM,UAAW,SAAUvuB,EAAGC,GAKpB,MAHA3F,MAAKmF,IAAMO,EACX1F,KAAKoF,IAAMO,EAEJ3F,MAYX2B,MAAO,SAAU+D,EAAGC,GAShB,MAPA3F,MAAK+E,GAAKW,EACV1F,KAAKkF,GAAKS,EACV3F,KAAKiF,GAAKS,EACV1F,KAAKgF,GAAKW,EACV3F,KAAKmF,IAAMO,EACX1F,KAAKoF,IAAMO,EAEJ3F,MAWX6+B,OAAQ,SAAU7B,GAEd,GAAIv3B,GAAM9E,KAAK8E,IAAIu3B,GACfx3B,EAAM7E,KAAK6E,IAAIw3B,GAEf5b,EAAKphB,KAAK+E,EACVuc,EAAKthB,KAAKiF,EACVw7B,EAAMzgC,KAAKmF,EASf,OAPAnF,MAAK+E,EAAIqc,EAAK3b,EAAIzF,KAAKgF,EAAIQ,EAC3BxF,KAAKgF,EAAIoc,EAAK5b,EAAIxF,KAAKgF,EAAIS,EAC3BzF,KAAKiF,EAAIqc,EAAK7b,EAAIzF,KAAKkF,EAAIM,EAC3BxF,KAAKkF,EAAIoc,EAAK9b,EAAIxF,KAAKkF,EAAIO,EAC3BzF,KAAKmF,GAAKs7B,EAAMh7B,EAAMzF,KAAKoF,GAAKI,EAChCxF,KAAKoF,GAAKq7B,EAAMj7B,EAAMxF,KAAKoF,GAAKK,EAEzBzF,MAWXk0B,OAAQ,SAAUjuB,GAEd,GAAImb,GAAKphB,KAAK+E,EACVsc,EAAKrhB,KAAKgF,EACVsc,EAAKthB,KAAKiF,EACVy7B,EAAK1gC,KAAKkF,CAUd,OARAlF,MAAK+E,EAAKkB,EAAOlB,EAAIqc,EAAKnb,EAAOjB,EAAIsc,EACrCthB,KAAKgF,EAAKiB,EAAOlB,EAAIsc,EAAKpb,EAAOjB,EAAI07B,EACrC1gC,KAAKiF,EAAKgB,EAAOhB,EAAImc,EAAKnb,EAAOf,EAAIoc,EACrCthB,KAAKkF,EAAKe,EAAOhB,EAAIoc,EAAKpb,EAAOf,EAAIw7B,EAErC1gC,KAAKmF,GAAKc,EAAOd,GAAKic,EAAKnb,EAAOb,GAAKkc,EAAKthB,KAAKmF,GACjDnF,KAAKoF,GAAKa,EAAOd,GAAKkc,EAAKpb,EAAOb,GAAKs7B,EAAK1gC,KAAKoF,GAE1CpF,MAUXg0B,SAAU,WAEN,MAAOh0B,MAAKu8B,MAAM,EAAG,EAAG,EAAG,EAAG,EAAG,KAMzCzI,EAAO1tB,eAAiB,GAAI0tB,GAAOtxB,OAGnC1C,KAAK0C,OAASsxB,EAAOtxB,OACrB1C,KAAKsG,eAAiB0tB,EAAO1tB,eAmB7B0tB,EAAOpyB,MAAQ,SAAUgE,EAAGC,GAExBD,EAAIA,GAAK,EACTC,EAAIA,GAAK,EAKT3F,KAAK0F,EAAIA,EAKT1F,KAAK2F,EAAIA,EAMT3F,KAAK+W,KAAO+c,EAAO4D,OAIvB5D,EAAOpyB,MAAM2B,WASTm5B,SAAU,SAAUhuB,GAEhB,MAAOxO,MAAKu8B,MAAM/tB,EAAO9I,EAAG8I,EAAO7I,IAUvCg7B,OAAQ,WAEJ,MAAO3gC,MAAKu8B,MAAMv8B,KAAK2F,EAAG3F,KAAK0F,IAcnC62B,MAAO,SAAU72B,EAAGC,GAKhB,MAHA3F,MAAK0F,EAAIA,GAAK,EACd1F,KAAK2F,EAAIA,IAAc,IAANA,EAAW3F,KAAK0F,EAAI,GAE9B1F,MAcXgE,IAAK,SAAU0B,EAAGC,GAKd,MAHA3F,MAAK0F,EAAIA,GAAK,EACd1F,KAAK2F,EAAIA,IAAc,IAANA,EAAW3F,KAAK0F,EAAI,GAE9B1F,MAYX4gC,IAAK,SAAUl7B,EAAGC,GAId,MAFA3F,MAAK0F,GAAKA,EACV1F,KAAK2F,GAAKA,EACH3F,MAYX6gC,SAAU,SAAUn7B,EAAGC,GAInB,MAFA3F,MAAK0F,GAAKA,EACV1F,KAAK2F,GAAKA,EACH3F,MAYX8gC,SAAU,SAAUp7B,EAAGC,GAInB,MAFA3F,MAAK0F,GAAKA,EACV1F,KAAK2F,GAAKA,EACH3F,MAYX+gC,OAAQ,SAAUr7B,EAAGC,GAIjB,MAFA3F,MAAK0F,GAAKA,EACV1F,KAAK2F,GAAKA,EACH3F,MAYXghC,OAAQ,SAAU3P,EAAKiO,GAGnB,MADAt/B,MAAK0F,EAAIouB,EAAOnzB,KAAKsgC,MAAMjhC,KAAK0F,EAAG2rB,EAAKiO,GACjCt/B,MAYXkhC,OAAQ,SAAU7P,EAAKiO,GAGnB,MADAt/B,MAAK2F,EAAImuB,EAAOnzB,KAAKsgC,MAAMjhC,KAAK2F,EAAG0rB,EAAKiO,GACjCt/B,MAYXihC,MAAO,SAAU5P,EAAKiO,GAIlB,MAFAt/B,MAAK0F,EAAIouB,EAAOnzB,KAAKsgC,MAAMjhC,KAAK0F,EAAG2rB,EAAKiO,GACxCt/B,KAAK2F,EAAImuB,EAAOnzB,KAAKsgC,MAAMjhC,KAAK2F,EAAG0rB,EAAKiO,GACjCt/B,MAWXs7B,MAAO,SAAUuB,GAWb,MATepzB,UAAXozB,GAAmC,OAAXA,EAExBA,EAAS,GAAI/I,GAAOpyB,MAAM1B,KAAK0F,EAAG1F,KAAK2F,GAIvCk3B,EAAON,MAAMv8B,KAAK0F,EAAG1F,KAAK2F,GAGvBk3B,GAWXJ,OAAQ,SAAUC,GAKd,MAHAA,GAAKh3B,EAAI1F,KAAK0F,EACdg3B,EAAK/2B,EAAI3F,KAAK2F,EAEP+2B,GAYXC,SAAU,SAAUD,EAAME,GAEtB,MAAO9I,GAAOpyB,MAAMi7B,SAAS38B,KAAM08B,EAAME,IAW7CU,OAAQ,SAAUv4B,GAEd,MAAQA,GAAEW,IAAM1F,KAAK0F,GAAKX,EAAEY,IAAM3F,KAAK2F,GAY3Cq3B,MAAO,SAAUj4B,EAAGk4B,GAIhB,MAFkBxzB,UAAdwzB,IAA2BA,GAAY,GAEvCA,EAEOnJ,EAAOnzB,KAAKwgC,SAASxgC,KAAKkF,MAAMd,EAAEY,EAAI3F,KAAK2F,EAAGZ,EAAEW,EAAI1F,KAAK0F,IAIzD/E,KAAKkF,MAAMd,EAAEY,EAAI3F,KAAK2F,EAAGZ,EAAEW,EAAI1F,KAAK0F,IAgBnDm5B,OAAQ,SAAUn5B,EAAGC,EAAGq3B,EAAOC,EAAWN,GAEtC,MAAO7I,GAAOpyB,MAAMm9B,OAAO7+B,KAAM0F,EAAGC,EAAGq3B,EAAOC,EAAWN,IAU7DyE,aAAc,WAEV,MAAOzgC,MAAKiF,KAAM5F,KAAK0F,EAAI1F,KAAK0F,EAAM1F,KAAK2F,EAAI3F,KAAK2F,IAUxD07B,eAAgB,WAEZ,MAAQrhC,MAAK0F,EAAI1F,KAAK0F,EAAM1F,KAAK2F,EAAI3F,KAAK2F,GAW9C27B,aAAc,SAAUC,GAEpB,MAAOvhC,MAAKwhC,YAAYV,SAASS,EAAWA,IAUhDC,UAAW,WAEP,IAAKxhC,KAAKyhC,SACV,CACI,GAAIC,GAAI1hC,KAAKohC,cACbphC,MAAK0F,GAAKg8B,EACV1hC,KAAK2F,GAAK+7B,EAGd,MAAO1hC,OAUXyhC,OAAQ,WAEJ,MAAmB,KAAXzhC,KAAK0F,GAAsB,IAAX1F,KAAK2F,GAWjCg8B,IAAK,SAAU58B,GAEX,MAAS/E,MAAK0F,EAAIX,EAAEW,EAAM1F,KAAK2F,EAAIZ,EAAEY,GAWzCi8B,MAAO,SAAU78B,GAEb,MAAS/E,MAAK0F,EAAIX,EAAEY,EAAM3F,KAAK2F,EAAIZ,EAAEW,GAUzCm8B,KAAM,WAEF,MAAO7hC,MAAKu8B,OAAOv8B,KAAK2F,EAAG3F,KAAK0F,IAUpCo8B,MAAO,WAEH,MAAO9hC,MAAKu8B,MAAMv8B,KAAK2F,GAAI3F,KAAK0F,IAUpCq8B,gBAAiB,WAEb,MAAO/hC,MAAKu8B,MAAe,GAATv8B,KAAK2F,EAAQ3F,KAAK0F,IAUxCsyB,MAAO,WAEH,MAAOh4B,MAAKu8B,MAAM57B,KAAKq3B,MAAMh4B,KAAK0F,GAAI/E,KAAKq3B,MAAMh4B,KAAK2F,KAU1DoyB,KAAM,WAEF,MAAO/3B,MAAKu8B,MAAM57B,KAAKo3B,KAAK/3B,KAAK0F,GAAI/E,KAAKo3B,KAAK/3B,KAAK2F,KAUxDuK,SAAU,WAEN,MAAO,cAAgBlQ,KAAK0F,EAAI,MAAQ1F,KAAK2F,EAAI,QAMzDmuB,EAAOpyB,MAAM2B,UAAUC,YAAcwwB,EAAOpyB,MAW5CoyB,EAAOpyB,MAAMk/B,IAAM,SAAU77B,EAAGC,EAAGs3B,GAO/B,MALY7yB,UAAR6yB,IAAqBA,EAAM,GAAIxI,GAAOpyB,OAE1C46B,EAAI52B,EAAIX,EAAEW,EAAIV,EAAEU,EAChB42B,EAAI32B,EAAIZ,EAAEY,EAAIX,EAAEW,EAET22B,GAaXxI,EAAOpyB,MAAMm/B,SAAW,SAAU97B,EAAGC,EAAGs3B,GAOpC,MALY7yB,UAAR6yB,IAAqBA,EAAM,GAAIxI,GAAOpyB,OAE1C46B,EAAI52B,EAAIX,EAAEW,EAAIV,EAAEU,EAChB42B,EAAI32B,EAAIZ,EAAEY,EAAIX,EAAEW,EAET22B,GAaXxI,EAAOpyB,MAAMo/B,SAAW,SAAU/7B,EAAGC,EAAGs3B,GAOpC,MALY7yB,UAAR6yB,IAAqBA,EAAM,GAAIxI,GAAOpyB,OAE1C46B,EAAI52B,EAAIX,EAAEW,EAAIV,EAAEU,EAChB42B,EAAI32B,EAAIZ,EAAEY,EAAIX,EAAEW,EAET22B,GAaXxI,EAAOpyB,MAAMq/B,OAAS,SAAUh8B,EAAGC,EAAGs3B,GAOlC,MALY7yB,UAAR6yB,IAAqBA,EAAM,GAAIxI,GAAOpyB,OAE1C46B,EAAI52B,EAAIX,EAAEW,EAAIV,EAAEU,EAChB42B,EAAI32B,EAAIZ,EAAEY,EAAIX,EAAEW,EAET22B,GAYXxI,EAAOpyB,MAAM47B,OAAS,SAAUv4B,EAAGC,GAE/B,MAAQD,GAAEW,IAAMV,EAAEU,GAAKX,EAAEY,IAAMX,EAAEW,GAYrCmuB,EAAOpyB,MAAMs7B,MAAQ,SAAUj4B,EAAGC,GAG9B,MAAOrE,MAAKkF,MAAMd,EAAEY,EAAIX,EAAEW,EAAGZ,EAAEW,EAAIV,EAAEU,IAYzCouB,EAAOpyB,MAAMsgC,SAAW,SAAUj9B,EAAGu3B,GAIjC,MAFY7yB,UAAR6yB,IAAqBA,EAAM,GAAIxI,GAAOpyB,OAEnC46B,EAAIC,OAAOx3B,EAAEW,GAAIX,EAAEY,IAc9BmuB,EAAOpyB,MAAMugC,YAAc,SAAUl9B,EAAGC,EAAGk9B,EAAG5F,GAI1C,MAFY7yB,UAAR6yB,IAAqBA,EAAM,GAAIxI,GAAOpyB,OAEnC46B,EAAIC,MAAMx3B,EAAEW,EAAIV,EAAEU,EAAIw8B,EAAGn9B,EAAEY,EAAIX,EAAEW,EAAIu8B,IAchDpO,EAAOpyB,MAAMygC,YAAc,SAAUp9B,EAAGC,EAAGo1B,EAAGkC,GAI1C,MAFY7yB,UAAR6yB,IAAqBA,EAAM,GAAIxI,GAAOpyB,OAEnC46B,EAAIC,MAAMx3B,EAAEW,GAAKV,EAAEU,EAAIX,EAAEW,GAAK00B,EAAGr1B,EAAEY,GAAKX,EAAEW,EAAIZ,EAAEY,GAAKy0B,IAYhEtG,EAAOpyB,MAAMmgC,KAAO,SAAU98B,EAAGu3B,GAI7B,MAFY7yB,UAAR6yB,IAAqBA,EAAM,GAAIxI,GAAOpyB,OAEnC46B,EAAIC,OAAOx3B,EAAEY,EAAGZ,EAAEW,IAY7BouB,EAAOpyB,MAAMogC,MAAQ,SAAU/8B,EAAGu3B,GAI9B,MAFY7yB,UAAR6yB,IAAqBA,EAAM,GAAIxI,GAAOpyB,OAEnC46B,EAAIC,MAAMx3B,EAAEY,GAAIZ,EAAEW,IAa7BouB,EAAOpyB,MAAMi7B,SAAW,SAAU53B,EAAGC,EAAG43B,GAEpC,GAAID,GAAW7I,EAAOnzB,KAAKg8B,SAAS53B,EAAEW,EAAGX,EAAEY,EAAGX,EAAEU,EAAGV,EAAEW,EACrD,OAAOi3B,GAAQj8B,KAAKi8B,MAAMD,GAAYA,GAa1C7I,EAAOpyB,MAAM0gC,QAAU,SAAUr9B,EAAGC,EAAGs3B,GAEvB7yB,SAAR6yB,IAAqBA,EAAM,GAAIxI,GAAOpyB,MAE1C,IAAI2gC,GAAMt9B,EAAE48B,IAAI38B,GAAKA,EAAEq8B,gBAOvB,OALY,KAARgB,GAEA/F,EAAIC,MAAM8F,EAAMr9B,EAAEU,EAAG28B,EAAMr9B,EAAEW,GAG1B22B,GAaXxI,EAAOpyB,MAAM4gC,YAAc,SAAUv9B,EAAGC,EAAGs3B,GAE3B7yB,SAAR6yB,IAAqBA,EAAM,GAAIxI,GAAOpyB,MAE1C,IAAI2gC,GAAMt9B,EAAE48B,IAAI38B,EAOhB,OALY,KAARq9B,GAEA/F,EAAIC,MAAM8F,EAAMr9B,EAAEU,EAAG28B,EAAMr9B,EAAEW,GAG1B22B,GAYXxI,EAAOpyB,MAAMqgC,gBAAkB,SAAUh9B,EAAGu3B,GAIxC,MAFY7yB,UAAR6yB,IAAqBA,EAAM,GAAIxI,GAAOpyB,OAEnC46B,EAAIC,MAAY,GAANx3B,EAAEY,EAAQZ,EAAEW,IAYjCouB,EAAOpyB,MAAM8/B,UAAY,SAAUz8B,EAAGu3B,GAEtB7yB,SAAR6yB,IAAqBA,EAAM,GAAIxI,GAAOpyB,MAE1C,IAAIggC,GAAI38B,EAAEq8B,cAOV,OALU,KAANM,GAEApF,EAAIC,MAAMx3B,EAAEW,EAAIg8B,EAAG38B,EAAEY,EAAI+7B,GAGtBpF,GAqBXxI,EAAOpyB,MAAMm9B,OAAS,SAAU95B,EAAGW,EAAGC,EAAGq3B,EAAOC,EAAWN,GAErClzB,SAAdwzB,IAA2BA,GAAY,GAC1BxzB,SAAbkzB,IAA0BA,EAAW,MAErCM,IAEAD,EAAQlJ,EAAOnzB,KAAK68B,SAASR,IAGhB,OAAbL,IAGAA,EAAWh8B,KAAKiF,MAAOF,EAAIX,EAAEW,IAAMA,EAAIX,EAAEW,IAAQC,EAAIZ,EAAEY,IAAMA,EAAIZ,EAAEY,IAGvE,IAAImzB,GAAIkE,EAAQr8B,KAAKkF,MAAMd,EAAEY,EAAIA,EAAGZ,EAAEW,EAAIA,EAK1C,OAHAX,GAAEW,EAAIA,EAAIi3B,EAAWh8B,KAAK8E,IAAIqzB,GAC9B/zB,EAAEY,EAAIA,EAAIg3B,EAAWh8B,KAAK6E,IAAIszB,GAEvB/zB,GAYX+uB,EAAOpyB,MAAM6gC,SAAW,SAAU1lB,EAAQyf,GAItC,GAFY7yB,SAAR6yB,IAAqBA,EAAM,GAAIxI,GAAOpyB,OAEK,mBAA3CkC,OAAOP,UAAU6M,SAASpK,KAAK+W,GAE/B,KAAM,IAAIhU,OAAM,oDAGpB,IAAI25B,GAAe3lB,EAAOnZ,MAE1B,IAAmB,EAAf8+B,EAEA,KAAM,IAAI35B,OAAM,2DAGpB,IAAqB,IAAjB25B,EAGA,MADAlG,GAAIE,SAAS3f,EAAO,IACbyf,CAGX,KAAK,GAAI74B,GAAI,EAAO++B,EAAJ/+B,EAAkBA,IAE9BqwB,EAAOpyB,MAAMk/B,IAAItE,EAAKzf,EAAOpZ,GAAI64B,EAKrC,OAFAA,GAAIyE,OAAOyB,EAAcA,GAElBlG,GAeXxI,EAAOpyB,MAAM+gC,MAAQ,SAASrJ,EAAKsJ,EAAOC,GAEtCD,EAAQA,GAAS,IACjBC,EAAQA,GAAS,GAEjB,IAAIxF,GAAQ,GAAIrJ,GAAOpyB,KAYvB,OAVI03B,GAAIsJ,KAEJvF,EAAMz3B,EAAI20B,SAASjB,EAAIsJ,GAAQ,KAG/BtJ,EAAIuJ,KAEJxF,EAAMx3B,EAAI00B,SAASjB,EAAIuJ,GAAQ,KAG5BxF,GAKXr9B,KAAK4B,MAAQoyB,EAAOpyB,MAyBpBoyB,EAAO8O,QAAU,WAKb5iC,KAAK6iC,KAAO,EAMZ7iC,KAAK8iC,WAEDvK,UAAU70B,OAAS,GAEnB1D,KAAKu8B,MAAMp1B,MAAMnH,KAAMu4B,WAM3Bv4B,KAAKgd,QAAS,EAKdhd,KAAK+W,KAAO+c,EAAO+C,SAIvB/C,EAAO8O,QAAQv/B,WASX0/B,cAAe,SAAUlG,GAENpzB,SAAXozB,IAAwBA,KAE5B,KAAK,GAAIp5B,GAAI,EAAGA,EAAIzD,KAAK8iC,QAAQp/B,OAAQD,IAEN,gBAApBzD,MAAK8iC,QAAQr/B,IAEpBo5B,EAAOt4B,KAAKvE,KAAK8iC,QAAQr/B,IACzBo5B,EAAOt4B,KAAKvE,KAAK8iC,QAAQr/B,EAAI,IAC7BA,MAIAo5B,EAAOt4B,KAAKvE,KAAK8iC,QAAQr/B,GAAGiC,GAC5Bm3B,EAAOt4B,KAAKvE,KAAK8iC,QAAQr/B,GAAGkC,GAIpC,OAAOk3B,IAUXmG,QAAS,WAIL,MAFAhjC,MAAK8iC,QAAU9iC,KAAK+iC,gBAEb/iC,MAYXs7B,MAAO,SAAUuB,GAEb,GAAIhgB,GAAS7c,KAAK8iC,QAAQ/lB,OAW1B,OATetT,UAAXozB,GAAmC,OAAXA,EAExBA,EAAS,GAAI/I,GAAO8O,QAAQ/lB,GAI5BggB,EAAON,MAAM1f,GAGVggB,GAYXC,SAAU,SAAUp3B,EAAGC,GAOnB,IAAK,GAHDjC,GAAS1D,KAAK8iC,QAAQp/B,OACtBu/B,GAAS,EAEJx/B,EAAI,GAAIa,EAAIZ,EAAS,IAAKD,EAAIC,EAAQY,EAAIb,EACnD,CACI,GAAIy/B,GAAKljC,KAAK8iC,QAAQr/B,GAAGiC,EACrBy9B,EAAKnjC,KAAK8iC,QAAQr/B,GAAGkC,EAErBy9B,EAAKpjC,KAAK8iC,QAAQx+B,GAAGoB,EACrB29B,EAAKrjC,KAAK8iC,QAAQx+B,GAAGqB,GAEbA,GAANw9B,GAAeE,EAAJ19B,GAAkBA,GAAN09B,GAAeF,EAAJx9B,KAAkBy9B,EAAKF,IAAOv9B,EAAIw9B,IAAOE,EAAKF,GAAMD,EAAvCx9B,IAEjDu9B,GAAUA,GAIlB,MAAOA,IAsBX1G,MAAO,SAAU1f,GAKb,GAHA7c,KAAK6iC,KAAO,EACZ7iC,KAAK8iC,WAEDvK,UAAU70B,OAAS,EACvB,CAESjD,MAAMyT,QAAQ2I,KAEfA,EAASpc,MAAM4C,UAAU0Z,MAAMjX,KAAKyyB,WAMxC,KAAK,GAHDtO,GAAKqZ,OAAOC,UAGP9/B,EAAI,EAAG8tB,EAAM1U,EAAOnZ,OAAY6tB,EAAJ9tB,EAASA,IAC9C,CACI,GAAyB,gBAAdoZ,GAAOpZ,GAClB,CACI,GAAIoB,GAAI,GAAI/E,MAAK4B,MAAMmb,EAAOpZ,GAAIoZ,EAAOpZ,EAAI,GAC7CA,SAIA,IAAIoB,GAAI,GAAI/E,MAAK4B,MAAMmb,EAAOpZ,GAAGiC,EAAGmX,EAAOpZ,GAAGkC,EAGlD3F,MAAK8iC,QAAQv+B,KAAKM,GAGdA,EAAEc,EAAIskB,IAENA,EAAKplB,EAAEc,GAIf3F,KAAKwjC,cAAcvZ,GAGvB,MAAOjqB,OAYXwjC,cAAe,SAAUvZ,GAOrB,IAAK,GALDwZ,GACAC,EACAC,EACA98B,EAEKpD,EAAI,EAAG8tB,EAAMvxB,KAAK8iC,QAAQp/B,OAAY6tB,EAAJ9tB,EAASA,IAEhDggC,EAAKzjC,KAAK8iC,QAAQr/B,GAIdigC,EAFAjgC,IAAM8tB,EAAM,EAEPvxB,KAAK8iC,QAAQ,GAIb9iC,KAAK8iC,QAAQr/B,EAAI,GAG1BkgC,GAAcF,EAAG99B,EAAIskB,GAAOyZ,EAAG/9B,EAAIskB,IAAO,EAC1CpjB,EAAQ48B,EAAG/9B,EAAIg+B,EAAGh+B,EAClB1F,KAAK6iC,MAAQc,EAAY98B,CAG7B,OAAO7G,MAAK6iC,OAMpB/O,EAAO8O,QAAQv/B,UAAUC,YAAcwwB,EAAO8O,QAW9Ch/B,OAAOC,eAAeiwB,EAAO8O,QAAQv/B,UAAW,UAE5CS,IAAK,WACD,MAAO9D,MAAK8iC,SAGhB9+B,IAAK,SAAS6Y,GAEI,MAAVA,EAEA7c,KAAKu8B,MAAM1f,GAKX7c,KAAKu8B,WAQjBz8B,KAAK8iC,QAAU9O,EAAO8O,QAmBtB9O,EAAO9wB,UAAY,SAAU0C,EAAGC,EAAGkB,EAAOC,GAEtCpB,EAAIA,GAAK,EACTC,EAAIA,GAAK,EACTkB,EAAQA,GAAS,EACjBC,EAASA,GAAU,EAKnB9G,KAAK0F,EAAIA,EAKT1F,KAAK2F,EAAIA,EAKT3F,KAAK6G,MAAQA,EAKb7G,KAAK8G,OAASA,EAMd9G,KAAK+W,KAAO+c,EAAOyD,WAIvBzD,EAAO9wB,UAAUK,WASbwX,OAAQ,SAAUlN,EAAIE,GAKlB,MAHA7N,MAAK0F,GAAKiI,EACV3N,KAAK2F,GAAKkI,EAEH7N,MAUXk9B,YAAa,SAAUC,GAEnB,MAAOn9B,MAAK6a,OAAOsiB,EAAMz3B,EAAGy3B,EAAMx3B,IAatC42B,MAAO,SAAU72B,EAAGC,EAAGkB,EAAOC,GAO1B,MALA9G,MAAK0F,EAAIA,EACT1F,KAAK2F,EAAIA,EACT3F,KAAK6G,MAAQA,EACb7G,KAAK8G,OAASA,EAEP9G,MAYX2B,MAAO,SAAU+D,EAAGC,GAOhB,MALU8D,UAAN9D,IAAmBA,EAAID,GAE3B1F,KAAK6G,OAASnB,EACd1F,KAAK8G,QAAUnB,EAER3F,MAYX4jC,SAAU,SAAUl+B,EAAGC,GAKnB,MAHA3F,MAAK6jC,QAAUn+B,EACf1F,KAAK8jC,QAAUn+B,EAER3F,MAQXg4B,MAAO,WAEHh4B,KAAK0F,EAAI/E,KAAKq3B,MAAMh4B,KAAK0F,GACzB1F,KAAK2F,EAAIhF,KAAKq3B,MAAMh4B,KAAK2F,IAQ7Bo+B,SAAU,WAEN/jC,KAAK0F,EAAI/E,KAAKq3B,MAAMh4B,KAAK0F,GACzB1F,KAAK2F,EAAIhF,KAAKq3B,MAAMh4B,KAAK2F,GACzB3F,KAAK6G,MAAQlG,KAAKq3B,MAAMh4B,KAAK6G,OAC7B7G,KAAK8G,OAASnG,KAAKq3B,MAAMh4B,KAAK8G,SAQlCixB,KAAM,WAEF/3B,KAAK0F,EAAI/E,KAAKo3B,KAAK/3B,KAAK0F,GACxB1F,KAAK2F,EAAIhF,KAAKo3B,KAAK/3B,KAAK2F,IAQ5Bq+B,QAAS,WAELhkC,KAAK0F,EAAI/E,KAAKo3B,KAAK/3B,KAAK0F,GACxB1F,KAAK2F,EAAIhF,KAAKo3B,KAAK/3B,KAAK2F,GACxB3F,KAAK6G,MAAQlG,KAAKo3B,KAAK/3B,KAAK6G,OAC5B7G,KAAK8G,OAASnG,KAAKo3B,KAAK/3B,KAAK8G,SAUjC01B,SAAU,SAAUhuB,GAEhB,MAAOxO,MAAKu8B,MAAM/tB,EAAO9I,EAAG8I,EAAO7I,EAAG6I,EAAO3H,MAAO2H,EAAO1H,SAU/D21B,OAAQ,SAAUC,GAOd,MALAA,GAAKh3B,EAAI1F,KAAK0F,EACdg3B,EAAK/2B,EAAI3F,KAAK2F,EACd+2B,EAAK71B,MAAQ7G,KAAK6G,MAClB61B,EAAK51B,OAAS9G,KAAK8G,OAEZ41B,GAWXuH,QAAS,SAAUt2B,EAAIE,GAEnB,MAAOimB,GAAO9wB,UAAUihC,QAAQjkC,KAAM2N,EAAIE,IAU9C8a,KAAM,SAAUkU,GAEZ,MAAO/I,GAAO9wB,UAAU2lB,KAAK3oB,KAAM68B,IAavC90B,OAAQ,SAAUlB,EAAOC,GAKrB,MAHA9G,MAAK6G,MAAQA,EACb7G,KAAK8G,OAASA,EAEP9G,MAUXs7B,MAAO,SAAUuB,GAEb,MAAO/I,GAAO9wB,UAAUs4B,MAAMt7B,KAAM68B,IAWxCC,SAAU,SAAUp3B,EAAGC,GAEnB,MAAOmuB,GAAO9wB,UAAU85B,SAAS98B,KAAM0F,EAAGC,IAW9Cu+B,aAAc,SAAUl/B,GAEpB,MAAO8uB,GAAO9wB,UAAUkhC,aAAal/B,EAAGhF,OAW5Cs9B,OAAQ,SAAUt4B,GAEd,MAAO8uB,GAAO9wB,UAAUs6B,OAAOt9B,KAAMgF,IAWzCm/B,aAAc,SAAUn/B,EAAGs3B,GAEvB,MAAOxI,GAAO9wB,UAAUmhC,aAAankC,KAAMgF,EAAGs3B,IAYlDiB,WAAY,SAAUv4B,GAElB,MAAO8uB,GAAO9wB,UAAUu6B,WAAWv9B,KAAMgF,IAe7Co/B,cAAe,SAAUvJ,EAAMD,EAAOwC,EAAKC,EAAQgH,GAE/C,MAAOvQ,GAAO9wB,UAAUohC,cAAcpkC,KAAM66B,EAAMD,EAAOwC,EAAKC,EAAQgH,IAW1EC,MAAO,SAAUt/B,EAAGs3B,GAEhB,MAAOxI,GAAO9wB,UAAUshC,MAAMtkC,KAAMgF,EAAGs3B,IAY3CxC,OAAQ,SAAUwC,GAOd,MALY7yB,UAAR6yB,IAAqBA,EAAM,GAAIxI,GAAOpyB,OAE1C46B,EAAI52B,EAAI1F,KAAKukC,QACbjI,EAAI32B,EAAI3F,KAAKwkC,QAENlI,GASXpsB,SAAU,WAEN,MAAO,kBAAoBlQ,KAAK0F,EAAI,MAAQ1F,KAAK2F,EAAI,UAAY3F,KAAK6G,MAAQ,WAAa7G,KAAK8G,OAAS,UAAY9G,KAAKykC,MAAQ,QAW1I7gC,OAAOC,eAAeiwB,EAAO9wB,UAAUK,UAAW,aAE9CS,IAAK,WACD,MAAOnD,MAAKi8B,MAAM58B,KAAK6G,MAAQ,MAUvCjD,OAAOC,eAAeiwB,EAAO9wB,UAAUK,UAAW,cAE9CS,IAAK,WACD,MAAOnD,MAAKi8B,MAAM58B,KAAK8G,OAAS,MAUxClD,OAAOC,eAAeiwB,EAAO9wB,UAAUK,UAAW,UAE9CS,IAAK,WACD,MAAO9D,MAAK2F,EAAI3F,KAAK8G,QAGzB9C,IAAK,SAAUC,GAIPjE,KAAK8G,OAFL7C,GAASjE,KAAK2F,EAEA,EAIA1B,EAAQjE,KAAK2F,KAYvC/B,OAAOC,eAAeiwB,EAAO9wB,UAAUK,UAAW,cAE9CS,IAAK,WACD,MAAO,IAAIgwB,GAAOpyB,MAAM1B,KAAK0F,EAAG1F,KAAKq9B,SAGzCr5B,IAAK,SAAUC,GACXjE,KAAK0F,EAAIzB,EAAMyB,EACf1F,KAAKq9B,OAASp5B,EAAM0B,KAU5B/B,OAAOC,eAAeiwB,EAAO9wB,UAAUK,UAAW,eAE9CS,IAAK,WACD,MAAO,IAAIgwB,GAAOpyB,MAAM1B,KAAK46B,MAAO56B,KAAKq9B,SAG7Cr5B,IAAK,SAAUC,GACXjE,KAAK46B,MAAQ32B,EAAMyB,EACnB1F,KAAKq9B,OAASp5B,EAAM0B,KAU5B/B,OAAOC,eAAeiwB,EAAO9wB,UAAUK,UAAW,QAE9CS,IAAK,WACD,MAAO9D,MAAK0F,GAGhB1B,IAAK,SAAUC,GAEPjE,KAAK6G,MADL5C,GAASjE,KAAK46B,MACD,EAEA56B,KAAK46B,MAAQ32B,EAE9BjE,KAAK0F,EAAIzB,KAUjBL,OAAOC,eAAeiwB,EAAO9wB,UAAUK,UAAW,SAE9CS,IAAK,WACD,MAAO9D,MAAK0F,EAAI1F,KAAK6G,OAGzB7C,IAAK,SAAUC,GAEPjE,KAAK6G,MADL5C,GAASjE,KAAK0F,EACD,EAEAzB,EAAQjE,KAAK0F,KAYtC9B,OAAOC,eAAeiwB,EAAO9wB,UAAUK,UAAW,UAE9CS,IAAK,WACD,MAAO9D,MAAK6G,MAAQ7G,KAAK8G,UAWjClD,OAAOC,eAAeiwB,EAAO9wB,UAAUK,UAAW,aAE9CS,IAAK,WACD,MAAqB,GAAb9D,KAAK6G,MAA4B,EAAd7G,KAAK8G,UAUxClD,OAAOC,eAAeiwB,EAAO9wB,UAAUK,UAAW,WAE9CS,IAAK,WACD,MAAO9D,MAAK0F,EAAI1F,KAAK09B,WAGzB15B,IAAK,SAAUC,GACXjE,KAAK0F,EAAIzB,EAAQjE,KAAK09B,aAU9B95B,OAAOC,eAAeiwB,EAAO9wB,UAAUK,UAAW,WAE9CS,IAAK,WACD,MAAO9D,MAAK2F,EAAI3F,KAAK49B,YAGzB55B,IAAK,SAAUC,GACXjE,KAAK2F,EAAI1B,EAAQjE,KAAK49B,cAW9Bh6B,OAAOC,eAAeiwB,EAAO9wB,UAAUK,UAAW,WAE9CS,IAAK,WAED,MAAO9D,MAAK0F,EAAK/E,KAAKm5B,SAAW95B,KAAK6G,SAY9CjD,OAAOC,eAAeiwB,EAAO9wB,UAAUK,UAAW,WAE9CS,IAAK,WAED,MAAO9D,MAAK2F,EAAKhF,KAAKm5B,SAAW95B,KAAK8G,UAY9ClD,OAAOC,eAAeiwB,EAAO9wB,UAAUK,UAAW,OAE9CS,IAAK,WACD,MAAO9D,MAAK2F,GAGhB3B,IAAK,SAAUC,GACPA,GAASjE,KAAKq9B,QACdr9B,KAAK8G,OAAS,EACd9G,KAAK2F,EAAI1B,GAETjE,KAAK8G,OAAU9G,KAAKq9B,OAASp5B,KAWzCL,OAAOC,eAAeiwB,EAAO9wB,UAAUK,UAAW,WAE9CS,IAAK,WACD,MAAO,IAAIgwB,GAAOpyB,MAAM1B,KAAK0F,EAAG1F,KAAK2F,IAGzC3B,IAAK,SAAUC,GACXjE,KAAK0F,EAAIzB,EAAMyB,EACf1F,KAAK2F,EAAI1B,EAAM0B,KAUvB/B,OAAOC,eAAeiwB,EAAO9wB,UAAUK,UAAW,YAE9CS,IAAK,WACD,MAAO,IAAIgwB,GAAOpyB,MAAM1B,KAAK0F,EAAI1F,KAAK6G,MAAO7G,KAAK2F,IAGtD3B,IAAK,SAAUC,GACXjE,KAAK46B,MAAQ32B,EAAMyB,EACnB1F,KAAK2F,EAAI1B,EAAM0B,KAWvB/B,OAAOC,eAAeiwB,EAAO9wB,UAAUK,UAAW,SAE9CS,IAAK,WACD,OAAS9D,KAAK6G,QAAU7G,KAAK8G,QAGjC9C,IAAK,SAAUC,GAEPA,KAAU,GAEVjE,KAAKu8B,MAAM,EAAG,EAAG,EAAG,MAOhCzI,EAAO9wB,UAAUK,UAAUC,YAAcwwB,EAAO9wB,UAUhD8wB,EAAO9wB,UAAUihC,QAAU,SAAUl/B,EAAG4I,EAAIE,GAOxC,MALA9I,GAAEW,GAAKiI,EACP5I,EAAE8B,OAAS,EAAI8G,EACf5I,EAAEY,GAAKkI,EACP9I,EAAE+B,QAAU,EAAI+G,EAET9I,GAWX+uB,EAAO9wB,UAAU0hC,aAAe,SAAU3/B,EAAGo4B,GAEzC,MAAOrJ,GAAO9wB,UAAUihC,QAAQl/B,EAAGo4B,EAAMz3B,EAAGy3B,EAAMx3B,IAWtDmuB,EAAO9wB,UAAU2lB,KAAO,SAAU5jB,EAAG83B,GAWjC,MATepzB,UAAXozB,GAAmC,OAAXA,EAExBA,EAAS,GAAI/I,GAAOpyB,MAAMqD,EAAE8B,MAAO9B,EAAE+B,QAIrC+1B,EAAON,MAAMx3B,EAAE8B,MAAO9B,EAAE+B,QAGrB+1B,GAWX/I,EAAO9wB,UAAUs4B,MAAQ,SAAUv2B,EAAG83B,GAWlC,MATepzB,UAAXozB,GAAmC,OAAXA,EAExBA,EAAS,GAAI/I,GAAO9wB,UAAU+B,EAAEW,EAAGX,EAAEY,EAAGZ,EAAE8B,MAAO9B,EAAE+B,QAInD+1B,EAAON,MAAMx3B,EAAEW,EAAGX,EAAEY,EAAGZ,EAAE8B,MAAO9B,EAAE+B,QAG/B+1B,GAYX/I,EAAO9wB,UAAU85B,SAAW,SAAU/3B,EAAGW,EAAGC,GAExC,MAAIZ,GAAE8B,OAAS,GAAK9B,EAAE+B,QAAU,GAErB,EAGHpB,GAAKX,EAAEW,GAAKA,EAAIX,EAAE61B,OAASj1B,GAAKZ,EAAEY,GAAKA,EAAIZ,EAAEs4B,QAezDvJ,EAAO9wB,UAAU2hC,YAAc,SAAUzT,EAAIC,EAAIyT,EAAIC,EAAIn/B,EAAGC,GAExD,MAAQD,IAAKwrB,GAAWA,EAAK0T,EAAVl/B,GAAiBC,GAAKwrB,GAAWA,EAAK0T,EAAVl/B,GAWnDmuB,EAAO9wB,UAAU8hC,cAAgB,SAAU//B,EAAGo4B,GAE1C,MAAOrJ,GAAO9wB,UAAU85B,SAAS/3B,EAAGo4B,EAAMz3B,EAAGy3B,EAAMx3B,IAYvDmuB,EAAO9wB,UAAUkhC,aAAe,SAAUn/B,EAAGC,GAGzC,MAAID,GAAEggC,OAAS//B,EAAE+/B,QAEN,EAGHhgC,EAAEW,GAAKV,EAAEU,GAAKX,EAAEY,GAAKX,EAAEW,GAAKZ,EAAE61B,MAAQ51B,EAAE41B,OAAS71B,EAAEs4B,OAASr4B,EAAEq4B,QAY1EvJ,EAAO9wB,UAAUs6B,OAAS,SAAUv4B,EAAGC,GAEnC,MAAQD,GAAEW,GAAKV,EAAEU,GAAKX,EAAEY,GAAKX,EAAEW,GAAKZ,EAAE8B,OAAS7B,EAAE6B,OAAS9B,EAAE+B,QAAU9B,EAAE8B,QAW5EgtB,EAAO9wB,UAAUgiC,eAAiB,SAAUjgC,EAAGC,GAE3C,MAAQD,GAAE8B,QAAU7B,EAAE6B,OAAS9B,EAAE+B,SAAW9B,EAAE8B,QAYlDgtB,EAAO9wB,UAAUmhC,aAAe,SAAUp/B,EAAGC,EAAG63B,GAe5C,MAbepzB,UAAXozB,IAEAA,EAAS,GAAI/I,GAAO9wB,WAGpB8wB,EAAO9wB,UAAUu6B,WAAWx4B,EAAGC,KAE/B63B,EAAOn3B,EAAI/E,KAAK2+B,IAAIv6B,EAAEW,EAAGV,EAAEU,GAC3Bm3B,EAAOl3B,EAAIhF,KAAK2+B,IAAIv6B,EAAEY,EAAGX,EAAEW,GAC3Bk3B,EAAOh2B,MAAQlG,KAAK0wB,IAAItsB,EAAE61B,MAAO51B,EAAE41B,OAASiC,EAAOn3B,EACnDm3B,EAAO/1B,OAASnG,KAAK0wB,IAAItsB,EAAEs4B,OAAQr4B,EAAEq4B,QAAUR,EAAOl3B,GAGnDk3B,GAYX/I,EAAO9wB,UAAUu6B,WAAa,SAAUx4B,EAAGC,GAEvC,MAAID,GAAE8B,OAAS,GAAK9B,EAAE+B,QAAU,GAAK9B,EAAE6B,OAAS,GAAK7B,EAAE8B,QAAU,GAEtD,IAGF/B,EAAE61B,MAAQ51B,EAAEU,GAAKX,EAAEs4B,OAASr4B,EAAEW,GAAKZ,EAAEW,EAAIV,EAAE41B,OAAS71B,EAAEY,EAAIX,EAAEq4B,SAczEvJ,EAAO9wB,UAAUohC,cAAgB,SAAUr/B,EAAG81B,EAAMD,EAAOwC,EAAKC,EAAQgH,GAIpE,MAFkB56B,UAAd46B,IAA2BA,EAAY,KAElCxJ,EAAO91B,EAAE61B,MAAQyJ,GAAazJ,EAAQ71B,EAAE81B,KAAOwJ,GAAajH,EAAMr4B,EAAEs4B,OAASgH,GAAahH,EAASt4B,EAAEq4B,IAAMiH,IAYxHvQ,EAAO9wB,UAAUshC,MAAQ,SAAUv/B,EAAGC,EAAG63B,GAOrC,MALepzB,UAAXozB,IAEAA,EAAS,GAAI/I,GAAO9wB,WAGjB65B,EAAON,MAAM57B,KAAK0wB,IAAItsB,EAAEW,EAAGV,EAAEU,GAAI/E,KAAK0wB,IAAItsB,EAAEY,EAAGX,EAAEW,GAAIhF,KAAK2+B,IAAIv6B,EAAE61B,MAAO51B,EAAE41B,OAASj6B,KAAK0wB,IAAItsB,EAAE81B,KAAM71B,EAAE61B,MAAOl6B,KAAK2+B,IAAIv6B,EAAEs4B,OAAQr4B,EAAEq4B,QAAU18B,KAAK0wB,IAAItsB,EAAEq4B,IAAKp4B,EAAEo4B,OAaxKtJ,EAAO9wB,UAAUiiC,KAAO,SAASpoB,EAAQyf,GAEzB7yB,SAAR6yB,IACAA,EAAM,GAAIxI,GAAO9wB,UAGrB,IAAIq8B,GAAOiE,OAAO4B,UACd9F,EAAOkE,OAAOC,UACd/D,EAAO8D,OAAO4B,UACd3F,EAAO+D,OAAOC,SAoBlB,OAlBA1mB,GAAO+b,QAAQ,SAASuE,GAChBA,EAAMz3B,EAAI25B,IACVA,EAAOlC,EAAMz3B,GAEby3B,EAAMz3B,EAAI05B,IACVA,EAAOjC,EAAMz3B,GAGby3B,EAAMx3B,EAAI65B,IACVA,EAAOrC,EAAMx3B,GAEbw3B,EAAMx3B,EAAI45B,IACVA,EAAOpC,EAAMx3B,KAIrB22B,EAAIC,MAAM6C,EAAMG,EAAMF,EAAOD,EAAMI,EAAOD,GAEnCjD,GAIXx8B,KAAKkD,UAAY8wB,EAAO9wB,UACxBlD,KAAKoG,eAAiB,GAAI4tB,GAAO9wB,UAAU,EAAG,EAAG,EAAG,GAqBpD8wB,EAAOqR,iBAAmB,SAASz/B,EAAGC,EAAGkB,EAAOC,EAAQ6X,GAE1ClV,SAAN/D,IAAmBA,EAAI,GACjB+D,SAAN9D,IAAmBA,EAAI,GACb8D,SAAV5C,IAAuBA,EAAQ,GACpB4C,SAAX3C,IAAwBA,EAAS,GACtB2C,SAAXkV,IAAwBA,EAAS,IAKrC3e,KAAK0F,EAAIA,EAKT1F,KAAK2F,EAAIA,EAKT3F,KAAK6G,MAAQA,EAKb7G,KAAK8G,OAASA,EAKd9G,KAAK2e,OAASA,GAAU,GAMxB3e,KAAK+W,KAAO+c,EAAO6D,kBAGvB7D,EAAOqR,iBAAiB9hC,WASpBi4B,MAAO,WAEH,MAAO,IAAIxH,GAAOqR,iBAAiBnlC,KAAK0F,EAAG1F,KAAK2F,EAAG3F,KAAK6G,MAAO7G,KAAK8G,OAAQ9G,KAAK2e,SAYrFme,SAAU,SAAUp3B,EAAGC,GAEnB,GAAI3F,KAAK6G,OAAS,GAAK7G,KAAK8G,QAAU,EAElC,OAAO,CAGX,IAAI4F,GAAK1M,KAAK0F,CAEd,IAAIA,GAAKgH,GAAMhH,GAAKgH,EAAK1M,KAAK6G,MAC9B,CACI,GAAI8F,GAAK3M,KAAK2F,CAEd,IAAIA,GAAKgH,GAAMhH,GAAKgH,EAAK3M,KAAK8G,OAE1B,OAAO,EAIf,OAAO,IAMfgtB,EAAOqR,iBAAiB9hC,UAAUC,YAAcwwB,EAAOqR,iBAGvDrlC,KAAKqlC,iBAAmBrR,EAAOqR,iBAqB/BrR,EAAOsR,OAAS,SAAUxgC,EAAMgT,EAAIlS,EAAGC,EAAGkB,EAAOC,GAK7C9G,KAAK4E,KAAOA,EAKZ5E,KAAK8E,MAAQF,EAAKE,MAMlB9E,KAAK4X,GAAK,EASV5X,KAAKiB,KAAO,GAAI6yB,GAAO9wB,UAAU0C,EAAGC,EAAGkB,EAAOC,GAS9C9G,KAAK0G,OAAS,GAAIotB,GAAO9wB,UAAU0C,EAAGC,EAAGkB,EAAOC,GAKhD9G,KAAKqlC,SAAW,KAMhBrlC,KAAKiC,SAAU,EAMfjC,KAAKslC,SAAU,EAKftlC,KAAKulC,SAAY7/B,GAAG,EAAOC,GAAG,GAM9B3F,KAAKyE,OAAS,KAKdzE,KAAKukB,cAAgB,KAKrBvkB,KAAK2B,MAAQ,KAMb3B,KAAKwlC,YAAc,EAMnBxlC,KAAKylC,gBAAkB,GAAI3R,GAAOpyB,MAOlC1B,KAAK0lC,MAAQ,EAOb1lC,KAAK2lC,UAAY,GAAI7R,GAAOpyB,OAQhCoyB,EAAOsR,OAAOQ,cAAgB,EAM9B9R,EAAOsR,OAAOS,kBAAoB,EAMlC/R,EAAOsR,OAAOU,eAAiB,EAM/BhS,EAAOsR,OAAOW,qBAAuB,EAErCjS,EAAOsR,OAAO/hC,WAOViD,UAAW,WAEPtG,KAAKwlC,YAAc,GAcvBQ,OAAQ,SAAUvhC,EAAQggB,GAERhb,SAAVgb,IAAuBA,EAAQqP,EAAOsR,OAAOQ,eAEjD5lC,KAAKyE,OAASA,CAEd,IAAIwhC,EAEJ,QAAQxhB,GAEJ,IAAKqP,GAAOsR,OAAOS,kBACf,GAAItsB,GAAIvZ,KAAK6G,MAAQ,EACjBwjB,EAAIrqB,KAAK8G,OAAS,CACtB9G,MAAKqlC,SAAW,GAAIvR,GAAO9wB,WAAWhD,KAAK6G,MAAQ0S,GAAK,GAAIvZ,KAAK8G,OAASujB,GAAK,EAAQ,IAAJA,EAAU9Q,EAAG8Q,EAChG,MAEJ,KAAKyJ,GAAOsR,OAAOU,eACfG,EAAStlC,KAAK2+B,IAAIt/B,KAAK6G,MAAO7G,KAAK8G,QAAU,EAC7C9G,KAAKqlC,SAAW,GAAIvR,GAAO9wB,WAAWhD,KAAK6G,MAAQo/B,GAAU,GAAIjmC,KAAK8G,OAASm/B,GAAU,EAAGA,EAAQA,EACpG,MAEJ,KAAKnS,GAAOsR,OAAOW,qBACfE,EAAStlC,KAAK2+B,IAAIt/B,KAAK6G,MAAO7G,KAAK8G,QAAU,EAC7C9G,KAAKqlC,SAAW,GAAIvR,GAAO9wB,WAAWhD,KAAK6G,MAAQo/B,GAAU,GAAIjmC,KAAK8G,OAASm/B,GAAU,EAAGA,EAAQA,EACpG,MAEJ,KAAKnS,GAAOsR,OAAOQ,cACf5lC,KAAKqlC,SAAW,IAChB,MAEJ,SACIrlC,KAAKqlC,SAAW,OAW5Ba,SAAU,WAENlmC,KAAKyE,OAAS,MASlB0hC,QAAS,SAAU5hB,GAEfvkB,KAAKomC,YAAYzlC,KAAKi8B,MAAMrY,EAAc7e,EAAI1F,KAAKiB,KAAKy8B,WAAY/8B,KAAKi8B,MAAMrY,EAAc5e,EAAI3F,KAAKiB,KAAK28B,cAU/GyI,UAAW,SAAU3gC,EAAGC,GAEpB3F,KAAKomC,YAAYzlC,KAAKi8B,MAAMl3B,EAAI1F,KAAKiB,KAAKy8B,WAAY/8B,KAAKi8B,MAAMj3B,EAAI3F,KAAKiB,KAAK28B,cAQnF0I,OAAQ,WAEAtmC,KAAKyE,QAELzE,KAAKumC,eAGLvmC,KAAK0G,QAEL1G,KAAKwmC,cAGLxmC,KAAKslC,SAELtlC,KAAKiB,KAAK+2B,QAGdh4B,KAAKukB,cAAc9iB,SAASiE,GAAK1F,KAAKiB,KAAKyE,EAC3C1F,KAAKukB,cAAc9iB,SAASkE,GAAK3F,KAAKiB,KAAK0E,GAS/C4gC,aAAc,WAEVvmC,KAAKylC,gBAAgBjJ,SAASx8B,KAAKyE,QAE/BzE,KAAKyE,OAAOrC,QAEZpC,KAAKylC,gBAAgB3E,SAAS9gC,KAAKyE,OAAOrC,OAAOG,eAAewC,EAAG/E,KAAKyE,OAAOrC,OAAOG,eAAe2C,GAGrGlF,KAAKqlC,UAELrlC,KAAK0lC,MAAQ1lC,KAAKylC,gBAAgB//B,EAAI1F,KAAKiB,KAAKyE,EAE5C1F,KAAK0lC,MAAQ1lC,KAAKqlC,SAASxK,KAE3B76B,KAAKiB,KAAKyE,EAAI1F,KAAKylC,gBAAgB//B,EAAI1F,KAAKqlC,SAASxK,KAEhD76B,KAAK0lC,MAAQ1lC,KAAKqlC,SAASzK,QAEhC56B,KAAKiB,KAAKyE,EAAI1F,KAAKylC,gBAAgB//B,EAAI1F,KAAKqlC,SAASzK,OAGzD56B,KAAK0lC,MAAQ1lC,KAAKylC,gBAAgB9/B,EAAI3F,KAAKiB,KAAK0E,EAE5C3F,KAAK0lC,MAAQ1lC,KAAKqlC,SAASjI,IAE3Bp9B,KAAKiB,KAAK0E,EAAI3F,KAAKylC,gBAAgB9/B,EAAI3F,KAAKqlC,SAASjI,IAEhDp9B,KAAK0lC,MAAQ1lC,KAAKqlC,SAAShI,SAEhCr9B,KAAKiB,KAAK0E,EAAI3F,KAAKylC,gBAAgB9/B,EAAI3F,KAAKqlC,SAAShI,UAKzDr9B,KAAKiB,KAAKyE,EAAI1F,KAAKylC,gBAAgB//B,EAAI1F,KAAKiB,KAAKy8B,UACjD19B,KAAKiB,KAAK0E,EAAI3F,KAAKylC,gBAAgB9/B,EAAI3F,KAAKiB,KAAK28B,aASzD6I,iBAAkB,WAEdzmC,KAAK0G,OAAO81B,SAASx8B,KAAK4E,KAAKE,MAAM4B,SAQzC8/B,YAAa,WAETxmC,KAAKulC,QAAQ7/B,GAAI,EACjB1F,KAAKulC,QAAQ5/B,GAAI,EAGb3F,KAAKiB,KAAKyE,GAAK1F,KAAK0G,OAAOhB,IAE3B1F,KAAKulC,QAAQ7/B,GAAI,EACjB1F,KAAKiB,KAAKyE,EAAI1F,KAAK0G,OAAOhB,GAG1B1F,KAAKiB,KAAK25B,OAAS56B,KAAK0G,OAAOk0B,QAE/B56B,KAAKulC,QAAQ7/B,GAAI,EACjB1F,KAAKiB,KAAKyE,EAAI1F,KAAK0G,OAAOk0B,MAAQ56B,KAAK6G,OAGvC7G,KAAKiB,KAAK0E,GAAK3F,KAAK0G,OAAO02B,MAE3Bp9B,KAAKulC,QAAQ5/B,GAAI,EACjB3F,KAAKiB,KAAK0E,EAAI3F,KAAK0G,OAAO02B,KAG1Bp9B,KAAKiB,KAAKo8B,QAAUr9B,KAAK0G,OAAO22B,SAEhCr9B,KAAKulC,QAAQ5/B,GAAI,EACjB3F,KAAKiB,KAAK0E,EAAI3F,KAAK0G,OAAO22B,OAASr9B,KAAK8G,SAahDs/B,YAAa,SAAU1gC,EAAGC,GAEtB3F,KAAKiB,KAAKyE,EAAIA,EACd1F,KAAKiB,KAAK0E,EAAIA,EAEV3F,KAAK0G,QAEL1G,KAAKwmC,eAYbE,QAAS,SAAU7/B,EAAOC,GAEtB9G,KAAKiB,KAAK4F,MAAQA,EAClB7G,KAAKiB,KAAK6F,OAASA,GASvB2V,MAAO,WAEHzc,KAAKyE,OAAS,KACdzE,KAAKiB,KAAKyE,EAAI,EACd1F,KAAKiB,KAAK0E,EAAI,IAMtBmuB,EAAOsR,OAAO/hC,UAAUC,YAAcwwB,EAAOsR,OAO7CxhC,OAAOC,eAAeiwB,EAAOsR,OAAO/hC,UAAW,KAE3CS,IAAK,WACD,MAAO9D,MAAKiB,KAAKyE,GAGrB1B,IAAK,SAAUC,GAEXjE,KAAKiB,KAAKyE,EAAIzB,EAEVjE,KAAK0G,QAEL1G,KAAKwmC,iBAWjB5iC,OAAOC,eAAeiwB,EAAOsR,OAAO/hC,UAAW,KAE3CS,IAAK,WACD,MAAO9D,MAAKiB,KAAK0E,GAGrB3B,IAAK,SAAUC,GAEXjE,KAAKiB,KAAK0E,EAAI1B,EAEVjE,KAAK0G,QAEL1G,KAAKwmC,iBAWjB5iC,OAAOC,eAAeiwB,EAAOsR,OAAO/hC,UAAW,YAE3CS,IAAK,WAED,MADA9D,MAAK2lC,UAAU3hC,IAAIhE,KAAKiB,KAAK4iC,QAAS7jC,KAAKiB,KAAK6iC,SACzC9jC,KAAK2lC,WAGhB3hC,IAAK,SAAUC,GAEY,mBAAZA,GAAMyB,IAAqB1F,KAAKiB,KAAKyE,EAAIzB,EAAMyB,GACnC,mBAAZzB,GAAM0B,IAAqB3F,KAAKiB,KAAK0E,EAAI1B,EAAM0B,GAEtD3F,KAAK0G,QAEL1G,KAAKwmC,iBAWjB5iC,OAAOC,eAAeiwB,EAAOsR,OAAO/hC,UAAW,SAE3CS,IAAK,WACD,MAAO9D,MAAKiB,KAAK4F,OAGrB7C,IAAK,SAAUC,GACXjE,KAAKiB,KAAK4F,MAAQ5C,KAU1BL,OAAOC,eAAeiwB,EAAOsR,OAAO/hC,UAAW,UAE3CS,IAAK,WACD,MAAO9D,MAAKiB,KAAK6F,QAGrB9C,IAAK,SAAUC,GACXjE,KAAKiB,KAAK6F,OAAS7C,KAsB3B6vB,EAAO6S,OAAS,SAAU/hC,GAKtB5E,KAAK4E,KAAOA,EAKZ5E,KAAK4mC,IAAMhiC,EAAKiiC,KAAKC,aAKrB9mC,KAAK+Q,OAAS/Q,KAAK4mC,IAAI71B,OAKvB/Q,KAAK+mC,IAAM/mC,KAAK4mC,IAAIx5B,QAKpBpN,KAAKgnC,WACC,EAAG,OAAQC,EAAG,UAAWC,EAAG,OAAQC,EAAG,UAAWC,EAAG,UAAWC,EAAG,UAAWC,EAAG,UAAWC,EAAG,UAAWC,EAAG,UAAWC,EAAG,UAAWC,EAAG,UAAWC,EAAG,UAAWC,EAAG,UAAWC,EAAG,UAAWC,EAAG,UAAWrP,EAAG,YAC/M,EAAG,OAAQwO,EAAG,UAAWC,EAAG,UAAWC,EAAG,UAAWC,EAAG,UAAWC,EAAG,UAAWC,EAAG,UAAWC,EAAG,UAAWC,EAAG,UAAWC,EAAG,UAAWC,EAAG,UAAWC,EAAG,UAAWC,EAAG,UAAWC,EAAG,UAAWC,EAAG,UAAWrP,EAAG,YAClN,EAAG,OAAQwO,EAAG,UAAWC,EAAG,UAAWC,EAAG,UAAWC,EAAG,UAAWC,EAAG,UAAWC,EAAG,UAAWC,EAAG,UAAWC,EAAG,UAAWC,EAAG,UAAWC,EAAG,UAAWC,EAAG,UAAWC,EAAG,UAAWC,EAAG,UAAWC,EAAG,UAAWrP,EAAG,SAClN,EAAG,OAAQwO,EAAG,OAAQC,EAAG,UAAWC,EAAG,UAAWC,EAAG,UAAWC,EAAG,UAAWC,EAAG,UAAWC,EAAG,UAAWC,EAAG,UAAWC,EAAG,UAAWC,EAAG,UAAWC,EAAG,UAAWC,EAAG,UAAWC,EAAG,UAAWC,EAAG,UAAWrP,EAAG,YAC/M,EAAG,OAAQwO,EAAG,UAAWC,EAAG,UAAWC,EAAG,UAAWC,EAAG,UAAWC,EAAG,UAAWC,EAAG,UAAWC,EAAG,UAAWC,EAAG,UAAWC,EAAG,UAAWC,EAAG,UAAWC,EAAG,UAAWC,EAAG,UAAWC,EAAG,UAAWC,EAAG,UAAWrP,EAAG,UAU5N3E,EAAO6S,OAAOoB,aAAe,EAO7BjU,EAAO6S,OAAOqB,YAAc,EAO5BlU,EAAO6S,OAAOsB,YAAc,EAO5BnU,EAAO6S,OAAOuB,YAAc,EAO5BpU,EAAO6S,OAAOwB,yBAA2B,EAEzCrU,EAAO6S,OAAOtjC,WAiCVyE,QAAS,SAAU4O,EAAKvF,EAAMi3B,EAAYC,EAAaC,GAEhC7+B,SAAf2+B,IAA4BA,EAAa,GACzB3+B,SAAhB4+B,IAA6BA,EAAcD,GAC/B3+B,SAAZ6+B,IAAyBA,EAAU,EAEvC,IAAI/uB,GAAIpI,EAAK,GAAGzN,OAAS0kC,EACrB/d,EAAIlZ,EAAKzN,OAAS2kC,CAEtBroC,MAAK4mC,IAAI7+B,OAAOwR,EAAG8Q,GACnBrqB,KAAK4mC,IAAIxiB,OAGT,KAAK,GAAIze,GAAI,EAAGA,EAAIwL,EAAKzN,OAAQiC,IAI7B,IAAK,GAFD4iC,GAAMp3B,EAAKxL,GAEND,EAAI,EAAGA,EAAI6iC,EAAI7kC,OAAQgC,IAChC,CACI,GAAIR,GAAIqjC,EAAI7iC,EAEF,OAANR,GAAmB,MAANA,IAEblF,KAAK+mC,IAAIlY,UAAY7uB,KAAKgnC,SAASsB,GAASpjC,GAC5ClF,KAAK+mC,IAAIjY,SAASppB,EAAI0iC,EAAYziC,EAAI0iC,EAAaD,EAAYC,IAK3E,MAAOroC,MAAK4mC,IAAIrgC,gBAAgBmQ,IAgBpC8xB,KAAM,SAAU9xB,EAAK7P,EAAOC,EAAQ2hC,EAAWC,EAAYnuB,GAEvDva,KAAK4mC,IAAI7+B,OAAOlB,EAAOC,GAEvB9G,KAAK+mC,IAAIlY,UAAYtU,CAErB,KAAK,GAAI5U,GAAI,EAAOmB,EAAJnB,EAAYA,GAAK+iC,EAE7B1oC,KAAK+mC,IAAIjY,SAAS,EAAGnpB,EAAGkB,EAAO,EAGnC,KAAK,GAAInB,GAAI,EAAOmB,EAAJnB,EAAWA,GAAK+iC,EAE5BzoC,KAAK+mC,IAAIjY,SAASppB,EAAG,EAAG,EAAGoB,EAG/B,OAAO9G,MAAK4mC,IAAIrgC,gBAAgBmQ,KAMxCod,EAAO6S,OAAOtjC,UAAUC,YAAcwwB,EAAO6S,OAe7C7S,EAAO6U,MAAQ,WAKX3oC,KAAK4E,KAAO,KAKZ5E,KAAK0W,IAAM,GAKX1W,KAAK4gC,IAAM,KAKX5gC,KAAK6mC,KAAO,KAKZ7mC,KAAK4oC,OAAS,KAKd5oC,KAAK6oC,MAAQ,KAKb7oC,KAAK8oC,MAAQ,KAKb9oC,KAAK+oC,KAAO,KAKZ/oC,KAAKgpC,KAAO,KAKZhpC,KAAKipC,MAAQ,KAKbjpC,KAAK2B,MAAQ,KAKb3B,KAAKqC,MAAQ,KAKbrC,KAAKkpC,KAAO,KAKZlpC,KAAKmpC,OAAS,KAKdnpC,KAAK8E,MAAQ,KAKb9E,KAAKopC,UAAY,KAKjBppC,KAAKqpC,QAAU,KAKfrpC,KAAKspC,IAAM,MAIfxV,EAAO6U,MAAMtlC,WASTyS,KAAM,aAUNyzB,QAAS,aAQTC,WAAY,aASZC,WAAY,aASZrhC,OAAQ,aAURk+B,OAAQ,aAQRoD,UAAW,aAUX1iC,OAAQ,aAQRe,OAAQ,aAQR4hC,OAAQ,aAQRC,QAAS,aAQTC,YAAa,aAQbC,SAAU,cAKdhW,EAAO6U,MAAMtlC,UAAUC,YAAcwwB,EAAO6U,MAkB5C7U,EAAOiW,aAAe,SAAUnlC,EAAMolC,GAKlChqC,KAAK4E,KAAOA,EAKZ5E,KAAKiqC,UAMLjqC,KAAKkqC,cAAgB,KAEO,mBAAjBF,IAAiD,OAAjBA,IAEvChqC,KAAKkqC,cAAgBF,GAOzBhqC,KAAKmqC,aAAc,EAMnBnqC,KAAKoqC,aAAc,EAMnBpqC,KAAKqqC,UAAW,EAMhBrqC,KAAKsqC,SAMLtqC,KAAK05B,QAAU,GAcf15B,KAAKuqC,cAAgB,GAAIzW,GAAO0W,OAMhCxqC,KAAKyqC,eAAiB,KAMtBzqC,KAAK0qC,kBAAoB,KAMzB1qC,KAAK2qC,iBAAmB,KAMxB3qC,KAAK4qC,iBAAmB,KAMxB5qC,KAAK6qC,iBAAmB,KAMxB7qC,KAAK8qC,iBAAmB,KAMxB9qC,KAAK+qC,oBAAsB,KAM3B/qC,KAAKgrC,qBAAuB,KAM5BhrC,KAAKirC,qBAAuB,KAM5BjrC,KAAKkrC,iBAAmB,KAMxBlrC,KAAKmrC,kBAAoB,KAMzBnrC,KAAKorC,sBAAwB,KAM7BprC,KAAKqrC,mBAAqB,MAI9BvX,EAAOiW,aAAa1mC,WAOhBioC,KAAM,WAEFtrC,KAAK4E,KAAK2mC,QAAQ3K,IAAI5gC,KAAKwrC,MAAOxrC,MAClCA,KAAK4E,KAAK6mC,SAAS7K,IAAI5gC,KAAK0rC,OAAQ1rC,MAET,OAAvBA,KAAKkqC,eAAwD,gBAAvBlqC,MAAKkqC,eAE3ClqC,KAAK4gC,IAAI,UAAW5gC,KAAKkqC,eAAe,IAehDtJ,IAAK,SAAUlqB,EAAKi1B,EAAOC,GAELniC,SAAdmiC,IAA2BA,GAAY,EAE3C,IAAIC,EA8BJ,OA5BIF,aAAiB7X,GAAO6U,MAExBkD,EAAWF,EAEW,gBAAVA,IAEZE,EAAWF,EACXE,EAASjnC,KAAO5E,KAAK4E,MAEC,kBAAV+mC,KAEZE,EAAW,GAAIF,GAAM3rC,KAAK4E,OAG9B5E,KAAKiqC,OAAOvzB,GAAOm1B,EAEfD,IAEI5rC,KAAK4E,KAAKknC,SAEV9rC,KAAKoL,MAAMsL,GAIX1W,KAAKkqC,cAAgBxzB,GAItBm1B,GASXE,OAAQ,SAAUr1B,GAEV1W,KAAK05B,UAAYhjB,IAEjB1W,KAAKgsC,gBAAkB,KAEvBhsC,KAAKyqC,eAAiB,KACtBzqC,KAAKqrC,mBAAqB,KAE1BrrC,KAAK0qC,kBAAoB,KACzB1qC,KAAKirC,qBAAuB,KAC5BjrC,KAAKgrC,qBAAuB,KAC5BhrC,KAAK2qC,iBAAmB,KACxB3qC,KAAK4qC,iBAAmB,KACxB5qC,KAAK+qC,oBAAsB,KAC3B/qC,KAAK6qC,iBAAmB,KACxB7qC,KAAK8qC,iBAAmB,KACxB9qC,KAAKkrC,iBAAmB,KACxBlrC,KAAKmrC,kBAAoB,KACzBnrC,KAAKorC,sBAAwB,YAG1BprC,MAAKiqC,OAAOvzB,IAavBtL,MAAO,SAAUsL,EAAKu1B,EAAYC,GAEXziC,SAAfwiC,IAA4BA,GAAa,GAC1BxiC,SAAfyiC,IAA4BA,GAAa,GAEzClsC,KAAKmsC,WAAWz1B,KAGhB1W,KAAKkqC,cAAgBxzB,EACrB1W,KAAKmqC,YAAc8B,EACnBjsC,KAAKoqC,YAAc8B,EAEf3T,UAAU70B,OAAS,IAEnB1D,KAAKsqC,MAAQ7pC,MAAM4C,UAAUuF,OAAO9C,KAAKyyB,UAAW,MAchE6T,QAAS,SAAUH,EAAYC,GAERziC,SAAfwiC,IAA4BA,GAAa,GAC1BxiC,SAAfyiC,IAA4BA,GAAa,GAG7ClsC,KAAKkqC,cAAgBlqC,KAAK05B,QAC1B15B,KAAKmqC,YAAc8B,EACnBjsC,KAAKoqC,YAAc8B,EAEf3T,UAAU70B,OAAS,IAEnB1D,KAAKsqC,MAAQ7pC,MAAM4C,UAAUuF,OAAO9C,KAAKyyB,UAAW,KAU5D8T,MAAO,aAQP/lC,UAAW,WAEP,GAAItG,KAAKkqC,eAAiBlqC,KAAK4E,KAAKknC,SACpC,CACI,GAAIQ,GAAmBtsC,KAAK05B,OAS5B,IANA15B,KAAKusC,oBAELvsC,KAAKwsC,gBAAgBxsC,KAAKkqC,eAE1BlqC,KAAKuqC,cAAckC,SAASzsC,KAAK05B,QAAS4S,GAEtCtsC,KAAK05B,UAAY15B,KAAKkqC,cAEtB,MAIAlqC,MAAKkqC,cAAgB,KAKrBlqC,KAAK0qC,mBAEL1qC,KAAK4E,KAAKmkC,KAAKtsB,OAAM,GACrBzc,KAAK0qC,kBAAkB5kC,KAAK9F,KAAKgsC,gBAAiBhsC,KAAK4E,MAGb,IAAtC5E,KAAK4E,KAAKmkC,KAAK2D,oBAAkE,IAAtC1sC,KAAK4E,KAAKmkC,KAAK4D,mBAE1D3sC,KAAK4sC,eAKL5sC,KAAK4E,KAAKmkC,KAAK39B,SAMnBpL,KAAK4sC,iBAYjBL,kBAAmB,WAEXvsC,KAAK05B,UAED15B,KAAKqrC,oBAELrrC,KAAKqrC,mBAAmBvlC,KAAK9F,KAAKgsC,gBAAiBhsC,KAAK4E,MAG5D5E,KAAK4E,KAAKukC,OAAO0D,YAEjB7sC,KAAK4E,KAAKgkC,OAAOnsB,QAEjBzc,KAAK4E,KAAKkkC,MAAMrsB,OAAM,GAEtBzc,KAAK4E,KAAKykC,QAAQjlB,QAElBpkB,KAAK4E,KAAKskC,KAAK2D,YAEf7sC,KAAK4E,KAAKjD,MAAM8a,MAAMzc,KAAKmqC,aAEvBnqC,KAAK4E,KAAKkoC,OAEV9sC,KAAK4E,KAAKkoC,MAAMrwB,QAGhBzc,KAAKmqC,cAELnqC,KAAK4E,KAAKE,MAAMglC,WAEZ9pC,KAAKoqC,eAAgB,GAErBpqC,KAAK4E,KAAKikC,MAAMtlC,aAchC4oC,WAAY,SAAUz1B,GAElB,GAAI1W,KAAKiqC,OAAOvzB,GAChB,CACI,GAAIrK,IAAQ,CAOZ,QALIrM,KAAKiqC,OAAOvzB,GAAc,SAAK1W,KAAKiqC,OAAOvzB,GAAa,QAAK1W,KAAKiqC,OAAOvzB,GAAa,QAAK1W,KAAKiqC,OAAOvzB,GAAa,UAEpHrK,GAAQ,GAGRA,KAAU,GAEVqI,QAAQukB,KAAK,gIACN,IAGJ;CAKP,MADAvkB,SAAQukB,KAAK,sDAAwDviB,IAC9D,GAYfq2B,KAAM,SAAUr2B,GAEZ1W,KAAKiqC,OAAOvzB,GAAK9R,KAAO5E,KAAK4E,KAC7B5E,KAAKiqC,OAAOvzB,GAAKkqB,IAAM5gC,KAAK4E,KAAKg8B,IACjC5gC,KAAKiqC,OAAOvzB,GAAKmwB,KAAO7mC,KAAK4E,KAAKiiC,KAClC7mC,KAAKiqC,OAAOvzB,GAAKkyB,OAAS5oC,KAAK4E,KAAKgkC,OACpC5oC,KAAKiqC,OAAOvzB,GAAKmyB,MAAQ7oC,KAAK4E,KAAKikC,MACnC7oC,KAAKiqC,OAAOvzB,GAAKoyB,MAAQ9oC,KAAK4E,KAAKkkC,MACnC9oC,KAAKiqC,OAAOvzB,GAAKqyB,KAAO/oC,KAAK4E,KAAKmkC,KAClC/oC,KAAKiqC,OAAOvzB,GAAKsyB,KAAOhpC,KAAK4E,KAAKokC,KAClChpC,KAAKiqC,OAAOvzB,GAAKuyB,MAAQjpC,KAAK4E,KAAKqkC,MACnCjpC,KAAKiqC,OAAOvzB,GAAK/U,MAAQ3B,KAAK4E,KAAKjD,MACnC3B,KAAKiqC,OAAOvzB,GAAKi1B,MAAQ3rC,KACzBA,KAAKiqC,OAAOvzB,GAAKrU,MAAQrC,KAAK4E,KAAKvC,MACnCrC,KAAKiqC,OAAOvzB,GAAKwyB,KAAOlpC,KAAK4E,KAAKskC,KAClClpC,KAAKiqC,OAAOvzB,GAAKyyB,OAASnpC,KAAK4E,KAAKukC,OACpCnpC,KAAKiqC,OAAOvzB,GAAK5R,MAAQ9E,KAAK4E,KAAKE,MACnC9E,KAAKiqC,OAAOvzB,GAAK0yB,UAAYppC,KAAK4E,KAAKwkC,UACvCppC,KAAKiqC,OAAOvzB,GAAK4yB,IAAMtpC,KAAK4E,KAAK0kC,IACjCtpC,KAAKiqC,OAAOvzB,GAAK2yB,QAAUrpC,KAAK4E,KAAKykC,QACrCrpC,KAAKiqC,OAAOvzB,GAAKA,IAAMA,GAW3Bs2B,OAAQ,SAAUt2B,GAEV1W,KAAKiqC,OAAOvzB,KAEZ1W,KAAKiqC,OAAOvzB,GAAK9R,KAAO,KACxB5E,KAAKiqC,OAAOvzB,GAAKkqB,IAAM,KACvB5gC,KAAKiqC,OAAOvzB,GAAKmwB,KAAO,KACxB7mC,KAAKiqC,OAAOvzB,GAAKkyB,OAAS,KAC1B5oC,KAAKiqC,OAAOvzB,GAAKmyB,MAAQ,KACzB7oC,KAAKiqC,OAAOvzB,GAAKoyB,MAAQ,KACzB9oC,KAAKiqC,OAAOvzB,GAAKqyB,KAAO,KACxB/oC,KAAKiqC,OAAOvzB,GAAKsyB,KAAO,KACxBhpC,KAAKiqC,OAAOvzB,GAAKuyB,MAAQ,KACzBjpC,KAAKiqC,OAAOvzB,GAAK/U,MAAQ,KACzB3B,KAAKiqC,OAAOvzB,GAAKi1B,MAAQ,KACzB3rC,KAAKiqC,OAAOvzB,GAAKrU,MAAQ,KACzBrC,KAAKiqC,OAAOvzB,GAAKwyB,KAAO,KACxBlpC,KAAKiqC,OAAOvzB,GAAKyyB,OAAS,KAC1BnpC,KAAKiqC,OAAOvzB,GAAK5R,MAAQ,KACzB9E,KAAKiqC,OAAOvzB,GAAK0yB,UAAY,KAC7BppC,KAAKiqC,OAAOvzB,GAAK4yB,IAAM,KACvBtpC,KAAKiqC,OAAOvzB,GAAK2yB,QAAU,OAYnCmD,gBAAiB,SAAU91B,GAEvB1W,KAAKgsC,gBAAkBhsC,KAAKiqC,OAAOvzB,GAEnC1W,KAAK+sC,KAAKr2B,GAGV1W,KAAKyqC,eAAiBzqC,KAAKiqC,OAAOvzB,GAAW,MAAK1W,KAAKqsC,MAEvDrsC,KAAK0qC,kBAAoB1qC,KAAKiqC,OAAOvzB,GAAc,SAAK,KACxD1W,KAAKirC,qBAAuBjrC,KAAKiqC,OAAOvzB,GAAiB,YAAK,KAC9D1W,KAAKgrC,qBAAuBhrC,KAAKiqC,OAAOvzB,GAAiB,YAAK,KAC9D1W,KAAK2qC,iBAAmB3qC,KAAKiqC,OAAOvzB,GAAa,QAAK,KACtD1W,KAAK4qC,iBAAmB5qC,KAAKiqC,OAAOvzB,GAAa,QAAK,KACtD1W,KAAK+qC,oBAAsB/qC,KAAKiqC,OAAOvzB,GAAgB,WAAK,KAC5D1W,KAAK6qC,iBAAmB7qC,KAAKiqC,OAAOvzB,GAAa,QAAK,KACtD1W,KAAK8qC,iBAAmB9qC,KAAKiqC,OAAOvzB,GAAa,QAAK,KACtD1W,KAAKkrC,iBAAmBlrC,KAAKiqC,OAAOvzB,GAAa,QAAK,KACtD1W,KAAKmrC,kBAAoBnrC,KAAKiqC,OAAOvzB,GAAc,SAAK,KACxD1W,KAAKorC,sBAAwBprC,KAAKiqC,OAAOvzB,GAAkB,aAAK,KAGhE1W,KAAKqrC,mBAAqBrrC,KAAKiqC,OAAOvzB,GAAe,UAAK1W,KAAKqsC,MAG1C,KAAjBrsC,KAAK05B,SAEL15B,KAAK4E,KAAKykC,QAAQ5sB,QAGtBzc,KAAK05B,QAAUhjB,EACf1W,KAAKqqC,UAAW,EAGhBrqC,KAAKyqC,eAAetjC,MAAMnH,KAAKgsC,gBAAiBhsC,KAAKsqC,OAGjD5zB,IAAQ1W,KAAKkqC,gBAEblqC,KAAKsqC,UAGTtqC,KAAK4E,KAAKqoC,YAAa,GAW3BC,gBAAiB,WACb,MAAOltC,MAAKiqC,OAAOjqC,KAAK05B,UAO5BkT,aAAc,WAEN5sC,KAAKqqC,YAAa,GAASrqC,KAAK2qC,kBAEhC3qC,KAAKqqC,UAAW,EAChBrqC,KAAK2qC,iBAAiB7kC,KAAK9F,KAAKgsC,gBAAiBhsC,KAAK4E,OAItD5E,KAAKqqC,UAAW,GASxBmB,MAAO,WAECxrC,KAAKqqC,UAAYrqC,KAAKkrC,kBAEtBlrC,KAAKkrC,iBAAiBplC,KAAK9F,KAAKgsC,gBAAiBhsC,KAAK4E,OAS9D8mC,OAAQ,WAEA1rC,KAAKqqC,UAAYrqC,KAAKmrC,mBAEtBnrC,KAAKmrC,kBAAkBrlC,KAAK9F,KAAKgsC,gBAAiBhsC,KAAK4E,OAS/D0hC,OAAQ,WAEAtmC,KAAKqqC,SAEDrqC,KAAK4qC,kBAEL5qC,KAAK4qC,iBAAiB9kC,KAAK9F,KAAKgsC,gBAAiBhsC,KAAK4E,MAKtD5E,KAAKgrC,sBAELhrC,KAAKgrC,qBAAqBllC,KAAK9F,KAAKgsC,gBAAiBhsC,KAAK4E,OAUtEilC,YAAa,WAEL7pC,KAAKqqC,SAEDrqC,KAAKorC,uBAELprC,KAAKorC,sBAAsBtlC,KAAK9F,KAAKgsC,gBAAiBhsC,KAAK4E,MAK3D5E,KAAKgrC,sBAELhrC,KAAKgrC,qBAAqBllC,KAAK9F,KAAKgsC,gBAAiBhsC,KAAK4E,OAWtE8kC,UAAW,SAAUyD,GAEbntC,KAAKqqC,UAAYrqC,KAAK+qC,qBAEtB/qC,KAAK+qC,oBAAoBjlC,KAAK9F,KAAKgsC,gBAAiBhsC,KAAK4E,KAAMuoC,IASvEplC,OAAQ,SAAUlB,EAAOC,GAEjB9G,KAAK8qC,kBAEL9qC,KAAK8qC,iBAAiBhlC,KAAK9F,KAAKgsC,gBAAiBnlC,EAAOC,IAShEE,OAAQ,WAEAhH,KAAKqqC,SAEDrqC,KAAK6qC,mBAED7qC,KAAK4E,KAAKwoC,aAAetZ,EAAO2B,QAEhCz1B,KAAK4E,KAAKwI,QAAQihB,OAClBruB,KAAK4E,KAAKwI,QAAQW,aAAa,EAAG,EAAG,EAAG,EAAG,EAAG,GAC9C/N,KAAK6qC,iBAAiB/kC,KAAK9F,KAAKgsC,gBAAiBhsC,KAAK4E,MACtD5E,KAAK4E,KAAKwI,QAAQshB,WAIlB1uB,KAAK6qC,iBAAiB/kC,KAAK9F,KAAKgsC,gBAAiBhsC,KAAK4E,OAM1D5E,KAAKirC,sBAELjrC,KAAKirC,qBAAqBnlC,KAAK9F,KAAKgsC,gBAAiBhsC,KAAK4E,OAWtErB,QAAS,WAELvD,KAAKusC,oBAELvsC,KAAKgsC,gBAAkB,KAEvBhsC,KAAKyqC,eAAiB,KACtBzqC,KAAKqrC,mBAAqB,KAE1BrrC,KAAK0qC,kBAAoB,KACzB1qC,KAAKirC,qBAAuB,KAC5BjrC,KAAKgrC,qBAAuB,KAC5BhrC,KAAK2qC,iBAAmB,KACxB3qC,KAAK4qC,iBAAmB,KACxB5qC,KAAK6qC,iBAAmB,KACxB7qC,KAAKkrC,iBAAmB,KACxBlrC,KAAKmrC,kBAAoB,KACzBnrC,KAAKorC,sBAAwB,KAE7BprC,KAAK4E,KAAO,KACZ5E,KAAKiqC,UACLjqC,KAAKkqC,cAAgB,KACrBlqC,KAAK05B,QAAU,KAMvB5F,EAAOiW,aAAa1mC,UAAUC,YAAcwwB,EAAOiW,aAOnDnmC,OAAOC,eAAeiwB,EAAOiW,aAAa1mC,UAAW,WAEjDS,IAAK,WAED,MAAO9D,MAAKqqC,YAqBpBvW,EAAO0W,OAAS,aAGhB1W,EAAO0W,OAAOnnC,WAMVgqC,UAAW,KAMXC,YAAa,KAUbC,UAAU,EAMVC,kBAAkB,EAUlBC,QAAQ,EAMRC,gBAAgB,EAQhBC,iBAAkB,SAAUC,EAAUC,GAElC,GAAwB,kBAAbD,GAEP,KAAM,IAAI/kC,OAAM,kFAAkF6yB,QAAQ,OAAQmS,KAc1HC,kBAAmB,SAAUF,EAAUG,EAAQC,EAAiBC,EAAU5V,GAEtE,GACI6V,GADAC,EAAYnuC,KAAKouC,iBAAiBR,EAAUI,EAGhD,IAAkB,KAAdG,GAIA,GAFAD,EAAUluC,KAAKqtC,UAAUc,GAErBD,EAAQH,WAAaA,EAErB,KAAM,IAAIllC,OAAM,kBAAoBklC,EAAS,GAAK,QAAU,eAAkBA,EAAc,OAAL,IAAe,qEAK1GG,GAAU,GAAIpa,GAAOua,cAAcruC,KAAM4tC,EAAUG,EAAQC,EAAiBC,EAAU5V,GACtFr4B,KAAKsuC,YAAYJ,EAQrB,OALIluC,MAAKutC,UAAYvtC,KAAKstC,aAEtBY,EAAQK,QAAQvuC,KAAKstC,aAGlBY,GASXI,YAAa,SAAUJ,GAEdluC,KAAKqtC,YAENrtC,KAAKqtC,aAIT,IAAI17B,GAAI3R,KAAKqtC,UAAU3pC,MAEvB,GACIiO,WAEG3R,KAAKqtC,UAAU17B,IAAMu8B,EAAQM,WAAaxuC,KAAKqtC,UAAU17B,GAAG68B,UAEnExuC,MAAKqtC,UAAUzkC,OAAO+I,EAAI,EAAG,EAAGu8B,IAWpCE,iBAAkB,SAAUR,EAAUxgC,GAElC,IAAKpN,KAAKqtC,UAEN,MAAO,EAGK5jC,UAAZ2D,IAAyBA,EAAU,KAKvC,KAHA,GACIqhC,GADA98B,EAAI3R,KAAKqtC,UAAU3pC,OAGhBiO,KAIH,GAFA88B,EAAMzuC,KAAKqtC,UAAU17B,GAEjB88B,EAAIC,YAAcd,GAAYa,EAAIrhC,UAAYA,EAE9C,MAAOuE,EAIf,OAAO,IAYXg9B,IAAK,SAAUf,EAAUxgC,GAErB,MAAoD,KAA7CpN,KAAKouC,iBAAiBR,EAAUxgC,IA4B3CwzB,IAAK,SAAUgN,EAAUI,EAAiBC,GAEtCjuC,KAAK2tC,iBAAiBC,EAAU,MAEhC,IAAIvV,KAEJ,IAAIE,UAAU70B,OAAS,EAEnB,IAAK,GAAID,GAAI,EAAGA,EAAI80B,UAAU70B,OAAQD,IAElC40B,EAAK9zB,KAAKg0B,UAAU90B,GAI5B,OAAOzD,MAAK8tC,kBAAkBF,GAAU,EAAOI,EAAiBC,EAAU5V,IAiB9EuW,QAAS,SAAUhB,EAAUI,EAAiBC,GAE1CjuC,KAAK2tC,iBAAiBC,EAAU,UAEhC,IAAIvV,KAEJ,IAAIE,UAAU70B,OAAS,EAEnB,IAAK,GAAID,GAAI,EAAGA,EAAI80B,UAAU70B,OAAQD,IAElC40B,EAAK9zB,KAAKg0B,UAAU90B,GAI5B,OAAOzD,MAAK8tC,kBAAkBF,GAAU,EAAMI,EAAiBC,EAAU5V,IAY7E0T,OAAQ,SAAU6B,EAAUxgC,GAExBpN,KAAK2tC,iBAAiBC,EAAU,SAEhC,IAAInqC,GAAIzD,KAAKouC,iBAAiBR,EAAUxgC,EAQxC,OANU,KAAN3J,IAEAzD,KAAKqtC,UAAU5pC,GAAGorC,WAClB7uC,KAAKqtC,UAAUzkC,OAAOnF,EAAG,IAGtBmqC,GAUXf,UAAW,SAAUz/B,GAIjB,GAFgB3D,SAAZ2D,IAAyBA,EAAU,MAElCpN,KAAKqtC,UAAV,CAOA,IAFA,GAAI17B,GAAI3R,KAAKqtC,UAAU3pC,OAEhBiO,KAECvE,EAEIpN,KAAKqtC,UAAU17B,GAAGvE,UAAYA,IAE9BpN,KAAKqtC,UAAU17B,GAAGk9B,WAClB7uC,KAAKqtC,UAAUzkC,OAAO+I,EAAG,IAK7B3R,KAAKqtC,UAAU17B,GAAGk9B,UAIrBzhC,KAEDpN,KAAKqtC,UAAU3pC,OAAS,KAWhCorC,gBAAiB,WAEb,MAAO9uC,MAAKqtC,UAAYrtC,KAAKqtC,UAAU3pC,OAAS,GAYpDqrC,KAAM,WAEF/uC,KAAKwtC,kBAAmB,GAY5Bf,SAAU,WAEN,GAAKzsC,KAAKytC,QAAWztC,KAAKqtC,UAA1B,CAKA,GAEI2B,GAFAC,EAAYxuC,MAAM4C,UAAU0Z,MAAMjX,KAAKyyB,WACvC5mB,EAAI3R,KAAKqtC,UAAU3pC,MAQvB,IALI1D,KAAKutC,WAELvtC,KAAKstC,YAAc2B,GAGlBt9B,EAAL,CAMAq9B,EAAWhvC,KAAKqtC,UAAUtwB,QAC1B/c,KAAKwtC,kBAAmB,CAIxB,GACI77B,WAEGq9B,EAASr9B,IAAM3R,KAAKwtC,kBAAoBwB,EAASr9B,GAAG48B,QAAQU,MAAe,MAStFC,OAAQ,WAEAlvC,KAAKstC,cAELttC,KAAKstC,YAAc,OAa3B6B,QAAS,WAELnvC,KAAK6sC,YAEL7sC,KAAKqtC,UAAY,KACbrtC,KAAKstC,cAELttC,KAAKstC,YAAc,OAW3Bp9B,SAAU,WAEN,MAAO,yBAA0BlQ,KAAKytC,OAAQ,iBAAkBztC,KAAK8uC,kBAAmB,MAehGlrC,OAAOC,eAAeiwB,EAAO0W,OAAOnnC,UAAW,iBAE3CS,IAAK,WACD,GAAIsrC,GAAQpvC,IACZ,OAAOA,MAAK0tC,iBAAmB1tC,KAAK0tC,eAAiB,WACjD,MAAO0B,GAAM3C,SAAStlC,MAAMioC,EAAO7W,gBAM/CzE,EAAO0W,OAAOnnC,UAAUC,YAAcwwB,EAAO0W,OAuB7C1W,EAAOua,cAAgB,SAAUgB,EAAQzB,EAAUG,EAAQC,EAAiBC,EAAU5V,GAMlFr4B,KAAK0uC,UAAYd,EAEbG,IAEA/tC,KAAKsvC,SAAU,GAGI,MAAnBtB,IAEAhuC,KAAKoN,QAAU4gC,GAOnBhuC,KAAKuvC,QAAUF,EAEXpB,IAEAjuC,KAAKwuC,UAAYP,GAGjB5V,GAAQA,EAAK30B,SAEb1D,KAAKsqC,MAAQjS,IAKrBvE,EAAOua,cAAchrC,WAKjB+J,QAAS,KAMTkiC,SAAS,EAMTd,UAAW,EAMXlE,MAAO,KAKPkF,UAAW,EAOX/B,QAAQ,EAORgC,OAAQ,KASRlB,QAAS,SAASU,GAEd,GAAIS,GAAeD,CAqBnB,OAnBIzvC,MAAKytC,QAAYztC,KAAK0uC,YAEtBe,EAASzvC,KAAKyvC,OAASzvC,KAAKyvC,OAAO5wB,OAAOowB,GAAaA,EAEnDjvC,KAAKsqC,QAELmF,EAASA,EAAO5wB,OAAO7e,KAAKsqC,QAGhCoF,EAAgB1vC,KAAK0uC,UAAUvnC,MAAMnH,KAAKoN,QAASqiC,GAEnDzvC,KAAKwvC,YAEDxvC,KAAKsvC,SAELtvC,KAAK2vC,UAIND,GAUXC,OAAQ,WACJ,MAAO3vC,MAAK4vC,UAAY5vC,KAAKuvC,QAAQxD,OAAO/rC,KAAK0uC,UAAW1uC,KAAKoN,SAAW,MAOhFwiC,QAAS,WACL,QAAU5vC,KAAKuvC,WAAavvC,KAAK0uC,WAOrCX,OAAQ,WACJ,MAAO/tC,MAAKsvC,SAOhBO,YAAa,WACT,MAAO7vC,MAAK0uC,WAOhBoB,UAAW,WACP,MAAO9vC,MAAKuvC,SAQhBV,SAAU,iBACC7uC,MAAKuvC,cACLvvC,MAAK0uC,gBACL1uC,MAAKoN,SAOhB8C,SAAU,WACN,MAAO,gCAAkClQ,KAAKsvC,QAAS,aAActvC,KAAK4vC,UAAW,YAAc5vC,KAAKytC,OAAS,MAKzH3Z,EAAOua,cAAchrC,UAAUC,YAAcwwB,EAAOua,cAiBpDva,EAAOic,OAAS,SAAUnrC,EAAM+R,EAAU5B,GAKtC/U,KAAK4E,KAAOA,EAMZ5E,KAAK+W,KAAO+c,EAAOkD,aAQnBh3B,KAAKoE,QAAUpE,MAMfA,KAAKspB,WAMLtpB,KAAK4V,OAAQ,EAMb5V,KAAKosB,QAAU,EAKfpsB,KAAKgwC,UAAY,GAAIlc,GAAOpyB,KAM5B,IAAIwD,GAAI,GAAI+qC,KAoBZ,IAfAjwC,KAAK2W,UAEDtV,YAAc0V,KAAM,KAAM9S,OAASyB,EAAG,IAAKC,EAAG,MAC9CujC,MAAQnyB,KAAM,KAAM9S,MAAO,GAC3BisC,OAASn5B,KAAM,KAAM9S,OAASyB,EAAG,EAAKC,EAAG,IACzCwqC,MAAQp5B,KAAM,MAAO9S,OAASiB,EAAEkrC,cAAgBlrC,EAAEmrC,WAAanrC,EAAEorC,UAAyB,GAAdprC,EAAEqrC,WAAiB,GAAsB,GAAjBrrC,EAAEsrC,aAAoBtrC,EAAEurC,eAC5HC,YAAc35B,KAAM,KAAM9S,MAAO,OACjC0sC,WAAa55B,KAAM,YAAa9S,MAAO,KAAM4T,aAAeS,QAAQ,IACpEs4B,WAAa75B,KAAM,YAAa9S,MAAO,KAAM4T,aAAeS,QAAQ,IACpEu4B,WAAa95B,KAAM,YAAa9S,MAAO,KAAM4T,aAAeS,QAAQ,IACpEw4B,WAAa/5B,KAAM,YAAa9S,MAAO,KAAM4T,aAAeS,QAAQ,KAKpE3B,EAEA,IAAK,GAAID,KAAOC,GAEZ3W,KAAK2W,SAASD,GAAOC,EAASD,EAOtC1W,MAAK+U,YAAcA,GAAe,IAItC+e,EAAOic,OAAO1sC,WAMVyS,KAAM,aAUNi7B,cAAe,SAAUlqC,EAAOC,GAE5B9G,KAAK2W,SAAStV,WAAW4C,MAAMyB,EAAImB,EACnC7G,KAAK2W,SAAStV,WAAW4C,MAAM0B,EAAImB,GASvCw/B,OAAQ,SAAU0K,GAEd,GAAuB,mBAAZA,GACX,CACI,GAAItrC,GAAIsrC,EAAQtrC,EAAI1F,KAAK4E,KAAKiC,MAC1BlB,EAAI,EAAIqrC,EAAQrrC,EAAI3F,KAAK4E,KAAKkC,QAE9BpB,IAAM1F,KAAKgwC,UAAUtqC,GAAKC,IAAM3F,KAAKgwC,UAAUrqC,KAE/C3F,KAAK2W,SAASu5B,MAAMjsC,MAAMyB,EAAIA,EAAEurC,QAAQ,GACxCjxC,KAAK2W,SAASu5B,MAAMjsC,MAAM0B,EAAIA,EAAEsrC,QAAQ,GACxCjxC,KAAKgwC,UAAUhsC,IAAI0B,EAAGC,IAI9B3F,KAAK2W,SAASuyB,KAAKjlC,MAAQjE,KAAK4E,KAAKskC,KAAKgI,uBAQ9C3tC,QAAS,WAELvD,KAAK4E,KAAO,OAMpBkvB,EAAOic,OAAO1sC,UAAUC,YAAcwwB,EAAOic,OAM7CnsC,OAAOC,eAAeiwB,EAAOic,OAAO1sC,UAAW,SAE3CS,IAAK,WACD,MAAO9D,MAAK2W,SAAStV,WAAW4C,MAAMyB,GAG1C1B,IAAK,SAASC,GACVjE,KAAK2W,SAAStV,WAAW4C,MAAMyB,EAAIzB,KAS3CL,OAAOC,eAAeiwB,EAAOic,OAAO1sC,UAAW,UAE3CS,IAAK,WACD,MAAO9D,MAAK2W,SAAStV,WAAW4C,MAAM0B,GAG1C3B,IAAK,SAASC,GACVjE,KAAK2W,SAAStV,WAAW4C,MAAM0B,EAAI1B,KAmB3C6vB,EAAOqd,OAAS,SAAUvsC,EAAMxC,GAEbqH,SAAXrH,IAAwBA,EAAS,MAKrCpC,KAAK4E,KAAOA,EAKZ5E,KAAKoC,OAASA,EAMdpC,KAAKytC,QAAS,EAMdztC,KAAKiC,SAAU,EAMfjC,KAAKoxC,cAAe,EAMpBpxC,KAAKqxC,WAAY,EAMjBrxC,KAAKsxC,eAAgB,EAMrBtxC,KAAKuxC,WAAY,EAMjBvxC,KAAKwxC,eAAgB,GAIzB1d,EAAOqd,OAAO9tC,WAOViD,UAAW,aAQXggC,OAAQ,aAQRt/B,OAAQ,aAQRyqC,WAAY,aAOZluC,QAAS,WAELvD,KAAK4E,KAAO,KACZ5E,KAAKoC,OAAS,KACdpC,KAAKytC,QAAS,EACdztC,KAAKiC,SAAU,IAMvB6xB,EAAOqd,OAAO9tC,UAAUC,YAAcwwB,EAAOqd,OAiB7Crd,EAAO4d,cAAgB,SAAS9sC,GAK5B5E,KAAK4E,KAAOA,EAKZ5E,KAAK2xC,WAML3xC,KAAK4xC,KAAO,EAMZ5xC,KAAK6xC,GAAK,GAId/d,EAAO4d,cAAcruC,WAWjBu9B,IAAK,SAAUkR,GAEX,GAAIzZ,GAAO53B,MAAM4C,UAAUuF,OAAO9C,KAAKyyB,UAAW,GAC9CjnB,GAAS,CA6Cb,OA1CsB,kBAAXwgC,GAEPA,EAAS,GAAIA,GAAO9xC,KAAK4E,KAAM5E,OAI/B8xC,EAAOltC,KAAO5E,KAAK4E,KACnBktC,EAAO1vC,OAASpC,MAIe,kBAAxB8xC,GAAkB,YAEzBA,EAAOV,cAAe,EACtB9/B,GAAS,GAGmB,kBAArBwgC,GAAe,SAEtBA,EAAOT,WAAY,EACnB//B,GAAS,GAGuB,kBAAzBwgC,GAAmB,aAE1BA,EAAOR,eAAgB,EACvBhgC,GAAS,GAGmB,kBAArBwgC,GAAe,SAEtBA,EAAOP,WAAY,EACnBjgC,GAAS,GAGuB,kBAAzBwgC,GAAmB,aAE1BA,EAAON,eAAgB,EACvBlgC,GAAS,GAITA,IAEIwgC,EAAOV,cAAgBU,EAAOT,WAAaS,EAAOR,iBAElDQ,EAAOrE,QAAS,IAGhBqE,EAAOP,WAAaO,EAAON,iBAE3BM,EAAO7vC,SAAU,GAGrBjC,KAAK4xC,KAAO5xC,KAAK2xC,QAAQptC,KAAKutC,GAGA,kBAAnBA,GAAa,MAEpBA,EAAOh8B,KAAK3O,MAAM2qC,EAAQzZ,GAGvByZ,GAIA,MAUf/F,OAAQ,SAAU+F,GAId,IAFA9xC,KAAK6xC,GAAK7xC,KAAK4xC,KAER5xC,KAAK6xC,MAER,GAAI7xC,KAAK2xC,QAAQ3xC,KAAK6xC,MAAQC,EAK1B,MAHAA,GAAOvuC,UACPvD,KAAK2xC,QAAQ/oC,OAAO5I,KAAK6xC,GAAI,OAC7B7xC,MAAK4xC,QAYjB/E,UAAW,WAIP,IAFA7sC,KAAK6xC,GAAK7xC,KAAK4xC,KAER5xC,KAAK6xC,MAER7xC,KAAK2xC,QAAQ3xC,KAAK6xC,IAAItuC,SAG1BvD,MAAK2xC,QAAQjuC,OAAS,EACtB1D,KAAK4xC,KAAO,GAUhBtrC,UAAW,WAIP,IAFAtG,KAAK6xC,GAAK7xC,KAAK4xC,KAER5xC,KAAK6xC,MAEJ7xC,KAAK2xC,QAAQ3xC,KAAK6xC,IAAIpE,QAAUztC,KAAK2xC,QAAQ3xC,KAAK6xC,IAAIT,cAEtDpxC,KAAK2xC,QAAQ3xC,KAAK6xC,IAAIvrC,aAYlCggC,OAAQ,WAIJ,IAFAtmC,KAAK6xC,GAAK7xC,KAAK4xC,KAER5xC,KAAK6xC,MAEJ7xC,KAAK2xC,QAAQ3xC,KAAK6xC,IAAIpE,QAAUztC,KAAK2xC,QAAQ3xC,KAAK6xC,IAAIR,WAEtDrxC,KAAK2xC,QAAQ3xC,KAAK6xC,IAAIvL,UAalCyL,WAAY,WAIR,IAFA/xC,KAAK6xC,GAAK7xC,KAAK4xC,KAER5xC,KAAK6xC,MAEJ7xC,KAAK2xC,QAAQ3xC,KAAK6xC,IAAIpE,QAAUztC,KAAK2xC,QAAQ3xC,KAAK6xC,IAAIP,eAEtDtxC,KAAK2xC,QAAQ3xC,KAAK6xC,IAAIE,cAYlC/qC,OAAQ,WAIJ,IAFAhH,KAAK6xC,GAAK7xC,KAAK4xC,KAER5xC,KAAK6xC,MAEJ7xC,KAAK2xC,QAAQ3xC,KAAK6xC,IAAI5vC,SAAWjC,KAAK2xC,QAAQ3xC,KAAK6xC,IAAIN,WAEvDvxC,KAAK2xC,QAAQ3xC,KAAK6xC,IAAI7qC,UAYlCyqC,WAAY,WAIR,IAFAzxC,KAAK6xC,GAAK7xC,KAAK4xC,KAER5xC,KAAK6xC,MAEJ7xC,KAAK2xC,QAAQ3xC,KAAK6xC,IAAI5vC,SAAWjC,KAAK2xC,QAAQ3xC,KAAK6xC,IAAIL,eAEvDxxC,KAAK2xC,QAAQ3xC,KAAK6xC,IAAIJ,cAWlCluC,QAAS,WAELvD,KAAK6sC,YAEL7sC,KAAK4E,KAAO,OAMpBkvB,EAAO4d,cAAcruC,UAAUC,YAAcwwB,EAAO4d,cAiBpD5d,EAAOlkB,MAAQ,SAAUhL,GAKrB5E,KAAK4E,KAAOA,EAEZ9E,KAAK8P,MAAM9J,KAAK9F,KAAM,GAMtBA,KAAKm7B,KAAO,cAMZn7B,KAAKgyC,yBAA0B,EAM/BhyC,KAAKiyC,QAAS,EAKdjyC,KAAKkyC,qBAAuB,EAM5BlyC,KAAKmyC,WAAa,SAMlBnyC,KAAKoyC,UAAY,KAMjBpyC,KAAKqyC,iBAAmB,EAEpBztC,EAAK0tC,QAELtyC,KAAKuyC,YAAY3tC,EAAK0tC,SAK9Bxe,EAAOlkB,MAAMvM,UAAYO,OAAOwE,OAAOtI,KAAK8P,MAAMvM,WAClDywB,EAAOlkB,MAAMvM,UAAUC,YAAcwwB,EAAOlkB,MAS5CkkB,EAAOlkB,MAAMvM,UAAUkvC,YAAc,SAAUD,GAEvCA,EAAgC,0BAEhCtyC,KAAKgyC,wBAA0BM,EAAgC,yBAG/DA,EAAwB,kBAExBtyC,KAAK6P,gBAAkByiC,EAAwB,kBAUvDxe,EAAOlkB,MAAMvM,UAAUioC,KAAO,WAE1BxX,EAAO0e,IAAIC,UAAUzyC,KAAK4E,KAAKmM,OAAQ/Q,KAAK6a,QAE5CiZ,EAAO4e,OAAOC,cAAc3yC,KAAK4E,KAAKmM,OAAQ,QAC9C+iB,EAAO4e,OAAOE,eAAe5yC,KAAK4E,KAAKmM,OAAQ,QAE/C/Q,KAAK6yC,mBAUT/e,EAAOlkB,MAAMvM,UAAUiD,UAAY,WAE/BtG,KAAKkyC,qBAAuB,CAG5B,KAAK,GAAIzuC,GAAI,EAAGA,EAAIzD,KAAKwD,SAASE,OAAQD,IAEtCzD,KAAKwD,SAASC,GAAG6C,aAUzBwtB,EAAOlkB,MAAMvM,UAAUijC,OAAS,WAI5B,IAFA,GAAI7iC,GAAIzD,KAAKwD,SAASE,OAEfD,KAEHzD,KAAKwD,SAASC,GAAG6iC,UAazBxS,EAAOlkB,MAAMvM,UAAU0uC,WAAa,WAEhC,GAAI/xC,KAAK4E,KAAKE,MAAM8jC,OAAOnkC,OAC3B,CACIzE,KAAK4E,KAAKE,MAAM8jC,OAAOnkC,OAAOstC,aAE9B/xC,KAAK4E,KAAKE,MAAM8jC,OAAOtC,QAIvB,KAFA,GAAI7iC,GAAIzD,KAAKwD,SAASE,OAEfD,KAECzD,KAAKwD,SAASC,KAAOzD,KAAK4E,KAAKE,MAAM8jC,OAAOnkC,QAE5CzE,KAAKwD,SAASC,GAAGsuC,iBAK7B,CACI/xC,KAAK4E,KAAKE,MAAM8jC,OAAOtC,QAIvB,KAFA,GAAI7iC,GAAIzD,KAAKwD,SAASE,OAEfD,KAEHzD,KAAKwD,SAASC,GAAGsuC,eAY7Bje,EAAOlkB,MAAMvM,UAAUsB,gBAAkB,WAErC3E,KAAKsC,WAAa,CAElB,KAAK,GAAImB,GAAI,EAAGA,EAAIzD,KAAKwD,SAASE,OAAQD,IAEtCzD,KAAKwD,SAASC,GAAGkB,mBAWzBmvB,EAAOlkB,MAAMvM,UAAUwvC,gBAAkB,WAIjC7yC,KAAKmyC,WAFqB1oC,SAA1B+G,SAASsiC,aAES,yBAEUrpC,SAAvB+G,SAASuiC,UAEI,sBAEStpC,SAAtB+G,SAASwiC,SAEI,qBAEOvpC,SAApB+G,SAASyiC,OAEI,mBAIA,IAGtB,IAAI7D,GAAQpvC,IAEZA,MAAKoyC,UAAY,SAAUc,GACvB,MAAO9D,GAAM+D,iBAAiBD,IAI9BlzC,KAAKmyC,YAEL3hC,SAAS4iC,iBAAiBpzC,KAAKmyC,WAAYnyC,KAAKoyC,WAAW,GAG/D39B,OAAO4+B,OAASrzC,KAAKoyC,UACrB39B,OAAO6+B,QAAUtzC,KAAKoyC,UAEtB39B,OAAO8+B,WAAavzC,KAAKoyC,UACzB39B,OAAO++B,WAAaxzC,KAAKoyC,UAErBpyC,KAAK4E,KAAK6uC,OAAOC,cAEjBC,SAASC,IAAIC,YAAYT,iBAAiB,WACtCtf,EAAOlkB,MAAMvM,UAAU8vC,iBAAiBrtC,KAAKspC,GAASr4B,KAAM,YAGhE48B,SAASC,IAAIE,YAAYV,iBAAiB,WACtCtf,EAAOlkB,MAAMvM,UAAU8vC,iBAAiBrtC,KAAKspC,GAASr4B,KAAM,eAYxE+c,EAAOlkB,MAAMvM,UAAU8vC,iBAAmB,SAAUD,GAEhD,MAAmB,aAAfA,EAAMn8B,MAAsC,SAAfm8B,EAAMn8B,MAAkC,aAAfm8B,EAAMn8B,MAAsC,UAAfm8B,EAAMn8B,UAEtE,aAAfm8B,EAAMn8B,MAAsC,SAAfm8B,EAAMn8B,KAEnC/W,KAAK4E,KAAKmvC,UAAUb,IAEA,aAAfA,EAAMn8B,MAAsC,UAAfm8B,EAAMn8B,OAExC/W,KAAK4E,KAAKovC,UAAUd,SAMxBlzC,KAAKgyC,0BAKLxhC,SAASyiC,QAAUziC,SAASuiC,WAAaviC,SAASwiC,UAAYxiC,SAASsiC,cAA+B,UAAfI,EAAMn8B,KAE7F/W,KAAK4E,KAAKqvC,WAAWf,GAIrBlzC,KAAK4E,KAAKsvC,YAAYhB,MAe9Bpf,EAAOlkB,MAAMvM,UAAUyM,mBAAqB,SAASD,GAEjD,GAAIS,GAAMwjB,EAAOqgB,MAAMC,aAAavkC,EACpC7P,MAAKqyC,iBAAmBve,EAAOqgB,MAAME,SAAS/jC,EAAI+N,EAAG/N,EAAIgO,EAAGhO,EAAItL,GAEhEhF,KAAK+P,sBAAyBO,EAAI+N,EAAI,IAAK/N,EAAIgO,EAAI,IAAKhO,EAAItL,EAAI,KAChEhF,KAAKoQ,sBAAwB0jB,EAAOqgB,MAAMG,YAAYhkC,EAAI+N,EAAG/N,EAAIgO,EAAGhO,EAAItL,EAAG,IAAK,MASpF8uB,EAAOlkB,MAAMvM,UAAUE,QAAW,WAE1BvD,KAAKmyC,YAEL3hC,SAAS+jC,oBAAoBv0C,KAAKmyC,WAAYnyC,KAAKoyC,WAAW,GAGlE39B,OAAO8+B,WAAa,KACpB9+B,OAAO++B,WAAa,KAEpB/+B,OAAO4+B,OAAS,KAChB5+B,OAAO6+B,QAAU,MAQrB1vC,OAAOC,eAAeiwB,EAAOlkB,MAAMvM,UAAW,mBAE1CS,IAAK,WAED,MAAO9D,MAAKqyC,kBAIhBruC,IAAK,SAAUuW,GAENva,KAAK4E,KAAK1D,aAEXlB,KAAK8P,mBAAmByK,MAapC3W,OAAOC,eAAeiwB,EAAOlkB,MAAMvM,UAAW,YAE1CS,IAAK,WAED,MAAOhE,MAAK2N,WAAW4f,UAAYvtB,KAAK2N,WAAWC,QAIvD1J,IAAK,SAAUC,GAIPnE,KAAK2N,WAAW4f,QAFhBppB,EAE0BnE,KAAK2N,WAAWC,OAIhB5N,KAAK2N,WAAWmX,WAgCtDkP,EAAO0gB,MAAQ,SAAU5vC,EAAMxC,EAAQ+4B,EAAMsZ,EAAYC,EAAYC,GAE9ClrC,SAAfgrC,IAA4BA,GAAa,GAC1BhrC,SAAfirC,IAA4BA,GAAa,GACrBjrC,SAApBkrC,IAAiCA,EAAkB7gB,EAAO8gB,QAAQC,QAOtE70C,KAAK4E,KAAOA,EAEG6E,SAAXrH,IAEAA,EAASwC,EAAKE,OAOlB9E,KAAKm7B,KAAOA,GAAQ,QAOpBn7B,KAAKsZ,EAAI,EAETxZ,KAAKqI,uBAAuBrC,KAAK9F,MAE7By0C,GAEAz0C,KAAK4E,KAAKvC,MAAMkG,SAASvI,MACzBA,KAAKsZ,EAAItZ,KAAK4E,KAAKvC,MAAMmB,SAASE,QAI9BtB,IAEAA,EAAOmG,SAASvI,MAChBA,KAAKsZ,EAAIlX,EAAOoB,SAASE,QASjC1D,KAAK+W,KAAO+c,EAAO0C,MAMnBx2B,KAAK80C,YAAchhB,EAAO0C,MAO1Bx2B,KAAK+0C,OAAQ,EAOb/0C,KAAKiyC,QAAS,EAOdjyC,KAAKg1C,eAAgB,EAYrBh1C,KAAKi1C,gBAAiB,EAWtBj1C,KAAKk1C,UAAYphB,EAAOnsB,OAQxB3H,KAAKm1C,OAAS,KAQdn1C,KAAK00C,WAAaA,EASlB10C,KAAKo1C,iBAAkB,EAQvBp1C,KAAK20C,gBAAkBA,EAkBvB30C,KAAKq1C,qBAAuB,KAM5Br1C,KAAKs1C,UAAY,GAAIxhB,GAAO0W,OAM5BxqC,KAAKu1C,YAAc,EAUnBv1C,KAAKw1C,eAAgB,EAOrBx1C,KAAKy1C,aAAe,GAAI3hB,GAAOpyB,MAa/B1B,KAAK01C,QAOL11C,KAAK21C,cAAgB,KAIzB7hB,EAAO0gB,MAAMnxC,UAAYO,OAAOwE,OAAOtI,KAAKqI,uBAAuB9E,WACnEywB,EAAO0gB,MAAMnxC,UAAUC,YAAcwwB,EAAO0gB,MAO5C1gB,EAAO0gB,MAAMoB,YAAc,EAO3B9hB,EAAO0gB,MAAMqB,aAAe,EAO5B/hB,EAAO0gB,MAAMsB,aAAe,EAO5BhiB,EAAO0gB,MAAMuB,eAAiB,GAO9BjiB,EAAO0gB,MAAMwB,gBAAkB,EAgB/BliB,EAAO0gB,MAAMnxC,UAAUu9B,IAAM,SAAUp4B,EAAOytC,GA8B1C,MA5BexsC,UAAXwsC,IAAwBA,GAAS,GAEjCztC,EAAMpG,SAAWpC,OAEjBA,KAAKuI,SAASC,GAEdA,EAAM8Q,EAAItZ,KAAKwD,SAASE,OAEpB1D,KAAK00C,YAA6B,OAAflsC,EAAM0tC,KAEzBl2C,KAAK4E,KAAKykC,QAAQzlB,OAAOpb,EAAOxI,KAAK20C,iBAEhCnsC,EAAM0tC,MAEXl2C,KAAKm2C,UAAU3tC,IAGdytC,GAAUztC,EAAM4tC,QAEjB5tC,EAAM4tC,OAAOC,wBAAwB7tC,EAAOxI,MAG5B,OAAhBA,KAAKm1C,SAELn1C,KAAKm1C,OAAS3sC,IAIfA,GAYXsrB,EAAO0gB,MAAMnxC,UAAU8yC,UAAY,SAAU3tC,GAEzC,GAAIA,EAAMpG,SAAWpC,KACrB,CACI,GAAI0I,GAAQ1I,KAAK01C,KAAKvsC,QAAQX,EAE9B,IAAc,KAAVE,EAGA,MADA1I,MAAK01C,KAAKnxC,KAAKiE,IACR,EAIf,OAAO,GAYXsrB,EAAO0gB,MAAMnxC,UAAUizC,eAAiB,SAAU9tC,GAE9C,GAAIA,EACJ,CACI,GAAIE,GAAQ1I,KAAK01C,KAAKvsC,QAAQX,EAE9B,IAAc,KAAVE,EAGA,MADA1I,MAAK01C,KAAK9sC,OAAOF,EAAO,IACjB,EAIf,OAAO,GAiBXorB,EAAO0gB,MAAMnxC,UAAUkzC,YAAc,SAAU/yC,EAAUyyC,GAErD,GAAIzyC,YAAoBswB,GAAO0gB,MAE3BhxC,EAASgzC,QAAQx2C,KAAMi2C,OAEtB,IAAIx1C,MAAMyT,QAAQ1Q,GAEnB,IAAK,GAAIC,GAAI,EAAGA,EAAID,EAASE,OAAQD,IAEjCzD,KAAK4gC,IAAIp9B,EAASC,GAAIwyC,EAI9B,OAAOzyC,IAeXswB,EAAO0gB,MAAMnxC,UAAUozC,MAAQ,SAAUjuC,EAAOE,EAAOutC,GA8BnD,MA5BexsC,UAAXwsC,IAAwBA,GAAS,GAEjCztC,EAAMpG,SAAWpC,OAEjBA,KAAKyI,WAAWD,EAAOE,GAEvB1I,KAAK02C,UAED12C,KAAK00C,YAA6B,OAAflsC,EAAM0tC,KAEzBl2C,KAAK4E,KAAKykC,QAAQzlB,OAAOpb,EAAOxI,KAAK20C,iBAEhCnsC,EAAM0tC,MAEXl2C,KAAKm2C,UAAU3tC,IAGdytC,GAAUztC,EAAM4tC,QAEjB5tC,EAAM4tC,OAAOC,wBAAwB7tC,EAAOxI,MAG5B,OAAhBA,KAAKm1C,SAELn1C,KAAKm1C,OAAS3sC,IAIfA,GAWXsrB,EAAO0gB,MAAMnxC,UAAUszC,MAAQ,SAAUjuC,GAErC,MAAY,GAARA,GAAaA,GAAS1I,KAAKwD,SAASE,OAE7B,GAIA1D,KAAKsJ,WAAWZ,IAkB/BorB,EAAO0gB,MAAMnxC,UAAU+E,OAAS,SAAU1C,EAAGC,EAAG+Q,EAAKvK,EAAO8lC,GAEzCxoC,SAAXwoC,IAAwBA,GAAS,EAErC,IAAIzpC,GAAQ,GAAIxI,MAAKk1C,UAAUl1C,KAAK4E,KAAMc,EAAGC,EAAG+Q,EAAKvK,EAyBrD,OAvBA3D,GAAMypC,OAASA,EACfzpC,EAAMvG,QAAUgwC,EAChBzpC,EAAMusC,MAAQ9C,EAEdjyC,KAAKuI,SAASC,GAEdA,EAAM8Q,EAAItZ,KAAKwD,SAASE,OAEpB1D,KAAK00C,YAEL10C,KAAK4E,KAAKykC,QAAQzlB,OAAOpb,EAAOxI,KAAK20C,gBAAiB30C,KAAKo1C,iBAG3D5sC,EAAM4tC,QAEN5tC,EAAM4tC,OAAOC,wBAAwB7tC,EAAOxI,MAG5B,OAAhBA,KAAKm1C,SAELn1C,KAAKm1C,OAAS3sC,GAGXA,GAkBXsrB,EAAO0gB,MAAMnxC,UAAUuzC,eAAiB,SAAUC,EAAUngC,EAAKvK,EAAO8lC,GAErDxoC,SAAXwoC,IAAwBA,GAAS,EAErC,KAAK,GAAIxuC,GAAI,EAAOozC,EAAJpzC,EAAcA,IAE1BzD,KAAKoI,OAAO,EAAG,EAAGsO,EAAKvK,EAAO8lC,IAatCne,EAAO0gB,MAAMnxC,UAAUqzC,QAAU,WAI7B,IAFA,GAAIjzC,GAAIzD,KAAKwD,SAASE,OAEfD,KAEHzD,KAAKwD,SAASC,GAAG6V,EAAI7V,GAc7BqwB,EAAO0gB,MAAMnxC,UAAUyzC,YAAc,SAAUpuC,GAS3C,MAPce,UAAVf,IAAuBA,EAAQ,GAE/BA,EAAQ1I,KAAKwD,SAASE,OAAS,IAE/BgF,EAAQ,GAGR1I,KAAKm1C,QAELn1C,KAAKu1C,YAAc7sC,EACnB1I,KAAKm1C,OAASn1C,KAAKwD,SAASxD,KAAKu1C,aAC1Bv1C,KAAKm1C,QAJhB,QAiBJrhB,EAAO0gB,MAAMnxC,UAAU0zC,KAAO,WAE1B,MAAI/2C,MAAKm1C,QAGDn1C,KAAKu1C,aAAev1C,KAAKwD,SAASE,OAAS,EAE3C1D,KAAKu1C,YAAc,EAInBv1C,KAAKu1C,cAGTv1C,KAAKm1C,OAASn1C,KAAKwD,SAASxD,KAAKu1C,aAE1Bv1C,KAAKm1C,QAdhB,QA2BJrhB,EAAO0gB,MAAMnxC,UAAU2zC,SAAW,WAE9B,MAAIh3C,MAAKm1C,QAGoB,IAArBn1C,KAAKu1C,YAELv1C,KAAKu1C,YAAcv1C,KAAKwD,SAASE,OAAS,EAI1C1D,KAAKu1C,cAGTv1C,KAAKm1C,OAASn1C,KAAKwD,SAASxD,KAAKu1C,aAE1Bv1C,KAAKm1C,QAdhB,QA4BJrhB,EAAO0gB,MAAMnxC,UAAU4zC,KAAO,SAAUC,EAAQnuC,GAE5C/I,KAAK8I,aAAaouC,EAAQnuC,GAC1B/I,KAAK02C,WAWT5iB,EAAO0gB,MAAMnxC,UAAU8zC,WAAa,SAAU3uC,GAQ1C,MANIA,GAAMpG,SAAWpC,MAAQA,KAAKo3C,SAAS5uC,GAASxI,KAAKwD,SAASE,SAE9D1D,KAAK+rC,OAAOvjC,GAAO,GAAO,GAC1BxI,KAAK4gC,IAAIp4B,GAAO,IAGbA,GAWXsrB,EAAO0gB,MAAMnxC,UAAUg0C,WAAa,SAAU7uC,GAQ1C,MANIA,GAAMpG,SAAWpC,MAAQA,KAAKo3C,SAAS5uC,GAAS,IAEhDxI,KAAK+rC,OAAOvjC,GAAO,GAAO,GAC1BxI,KAAKy2C,MAAMjuC,EAAO,GAAG,IAGlBA,GAWXsrB,EAAO0gB,MAAMnxC,UAAUi0C,OAAS,SAAU9uC,GAEtC,GAAIA,EAAMpG,SAAWpC,MAAQA,KAAKo3C,SAAS5uC,GAASxI,KAAKwD,SAASE,OAAS,EAC3E,CACI,GAAIqB,GAAI/E,KAAKo3C,SAAS5uC,GAClBxD,EAAIhF,KAAK22C,MAAM5xC,EAAI,EAEnBC,IAEAhF,KAAKi3C,KAAKzuC,EAAOxD,GAIzB,MAAOwD,IAWXsrB,EAAO0gB,MAAMnxC,UAAUk0C,SAAW,SAAU/uC,GAExC,GAAIA,EAAMpG,SAAWpC,MAAQA,KAAKo3C,SAAS5uC,GAAS,EACpD,CACI,GAAIzD,GAAI/E,KAAKo3C,SAAS5uC,GAClBxD,EAAIhF,KAAK22C,MAAM5xC,EAAI,EAEnBC,IAEAhF,KAAKi3C,KAAKzuC,EAAOxD,GAIzB,MAAOwD,IAYXsrB,EAAO0gB,MAAMnxC,UAAUm0C,GAAK,SAAU9uC,EAAOhD,EAAGC,GAE5C,MAAY,GAAR+C,GAAaA,EAAQ1I,KAAKwD,SAASE,OAE5B,IAIP1D,KAAKsJ,WAAWZ,GAAOhD,EAAIA,OAC3B1F,KAAKsJ,WAAWZ,GAAO/C,EAAIA,KAYnCmuB,EAAO0gB,MAAMnxC,UAAUujB,QAAU,WAE7B5mB,KAAKwD,SAASojB,UACd5mB,KAAK02C,WAWT5iB,EAAO0gB,MAAMnxC,UAAU+zC,SAAW,SAAU5uC,GAExC,MAAOxI,MAAKwD,SAAS2F,QAAQX,IAYjCsrB,EAAO0gB,MAAMnxC,UAAUq4B,QAAU,SAAU+b,EAAUC,GAEjD,GAAIhvC,GAAQ1I,KAAKo3C,SAASK,EAE1B,OAAc,KAAV/uC,GAEIgvC,EAASt1C,SAELs1C,EAASt1C,iBAAkB0xB,GAAO0gB,MAElCkD,EAASt1C,OAAO2pC,OAAO2L,GAIvBA,EAASt1C,OAAOuG,YAAY+uC,IAIpC13C,KAAK+rC,OAAO0L,GAEZz3C,KAAKy2C,MAAMiB,EAAUhvC,GAEd+uC,GAlBX,QAiCJ3jB,EAAO0gB,MAAMnxC,UAAUs0C,YAAc,SAAUnvC,EAAOkO,GAElD,GAAI6a,GAAM7a,EAAIhT,MAEd,OAAY,KAAR6tB,GAAa7a,EAAI,IAAMlO,IAEhB,EAEM,IAAR+oB,GAAa7a,EAAI,IAAMlO,IAASkO,EAAI,IAAMlO,GAAMkO,EAAI,KAElD,EAEM,IAAR6a,GAAa7a,EAAI,IAAMlO,IAASkO,EAAI,IAAMlO,GAAMkO,EAAI,KAAOA,EAAI,IAAMlO,GAAMkO,EAAI,IAAIA,EAAI,KAErF,EAEM,IAAR6a,GAAa7a,EAAI,IAAMlO,IAASkO,EAAI,IAAMlO,GAAMkO,EAAI,KAAOA,EAAI,IAAMlO,GAAMkO,EAAI,IAAIA,EAAI,KAAOA,EAAI,IAAMlO,GAAMkO,EAAI,IAAIA,EAAI,IAAIA,EAAI,KAEhI,GAGJ,GAsBXod,EAAO0gB,MAAMnxC,UAAUs2B,YAAc,SAAUnxB,EAAOkO,EAAKzS,EAAO2zC,EAAWC,GAgBzE,GAdcpuC,SAAVouC,IAAuBA,GAAQ,GAEnCD,EAAYA,GAAa,GAYpB53C,KAAK23C,YAAYnvC,EAAOkO,MAAUmhC,GAASD,EAAY,GAExD,OAAO,CAGX,IAAIrmB,GAAM7a,EAAIhT,MAmCd,OAjCY,KAAR6tB,EAEkB,IAAdqmB,EAAmBpvC,EAAMkO,EAAI,IAAMzS,EACjB,GAAb2zC,EAAkBpvC,EAAMkO,EAAI,KAAOzS,EACtB,GAAb2zC,EAAkBpvC,EAAMkO,EAAI,KAAOzS,EACtB,GAAb2zC,EAAkBpvC,EAAMkO,EAAI,KAAOzS,EACtB,GAAb2zC,IAAkBpvC,EAAMkO,EAAI,KAAOzS,GAE/B,IAARstB,EAEa,IAAdqmB,EAAmBpvC,EAAMkO,EAAI,IAAIA,EAAI,IAAMzS,EACzB,GAAb2zC,EAAkBpvC,EAAMkO,EAAI,IAAIA,EAAI,KAAOzS,EAC9B,GAAb2zC,EAAkBpvC,EAAMkO,EAAI,IAAIA,EAAI,KAAOzS,EAC9B,GAAb2zC,EAAkBpvC,EAAMkO,EAAI,IAAIA,EAAI,KAAOzS,EAC9B,GAAb2zC,IAAkBpvC,EAAMkO,EAAI,IAAIA,EAAI,KAAOzS,GAEvC,IAARstB,EAEa,IAAdqmB,EAAmBpvC,EAAMkO,EAAI,IAAIA,EAAI,IAAIA,EAAI,IAAMzS,EACjC,GAAb2zC,EAAkBpvC,EAAMkO,EAAI,IAAIA,EAAI,IAAIA,EAAI,KAAOzS,EACtC,GAAb2zC,EAAkBpvC,EAAMkO,EAAI,IAAIA,EAAI,IAAIA,EAAI,KAAOzS,EACtC,GAAb2zC,EAAkBpvC,EAAMkO,EAAI,IAAIA,EAAI,IAAIA,EAAI,KAAOzS,EACtC,GAAb2zC,IAAkBpvC,EAAMkO,EAAI,IAAIA,EAAI,IAAIA,EAAI,KAAOzS,GAE/C,IAARstB,IAEa,IAAdqmB,EAAmBpvC,EAAMkO,EAAI,IAAIA,EAAI,IAAIA,EAAI,IAAIA,EAAI,IAAMzS,EACzC,GAAb2zC,EAAkBpvC,EAAMkO,EAAI,IAAIA,EAAI,IAAIA,EAAI,IAAIA,EAAI,KAAOzS,EAC9C,GAAb2zC,EAAkBpvC,EAAMkO,EAAI,IAAIA,EAAI,IAAIA,EAAI,IAAIA,EAAI,KAAOzS,EAC9C,GAAb2zC,EAAkBpvC,EAAMkO,EAAI,IAAIA,EAAI,IAAIA,EAAI,IAAIA,EAAI,KAAOzS,EAC9C,GAAb2zC,IAAkBpvC,EAAMkO,EAAI,IAAIA,EAAI,IAAIA,EAAI,IAAIA,EAAI,KAAOzS,KAGjE,GAcX6vB,EAAO0gB,MAAMnxC,UAAUy0C,cAAgB,SAAUtvC,EAAOkO,EAAKzS,EAAO4zC,GAKhE,MAHcpuC,UAAVouC,IAAuBA,GAAQ,IAG9B/jB,EAAOoF,MAAMC,YAAY3wB,EAAOkO,IAAQmhC,GAElC,EAGP/jB,EAAOoF,MAAMC,YAAY3wB,EAAOkO,KAASzS,GAElC,GAGJ,GAmBX6vB,EAAO0gB,MAAMnxC,UAAUW,IAAM,SAAUwE,EAAOkO,EAAKzS,EAAO8zC,EAAYC,EAAcJ,EAAWC,GAS3F,MAPcpuC,UAAVouC,IAAuBA,GAAQ,GAEnCnhC,EAAMA,EAAI6iB,MAAM,KAEG9vB,SAAfsuC,IAA4BA,GAAa,GACxBtuC,SAAjBuuC,IAA8BA,GAAe,IAE5CD,KAAe,GAAUA,GAAcvvC,EAAMusC,SAAYiD,KAAiB,GAAUA,GAAgBxvC,EAAMvG,SAEpGjC,KAAK25B,YAAYnxB,EAAOkO,EAAKzS,EAAO2zC,EAAWC,GAF1D,QAuBJ/jB,EAAO0gB,MAAMnxC,UAAU40C,OAAS,SAAUvhC,EAAKzS,EAAO8zC,EAAYC,EAAcJ,EAAWC,GAEpEpuC,SAAfsuC,IAA4BA,GAAa,GACxBtuC,SAAjBuuC,IAA8BA,GAAe,GACnCvuC,SAAVouC,IAAuBA,GAAQ,GAEnCnhC,EAAMA,EAAI6iB,MAAM,KAChBqe,EAAYA,GAAa,CAEzB,KAAK,GAAIn0C,GAAI,EAAGA,EAAIzD,KAAKwD,SAASE,OAAQD,MAEhCs0C,GAAeA,GAAc/3C,KAAKwD,SAASC,GAAGsxC,UAAaiD,GAAiBA,GAAgBh4C,KAAKwD,SAASC,GAAGxB,UAE/GjC,KAAK25B,YAAY35B,KAAKwD,SAASC,GAAIiT,EAAKzS,EAAO2zC,EAAWC,IAsBtE/jB,EAAO0gB,MAAMnxC,UAAU60C,eAAiB,SAAUxhC,EAAKzS,EAAO8zC,EAAYC,EAAcJ,EAAWC,GAE5EpuC,SAAfsuC,IAA4BA,GAAa,GACxBtuC,SAAjBuuC,IAA8BA,GAAe,GACnCvuC,SAAVouC,IAAuBA,GAAQ,GAEnCD,EAAYA,GAAa,CAEzB,KAAK,GAAIn0C,GAAI,EAAGA,EAAIzD,KAAKwD,SAASE,OAAQD,MAEhCs0C,GAAeA,GAAc/3C,KAAKwD,SAASC,GAAGsxC,UAAaiD,GAAiBA,GAAgBh4C,KAAKwD,SAASC,GAAGxB,WAE3GjC,KAAKwD,SAASC,YAAcqwB,GAAO0gB,MAEnCx0C,KAAKwD,SAASC,GAAGy0C,eAAexhC,EAAKzS,EAAO8zC,EAAYC,EAAcJ,EAAWC,GAIjF73C,KAAK25B,YAAY35B,KAAKwD,SAASC,GAAIiT,EAAI6iB,MAAM,KAAMt1B,EAAO2zC,EAAWC,KAmBrF/jB,EAAO0gB,MAAMnxC,UAAU80C,SAAW,SAAUzhC,EAAKzS,EAAO8zC,EAAYC,EAAcH,GAE3DpuC,SAAfsuC,IAA4BA,GAAa,GACxBtuC,SAAjBuuC,IAA8BA,GAAe,GACnCvuC,SAAVouC,IAAuBA,GAAQ,EAEnC,KAAK,GAAIp0C,GAAI,EAAGA,EAAIzD,KAAKwD,SAASE,OAAQD,IAEtC,KAAMs0C,GAAeA,GAAc/3C,KAAKwD,SAASC,GAAGsxC,UAAaiD,GAAiBA,GAAgBh4C,KAAKwD,SAASC,GAAGxB,WAE1GjC,KAAK83C,cAAc93C,KAAKwD,SAASC,GAAIiT,EAAKzS,EAAO4zC,GAElD,OAAO,CAKnB,QAAO,GAeX/jB,EAAO0gB,MAAMnxC,UAAU+0C,OAAS,SAAUC,EAAUC,EAAQP,EAAYC,GAEpEh4C,KAAKi4C,OAAOI,EAAUC,EAAQP,EAAYC,EAAc,IAe5DlkB,EAAO0gB,MAAMnxC,UAAUk1C,OAAS,SAAUF,EAAUC,EAAQP,EAAYC,GAEpEh4C,KAAKi4C,OAAOI,EAAUC,EAAQP,EAAYC,EAAc,IAe5DlkB,EAAO0gB,MAAMnxC,UAAUm1C,YAAc,SAAUH,EAAUC,EAAQP,EAAYC,GAEzEh4C,KAAKi4C,OAAOI,EAAUC,EAAQP,EAAYC,EAAc,IAe5DlkB,EAAO0gB,MAAMnxC,UAAUo1C,UAAY,SAAUJ,EAAUC,EAAQP,EAAYC,GAEvEh4C,KAAKi4C,OAAOI,EAAUC,EAAQP,EAAYC,EAAc,IAc5DlkB,EAAO0gB,MAAMnxC,UAAUq1C,cAAgB,SAAUC,EAAUC,GAEvD,GAAIvgB,EAEJ,IAAIE,UAAU70B,OAAS,EACvB,CACI20B,IAEA,KAAK,GAAI50B,GAAI,EAAGA,EAAI80B,UAAU70B,OAAQD,IAElC40B,EAAK9zB,KAAKg0B,UAAU90B,IAI5B,IAAK,GAAIA,GAAI,EAAGA,EAAIzD,KAAKwD,SAASE,OAAQD,IAElCzD,KAAKwD,SAASC,GAAGwuC,SAAW2G,GAAe54C,KAAKwD,SAASC,GAAGk1C,IAE5D34C,KAAKwD,SAASC,GAAGk1C,GAAUxxC,MAAMnH,KAAKwD,SAASC,GAAI40B,IAe/DvE,EAAO0gB,MAAMnxC,UAAUw1C,kBAAoB,SAAUrwC,EAAOmwC,EAAUj1C,GAIlE,GAAc,GAAVA,GAEA,GAAI8E,EAAMmwC,EAAS,IAEf,MAAOnwC,GAAMmwC,EAAS,QAGzB,IAAc,GAAVj1C,GAEL,GAAI8E,EAAMmwC,EAAS,IAAIA,EAAS,IAE5B,MAAOnwC,GAAMmwC,EAAS,IAAIA,EAAS,QAGtC,IAAc,GAAVj1C,GAEL,GAAI8E,EAAMmwC,EAAS,IAAIA,EAAS,IAAIA,EAAS,IAEzC,MAAOnwC,GAAMmwC,EAAS,IAAIA,EAAS,IAAIA,EAAS,QAGnD,IAAc,GAAVj1C,GAEL,GAAI8E,EAAMmwC,EAAS,IAAIA,EAAS,IAAIA,EAAS,IAAIA,EAAS,IAEtD,MAAOnwC,GAAMmwC,EAAS,IAAIA,EAAS,IAAIA,EAAS,IAAIA,EAAS,QAKjE,IAAInwC,EAAMmwC,GAEN,MAAOnwC,GAAMmwC,EAIrB,QAAO,GAeX7kB,EAAO0gB,MAAMnxC,UAAUy1C,QAAU,SAAUC,EAAQ3rC,GAE/C,GAAe3D,SAAXsvC,EAAJ,CAMAA,EAASA,EAAOxf,MAAM,IAEtB,IAAIyf,GAAeD,EAAOr1C,MAE1B,IAAgB+F,SAAZ2D,GAAqC,OAAZA,GAAgC,KAAZA,EAE7CA,EAAU,SAKV,IAAuB,gBAAZA,GACX,CACIA,EAAUA,EAAQmsB,MAAM,IACxB,IAAI0f,GAAgB7rC,EAAQ1J,OAIpC,GAAI20B,EAEJ,IAAIE,UAAU70B,OAAS,EACvB,CACI20B,IAEA,KAAK,GAAI50B,GAAI,EAAGA,EAAI80B,UAAU70B,OAAQD,IAElC40B,EAAK9zB,KAAKg0B,UAAU90B,IAO5B,IAAK,GAHDk1C,GAAW,KACX3M,EAAkB,KAEbvoC,EAAI,EAAGA,EAAIzD,KAAKwD,SAASE,OAAQD,IAEtCk1C,EAAW34C,KAAK64C,kBAAkB74C,KAAKwD,SAASC,GAAIs1C,EAAQC,GAExD5rC,GAAWurC,GAEX3M,EAAkBhsC,KAAK64C,kBAAkB74C,KAAKwD,SAASC,GAAI2J,EAAS6rC,GAEhEN,GAEAA,EAASxxC,MAAM6kC,EAAiB3T,IAG/BsgB,GAELA,EAASxxC,MAAMnH,KAAKwD,SAASC,GAAI40B,KAW7CvE,EAAO0gB,MAAMnxC,UAAUiD,UAAY,WAE/B,GAAItG,KAAKi1C,eAGL,MADAj1C,MAAKuD,WACE,CAGX,KAAKvD,KAAKiyC,SAAWjyC,KAAKoC,OAAO6vC,OAG7B,MADAjyC,MAAKk5C,cAAgB,IACd,CAKX,KAFA,GAAIz1C,GAAIzD,KAAKwD,SAASE,OAEfD,KAEHzD,KAAKwD,SAASC,GAAG6C,WAGrB,QAAO,GASXwtB,EAAO0gB,MAAMnxC,UAAUijC,OAAS,WAI5B,IAFA,GAAI7iC,GAAIzD,KAAKwD,SAASE,OAEfD,KAEHzD,KAAKwD,SAASC,GAAG6iC,UAUzBxS,EAAO0gB,MAAMnxC,UAAU0uC,WAAa,WAG5B/xC,KAAKw1C,gBAELx1C,KAAK0F,EAAI1F,KAAK4E,KAAKgkC,OAAO3nC,KAAKyE,EAAI1F,KAAKy1C,aAAa/vC,EACrD1F,KAAK2F,EAAI3F,KAAK4E,KAAKgkC,OAAO3nC,KAAK0E,EAAI3F,KAAKy1C,aAAa9vC,EAKzD,KAFA,GAAIlC,GAAIzD,KAAKwD,SAASE,OAEfD,KAEHzD,KAAKwD,SAASC,GAAGsuC,cAuBzBje,EAAO0gB,MAAMnxC,UAAU6oB,OAAS,SAAUitB,EAAWC,GAMjD,IAJA,GAAI1wC,GAAQ,GACRhF,EAAS1D,KAAKwD,SAASE,OACvBi8B,OAEKj3B,EAAQhF,GACjB,CACI,GAAI8E,GAAQxI,KAAKwD,SAASkF,KAErB0wC,GAAgBA,GAAe5wC,EAAMypC,SAElCkH,EAAU3wC,EAAOE,EAAO1I,KAAKwD,WAE7Bm8B,EAAQp7B,KAAKiE,GAKzB,MAAO,IAAIsrB,GAAOulB,SAAS1Z,IAqB/B7L,EAAO0gB,MAAMnxC,UAAUu1B,QAAU,SAAU+f,EAAU3M,EAAiBoN,GAIlE,GAFoB3vC,SAAhB2vC,IAA6BA,GAAc,GAE3C7gB,UAAU70B,QAAU,EAEpB,IAAK,GAAID,GAAI,EAAGA,EAAIzD,KAAKwD,SAASE,OAAQD,MAEjC21C,GAAgBA,GAAep5C,KAAKwD,SAASC,GAAGwuC,SAEjD0G,EAAS7yC,KAAKkmC,EAAiBhsC,KAAKwD,SAASC,QAKzD,CAKI,IAAK,GAFD40B,IAAQ,MAEH50B,EAAI,EAAGA,EAAI80B,UAAU70B,OAAQD,IAElC40B,EAAK9zB,KAAKg0B,UAAU90B,GAGxB,KAAK,GAAIA,GAAI,EAAGA,EAAIzD,KAAKwD,SAASE,OAAQD,MAEjC21C,GAAgBA,GAAep5C,KAAKwD,SAASC,GAAGwuC,UAEjD5Z,EAAK,GAAKr4B,KAAKwD,SAASC,GACxBk1C,EAASxxC,MAAM6kC,EAAiB3T,MAiBhDvE,EAAO0gB,MAAMnxC,UAAUi2C,cAAgB,SAAUX,EAAU3M,GAEvD,GAAI3T,EAEJ,IAAIE,UAAU70B,OAAS,EACvB,CACI20B,GAAQ,KAER,KAAK,GAAI50B,GAAI,EAAGA,EAAI80B,UAAU70B,OAAQD,IAElC40B,EAAK9zB,KAAKg0B,UAAU90B,IAI5BzD,KAAKu5C,QAAQ,UAAU,EAAMzlB,EAAO0gB,MAAMqB,aAAc8C,EAAU3M,EAAiB3T,IAcvFvE,EAAO0gB,MAAMnxC,UAAUm2C,aAAe,SAAUb,EAAU3M,GAEtD,GAAI3T,EAEJ,IAAIE,UAAU70B,OAAS,EACvB,CACI20B,GAAQ,KAER,KAAK,GAAI50B,GAAI,EAAGA,EAAI80B,UAAU70B,OAAQD,IAElC40B,EAAK9zB,KAAKg0B,UAAU90B,IAI5BzD,KAAKu5C,QAAQ,SAAS,EAAMzlB,EAAO0gB,MAAMqB,aAAc8C,EAAU3M,EAAiB3T,IActFvE,EAAO0gB,MAAMnxC,UAAUo2C,YAAc,SAAUd,EAAU3M,GAErD,GAAI3T,EAEJ,IAAIE,UAAU70B,OAAS,EACvB,CACI20B,GAAQ,KAER,KAAK,GAAI50B,GAAI,EAAGA,EAAI80B,UAAU70B,OAAQD,IAElC40B,EAAK9zB,KAAKg0B,UAAU90B,IAI5BzD,KAAKu5C,QAAQ,SAAS,EAAOzlB,EAAO0gB,MAAMqB,aAAc8C,EAAU3M,EAAiB3T,IAcvFvE,EAAO0gB,MAAMnxC,UAAUq2C,KAAO,SAAUhjC,EAAKijC,GAErC35C,KAAKwD,SAASE,OAAS,IAMf+F,SAARiN,IAAqBA,EAAM,KACjBjN,SAAVkwC,IAAuBA,EAAQ7lB,EAAO0gB,MAAMuB,gBAEhD/1C,KAAK21C,cAAgBj/B,EAIjB1W,KAAKwD,SAASk2C,KAFdC,IAAU7lB,EAAO0gB,MAAMuB,eAEJ/1C,KAAK45C,qBAAqB1hB,KAAKl4B,MAI/BA,KAAK65C,sBAAsB3hB,KAAKl4B,OAGvDA,KAAK02C,YAcT5iB,EAAO0gB,MAAMnxC,UAAUy2C,WAAa,SAAUC,EAAa3sC,GAEnDpN,KAAKwD,SAASE,OAAS,IAM3B1D,KAAKwD,SAASk2C,KAAKK,EAAY7hB,KAAK9qB,IAEpCpN,KAAK02C,YAYT5iB,EAAO0gB,MAAMnxC,UAAUu2C,qBAAuB,SAAU70C,EAAGC,GAEvD,MAAID,GAAE/E,KAAK21C,eAAiB3wC,EAAEhF,KAAK21C,eAExB,GAEF5wC,EAAE/E,KAAK21C,eAAiB3wC,EAAEhF,KAAK21C,eAE7B,EAIH5wC,EAAEuU,EAAItU,EAAEsU,EAED,GAIA,GAcnBwa,EAAO0gB,MAAMnxC,UAAUw2C,sBAAwB,SAAU90C,EAAGC,GAExD,MAAID,GAAE/E,KAAK21C,eAAiB3wC,EAAEhF,KAAK21C,eAExB,EAEF5wC,EAAE/E,KAAK21C,eAAiB3wC,EAAEhF,KAAK21C,eAE7B,GAIA,GAiCf7hB,EAAO0gB,MAAMnxC,UAAUk2C,QAAU,SAAU7iC,EAAKzS,EAAO+1C,EAAYrB,EAAU3M,EAAiB3T,GAE1F,GAAI2hB,IAAelmB,EAAO0gB,MAAMqB,cAAyC,IAAzB71C,KAAKwD,SAASE,OAE1D,MAAO,EAKX,KAAK,GAFDu2C,GAAQ,EAEHx2C,EAAI,EAAGA,EAAIzD,KAAKwD,SAASE,OAAQD,IAEtC,GAAIzD,KAAKwD,SAASC,GAAGiT,KAASzS,IAE1Bg2C,IAEItB,IAEItgB,GAEAA,EAAK,GAAKr4B,KAAKwD,SAASC,GACxBk1C,EAASxxC,MAAM6kC,EAAiB3T,IAIhCsgB,EAAS7yC,KAAKkmC,EAAiBhsC,KAAKwD,SAASC,KAIjDu2C,IAAelmB,EAAO0gB,MAAMsB,cAE5B,MAAO91C,MAAKwD,SAASC,EAKjC,OAAIu2C,KAAelmB,EAAO0gB,MAAMqB,aAErBoE,EAIJ,MAWXnmB,EAAO0gB,MAAMnxC,UAAU62C,eAAiB,SAAUjI,GAO9C,MALsB,iBAAXA,KAEPA,GAAS,GAGNjyC,KAAKu5C,QAAQ,SAAUtH,EAAQne,EAAO0gB,MAAMsB,eAYvDhiB,EAAO0gB,MAAMnxC,UAAU82C,cAAgB,WAEnC,MAAOn6C,MAAKu5C,QAAQ,SAAS,EAAMzlB,EAAO0gB,MAAMsB,eAYpDhiB,EAAO0gB,MAAMnxC,UAAU+2C,aAAe,WAElC,MAAOp6C,MAAKu5C,QAAQ,SAAS,EAAOzlB,EAAO0gB,MAAMsB,eAYrDhiB,EAAO0gB,MAAMnxC,UAAUg3C,OAAS,WAE5B,MAAIr6C,MAAKwD,SAASE,OAAS,EAEhB1D,KAAKwD,SAASxD,KAAKwD,SAASE,OAAS,GAFhD,QAeJowB,EAAO0gB,MAAMnxC,UAAUi3C,UAAY,WAE/B,MAAIt6C,MAAKwD,SAASE,OAAS,EAEhB1D,KAAKwD,SAAS,GAFzB,QAaJswB,EAAO0gB,MAAMnxC,UAAUk3C,YAAc,WAEjC,MAAOv6C,MAAKu5C,QAAQ,SAAS,EAAMzlB,EAAO0gB,MAAMqB,eAUpD/hB,EAAO0gB,MAAMnxC,UAAUm3C,UAAY,WAE/B,MAAOx6C,MAAKu5C,QAAQ,SAAS,EAAOzlB,EAAO0gB,MAAMqB,eAYrD/hB,EAAO0gB,MAAMnxC,UAAUo3C,UAAY,SAAUjvB,EAAY9nB,GAErD,MAA6B,KAAzB1D,KAAKwD,SAASE,OAEP,MAGX8nB,EAAaA,GAAc,EAC3B9nB,EAASA,GAAU1D,KAAKwD,SAASE,OAE1BowB,EAAO4mB,WAAWC,cAAc36C,KAAKwD,SAAUgoB,EAAY9nB,KAiBtEowB,EAAO0gB,MAAMnxC,UAAU0oC,OAAS,SAAUvjC,EAAOjF,EAAS0yC,GAKtD,GAHgBxsC,SAAZlG,IAAyBA,GAAU,GACxBkG,SAAXwsC,IAAwBA,GAAS,GAER,IAAzBj2C,KAAKwD,SAASE,QAAiD,KAAjC1D,KAAKwD,SAAS2F,QAAQX,GAEpD,OAAO,CAGNytC,KAAUztC,EAAM4tC,QAAW5tC,EAAMoyC,cAElCpyC,EAAM4tC,OAAOyE,4BAA4BryC,EAAOxI,KAGpD,IAAIgK,GAAUhK,KAAK2I,YAAYH,EAgB/B,OAdAxI,MAAKs2C,eAAe9tC,GAEpBxI,KAAK02C,UAED12C,KAAKm1C,SAAW3sC,GAEhBxI,KAAK+2C,OAGLxzC,GAAWyG,GAEXA,EAAQzG,SAAQ,IAGb,GAYXuwB,EAAO0gB,MAAMnxC,UAAUmzC,QAAU,SAAUsE,EAAO7E,GAI9C,GAFexsC,SAAXwsC,IAAwBA,GAAS,GAEjCj2C,KAAKwD,SAASE,OAAS,GAAKo3C,YAAiBhnB,GAAO0gB,MACxD,CACI,EAEIsG,GAAMla,IAAI5gC,KAAKwD,SAAS,GAAIyyC,SAEzBj2C,KAAKwD,SAASE,OAAS,EAE9B1D,MAAK01C,QAEL11C,KAAKm1C,OAAS,KAGlB,MAAO2F,IAWXhnB,EAAO0gB,MAAMnxC,UAAUwpC,UAAY,SAAUtpC,EAAS0yC,GAKlD,GAHgBxsC,SAAZlG,IAAyBA,GAAU,GACxBkG,SAAXwsC,IAAwBA,GAAS,GAER,IAAzBj2C,KAAKwD,SAASE,OAAlB,CAKA,EACA,EACSuyC,GAAUj2C,KAAKwD,SAAS,GAAG4yC,QAE5Bp2C,KAAKwD,SAAS,GAAG4yC,OAAOyE,4BAA4B76C,KAAKwD,SAAS,GAAIxD,KAG1E,IAAIgK,GAAUhK,KAAK2I,YAAY3I,KAAKwD,SAAS,GAE7CxD,MAAKs2C,eAAetsC,GAEhBzG,GAAWyG,GAEXA,EAAQzG,SAAQ,SAGjBvD,KAAKwD,SAASE,OAAS,EAE9B1D,MAAK01C,QAEL11C,KAAKm1C,OAAS,OAalBrhB,EAAO0gB,MAAMnxC,UAAU03C,cAAgB,SAAUvvB,EAAY5hB,EAAUrG,EAAS0yC,GAM5E,GAJiBxsC,SAAbG,IAA0BA,EAAW5J,KAAKwD,SAASE,OAAS,GAChD+F,SAAZlG,IAAyBA,GAAU,GACxBkG,SAAXwsC,IAAwBA,GAAS,GAER,IAAzBj2C,KAAKwD,SAASE,OAAlB,CAKA,GAAI8nB,EAAa5hB,GAAyB,EAAb4hB,GAAkB5hB,EAAW5J,KAAKwD,SAASE,OAEpE,OAAO,CAKX,KAFA,GAAID,GAAImG,EAEDnG,GAAK+nB,GACZ,EACSyqB,GAAUj2C,KAAKwD,SAASC,GAAG2yC,QAE5Bp2C,KAAKwD,SAASC,GAAG2yC,OAAOyE,4BAA4B76C,KAAKwD,SAASC,GAAIzD,KAG1E,IAAIgK,GAAUhK,KAAK2I,YAAY3I,KAAKwD,SAASC,GAE7CzD,MAAKs2C,eAAetsC,GAEhBzG,GAAWyG,GAEXA,EAAQzG,SAAQ,GAGhBvD,KAAKm1C,SAAWn1C,KAAKwD,SAASC,KAE9BzD,KAAKm1C,OAAS,MAGlB1xC,IAGJzD,KAAK02C,YAaT5iB,EAAO0gB,MAAMnxC,UAAUE,QAAU,SAAUy3C,EAAiBC,GAEtC,OAAdj7C,KAAK4E,MAAiB5E,KAAKg1C,gBAEPvrC,SAApBuxC,IAAiCA,GAAkB,GAC1CvxC,SAATwxC,IAAsBA,GAAO,GAEjCj7C,KAAKs1C,UAAU7I,SAASzsC,KAAMg7C,EAAiBC,GAE/Cj7C,KAAK6sC,UAAUmO,GAEfh7C,KAAKm1C,OAAS,KACdn1C,KAAKiI,QAAU,KACfjI,KAAKi1C,gBAAiB,EAEjBgG,IAEGj7C,KAAKoC,QAELpC,KAAKoC,OAAOuG,YAAY3I,MAG5BA,KAAK4E,KAAO,KACZ5E,KAAKiyC,QAAS,KAYtBruC,OAAOC,eAAeiwB,EAAO0gB,MAAMnxC,UAAW,SAE1CS,IAAK,WAED,MAAO9D,MAAKu5C,QAAQ,UAAU,EAAMzlB,EAAO0gB,MAAMqB,iBAazDjyC,OAAOC,eAAeiwB,EAAO0gB,MAAMnxC,UAAW,UAE1CS,IAAK,WAED,MAAO9D,MAAKwD,SAASE,UAiB7BE,OAAOC,eAAeiwB,EAAO0gB,MAAMnxC,UAAW,SAE1CS,IAAK,WACD,MAAOgwB,GAAOnzB,KAAKwgC,SAASnhC,KAAK+B,WAGrCiC,IAAK,SAASC,GACVjE,KAAK+B,SAAW+xB,EAAOnzB,KAAK68B,SAASv5B,MA2E7C6vB,EAAOonB,MAAQ,SAAUt2C,GAErBkvB,EAAO0gB,MAAM1uC,KAAK9F,KAAM4E,EAAM,KAAM,WAAW,GAS/C5E,KAAK0G,OAAS,GAAIotB,GAAO9wB,UAAU,EAAG,EAAG4B,EAAKiC,MAAOjC,EAAKkC,QAK1D9G,KAAK4oC,OAAS,KAMd5oC,KAAKm7C,cAAe,EAKpBn7C,KAAKqI,OAASzD,EAAKiC,MAKnB7G,KAAKsI,QAAU1D,EAAKkC,OAEpB9G,KAAK4E,KAAK+mC,MAAMpB,cAAc3J,IAAI5gC,KAAKo7C,YAAap7C,OAIxD8zB,EAAOonB,MAAM73C,UAAYO,OAAOwE,OAAO0rB,EAAO0gB,MAAMnxC,WACpDywB,EAAOonB,MAAM73C,UAAUC,YAAcwwB,EAAOonB,MAQ5CpnB,EAAOonB,MAAM73C,UAAUioC,KAAO,WAE1BtrC,KAAK4oC,OAAS,GAAI9U,GAAOsR,OAAOplC,KAAK4E,KAAM,EAAG,EAAG,EAAG5E,KAAK4E,KAAKiC,MAAO7G,KAAK4E,KAAKkC,QAE/E9G,KAAK4oC,OAAOrkB,cAAgBvkB,KAE5BA,KAAK4oC,OAAOjnC,MAAQ3B,KAAK2B,MAEzB3B,KAAK4E,KAAKgkC,OAAS5oC,KAAK4oC,OAExB5oC,KAAK4E,KAAKvC,MAAMkG,SAASvI,OAa7B8zB,EAAOonB,MAAM73C,UAAU+3C,YAAc,WAEjCp7C,KAAK0F,EAAI,EACT1F,KAAK2F,EAAI,EAET3F,KAAK4oC,OAAOnsB,SAchBqX,EAAOonB,MAAM73C,UAAUg4C,UAAY,SAAU31C,EAAGC,EAAGkB,EAAOC,GAEtD9G,KAAKm7C,cAAe,EACpBn7C,KAAKqI,OAASxB,EACd7G,KAAKsI,QAAUxB,EAEf9G,KAAK0G,OAAO61B,MAAM72B,EAAGC,EAAGkB,EAAOC,GAE/B9G,KAAK0F,EAAIA,EACT1F,KAAK2F,EAAIA,EAEL3F,KAAK4oC,OAAOliC,QAGZ1G,KAAK4oC,OAAOliC,OAAO61B,MAAM72B,EAAGC,EAAGhF,KAAK2+B,IAAIz4B,EAAO7G,KAAK4E,KAAKiC,OAAQlG,KAAK2+B,IAAIx4B,EAAQ9G,KAAK4E,KAAKkC,SAGhG9G,KAAK4E,KAAKykC,QAAQ5C,oBAWtB3S,EAAOonB,MAAM73C,UAAU0E,OAAS,SAAUlB,EAAOC,GAIzC9G,KAAKm7C,eAEDt0C,EAAQ7G,KAAKqI,SAEbxB,EAAQ7G,KAAKqI,QAGbvB,EAAS9G,KAAKsI,UAEdxB,EAAS9G,KAAKsI,UAItBtI,KAAK0G,OAAOG,MAAQA,EACpB7G,KAAK0G,OAAOI,OAASA,EAErB9G,KAAK4E,KAAKgkC,OAAOnC,mBAEjBzmC,KAAK4E,KAAKykC,QAAQ5C,oBAStB3S,EAAOonB,MAAM73C,UAAUymC,SAAW,WAG9B9pC,KAAKuD,SAAQ,GAAM,IAgBvBuwB,EAAOonB,MAAM73C,UAAU28B,KAAO,SAAUrW,EAAQyC,EAASkvB,EAAWC,EAAYC,GAE5D/xC,SAAZ2iB,IAAyBA,EAAU,GACrB3iB,SAAd6xC,IAA2BA,GAAY,GACxB7xC,SAAf8xC,IAA4BA,GAAa,GAC5B9xC,SAAb+xC,IAA0BA,GAAW,GAEpCF,GAsBD3xB,EAAO3jB,YAEHu1C,IAEK5xB,EAAOjkB,EAAIikB,EAAO1mB,eAAe4D,MAAS7G,KAAK0G,OAAOhB,EAEvDikB,EAAOjkB,EAAI1F,KAAK0G,OAAOk0B,MAElBjR,EAAOjkB,EAAI1F,KAAK0G,OAAOk0B,QAE5BjR,EAAOjkB,EAAI1F,KAAK0G,OAAOm0B,OAI3B2gB,IAEK7xB,EAAOhkB,EAAIgkB,EAAO1mB,eAAe6D,OAAU9G,KAAK0G,OAAO02B,IAExDzT,EAAOhkB,EAAI3F,KAAK0G,OAAO22B,OAElB1T,EAAOhkB,EAAI3F,KAAK0G,OAAO22B,SAE5B1T,EAAOhkB,EAAI3F,KAAK0G,OAAO02B,QA1C3Bme,GAAc5xB,EAAOjkB,EAAI0mB,EAAUpsB,KAAK0G,OAAOhB,EAE/CikB,EAAOjkB,EAAI1F,KAAK0G,OAAOk0B,MAAQxO,EAE1BmvB,GAAc5xB,EAAOjkB,EAAI0mB,EAAUpsB,KAAK0G,OAAOk0B,QAEpDjR,EAAOjkB,EAAI1F,KAAK0G,OAAOm0B,KAAOzO,GAG9BovB,GAAY7xB,EAAOhkB,EAAIymB,EAAUpsB,KAAK0G,OAAO02B,IAE7CzT,EAAOhkB,EAAI3F,KAAK0G,OAAO22B,OAASjR,EAE3BovB,GAAY7xB,EAAOhkB,EAAIymB,EAAUpsB,KAAK0G,OAAO22B,SAElD1T,EAAOhkB,EAAI3F,KAAK0G,OAAO02B,IAAMhR,KAsCzCxoB,OAAOC,eAAeiwB,EAAOonB,MAAM73C,UAAW,SAE1CS,IAAK,WACD,MAAO9D,MAAK0G,OAAOG,OAGvB7C,IAAK,SAAUC,GAEPA,EAAQjE,KAAK4E,KAAKiC,QAElB5C,EAAQjE,KAAK4E,KAAKiC,OAGtB7G,KAAK0G,OAAOG,MAAQ5C,EACpBjE,KAAKqI,OAASpE,EACdjE,KAAKm7C,cAAe,KAU5Bv3C,OAAOC,eAAeiwB,EAAOonB,MAAM73C,UAAW,UAE1CS,IAAK,WACD,MAAO9D,MAAK0G,OAAOI,QAGvB9C,IAAK,SAAUC,GAEPA,EAAQjE,KAAK4E,KAAKkC,SAElB7C,EAAQjE,KAAK4E,KAAKkC,QAGtB9G,KAAK0G,OAAOI,OAAS7C,EACrBjE,KAAKsI,QAAUrE,EACfjE,KAAKm7C,cAAe,KAW5Bv3C,OAAOC,eAAeiwB,EAAOonB,MAAM73C,UAAW,WAE1CS,IAAK,WACD,MAAO9D,MAAK0G,OAAOg3B,aAU3B95B,OAAOC,eAAeiwB,EAAOonB,MAAM73C,UAAW,WAE1CS,IAAK,WACD,MAAO9D,MAAK0G,OAAOk3B,cAU3Bh6B,OAAOC,eAAeiwB,EAAOonB,MAAM73C,UAAW,WAE1CS,IAAK,WAED,MAAI9D,MAAK0G,OAAOhB,EAAI,EAET1F,KAAK4E,KAAK0kC,IAAImS,QAAQz7C,KAAK0G,OAAOhB,EAAI1F,KAAK0G,OAAOG,MAAQlG,KAAKshB,IAAIjiB,KAAK0G,OAAOhB,IAI/E1F,KAAK4E,KAAK0kC,IAAImS,QAAQz7C,KAAK0G,OAAOhB,EAAG1F,KAAK0G,OAAOG;IAYpEjD,OAAOC,eAAeiwB,EAAOonB,MAAM73C,UAAW,WAE1CS,IAAK,WAED,MAAI9D,MAAK0G,OAAOf,EAAI,EAET3F,KAAK4E,KAAK0kC,IAAImS,QAAQz7C,KAAK0G,OAAOf,EAAI3F,KAAK0G,OAAOI,OAASnG,KAAKshB,IAAIjiB,KAAK0G,OAAOf,IAIhF3F,KAAK4E,KAAK0kC,IAAImS,QAAQz7C,KAAK0G,OAAOf,EAAG3F,KAAK0G,OAAOI,WA2BpEgtB,EAAO4nB,SAAW,SAAUC,EAAS90C,EAAOC,GAKxC9G,KAAK4E,KAAO+2C,EAAQ/2C,KAKpB5E,KAAK27C,QAAUA,EAGf37C,KAAK6G,MAAQA,EACb7G,KAAK8G,OAASA,EAEd9G,KAAK47C,aAAe,GAAI9nB,GAAO9wB,UAAU,EAAG,EAAG6D,EAAOC,GACtD9G,KAAK67C,YAAc,GAAI/nB,GAAO9wB,UAAU,EAAG,EAAG6D,EAAOC,GACrD9G,KAAK87C,WAAa,GAAIhoB,GAAO9wB,UAAU,EAAG,EAAG6D,EAAOC,GACpD9G,KAAK+7C,WAAa,GAAIjoB,GAAO9wB,UAAU,EAAG,EAAG6D,EAAOC,GAMpD9G,KAAKg8C,eAAiB,GAAIloB,GAAOpyB,MAAM,EAAG,GAC1C1B,KAAKi8C,cAAgB,GAAInoB,GAAOpyB,MAAM,EAAG,GACzC1B,KAAKk8C,aAAe,GAAIpoB,GAAOpyB,MAAM,EAAG,GACxC1B,KAAKm8C,aAAe,GAAIroB,GAAOpyB,MAAM,EAAG,GAMxC1B,KAAKo8C,YAAc,GAAItoB,GAAOpyB,MAAM,EAAG,GACvC1B,KAAKq8C,WAAa,GAAIvoB,GAAOpyB,MAAM,EAAG,GACtC1B,KAAKs8C,mBAAqB,GAAIxoB,GAAOpyB,MAAM,EAAG,GAC9C1B,KAAKu8C,UAAY,GAAIzoB,GAAOpyB,MAAM,EAAG,GACrC1B,KAAKw8C,UAAY,GAAI1oB,GAAOpyB,MAAM,EAAG,GAErC1B,KAAKy8C,YAAc,EACnBz8C,KAAK08C,aAAe,EACpB18C,KAAK28C,cAAgB,EACrB38C,KAAK48C,cAAgB,EAErB58C,KAAK68C,OAASh2C,EAAQC,EACtB9G,KAAK88C,OAASh2C,EAASD,EAEvB7G,KAAK+8C,WAAa,EAElB/8C,KAAKg9C,WAITlpB,EAAO4nB,SAASr4C,WASZqjC,QAAS,SAAU7/B,EAAOC,GAGtB9G,KAAK6G,MAAQA,EACb7G,KAAK8G,OAASA,EAEd9G,KAAK68C,OAASh2C,EAAQC,EACtB9G,KAAK88C,OAASh2C,EAASD,EAEvB7G,KAAKw8C,UAAY,GAAI1oB,GAAOpyB,MAAM,EAAG,GAErC1B,KAAK+7C,WAAWl1C,MAAQ7G,KAAK6G,MAC7B7G,KAAK+7C,WAAWj1C,OAAS9G,KAAK8G,OAE9B9G,KAAK0vB,WAeTutB,kBAAmB,SAAUp2C,EAAOC,EAAQtD,EAAU05C,GAE/BzzC,SAAfyzC,IAA4BA,GAAa,GAE7Cl9C,KAAKy8C,YAAc51C,EACnB7G,KAAK08C,aAAe51C,EAEpB9G,KAAK47C,aAAa/0C,MAAQA,EAC1B7G,KAAK47C,aAAa90C,OAASA,CAE3B,IAAIq2C,GAAQ,GAAIrpB,GAAOspB,UAAUp9C,KAAMA,KAAKg8C,eAAgBh8C,KAAK47C,aAAc57C,KAAKo8C,YAcpF,OAZIc,IAEAl9C,KAAK4E,KAAKE,MAAM87B,IAAIuc,GAGxBn9C,KAAKg9C,OAAOz4C,KAAK44C,GAEO,mBAAb35C,IAAgD,aAAbA,IAE1C25C,EAAM5G,YAAY/yC,GAGf25C,GAWXE,iBAAkB,SAAU75C,EAAU05C,GAEfzzC,SAAfyzC,IAA4BA,GAAa,EAE7C,IAAIC,GAAQ,GAAIrpB,GAAOspB,UAAUp9C,KAAMA,KAAKi8C,cAAej8C,KAAK67C,YAAa77C,KAAKq8C,WAclF,OAZIa,IAEAl9C,KAAK4E,KAAKE,MAAM87B,IAAIuc,GAGxBn9C,KAAKg9C,OAAOz4C,KAAK44C,GAEO,mBAAb35C,IAAgD,aAAbA,IAE1C25C,EAAM5G,YAAY/yC,GAGf25C,GAWXG,gBAAiB,SAAU95C,GAEvB,GAAI25C,GAAQ,GAAIrpB,GAAOspB,UAAUp9C,KAAMA,KAAKk8C,aAAcl8C,KAAK87C,WAAY97C,KAAKq8C,WAWhF,OATAr8C,MAAK4E,KAAKE,MAAM87B,IAAIuc,GAEpBn9C,KAAKg9C,OAAOz4C,KAAK44C,GAEO,mBAAb35C,IAEP25C,EAAM5G,YAAY/yC,GAGf25C,GAWXI,iBAAkB,SAAU/5C,GAExB,GAAI25C,GAAQ,GAAIrpB,GAAOspB,UAAUp9C,KAAMA,KAAKm8C,aAAcn8C,KAAK+7C,WAAY/7C,KAAKw8C,UAWhF,OATAx8C,MAAK4E,KAAKE,MAAM87B,IAAIuc,GAEpBn9C,KAAKg9C,OAAOz4C,KAAK44C,GAEO,mBAAb35C,IAEP25C,EAAM5G,YAAY/yC,GAGf25C,GASX1gC,MAAO,WAIH,IAFA,GAAIhZ,GAAIzD,KAAKg9C,OAAOt5C,OAEbD,KAEEzD,KAAKg9C,OAAOv5C,GAAG+5C,UAGhBx9C,KAAKg9C,OAAOv5C,GAAGhC,SAAW,KAC1BzB,KAAKg9C,OAAOv5C,GAAG9B,MAAQ,KACvB3B,KAAKg9C,OAAOjgC,MAAMtZ,EAAG,KAajCg6C,SAAU,SAAU52C,EAAOC,GAEvB9G,KAAK68C,OAASh2C,EAAQC,EACtB9G,KAAK88C,OAASh2C,EAASD,EAEvB7G,KAAK0vB,QAAQ7oB,EAAOC,IASxB4oB,QAAS,WAEL1vB,KAAK+8C,WAAap8C,KAAK0wB,IAAKrxB,KAAK27C,QAAQ70C,OAAS9G,KAAK8G,OAAU9G,KAAK27C,QAAQ90C,MAAQ7G,KAAK6G,OAE3F7G,KAAK67C,YAAYh1C,MAAQlG,KAAKi8B,MAAM58B,KAAK6G,MAAQ7G,KAAK+8C,YACtD/8C,KAAK67C,YAAY/0C,OAASnG,KAAKi8B,MAAM58B,KAAK8G,OAAS9G,KAAK+8C,YAExD/8C,KAAKq8C,WAAWr4C,IAAIhE,KAAK67C,YAAYh1C,MAAQ7G,KAAK6G,MAAO7G,KAAK67C,YAAY/0C,OAAS9G,KAAK8G,QACxF9G,KAAKs8C,mBAAmBt4C,IAAIhE,KAAK6G,MAAQ7G,KAAK67C,YAAYh1C,MAAO7G,KAAK8G,OAAS9G,KAAK67C,YAAY/0C,QAEhG9G,KAAKu8C,UAAUv4C,IAAIhE,KAAK87C,WAAWj1C,MAAQ7G,KAAK6G,MAAO7G,KAAK87C,WAAWh1C,OAAS9G,KAAK8G,QAErF9G,KAAK87C,WAAWj1C,MAAQlG,KAAKi8B,MAAM58B,KAAK27C,QAAQ90C,MAAQ7G,KAAKs8C,mBAAmB52C,GAChF1F,KAAK87C,WAAWh1C,OAASnG,KAAKi8B,MAAM58B,KAAK27C,QAAQ70C,OAAS9G,KAAKs8C,mBAAmB32C,GAElF3F,KAAK67C,YAAYjY,SAAS5jC,KAAK27C,QAAQj1C,OAAOm9B,QAAS7jC,KAAK27C,QAAQj1C,OAAOo9B,SAC3E9jC,KAAK+7C,WAAWnY,SAAS5jC,KAAK27C,QAAQj1C,OAAOm9B,QAAS7jC,KAAK27C,QAAQj1C,OAAOo9B,SAE1E9jC,KAAKi8C,cAAcj4C,IAAIhE,KAAK67C,YAAYn2C,EAAG1F,KAAK67C,YAAYl2C,GAC5D3F,KAAKm8C,aAAan4C,IAAIhE,KAAK+7C,WAAWr2C,EAAG1F,KAAK+7C,WAAWp2C,IAU7D+3C,UAAW,SAAU/zB,GAEjB3pB,KAAK27C,QAAQgC,YAAYh0B,GAEzBA,EAAOjkB,EAAI1F,KAAK27C,QAAQj1C,OAAOm9B,QAC/Bla,EAAOhkB,EAAI3F,KAAK27C,QAAQj1C,OAAOo9B,SASnCgJ,MAAO,WAUH9sC,KAAK4E,KAAKkoC,MAAM8Q,KAAK59C,KAAK67C,YAAYh1C,MAAQ,MAAQ7G,KAAK67C,YAAY/0C,OAAQ9G,KAAK67C,YAAYn2C,EAAI,EAAG1F,KAAK67C,YAAYl2C,EAAI,IAC5H3F,KAAK4E,KAAKkoC,MAAM+Q,KAAK79C,KAAK67C,YAAa,oBAAoB,KAYnE/nB,EAAO4nB,SAASr4C,UAAUC,YAAcwwB,EAAO4nB,SAuB/C5nB,EAAOspB,UAAY,SAAUzB,EAASl6C,EAAUiF,EAAQ/E,GAEpDmyB,EAAO0gB,MAAM1uC,KAAK9F,KAAM27C,EAAQ/2C,KAAM,KAAM,cAAgB+2C,EAAQ/2C,KAAK0kC,IAAIwU,QAAQ,GAKrF99C,KAAK27C,QAAUA,EAAQA,QAKvB37C,KAAKwoC,KAAOmT,EAOZ37C,KAAKw9C,SAAU,EAKfx9C,KAAKyB,SAAWA,EAKhBzB,KAAK0G,OAASA,EAKd1G,KAAK2B,MAAQA,EAKb3B,KAAK+9C,QAAUr3C,EAAOq3C,QAKtB/9C,KAAKg+C,UAAY,GAAIlqB,GAAOpyB,MAAMgF,EAAOg3B,UAAW,GAKpD19B,KAAKi+C,SAAWv3C,EAAOu3C,SAKvBj+C,KAAKk+C,WAAax3C,EAAOw3C,WAKzBl+C,KAAKm+C,aAAe,GAAIrqB,GAAOpyB,MAAMgF,EAAOg3B,UAAWh3B,EAAO22B,QAK9Dr9B,KAAKo+C,YAAc13C,EAAO03C,aAI9BtqB,EAAOspB,UAAU/5C,UAAYO,OAAOwE,OAAO0rB,EAAO0gB,MAAMnxC,WACxDywB,EAAOspB,UAAU/5C,UAAUC,YAAcwwB,EAAOspB,UAOhDtpB,EAAOspB,UAAU/5C,UAAU0E,OAAS,aAQpC+rB,EAAOspB,UAAU/5C,UAAUypC,MAAQ,WAE/B9sC,KAAK4E,KAAKkoC,MAAM8Q,KAAK59C,KAAK0G,OAAOG,MAAQ,MAAQ7G,KAAK0G,OAAOI,OAAQ9G,KAAK0G,OAAOhB,EAAI,EAAG1F,KAAK0G,OAAOf,EAAI,IACxG3F,KAAK4E,KAAKkoC,MAAM+Q,KAAK79C,KAAK0G,OAAQ,oBAAoB,GAEtD1G,KAAK4E,KAAKkoC,MAAM+Q,KAAK79C,KAAK+9C,QAAS,wBACnC/9C,KAAK4E,KAAKkoC,MAAM+Q,KAAK79C,KAAKg+C,UAAW,wBACrCh+C,KAAK4E,KAAKkoC,MAAM+Q,KAAK79C,KAAKi+C,SAAU,yBAiDxCnqB,EAAOuqB,aAAe,SAAUz5C,EAAMiC,EAAOC,GAQzC9G,KAAK4E,KAAOA,EAQZ5E,KAAKs+C,IAAMxqB,EAAO0e,IAOlBxyC,KAAKwoC,KAAO,KAOZxoC,KAAK6G,MAAQ,EAOb7G,KAAK8G,OAAS,EASd9G,KAAKu+C,SAAW,KAUhBv+C,KAAKw+C,SAAW,KAShBx+C,KAAKy+C,UAAY,KAUjBz+C,KAAK0+C,UAAY,KASjB1+C,KAAK6a,OAAS,GAAIiZ,GAAOpyB,MAUzB1B,KAAK2+C,gBAAiB,EAUtB3+C,KAAK4+C,eAAgB,EAWrB5+C,KAAK6+C,sBAAuB,EAO5B7+C,KAAK8+C,wBAAyB,EAO9B9+C,KAAK++C,sBAAuB,EA0B5B/+C,KAAKg/C,oBAAsB,GAAIlrB,GAAO0W,OAUtCxqC,KAAKi/C,0BAA4B,GAAInrB,GAAO0W,OAU5CxqC,KAAKk/C,0BAA4B,GAAIprB,GAAO0W,OAe5CxqC,KAAKm/C,iBAAmB,KAQxBn/C,KAAKo/C,yBAA2B,KAuBhCp/C,KAAKq/C,iBAAmB,GAAIvrB,GAAO0W,OAWnCxqC,KAAKs/C,mBAAqB,GAAIxrB,GAAO0W,OAWrCxqC,KAAKu/C,kBAAoB,GAAIzrB,GAAO0W,OAUpCxqC,KAAKw/C,kBAAoBx/C,KAAKs+C,IAAImB,uBAOlCz/C,KAAKk1B,YAAc,GAAIpB,GAAOpyB,MAAM,EAAG,GAQvC1B,KAAK0/C,oBAAsB,GAAI5rB,GAAOpyB,MAAM,EAAG,GAS/C1B,KAAK2/C,QAAU9kB,KAAM,EAAGuC,IAAK,EAAGxC,MAAO,EAAGyC,OAAQ,EAAG33B,EAAG,EAAGC,EAAG,GAO9D3F,KAAK0G,OAAS,GAAIotB,GAAO9wB,UAOzBhD,KAAK4/C,YAAc,EAOnB5/C,KAAK6/C,kBAAoB,EAQzB7/C,KAAKkzC,MAAQ,KAeblzC,KAAK8/C,mBACDllB,MAAO,SACPyC,OAAQ,IA6BZr9B,KAAK+/C,eACDC,oBAAoB,EACpBC,oBAAqB,KACrBC,WAAW,EACXC,SAAU,KACVC,4BAA4B,EAC5BC,iBAAiB,EACjBC,gBAAiB,IAQrBtgD,KAAKugD,WAAazsB,EAAOuqB,aAAamC,SAOtCxgD,KAAKygD,qBAAuB3sB,EAAOuqB,aAAamC,SAUhDxgD,KAAK0gD,gBAAiB,EAUtB1gD,KAAK2gD,WAAa,KAOlB3gD,KAAK4gD,kBAAoB,GAAI9sB,GAAOpyB,MAAM,EAAG,GAW7C1B,KAAK6gD,oBAAsB,IAiB3B7gD,KAAK8gD,aAAe,GAAIhtB,GAAO0W,OAO/BxqC,KAAKy9C,SAAW,KAOhBz9C,KAAK+gD,gBAAkB,KAMvB/gD,KAAKghD,kBAAoB,KAOzBhhD,KAAKihD,mBAAqB,KAO1BjhD,KAAKkhD,UAAY,GAAIptB,GAAO9wB,UAO5BhD,KAAKmhD,iBAAmB,GAAIrtB,GAAOpyB,MAAM,EAAG,GAO5C1B,KAAKohD,eAAiB,GAAIttB,GAAOpyB,MAAM,EAAG,GAO1C1B,KAAKqhD,YAAc,EASnBrhD,KAAKshD,gBAAkB,EAOvBthD,KAAKuhD,qBAAuB,IAO5BvhD,KAAKwhD,cAAgB,GAAI1tB,GAAO9wB,UAOhChD,KAAKyhD,YAAc,GAAI3tB,GAAO9wB,UAO9BhD,KAAK0hD,wBAA0B,GAAI5tB,GAAO9wB,UAO1ChD,KAAK2hD,sBAAwB,GAAI7tB,GAAO9wB,UAMxChD,KAAK4hD,SAAU,EAEXh9C,EAAK0tC,QAELtyC,KAAKuyC,YAAY3tC,EAAK0tC,QAG1BtyC,KAAK6hD,WAAWh7C,EAAOC,IAU3BgtB,EAAOuqB,aAAayD,UAAY,EAQhChuB,EAAOuqB,aAAamC,SAAW,EAQ/B1sB,EAAOuqB,aAAa0D,SAAW,EAQ/BjuB,EAAOuqB,aAAa2D,OAAS,EAQ7BluB,EAAOuqB,aAAa4D,WAAa,EAEjCnuB,EAAOuqB,aAAah7C,WAQhBioC,KAAM,WAIF,GAAI4W,GAASliD,KAAK+/C,aAElBmC,GAAOlC,mBAAqBhgD,KAAK4E,KAAK6uC,OAAO0O,aAAeniD,KAAK4E,KAAK6uC,OAAO2O,SAGxEpiD,KAAK4E,KAAK6uC,OAAO4O,MAASriD,KAAK4E,KAAK6uC,OAAO6O,QAAWtiD,KAAK4E,KAAK6uC,OAAO8O,UAIpEL,EAAO/B,SAFPngD,KAAK4E,KAAK6uC,OAAO+O,UAAYxiD,KAAK4E,KAAK6uC,OAAOgP,OAE5B,GAAI3uB,GAAOpyB,MAAM,EAAG,GAIpB,GAAIoyB,GAAOpyB,MAAM,EAAG,IAI1C1B,KAAK4E,KAAK6uC,OAAO8O,SAEjBL,EAAOjC,oBAAsB,SAC7BiC,EAAO5B,gBAAkB,mBAIzB4B,EAAOjC,oBAAsB,GAC7BiC,EAAO5B,gBAAkB,GAK7B,IAAIlR,GAAQpvC,IAEZA,MAAK0iD,mBAAqB,SAASxP,GAC/B,MAAO9D,GAAMuT,kBAAkBzP,IAGnClzC,KAAK4iD,cAAgB,SAAS1P,GAC1B,MAAO9D,GAAMyT,aAAa3P,IAI9Bz+B,OAAO2+B,iBAAiB,oBAAqBpzC,KAAK0iD,oBAAoB,GACtEjuC,OAAO2+B,iBAAiB,SAAUpzC,KAAK4iD,eAAe,GAElD5iD,KAAK+/C,cAAcC,qBAEnBhgD,KAAK8iD,kBAAoB,SAAS5P,GAC9B,MAAO9D,GAAM2T,iBAAiB7P,IAGlClzC,KAAKgjD,iBAAmB,SAAS9P,GAC7B,MAAO9D,GAAM6T,gBAAgB/P,IAGjC1iC,SAAS4iC,iBAAiB,yBAA0BpzC,KAAK8iD,mBAAmB,GAC5EtyC,SAAS4iC,iBAAiB,sBAAuBpzC,KAAK8iD,mBAAmB,GACzEtyC,SAAS4iC,iBAAiB,qBAAsBpzC,KAAK8iD,mBAAmB,GACxEtyC,SAAS4iC,iBAAiB,mBAAoBpzC,KAAK8iD,mBAAmB,GAEtEtyC,SAAS4iC,iBAAiB,wBAAyBpzC,KAAKgjD,kBAAkB,GAC1ExyC,SAAS4iC,iBAAiB,qBAAsBpzC,KAAKgjD,kBAAkB,GACvExyC,SAAS4iC,iBAAiB,oBAAqBpzC,KAAKgjD,kBAAkB,GACtExyC,SAAS4iC,iBAAiB,kBAAmBpzC,KAAKgjD,kBAAkB,IAGxEhjD,KAAK4E,KAAK6mC,SAAS7K,IAAI5gC,KAAKkjD,aAAcljD,MAI1CA,KAAKs+C,IAAI7L,UAAUzyC,KAAK4E,KAAKmM,OAAQ/Q,KAAK6a,QAE1C7a,KAAK0G,OAAO61B,MAAMv8B,KAAK6a,OAAOnV,EAAG1F,KAAK6a,OAAOlV,EAAG3F,KAAK6G,MAAO7G,KAAK8G,QAEjE9G,KAAKmjD,YAAYnjD,KAAK4E,KAAKiC,MAAO7G,KAAK4E,KAAKkC,QAG5C9G,KAAKw/C,kBAAoBx/C,KAAKs+C,IAAImB,qBAAqBz/C,KAAK+/C,cAAcE,qBAE1EjgD,KAAKwoC,KAAO,GAAI1U,GAAO4nB,SAAS17C,KAAMA,KAAK6G,MAAO7G,KAAK8G,QAEvD9G,KAAK4hD,SAAU,EAEX5hD,KAAKghD,oBAELhhD,KAAKwG,UAAYxG,KAAKghD,kBACtBhhD,KAAKghD,kBAAoB,OAYjCzO,YAAa,SAAUD,GAEfA,EAAkB,YAEdtyC,KAAK4hD,QAEL5hD,KAAKwG,UAAY8rC,EAAkB,UAInCtyC,KAAKghD,kBAAoB1O,EAAkB,WAI/CA,EAA4B,sBAE5BtyC,KAAKojD,oBAAsB9Q,EAA4B,qBAGvDA,EAAyB,mBAEzBtyC,KAAKm/C,iBAAmB7M,EAAyB,mBAezDuP,WAAY,SAAUh7C,EAAOC,GAEzB,GAAIrC,GACA+sB,EAAO,GAAIsC,GAAO9wB,SAEG,MAArBhD,KAAK4E,KAAKxC,SAEsB,gBAArBpC,MAAK4E,KAAKxC,OAGjBqC,EAAS+L,SAAS6yC,eAAerjD,KAAK4E,KAAKxC,QAEtCpC,KAAK4E,KAAKxC,QAAwC,IAA9BpC,KAAK4E,KAAKxC,OAAO24B,WAG1Ct2B,EAASzE,KAAK4E,KAAKxC,SAKtBqC,GAaDzE,KAAK2gD,WAAal8C,EAClBzE,KAAK0gD,gBAAiB,EAEtB1gD,KAAKsjD,gBAAgBtjD,KAAKwhD,eAE1BhwB,EAAK3qB,MAAQ7G,KAAKwhD,cAAc36C,MAChC2qB,EAAK1qB,OAAS9G,KAAKwhD,cAAc16C,OAEjC9G,KAAK6a,OAAO7W,IAAIhE,KAAKwhD,cAAc97C,EAAG1F,KAAKwhD,cAAc77C,KAlBzD3F,KAAK2gD,WAAa,KAClB3gD,KAAK0gD,gBAAiB,EAEtBlvB,EAAK3qB,MAAQ7G,KAAKs+C,IAAIiF,aAAa18C,MACnC2qB,EAAK1qB,OAAS9G,KAAKs+C,IAAIiF,aAAaz8C,OAEpC9G,KAAK6a,OAAO7W,IAAI,EAAG,GAevB,IAAIw/C,GAAW,EACXC,EAAY,CAEK,iBAAV58C,GAEP28C,EAAW38C,GAKX7G,KAAK4gD,kBAAkBl7C,EAAI20B,SAASxzB,EAAO,IAAM,IACjD28C,EAAWhyB,EAAK3qB,MAAQ7G,KAAK4gD,kBAAkBl7C,GAG7B,gBAAXoB,GAEP28C,EAAY38C,GAKZ9G,KAAK4gD,kBAAkBj7C,EAAI00B,SAASvzB,EAAQ,IAAM,IAClD28C,EAAYjyB,EAAK1qB,OAAS9G,KAAK4gD,kBAAkBj7C,GAGrD3F,KAAKkhD,UAAU3kB,MAAM,EAAG,EAAGinB,EAAUC,GAErCzjD,KAAK0jD,iBAAiBF,EAAUC,GAAW,IAU/CP,aAAc,WAEVljD,KAAK2jD,aAAY,IAmBrBR,YAAa,SAAUt8C,EAAOC,GAE1B9G,KAAKkhD,UAAU3kB,MAAM,EAAG,EAAG11B,EAAOC,GAE9B9G,KAAK4jD,mBAAqB9vB,EAAOuqB,aAAa2D,QAE9ChiD,KAAK0jD,iBAAiB78C,EAAOC,GAAQ,GAGzC9G,KAAK2jD,aAAY,IAoBrBE,aAAc,SAAUC,EAAQC,EAAQC,EAAOC,GAE3CjkD,KAAKmhD,iBAAiB5kB,MAAMunB,EAAQC,GACpC/jD,KAAKohD,eAAe7kB,MAAc,EAARynB,EAAmB,EAARC,GACrCjkD,KAAK2jD,aAAY,IAwBrBO,kBAAmB,SAAUvL,EAAUvrC,GAEnCpN,KAAKy9C,SAAW9E,EAChB34C,KAAK+gD,gBAAkB3zC,GAY3B+2C,iBAAkB,WAEd,IAAKrwB,EAAO9wB,UAAUgiC,eAAehlC,KAAMA,KAAK0hD,2BAC3C5tB,EAAO9wB,UAAUgiC,eAAehlC,KAAK4E,KAAM5E,KAAK2hD,uBACrD,CACI,GAAI96C,GAAQ7G,KAAK6G,MACbC,EAAS9G,KAAK8G,MAElB9G,MAAK0hD,wBAAwBnlB,MAAM,EAAG,EAAG11B,EAAOC,GAChD9G,KAAK2hD,sBAAsBplB,MAAM,EAAG,EAAGv8B,KAAK4E,KAAKiC,MAAO7G,KAAK4E,KAAKkC,QAElE9G,KAAKwoC,KAAKiV,SAAS52C,EAAOC,GAE1B9G,KAAK8gD,aAAarU,SAASzsC,KAAM6G,EAAOC,GAGpC9G,KAAK4jD,mBAAqB9vB,EAAOuqB,aAAa2D,SAE9ChiD,KAAK4E,KAAK+mC,MAAM5jC,OAAOlB,EAAOC,GAC9B9G,KAAK4E,KAAKmkC,KAAKhhC,OAAOlB,EAAOC,MAqBzCs9C,UAAW,SAAU7F,EAAUE,EAAWD,EAAUE,GAEhD1+C,KAAKu+C,SAAWA,EAChBv+C,KAAKy+C,UAAYA,EAEO,mBAAbD,KAEPx+C,KAAKw+C,SAAWA,GAGK,mBAAdE,KAEP1+C,KAAK0+C,UAAYA,IAWzBp4C,UAAW,WAEP,KAAItG,KAAK4E,KAAKskC,KAAKA,KAAQlpC,KAAKqhD,YAAcrhD,KAAKshD,iBAAnD,CAKA,GAAI+C,GAAerkD,KAAKshD,eACxBthD,MAAKuhD,qBAAuB8C,GAAgB,IAAM,EAAI,IAEtDrkD,KAAKs+C,IAAI7L,UAAUzyC,KAAK4E,KAAKmM,OAAQ/Q,KAAK6a,OAE1C,IAAIypC,GAAYtkD,KAAKwhD,cAAc36C,MAC/B09C,EAAavkD,KAAKwhD,cAAc16C,OAChCJ,EAAS1G,KAAKsjD,gBAAgBtjD,KAAKwhD,eAEnCgD,EAAgB99C,EAAOG,QAAUy9C,GAAa59C,EAAOI,SAAWy9C,EAGhEE,EAAqBzkD,KAAK0kD,0BAE1BF,GAAiBC,KAEbzkD,KAAKy9C,UAELz9C,KAAKy9C,SAAS33C,KAAK9F,KAAK+gD,gBAAiB/gD,KAAM0G,GAGnD1G,KAAK2kD,eAEL3kD,KAAKmkD,mBAIT,IAAIS,GAAkC,EAAvB5kD,KAAKshD,eAGhBthD,MAAKshD,gBAAkB+C,IAEvBO,EAAWjkD,KAAK0wB,IAAIgzB,EAAcrkD,KAAKuhD,uBAG3CvhD,KAAKshD,gBAAkBxtB,EAAOnzB,KAAKsgC,MAAM2jB,EAAU,GAAI5kD,KAAK6gD,qBAC5D7gD,KAAKqhD,YAAcrhD,KAAK4E,KAAKskC,KAAKA,OAUtCW,YAAa,WAET7pC,KAAKsG,YAGLtG,KAAKshD,gBAAkBthD,KAAK6gD,qBAahC6C,iBAAkB,SAAU78C,EAAOC,EAAQiB,GAEvC/H,KAAK6G,MAAQA,EAAQ7G,KAAK4gD,kBAAkBl7C,EAC5C1F,KAAK8G,OAASA,EAAS9G,KAAK4gD,kBAAkBj7C,EAE9C3F,KAAK4E,KAAKiC,MAAQ7G,KAAK6G,MACvB7G,KAAK4E,KAAKkC,OAAS9G,KAAK8G,OAExB9G,KAAK6/C,kBAAoB7/C,KAAK6G,MAAQ7G,KAAK8G,OAC3C9G,KAAK6kD,yBAED98C,IAGA/H,KAAK4E,KAAK6B,SAASsB,OAAO/H,KAAK6G,MAAO7G,KAAK8G,QAG3C9G,KAAK4E,KAAKgkC,OAAOlC,QAAQ1mC,KAAK6G,MAAO7G,KAAK8G,QAG1C9G,KAAK4E,KAAKE,MAAMiD,OAAO/H,KAAK6G,MAAO7G,KAAK8G,UAYhD+9C,uBAAwB,WAEpB7kD,KAAKk1B,YAAYxvB,EAAI1F,KAAK4E,KAAKiC,MAAQ7G,KAAK6G,MAC5C7G,KAAKk1B,YAAYvvB,EAAI3F,KAAK4E,KAAKkC,OAAS9G,KAAK8G,OAE7C9G,KAAK0/C,oBAAoBh6C,EAAI1F,KAAK6G,MAAQ7G,KAAK4E,KAAKiC,MACpD7G,KAAK0/C,oBAAoB/5C,EAAI3F,KAAK8G,OAAS9G,KAAK4E,KAAKkC,OAErD9G,KAAK4/C,YAAc5/C,KAAK6G,MAAQ7G,KAAK8G,OAGjC9G,KAAK4E,KAAKmM,QAEV/Q,KAAKs+C,IAAI7L,UAAUzyC,KAAK4E,KAAKmM,OAAQ/Q,KAAK6a,QAG9C7a,KAAK0G,OAAO61B,MAAMv8B,KAAK6a,OAAOnV,EAAG1F,KAAK6a,OAAOlV,EAAG3F,KAAK6G,MAAO7G,KAAK8G,QAG7D9G,KAAK4E,KAAKkkC,OAAS9oC,KAAK4E,KAAKkkC,MAAMnnC,OAEnC3B,KAAK4E,KAAKkkC,MAAMnnC,MAAM46B,MAAMv8B,KAAKk1B,YAAYxvB,EAAG1F,KAAKk1B,YAAYvvB,IAmBzEm/C,iBAAkB,SAAUnG,EAAgBC,GAElBn1C,SAAlBm1C,IAA+BA,GAAgB,GAEnD5+C,KAAK2+C,eAAiBA,EACtB3+C,KAAK4+C,cAAgBA,EAErB5+C,KAAK2jD,aAAY,IAYrBoB,oBAAqB,SAAUC,GAE3B,MAAoB,qBAAhBA,GAAsD,uBAAhBA,EAE/B,WAEc,sBAAhBA,GAAuD,wBAAhBA,EAErC,YAIA,MAYfN,uBAAwB,WAEpB,GAAIO,GAAsBjlD,KAAKw/C,kBAC3B0F,EAAsBllD,KAAK6+C,oBAE/B7+C,MAAKw/C,kBAAoBx/C,KAAKs+C,IAAImB,qBAAqBz/C,KAAK+/C,cAAcE,qBAE1EjgD,KAAK6+C,qBAAwB7+C,KAAK2+C,iBAAmB3+C,KAAKmlD,aACrDnlD,KAAK4+C,gBAAkB5+C,KAAKolD,UAEjC,IAAIC,GAAUJ,IAAwBjlD,KAAKw/C,kBACvC8F,EAAqBJ,IAAwBllD,KAAK6+C,oBAmBtD,OAjBIyG,KAEItlD,KAAK6+C,qBAEL7+C,KAAKi/C,0BAA0BxS,WAI/BzsC,KAAKk/C,0BAA0BzS,aAInC4Y,GAAWC,IAEXtlD,KAAKg/C,oBAAoBvS,SAASzsC,KAAMilD,EAAqBC,GAG1DG,GAAWC,GAWtB3C,kBAAmB,SAAUzP,GAEzBlzC,KAAKkzC,MAAQA,EAEblzC,KAAK2jD,aAAY,IAWrBd,aAAc,SAAU3P,GAEpBlzC,KAAKkzC,MAAQA,EAEblzC,KAAK2jD,aAAY,IAUrB4B,UAAW,WAEP,GAAIpF,GAAWngD,KAAK+/C,cAAcI,QAE9BA,IAEA1rC,OAAO0rC,SAASA,EAASz6C,EAAGy6C,EAASx6C,IAyB7C+pB,QAAS,WAEL1vB,KAAKulD,YACLvlD,KAAK2jD,aAAY,IAUrBgB,aAAc,WAEV,GAAIn+C,GAAYxG,KAAK4jD,gBAErB,IAAIp9C,IAAcstB,EAAOuqB,aAAa2D,OAGlC,WADAhiD,MAAKwlD,YAoDT,IAhDAxlD,KAAKulD,YAEDvlD,KAAK+/C,cAAcK,6BAInB5vC,SAASi1C,gBAAgBhhC,MAAMg6B,UAAYhqC,OAAO8lB,YAAc,MAGhEv6B,KAAK6+C,qBAEL7+C,KAAK0lD,aAIDl/C,IAAcstB,EAAOuqB,aAAayD,UAElC9hD,KAAK2lD,cAEAn/C,IAAcstB,EAAOuqB,aAAa0D,UAElC/hD,KAAK4lD,cAAgB5lD,KAAK6lD,gBAC3B7lD,KAAK+/C,cAAcM,iBAKnBrgD,KAAK8lD,YAAW,GAChB9lD,KAAK+lD,cACL/lD,KAAK8lD,cAIL9lD,KAAK8lD,aAGJt/C,IAAcstB,EAAOuqB,aAAamC,UAEvCxgD,KAAK6G,MAAQ7G,KAAK4E,KAAKiC,MACvB7G,KAAK8G,OAAS9G,KAAK4E,KAAKkC,QAEnBN,IAAcstB,EAAOuqB,aAAa4D,aAEvCjiD,KAAK6G,MAAS7G,KAAK4E,KAAKiC,MAAQ7G,KAAKmhD,iBAAiBz7C,EAAK1F,KAAKohD,eAAe17C,EAC/E1F,KAAK8G,OAAU9G,KAAK4E,KAAKkC,OAAS9G,KAAKmhD,iBAAiBx7C,EAAK3F,KAAKohD,eAAez7C,IAIpF3F,KAAK+/C,cAAcM,kBACnB75C,IAAcstB,EAAOuqB,aAAa0D,UAAYv7C,IAAcstB,EAAOuqB,aAAa4D,YACrF,CACI,GAAIv7C,GAAS1G,KAAKsjD,gBAAgBtjD,KAAKyhD,YACvCzhD,MAAK6G,MAAQlG,KAAK0wB,IAAIrxB,KAAK6G,MAAOH,EAAOG,OACzC7G,KAAK8G,OAASnG,KAAK0wB,IAAIrxB,KAAK8G,OAAQJ,EAAOI,QAI/C9G,KAAK6G,MAAqB,EAAb7G,KAAK6G,MAClB7G,KAAK8G,OAAuB,EAAd9G,KAAK8G,OAEnB9G,KAAKgmD,gBAoBT1C,gBAAiB,SAAU7+C,GAEvB,GAAIiC,GAASjC,GAAU,GAAIqvB,GAAO9wB,UAC9B29C,EAAa3gD,KAAK6lD,eAClBtC,EAAevjD,KAAKs+C,IAAIiF,aACxB0C,EAAejmD,KAAKs+C,IAAI2H,YAE5B,IAAKtF,EAKL,CAEI,GAAIuF,GAAavF,EAAWwF,uBAE5Bz/C,GAAO61B,MAAM2pB,EAAWrrB,KAAMqrB,EAAW9oB,IAAK8oB,EAAWr/C,MAAOq/C,EAAWp/C,OAE3E,IAAIs/C,GAAKpmD,KAAK8/C,iBAEd,IAAIsG,EAAGxrB,MACP,CACI,GAAIyrB,GAA4B,WAAbD,EAAGxrB,MAAqBqrB,EAAe1C,CAC1D78C,GAAOk0B,MAAQj6B,KAAK0wB,IAAI3qB,EAAOk0B,MAAOyrB,EAAax/C,OAGvD,GAAIu/C,EAAG/oB,OACP,CACI,GAAIgpB,GAA6B,WAAdD,EAAG/oB,OAAsB4oB,EAAe1C,CAC3D78C,GAAO22B,OAAS18B,KAAK0wB,IAAI3qB,EAAO22B,OAAQgpB,EAAav/C,aApBzDJ,GAAO61B,MAAM,EAAG,EAAGgnB,EAAa18C,MAAO08C,EAAaz8C,OA4BxD,OAJAJ,GAAO61B,MACH57B,KAAKi8B,MAAMl2B,EAAOhB,GAAI/E,KAAKi8B,MAAMl2B,EAAOf,GACxChF,KAAKi8B,MAAMl2B,EAAOG,OAAQlG,KAAKi8B,MAAMl2B,EAAOI,SAEzCJ,GAcX4/C,YAAa,SAAU/K,EAAYC,GAE/B,GAAI+K,GAAevmD,KAAKsjD,gBAAgBtjD,KAAKyhD,aACzC1wC,EAAS/Q,KAAK4E,KAAKmM,OACnB4uC,EAAS3/C,KAAK2/C,MAElB,IAAIpE,EACJ,CACIoE,EAAO9kB,KAAO8kB,EAAO/kB,MAAQ,CAE7B,IAAI4rB,GAAez1C,EAAOo1C,uBAE1B,IAAInmD,KAAK6G,MAAQ0/C,EAAa1/C,QAAU7G,KAAK6+C,qBAC7C,CACI,GAAI4H,GAAcD,EAAa3rB,KAAO0rB,EAAa7gD,EAC/CghD,EAAcH,EAAa1/C,MAAQ,EAAM7G,KAAK6G,MAAQ,CAE1D6/C,GAAa/lD,KAAK2+B,IAAIonB,EAAY,EAElC,IAAI7rC,GAAS6rC,EAAaD,CAE1B9G,GAAO9kB,KAAOl6B,KAAKi8B,MAAM/hB,GAG7B9J,EAAO0T,MAAMkiC,WAAahH,EAAO9kB,KAAO,KAEpB,IAAhB8kB,EAAO9kB,OAEP8kB,EAAO/kB,QAAU2rB,EAAa1/C,MAAQ2/C,EAAa3/C,MAAQ84C,EAAO9kB,MAClE9pB,EAAO0T,MAAMmiC,YAAcjH,EAAO/kB,MAAQ,MAIlD,GAAI4gB,EACJ,CACImE,EAAOviB,IAAMuiB,EAAOtiB,OAAS,CAE7B,IAAImpB,GAAez1C,EAAOo1C,uBAE1B,IAAInmD,KAAK8G,OAASy/C,EAAaz/C,SAAW9G,KAAK6+C,qBAC/C,CACI,GAAI4H,GAAcD,EAAappB,IAAMmpB,EAAa5gD,EAC9C+gD,EAAcH,EAAaz/C,OAAS,EAAM9G,KAAK8G,OAAS,CAE5D4/C,GAAa/lD,KAAK2+B,IAAIonB,EAAY,EAElC,IAAI7rC,GAAS6rC,EAAaD,CAC1B9G,GAAOviB,IAAMz8B,KAAKi8B,MAAM/hB,GAG5B9J,EAAO0T,MAAMoiC,UAAYlH,EAAOviB,IAAM,KAEnB,IAAfuiB,EAAOviB,MAEPuiB,EAAOtiB,SAAWkpB,EAAaz/C,OAAS0/C,EAAa1/C,OAAS64C,EAAOviB,KACrErsB,EAAO0T,MAAMqiC,aAAenH,EAAOtiB,OAAS,MAKpDsiB,EAAOj6C,EAAIi6C,EAAO9kB,KAClB8kB,EAAOh6C,EAAIg6C,EAAOviB,KAYtBooB,WAAY,WAERxlD,KAAK+lD,YAAY,GAAI,GAErB,IAAIr/C,GAAS1G,KAAKsjD,gBAAgBtjD,KAAKyhD,YACvCzhD,MAAK0jD,iBAAiBh9C,EAAOG,MAAOH,EAAOI,QAAQ,IAYvDk/C,aAAc,WAELhmD,KAAK6+C,uBAEN7+C,KAAK6G,MAAQitB,EAAOnzB,KAAKsgC,MAAMjhC,KAAK6G,MAAO7G,KAAKu+C,UAAY,EAAGv+C,KAAKw+C,UAAYx+C,KAAK6G,OACrF7G,KAAK8G,OAASgtB,EAAOnzB,KAAKsgC,MAAMjhC,KAAK8G,OAAQ9G,KAAKy+C,WAAa,EAAGz+C,KAAK0+C,WAAa1+C,KAAK8G,SAG7F9G,KAAK+lD,cAEA/lD,KAAK+/C,cAAcG,YAEhBlgD,KAAK4lD,cAAgB5lD,KAAKo/C,yBAE1Bp/C,KAAKsmD,aAAY,GAAM,GAIvBtmD,KAAKsmD,YAAYtmD,KAAK+mD,sBAAuB/mD,KAAKgnD,sBAI1DhnD,KAAK6kD,0BAYTkB,YAAa,SAAUkB,EAAUC,GAEZz9C,SAAbw9C,IAA0BA,EAAWjnD,KAAK6G,MAAQ,MACpC4C,SAAdy9C,IAA2BA,EAAYlnD,KAAK8G,OAAS,KAEzD,IAAIiK,GAAS/Q,KAAK4E,KAAKmM,MAElB/Q,MAAK+/C,cAAcG,YAEpBnvC,EAAO0T,MAAMkiC,WAAa,GAC1B51C,EAAO0T,MAAMoiC,UAAY,GACzB91C,EAAO0T,MAAMmiC,YAAc,GAC3B71C,EAAO0T,MAAMqiC,aAAe,IAGhC/1C,EAAO0T,MAAM5d,MAAQogD,EACrBl2C,EAAO0T,MAAM3d,OAASogD,GAW1BvD,YAAa,SAAU9L,GAEfA,IAEA73C,KAAKwhD,cAAc36C,MAAQ,EAC3B7G,KAAKwhD,cAAc16C,OAAS,GAGhC9G,KAAKshD,gBAAkBthD,KAAKuhD,sBAUhC9kC,MAAO,SAAUwvB,GAETA,GAEAjsC,KAAKwoC,KAAK/rB,SAWlBipC,WAAY,WAER1lD,KAAK6G,MAAQ7G,KAAKs+C,IAAIiF,aAAa18C,MACnC7G,KAAK8G,OAAS9G,KAAKs+C,IAAIiF,aAAaz8C,QAWxCg/C,WAAY,SAAUqB,GAElB,GAIIpK,GAJAr2C,EAAS1G,KAAKsjD,gBAAgBtjD,KAAKyhD,aACnC56C,EAAQH,EAAOG,MACfC,EAASJ,EAAOI,MAMhBi2C,GAFAoK,EAEaxmD,KAAK2+B,IAAKx4B,EAAS9G,KAAK4E,KAAKkC,OAAUD,EAAQ7G,KAAK4E,KAAKiC,OAIzDlG,KAAK0wB,IAAKvqB,EAAS9G,KAAK4E,KAAKkC,OAAUD,EAAQ7G,KAAK4E,KAAKiC,OAG1E7G,KAAK6G,MAAQlG,KAAKi8B,MAAM58B,KAAK4E,KAAKiC,MAAQk2C,GAC1C/8C,KAAK8G,OAASnG,KAAKi8B,MAAM58B,KAAK4E,KAAKkC,OAASi2C,IAWhD4I,YAAa,WAET,GAAIj/C,GAAS1G,KAAKsjD,gBAAgBtjD,KAAKyhD,YAEvCzhD,MAAK6G,MAAQH,EAAOG,MACpB7G,KAAK8G,OAASJ,EAAOI,OAEjB9G,KAAK4lD,eAML5lD,KAAKw+C,WAELx+C,KAAK6G,MAAQlG,KAAK0wB,IAAIrxB,KAAK6G,MAAO7G,KAAKw+C,WAGvCx+C,KAAK0+C,YAEL1+C,KAAK8G,OAASnG,KAAK0wB,IAAIrxB,KAAK8G,OAAQ9G,KAAK0+C,cAcjD0I,uBAAwB,WAEpB,GAAIC,GAAW72C,SAASQ,cAAc,MAMtC,OAJAq2C,GAAS5iC,MAAMk7B,OAAS,IACxB0H,EAAS5iC,MAAM2H,QAAU,IACzBi7B,EAAS5iC,MAAM6iC,WAAa,OAErBD,GAmBXE,gBAAiB,SAAUpmD,EAAWqmD,GAElC,GAAIxnD,KAAK4lD,aAEL,OAAO,CAGX,KAAK5lD,KAAK+/C,cAAcC,mBACxB,CAEI,GAAI5Q,GAAQpvC,IAIZ,YAHAynD,YAAW,WACPrY,EAAM6T,mBACP,IAIP,GAA2C,mBAAvCjjD,KAAK+/C,cAAcO,gBACvB,CACI,GAAIxX,GAAQ9oC,KAAK4E,KAAKkkC,KAEtB,IAAIA,EAAM4e,eACN5e,EAAM4e,gBAAkB5e,EAAM6e,eAC7BH,GAAmBA,KAAoB,GAGxC,WADA1e,GAAM4e,cAAcE,mBAAmB,kBAAmB5nD,KAAKunD,gBAAiBvnD,MAAOmB,GAAW,IAKjF,mBAAdA,IAA6BnB,KAAK4E,KAAKwoC,aAAetZ,EAAO2B,SAEpEz1B,KAAK4E,KAAKvC,MAAMwlD,SAAW1mD,EAG/B,IAAIkmD,GAAWrnD,KAAKm/C,gBAEfkI,KAEDrnD,KAAK8nD,uBAEL9nD,KAAKo/C,yBAA2Bp/C,KAAKonD,yBACrCC,EAAWrnD,KAAKo/C,yBAGpB,IAAI2I,IACAC,cAAeX,EAKnB,IAFArnD,KAAKq/C,iBAAiB5S,SAASzsC,KAAM+nD,GAEjC/nD,KAAKo/C,yBACT,CAGI,GAAIruC,GAAS/Q,KAAK4E,KAAKmM,OACnB3O,EAAS2O,EAAO4vC,UACpBv+C,GAAO6lD,aAAaZ,EAAUt2C,GAC9Bs2C,EAASa,YAAYn3C,GAYzB,MATI/Q,MAAK4E,KAAK6uC,OAAO0U,mBAEjBd,EAASrnD,KAAK4E,KAAK6uC,OAAO2U,mBAAmBC,QAAQC,sBAIrDjB,EAASrnD,KAAK4E,KAAK6uC,OAAO2U,sBAGvB,GAWXG,eAAgB,WAEZ,MAAKvoD,MAAK4lD,cAAiB5lD,KAAK+/C,cAAcC,oBAK9CxvC,SAASxQ,KAAK4E,KAAK6uC,OAAO+U,qBAEnB,IALI,GAgBfV,qBAAsB,WAElB,GAAIT,GAAWrnD,KAAKo/C,wBAEpB,IAAIiI,GAAYA,EAAS1G,WACzB,CAGI,GAAIv+C,GAASilD,EAAS1G,UACtBv+C,GAAO6lD,aAAajoD,KAAK4E,KAAKmM,OAAQs2C,GACtCjlD,EAAOuG,YAAY0+C,GAGvBrnD,KAAKo/C,yBAA2B,MAYpCqJ,eAAgB,SAAUC,GAEtB,GAAIC,KAAkB3oD,KAAKo/C,yBACvBiI,EAAWrnD,KAAKo/C,0BAA4Bp/C,KAAKm/C,gBAEjDuJ,IAEIC,GAAiB3oD,KAAKojD,sBAAwBtvB,EAAOuqB,aAAayD,YAG9DuF,IAAarnD,KAAK4E,KAAKmM,SAEvB/Q,KAAKihD,oBACD2H,YAAavB,EAAS5iC,MAAM5d,MAC5BgiD,aAAcxB,EAAS5iC,MAAM3d,QAGjCugD,EAAS5iC,MAAM5d,MAAQ,OACvBwgD,EAAS5iC,MAAM3d,OAAS,SAO5B9G,KAAKihD,qBAELoG,EAAS5iC,MAAM5d,MAAQ7G,KAAKihD,mBAAmB2H,YAC/CvB,EAAS5iC,MAAM3d,OAAS9G,KAAKihD,mBAAmB4H,aAEhD7oD,KAAKihD,mBAAqB,MAI9BjhD,KAAK0jD,iBAAiB1jD,KAAKkhD,UAAUr6C,MAAO7G,KAAKkhD,UAAUp6C,QAAQ,GACnE9G,KAAK+lD,gBAYbhD,iBAAkB,SAAU7P,GAExBlzC,KAAKkzC,MAAQA,EAETlzC,KAAK4lD,cAEL5lD,KAAKyoD,gBAAe,GAEpBzoD,KAAK2kD,eACL3kD,KAAK2jD,aAAY,GAEjB3jD,KAAK8oD,gBAAgBrc,SAASzsC,KAAK6G,MAAO7G,KAAK8G,UAI/C9G,KAAKyoD,gBAAe,GAEpBzoD,KAAK8nD,uBAEL9nD,KAAK2kD,eACL3kD,KAAK2jD,aAAY,GAEjB3jD,KAAK+oD,gBAAgBtc,SAASzsC,KAAK6G,MAAO7G,KAAK8G,SAGnD9G,KAAKs/C,mBAAmB7S,SAASzsC,OAYrCijD,gBAAiB,SAAU/P,GAEvBlzC,KAAKkzC,MAAQA,EAEblzC,KAAK8nD,uBAELpzC,QAAQukB,KAAK,+FAEbj5B,KAAKu/C,kBAAkB9S,SAASzsC,OAmBpC29C,YAAa,SAAUh0B,EAAQ9iB,EAAOC,EAAQkiD,GAM1C,GAJcv/C,SAAV5C,IAAuBA,EAAQ7G,KAAK6G,OACzB4C,SAAX3C,IAAwBA,EAAS9G,KAAK8G,QACxB2C,SAAdu/C,IAA2BA,GAAY,IAEtCr/B,IAAWA,EAAc,MAE1B,MAAOA,EAMX,IAHAA,EAAOhoB,MAAM+D,EAAI,EACjBikB,EAAOhoB,MAAMgE,EAAI,EAEZgkB,EAAO9iB,OAAS,GAAO8iB,EAAO7iB,QAAU,GAAgB,GAATD,GAA0B,GAAVC,EAEhE,MAAO6iB,EAGX,IAAIs/B,GAAUpiD,EACVqiD,EAAWv/B,EAAO7iB,OAASD,EAAS8iB,EAAO9iB,MAE3CsiD,EAAWx/B,EAAO9iB,MAAQC,EAAU6iB,EAAO7iB,OAC3CsiD,EAAUtiD,EAEVuiD,EAAgBF,EAAUtiD,CA0B9B,OAtBIwiD,GAFAA,EAEeL,GAICA,EAGhBK,GAEA1/B,EAAO9iB,MAAQlG,KAAKq3B,MAAMixB,GAC1Bt/B,EAAO7iB,OAASnG,KAAKq3B,MAAMkxB,KAI3Bv/B,EAAO9iB,MAAQlG,KAAKq3B,MAAMmxB,GAC1Bx/B,EAAO7iB,OAASnG,KAAKq3B,MAAMoxB,IAOxBz/B,GAWXpmB,QAAS,WAELvD,KAAK4E,KAAK6mC,SAASM,OAAO/rC,KAAKkjD,aAAcljD,MAE7CyU,OAAO8/B,oBAAoB,oBAAqBv0C,KAAK0iD,oBAAoB,GACzEjuC,OAAO8/B,oBAAoB,SAAUv0C,KAAK4iD,eAAe,GAErD5iD,KAAK+/C,cAAcC,qBAEnBxvC,SAAS+jC,oBAAoB,yBAA0Bv0C,KAAK8iD,mBAAmB,GAC/EtyC,SAAS+jC,oBAAoB,sBAAuBv0C,KAAK8iD,mBAAmB,GAC5EtyC,SAAS+jC,oBAAoB,qBAAsBv0C,KAAK8iD,mBAAmB,GAC3EtyC,SAAS+jC,oBAAoB,mBAAoBv0C,KAAK8iD,mBAAmB,GAEzEtyC,SAAS+jC,oBAAoB,wBAAyBv0C,KAAKgjD,kBAAkB,GAC7ExyC,SAAS+jC,oBAAoB,qBAAsBv0C,KAAKgjD,kBAAkB,GAC1ExyC,SAAS+jC,oBAAoB,oBAAqBv0C,KAAKgjD,kBAAkB,GACzExyC,SAAS+jC,oBAAoB,kBAAmBv0C,KAAKgjD,kBAAkB,MAOnFlvB,EAAOuqB,aAAah7C,UAAUC,YAAcwwB,EAAOuqB,aAYnDz6C,OAAOC,eAAeiwB,EAAOuqB,aAAah7C,UAAW,kBAEjDS,IAAK,WACD,GAAI9D,KAAK0gD,gBACJ1gD,KAAK4lD,eAAiB5lD,KAAKo/C,yBAE5B,MAAO,KAGX,IAAIuB,GAAa3gD,KAAK4E,KAAKmM,QAAU/Q,KAAK4E,KAAKmM,OAAO4vC,UACtD,OAAOA,IAAc,QA0C7B/8C,OAAOC,eAAeiwB,EAAOuqB,aAAah7C,UAAW,aAEjDS,IAAK,WAED,MAAO9D,MAAKugD,YAIhBv8C,IAAK,SAAUC,GAaX,MAXIA,KAAUjE,KAAKugD,aAEVvgD,KAAK4lD,eAEN5lD,KAAK0jD,iBAAiB1jD,KAAKkhD,UAAUr6C,MAAO7G,KAAKkhD,UAAUp6C,QAAQ,GACnE9G,KAAK2jD,aAAY,IAGrB3jD,KAAKugD,WAAat8C,GAGfjE,KAAKugD,cAcpB38C,OAAOC,eAAeiwB,EAAOuqB,aAAah7C,UAAW,uBAEjDS,IAAK,WAED,MAAO9D,MAAKygD,sBAIhBz8C,IAAK,SAAUC,GAmBX,MAjBIA,KAAUjE,KAAKygD,uBAGXzgD,KAAK4lD,cAEL5lD,KAAKyoD,gBAAe,GACpBzoD,KAAKygD,qBAAuBx8C,EAC5BjE,KAAKyoD,gBAAe,GAEpBzoD,KAAK2jD,aAAY,IAIjB3jD,KAAKygD,qBAAuBx8C,GAI7BjE,KAAKygD,wBAgBpB78C,OAAOC,eAAeiwB,EAAOuqB,aAAah7C,UAAW,oBAEjDS,IAAK,WAED,MAAO9D,MAAK4lD,aAAe5lD,KAAKygD,qBAAuBzgD,KAAKugD,cAkBpE38C,OAAOC,eAAeiwB,EAAOuqB,aAAah7C,UAAW,yBAEjDS,IAAK,WAED,MAAO9D,MAAK8+C,wBAIhB96C,IAAK,SAAUC,GAEPA,IAAUjE,KAAK8+C,yBAEf9+C,KAAK8+C,uBAAyB76C,EAC9BjE,KAAK2jD,aAAY,OA0B7B//C,OAAOC,eAAeiwB,EAAOuqB,aAAah7C,UAAW,uBAEjDS,IAAK,WAED,MAAO9D,MAAK++C,sBAIhB/6C,IAAK,SAAUC,GAEPA,IAAUjE,KAAK++C,uBAEf/+C,KAAK++C,qBAAuB96C,EAC5BjE,KAAK2jD,aAAY,OAa7B//C,OAAOC,eAAeiwB,EAAOuqB,aAAah7C,UAAW,gBAEjDS,IAAK,WACD,SAAU0M,SAA4B,mBAClCA,SAAkC,yBAClCA,SAA+B,sBAC/BA,SAA8B,wBAY1C5M,OAAOC,eAAeiwB,EAAOuqB,aAAah7C,UAAW,cAEjDS,IAAK,WACD,MAA4D,aAArD9D,KAAK+kD,oBAAoB/kD,KAAKw/C,sBAY7C57C,OAAOC,eAAeiwB,EAAOuqB,aAAah7C,UAAW,eAEjDS,IAAK,WACD,MAA4D,cAArD9D,KAAK+kD,oBAAoB/kD,KAAKw/C,sBAe7C57C,OAAOC,eAAeiwB,EAAOuqB,aAAah7C,UAAW,kBAEjDS,IAAK,WACD,MAAQ9D,MAAK8G,OAAS9G,KAAK6G,SAenCjD,OAAOC,eAAeiwB,EAAOuqB,aAAah7C,UAAW,mBAEjDS,IAAK,WACD,MAAQ9D,MAAK6G,MAAQ7G,KAAK8G,UA6BlCgtB,EAAOw1B,KAAO,SAAUziD,EAAOC,EAAQL,EAAUrE,EAAQupC,EAAOzqC,EAAaC,EAAWooD,GAiZpF,MA3YAvpD,MAAK4X,GAAKkc,EAAOyB,MAAMhxB,KAAKvE,MAAQ,EAKpCA,KAAKsyC,OAAS,KAKdtyC,KAAKupD,cAAgBA,EAMrBvpD,KAAKoC,OAAS,GAWdpC,KAAK6G,MAAQ,IAWb7G,KAAK8G,OAAS,IASd9G,KAAKqB,WAAa,EAMlBrB,KAAKqI,OAAS,IAMdrI,KAAKsI,QAAU,IAMftI,KAAKkB,aAAc,EAMnBlB,KAAKmB,WAAY,EAMjBnB,KAAKoB,uBAAwB,EAM7BpB,KAAKyG,SAAW,KAMhBzG,KAAKotC,WAAatZ,EAAO0B,KAKzBx1B,KAAK2rC,MAAQ,KAMb3rC,KAAK8rC,UAAW,EAMhB9rC,KAAKwpD,WAAY,EAMjBxpD,KAAKypD,IAAM,KAKXzpD,KAAK4gC,IAAM,KAKX5gC,KAAK6mC,KAAO,KAKZ7mC,KAAK6oC,MAAQ,KAKb7oC,KAAK8oC,MAAQ,KAKb9oC,KAAK+oC,KAAO,KAKZ/oC,KAAKgpC,KAAO,KAKZhpC,KAAK0pD,IAAM,KAKX1pD,KAAK2B,MAAQ,KAKb3B,KAAKipC,MAAQ,KAKbjpC,KAAKqC,MAAQ,KAKbrC,KAAKkpC,KAAO,KAKZlpC,KAAKmpC,OAAS,KAKdnpC,KAAK8E,MAAQ,KAKb9E,KAAKqpC,QAAU,KAKfrpC,KAAK2xC,QAAU,KAKf3xC,KAAKspC,IAAM,KAKXtpC,KAAKyzC,OAAS3f,EAAO61B,OAKrB3pD,KAAK4oC,OAAS,KAKd5oC,KAAK+Q,OAAS,KAKd/Q,KAAKoN,QAAU,KAKfpN,KAAK8sC,MAAQ,KAKb9sC,KAAKopC,UAAY,KAKjBppC,KAAKoI,OAAS,KASdpI,KAAK4pD,YAAa,EAOlB5pD,KAAK6pD,UAAW,EAOhB7pD,KAAK8pD,aAAc,EAOnB9pD,KAAK+pD,UAAY,EAKjB/pD,KAAKurC,QAAU,KAKfvrC,KAAKyrC,SAAW,KAKhBzrC,KAAKgqD,OAAS,KAKdhqD,KAAKiqD,QAAU,KAMfjqD,KAAKkqD,SAAU,EAMflqD,KAAKmqD,aAAc,EAQnBnqD,KAAKoqD,gBAAkB,EAOvBpqD,KAAKqqD,iBAAmB,EAMxBrqD,KAAKsqD,WAAa,EAMlBtqD,KAAKuqD,WAAa,EAMlBvqD,KAAKwqD,WAAa,EAMlBxqD,KAAKitC,YAAa,EAQlBjtC,KAAKyqD,mBAAqB,GAAI32B,GAAO0W,OAKrCxqC,KAAK0qD,mBAAoB,EAMzB1qD,KAAK2qD,qBAAuB,EAGH,IAArBpyB,UAAU70B,QAAwC,gBAAjB60B,WAAU,GAE3Cv4B,KAAKuyC,YAAYha,UAAU,KAI3Bv4B,KAAKsyC,QAAWsY,aAAa,GAER,mBAAV/jD,KAEP7G,KAAKqI,OAASxB,GAGI,mBAAXC,KAEP9G,KAAKsI,QAAUxB,GAGK,mBAAbL,KAEPzG,KAAKotC,WAAa3mC,GAGA,mBAAXrE,KAEPpC,KAAKoC,OAASA,GAGS,mBAAhBlB,KAEPlB,KAAKkB,YAAcA,GAGE,mBAAdC,KAEPnB,KAAKmB,UAAYA,GAGrBnB,KAAKspC,IAAM,GAAIxV,GAAO+2B,sBAAsB5a,KAAK6a,MAAQnqD,KAAKm5B,UAAU5pB,aAExElQ,KAAK2rC,MAAQ,GAAI7X,GAAOiW,aAAa/pC,KAAM2rC,IAG/C3rC,KAAKyzC,OAAOsX,UAAU/qD,KAAKsrC,KAAMtrC,MAE1BA,MAIX8zB,EAAOw1B,KAAKjmD,WAQRkvC,YAAa,SAAUD,GAEnBtyC,KAAKsyC,OAASA,EAEgB7oC,SAA1B6oC,EAAoB,cAEpBtyC,KAAKsyC,OAAOsY,aAAc,GAG1BtY,EAAc,QAEdtyC,KAAKqI,OAASiqC,EAAc,OAG5BA,EAAe,SAEftyC,KAAKsI,QAAUgqC,EAAe,QAG9BA,EAAiB,WAEjBtyC,KAAKotC,WAAakF,EAAiB,UAGnCA,EAAe,SAEftyC,KAAKoC,OAASkwC,EAAe,QAG7BA,EAAoB,cAEpBtyC,KAAKkB,YAAcoxC,EAAoB,aAGvCA,EAAkB,YAElBtyC,KAAKmB,UAAYmxC,EAAkB,WAGnCA,EAAmB,aAEnBtyC,KAAKqB,WAAaixC,EAAmB,YAGrCA,EAA8B,wBAE9BtyC,KAAKoB,sBAAwBkxC,EAA8B,uBAG3DA,EAAsB,gBAEtBtyC,KAAKupD,cAAgBjX,EAAsB,cAG/C,IAAI0Y,KAAS/a,KAAK6a,MAAQnqD,KAAKm5B,UAAU5pB,WAErCoiC,GAAa,OAEb0Y,EAAO1Y,EAAa,MAGxBtyC,KAAKspC,IAAM,GAAIxV,GAAO+2B,oBAAoBG,EAE1C,IAAIrf,GAAQ,IAER2G,GAAc,QAEd3G,EAAQ2G,EAAc,OAG1BtyC,KAAK2rC,MAAQ,GAAI7X,GAAOiW,aAAa/pC,KAAM2rC,IAU/CL,KAAM,WAEEtrC,KAAK8rC,WAKT9rC,KAAKurC,QAAU,GAAIzX,GAAO0W,OAC1BxqC,KAAKyrC,SAAW,GAAI3X,GAAO0W,OAC3BxqC,KAAKgqD,OAAS,GAAIl2B,GAAO0W,OACzBxqC,KAAKiqD,QAAU,GAAIn2B,GAAO0W,OAE1BxqC,KAAK8rC,UAAW,EAEhB9rC,KAAKgpC,KAAOlV,EAAOnzB,KAEnBX,KAAK2B,MAAQ,GAAImyB,GAAOuqB,aAAar+C,KAAMA,KAAKqI,OAAQrI,KAAKsI,SAC7DtI,KAAKqC,MAAQ,GAAIyxB,GAAOlkB,MAAM5P,MAE9BA,KAAKirD,gBAELjrD,KAAK8E,MAAQ,GAAIgvB,GAAOonB,MAAMl7C,MAC9BA,KAAK4gC,IAAM,GAAI9M,GAAOo3B,kBAAkBlrD,MACxCA,KAAK6mC,KAAO,GAAI/S,GAAOq3B,kBAAkBnrD,MACzCA,KAAK6oC,MAAQ,GAAI/U,GAAOs3B,MAAMprD,MAC9BA,KAAK+oC,KAAO,GAAIjV,GAAOu3B,OAAOrrD,MAC9BA,KAAKkpC,KAAO,GAAIpV,GAAOw3B,KAAKtrD,MAC5BA,KAAKmpC,OAAS,GAAIrV,GAAOy3B,aAAavrD,MACtCA,KAAK8oC,MAAQ,GAAIhV,GAAO03B,MAAMxrD,MAC9BA,KAAKipC,MAAQ,GAAInV,GAAO23B,aAAazrD,MACrCA,KAAKqpC,QAAU,GAAIvV,GAAO8gB,QAAQ50C,KAAMA,KAAKupD,eAC7CvpD,KAAKopC,UAAY,GAAItV,GAAO43B,UAAU1rD,MACtCA,KAAKoI,OAAS,GAAI0rB,GAAO6S,OAAO3mC,MAChCA,KAAK2xC,QAAU,GAAI7d,GAAO4d,cAAc1xC,MACxCA,KAAK0pD,IAAM,GAAI51B,GAAO63B,IAAI3rD,MAE1BA,KAAKkpC,KAAKoC,OACVtrC,KAAKqC,MAAMipC,OACXtrC,KAAK8E,MAAMwmC,OACXtrC,KAAK2B,MAAM2pC,OACXtrC,KAAK8oC,MAAMwC,OACXtrC,KAAKipC,MAAMqC,OACXtrC,KAAK2rC,MAAML,OAEPtrC,KAAKsyC,OAAoB,aAEzBtyC,KAAK8sC,MAAQ,GAAIhZ,GAAOoF,MAAM0yB,MAAM5rD,MACpCA,KAAK8sC,MAAMxB,QAIXtrC,KAAK8sC,OAAUxmC,UAAW,aAAgBggC,OAAQ,aAAgB7pB,MAAO,cAG7Ezc,KAAK6rD,kBAEL7rD,KAAKwpD,WAAY,EAIbxpD,KAAKypD,IAFLzpD,KAAKsyC,QAAUtyC,KAAKsyC,OAAwB,gBAEjC,GAAIxe,GAAOg4B,sBAAsB9rD,KAAMA,KAAKsyC,OAAwB,iBAIpE,GAAIxe,GAAOg4B,sBAAsB9rD,MAAM,GAGtDA,KAAKitC,YAAa,EAEdx4B,OAAc,SAETA,OAAqB,cAAMA,OAAqB,eAAMA,OAAqB,aAAEs3C,YAE9Et3C,OAAOu3C,QAIfhsD,KAAKypD,IAAIr+C,UAUbygD,gBAAiB,WAEb,IAAIp3C,OAAqB,eAAKA,OAAqB,aAAEw3C,WAArD,CAKA,GAAIx4C,GAAIqgB,EAAO3zB,QACXke,EAAI,SACJtZ,EAAI,aACJE,EAAI,CAkBR,IAhBIjF,KAAKotC,aAAetZ,EAAO4B,OAE3BrX,EAAI,QACJpZ,KAEKjF,KAAKotC,YAActZ,EAAO6B,WAE/BtX,EAAI,YAGJre,KAAKyzC,OAAOyY,WAEZnnD,EAAI,WACJE,KAGAjF,KAAKyzC,OAAOgP,OAChB,CAWI,IAAK,GAVDpqB,IACA,oBAAsB5kB,EAAI,cAAgB3T,KAAKK,QAAU,MAAQke,EAAI,MAAQtZ,EAAI,wCACjF,sBACA,sBACA,uCACA,sBACA,sBACA,uBAGKtB,EAAI,EAAO,EAAJA,EAAOA,IAIf40B,EAAK9zB,KAFDU,EAAJxB,EAEU,mCAIA,mCAIlBiR,SAAQC,IAAIxN,MAAMuN,QAAS2jB,OAEtB5jB,QAAgB,SAErBC,QAAQC,IAAI,WAAalB,EAAI,cAAgB3T,KAAKK,QAAU,MAAQke,EAAI,MAAQtZ,EAAI,yBAW5FkmD,cAAe,WAiCX,GA7BIjrD,KAAK+Q,OAFL/Q,KAAKsyC,OAAiB,SAERxe,EAAO4e,OAAOtqC,OAAOpI,KAAK6G,MAAO7G,KAAK8G,OAAQ9G,KAAKsyC,OAAiB,UAIpExe,EAAO4e,OAAOtqC,OAAOpI,KAAK6G,MAAO7G,KAAK8G,QAGpD9G,KAAKsyC,OAAoB,YAEzBtyC,KAAK+Q,OAAO0T,MAAQzkB,KAAKsyC,OAAoB,YAI7CtyC,KAAK+Q,OAAO0T,MAAM,uBAAyB,4BAG3CzkB,KAAKyzC,OAAO2O,WAIRpiD,KAAK+Q,OAAO8e,aAFZ7vB,KAAKotC,aAAetZ,EAAO2B,QAEA,GAKA,GAI/Bz1B,KAAKotC,aAAetZ,EAAO6B,UAAY31B,KAAKotC,aAAetZ,EAAO2B,QAAWz1B,KAAKotC,aAAetZ,EAAO0B,MAAQx1B,KAAKyzC,OAAOz4B,SAAU,EAC1I,CACI,IAAIhb,KAAKyzC,OAAO1iC,OAeZ,KAAM,IAAIlI,OAAM,iEAbZ7I,MAAKotC,aAAetZ,EAAO0B,OAE3Bx1B,KAAKotC,WAAatZ,EAAO2B,QAG7Bz1B,KAAKyG,SAAW,GAAI3G,MAAK2vB,eAAezvB,KAAK6G,MAAO7G,KAAK8G,QAAU7F,KAAQjB,KAAK+Q,OACZ7P,YAAelB,KAAKkB,YACpBG,WAAcrB,KAAKqB,WACnBC,mBAAqB,IACzFtB,KAAKoN,QAAUpN,KAAKyG,SAAS2G,YAUjCpN,MAAKotC,WAAatZ,EAAO4B,MAEzB11B,KAAKyG,SAAW,GAAI3G,MAAK0iB,cAAcxiB,KAAK6G,MAAO7G,KAAK8G,QAAU7F,KAAQjB,KAAK+Q,OACX7P,YAAelB,KAAKkB,YACpBG,WAAcrB,KAAKqB,WACnBF,UAAanB,KAAKmB,UAClBC,sBAAyBpB,KAAKoB,wBAClGpB,KAAKoN,QAAU,KAEfpN,KAAK+Q,OAAOqiC,iBAAiB,mBAAoBpzC,KAAK8jB,YAAYoU,KAAKl4B,OAAO,GAC9EA,KAAK+Q,OAAOqiC,iBAAiB,uBAAwBpzC,KAAKmsD,gBAAgBj0B,KAAKl4B,OAAO,EAGtFA,MAAKotC,aAAetZ,EAAO6B,WAE3B31B,KAAKqC,MAAMwlD,SAAW7nD,KAAKmB,UAE3B2yB,EAAO4e,OAAO0Z,SAASpsD,KAAK+Q,OAAQ/Q,KAAKoC,QAAQ,GACjD0xB,EAAO4e,OAAOE,eAAe5yC,KAAK+Q,UAY1C+S,YAAa,SAAUovB,GAEnBA,EAAMmZ,iBAENrsD,KAAKyG,SAASqd,aAAc,GAUhCqoC,gBAAiB,WAEbnsD,KAAKyG,SAAS6c,cAEdtjB,KAAK6oC,MAAMyjB,kBAEXtsD,KAAKyG,SAASqd,aAAc,GAWhCwiB,OAAQ,SAAU4C,GAId,GAFAlpC,KAAKkpC,KAAK5C,OAAO4C,GAEblpC,KAAKitC,WAYL,MAVAjtC,MAAKusD,YAAY,EAAMvsD,KAAKkpC,KAAKsjB,YAGjCxsD,KAAKqC,MAAMsC,kBAGX3E,KAAKysD,aAAazsD,KAAKkpC,KAAKwjB,WAAa1sD,KAAKkpC,KAAKsjB,iBAEnDxsD,KAAKitC,YAAa,EAMtB,IAAIjtC,KAAKwqD,WAAa,IAAMxqD,KAAK0qD,kBAGzB1qD,KAAKkpC,KAAKA,KAAOlpC,KAAK2qD,uBAGtB3qD,KAAK2qD,qBAAuB3qD,KAAKkpC,KAAKA,KAAO,IAG7ClpC,KAAKyqD,mBAAmBhe,YAI5BzsC,KAAKsqD,WAAa,EAClBtqD,KAAKwqD,WAAa,EAGlBxqD,KAAKysD,aAAazsD,KAAKkpC,KAAKwjB,WAAa1sD,KAAKkpC,KAAKsjB,gBAGvD,CAEI,GAAIG,GAAkC,IAAvB3sD,KAAKkpC,KAAKwjB,WAAsB1sD,KAAKkpC,KAAKsjB,UAGzDxsD,MAAKsqD,YAAc3pD,KAAK2+B,IAAI3+B,KAAK0wB,IAAe,EAAXs7B,EAAc3sD,KAAKkpC,KAAK0jB,SAAU,EAIvE,IAAI/lC,GAAQ,CASZ,KAPA7mB,KAAKqqD,iBAAmB1pD,KAAKq3B,MAAMh4B,KAAKsqD,WAAaqC,GAEjD3sD,KAAK0qD,oBAEL1qD,KAAKqqD,iBAAmB1pD,KAAK0wB,IAAI,EAAGrxB,KAAKqqD,mBAGtCrqD,KAAKsqD,YAAcqC,IAEtB3sD,KAAKsqD,YAAcqC,EACnB3sD,KAAKoqD,gBAAkBvjC,EAEvB7mB,KAAKusD,YAAY,EAAMvsD,KAAKkpC,KAAKsjB,YAGjCxsD,KAAKqC,MAAMsC,kBAEXkiB,KAEI7mB,KAAK0qD,mBAA+B,IAAV7jC,KAO9BA,EAAQ7mB,KAAKuqD,WAEbvqD,KAAKwqD,aAEA3jC,EAAQ7mB,KAAKuqD,aAGlBvqD,KAAKwqD,WAAa,GAGtBxqD,KAAKuqD,WAAa1jC,EAGlB7mB,KAAKysD,aAAazsD,KAAKsqD,WAAaqC,KAY5CJ,YAAa,SAAUM,GAEd7sD,KAAKkqD,SAAYlqD,KAAK8pD,aA8BvB9pD,KAAK2B,MAAMkoC,cACX7pC,KAAK2rC,MAAM9B,cACX7pC,KAAK8sC,MAAMxmC,cA9BPtG,KAAK6pD,WAEL7pD,KAAK8pD,aAAc,GAGvB9pD,KAAK2B,MAAM2E,YACXtG,KAAK8sC,MAAMxmC,YACXtG,KAAK8E,MAAM8jC,OAAOtiC,YAClBtG,KAAKqpC,QAAQ/iC,YACbtG,KAAK2rC,MAAMrlC,UAAUumD,GACrB7sD,KAAK2xC,QAAQrrC,UAAUumD,GACvB7sD,KAAKqC,MAAMiE,YAEXtG,KAAK2rC,MAAMrF,SACXtmC,KAAKqC,MAAMikC,SACXtmC,KAAKmpC,OAAO7C,OAAOumB,GACnB7sD,KAAKipC,MAAM3C,SACXtmC,KAAK8oC,MAAMxC,SACXtmC,KAAKqpC,QAAQ/C,SACbtmC,KAAKopC,UAAU9C,SACftmC,KAAK2xC,QAAQrL,SAEbtmC,KAAKqC,MAAM0vC,aACX/xC,KAAK2xC,QAAQI,eA2BrB0a,aAAc,SAAUtf,GAEhBntC,KAAK4pD,aAKT5pD,KAAK2rC,MAAMjC,UAAUyD,GACrBntC,KAAKyG,SAASO,OAAOhH,KAAKqC,OAE1BrC,KAAK2xC,QAAQ3qC,OAAOmmC,GACpBntC,KAAK2rC,MAAM3kC,OAAOmmC,GAClBntC,KAAK2xC,QAAQF,WAAWtE,KAU5B2f,WAAY,WAER9sD,KAAK6pD,UAAW,EAChB7pD,KAAK8pD,aAAc,EACnB9pD,KAAK+pD,UAAY,GASrBgD,YAAa,WAET/sD,KAAK6pD,UAAW,EAChB7pD,KAAK8pD,aAAc,GAUvBkD,KAAM,WAEFhtD,KAAK8pD,aAAc,EACnB9pD,KAAK+pD,aASTxmD,QAAS,WAELvD,KAAKypD,IAAIz+C,OAEThL,KAAK2rC,MAAMpoC,UACXvD,KAAKipC,MAAM1lC,UAEXvD,KAAK2B,MAAM4B,UACXvD,KAAKqC,MAAMkB,UACXvD,KAAK8oC,MAAMvlC,UACXvD,KAAKqpC,QAAQ9lC,UAEbvD,KAAK2rC,MAAQ,KACb3rC,KAAK6oC,MAAQ,KACb7oC,KAAK8oC,MAAQ,KACb9oC,KAAK+oC,KAAO,KACZ/oC,KAAKipC,MAAQ,KACbjpC,KAAKqC,MAAQ,KACbrC,KAAKkpC,KAAO,KACZlpC,KAAK8E,MAAQ,KACb9E,KAAK8rC,UAAW,EAEhB9rC,KAAKyG,SAASlD,SAAQ,GACtBuwB,EAAO4e,OAAOua,cAAcjtD,KAAK+Q,QAEjC+iB,EAAOyB,MAAMv1B,KAAK4X,IAAM;EAW5Bq8B,WAAY,SAAUf,GAGblzC,KAAKkqD,UAENlqD,KAAKkqD,SAAU,EACflqD,KAAKkpC,KAAK+K,aACVj0C,KAAKipC,MAAMikB,UACXltD,KAAKurC,QAAQkB,SAASyG,GAGlBlzC,KAAKyzC,OAAO0Z,SAAWntD,KAAKyzC,OAAO2Z,MAEnCptD,KAAK4pD,YAAa,KAa9B1V,YAAa,SAAUhB,GAGflzC,KAAKkqD,UAAYlqD,KAAKmqD,cAEtBnqD,KAAKkqD,SAAU,EACflqD,KAAKkpC,KAAKgL,cACVl0C,KAAK8oC,MAAMrsB,QACXzc,KAAKipC,MAAMokB,YACXrtD,KAAKyrC,SAASgB,SAASyG,GAGnBlzC,KAAKyzC,OAAO0Z,SAAWntD,KAAKyzC,OAAO2Z,MAEnCptD,KAAK4pD,YAAa,KAa9B7V,UAAW,SAAUb,GAEjBlzC,KAAKgqD,OAAOvd,SAASyG,GAEhBlzC,KAAKqC,MAAM2vC,yBAEZhyC,KAAKi0C,WAAWf,IAYxBc,UAAW,SAAUd,GAEjBlzC,KAAKiqD,QAAQxd,SAASyG,GAEjBlzC,KAAKqC,MAAM2vC,yBAEZhyC,KAAKk0C,YAAYhB,KAO7Bpf,EAAOw1B,KAAKjmD,UAAUC,YAAcwwB,EAAOw1B,KAQ3C1lD,OAAOC,eAAeiwB,EAAOw1B,KAAKjmD,UAAW,UAEzCS,IAAK,WACD,MAAO9D,MAAKkqD,SAGhBlmD,IAAK,SAAUC,GAEPA,KAAU,GAENjE,KAAKkqD,WAAY,IAEjBlqD,KAAKkqD,SAAU,EACflqD,KAAKipC,MAAMikB,UACXltD,KAAKkpC,KAAK+K,aACVj0C,KAAKurC,QAAQkB,SAASzsC,OAE1BA,KAAKmqD,aAAc,IAIfnqD,KAAKkqD,UAELlqD,KAAKkqD,SAAU,EACflqD,KAAK8oC,MAAMrsB,QACXzc,KAAKipC,MAAMokB,YACXrtD,KAAKkpC,KAAKgL,cACVl0C,KAAKyrC,SAASgB,SAASzsC,OAE3BA,KAAKmqD,aAAc,MA6B/Br2B,EAAO03B,MAAQ,SAAU5mD,GAKrB5E,KAAK4E,KAAOA,EAMZ5E,KAAKstD,UAAY,KAMjBttD,KAAKutD,WAAa,KAQlBvtD,KAAKwtD,iBAMLxtD,KAAKytD,SAAW,EAShBztD,KAAK0tD,SAAU,EAMf1tD,KAAK2tD,mBAAqB75B,EAAO03B,MAAMoC,oBAMvC5tD,KAAKyB,SAAW,KAKhBzB,KAAK6tD,MAAQ,KAOb7tD,KAAK8tD,OAAS,KAKd9tD,KAAK2B,MAAQ,KAMb3B,KAAK+tD,YAAc,GAMnB/tD,KAAKguD,QAAU,IAMfhuD,KAAKiuD,cAAgB,IAMrBjuD,KAAKkuD,SAAW,IAMhBluD,KAAKmuD,gBAAkB,IAMvBnuD,KAAKouD,iBAAmB,IASxBpuD,KAAKquD,sBAAuB,EAM5BruD,KAAKsuD,WAAa,IAQlBtuD,KAAKuuD,YAAc,IAKnBvuD,KAAKwuD,SAAW,KAKhBxuD,KAAKyuD,SAAW,KAKhBzuD,KAAK0uD,SAAW,KAKhB1uD,KAAK2uD,SAAW,KAKhB3uD,KAAK4uD,SAAW,KAKhB5uD,KAAK6uD,SAAW,KAKhB7uD,KAAK8uD,SAAW,KAKhB9uD,KAAK+uD,SAAW,KAKhB/uD,KAAKgvD,SAAW,KAKhBhvD,KAAKivD,UAAY,KASjBjvD,KAAKkvD,YASLlvD,KAAK0nD,cAAgB,KAOrB1nD,KAAK2nD,aAAe,KAUpB3nD,KAAKkwC,MAAQ,KAOblwC,KAAKmvD,SAAW,KAUhBnvD,KAAKovD,MAAQ,KAUbpvD,KAAKqvD,UAAY,KAOjBrvD,KAAKsvD,QAAU,KAQftvD,KAAKuvD,aAAc,EAMnBvvD,KAAKwvD,OAAS,KAMdxvD,KAAKyvD,KAAO,KAMZzvD,KAAK0vD,MAAQ,KAMb1vD,KAAK2vD,OAAS,KAQd3vD,KAAK4vD,cAAgB,EAMrB5vD,KAAK6vD,iBAAmB,GAAI/7B,GAAOulB,SAMnCr5C,KAAK8vD,YAAc,GAAIh8B,GAAOpyB,MAM9B1B,KAAK+vD,aAAe,EAMpB/vD,KAAKgwD,aAAe,KAMpBhwD,KAAKiwD,GAAK,EAMVjwD,KAAKkwD,GAAK,GAQdp8B,EAAO03B,MAAM2E,sBAAwB,EAMrCr8B,EAAO03B,MAAM4E,sBAAwB,EAMrCt8B,EAAO03B,MAAMoC,oBAAsB,EAOnC95B,EAAO03B,MAAM6E,aAAe,GAE5Bv8B,EAAO03B,MAAMnoD,WAQTioC,KAAM,WAEFtrC,KAAK2nD,aAAe,GAAI7zB,GAAOw8B,QAAQtwD,KAAK4E,KAAM,GAClD5E,KAAKuwD,aACLvwD,KAAKuwD,aAELvwD,KAAKkwC,MAAQ,GAAIpc,GAAO08B,MAAMxwD,KAAK4E,MACnC5E,KAAKovD,MAAQ,GAAIt7B,GAAO28B,MAAMzwD,KAAK4E,MACnC5E,KAAKqvD,UAAY,GAAIv7B,GAAO48B,UAAU1wD,KAAK4E,MAEvCkvB,EAAO68B,WAEP3wD,KAAKmvD,SAAW,GAAIr7B,GAAO68B,SAAS3wD,KAAK4E,OAGzCkvB,EAAO88B,UAEP5wD,KAAKsvD,QAAU,GAAIx7B,GAAO88B,QAAQ5wD,KAAK4E,OAG3C5E,KAAKwvD,OAAS,GAAI17B,GAAO0W,OACzBxqC,KAAKyvD,KAAO,GAAI37B,GAAO0W,OACvBxqC,KAAK0vD,MAAQ,GAAI57B,GAAO0W,OACxBxqC,KAAK2vD,OAAS,GAAI77B,GAAO0W,OAEzBxqC,KAAK2B,MAAQ,GAAImyB,GAAOpyB,MAAM,EAAG,GACjC1B,KAAK6tD,MAAQ,GAAI/5B,GAAOpyB,MACxB1B,KAAKyB,SAAW,GAAIqyB,GAAOpyB,MAC3B1B,KAAKgwD,aAAe,GAAIl8B,GAAOpyB,MAE/B1B,KAAK8tD,OAAS,GAAIh6B,GAAOmI,OAAO,EAAG,EAAG,IAEtCj8B,KAAK0nD,cAAgB1nD,KAAK2nD,aAE1B3nD,KAAKstD,UAAY98C,SAASQ,cAAc,UACxChR,KAAKstD,UAAUzmD,MAAQ,EACvB7G,KAAKstD,UAAUxmD,OAAS,EACxB9G,KAAKutD,WAAavtD,KAAKstD,UAAUr8C,WAAW,MAE5CjR,KAAKkwC,MAAM9kC,QACXpL,KAAKovD,MAAMhkD,QACXpL,KAAKqvD,UAAUjkD,QACfpL,KAAK2nD,aAAala,QAAS,EAEvBztC,KAAKmvD,UAELnvD,KAAKmvD,SAAS/jD,OAGlB,IAAIgkC,GAAQpvC,IAEZA,MAAK6wD,mBAAqB,SAAU3d,GAChC9D,EAAM0hB,kBAAkB5d,IAG5BlzC,KAAK4E,KAAKmM,OAAOqiC,iBAAiB,QAASpzC,KAAK6wD,oBAAoB,IASxEttD,QAAS,WAELvD,KAAKkwC,MAAMllC,OACXhL,KAAKovD,MAAMpkD,OACXhL,KAAKqvD,UAAUrkD,OAEXhL,KAAKmvD,UAELnvD,KAAKmvD,SAASnkD,OAGdhL,KAAKsvD,SAELtvD,KAAKsvD,QAAQtkD,OAGjBhL,KAAKwtD,iBAELxtD,KAAK4E,KAAKmM,OAAOwjC,oBAAoB,QAASv0C,KAAK6wD,qBAkBvDE,gBAAiB,SAAUpY,EAAUvrC,GAEjCpN,KAAKwtD,cAAcjpD,MAAOo0C,SAAUA,EAAUvrC,QAASA,KAW3D4jD,mBAAoB,SAAUrY,EAAUvrC,GAIpC,IAFA,GAAI3J,GAAIzD,KAAKwtD,cAAc9pD,OAEpBD,KAEH,GAAIzD,KAAKwtD,cAAc/pD,GAAGk1C,WAAaA,GAAY34C,KAAKwtD,cAAc/pD,GAAG2J,UAAYA,EAGjF,WADApN,MAAKwtD,cAAc5kD,OAAOnF,EAAG,IAezC8sD,WAAY,WAER,GAAIvwD,KAAKkvD,SAASxrD,QAAUowB,EAAO03B,MAAM6E,aAGrC,MADA37C,SAAQukB,KAAK,6CAA+CnF,EAAO03B,MAAM6E,aAAe,sBACjF,IAGX,IAAIz4C,GAAK5X,KAAKkvD,SAASxrD,OAAS,EAC5BstC,EAAU,GAAIld,GAAOw8B,QAAQtwD,KAAK4E,KAAMgT,EAK5C,OAHA5X,MAAKkvD,SAAS3qD,KAAKysC,GACnBhxC,KAAK,UAAY4X,GAAMo5B,EAEhBA,GAUX1K,OAAQ,WAOJ,GALItmC,KAAKmvD,UAELnvD,KAAKmvD,SAAS7oB,SAGdtmC,KAAKytD,SAAW,GAAKztD,KAAK+vD,aAAe/vD,KAAKytD,SAG9C,WADAztD,MAAK+vD,cAIT/vD,MAAK6tD,MAAMnoD,EAAI1F,KAAKyB,SAASiE,EAAI1F,KAAKgwD,aAAatqD,EACnD1F,KAAK6tD,MAAMloD,EAAI3F,KAAKyB,SAASkE,EAAI3F,KAAKgwD,aAAarqD,EAEnD3F,KAAKgwD,aAAaxzB,SAASx8B,KAAKyB,UAChCzB,KAAK2nD,aAAarhB,SAEdtmC,KAAKsvD,SAAWtvD,KAAKsvD,QAAQ7hB,QAE7BztC,KAAKsvD,QAAQhpB,QAGjB,KAAK,GAAI7iC,GAAI,EAAGA,EAAIzD,KAAKkvD,SAASxrD,OAAQD,IAEtCzD,KAAKkvD,SAASzrD,GAAG6iC,QAGrBtmC,MAAK+vD,aAAe,GAexBtzC,MAAO,SAAUw0C,GAEb,GAAKjxD,KAAK4E,KAAKknC,WAAY9rC,KAAKuvD,YAAhC,CAKa9lD,SAATwnD,IAAsBA,GAAO,GAEjCjxD,KAAK2nD,aAAalrC,QAEdzc,KAAKmvD,UAELnvD,KAAKmvD,SAAS1yC,MAAMw0C,GAGpBjxD,KAAKsvD,SAELtvD,KAAKsvD,QAAQ7yC,OAGjB,KAAK,GAAIhZ,GAAI,EAAGA,EAAIzD,KAAKkvD,SAASxrD,OAAQD,IAEtCzD,KAAKkvD,SAASzrD,GAAGgZ,OAGiB,UAAlCzc,KAAK4E,KAAKmM,OAAO0T,MAAM0wB,SAEvBn1C,KAAK4E,KAAKmM,OAAO0T,MAAM0wB,OAAS,WAGhC8b,IAEAjxD,KAAKwvD,OAAOrgB,UACZnvC,KAAKyvD,KAAKtgB,UACVnvC,KAAK0vD,MAAMvgB,UACXnvC,KAAK2vD,OAAOxgB,UACZnvC,KAAKwvD,OAAS,GAAI17B,GAAO0W,OACzBxqC,KAAKyvD,KAAO,GAAI37B,GAAO0W,OACvBxqC,KAAK0vD,MAAQ,GAAI57B,GAAO0W,OACxBxqC,KAAK2vD,OAAS,GAAI77B,GAAO0W,OACzBxqC,KAAKwtD,kBAGTxtD,KAAK+vD,aAAe,IAWxBmB,WAAY,SAAUxrD,EAAGC,GAErB3F,KAAKgwD,aAAazzB,MAAM72B,EAAGC,GAC3B3F,KAAK6tD,MAAMtxB,MAAM,EAAG,IAaxB40B,aAAc,SAAUje,GAEpB,GAAIlzC,KAAK+tD,aAAe,GAAK/tD,KAAKoxD,oBAAoBpxD,KAAK+tD,cAAgB/tD,KAAK+tD,YAE5E,MAAO,KAGX,KAAK/tD,KAAKwuD,SAAS/gB,OAEf,MAAOztC,MAAKwuD,SAASpjD,MAAM8nC,EAG/B,KAAKlzC,KAAKyuD,SAAShhB,OAEf,MAAOztC,MAAKyuD,SAASrjD,MAAM8nC,EAG/B,KAAK,GAAIzvC,GAAI,EAAGA,EAAIzD,KAAKkvD,SAASxrD,OAAQD,IAC1C,CACI,GAAIutC,GAAUhxC,KAAKkvD,SAASzrD,EAE5B,KAAKutC,EAAQvD,OAET,MAAOuD,GAAQ5lC,MAAM8nC,GAI7B,MAAO,OAaXme,cAAe,SAAUne,GAErB,GAAIlzC,KAAKwuD,SAAS/gB,QAAUztC,KAAKwuD,SAAS8C,aAAepe,EAAMoe,WAE3D,MAAOtxD,MAAKwuD,SAAS+C,KAAKre,EAG9B,IAAIlzC,KAAKyuD,SAAShhB,QAAUztC,KAAKyuD,SAAS6C,aAAepe,EAAMoe,WAE3D,MAAOtxD,MAAKyuD,SAAS8C,KAAKre,EAG9B,KAAK,GAAIzvC,GAAI,EAAGA,EAAIzD,KAAKkvD,SAASxrD,OAAQD,IAC1C,CACI,GAAIutC,GAAUhxC,KAAKkvD,SAASzrD,EAE5B,IAAIutC,EAAQvD,QAAUuD,EAAQsgB,aAAepe,EAAMoe,WAE/C,MAAOtgB,GAAQugB,KAAKre,GAI5B,MAAO,OAYXse,YAAa,SAAUte,GAEnB,GAAIlzC,KAAKwuD,SAAS/gB,QAAUztC,KAAKwuD,SAAS8C,aAAepe,EAAMoe,WAE3D,MAAOtxD,MAAKwuD,SAASxjD,KAAKkoC,EAG9B,IAAIlzC,KAAKyuD,SAAShhB,QAAUztC,KAAKyuD,SAAS6C,aAAepe,EAAMoe,WAE3D,MAAOtxD,MAAKyuD,SAASzjD,KAAKkoC,EAG9B,KAAK,GAAIzvC,GAAI,EAAGA,EAAIzD,KAAKkvD,SAASxrD,OAAQD,IAC1C,CACI,GAAIutC,GAAUhxC,KAAKkvD,SAASzrD,EAE5B,IAAIutC,EAAQvD,QAAUuD,EAAQsgB,aAAepe,EAAMoe,WAE/C,MAAOtgB,GAAQhmC,KAAKkoC,GAI5B,MAAO,OAYXke,oBAAqB,SAAUK,GAEbhoD,SAAVgoD,IAAuBA,EAAQzxD,KAAKkvD,SAASxrD,OAIjD,KAAK,GAFDmjB,GAAQ4qC,EAEHhuD,EAAI,EAAGA,EAAIzD,KAAKkvD,SAASxrD,QAAUmjB,EAAQ,EAAGpjB,IACvD,CACI,GAAIutC,GAAUhxC,KAAKkvD,SAASzrD,EAExButC,GAAQvD,QAER5mB,IAIR,MAAQ4qC,GAAQ5qC,GAWpB6qC,WAAY,SAAUC,GAEDloD,SAAbkoD,IAA0BA,GAAW,EAEzC,KAAK,GAAIluD,GAAI,EAAGA,EAAIzD,KAAKkvD,SAASxrD,OAAQD,IAC1C,CACI,GAAIutC,GAAUhxC,KAAKkvD,SAASzrD,EAE5B,IAAIutC,EAAQvD,SAAWkkB,EAEnB,MAAO3gB,GAIf,MAAO,OAeX4gB,yBAA0B,SAAUN,GAEhC,IAAK,GAAI7tD,GAAI,EAAGA,EAAIzD,KAAKkvD,SAASxrD,OAAQD,IAC1C,CACI,GAAIutC,GAAUhxC,KAAKkvD,SAASzrD,EAE5B,IAAIutC,EAAQsgB,aAAeA,EAEvB,MAAOtgB,GAIf,MAAO,OAcX6gB,iBAAkB,SAAUC,GAExB,IAAK,GAAIruD,GAAI,EAAGA,EAAIzD,KAAKkvD,SAASxrD,OAAQD,IAC1C,CACI,GAAIutC,GAAUhxC,KAAKkvD,SAASzrD,EAE5B,IAAIutC,EAAQ8gB,YAAcA,EAEtB,MAAO9gB,GAIf,MAAO,OAYX+gB,iBAAkB,SAAUxtC,EAAeysB,EAASnU,GAEjCpzB,SAAXozB,IAAwBA,EAAS,GAAI/I,GAAOpyB,MAEhD,IAAI4D,GAAKif,EAAchiB,eACnBqV,EAAK,GAAKtS,EAAGP,EAAIO,EAAGJ,EAAII,EAAGL,GAAKK,EAAGN,EAEvC,OAAO63B,GAAON,MACVj3B,EAAGJ,EAAI0S,EAAKo5B,EAAQtrC,GAAKJ,EAAGL,EAAI2S,EAAKo5B,EAAQrrC,GAAKL,EAAGF,GAAKE,EAAGL,EAAIK,EAAGH,GAAKG,EAAGJ,GAAK0S,EACjFtS,EAAGP,EAAI6S,EAAKo5B,EAAQrrC,GAAKL,EAAGN,EAAI4S,EAAKo5B,EAAQtrC,IAAMJ,EAAGF,GAAKE,EAAGP,EAAIO,EAAGH,GAAKG,EAAGN,GAAK4S,IAa1Fo6C,QAAS,SAAUztC,EAAeysB,EAASihB,GAEvC,IAAK1tC,EAAc2tC,aAEf,OAAO,CAOX,IAJAlyD,KAAK+xD,iBAAiBxtC,EAAeysB,EAAShxC,KAAK8vD,aAEnDmC,EAAWz1B,SAASx8B,KAAK8vD,aAErBvrC,EAAcriB,SAAWqiB,EAAcriB,QAAQ46B,SAE/C,MAAQvY,GAAcriB,QAAQ46B,SAAS98B,KAAK8vD,YAAYpqD,EAAG1F,KAAK8vD,YAAYnqD,EAE3E,IAAI4e,YAAyBuP,GAAOq+B,WACzC,CACI,GAAItrD,GAAQ0d,EAAc1d,MACtBC,EAASyd,EAAczd,OACvB4F,GAAM7F,EAAQ0d,EAAcrc,OAAOxC,CAEvC,IAAI1F,KAAK8vD,YAAYpqD,GAAKgH,GAAM1M,KAAK8vD,YAAYpqD,EAAIgH,EAAK7F,EAC1D,CACI,GAAI8F,IAAM7F,EAASyd,EAAcrc,OAAOvC,CAExC,IAAI3F,KAAK8vD,YAAYnqD,GAAKgH,GAAM3M,KAAK8vD,YAAYnqD,EAAIgH,EAAK7F,EAEtD,OAAO,OAId,IAAIyd,YAAyBzkB,MAAK6H,OACvC,CACI,GAAId,GAAQ0d,EAAczc,QAAQqE,MAAMtF,MACpCC,EAASyd,EAAczc,QAAQqE,MAAMrF,OACrC4F,GAAM7F,EAAQ0d,EAAcrc,OAAOxC,CAEvC,IAAI1F,KAAK8vD,YAAYpqD,GAAKgH,GAAM1M,KAAK8vD,YAAYpqD,EAAIgH,EAAK7F,EAC1D,CACI,GAAI8F,IAAM7F,EAASyd,EAAcrc,OAAOvC,CAExC,IAAI3F,KAAK8vD,YAAYnqD,GAAKgH,GAAM3M,KAAK8vD,YAAYnqD,EAAIgH,EAAK7F,EAEtD,OAAO,OAId,IAAIyd,YAAyBuP,GAAOnX,SAErC,IAAK,GAAIlZ,GAAI,EAAGA,EAAI8gB,EAAc/H,aAAa9Y,OAAQD,IACvD,CACI,GAAI0N,GAAOoT,EAAc/H,aAAa/Y,EAEtC,IAAK0N,EAAK8L,MAMN9L,EAAK2L,OAAS3L,EAAK2L,MAAMggB,SAAS98B,KAAK8vD,YAAYpqD,EAAG1F,KAAK8vD,YAAYnqD,GAEvE,OAAO,EAOnB,IAAK,GAAIlC,GAAI,EAAG8tB,EAAMhN,EAAc/gB,SAASE,OAAY6tB,EAAJ9tB,EAASA,IAE1D,GAAIzD,KAAKgyD,QAAQztC,EAAc/gB,SAASC,GAAIutC,EAASihB,GAEjD,OAAO,CAIf,QAAO,GASXnB,kBAAmB,WAIf9wD,KAAK0nD,cAAc0K,4BAM3Bt+B,EAAO03B,MAAMnoD,UAAUC,YAAcwwB,EAAO03B,MAQ5C5nD,OAAOC,eAAeiwB,EAAO03B,MAAMnoD,UAAW,KAE1CS,IAAK,WACD,MAAO9D,MAAKiwD,IAGhBjsD,IAAK,SAAUC,GACXjE,KAAKiwD,GAAKtvD,KAAKq3B,MAAM/zB,MAW7BL,OAAOC,eAAeiwB,EAAO03B,MAAMnoD,UAAW,KAE1CS,IAAK,WACD,MAAO9D,MAAKkwD,IAGhBlsD,IAAK,SAAUC,GACXjE,KAAKkwD,GAAKvvD,KAAKq3B,MAAM/zB,MAW7BL,OAAOC,eAAeiwB,EAAO03B,MAAMnoD,UAAW,cAE1CS,IAAK,WACD,MAAQ9D,MAAKytD,SAAW,GAAKztD,KAAK+vD,aAAe/vD,KAAKytD,YAW9D7pD,OAAOC,eAAeiwB,EAAO03B,MAAMnoD,UAAW,yBAE1CS,IAAK,WACD,MAAO9D,MAAKkvD,SAASxrD,OAAS1D,KAAKoxD,yBAW3CxtD,OAAOC,eAAeiwB,EAAO03B,MAAMnoD,UAAW,uBAE1CS,IAAK,WACD,MAAO9D,MAAKoxD,yBAWpBxtD,OAAOC,eAAeiwB,EAAO03B,MAAMnoD,UAAW,UAE1CS,IAAK,WACD,MAAO9D,MAAK4E,KAAKgkC,OAAO3nC,KAAKyE,EAAI1F,KAAK0F,KAW9C9B,OAAOC,eAAeiwB,EAAO03B,MAAMnoD,UAAW,UAE1CS,IAAK,WACD,MAAO9D,MAAK4E,KAAKgkC,OAAO3nC,KAAK0E,EAAI3F,KAAK2F,KAyB9CmuB,EAAO08B,MAAQ,SAAU5rD,GAKrB5E,KAAK4E,KAAOA,EAMZ5E,KAAK8oC,MAAQlkC,EAAKkkC,MAKlB9oC,KAAKgsC,gBAAkBhsC,KAAK4E,KAK5B5E,KAAKqyD,kBAAoB,KAKzBryD,KAAKsyD,gBAAkB,KAKvBtyD,KAAKuyD,iBAAmB,KAKxBvyD,KAAKwyD,kBAAoB,KAKzBxyD,KAAKyyD,mBAAqB,KAK1BzyD,KAAK0yD,SAAU,EASf1yD,KAAK2yD,OAAS,GAMd3yD,KAAK4yD,WAAa,EAOlB5yD,KAAK0tD,SAAU,EAMf1tD,KAAK6yD,QAAS,EAMd7yD,KAAK8yD,eAAgB,EAMrB9yD,KAAK+yD,YAAc,GAAIj/B,GAAO0W,OAQ9BxqC,KAAKkzC,MAAQ,KAMblzC,KAAKgzD,aAAe,KAMpBhzD,KAAKizD,aAAe,KAMpBjzD,KAAKkzD,WAAa,KAMlBlzD,KAAKmzD,YAAc,KAMnBnzD,KAAKozD,aAAe,KAMpBpzD,KAAKqzD,cAAgB,KAOrBrzD,KAAKszD,YAAc,MAQvBx/B,EAAO08B,MAAM+C,UAAY,GAMzBz/B,EAAO08B,MAAMgD,YAAc,EAM3B1/B,EAAO08B,MAAMiD,cAAgB,EAM7B3/B,EAAO08B,MAAMkD,aAAe,EAM5B5/B,EAAO08B,MAAMmD,YAAc,EAM3B7/B,EAAO08B,MAAMoD,eAAiB,EAM9B9/B,EAAO08B,MAAMqD,SAAW,EAMxB//B,EAAO08B,MAAMsD,WAAa,GAE1BhgC,EAAO08B,MAAMntD,WAMT+H,MAAO,WAEH,KAAIpL,KAAK4E,KAAK6uC,OAAO+O,SAAWxiD,KAAK4E,KAAK6uC,OAAOgP,UAAW,IAMlC,OAAtBziD,KAAKgzD,aAAT,CAMA,GAAI5jB,GAAQpvC,IAEZA,MAAKgzD,aAAe,SAAU9f,GAC1B,MAAO9D,GAAM2kB,YAAY7gB,IAG7BlzC,KAAKizD,aAAe,SAAU/f,GAC1B,MAAO9D,GAAM4kB,YAAY9gB,IAG7BlzC,KAAKkzD,WAAa,SAAUhgB,GACxB,MAAO9D,GAAM6kB,UAAU/gB,IAG3BlzC,KAAKk0D,iBAAmB,SAAUhhB,GAC9B,MAAO9D,GAAM+kB,gBAAgBjhB,IAGjClzC,KAAKmzD,YAAc,SAAUjgB,GACzB,MAAO9D,GAAMglB,WAAWlhB,IAG5BlzC,KAAKozD,aAAe,SAAUlgB,GAC1B,MAAO9D,GAAMilB,YAAYnhB,IAG7BlzC,KAAKqzD,cAAgB,SAAUngB,GAC3B,MAAO9D,GAAMklB,aAAaphB,GAG9B,IAAIniC,GAAS/Q,KAAK4E,KAAKmM,MAEvBA,GAAOqiC,iBAAiB,YAAapzC,KAAKgzD,cAAc,GACxDjiD,EAAOqiC,iBAAiB,YAAapzC,KAAKizD,cAAc,GACxDliD,EAAOqiC,iBAAiB,UAAWpzC,KAAKkzD,YAAY,GAE/ClzD,KAAK4E,KAAK6uC,OAAO2O,WAElB3tC,OAAO2+B,iBAAiB,UAAWpzC,KAAKk0D,kBAAkB,GAC1DnjD,EAAOqiC,iBAAiB,YAAapzC,KAAKozD,cAAc,GACxDriD,EAAOqiC,iBAAiB,WAAYpzC,KAAKmzD,aAAa,GAG1D,IAAIoB,GAAav0D,KAAK4E,KAAK6uC,OAAO8gB,UAE9BA,KAEAxjD,EAAOqiC,iBAAiBmhB,EAAYv0D,KAAKqzD,eAAe,GAErC,eAAfkB,EAEAv0D,KAAKszD,YAAc,GAAIr+B,GAAgB,GAAG,GAAI,GAE1B,mBAAfs/B,IAELv0D,KAAKszD,YAAc,GAAIr+B,GAAgB,EAAG,OAWtD8+B,YAAa,SAAU7gB,GAEnBlzC,KAAKkzC,MAAQA,EAETlzC,KAAK0yD,SAELxf,EAAMmZ,iBAGNrsD,KAAKqyD,mBAELryD,KAAKqyD,kBAAkBvsD,KAAK9F,KAAKgsC,gBAAiBkH,GAGjDlzC,KAAK8oC,MAAM4kB,SAAY1tD,KAAK0tD,UAKjCxa,EAAkB,WAAI,EAEtBlzC,KAAK8oC,MAAM6e,aAAav8C,MAAM8nC,KASlC8gB,YAAa,SAAU9gB,GAEnBlzC,KAAKkzC,MAAQA,EAETlzC,KAAK0yD,SAELxf,EAAMmZ,iBAGNrsD,KAAKw0D,mBAELx0D,KAAKw0D,kBAAkB1uD,KAAK9F,KAAKgsC,gBAAiBkH,GAGjDlzC,KAAK8oC,MAAM4kB,SAAY1tD,KAAK0tD,UAKjCxa,EAAkB,WAAI,EAEtBlzC,KAAK8oC,MAAM6e,aAAa4J,KAAKre,KASjC+gB,UAAW,SAAU/gB,GAEjBlzC,KAAKkzC,MAAQA,EAETlzC,KAAK0yD,SAELxf,EAAMmZ,iBAGNrsD,KAAKsyD,iBAELtyD,KAAKsyD,gBAAgBxsD,KAAK9F,KAAKgsC,gBAAiBkH,GAG/ClzC,KAAK8oC,MAAM4kB,SAAY1tD,KAAK0tD,UAKjCxa,EAAkB,WAAI,EAEtBlzC,KAAK8oC,MAAM6e,aAAa38C,KAAKkoC,KAUjCihB,gBAAiB,SAAUjhB,GAElBlzC,KAAK8oC,MAAM6e,aAAa8M,aAErBz0D,KAAKsyD,iBAELtyD,KAAKsyD,gBAAgBxsD,KAAK9F,KAAKgsC,gBAAiBkH,GAGpDA,EAAkB,WAAI,EAEtBlzC,KAAK8oC,MAAM6e,aAAa38C,KAAKkoC,KAWrCkhB,WAAY,SAAUlhB,GAElBlzC,KAAKkzC,MAAQA,EAETlzC,KAAK0yD,SAELxf,EAAMmZ,iBAGVrsD,KAAK8oC,MAAM6e,aAAa8M,YAAa,EAEjCz0D,KAAKuyD,kBAELvyD,KAAKuyD,iBAAiBzsD,KAAK9F,KAAKgsC,gBAAiBkH,GAGhDlzC,KAAK8oC,MAAM4kB,SAAY1tD,KAAK0tD,SAK7B1tD,KAAK8yD,gBAEL5f,EAAkB,WAAI,EAEtBlzC,KAAK8oC,MAAM6e,aAAa38C,KAAKkoC,KAWrCohB,aAAc,SAAUphB,GAEhBlzC,KAAKszD,cACLpgB,EAAQlzC,KAAKszD,YAAYoB,UAAUxhB,IAGvClzC,KAAKkzC,MAAQA,EAETlzC,KAAK0yD,SAELxf,EAAMmZ,iBAIVrsD,KAAK4yD,WAAa9+B,EAAOnzB,KAAKsgC,OAAOiS,EAAMyhB,OAAQ,GAAI,GAEnD30D,KAAKyyD,oBAELzyD,KAAKyyD,mBAAmB3sD,KAAK9F,KAAKgsC,gBAAiBkH,IAW3DmhB,YAAa,SAAUnhB,GAEnBlzC,KAAKkzC,MAAQA,EAETlzC,KAAK0yD,SAELxf,EAAMmZ,iBAGVrsD,KAAK8oC,MAAM6e,aAAa8M,YAAa,EAEjCz0D,KAAKwyD,mBAELxyD,KAAKwyD,kBAAkB1sD,KAAK9F,KAAKgsC,gBAAiBkH,IAGjDlzC,KAAK8oC,MAAM4kB,UAAY1tD,KAAK0tD,SAarCkH,mBAAoB,WAEhB,GAAI50D,KAAK4E,KAAK6uC,OAAOsf,YACrB,CACI,GAAI8B,GAAU70D,KAAK4E,KAAKmM,MAExB8jD,GAAQD,mBAAqBC,EAAQD,oBAAsBC,EAAQC,uBAAyBD,EAAQE,yBAEpGF,EAAQD,oBAER,IAAIxlB,GAAQpvC,IAEZA,MAAKg1D,mBAAqB,SAAU9hB,GAChC,MAAO9D,GAAM6lB,kBAAkB/hB,IAGnC1iC,SAAS4iC,iBAAiB,oBAAqBpzC,KAAKg1D,oBAAoB,GACxExkD,SAAS4iC,iBAAiB,uBAAwBpzC,KAAKg1D,oBAAoB,GAC3ExkD,SAAS4iC,iBAAiB,0BAA2BpzC,KAAKg1D,oBAAoB,KAWtFC,kBAAmB,SAAU/hB,GAEzB,GAAI2hB,GAAU70D,KAAK4E,KAAKmM,MAEpBP,UAAS0kD,qBAAuBL,GAAWrkD,SAAS2kD,wBAA0BN,GAAWrkD,SAAS4kD,2BAA6BP,GAG/H70D,KAAK6yD,QAAS,EACd7yD,KAAK+yD,YAAYtmB,UAAS,EAAMyG,KAKhClzC,KAAK6yD,QAAS,EACd7yD,KAAK+yD,YAAYtmB,UAAS,EAAOyG,KASzCmiB,mBAAoB,WAEhB7kD,SAAS8kD,gBAAkB9kD,SAAS8kD,iBAAmB9kD,SAAS+kD,oBAAsB/kD,SAASglD,sBAE/FhlD,SAAS8kD,kBAET9kD,SAAS+jC,oBAAoB,oBAAqBv0C,KAAKg1D,oBAAoB,GAC3ExkD,SAAS+jC,oBAAoB,uBAAwBv0C,KAAKg1D,oBAAoB,GAC9ExkD,SAAS+jC,oBAAoB,0BAA2Bv0C,KAAKg1D,oBAAoB,IAQrFhqD,KAAM,WAEF,GAAI+F,GAAS/Q,KAAK4E,KAAKmM,MAEvBA,GAAOwjC,oBAAoB,YAAav0C,KAAKgzD,cAAc,GAC3DjiD,EAAOwjC,oBAAoB,YAAav0C,KAAKizD,cAAc,GAC3DliD,EAAOwjC,oBAAoB,UAAWv0C,KAAKkzD,YAAY,GACvDniD,EAAOwjC,oBAAoB,YAAav0C,KAAKozD,cAAc,GAC3DriD,EAAOwjC,oBAAoB,WAAYv0C,KAAKmzD,aAAa,EAEzD,IAAIoB,GAAav0D,KAAK4E,KAAK6uC,OAAO8gB,UAE9BA,IAEAxjD,EAAOwjC,oBAAoBggB,EAAYv0D,KAAKqzD,eAAe,GAG/D5+C,OAAO8/B,oBAAoB,UAAWv0C,KAAKk0D,kBAAkB,GAE7D1jD,SAAS+jC,oBAAoB,oBAAqBv0C,KAAKg1D,oBAAoB,GAC3ExkD,SAAS+jC,oBAAoB,uBAAwBv0C,KAAKg1D,oBAAoB,GAC9ExkD,SAAS+jC,oBAAoB,0BAA2Bv0C,KAAKg1D,oBAAoB,KAMzFlhC,EAAO08B,MAAMntD,UAAUC,YAAcwwB,EAAO08B,MAoC5Cv7B,EAAgB5xB,aAChB4xB,EAAgB5xB,UAAUC,YAAc2xB,EAExCA,EAAgB5xB,UAAUqxD,UAAY,SAAUxhB,GAG5C,IAAKje,EAAgBwgC,iBAAmBviB,EACxC,CACI,GAAIwiB,GAAa,SAAUv6B,GAEvB,MAAO,YACH,GAAI1nB,GAAIzT,KAAKs1B,cAAc6F,EAC3B,OAAoB,kBAAN1nB,GAAmBA,EAAIA,EAAEykB,KAAKl4B,KAAKs1B,gBAKzD,KAAK,GAAI+D,KAAQ6Z,GAEP7Z,IAAQpE,GAAgB5xB,WAE1BO,OAAOC,eAAeoxB,EAAgB5xB,UAAWg2B,GAC7Cv1B,IAAK4xD,EAAWr8B,IAI5BpE,GAAgBwgC,iBAAkB,EAItC,MADAz1D,MAAKs1B,cAAgB4d,EACdlzC,MAIX4D,OAAO+xD,iBAAiB1gC,EAAgB5xB,WACpC0T,MAAU9S,MAAO,SACjBkxB,WAAerxB,IAAK,WAAc,MAAO9D,MAAKq1B,aAC9Cs/B,QACI7wD,IAAK,WACD,MAAQ9D,MAAKo1B,cAAgBp1B,KAAKs1B,cAAcs9B,YAAc5yD,KAAKs1B,cAAcsgC,SAAY,IAGrGC,QACI/xD,IAAK,WACD,MAAQ9D,MAAKo1B,aAAep1B,KAAKs1B,cAAcwgC,aAAgB,IAGvEC,QAAY9xD,MAAO,KAyBvB6vB,EAAO48B,UAAY,SAAU9rD,GAKzB5E,KAAK4E,KAAOA,EAMZ5E,KAAK8oC,MAAQlkC,EAAKkkC,MAKlB9oC,KAAKgsC,gBAAkBhsC,KAAK4E,KAK5B5E,KAAKg2D,oBAAsB,KAK3Bh2D,KAAKi2D,oBAAsB,KAK3Bj2D,KAAKk2D,kBAAoB,KAKzBl2D,KAAK0yD,SAAU,EAQf1yD,KAAK2yD,OAAS,GAQd3yD,KAAKkzC,MAAQ,KAOblzC,KAAK0tD,SAAU,EAMf1tD,KAAKm2D,iBAAmB,KAMxBn2D,KAAKo2D,iBAAmB,KAMxBp2D,KAAKq2D,eAAiB,MAI1BviC,EAAO48B,UAAUrtD,WAMb+H,MAAO,WAEH,GAA8B,OAA1BpL,KAAKm2D,iBAAT,CAMA,GAAI/mB,GAAQpvC,IAEZ,IAAIA,KAAK4E,KAAK6uC,OAAO4b,UACrB,CACIrvD,KAAKm2D,iBAAmB,SAAUjjB,GAC9B,MAAO9D,GAAMknB,cAAcpjB,IAG/BlzC,KAAKo2D,iBAAmB,SAAUljB,GAC9B,MAAO9D,GAAMmnB,cAAcrjB,IAG/BlzC,KAAKq2D,eAAiB,SAAUnjB,GAC5B,MAAO9D,GAAMonB,YAAYtjB,GAG7B,IAAIniC,GAAS/Q,KAAK4E,KAAKmM,MAEvBA,GAAOqiC,iBAAiB,gBAAiBpzC,KAAKm2D,kBAAkB,GAChEplD,EAAOqiC,iBAAiB,gBAAiBpzC,KAAKo2D,kBAAkB,GAChErlD,EAAOqiC,iBAAiB,cAAepzC,KAAKq2D,gBAAgB,GAG5DtlD,EAAOqiC,iBAAiB,cAAepzC,KAAKm2D,kBAAkB,GAC9DplD,EAAOqiC,iBAAiB,cAAepzC,KAAKo2D,kBAAkB,GAC9DrlD,EAAOqiC,iBAAiB,YAAapzC,KAAKq2D,gBAAgB,GAE1DtlD,EAAO0T,MAAM,uBAAyB,OACtC1T,EAAO0T,MAAM,oBAAsB,UAW3C6xC,cAAe,SAAUpjB,GAErBlzC,KAAKkzC,MAAQA,EAETlzC,KAAK0yD,SAELxf,EAAMmZ,iBAGNrsD,KAAKg2D,qBAELh2D,KAAKg2D,oBAAoBlwD,KAAK9F,KAAKgsC,gBAAiBkH,GAGnDlzC,KAAK8oC,MAAM4kB,SAAY1tD,KAAK0tD,UAKjCxa,EAAMoe,WAAape,EAAM4e,UAEC,UAAtB5e,EAAMujB,aAAiD,IAAtBvjB,EAAMujB,YAEvCz2D,KAAK8oC,MAAM6e,aAAav8C,MAAM8nC,GAI9BlzC,KAAK8oC,MAAMqoB,aAAaje,KAUhCqjB,cAAe,SAAUrjB,GAErBlzC,KAAKkzC,MAAQA,EAETlzC,KAAK0yD,SAELxf,EAAMmZ,iBAGNrsD,KAAKi2D,qBAELj2D,KAAKi2D,oBAAoBnwD,KAAK9F,KAAKgsC,gBAAiBkH,GAGnDlzC,KAAK8oC,MAAM4kB,SAAY1tD,KAAK0tD,UAKjCxa,EAAMoe,WAAape,EAAM4e,UAEC,UAAtB5e,EAAMujB,aAAiD,IAAtBvjB,EAAMujB,YAEvCz2D,KAAK8oC,MAAM6e,aAAa4J,KAAKre,GAI7BlzC,KAAK8oC,MAAMuoB,cAAcne,KAUjCsjB,YAAa,SAAUtjB,GAEnBlzC,KAAKkzC,MAAQA,EAETlzC,KAAK0yD,SAELxf,EAAMmZ,iBAGNrsD,KAAKk2D,mBAELl2D,KAAKk2D,kBAAkBpwD,KAAK9F,KAAKgsC,gBAAiBkH,GAGjDlzC,KAAK8oC,MAAM4kB,SAAY1tD,KAAK0tD,UAKjCxa,EAAMoe,WAAape,EAAM4e,UAEC,UAAtB5e,EAAMujB,aAAiD,IAAtBvjB,EAAMujB,YAEvCz2D,KAAK8oC,MAAM6e,aAAa38C,KAAKkoC,GAI7BlzC,KAAK8oC,MAAM0oB,YAAYte,KAS/BloC,KAAM,WAEF,GAAI+F,GAAS/Q,KAAK4E,KAAKmM,MAEvBA,GAAOwjC,oBAAoB,gBAAiBv0C,KAAKm2D,kBACjDplD,EAAOwjC,oBAAoB,gBAAiBv0C,KAAKo2D,kBACjDrlD,EAAOwjC,oBAAoB,cAAev0C,KAAKq2D,gBAE/CtlD,EAAOwjC,oBAAoB,cAAev0C,KAAKm2D,kBAC/CplD,EAAOwjC,oBAAoB,cAAev0C,KAAKo2D,kBAC/CrlD,EAAOwjC,oBAAoB,YAAav0C,KAAKq2D,kBAMrDviC,EAAO48B,UAAUrtD,UAAUC,YAAcwwB,EAAO48B,UAgChD58B,EAAO4iC,aAAe,SAAUt0D,EAAQu0D,GAKpC32D,KAAKoC,OAASA,EAKdpC,KAAK4E,KAAOxC,EAAOwC,KAMnB5E,KAAKkzC,MAAQ,KAMblzC,KAAK42D,QAAS,EAMd52D,KAAK62D,MAAO,EAMZ72D,KAAK82D,SAAW,EAShB92D,KAAK+2D,SAAW,EAMhB/2D,KAAKg3D,OAAS,EAQdh3D,KAAKi3D,QAAU,EAQfj3D,KAAKk3D,QAAS,EAQdl3D,KAAKm3D,UAAW,EAQhBn3D,KAAKo3D,SAAU,EAMfp3D,KAAKiE,MAAQ,EAKbjE,KAAK22D,WAAaA,EAQlB32D,KAAKwvD,OAAS,GAAI17B,GAAO0W,OAQzBxqC,KAAKyvD,KAAO,GAAI37B,GAAO0W,OAQvBxqC,KAAKq3D,QAAU,GAAIvjC,GAAO0W,QAI9B1W,EAAO4iC,aAAarzD,WAWhB+H,MAAO,SAAU8nC,EAAOjvC,GAEhBjE,KAAK42D,SAKT52D,KAAK42D,QAAS,EACd52D,KAAK62D,MAAO,EACZ72D,KAAK82D,SAAW92D,KAAK4E,KAAKskC,KAAKA,KAC/BlpC,KAAK+2D,SAAW,EAChB/2D,KAAKi3D,QAAU,EAEfj3D,KAAKkzC,MAAQA,EACblzC,KAAKiE,MAAQA,EAEbjE,KAAKk3D,OAAShkB,EAAMgkB,OACpBl3D,KAAKm3D,SAAWjkB,EAAMikB,SACtBn3D,KAAKo3D,QAAUlkB,EAAMkkB,QAErBp3D,KAAKwvD,OAAO/iB,SAASzsC,KAAMiE,KAa/B+G,KAAM,SAAUkoC,EAAOjvC,GAEfjE,KAAK62D,OAKT72D,KAAK42D,QAAS,EACd52D,KAAK62D,MAAO,EACZ72D,KAAKg3D,OAASh3D,KAAK4E,KAAKskC,KAAKA,KAE7BlpC,KAAKkzC,MAAQA,EACblzC,KAAKiE,MAAQA,EAEbjE,KAAKk3D,OAAShkB,EAAMgkB,OACpBl3D,KAAKm3D,SAAWjkB,EAAMikB,SACtBn3D,KAAKo3D,QAAUlkB,EAAMkkB,QAErBp3D,KAAKyvD,KAAKhjB,SAASzsC,KAAMiE,KAW7BqzD,SAAU,SAAUrzD,GAEhBjE,KAAKiE,MAAQA,EAEbjE,KAAKq3D,QAAQ5qB,SAASzsC,KAAMiE,IAYhCszD,YAAa,SAAUR,GAInB,MAFAA,GAAWA,GAAY,IAEf/2D,KAAK42D,QAAW52D,KAAK82D,SAAWC,EAAY/2D,KAAK4E,KAAKskC,KAAKA,MAYvEsuB,aAAc,SAAUT,GAIpB,MAFAA,GAAWA,GAAY,IAEf/2D,KAAK62D,MAAS72D,KAAKg3D,OAASD,EAAY/2D,KAAK4E,KAAKskC,KAAKA,MASnEzsB,MAAO,WAEHzc,KAAK42D,QAAS,EACd52D,KAAK62D,MAAO,EAEZ72D,KAAK82D,SAAW92D,KAAK4E,KAAKskC,KAAKA,KAC/BlpC,KAAK+2D,SAAW,EAChB/2D,KAAKi3D,QAAU,EAEfj3D,KAAKk3D,QAAS,EACdl3D,KAAKm3D,UAAW,EAChBn3D,KAAKo3D,SAAU,GAUnB7zD,QAAS,WAELvD,KAAKwvD,OAAOrgB,UACZnvC,KAAKyvD,KAAKtgB,UACVnvC,KAAKq3D,QAAQloB,UAEbnvC,KAAKoC,OAAS,KACdpC,KAAK4E,KAAO,OAMpBkvB,EAAO4iC,aAAarzD,UAAUC,YAAcwwB,EAAO4iC,aAUnD9yD,OAAOC,eAAeiwB,EAAO4iC,aAAarzD,UAAW,YAEjDS,IAAK,WAED,MAAI9D,MAAK62D,KAEE,GAGJ72D,KAAK4E,KAAKskC,KAAKA,KAAOlpC,KAAK82D,YAoB1ChjC,EAAOw8B,QAAU,SAAU1rD,EAAMgT,GAK7B5X,KAAK4E,KAAOA,EAKZ5E,KAAK4X,GAAKA,EAMV5X,KAAK+W,KAAO+c,EAAOsD,QAMnBp3B,KAAKiyC,QAAS,EAMdjyC,KAAKsxD,WAAa,EAMlBtxD,KAAK8xD,UAAY,KAMjB9xD,KAAKyE,OAAS,KASdzE,KAAK2yD,OAAS,KAWd3yD,KAAKy3D,WAAa,GAAI3jC,GAAO4iC,aAAa12D,KAAM8zB,EAAOw8B,QAAQkD,aAa/DxzD,KAAK03D,aAAe,GAAI5jC,GAAO4iC,aAAa12D,KAAM8zB,EAAOw8B,QAAQmD,eAajEzzD,KAAK23D,YAAc,GAAI7jC,GAAO4iC,aAAa12D,KAAM8zB,EAAOw8B,QAAQoD,cAahE1zD,KAAK43D,WAAa,GAAI9jC,GAAO4iC,aAAa12D,KAAM8zB,EAAOw8B,QAAQqD,aAa/D3zD,KAAK63D,cAAgB,GAAI/jC,GAAO4iC,aAAa12D,KAAM8zB,EAAOw8B,QAAQsD,gBAalE5zD,KAAK83D,aAAe,GAAIhkC,GAAO4iC,aAAa12D,KAAM8zB,EAAOw8B,QAAQyH,eAOjE/3D,KAAKg4D,WAAY,EAMjBh4D,KAAKi4D,YAMLj4D,KAAKk4D,UAAY,EAMjBl4D,KAAKm4D,aAAc,EAKnBn4D,KAAKy0D,YAAa,EAKlBz0D,KAAKo4D,QAAU,GAKfp4D,KAAKq4D,QAAU,GAKfr4D,KAAKs4D,MAAQ,GAKbt4D,KAAKu4D,MAAQ,GAKbv4D,KAAKw4D,QAAU,GAKfx4D,KAAKy4D,QAAU,GAMfz4D,KAAK04D,aAAe,EAMpB14D,KAAK24D,aAAe,EAMpB34D,KAAK44D,UAAY,EAMjB54D,KAAK64D,UAAY,EAMjB74D,KAAK0F,EAAI,GAMT1F,KAAK2F,EAAI,GAKT3F,KAAK84D,QAAkB,IAAPlhD,EAQhB5X,KAAK42D,QAAS,EAQd52D,KAAK62D,MAAO,EAMZ72D,KAAK82D,SAAW,EAMhB92D,KAAKg3D,OAAS,EAMdh3D,KAAK+4D,gBAAkB,EAMvB/4D,KAAKg5D,aAAe,EAMpBh5D,KAAKi5D,iBAAmB31B,OAAOC,UAM/BvjC,KAAKk5D,aAAe,KAMpBl5D,KAAKytC,QAAS,EAMdztC,KAAK4V,OAAQ,EAKb5V,KAAKyB,SAAW,GAAIqyB,GAAOpyB,MAK3B1B,KAAKm5D,aAAe,GAAIrlC,GAAOpyB,MAK/B1B,KAAKo5D,WAAa,GAAItlC,GAAOpyB,MAO7B1B,KAAK8tD,OAAS,GAAIh6B,GAAOmI,OAAO,EAAG,EAAG,IAOtCj8B,KAAKq5D,kBAAoB,KAQzBr5D,KAAKs5D,wBAA0B,MASnCxlC,EAAOw8B,QAAQiD,UAAY,EAO3Bz/B,EAAOw8B,QAAQkD,YAAc,EAO7B1/B,EAAOw8B,QAAQoD,aAAe,EAO9B5/B,EAAOw8B,QAAQmD,cAAgB,EAQ/B3/B,EAAOw8B,QAAQqD,YAAc,EAQ7B7/B,EAAOw8B,QAAQsD,eAAiB,GAOhC9/B,EAAOw8B,QAAQyH,cAAgB,GAE/BjkC,EAAOw8B,QAAQjtD,WAQXk2D,aAAc,WAEVv5D,KAAK42D,QAAS,EACd52D,KAAK62D,MAAO,EAER72D,KAAK84D,UAEL94D,KAAKy3D,WAAWh7C,QAChBzc,KAAK03D,aAAaj7C,QAClBzc,KAAK23D,YAAYl7C,QACjBzc,KAAK43D,WAAWn7C,QAChBzc,KAAK63D,cAAcp7C,QACnBzc,KAAK83D,aAAar7C,UAa1B+8C,cAAe,SAAUtmB,GAErBlzC,KAAK2yD,OAASzf,EAAMyf,MAIpB,IAAI8G,GAAUvmB,EAAMumB,OAEJhwD,UAAZgwD,IAOA3lC,EAAOw8B,QAAQkD,YAAciG,EAE7Bz5D,KAAKy3D,WAAWrsD,MAAM8nC,GAItBlzC,KAAKy3D,WAAWzsD,KAAKkoC,GAGrBpf,EAAOw8B,QAAQoD,aAAe+F,EAE9Bz5D,KAAK23D,YAAYvsD,MAAM8nC,GAIvBlzC,KAAK23D,YAAY3sD,KAAKkoC,GAGtBpf,EAAOw8B,QAAQmD,cAAgBgG,EAE/Bz5D,KAAK03D,aAAatsD,MAAM8nC,GAIxBlzC,KAAK03D,aAAa1sD,KAAKkoC,GAGvBpf,EAAOw8B,QAAQqD,YAAc8F,EAE7Bz5D,KAAK43D,WAAWxsD,MAAM8nC,GAItBlzC,KAAK43D,WAAW5sD,KAAKkoC,GAGrBpf,EAAOw8B,QAAQsD,eAAiB6F,EAEhCz5D,KAAK63D,cAAczsD,MAAM8nC,GAIzBlzC,KAAK63D,cAAc7sD,KAAKkoC,GAGxBpf,EAAOw8B,QAAQyH,cAAgB0B,EAE/Bz5D,KAAK83D,aAAa1sD,MAAM8nC,GAIxBlzC,KAAK83D,aAAa9sD,KAAKkoC,GAKvBA,EAAMkkB,SAAWp3D,KAAKy3D,WAAWb,QAEjC52D,KAAK23D,YAAYvsD,MAAM8nC,GAG3BlzC,KAAK62D,MAAO,EACZ72D,KAAK42D,QAAS,GAEV52D,KAAKy3D,WAAWb,QAAU52D,KAAK23D,YAAYf,QAAU52D,KAAK03D,aAAad,QAAU52D,KAAK43D,WAAWhB,QAAU52D,KAAK63D,cAAcjB,QAAU52D,KAAK83D,aAAalB,UAE1J52D,KAAK62D,MAAO,EACZ72D,KAAK42D,QAAS,KAUtBxrD,MAAO,SAAU8nC,GAyDb,MAvDIA,GAAiB,YAEjBlzC,KAAK8xD,UAAY5e,EAAM4e,WAG3B9xD,KAAKsxD,WAAape,EAAMoe,WACxBtxD,KAAKyE,OAASyuC,EAAMzuC,OAEhBzE,KAAK84D,QAEL94D,KAAKw5D,cAActmB,IAInBlzC,KAAK42D,QAAS,EACd52D,KAAK62D,MAAO,GAGhB72D,KAAKi4D,YACLj4D,KAAKytC,QAAS,EACdztC,KAAKy0D,YAAa,EAClBz0D,KAAK4V,OAAQ,EACb5V,KAAKq5D,kBAAoB,KACzBr5D,KAAKs5D,wBAA0B,KAG/Bt5D,KAAKi5D,iBAAmBj5D,KAAK4E,KAAKskC,KAAKA,KAAOlpC,KAAK82D,SACnD92D,KAAK82D,SAAW92D,KAAK4E,KAAKskC,KAAKA,KAC/BlpC,KAAKg4D,WAAY,EAGjBh4D,KAAKuxD,KAAKre,GAAO,GAGjBlzC,KAAKm5D,aAAa58B,MAAMv8B,KAAK0F,EAAG1F,KAAK2F,IAEjC3F,KAAK4E,KAAKkkC,MAAM6kB,qBAAuB75B,EAAO03B,MAAM2E,uBACpDnwD,KAAK4E,KAAKkkC,MAAM6kB,qBAAuB75B,EAAO03B,MAAMoC,qBACnD5tD,KAAK4E,KAAKkkC,MAAM6kB,qBAAuB75B,EAAO03B,MAAM4E,uBAAiE,IAAxCpwD,KAAK4E,KAAKkkC,MAAM4wB,uBAE9F15D,KAAK4E,KAAKkkC,MAAMpjC,EAAI1F,KAAK0F,EACzB1F,KAAK4E,KAAKkkC,MAAMnjC,EAAI3F,KAAK2F,EACzB3F,KAAK4E,KAAKkkC,MAAMrnC,SAAS86B,MAAMv8B,KAAK0F,EAAG1F,KAAK2F,GAC5C3F,KAAK4E,KAAKkkC,MAAM0mB,OAAO/iB,SAASzsC,KAAMkzC,GACtClzC,KAAK4E,KAAKkkC,MAAMooB,WAAWlxD,KAAK0F,EAAG1F,KAAK2F,IAG5C3F,KAAKm4D,aAAc,EACnBn4D,KAAKg5D,eAEqB,OAAtBh5D,KAAKk5D,cAELl5D,KAAKk5D,aAAaS,gBAAgB35D,MAG/BA,MAQXsmC,OAAQ,WAEAtmC,KAAKytC,SAGDztC,KAAK4V,QAED5V,KAAK4E,KAAKkkC,MAAM+mB,iBAAiB5V,MAAQ,GAEzCj6C,KAAK45D,2BAA0B,GAGnC55D,KAAK4V,OAAQ,GAGb5V,KAAKg4D,aAAc,GAASh4D,KAAK+2D,UAAY/2D,KAAK4E,KAAKkkC,MAAMolB,YAEzDluD,KAAK4E,KAAKkkC,MAAM6kB,qBAAuB75B,EAAO03B,MAAM2E,uBACpDnwD,KAAK4E,KAAKkkC,MAAM6kB,qBAAuB75B,EAAO03B,MAAMoC,qBACnD5tD,KAAK4E,KAAKkkC,MAAM6kB,qBAAuB75B,EAAO03B,MAAM4E,uBAAiE,IAAxCpwD,KAAK4E,KAAKkkC,MAAM4wB,sBAE9F15D,KAAK4E,KAAKkkC,MAAM6mB,OAAOljB,SAASzsC,MAGpCA,KAAKg4D,WAAY,GAIjBh4D,KAAK4E,KAAKkkC,MAAMulB,sBAAwBruD,KAAK4E,KAAKskC,KAAKA,MAAQlpC,KAAKk4D,YAEpEl4D,KAAKk4D,UAAYl4D,KAAK4E,KAAKskC,KAAKA,KAAOlpC,KAAK4E,KAAKkkC,MAAMwlB,WAEvDtuD,KAAKi4D,SAAS1zD,MACVmB,EAAG1F,KAAKyB,SAASiE,EACjBC,EAAG3F,KAAKyB,SAASkE,IAGjB3F,KAAKi4D,SAASv0D,OAAS1D,KAAK4E,KAAKkkC,MAAMylB,aAEvCvuD,KAAKi4D,SAAS4B,WAc9BtI,KAAM,SAAUre,EAAO4mB,GAEnB,IAAI95D,KAAK4E,KAAKkkC,MAAMixB,WAApB,CAyDA,GApDkBtwD,SAAdqwD,IAA2BA,GAAY,GAEtBrwD,SAAjBypC,EAAMyf,SAEN3yD,KAAK2yD,OAASzf,EAAMyf,QAGpBmH,GAEA95D,KAAKw5D,cAActmB,GAGvBlzC,KAAKo4D,QAAUllB,EAAMklB,QACrBp4D,KAAKq4D,QAAUnlB,EAAMmlB,QAErBr4D,KAAKs4D,MAAQplB,EAAMolB,MACnBt4D,KAAKu4D,MAAQrlB,EAAMqlB,MAEnBv4D,KAAKw4D,QAAUtlB,EAAMslB,QACrBx4D,KAAKy4D,QAAUvlB,EAAMulB,QAEjBz4D,KAAK84D,SAAW94D,KAAK4E,KAAKkkC,MAAMoH,MAAM2iB,SAAWiH,IAEjD95D,KAAK04D,aAAexlB,EAAM0lB,WAAa1lB,EAAM8mB,cAAgB9mB,EAAM+mB,iBAAmB,EACtFj6D,KAAK24D,aAAezlB,EAAM2lB,WAAa3lB,EAAMgnB,cAAgBhnB,EAAMinB,iBAAmB,EAEtFn6D,KAAK44D,WAAa54D,KAAK04D,aACvB14D,KAAK64D,WAAa74D,KAAK24D,cAG3B34D,KAAK0F,GAAK1F,KAAKs4D,MAAQt4D,KAAK4E,KAAKjD,MAAMkZ,OAAOnV,GAAK1F,KAAK4E,KAAKkkC,MAAMnnC,MAAM+D,EACzE1F,KAAK2F,GAAK3F,KAAKu4D,MAAQv4D,KAAK4E,KAAKjD,MAAMkZ,OAAOlV,GAAK3F,KAAK4E,KAAKkkC,MAAMnnC,MAAMgE,EAEzE3F,KAAKyB,SAAS86B,MAAMv8B,KAAK0F,EAAG1F,KAAK2F,GACjC3F,KAAK8tD,OAAOpoD,EAAI1F,KAAK0F,EACrB1F,KAAK8tD,OAAOnoD,EAAI3F,KAAK2F,GAEjB3F,KAAK4E,KAAKkkC,MAAM6kB,qBAAuB75B,EAAO03B,MAAM2E,uBACpDnwD,KAAK4E,KAAKkkC,MAAM6kB,qBAAuB75B,EAAO03B,MAAMoC,qBACnD5tD,KAAK4E,KAAKkkC,MAAM6kB,qBAAuB75B,EAAO03B,MAAM4E,uBAAiE,IAAxCpwD,KAAK4E,KAAKkkC,MAAM4wB,uBAE9F15D,KAAK4E,KAAKkkC,MAAM4e,cAAgB1nD,KAChCA,KAAK4E,KAAKkkC,MAAMpjC,EAAI1F,KAAK0F,EACzB1F,KAAK4E,KAAKkkC,MAAMnjC,EAAI3F,KAAK2F,EACzB3F,KAAK4E,KAAKkkC,MAAMrnC,SAAS86B,MAAMv8B,KAAK4E,KAAKkkC,MAAMpjC,EAAG1F,KAAK4E,KAAKkkC,MAAMnjC,GAClE3F,KAAK4E,KAAKkkC,MAAMglB,OAAOpoD,EAAI1F,KAAK4E,KAAKkkC,MAAMpjC,EAC3C1F,KAAK4E,KAAKkkC,MAAMglB,OAAOnoD,EAAI3F,KAAK4E,KAAKkkC,MAAMnjC,GAG/C3F,KAAKy0D,WAAaz0D,KAAK4E,KAAKjD,MAAM+E,OAAOo2B,SAAS98B,KAAKs4D,MAAOt4D,KAAKu4D,OAG/Dv4D,KAAK4E,KAAK+kC,OAEV,MAAO3pC,KAKX,KAFA,GAAIyD,GAAIzD,KAAK4E,KAAKkkC,MAAM0kB,cAAc9pD,OAE/BD,KAEHzD,KAAK4E,KAAKkkC,MAAM0kB,cAAc/pD,GAAGk1C,SAAS7yC,KAAK9F,KAAK4E,KAAKkkC,MAAM0kB,cAAc/pD,GAAG2J,QAASpN,KAAMA,KAAK0F,EAAG1F,KAAK2F,EAAGm0D,EAgBnH,OAZ0B,QAAtB95D,KAAKk5D,cAAyBl5D,KAAKk5D,aAAakB,aAAc,EAE1Dp6D,KAAKk5D,aAAa5yB,OAAOtmC,SAAU,IAEnCA,KAAKk5D,aAAe,MAGnBl5D,KAAK4E,KAAKkkC,MAAM+mB,iBAAiB5V,MAAQ,GAE9Cj6C,KAAK45D,0BAA0BE,GAG5B95D,OAYX45D,0BAA2B,SAAUE,GAYjC,IATA,GAAIO,GAAuB/2B,OAAOC,UAC9B+2B,EAAyB,GACzBC,EAAkB,KAKlBC,EAAcx6D,KAAK4E,KAAKkkC,MAAM+mB,iBAAiB4K,MAE5CD,GAGHA,EAAYE,SAAU,EAElBF,EAAYG,cAAcL,EAAwBD,GAAsB,KAGxEG,EAAYE,SAAU,GAEjBZ,GAAaU,EAAYI,iBAAiB56D,MAAM,KAC/C85D,GAAaU,EAAYK,iBAAiB76D,MAAM,MAElDq6D,EAAuBG,EAAY7wC,OAAOuvB,cAC1CohB,EAAyBE,EAAYM,WACrCP,EAAkBC,IAI1BA,EAAcx6D,KAAK4E,KAAKkkC,MAAM+mB,iBAAiB9Y,IASnD,KAFA,GAAIyjB,GAAcx6D,KAAK4E,KAAKkkC,MAAM+mB,iBAAiB4K,MAE7CD,IAEGA,EAAYE,SACbF,EAAYG,cAAcL,EAAwBD,GAAsB,KAEnEP,GAAaU,EAAYI,iBAAiB56D,MAAM,KAC/C85D,GAAaU,EAAYK,iBAAiB76D,MAAM,MAElDq6D,EAAuBG,EAAY7wC,OAAOuvB,cAC1CohB,EAAyBE,EAAYM,WACrCP,EAAkBC,GAI1BA,EAAcx6D,KAAK4E,KAAKkkC,MAAM+mB,iBAAiB9Y,IA4CnD,OAxCwB,QAApBwjB,EAGIv6D,KAAKk5D,eAELl5D,KAAKk5D,aAAa6B,mBAAmB/6D,MACrCA,KAAKk5D,aAAe,MAKE,OAAtBl5D,KAAKk5D,cAGLl5D,KAAKk5D,aAAeqB,EACpBA,EAAgBS,oBAAoBh7D,OAKhCA,KAAKk5D,eAAiBqB,EAGlBA,EAAgBj0B,OAAOtmC,SAAU,IAEjCA,KAAKk5D,aAAe,OAMxBl5D,KAAKk5D,aAAa6B,mBAAmB/6D,MAGrCA,KAAKk5D,aAAeqB,EACpBv6D,KAAKk5D,aAAa8B,oBAAoBh7D,OAKpB,OAAtBA,KAAKk5D,cAUjB+B,MAAO,SAAU/nB,GAEblzC,KAAKy0D,YAAa,EAClBz0D,KAAKuxD,KAAKre,GAAO,IAUrBloC,KAAM,SAAUkoC,GAEZ,MAAIlzC,MAAKm4D,aAAen4D,KAAKy0D,eAEzBvhB,GAAMmZ,kBAINrsD,KAAK84D,QAEL94D,KAAKw5D,cAActmB,IAInBlzC,KAAK42D,QAAS,EACd52D,KAAK62D,MAAO,GAGhB72D,KAAKg3D,OAASh3D,KAAK4E,KAAKskC,KAAKA,MAEzBlpC,KAAK4E,KAAKkkC,MAAM6kB,qBAAuB75B,EAAO03B,MAAM2E,uBACpDnwD,KAAK4E,KAAKkkC,MAAM6kB,qBAAuB75B,EAAO03B,MAAMoC,qBACnD5tD,KAAK4E,KAAKkkC,MAAM6kB,qBAAuB75B,EAAO03B,MAAM4E,uBAAiE,IAAxCpwD,KAAK4E,KAAKkkC,MAAM4wB,uBAE9F15D,KAAK4E,KAAKkkC,MAAM2mB,KAAKhjB,SAASzsC,KAAMkzC,GAGhClzC,KAAK+2D,UAAY,GAAK/2D,KAAK+2D,UAAY/2D,KAAK4E,KAAKkkC,MAAMklB,UAGnDhuD,KAAKg3D,OAASh3D,KAAK+4D,gBAAkB/4D,KAAK4E,KAAKkkC,MAAMmlB,cAGrDjuD,KAAK4E,KAAKkkC,MAAM4mB,MAAMjjB,SAASzsC,MAAM,GAKrCA,KAAK4E,KAAKkkC,MAAM4mB,MAAMjjB,SAASzsC,MAAM,GAGzCA,KAAK+4D,gBAAkB/4D,KAAKg3D,SAKhCh3D,KAAK4X,GAAK,IAEV5X,KAAKytC,QAAS,GAGlBztC,KAAKy0D,YAAa,EAClBz0D,KAAK8xD,UAAY,KACjB9xD,KAAKsxD,WAAa,KAElBtxD,KAAKo5D,WAAW78B,MAAMv8B,KAAK0F,EAAG1F,KAAK2F,GAE/B3F,KAAK84D,WAAY,GAEjB94D,KAAK4E,KAAKkkC,MAAMoyB,kBAGpBl7D,KAAK4E,KAAKkkC,MAAM+mB,iBAAiB/W,QAAQ,mBAAoB94C,MAEzDA,KAAKq5D,oBAELr5D,KAAKs5D,wBAA0Bt5D,KAAKk5D,cAGxCl5D,KAAKk5D,aAAe,KAEbl5D,OAYXu3D,YAAa,SAAUR,GAInB,MAFAA,GAAWA,GAAY/2D,KAAK4E,KAAKkkC,MAAMqlB,gBAE/BnuD,KAAK42D,UAAW,GAAS52D,KAAK82D,SAAWC,EAAY/2D,KAAK4E,KAAKskC,KAAKA,MAYhFsuB,aAAc,SAAUT,GAIpB,MAFAA,GAAWA,GAAY/2D,KAAK4E,KAAKkkC,MAAMslB,iBAE/BpuD,KAAK62D,MAAS72D,KAAKg3D,OAASD,EAAY/2D,KAAK4E,KAAKskC,KAAKA,MAqBnE0e,mBAAoB,SAAUzsB,EAAMwd,EAAU3M,EAAiBmvB,GAE3D,GAAKn7D,KAAK42D,OAAV,CAOA,IAAK,GAFDwE,GAAep7D,KAAKq5D,kBAAoBr5D,KAAKq5D,sBAExC51D,EAAI,EAAGA,EAAI23D,EAAY13D,OAAQD,IAEpC,GAAI23D,EAAY33D,GAAG03B,OAASA,EAC5B,CACIigC,EAAYxyD,OAAOnF,EAAG,EACtB,OAIR23D,EAAY72D,MACR42B,KAAMA,EACN+9B,aAAcl5D,KAAKk5D,aACnBvgB,SAAUA,EACV3M,gBAAiBA,EACjBmvB,aAAcA,MAUtB/I,wBAAyB,WAErB,GAAIgJ,GAAcp7D,KAAKq5D,iBAEvB,IAAK+B,EAAL,CAKA,IAAK,GAAI33D,GAAI,EAAGA,EAAI23D,EAAY13D,OAAQD,IACxC,CACI,GAAI43D,GAAaD,EAAY33D,EAEzB43D,GAAWnC,eAAiBl5D,KAAKs5D,yBAEjC+B,EAAW1iB,SAASxxC,MAAMk0D,EAAWrvB,gBAAiBqvB,EAAWF,cAIzEn7D,KAAKq5D,kBAAoB,KACzBr5D,KAAKs5D,wBAA0B,OAQnC78C,MAAO,WAECzc,KAAK84D,WAAY,IAEjB94D,KAAKytC,QAAS,GAGlBztC,KAAK8xD,UAAY,KACjB9xD,KAAKsxD,WAAa,KAClBtxD,KAAK4V,OAAQ,EACb5V,KAAKg5D,aAAe,EACpBh5D,KAAKg4D,WAAY,EACjBh4D,KAAKi4D,SAASv0D,OAAS,EACvB1D,KAAKm4D,aAAc,EAEnBn4D,KAAKu5D,eAEDv5D,KAAKk5D,cAELl5D,KAAKk5D,aAAaoC,iBAAiBt7D,MAGvCA,KAAKk5D,aAAe,MAQxBqC,cAAe,WAEXv7D,KAAK44D,UAAY,EACjB54D,KAAK64D,UAAY,IAMzB/kC,EAAOw8B,QAAQjtD,UAAUC,YAAcwwB,EAAOw8B,QAW9C1sD,OAAOC,eAAeiwB,EAAOw8B,QAAQjtD,UAAW,YAE5CS,IAAK,WAED,MAAI9D,MAAK62D,KAEE,GAGJ72D,KAAK4E,KAAKskC,KAAKA,KAAOlpC,KAAK82D,YAY1ClzD,OAAOC,eAAeiwB,EAAOw8B,QAAQjtD,UAAW,UAE5CS,IAAK,WAED,MAAO9D,MAAK4E,KAAKE,MAAM8jC,OAAOljC,EAAI1F,KAAK0F,KAY/C9B,OAAOC,eAAeiwB,EAAOw8B,QAAQjtD,UAAW,UAE5CS,IAAK,WAED,MAAO9D,MAAK4E,KAAKE,MAAM8jC,OAAOjjC,EAAI3F,KAAK2F,KAqB/CmuB,EAAO28B,MAAQ,SAAU7rD,GAKrB5E,KAAK4E,KAAOA,EAOZ5E,KAAK0tD,SAAU,EASf1tD,KAAKw7D,sBAKLx7D,KAAKgsC,gBAAkBhsC,KAAK4E,KAK5B5E,KAAKy7D,mBAAqB,KAK1Bz7D,KAAK07D,kBAAoB,KAKzB17D,KAAK27D,iBAAmB,KAKxB37D,KAAK47D,mBAAqB,KAK1B57D,KAAK67D,mBAAqB,KAK1B77D,KAAK87D,oBAAsB,KAM3B97D,KAAKqsD,gBAAiB,EAMtBrsD,KAAKkzC,MAAQ,KAMblzC,KAAK+7D,cAAgB,KAMrB/7D,KAAKg8D,aAAe,KAMpBh8D,KAAKi8D,YAAc,KAMnBj8D,KAAKk8D,cAAgB,KAMrBl8D,KAAKm8D,cAAgB,KAMrBn8D,KAAKo8D,eAAiB,KAMtBp8D,KAAKg8D,aAAe,MAIxBloC,EAAO28B,MAAMptD,WAMT+H,MAAO,WAEH,GAA2B,OAAvBpL,KAAK+7D,cAAT,CAMA,GAAI3sB,GAAQpvC,IAERA,MAAK4E,KAAK6uC,OAAO2b,QAEjBpvD,KAAK+7D,cAAgB,SAAU7oB,GAC3B,MAAO9D,GAAMitB,aAAanpB,IAG9BlzC,KAAKg8D,aAAe,SAAU9oB,GAC1B,MAAO9D,GAAMktB,YAAYppB,IAG7BlzC,KAAKi8D,YAAc,SAAU/oB,GACzB,MAAO9D,GAAMmtB,WAAWrpB,IAG5BlzC,KAAKk8D,cAAgB,SAAUhpB,GAC3B,MAAO9D,GAAMotB,aAAatpB,IAG9BlzC,KAAKm8D,cAAgB,SAAUjpB,GAC3B,MAAO9D,GAAMqtB,aAAavpB,IAG9BlzC,KAAKo8D,eAAiB,SAAUlpB,GAC5B,MAAO9D,GAAMstB,cAAcxpB,IAG/BlzC,KAAK4E,KAAKmM,OAAOqiC,iBAAiB,aAAcpzC,KAAK+7D,eAAe,GACpE/7D,KAAK4E,KAAKmM,OAAOqiC,iBAAiB,YAAapzC,KAAKg8D,cAAc,GAClEh8D,KAAK4E,KAAKmM,OAAOqiC,iBAAiB,WAAYpzC,KAAKi8D,aAAa,GAChEj8D,KAAK4E,KAAKmM,OAAOqiC,iBAAiB,cAAepzC,KAAKo8D,gBAAgB,GAEjEp8D,KAAK4E,KAAK6uC,OAAO2O,WAElBpiD,KAAK4E,KAAKmM,OAAOqiC,iBAAiB,aAAcpzC,KAAKk8D,eAAe,GACpEl8D,KAAK4E,KAAKmM,OAAOqiC,iBAAiB,aAAcpzC,KAAKm8D,eAAe,OAUhFQ,uBAAwB,WAEpB38D,KAAK48D,mBAAqB,SAAU1pB,GAChCA,EAAMmZ,kBAGV77C,SAAS4iC,iBAAiB,YAAapzC,KAAK48D,oBAAoB,IAiBpEC,qBAAsB,SAAUlkB,EAAUvrC,GAEtCpN,KAAKw7D,mBAAmBj3D,MAAOo0C,SAAUA,EAAUvrC,QAASA,KAYhE0vD,wBAAyB,SAAUnkB,EAAUvrC,GAIzC,IAFA,GAAI3J,GAAIzD,KAAKw7D,mBAAmB93D,OAEzBD,KAEH,GAAIzD,KAAKw7D,mBAAmB/3D,GAAGk1C,WAAaA,GAAY34C,KAAKw7D,mBAAmB/3D,GAAG2J,UAAYA,EAG3F,MADApN,MAAKw7D,mBAAmB5yD,OAAOnF,EAAG,IAC3B,CAIf,QAAO,GASX44D,aAAc,SAAUnpB,GAIpB,IAFA,GAAIzvC,GAAIzD,KAAKw7D,mBAAmB93D,OAEzBD,KAECzD,KAAKw7D,mBAAmB/3D,GAAGk1C,SAAS7yC,KAAK9F,KAAKw7D,mBAAmB/3D,GAAG2J,QAASpN,KAAMkzC,IAEnFlzC,KAAKw7D,mBAAmB5yD,OAAOnF,EAAG,EAM1C,IAFAzD,KAAKkzC,MAAQA,EAERlzC,KAAK4E,KAAKkkC,MAAM4kB,SAAY1tD,KAAK0tD,QAAtC,CAKI1tD,KAAKy7D,oBAELz7D,KAAKy7D,mBAAmB31D,KAAK9F,KAAKgsC,gBAAiBkH,GAGnDlzC,KAAKqsD,gBAELnZ,EAAMmZ,gBAMV,KAAK,GAAI5oD,GAAI,EAAGA,EAAIyvC,EAAM6pB,eAAer5D,OAAQD,IAE7CzD,KAAK4E,KAAKkkC,MAAMqoB,aAAaje,EAAM6pB,eAAet5D,MAW1Di5D,cAAe,SAAUxpB,GASrB,GAPAlzC,KAAKkzC,MAAQA,EAETlzC,KAAK87D,qBAEL97D,KAAK87D,oBAAoBh2D,KAAK9F,KAAKgsC,gBAAiBkH,GAGnDlzC,KAAK4E,KAAKkkC,MAAM4kB,SAAY1tD,KAAK0tD,QAAtC,CAKI1tD,KAAKqsD,gBAELnZ,EAAMmZ,gBAKV,KAAK,GAAI5oD,GAAI,EAAGA,EAAIyvC,EAAM6pB,eAAer5D,OAAQD,IAE7CzD,KAAK4E,KAAKkkC,MAAM0oB,YAAYte,EAAM6pB,eAAet5D,MAWzD+4D,aAAc,SAAUtpB,GAEpBlzC,KAAKkzC,MAAQA,EAETlzC,KAAK47D,oBAEL57D,KAAK47D,mBAAmB91D,KAAK9F,KAAKgsC,gBAAiBkH,GAGlDlzC,KAAK4E,KAAKkkC,MAAM4kB,SAAY1tD,KAAK0tD,SAKlC1tD,KAAKqsD,gBAELnZ,EAAMmZ,kBAWdoQ,aAAc,SAAUvpB,GAEpBlzC,KAAKkzC,MAAQA,EAETlzC,KAAK67D,oBAEL77D,KAAK67D,mBAAmB/1D,KAAK9F,KAAKgsC,gBAAiBkH,GAGnDlzC,KAAKqsD,gBAELnZ,EAAMmZ,kBAUdiQ,YAAa,SAAUppB,GAEnBlzC,KAAKkzC,MAAQA,EAETlzC,KAAK07D,mBAEL17D,KAAK07D,kBAAkB51D,KAAK9F,KAAKgsC,gBAAiBkH,GAGlDlzC,KAAKqsD,gBAELnZ,EAAMmZ,gBAGV,KAAK,GAAI5oD,GAAI,EAAGA,EAAIyvC,EAAM6pB,eAAer5D,OAAQD,IAE7CzD,KAAK4E,KAAKkkC,MAAMuoB,cAAcne,EAAM6pB,eAAet5D,KAU3D84D,WAAY,SAAUrpB,GAElBlzC,KAAKkzC,MAAQA,EAETlzC,KAAK27D,kBAEL37D,KAAK27D,iBAAiB71D,KAAK9F,KAAKgsC,gBAAiBkH,GAGjDlzC,KAAKqsD,gBAELnZ,EAAMmZ,gBAMV,KAAK,GAAI5oD,GAAI,EAAGA,EAAIyvC,EAAM6pB,eAAer5D,OAAQD,IAE7CzD,KAAK4E,KAAKkkC,MAAM0oB,YAAYte,EAAM6pB,eAAet5D,KASzDuH,KAAM,WAEEhL,KAAK4E,KAAK6uC,OAAO2b,QAEjBpvD,KAAK4E,KAAKmM,OAAOwjC,oBAAoB,aAAcv0C,KAAK+7D,eACxD/7D,KAAK4E,KAAKmM,OAAOwjC,oBAAoB,YAAav0C,KAAKg8D,cACvDh8D,KAAK4E,KAAKmM,OAAOwjC,oBAAoB,WAAYv0C,KAAKi8D,aACtDj8D,KAAK4E,KAAKmM,OAAOwjC,oBAAoB,aAAcv0C,KAAKk8D,eACxDl8D,KAAK4E,KAAKmM,OAAOwjC,oBAAoB,aAAcv0C,KAAKm8D,eACxDn8D,KAAK4E,KAAKmM,OAAOwjC,oBAAoB,cAAev0C,KAAKo8D;GAOrEtoC,EAAO28B,MAAMptD,UAAUC,YAAcwwB,EAAO28B,MAe5C38B,EAAOkpC,aAAe,SAAUrzC,GAK5B3pB,KAAK2pB,OAASA,EAKd3pB,KAAK4E,KAAO+kB,EAAO/kB,KAMnB5E,KAAK0tD,SAAU,EAMf1tD,KAAK06D,SAAU,EASf16D,KAAK86D,WAAa,EAMlB96D,KAAKi9D,eAAgB,EAMrBj9D,KAAKk9D,gBAAiB,EAMtBl9D,KAAKo6D,WAAY,EAMjBp6D,KAAKm9D,qBAAsB,EAM3Bn9D,KAAKo9D,mBAAoB,EAMzBp9D,KAAKm3C,YAAa,EAMlBn3C,KAAKq9D,WAAa,KAMlBr9D,KAAKs9D,YAAa,EAMlBt9D,KAAKu9D,eAAgB,EAMrBv9D,KAAKw9D,MAAQ,EAMbx9D,KAAKy9D,MAAQ,EAMbz9D,KAAK09D,YAAc,EAMnB19D,KAAK29D,YAAc,EAUnB39D,KAAK49D,kBAAmB,EAUxB59D,KAAK69D,mBAAoB,EAMzB79D,KAAK89D,kBAAoB,IAMzB99D,KAAK+9D,WAAY,EAMjB/9D,KAAKg+D,WAAa,KAMlBh+D,KAAKi+D,aAAe,KAQpBj+D,KAAKk+D,qBAAsB,EAK3Bl+D,KAAKm+D,YAAa,EAKlBn+D,KAAKo+D,WAAa,GAAItqC,GAAOpyB,MAK7B1B,KAAKq+D,gBAAiB,EAKtBr+D,KAAKs+D,eAAiB,GAAIxqC,GAAOpyB,MAKjC1B,KAAKu+D,UAAY,GAAIzqC,GAAOpyB,MAM5B1B,KAAKw+D,WAAa,GAAI1qC,GAAOpyB,MAM7B1B,KAAKy+D,YAAa,EAMlBz+D,KAAK0+D,aAAc,EAMnB1+D,KAAK2+D,WAAa,GAAI7qC,GAAOpyB,MAM7B1B,KAAK4+D,gBAEL5+D,KAAK4+D,aAAar6D,MACdqT,GAAI,EACJlS,EAAG,EACHC,EAAG,EACHixD,QAAQ,EACRC,MAAM,EACNgI,QAAQ,EACRC,OAAO,EACPC,SAAU,EACVC,QAAS,EACTlI,SAAU,EACVE,OAAQ,EACRiI,aAAc,EACd7E,WAAW,KAKnBtmC,EAAOkpC,aAAa35D,WAShB+H,MAAO,SAAU6iC,EAAUgvB,GAMvB,GAJAhvB,EAAWA,GAAY,EACDxkC,SAAlBwzD,IAA+BA,GAAgB,GAG/Cj9D,KAAK0tD,WAAY,EACrB,CAEI1tD,KAAK4E,KAAKkkC,MAAM+mB,iBAAiBjvB,IAAI5gC,MACrCA,KAAKi9D,cAAgBA,EACrBj9D,KAAK86D,WAAa7sB,CAElB,KAAK,GAAIxqC,GAAI,EAAO,GAAJA,EAAQA,IAEpBzD,KAAK4+D,aAAan7D,IACdmU,GAAInU,EACJiC,EAAG,EACHC,EAAG,EACHixD,QAAQ,EACRC,MAAM,EACNgI,QAAQ,EACRC,OAAO,EACPC,SAAU,EACVC,QAAS,EACTlI,SAAU,EACVE,OAAQ,EACRiI,aAAc,EACd7E,WAAW,EAInBp6D,MAAKq9D,WAAa,GAAIvpC,GAAOpyB,MAC7B1B,KAAK0tD,SAAU,EACf1tD,KAAK0+D,aAAc,EASvB,MALA1+D,MAAK2pB,OAAOysB,OAAO8oB,eAAet+B,IAAI5gC,KAAKm/D,aAAcn/D,MACzDA,KAAK2pB,OAAOysB,OAAOgpB,mBAAmBx+B,IAAI5gC,KAAKq/D,iBAAkBr/D,MAEjEA,KAAKs/D,SAAU,EAERt/D,KAAK2pB,QAUhBw1C,aAAc,WAENn/D,KAAKy+D,YAKLz+D,KAAK0+D,cAAgB1+D,KAAK0tD,SAE1B1tD,KAAKoL,SAWbi0D,iBAAkB,WAEVr/D,KAAKy+D,aAKLz+D,KAAK0tD,SAEL1tD,KAAK0+D,aAAc,EACnB1+D,KAAKgL,QAILhL,KAAK0+D,aAAc,IAS3BjiD,MAAO,WAEHzc,KAAK0tD,SAAU,EACf1tD,KAAKs/D,SAAU,CAEf,KAAK,GAAI77D,GAAI,EAAO,GAAJA,EAAQA,IAEpBzD,KAAK4+D,aAAan7D,IACdmU,GAAInU,EACJiC,EAAG,EACHC,EAAG,EACHixD,QAAQ,EACRC,MAAM,EACNgI,QAAQ,EACRC,OAAO,EACPC,SAAU,EACVC,QAAS,EACTlI,SAAU,EACVE,OAAQ,EACRiI,aAAc,EACd7E,WAAW,IASvBpvD,KAAM,WAGEhL,KAAK0tD,WAAY,IAOjB1tD,KAAK0tD,SAAU,EACf1tD,KAAK4E,KAAKkkC,MAAM+mB,iBAAiB9jB,OAAO/rC,QAShDuD,QAAS,WAEDvD,KAAK2pB,SAED3pB,KAAKk9D,iBAELl9D,KAAK4E,KAAKmM,OAAO0T,MAAM0wB,OAAS,UAChCn1C,KAAKk9D,gBAAiB,GAG1Bl9D,KAAK0tD,SAAU,EAEf1tD,KAAK4E,KAAKkkC,MAAM+mB,iBAAiB9jB,OAAO/rC,MAExCA,KAAK4+D,aAAal7D,OAAS,EAC3B1D,KAAKg+D,WAAa,KAClBh+D,KAAKi+D,aAAe,KACpBj+D,KAAK2pB,OAAS,OAgBtBgxC,cAAe,SAAU4E,EAAWC,EAAiBC,GAIjD,MAF4Bh2D,UAAxBg2D,IAAqCA,GAAsB,GAEnC,IAAxBz/D,KAAK2pB,OAAOhoB,MAAM+D,GAAmC,IAAxB1F,KAAK2pB,OAAOhoB,MAAMgE,GAAW3F,KAAK86D,WAAa96D,KAAK4E,KAAKkkC,MAAM8mB,eAErF,GAIN6P,IAAwBz/D,KAAK69D,oBAAqB79D,KAAK49D,oBAKxD59D,KAAK86D,WAAayE,GAAcv/D,KAAK86D,aAAeyE,GAAav/D,KAAK2pB,OAAOuvB,cAAgBsmB,IAEtF,GALA,GAkBfE,eAAgB,WAEZ,MAAQ1/D,MAAK69D,mBAAqB79D,KAAK49D,kBAY3C+B,SAAU,SAAU3uB,GAIhB,MAFAA,GAAUA,GAAW,EAEdhxC,KAAK4+D,aAAa5tB,GAAStrC,GAYtCk6D,SAAU,SAAU5uB,GAIhB,MAFAA,GAAUA,GAAW,EAEdhxC,KAAK4+D,aAAa5tB,GAASrrC,GAWtCk6D,YAAa,SAAU7uB,GAInB,MAFAA,GAAUA,GAAW,EAEdhxC,KAAK4+D,aAAa5tB,GAAS4lB,QAWtCkJ,UAAW,SAAU9uB,GAIjB,MAFAA,GAAUA,GAAW,EAEdhxC,KAAK4+D,aAAa5tB,GAAS6lB,MAWtCkJ,gBAAiB,SAAU/uB,GAIvB,MAFAA,GAAUA,GAAW,EAEdhxC,KAAK4+D,aAAa5tB,GAAS8lB,UAUtCkJ,cAAe,SAAUhvB,GAIrB,MAFAA,GAAUA,GAAW,EAEdhxC,KAAK4+D,aAAa5tB,GAASgmB,QAWtCiJ,YAAa,SAAUv3D,GAEnB,GAAI1I,KAAK0tD,QACT,CACI,GAAcjkD,SAAVf,EAYA,MAAO1I,MAAK4+D,aAAal2D,GAAOm2D,MAVhC,KAAK,GAAIp7D,GAAI,EAAO,GAAJA,EAAQA,IAEpB,GAAIzD,KAAK4+D,aAAan7D,GAAGo7D,OAErB,OAAO,EAUvB,OAAO,GAUXqB,WAAY,SAAUx3D,GAElB,GAAI1I,KAAK0tD,QACT,CACI,GAAcjkD,SAAVf,EAYA,MAAO1I,MAAK4+D,aAAal2D,GAAOo2D,KAVhC,KAAK,GAAIr7D,GAAI,EAAO,GAAJA,EAAQA,IAEpB,GAAIzD,KAAK4+D,aAAan7D,GAAGq7D,MAErB,OAAO,EAUvB,OAAO,GAUXqB,gBAAiB,SAAUnvB,GAIvB,MAFAA,GAAUA,GAAW,EAEdhxC,KAAK4+D,aAAa5tB,GAAS+tB,UAUtCqB,eAAgB,SAAUpvB,GAItB,MAFAA,GAAUA,GAAW,EAEdhxC,KAAK4+D,aAAa5tB,GAASguB,SAUtCqB,eAAgB,SAAUrvB,GAItB,MAFAA,GAAUA,GAAW,EAEdhxC,KAAK4+D,aAAa5tB,GAASopB,WAatCQ,iBAAkB,SAAU5pB,EAASsvB,GAEjC,MAAKtvB,GAAQ4lB,QAAW52D,KAAK0tD,SAAY1tD,KAAK2pB,QAAW3pB,KAAK2pB,OAAOvnB,QAAWpC,KAAK2pB,OAAO1nB,SAAYjC,KAAK2pB,OAAOvnB,OAAOH,SAMvHjC,KAAK4E,KAAKkkC,MAAMkpB,QAAQhyD,KAAK2pB,OAAQqnB,EAAShxC,KAAK2+D,aAElCl1D,SAAb62D,IAA0BA,GAAW,IAEpCA,GAAYtgE,KAAK69D,kBAEX79D,KAAKugE,WAAWvgE,KAAK2+D,WAAWj5D,EAAG1F,KAAK2+D,WAAWh5D,IAInD,IAdJ,GA+Bfk1D,iBAAkB,SAAU7pB,EAASsvB,GAEjC,MAAKtgE,MAAK0tD,SAAY1tD,KAAK2pB,QAAW3pB,KAAK2pB,OAAOvnB,QAAWpC,KAAK2pB,OAAO1nB,SAAYjC,KAAK2pB,OAAOvnB,OAAOH,SAMpGjC,KAAK4E,KAAKkkC,MAAMkpB,QAAQhyD,KAAK2pB,OAAQqnB,EAAShxC,KAAK2+D,aAElCl1D,SAAb62D,IAA0BA,GAAW,IAEpCA,GAAYtgE,KAAK49D,iBAEX59D,KAAKugE,WAAWvgE,KAAK2+D,WAAWj5D,EAAG1F,KAAK2+D,WAAWh5D,IAInD,IAdJ,GA+Bf46D,WAAY,SAAU76D,EAAGC,EAAGqrC,GAGxB,GAAIhxC,KAAK2pB,OAAO7hB,QAAQkE,YAAYwC,OACpC,CACI,GAAU,OAAN9I,GAAoB,OAANC,EAClB,CAEI3F,KAAK4E,KAAKkkC,MAAMipB,iBAAiB/xD,KAAK2pB,OAAQqnB,EAAShxC,KAAK2+D,WAE5D,IAAIj5D,GAAI1F,KAAK2+D,WAAWj5D,EACpBC,EAAI3F,KAAK2+D,WAAWh5D,EAgB5B,GAb6B,IAAzB3F,KAAK2pB,OAAOzhB,OAAOxC,IAEnBA,IAAM1F,KAAK2pB,OAAO7hB,QAAQqE,MAAMtF,MAAQ7G,KAAK2pB,OAAOzhB,OAAOxC,GAGlC,IAAzB1F,KAAK2pB,OAAOzhB,OAAOvC,IAEnBA,IAAM3F,KAAK2pB,OAAO7hB,QAAQqE,MAAMrF,OAAS9G,KAAK2pB,OAAOzhB,OAAOvC,GAGhED,GAAK1F,KAAK2pB,OAAO7hB,QAAQqE,MAAMzG,EAC/BC,GAAK3F,KAAK2pB,OAAO7hB,QAAQqE,MAAMxG,EAE3B3F,KAAK2pB,OAAO7hB,QAAQ8F,OAEpBlI,GAAK1F,KAAK2pB,OAAO7hB,QAAQ8F,KAAKlI,EAC9BC,GAAK3F,KAAK2pB,OAAO7hB,QAAQ8F,KAAKjI,EAG1BD,EAAI1F,KAAK2pB,OAAO7hB,QAAQoF,KAAKxH,GAAKA,EAAI1F,KAAK2pB,OAAO7hB,QAAQoF,KAAK0tB,OAASj1B,EAAI3F,KAAK2pB,OAAO7hB,QAAQoF,KAAKvH,GAAKA,EAAI3F,KAAK2pB,OAAO7hB,QAAQoF,KAAKmwB,QAIvI,MAFAr9B,MAAKwgE,IAAM96D,EACX1F,KAAKygE,IAAM96D,GACJ,CAIf3F,MAAKwgE,IAAM96D,EACX1F,KAAKygE,IAAM96D,EAEX3F,KAAK4E,KAAKkkC,MAAMykB,WAAWp/B,UAAU,EAAG,EAAG,EAAG,GAC9CnuB,KAAK4E,KAAKkkC,MAAMykB,WAAWl/C,UAAUrO,KAAK2pB,OAAO7hB,QAAQkE,YAAYwC,OAAQ9I,EAAGC,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAElG,IAAI2K,GAAMtQ,KAAK4E,KAAKkkC,MAAMykB,WAAWr8C,aAAa,EAAG,EAAG,EAAG,EAE3D,IAAIZ,EAAIa,KAAK,IAAMnR,KAAK89D,kBAEpB,OAAO,EAIf,OAAO,GAWXx3B,OAAQ,SAAU0K,GAEd,MAAoB,QAAhBhxC,KAAK2pB,QAA0ClgB,SAAvBzJ,KAAK2pB,OAAOvnB,OAMnCpC,KAAK0tD,SAAY1tD,KAAK2pB,OAAO1nB,SAAYjC,KAAK2pB,OAAOvnB,OAAOH,QAM7DjC,KAAK+9D,WAAa/9D,KAAK0gE,oBAAsB1vB,EAAQp5B,GAE9C5X,KAAK2gE,WAAW3vB,GAElBhxC,KAAK4+D,aAAa5tB,EAAQp5B,IAAIinD,OAE/B7+D,KAAK66D,iBAAiB7pB,IAEtBhxC,KAAK4+D,aAAa5tB,EAAQp5B,IAAIlS,EAAIsrC,EAAQtrC,EAAI1F,KAAK2pB,OAAOjkB,EAC1D1F,KAAK4+D,aAAa5tB,EAAQp5B,IAAIjS,EAAIqrC,EAAQrrC,EAAI3F,KAAK2pB,OAAOhkB,GACnD,IAIP3F,KAAK+6D,mBAAmB/pB,IACjB,GAXV,QARDhxC,KAAK+6D,mBAAmB/pB,IACjB,GATX,QAuCJgqB,oBAAqB,SAAUhqB,GAEP,OAAhBhxC,KAAK2pB,SAML3pB,KAAK4+D,aAAa5tB,EAAQp5B,IAAIinD,UAAW,GAAS7tB,EAAQp7B,SAE1D5V,KAAK4+D,aAAa5tB,EAAQp5B,IAAIinD,QAAS,EACvC7+D,KAAK4+D,aAAa5tB,EAAQp5B,IAAIknD,OAAQ,EACtC9+D,KAAK4+D,aAAa5tB,EAAQp5B,IAAImnD,SAAW/+D,KAAK4E,KAAKskC,KAAKA,KACxDlpC,KAAK4+D,aAAa5tB,EAAQp5B,IAAIlS,EAAIsrC,EAAQtrC,EAAI1F,KAAK2pB,OAAOjkB,EAC1D1F,KAAK4+D,aAAa5tB,EAAQp5B,IAAIjS,EAAIqrC,EAAQrrC,EAAI3F,KAAK2pB,OAAOhkB,EAEtD3F,KAAKi9D,eAAiBj9D,KAAK4+D,aAAa5tB,EAAQp5B,IAAIwiD,aAAc,IAElEp6D,KAAK4E,KAAKmM,OAAO0T,MAAM0wB,OAAS,UAChCn1C,KAAKk9D,gBAAiB,GAGtBl9D,KAAK2pB,QAAU3pB,KAAK2pB,OAAOysB,QAE3Bp2C,KAAK2pB,OAAOysB,OAAOwqB,qBAAqB5gE,KAAK2pB,OAAQqnB,KAajE+pB,mBAAoB,SAAU/pB,GAEN,OAAhBhxC,KAAK2pB,SAMT3pB,KAAK4+D,aAAa5tB,EAAQp5B,IAAIinD,QAAS,EACvC7+D,KAAK4+D,aAAa5tB,EAAQp5B,IAAIknD,OAAQ,EACtC9+D,KAAK4+D,aAAa5tB,EAAQp5B,IAAIonD,QAAUh/D,KAAK4E,KAAKskC,KAAKA,KAEnDlpC,KAAKi9D,eAAiBj9D,KAAK4+D,aAAa5tB,EAAQp5B,IAAIwiD,aAAc,IAElEp6D,KAAK4E,KAAKmM,OAAO0T,MAAM0wB,OAAS,UAChCn1C,KAAKk9D,gBAAiB,GAGtBl9D,KAAK2pB,QAAU3pB,KAAK2pB,OAAOysB,QAE3Bp2C,KAAK2pB,OAAOysB,OAAOyqB,oBAAoB7gE,KAAK2pB,OAAQqnB,KAY5D2oB,gBAAiB,SAAU3oB,GAEvB,GAAoB,OAAhBhxC,KAAK2pB,OAAT,CAMA,IAAK3pB,KAAK4+D,aAAa5tB,EAAQp5B,IAAIg/C,QAAU52D,KAAK4+D,aAAa5tB,EAAQp5B,IAAIinD,OAC3E,CACI,GAAI7+D,KAAK69D,oBAAsB79D,KAAKugE,WAAW,KAAM,KAAMvvB,GAEvD,MAGJhxC,MAAK4+D,aAAa5tB,EAAQp5B,IAAIg/C,QAAS,EACvC52D,KAAK4+D,aAAa5tB,EAAQp5B,IAAIi/C,MAAO,EACrC72D,KAAK4+D,aAAa5tB,EAAQp5B,IAAIk/C,SAAW92D,KAAK4E,KAAKskC,KAAKA,KAEpDlpC,KAAK2pB,QAAU3pB,KAAK2pB,OAAOysB,QAE3Bp2C,KAAK2pB,OAAOysB,OAAO0qB,qBAAqB9gE,KAAK2pB,OAAQqnB,GAIzDA,EAAQp7B,OAAQ,EAGZ5V,KAAK+9D,WAAa/9D,KAAKo6D,aAAc,GAErCp6D,KAAK+gE,UAAU/vB,GAGfhxC,KAAKm3C,YAELn3C,KAAK2pB,OAAOwtB,aAKpB,MAAOn3C,MAAKk+D,sBAUhB5C,iBAAkB,SAAUtqB,GAEJ,OAAhBhxC,KAAK2pB,QAOL3pB,KAAK4+D,aAAa5tB,EAAQp5B,IAAIg/C,QAAU5lB,EAAQ6lB,OAEhD72D,KAAK4+D,aAAa5tB,EAAQp5B,IAAIg/C,QAAS,EACvC52D,KAAK4+D,aAAa5tB,EAAQp5B,IAAIi/C,MAAO,EACrC72D,KAAK4+D,aAAa5tB,EAAQp5B,IAAIo/C,OAASh3D,KAAK4E,KAAKskC,KAAKA,KACtDlpC,KAAK4+D,aAAa5tB,EAAQp5B,IAAIqnD,aAAej/D,KAAK4+D,aAAa5tB,EAAQp5B,IAAIo/C,OAASh3D,KAAK4+D,aAAa5tB,EAAQp5B,IAAIk/C,SAG9G92D,KAAK66D,iBAAiB7pB,GAGlBhxC,KAAK2pB,QAAU3pB,KAAK2pB,OAAOysB,QAE3Bp2C,KAAK2pB,OAAOysB,OAAO4qB,mBAAmBhhE,KAAK2pB,OAAQqnB,GAAS,IAM5DhxC,KAAK2pB,QAAU3pB,KAAK2pB,OAAOysB,QAE3Bp2C,KAAK2pB,OAAOysB,OAAO4qB,mBAAmBhhE,KAAK2pB,OAAQqnB,GAAS,GAI5DhxC,KAAKi9D,gBAELj9D,KAAK4E,KAAKmM,OAAO0T,MAAM0wB,OAAS,UAChCn1C,KAAKk9D,gBAAiB,IAK9BlsB,EAAQp7B,OAAQ,EAGZ5V,KAAK+9D,WAAa/9D,KAAKo6D,WAAap6D,KAAK0gE,oBAAsB1vB,EAAQp5B,IAEvE5X,KAAKihE,SAASjwB,KAY1B2vB,WAAY,SAAU3vB,GAElB,GAAIA,EAAQ6lB,KAGR,MADA72D,MAAKihE,SAASjwB,IACP,CAGX,IAAIt+B,GAAK1S,KAAKkhE,eAAelwB,EAAQtrC,GAAK1F,KAAKw+D,WAAW94D,EAAI1F,KAAKo+D,WAAW14D,EAC1EiN,EAAK3S,KAAKmhE,eAAenwB,EAAQrrC,GAAK3F,KAAKw+D,WAAW74D,EAAI3F,KAAKo+D,WAAWz4D,CA+D9E,OA7DI3F,MAAK2pB,OAAO6rB,eAERx1C,KAAKm9D,sBAELn9D,KAAK2pB,OAAO8rB,aAAa/vC,EAAIgN,GAG7B1S,KAAKo9D,oBAELp9D,KAAK2pB,OAAO8rB,aAAa9vC,EAAIgN,GAG7B3S,KAAKg+D,YAELh+D,KAAKohE,kBAGLphE,KAAKi+D,cAELj+D,KAAKqhE,oBAGLrhE,KAAKs9D,aAELt9D,KAAK2pB,OAAO8rB,aAAa/vC,EAAI/E,KAAKi8B,OAAO58B,KAAK2pB,OAAO8rB,aAAa/vC,EAAK1F,KAAK09D,YAAc19D,KAAKw9D,OAAUx9D,KAAKw9D,OAASx9D,KAAKw9D,MAASx9D,KAAK09D,YAAc19D,KAAKw9D,MAC7Jx9D,KAAK2pB,OAAO8rB,aAAa9vC,EAAIhF,KAAKi8B,OAAO58B,KAAK2pB,OAAO8rB,aAAa9vC,EAAK3F,KAAK29D,YAAc39D,KAAKy9D,OAAUz9D,KAAKy9D,OAASz9D,KAAKy9D,MAASz9D,KAAK29D,YAAc39D,KAAKy9D,MAC7Jz9D,KAAKu+D,UAAUv6D,IAAIhE,KAAK2pB,OAAO8rB,aAAa/vC,EAAG1F,KAAK2pB,OAAO8rB,aAAa9vC,MAKxE3F,KAAKm9D,sBAELn9D,KAAK2pB,OAAOjkB,EAAIgN,GAGhB1S,KAAKo9D,oBAELp9D,KAAK2pB,OAAOhkB,EAAIgN,GAGhB3S,KAAKg+D,YAELh+D,KAAKohE,kBAGLphE,KAAKi+D,cAELj+D,KAAKqhE,oBAGLrhE,KAAKs9D,aAELt9D,KAAK2pB,OAAOjkB,EAAI/E,KAAKi8B,OAAO58B,KAAK2pB,OAAOjkB,EAAK1F,KAAK09D,YAAc19D,KAAKw9D,OAAUx9D,KAAKw9D,OAASx9D,KAAKw9D,MAASx9D,KAAK09D,YAAc19D,KAAKw9D,MACnIx9D,KAAK2pB,OAAOhkB,EAAIhF,KAAKi8B,OAAO58B,KAAK2pB,OAAOhkB,EAAK3F,KAAK29D,YAAc39D,KAAKy9D,OAAUz9D,KAAKy9D,OAASz9D,KAAKy9D,MAASz9D,KAAK29D,YAAc39D,KAAKy9D,MACnIz9D,KAAKu+D,UAAUv6D,IAAIhE,KAAK2pB,OAAOjkB,EAAG1F,KAAK2pB,OAAOhkB,KAItD3F,KAAK2pB,OAAOysB,OAAOkrB,aAAa70B,SAASzsC,KAAK2pB,OAAQqnB,EAASt+B,EAAIC,EAAI3S,KAAKu+D,YAErE,GAWXgD,SAAU,SAAUvwB,EAASwwB,GAKzB,MAHAxwB,GAAUA,GAAW,EACrBwwB,EAAQA,GAAS,IAETxhE,KAAK4+D,aAAa5tB,GAAS6tB,QAAU7+D,KAAKyhE,aAAazwB,GAAWwwB,GAW9EE,QAAS,SAAU1wB,EAASwwB,GAKxB,MAHAxwB,GAAUA,GAAW,EACrBwwB,EAAQA,GAAS,IAETxhE,KAAK4+D,aAAa5tB,GAAS8tB,OAAU9+D,KAAK4E,KAAKskC,KAAKA,KAAOlpC,KAAK4+D,aAAa5tB,GAASguB,QAAUwC,GAW5GjK,YAAa,SAAUvmB,EAASwwB,GAK5B,MAHAxwB,GAAUA,GAAW,EACrBwwB,EAAQA,GAAS,IAETxhE,KAAK4+D,aAAa5tB,GAAS4lB,QAAU52D,KAAKi/D,aAAajuB,GAAWwwB,GAW9EhK,aAAc,SAAUxmB,EAASwwB,GAK7B,MAHAxwB,GAAUA,GAAW,EACrBwwB,EAAQA,GAAS,IAETxhE,KAAK4+D,aAAa5tB,GAAS6lB,MAAS72D,KAAK4E,KAAKskC,KAAKA,KAAOlpC,KAAK4+D,aAAa5tB,GAASgmB,OAASwK,GAU1GC,aAAc,SAAUzwB,GAIpB,MAFAA,GAAUA,GAAW,EAEjBhxC,KAAK4+D,aAAa5tB,GAAS6tB,OAEpB7+D,KAAK4E,KAAKskC,KAAKA,KAAOlpC,KAAK4+D,aAAa5tB,GAAS+tB,SAGrD,IAUXE,aAAc,SAAUjuB,GAIpB,MAFAA,GAAUA,GAAW,EAEjBhxC,KAAK4+D,aAAa5tB,GAAS4lB,OAEpB52D,KAAK4E,KAAKskC,KAAKA,KAAOlpC,KAAK4+D,aAAa5tB,GAAS8lB,SAGrD,IAsBX6K,WAAY,SAAUC,EAAYzqB,EAAY0qB,EAAcC,EAAgB9D,EAAYC,GAEjEx0D,SAAfm4D,IAA4BA,GAAa,GAC1Bn4D,SAAf0tC,IAA4BA,GAAa,GACxB1tC,SAAjBo4D,IAA8BA,GAAe,GAC1Bp4D,SAAnBq4D,IAAgCA,EAAiB,KAClCr4D,SAAfu0D,IAA4BA,EAAa,MACxBv0D,SAAjBw0D,IAA8BA,EAAe,MAEjDj+D,KAAKw+D,WAAa,GAAI1qC,GAAOpyB,MAC7B1B,KAAK+9D,WAAY,EACjB/9D,KAAKm3C,WAAaA,EAClBn3C,KAAKo+D,WAAa,GAAItqC,GAAOpyB,MAC7B1B,KAAKq+D,eAAiBuD,EAEtB5hE,KAAK69D,kBAAoBgE,EACzB7hE,KAAK89D,kBAAoBgE,EAErB9D,IAEAh+D,KAAKg+D,WAAaA,GAGlBC,IAEAj+D,KAAKi+D,aAAeA,IAS5B8D,YAAa,WAET,GAAI/hE,KAAK4+D,aAEL,IAAK,GAAIn7D,GAAI,EAAO,GAAJA,EAAQA,IAEpBzD,KAAK4+D,aAAan7D,GAAG22D,WAAY,CAIzCp6D,MAAK+9D,WAAY,EACjB/9D,KAAKo6D,WAAY,EACjBp6D,KAAK0gE,kBAAoB,IAS7BK,UAAW,SAAU/vB,GAEjB,GAAItrC,GAAI1F,KAAK2pB,OAAOjkB,EAChBC,EAAI3F,KAAK2pB,OAAOhkB,CAMpB,IAJA3F,KAAKo6D,WAAY,EACjBp6D,KAAK0gE,kBAAoB1vB,EAAQp5B,GACjC5X,KAAK4+D,aAAa5tB,EAAQp5B,IAAIwiD,WAAY,EAEtCp6D,KAAK2pB,OAAO6rB,cAERx1C,KAAKq+D,gBAELr+D,KAAK2pB,OAAOia,SAASoN,EAAQtrC,EAAGsrC,EAAQrrC,GACxC3F,KAAKw+D,WAAWjiC,MAAMv8B,KAAK2pB,OAAO8rB,aAAa/vC,EAAIsrC,EAAQtrC,EAAG1F,KAAK2pB,OAAO8rB,aAAa9vC,EAAIqrC,EAAQrrC,IAInG3F,KAAKw+D,WAAWjiC,MAAMv8B,KAAK2pB,OAAO8rB,aAAa/vC,EAAIsrC,EAAQtrC,EAAG1F,KAAK2pB,OAAO8rB,aAAa9vC,EAAIqrC,EAAQrrC,OAI3G,CACI,GAAI3F,KAAKq+D,eACT,CACI,GAAI33D,GAAS1G,KAAK2pB,OAAO3jB,WAEzBhG,MAAK2pB,OAAOjkB,EAAI1F,KAAKkhE,eAAelwB,EAAQtrC,IAAM1F,KAAK2pB,OAAOjkB,EAAIgB,EAAOm9B,SACzE7jC,KAAK2pB,OAAOhkB,EAAI3F,KAAKmhE,eAAenwB,EAAQrrC,IAAM3F,KAAK2pB,OAAOhkB,EAAIe,EAAOo9B,SAG7E9jC,KAAKw+D,WAAWjiC,MAAMv8B,KAAK2pB,OAAOjkB,EAAI1F,KAAKkhE,eAAelwB,EAAQtrC,GAAI1F,KAAK2pB,OAAOhkB,EAAI3F,KAAKmhE,eAAenwB,EAAQrrC,IAGtH3F,KAAK2gE,WAAW3vB,GAEZhxC,KAAKm3C,aAELn3C,KAAKy+D,YAAa,EAClBz+D,KAAK2pB,OAAOwtB,cAGhBn3C,KAAKs+D,eAAet6D,IAAI0B,EAAGC,GAC3B3F,KAAK2pB,OAAOysB,OAAO4rB,qBAAqBhiE,KAAK2pB,OAAQqnB,EAAStrC,EAAGC,IASrEu7D,eAAgB,SAAUx7D,GAQtB,MANI1F,MAAKm+D,aAELz4D,GAAK1F,KAAK4E,KAAKjD,MAAM6mC,KAAKqT,YAAYn2C,EACtCA,GAAK1F,KAAK4E,KAAKjD,MAAM6mC,KAAK8T,mBAAmB52C,GAG1CA,GASXy7D,eAAgB,SAAUx7D,GAQtB,MANI3F,MAAKm+D,aAELx4D,GAAK3F,KAAK4E,KAAKjD,MAAM6mC,KAAKqT,YAAYl2C,EACtCA,GAAK3F,KAAK4E,KAAKjD,MAAM6mC,KAAK8T,mBAAmB32C,GAG1CA,GASXs7D,SAAU,SAAUjwB,GAEhBhxC,KAAKo6D,WAAY,EACjBp6D,KAAK0gE,kBAAoB,GACzB1gE,KAAK4+D,aAAa5tB,EAAQp5B,IAAIwiD,WAAY,EAC1Cp6D,KAAKy+D,YAAa,EAEdz+D,KAAKu9D,gBAEDv9D,KAAK2pB,OAAO6rB,eAEZx1C,KAAK2pB,OAAO8rB,aAAa/vC,EAAI/E,KAAKi8B,OAAO58B,KAAK2pB,OAAO8rB,aAAa/vC,EAAK1F,KAAK09D,YAAc19D,KAAKw9D,OAAUx9D,KAAKw9D,OAASx9D,KAAKw9D,MAASx9D,KAAK09D,YAAc19D,KAAKw9D,MAC7Jx9D,KAAK2pB,OAAO8rB,aAAa9vC,EAAIhF,KAAKi8B,OAAO58B,KAAK2pB,OAAO8rB,aAAa9vC,EAAK3F,KAAK29D,YAAc39D,KAAKy9D,OAAUz9D,KAAKy9D,OAASz9D,KAAKy9D,MAASz9D,KAAK29D,YAAc39D,KAAKy9D,QAI7Jz9D,KAAK2pB,OAAOjkB,EAAI/E,KAAKi8B,OAAO58B,KAAK2pB,OAAOjkB,EAAK1F,KAAK09D,YAAc19D,KAAKw9D,OAAUx9D,KAAKw9D,OAASx9D,KAAKw9D,MAASx9D,KAAK09D,YAAc19D,KAAKw9D,MACnIx9D,KAAK2pB,OAAOhkB,EAAIhF,KAAKi8B,OAAO58B,KAAK2pB,OAAOhkB,EAAK3F,KAAK29D,YAAc39D,KAAKy9D,OAAUz9D,KAAKy9D,OAASz9D,KAAKy9D,MAASz9D,KAAK29D,YAAc39D,KAAKy9D,QAI3Iz9D,KAAK2pB,OAAOysB,OAAO6rB,oBAAoBjiE,KAAK2pB,OAAQqnB,GAEhDhxC,KAAK66D,iBAAiB7pB,MAAa,GAEnChxC,KAAK+6D,mBAAmB/pB,IAWhCkxB,YAAa,SAAUC,EAAiBC,GAEZ34D,SAApB04D,IAAiCA,GAAkB,GACjC14D,SAAlB24D,IAA+BA,GAAgB,GAEnDpiE,KAAKm9D,oBAAsBgF,EAC3BniE,KAAKo9D,kBAAoBgF,GAe7BC,WAAY,SAAU7E,EAAOC,EAAO6E,EAAQC,EAAW7E,EAAaC,GAEjDl0D,SAAX64D,IAAwBA,GAAS,GACnB74D,SAAd84D,IAA2BA,GAAY,GACvB94D,SAAhBi0D,IAA6BA,EAAc,GAC3Bj0D,SAAhBk0D,IAA6BA,EAAc,GAE/C39D,KAAKw9D,MAAQA,EACbx9D,KAAKy9D,MAAQA,EACbz9D,KAAK09D,YAAcA,EACnB19D,KAAK29D,YAAcA,EACnB39D,KAAKs9D,WAAagF,EAClBtiE,KAAKu9D,cAAgBgF,GAQzBC,YAAa,WAETxiE,KAAKs9D,YAAa,EAClBt9D,KAAKu9D,eAAgB,GASzB6D,gBAAiB,WAETphE,KAAK2pB,OAAO6rB,eAERx1C,KAAK2pB,OAAO8rB,aAAa/vC,EAAI1F,KAAKg+D,WAAWnjC,KAE7C76B,KAAK2pB,OAAO8rB,aAAa/vC,EAAI1F,KAAKg+D,WAAWnjC,KAEvC76B,KAAK2pB,OAAO8rB,aAAa/vC,EAAI1F,KAAK2pB,OAAO9iB,MAAS7G,KAAKg+D,WAAWpjC,QAExE56B,KAAK2pB,OAAO8rB,aAAa/vC,EAAI1F,KAAKg+D,WAAWpjC,MAAQ56B,KAAK2pB,OAAO9iB,OAGjE7G,KAAK2pB,OAAO8rB,aAAa9vC,EAAI3F,KAAKg+D,WAAW5gC,IAE7Cp9B,KAAK2pB,OAAO8rB,aAAa9vC,EAAI3F,KAAKg+D,WAAW5gC,IAEvCp9B,KAAK2pB,OAAO8rB,aAAa9vC,EAAI3F,KAAK2pB,OAAO7iB,OAAU9G,KAAKg+D,WAAW3gC,SAEzEr9B,KAAK2pB,OAAO8rB,aAAa9vC,EAAI3F,KAAKg+D,WAAW3gC,OAASr9B,KAAK2pB,OAAO7iB,UAKlE9G,KAAK2pB,OAAOkR,KAAO76B,KAAKg+D,WAAWnjC,KAEnC76B,KAAK2pB,OAAOjkB,EAAI1F,KAAKg+D,WAAWt4D,EAAI1F,KAAK2pB,OAAOa,QAE3CxqB,KAAK2pB,OAAOiR,MAAQ56B,KAAKg+D,WAAWpjC,QAEzC56B,KAAK2pB,OAAOjkB,EAAI1F,KAAKg+D,WAAWpjC,OAAS56B,KAAK2pB,OAAO9iB,MAAQ7G,KAAK2pB,OAAOa,UAGzExqB,KAAK2pB,OAAOyT,IAAMp9B,KAAKg+D,WAAW5gC,IAElCp9B,KAAK2pB,OAAOhkB,EAAI3F,KAAKg+D,WAAW5gC,IAAMp9B,KAAK2pB,OAAOc,QAE7CzqB,KAAK2pB,OAAO0T,OAASr9B,KAAKg+D,WAAW3gC,SAE1Cr9B,KAAK2pB,OAAOhkB,EAAI3F,KAAKg+D,WAAW3gC,QAAUr9B,KAAK2pB,OAAO7iB,OAAS9G,KAAK2pB,OAAOc,YAUvF42C,kBAAmB,WAEXrhE,KAAK2pB,OAAO6rB,eAAiBx1C,KAAKi+D,aAAazoB,eAE3Cx1C,KAAK2pB,OAAO8rB,aAAa/vC,EAAI1F,KAAKi+D,aAAaxoB,aAAa/vC,EAE5D1F,KAAK2pB,OAAO8rB,aAAa/vC,EAAI1F,KAAKi+D,aAAaxoB,aAAa/vC,EAEtD1F,KAAK2pB,OAAO8rB,aAAa/vC,EAAI1F,KAAK2pB,OAAO9iB,MAAU7G,KAAKi+D,aAAaxoB,aAAa/vC,EAAI1F,KAAKi+D,aAAap3D,QAE9G7G,KAAK2pB,OAAO8rB,aAAa/vC,EAAK1F,KAAKi+D,aAAaxoB,aAAa/vC,EAAI1F,KAAKi+D,aAAap3D,MAAS7G,KAAK2pB,OAAO9iB,OAGxG7G,KAAK2pB,OAAO8rB,aAAa9vC,EAAI3F,KAAKi+D,aAAaxoB,aAAa9vC,EAE5D3F,KAAK2pB,OAAO8rB,aAAa9vC,EAAI3F,KAAKi+D,aAAaxoB,aAAa9vC,EAEtD3F,KAAK2pB,OAAO8rB,aAAa9vC,EAAI3F,KAAK2pB,OAAO7iB,OAAW9G,KAAKi+D,aAAaxoB,aAAa9vC,EAAI3F,KAAKi+D,aAAan3D,SAE/G9G,KAAK2pB,OAAO8rB,aAAa9vC,EAAK3F,KAAKi+D,aAAaxoB,aAAa9vC,EAAI3F,KAAKi+D,aAAan3D,OAAU9G,KAAK2pB,OAAO7iB,UAKzG9G,KAAK2pB,OAAOkR,KAAO76B,KAAKi+D,aAAapjC,KAErC76B,KAAK2pB,OAAOjkB,EAAI1F,KAAKi+D,aAAapjC,KAAO76B,KAAK2pB,OAAOa,QAEhDxqB,KAAK2pB,OAAOiR,MAAQ56B,KAAKi+D,aAAarjC,QAE3C56B,KAAK2pB,OAAOjkB,EAAI1F,KAAKi+D,aAAarjC,OAAS56B,KAAK2pB,OAAO9iB,MAAQ7G,KAAK2pB,OAAOa,UAG3ExqB,KAAK2pB,OAAOyT,IAAMp9B,KAAKi+D,aAAa7gC,IAEpCp9B,KAAK2pB,OAAOhkB,EAAI3F,KAAKi+D,aAAa7gC,IAAMp9B,KAAK2pB,OAAOc,QAE/CzqB,KAAK2pB,OAAO0T,OAASr9B,KAAKi+D,aAAa5gC,SAE5Cr9B,KAAK2pB,OAAOhkB,EAAI3F,KAAKi+D,aAAa5gC,QAAUr9B,KAAK2pB,OAAO7iB,OAAS9G,KAAK2pB,OAAOc,aA0B7FqJ,EAAOkpC,aAAa35D,UAAUC,YAAcwwB,EAAOkpC,aAQnDlpC,EAAO2uC,UAAY,aAanB3uC,EAAO2uC,UAAUC,MAAQ,aAEzB5uC,EAAO2uC,UAAUC,MAAMr/D,WAenB25B,OAEIl5B,IAAK,WAED,MAAOgwB,GAAOnzB,KAAKgiE,UAAU7uC,EAAOnzB,KAAKwgC,SAASnhC,KAAK+B,YAI3DiC,IAAK,SAASC,GAEVjE,KAAK+B,SAAW+xB,EAAOnzB,KAAK68B,SAAS1J,EAAOnzB,KAAKgiE,UAAU1+D,OAmBvE6vB,EAAO2uC,UAAUG,UAAY,aAE7B9uC,EAAO2uC,UAAUG,UAAUv/D,WAiBvBw/D,KAAM,SAAU1nC,EAAM2nC,EAAWC,EAAMC,GAEnC,MAAIhjE,MAAKijE,WAEEjjE,KAAKijE,WAAWJ,KAAK1nC,EAAM2nC,EAAWC,EAAMC,GAFvD,SAqBRlvC,EAAO2uC,UAAUS,SAAW,aAE5BpvC,EAAO2uC,UAAUS,SAAS7/D,WAatB8/D,UAAU,EASVC,UAEIt/D,IAAK,WASD,MAPK9D,MAAKmjE,UAAanjE,KAAKqjE,mBAExBrjE,KAAK+C,QAAQy5B,SAASx8B,KAAKgG,aAC3BhG,KAAK+C,QAAQ2C,GAAK1F,KAAK4E,KAAKgkC,OAAO3nC,KAAKyE,EACxC1F,KAAK+C,QAAQ4C,GAAK3F,KAAK4E,KAAKgkC,OAAO3nC,KAAK0E,GAGrC3F,KAAK4E,KAAKE,MAAM8jC,OAAO3nC,KAAKs8B,WAAWv9B,KAAK+C,YAmB/D+wB,EAAO2uC,UAAUa,OAAS,aAE1BxvC,EAAO2uC,UAAUa,OAAOjgE,WAUpBmnB,SAEI1mB,IAAK,WAED,MAAO9D,MAAKkI,OAAOxC,EAAI1F,KAAK6G,QAcpC4jB,SAEI3mB,IAAK,WAED,MAAO9D,MAAKkI,OAAOvC,EAAI3F,KAAK8G,SAapC+zB,MAEI/2B,IAAK,WAED,MAAO9D,MAAK0F,EAAI1F,KAAKwqB,UAa7BoQ,OAEI92B,IAAK,WAED,MAAQ9D,MAAK0F,EAAI1F,KAAK6G,MAAS7G,KAAKwqB,UAa5C4S,KAEIt5B,IAAK,WAED,MAAO9D,MAAK2F,EAAI3F,KAAKyqB,UAa7B4S,QAEIv5B,IAAK,WAED,MAAQ9D,MAAK2F,EAAI3F,KAAK8G,OAAU9G,KAAKyqB,WAmBjDqJ,EAAO2uC,UAAUc,WAAa,aAY9BzvC,EAAO2uC,UAAUc,WAAWlgE,UAAU8zC,WAAa,WAO/C,MALIn3C,MAAKoC,QAELpC,KAAKoC,OAAO+0C,WAAWn3C,MAGpBA,MAcX8zB,EAAO2uC,UAAUc,WAAWlgE,UAAUg0C,WAAa,WAO/C,MALIr3C,MAAKoC,QAELpC,KAAKoC,OAAOi1C,WAAWr3C,MAGpBA,MAcX8zB,EAAO2uC,UAAUc,WAAWlgE,UAAUi0C,OAAS,WAO3C,MALIt3C,MAAKoC,QAELpC,KAAKoC,OAAOk1C,OAAOt3C,MAGhBA,MAcX8zB,EAAO2uC,UAAUc,WAAWlgE,UAAUk0C,SAAW,WAO7C,MALIv3C,MAAKoC,QAELpC,KAAKoC,OAAOm1C,SAASv3C,MAGlBA,MAeX8zB,EAAO2uC,UAAUe,KAAO,aAUxB1vC,EAAO2uC,UAAUe,KAAKC,QAAU,SAAUC,GAGtC5vC,EAAOoF,MAAMsC,eAAex7B,KAAM8zB,EAAO2uC,UAAUe,KAAKngE,WAExDrD,KAAK0jE,aAEL,KAAK,GAAIjgE,GAAI,EAAGA,EAAIigE,EAAWhgE,OAAQD,IACvC,CACI,GAAImU,GAAK8rD,EAAWjgE,GAChBi4B,GAAU,CAEH,aAAP9jB,IAEA8jB,GAAU,GAGd5H,EAAOoF,MAAMsC,eAAex7B,KAAM8zB,EAAO2uC,UAAU7qD,GAAIvU,UAAWq4B,GAElE17B,KAAK0jE,WAAW9rD,IAAM,IAa9Bkc,EAAO2uC,UAAUe,KAAK1tD,KAAO,SAAUlR,EAAMc,EAAGC,EAAG+Q,EAAKvK,GAEpDnM,KAAK4E,KAAOA,EAEZ5E,KAAK0W,IAAMA,EAEX1W,KAAKyB,SAASuC,IAAI0B,EAAGC,GACrB3F,KAAK8E,MAAQ,GAAIgvB,GAAOpyB,MAAMgE,EAAGC,GACjC3F,KAAK2jE,iBAAmB,GAAI7vC,GAAOpyB,MAAMgE,EAAGC,GAE5C3F,KAAKo2C,OAAS,GAAItiB,GAAO8vC,OAAO5jE,MAEhCA,KAAK+C,QAAU,GAAI+wB,GAAO9wB,UAEtBhD,KAAK0jE,WAAWG,cAGhB7jE,KAAKk2C,KAAOl2C,KAAKk2C,MAGjBl2C,KAAK0jE,WAAWd,YAEhB5iE,KAAKijE,WAAa,GAAInvC,GAAOgwC,iBAAiB9jE,OAG9CA,KAAK0jE,WAAWK,aAAuB,OAARrtD,GAE/B1W,KAAKgkE,YAAYttD,EAAKvK,GAGtBnM,KAAK0jE,WAAWO,gBAEhBjkE,KAAKy1C,aAAe,GAAI3hB,GAAOpyB,MAAMgE,EAAGC,KAKhDmuB,EAAO2uC,UAAUe,KAAKl9D,UAAY,WAE9B,GAAItG,KAAKi1C,eAGL,WADAj1C,MAAKuD,SAOT,IAHAvD,KAAK2jE,iBAAiB3/D,IAAIhE,KAAK8E,MAAMY,EAAG1F,KAAK8E,MAAMa,GACnD3F,KAAKkkE,iBAAmBlkE,KAAK+B,UAExB/B,KAAKiyC,SAAWjyC,KAAKoC,OAAO6vC,OAG7B,MADAjyC,MAAKk5C,cAAgB,IACd,CAGXl5C,MAAK8E,MAAMy3B,MAAMv8B,KAAK4E,KAAKgkC,OAAOljC,EAAI1F,KAAKuC,eAAe4C,GAAInF,KAAK4E,KAAKgkC,OAAOjjC,EAAI3F,KAAKuC,eAAe6C,IAEnGpF,KAAKiC,UAELjC,KAAKk5C,cAAgBl5C,KAAK4E,KAAKvC,MAAM6vC,wBAGrClyC,KAAK8H,UAEL9H,KAAK8H,QAAQoG,gBAAiB,GAG9BlO,KAAKijE,YAELjjE,KAAKijE,WAAW38B,SAGhBtmC,KAAKk2C,MAELl2C,KAAKk2C,KAAK5vC,WAGd,KAAK,GAAI7C,GAAI,EAAGA,EAAIzD,KAAKwD,SAASE,OAAQD,IAEtCzD,KAAKwD,SAASC,GAAG6C,WAGrB,QAAO,GAIXwtB,EAAO2uC,UAAUe,KAAKngE,WAMlBuB,KAAM,KAQNu2B,KAAM,GAONuoC,cAQApqD,EAAG,EAQH88B,OAAQ3sC,OAQRw5D,WAAYx5D,OAUZiN,IAAK,GAQL5R,MAAO,KAOPgoC,OAAO,EAOP62B,iBAAkB,KAOlBO,iBAAkB,EAQlBhrB,cAAe,EAQfirB,OAAO,EAWPlvB,gBAAgB,EAMhBlyC,QAAS,KAMTqhE,SAAS,EAaTnyB,QAEInuC,IAAK,WAED,MAAO9D,MAAKokE,SAIhBpgE,IAAK,SAAUC,GAEPA,GAEAjE,KAAKokE,SAAU,EAEXpkE,KAAKk2C,MAAQl2C,KAAKk2C,KAAKn/B,OAAS+c,EAAO8gB,QAAQyvB,MAE/CrkE,KAAKk2C,KAAKgH,aAGdl9C,KAAKiC,SAAU,IAIfjC,KAAKokE,SAAU,EAEXpkE,KAAKk2C,MAAQl2C,KAAKk2C,KAAKn/B,OAAS+c,EAAO8gB,QAAQyvB,MAE/CrkE,KAAKk2C,KAAKouB,kBAGdtkE,KAAKiC,SAAU,KAc3BqkC,OAAQ,aAURyL,WAAY,WAEJ/xC,KAAKukE,cAELvkE,KAAK0W,IAAI1P,SAGThH,KAAK0jE,WAAWG,aAEhB/vC,EAAO2uC,UAAUoB,YAAY9xB,WAAWjsC,KAAK9F,MAG7CA,KAAK0jE,WAAWO,eAEhBnwC,EAAO2uC,UAAUwB,cAAclyB,WAAWjsC,KAAK9F,KAGnD,KAAK,GAAIyD,GAAI,EAAGA,EAAIzD,KAAKwD,SAASE,OAAQD,IAEtCzD,KAAKwD,SAASC,GAAGsuC,eAmB7Bje,EAAO2uC,UAAU+B,KAAO,aAExB1wC,EAAO2uC,UAAU+B,KAAKnhE,WASlBohE,SAAU,KAMVC,MAAO,KAmBPx3D,KAAM,SAASskB,EAAM4J,GAEJ3xB,SAAT2xB,IAAsBA,GAAO,GAE7B5J,GAEI4J,GAA0B,OAAlBp7B,KAAKykE,SAEbzkE,KAAKykE,SAASloC,MAAM/K,EAAK9rB,EAAG8rB,EAAK7rB,EAAG6rB,EAAK3qB,MAAO2qB,EAAK1qB,QAIrD9G,KAAKykE,SAFArpC,GAA0B,OAAlBp7B,KAAKykE,SAEF,GAAI3wC,GAAO9wB,UAAUwuB,EAAK9rB,EAAG8rB,EAAK7rB,EAAG6rB,EAAK3qB,MAAO2qB,EAAK1qB,QAItD0qB,EAGpBxxB,KAAK2kE,eAIL3kE,KAAK0kE,MAAQ,KACb1kE,KAAKykE,SAAW,KAEhBzkE,KAAK4kE,eAWbD,WAAY,WAER,GAAK3kE,KAAKykE,SAAV,CAKAzkE,KAAK0kE,MAAQ5wC,EAAO9wB,UAAUs4B,MAAMt7B,KAAKykE,SAAUzkE,KAAK0kE,OACxD1kE,KAAK0kE,MAAMh/D,GAAK1F,KAAK6kE,OAAOn/D,EAC5B1F,KAAK0kE,MAAM/+D,GAAK3F,KAAK6kE,OAAOl/D,CAE5B,IAAI2I,GAAK3N,KAAK2+B,IAAIt/B,KAAK6kE,OAAOn/D,EAAG1F,KAAK0kE,MAAMh/D,GACxC6I,EAAK5N,KAAK2+B,IAAIt/B,KAAK6kE,OAAOl/D,EAAG3F,KAAK0kE,MAAM/+D,GACxCqI,EAAKrN,KAAK0wB,IAAIrxB,KAAK6kE,OAAOjqC,MAAO56B,KAAK0kE,MAAM9pC,OAAStsB,EACrDL,EAAKtN,KAAK0wB,IAAIrxB,KAAK6kE,OAAOxnC,OAAQr9B,KAAK0kE,MAAMrnC,QAAU9uB,CAE3DvO,MAAK8H,QAAQoF,KAAKxH,EAAI4I,EACtBtO,KAAK8H,QAAQoF,KAAKvH,EAAI4I,EACtBvO,KAAK8H,QAAQoF,KAAKrG,MAAQmH,EAC1BhO,KAAK8H,QAAQoF,KAAKpG,OAASmH,EAE3BjO,KAAK8H,QAAQqE,MAAMtF,MAAQlG,KAAK0wB,IAAIrjB,EAAIhO,KAAKykE,SAAS59D,OACtD7G,KAAK8H,QAAQqE,MAAMrF,OAASnG,KAAK0wB,IAAIpjB,EAAIjO,KAAKykE,SAAS39D,QAEvD9G,KAAK8H,QAAQjB,MAAQ7G,KAAK8H,QAAQqE,MAAMtF,MACxC7G,KAAK8H,QAAQhB,OAAS9G,KAAK8H,QAAQqE,MAAMrF,OAEzC9G,KAAK8H,QAAQurB,gBAiBrBS,EAAO2uC,UAAUqC,MAAQ,aAEzBhxC,EAAO2uC,UAAUqC,MAAMzhE,WAUnBwyD,QAEI/xD,IAAK,WAED,MAAO9D,MAAK8E,MAAMY,EAAI1F,KAAK2jE,iBAAiBj+D,IAcpDivD,QAEI7wD,IAAK,WAED,MAAO9D,MAAK8E,MAAMa,EAAI3F,KAAK2jE,iBAAiBh+D,IAYpDowD,QAEIjyD,IAAK,WAED,MAAO9D,MAAK+B,SAAW/B,KAAKkkE,oBAmBxCpwC,EAAO2uC,UAAUsC,QAAU,aAE3BjxC,EAAO2uC,UAAUsC,QAAQ1hE,WAQrBu3C,cAAc,EAWdr3C,QAAS,SAAUy3C,GAEf,GAAkB,OAAdh7C,KAAK4E,OAAiB5E,KAAK46C,aAA/B,CAEwBnxC,SAApBuxC,IAAiCA,GAAkB,GAEvDh7C,KAAK46C,cAAe,EAEhB56C,KAAKo2C,QAELp2C,KAAKo2C,OAAO4uB,mBAAmBhlE,MAG/BA,KAAKoC,SAEDpC,KAAKoC,iBAAkB0xB,GAAO0gB,MAE9Bx0C,KAAKoC,OAAO2pC,OAAO/rC,MAInBA,KAAKoC,OAAOuG,YAAY3I,OAI5BA,KAAK8oC,OAEL9oC,KAAK8oC,MAAMvlC,UAGXvD,KAAKijE,YAELjjE,KAAKijE,WAAW1/D,UAGhBvD,KAAKk2C,MAELl2C,KAAKk2C,KAAK3yC,UAGVvD,KAAKo2C,QAELp2C,KAAKo2C,OAAO7yC,SAGhB,IAAIE,GAAIzD,KAAKwD,SAASE,MAEtB,IAAIs3C,EAEA,KAAOv3C,KAEHzD,KAAKwD,SAASC,GAAGF,QAAQy3C,OAK7B,MAAOv3C,KAEHzD,KAAK2I,YAAY3I,KAAKwD,SAASC,GAInCzD,MAAK0kE,QAEL1kE,KAAK0kE,MAAQ,MAGb1kE,KAAK6kE,SAEL7kE,KAAK6kE,OAAS,MAGd/wC,EAAOmxC,OAASjlE,KAAK0W,cAAeod,GAAOmxC,OAE3CjlE,KAAK0W,IAAIwuD,eAAen5B,OAAO/rC,KAAKmlE,YAAanlE,MAGjD8zB,EAAOsxC,YAAcplE,KAAKqlE,UAE1BrlE,KAAKqlE,YAGTrlE,KAAK+0C,OAAQ,EACb/0C,KAAKiyC,QAAS,EACdjyC,KAAKiC,SAAU,EAEfjC,KAAKiI,QAAU,KACfjI,KAAKmL,KAAO,KACZnL,KAAK4E,KAAO,KAGZ5E,KAAKmC,YAAa,EAGlBnC,KAAK4B,kBAAoB,KACzB5B,KAAK6B,yBAA2B,KAChC7B,KAAKkC,QAAU,KACflC,KAAKoC,OAAS,KACdpC,KAAKqC,MAAQ,KACbrC,KAAKuC,eAAiB,KACtBvC,KAAK8C,WAAa,KAClB9C,KAAK+C,QAAU,KACf/C,KAAKiD,eAAiB,KACtBjD,KAAKkD,MAAQ,KAEblD,KAAK2D,uBAEL3D,KAAK46C,cAAe,EACpB56C,KAAKi1C,gBAAiB,KA4B9BnhB,EAAO8vC,OAAS,SAAUj6C,GAKtB3pB,KAAKoC,OAASunB,GAMlBmK,EAAO8vC,OAAOvgE,WAOVE,QAAS,WAELvD,KAAKslE,QAAU,KAEXtlE,KAAKulE,YAAwBvlE,KAAKulE,WAAWp2B,UAC7CnvC,KAAKwlE,iBAAwBxlE,KAAKwlE,gBAAgBr2B,UAClDnvC,KAAKylE,qBAAwBzlE,KAAKylE,oBAAoBt2B,UACtDnvC,KAAK0lE,qBAAwB1lE,KAAK0lE,oBAAoBv2B,UACtDnvC,KAAK2lE,WAAwB3lE,KAAK2lE,UAAUx2B,UAC5CnvC,KAAK4lE,YAAwB5lE,KAAK4lE,WAAWz2B,UAC7CnvC,KAAK6lE,gBAAwB7lE,KAAK6lE,eAAe12B,UACjDnvC,KAAK8lE,gBAAwB9lE,KAAK8lE,eAAe32B,UAEjDnvC,KAAK+lE,cAAwB/lE,KAAK+lE,aAAa52B,UAC/CnvC,KAAKgmE,aAAwBhmE,KAAKgmE,YAAY72B,UAC9CnvC,KAAKimE,cAAwBjmE,KAAKimE,aAAa92B,UAC/CnvC,KAAKkmE,YAAwBlmE,KAAKkmE,WAAW/2B,UAC7CnvC,KAAKmmE,cAAwBnmE,KAAKmmE,aAAah3B,UAC/CnvC,KAAKomE,eAAwBpmE,KAAKomE,cAAcj3B,UAChDnvC,KAAKqmE,aAAwBrmE,KAAKqmE,YAAYl3B,UAE9CnvC,KAAKsmE,mBAAwBtmE,KAAKsmE,kBAAkBn3B,UACpDnvC,KAAKumE,sBAAwBvmE,KAAKumE,qBAAqBp3B,UACvDnvC,KAAKwmE,kBAAwBxmE,KAAKwmE,iBAAiBr3B,WAS3D+vB,eAAgB,KAKhBE,mBAAoB,KAKpBqH,mBAAoB,KAKpBnxB,UAAW,KAKXoxB,SAAU,KAKVC,UAAW,KAKXC,cAAe,KAKfC,cAAe,KAKfC,YAAa,KAKbC,WAAY,KAKZC,YAAa,KAKbC,UAAW,KAKXC,YAAa,KAKb5F,aAAc,KAKd6F,WAAY,KAKZC,iBAAkB,KAKlBC,oBAAqB,KAKrBC,gBAAiB,MAIrBxzC,EAAO8vC,OAAOvgE,UAAUC,YAAcwwB,EAAO8vC,MAK7C,KAAK,GAAIvqC,KAAQvF,GAAO8vC,OAAOvgE,UAEtBywB,EAAO8vC,OAAOvgE,UAAU23B,eAAe3B,IACjB,IAAvBA,EAAKlwB,QAAQ,OACqB,OAAlC2qB,EAAO8vC,OAAOvgE,UAAUg2B,KAK5B,SAAWA,EAAMkuC,GACb,YAGA3jE,QAAOC,eAAeiwB,EAAO8vC,OAAOvgE,UAAWg2B,GAC3Cv1B,IAAK,WACD,MAAO9D,MAAKunE,KAAavnE,KAAKunE,GAAW,GAAIzzC,GAAO0W,WAK5D1W,EAAO8vC,OAAOvgE,UAAUg2B,EAAO,aAAe,WAC1C,MAAOr5B,MAAKunE,GAAWvnE,KAAKunE,GAAS96B,SAAStlC,MAAMnH,KAAKunE,GAAUhvC,WAAa,OAGrFc,EAAM,IAAMA,EAgBnBvF,GAAO2uC,UAAUwB,cAAgB,aAQjCnwC,EAAO2uC,UAAUwB,cAAclyB,WAAa,WAEpC/xC,KAAKw1C,gBAELx1C,KAAKyB,SAASiE,GAAK1F,KAAK4E,KAAKgkC,OAAO3nC,KAAKyE,EAAI1F,KAAKy1C,aAAa/vC,GAAK1F,KAAK4E,KAAKgkC,OAAOjnC,MAAM+D,EAC3F1F,KAAKyB,SAASkE,GAAK3F,KAAK4E,KAAKgkC,OAAO3nC,KAAK0E,EAAI3F,KAAKy1C,aAAa9vC,GAAK3F,KAAK4E,KAAKgkC,OAAOjnC,MAAMgE,IAKnGmuB,EAAO2uC,UAAUwB,cAAc5gE,WAM3BmkE,gBAAgB,EAmBhBhyB,eAEI1xC,IAAK,WAED,MAAO9D,MAAKwnE,gBAIhBxjE,IAAK,SAAUC,GAEPA,GAEAjE,KAAKwnE,gBAAiB,EACtBxnE,KAAKy1C,aAAazxC,IAAIhE,KAAK0F,EAAG1F,KAAK2F,IAInC3F,KAAKwnE,gBAAiB,IAalC/xB,aAAc,GAAI3hB,GAAOpyB,OAiB7BoyB,EAAO2uC,UAAUgF,OAAS,aAE1B3zC,EAAO2uC,UAAUgF,OAAOpkE,WAUpBqkE,OAAQ,EASRC,UAAW,IAWXC,OAAQ,SAAStvB,GAYb,MAVIt4C,MAAK+0C,QAEL/0C,KAAK0nE,QAAUpvB,EAEXt4C,KAAK0nE,QAAU,GAEf1nE,KAAK6nE,QAIN7nE,MAWX8nE,KAAM,SAASxvB,GAYX,MAVIt4C,MAAK+0C,QAEL/0C,KAAK0nE,QAAUpvB,EAEXt4C,KAAK0nE,OAAS1nE,KAAK2nE,YAEnB3nE,KAAK0nE,OAAS1nE,KAAK2nE,YAIpB3nE,OAiBf8zB,EAAO2uC,UAAUsF,SAAW,aAE5Bj0C,EAAO2uC,UAAUsF,SAAS1kE,WAYtB+/D,UAEIt/D,IAAK,WAED,MAAO9D,MAAK4E,KAAKE,MAAM8jC,OAAO3nC,KAAKs8B,WAAWv9B,KAAK+C,YAmB/D+wB,EAAO2uC,UAAUuF,aAAe,aAEhCl0C,EAAO2uC,UAAUuF,aAAa3kE,WAU1BylC,MAAO,KAcPm/B,cAEInkE,IAAK,WAED,MAAQ9D,MAAK8oC,OAAS9oC,KAAK8oC,MAAM4kB,SAIrC1pD,IAAK,SAAUC,GAEPA,EAEmB,OAAfjE,KAAK8oC,OAEL9oC,KAAK8oC,MAAQ,GAAIhV,GAAOkpC,aAAah9D,MACrCA,KAAK8oC,MAAM19B,SAENpL,KAAK8oC,QAAU9oC,KAAK8oC,MAAM4kB,SAE/B1tD,KAAK8oC,MAAM19B,QAKXpL,KAAK8oC,OAAS9oC,KAAK8oC,MAAM4kB,SAEzB1tD,KAAK8oC,MAAM99B,UAuB/B8oB,EAAO2uC,UAAUyF,QAAU,aAQ3Bp0C,EAAO2uC,UAAUyF,QAAQ5hE,UAAY,WAGjC,IAAItG,KAAKmjE,UAAYnjE,KAAKqjE,oBAEtBrjE,KAAK+C,QAAQy5B,SAASx8B,KAAKgG,aAE3BhG,KAAK+C,QAAQ2C,GAAK1F,KAAK4E,KAAKgkC,OAAO3nC,KAAKyE,EACxC1F,KAAK+C,QAAQ4C,GAAK3F,KAAK4E,KAAKgkC,OAAO3nC,KAAK0E,EAEpC3F,KAAKmjE,WAGDnjE,KAAK4E,KAAKE,MAAM8jC,OAAO3nC,KAAKs8B,WAAWv9B,KAAK+C,UAE5C/C,KAAKmC,YAAa,EAClBnC,KAAK4E,KAAKE,MAAM8jC,OAAOpD,eAIvBxlC,KAAKmC,YAAa,GAItBnC,KAAKqjE,kBAGL,GAAIrjE,KAAKmoE,mBAAqBnoE,KAAK4E,KAAKE,MAAM4B,OAAO62B,WAAWv9B,KAAK+C,SAEjE/C,KAAKmoE,mBAAoB,EACzBnoE,KAAKo2C,OAAOgyB,uBAAuBpoE,UAElC,KAAKA,KAAKmoE,oBAAsBnoE,KAAK4E,KAAKE,MAAM4B,OAAO62B,WAAWv9B,KAAK+C,WAGxE/C,KAAKmoE,mBAAoB,EACzBnoE,KAAKo2C,OAAOiyB,uBAAuBroE,MAE/BA,KAAKsoE,iBAGL,MADAtoE,MAAK6nE,QACE,CAMvB,QAAO,GAIX/zC,EAAO2uC,UAAUyF,QAAQ7kE,WAmBrBggE,kBAAkB,EAQlBiF,iBAAiB,EAMjBH,mBAAmB,EAQnBI,SAEIzkE,IAAK,WAED,MAAO9D,MAAK4E,KAAKE,MAAM4B,OAAO62B,WAAWv9B,KAAKgG,gBAmB1D8tB,EAAO2uC,UAAU+F,SAAW,aAQ5B10C,EAAO2uC,UAAU+F,SAASliE,UAAY,WAElC,MAAItG,MAAKyoE,SAAW,IAEhBzoE,KAAKyoE,UAAYzoE,KAAK4E,KAAKskC,KAAKw/B,iBAE5B1oE,KAAKyoE,UAAY,IAEjBzoE,KAAK6nE,QACE,IAIR,GAIX/zC,EAAO2uC,UAAU+F,SAASnlE,WAatB0xC,OAAO,EAeP0zB,SAAU,EAaVE,OAAQ,SAAUjB,GAkBd,MAhBej+D,UAAXi+D,IAAwBA,EAAS,GAErC1nE,KAAK+0C,OAAQ,EACb/0C,KAAKiyC,QAAS,EACdjyC,KAAKiC,SAAU,EAEY,gBAAhBjC,MAAK0nE,SAEZ1nE,KAAK0nE,OAASA,GAGd1nE,KAAKo2C,QAELp2C,KAAKo2C,OAAOwyB,mBAAmB5oE,MAG5BA,MAiBX6nE,KAAM,WAWF,MATA7nE,MAAK+0C,OAAQ,EACb/0C,KAAKiyC,QAAS,EACdjyC,KAAKiC,SAAU,EAEXjC,KAAKo2C,QAELp2C,KAAKo2C,OAAOyyB,kBAAkB7oE,MAG3BA,OAiBf8zB,EAAO2uC,UAAUsB,YAAc,aAE/BjwC,EAAO2uC,UAAUsB,YAAY1gE,WAMzBkhE,cAAc,EAMdM,OAAQ,KAgBRb,YAAa,SAAUttD,EAAKvK,EAAO28D,GAE/B38D,EAAQA,GAAS,GAEZ28D,GAAmCr/D,SAAlBq/D,IAAgC9oE,KAAKijE,YAEvDjjE,KAAKijE,WAAWj4D,OAGpBhL,KAAK0W,IAAMA,EACX1W,KAAKukE,cAAe,CACpB,IAAI17B,GAAQ7oC,KAAK4E,KAAKikC,MAElB3V,GAAW,EACX20B,GAAY7nD,KAAK8H,QAAQkE,YAAYxF,SAEzC,IAAIstB,EAAOltB,eAAiB8P,YAAeod,GAAOltB,cAE9C5G,KAAK0W,IAAMA,EAAIA,IACf1W,KAAKoM,WAAWsK,OAEf,IAAIod,EAAOi1C,YAAcryD,YAAeod,GAAOi1C,WAEhD/oE,KAAKukE,cAAe,EAEpBvkE,KAAKoM,WAAWsK,EAAI5O,SAEhB+gC,EAAMmgC,aAAatyD,EAAIA,IAAKod,EAAOs3B,MAAMt0B,cAEzC5D,GAAYlzB,KAAKijE,WAAWgG,cAAcpgC,EAAMqgC,aAAaxyD,EAAIA,IAAKod,EAAOs3B,MAAMt0B,YAAa3qB,QAGnG,IAAI2nB,EAAOmxC,OAASvuD,YAAeod,GAAOmxC,MAC/C,CACIjlE,KAAKukE,cAAe,CAGpB,IAAIl4D,GAAQqK,EAAI5O,QAAQuE,KACxBrM,MAAKoM,WAAWsK,EAAI5O,SACpB9H,KAAKkzB,SAASxc,EAAI5O,QAAQqE,MAAMmvB,SAChC5kB,EAAIwuD,eAAetkC,IAAI5gC,KAAKmlE,YAAanlE,MACzCA,KAAK8H,QAAQuE,MAAQA,MAEpB,IAAIqK,YAAe5W,MAAKyL,QAEzBvL,KAAKoM,WAAWsK,OAGpB,CACI,GAAIyyD,GAAMtgC,EAAMzU,SAAS1d,GAAK,EAE9B1W,MAAK0W,IAAMyyD,EAAIzyD,IACf1W,KAAKoM,WAAW,GAAItM,MAAKyL,QAAQ49D,EAAIC,OAErCl2C,GAAYlzB,KAAKijE,WAAWgG,cAAcE,EAAIE,UAAWl9D,GAGzD+mB,IAEAlzB,KAAK6kE,OAAS/wC,EAAO9wB,UAAUs4B,MAAMt7B,KAAK8H,QAAQqE,QAGjD07C,IAED7nD,KAAK8H,QAAQkE,YAAYxF,UAAY,IAa7C0sB,SAAU,SAAU/mB,GAEhBnM,KAAK6kE,OAAS14D,EAEdnM,KAAK8H,QAAQqE,MAAMzG,EAAIyG,EAAMzG,EAC7B1F,KAAK8H,QAAQqE,MAAMxG,EAAIwG,EAAMxG,EAC7B3F,KAAK8H,QAAQqE,MAAMtF,MAAQsF,EAAMtF,MACjC7G,KAAK8H,QAAQqE,MAAMrF,OAASqF,EAAMrF,OAElC9G,KAAK8H,QAAQoF,KAAKxH,EAAIyG,EAAMzG,EAC5B1F,KAAK8H,QAAQoF,KAAKvH,EAAIwG,EAAMxG,EAC5B3F,KAAK8H,QAAQoF,KAAKrG,MAAQsF,EAAMtF,MAChC7G,KAAK8H,QAAQoF,KAAKpG,OAASqF,EAAMrF,OAE7BqF,EAAMm9D,SAEFtpE,KAAK8H,QAAQ8F,MAEb5N,KAAK8H,QAAQ8F,KAAKlI,EAAIyG,EAAMo9D,kBAC5BvpE,KAAK8H,QAAQ8F,KAAKjI,EAAIwG,EAAMq9D,kBAC5BxpE,KAAK8H,QAAQ8F,KAAK/G,MAAQsF,EAAMs9D,YAChCzpE,KAAK8H,QAAQ8F,KAAK9G,OAASqF,EAAMu9D,aAIjC1pE,KAAK8H,QAAQ8F,MAASlI,EAAGyG,EAAMo9D,kBAAmB5jE,EAAGwG,EAAMq9D,kBAAmB3iE,MAAOsF,EAAMs9D,YAAa3iE,OAAQqF,EAAMu9D,aAG1H1pE,KAAK8H,QAAQjB,MAAQsF,EAAMs9D,YAC3BzpE,KAAK8H,QAAQhB,OAASqF,EAAMu9D,YAC5B1pE,KAAK8H,QAAQqE,MAAMtF,MAAQsF,EAAMs9D,YACjCzpE,KAAK8H,QAAQqE,MAAMrF,OAASqF,EAAMu9D,cAE5Bv9D,EAAMm9D,SAAWtpE,KAAK8H,QAAQ8F,OAEpC5N,KAAK8H,QAAQ8F,KAAO,MAGpB5N,KAAKykE,UAELzkE,KAAK2kE,aAGT3kE,KAAK8H,QAAQoG,gBAAiB,EAE9BlO,KAAK8H,QAAQurB,aAETrzB,KAAKmqB,gBAELnqB,KAAK2pE,gBAAiB,IAgB9BxE,YAAa,SAAU/iE,EAAQyE,EAAOC,GAElC9G,KAAK8H,QAAQqE,MAAMpE,OAAOlB,EAAOC,GACjC9G,KAAK8H,QAAQorB,SAASlzB,KAAK8H,QAAQqE,QASvCy4D,WAAY,WAEJ5kE,KAAK6kE,QAEL7kE,KAAKkzB,SAASlzB,KAAK6kE,SAkB3B14D,OAEIrI,IAAK,WACD,MAAO9D,MAAKijE,WAAW92D,OAG3BnI,IAAK,SAAUC,GACXjE,KAAKijE,WAAW92D,MAAQlI,IAkBhC2lE,WAEI9lE,IAAK,WACD,MAAO9D,MAAKijE,WAAW2G,WAG3B5lE,IAAK,SAAUC,GACXjE,KAAKijE,WAAW2G,UAAY3lE,KAkBxC6vB,EAAO2uC,UAAUoH,QAAU,aAE3B/1C,EAAO2uC,UAAUoH,QAAQxmE,WAerBymE,QAAS,SAAUvlD,GAEf,MAAOuP,GAAO9wB,UAAUu6B,WAAWv9B,KAAKgG,YAAaue,EAAcve,eAkB3E8tB,EAAO2uC,UAAUoB,YAAc,aAQ/B/vC,EAAO2uC,UAAUoB,YAAYv9D,UAAY,WAErC,MAAItG,MAAKmkE,OAASnkE,KAAKiyC,QAEnBjyC,KAAK8E,MAAMy3B,MAAMv8B,KAAKoC,OAAOX,SAASiE,EAAI1F,KAAKyB,SAASiE,EAAG1F,KAAKoC,OAAOX,SAASkE,EAAI3F,KAAKyB,SAASkE,GAClG3F,KAAKuC,eAAe4C,GAAKnF,KAAK8E,MAAMY,EACpC1F,KAAKuC,eAAe6C,GAAKpF,KAAK8E,MAAMa,EAEpC3F,KAAK2jE,iBAAiB3/D,IAAIhE,KAAK8E,MAAMY,EAAG1F,KAAK8E,MAAMa,GACnD3F,KAAKkkE,iBAAmBlkE,KAAK+B,SAEzB/B,KAAKk2C,MAELl2C,KAAKk2C,KAAK5vC,YAGdtG,KAAKmkE,OAAQ,GAEN,IAGXnkE,KAAK2jE,iBAAiB3/D,IAAIhE,KAAK8E,MAAMY,EAAG1F,KAAK8E,MAAMa,GACnD3F,KAAKkkE,iBAAmBlkE,KAAK+B,SAExB/B,KAAKokE,SAAYpkE,KAAKoC,OAAO6vC,QAM3B,GAJHjyC,KAAKk5C,cAAgB,IACd,KAafplB,EAAO2uC,UAAUoB,YAAY9xB,WAAa,WAElC/xC,KAAKiyC,QAAUjyC,KAAKk2C,MAEpBl2C,KAAKk2C,KAAKnE,cAKlBje,EAAO2uC,UAAUoB,YAAYxgE,WAqBzB6yC,KAAM,KAONxwC,GAEI5B,IAAK,WAED,MAAO9D,MAAKyB,SAASiE,GAIzB1B,IAAK,SAAUC,GAEXjE,KAAKyB,SAASiE,EAAIzB,EAEdjE,KAAKk2C,OAASl2C,KAAKk2C,KAAKtgC,QAExB5V,KAAKk2C,KAAK6zB,QAAS,KAY/BpkE,GAEI7B,IAAK,WAED,MAAO9D,MAAKyB,SAASkE,GAIzB3B,IAAK,SAAUC,GAEXjE,KAAKyB,SAASkE,EAAI1B,EAEdjE,KAAKk2C,OAASl2C,KAAKk2C,KAAKtgC,QAExB5V,KAAKk2C,KAAK6zB,QAAS,MAoBnCj2C,EAAO2uC,UAAUuH,MAAQ,aAkBzBl2C,EAAO2uC,UAAUuH,MAAM3mE,UAAUoZ,MAAQ,SAAU/W,EAAGC,EAAG+hE,GA+BrD,MA7Bej+D,UAAXi+D,IAAwBA,EAAS,GAErC1nE,KAAK8E,MAAMd,IAAI0B,EAAGC,GAClB3F,KAAKyB,SAASuC,IAAI0B,EAAGC,GAErB3F,KAAKmkE,OAAQ,EACbnkE,KAAKiyC,QAAS,EACdjyC,KAAKiC,SAAU,EACfjC,KAAKmC,YAAa,EAEdnC,KAAK0jE,WAAWwE,UAEhBloE,KAAKmoE,mBAAoB,GAGzBnoE,KAAK0jE,WAAW8E,WAEhBxoE,KAAK+0C,OAAQ,EACb/0C,KAAK0nE,OAASA,GAGd1nE,KAAK0jE,WAAWG,aAEZ7jE,KAAKk2C,MAELl2C,KAAKk2C,KAAKz5B,MAAM/W,EAAGC,GAAG,GAAO,GAI9B3F,MAeX8zB,EAAO2uC,UAAUwH,YAAc,aAE/Bn2C,EAAO2uC,UAAUwH,YAAY5mE,WAMzBzB,kBAAmB5B,KAAKkqE,eAMxBroE,yBAA0B7B,KAU1BmqE,SAAU,KAUVC,SAAU,KASVF,eAAgB,SAAU5kE,GAElBtF,KAAKmqE,WAED7kE,EAAGP,EAAI/E,KAAKmqE,SAASzkE,IAErBJ,EAAGP,EAAI/E,KAAKmqE,SAASzkE,GAGrBJ,EAAGJ,EAAIlF,KAAKmqE,SAASxkE,IAErBL,EAAGJ,EAAIlF,KAAKmqE,SAASxkE,IAIzB3F,KAAKoqE,WAED9kE,EAAGP,EAAI/E,KAAKoqE,SAAS1kE,IAErBJ,EAAGP,EAAI/E,KAAKoqE,SAAS1kE,GAGrBJ,EAAGJ,EAAIlF,KAAKoqE,SAASzkE,IAErBL,EAAGJ,EAAIlF,KAAKoqE,SAASzkE,KA+BjC0kE,eAAgB,SAAUhgE,EAAME,EAAMC,EAAMC,GAE3BhB,SAATc,EAGAA,EAAOC,EAAOC,EAAOJ,EAEPZ,SAATe,IAGLA,EAAOC,EAAOF,EACdA,EAAOF,GAGE,OAATA,EAEArK,KAAKmqE,SAAW,KAIZnqE,KAAKmqE,SAELnqE,KAAKmqE,SAASnmE,IAAIqG,EAAME,GAIxBvK,KAAKmqE,SAAW,GAAIr2C,GAAOpyB,MAAM2I,EAAME,GAIlC,OAATC,EAEAxK,KAAKoqE,SAAW,KAIZpqE,KAAKoqE,SAELpqE,KAAKoqE,SAASpmE,IAAIwG,EAAMC,GAIxBzK,KAAKoqE,SAAW,GAAIt2C,GAAOpyB,MAAM8I,EAAMC,KAkBvDqpB,EAAO2uC,UAAU6H,SAAW,aAE5Bx2C,EAAO2uC,UAAU6H,SAASjnE,WAWtBwkD,UAEI/jD,IAAK,WAED,OAAQ9D,KAAK8H,QAAQkE,YAAYxF,WAIrCxC,IAAK,SAAUC,GAEPA,EAEIjE,KAAK8H,UAEL9H,KAAK8H,QAAQkE,YAAYxF,UAAY,GAKrCxG,KAAK8H,UAEL9H,KAAK8H,QAAQkE,YAAYxF,UAAY,MAyBzDstB,EAAOo3B,kBAAoB,SAAUtmD,GAMjC5E,KAAK4E,KAAOA,EAMZ5E,KAAK8E,MAAQ9E,KAAK4E,KAAKE,OAI3BgvB,EAAOo3B,kBAAkB7nD,WASrBknE,SAAU,SAAUC,GAEhB,MAAOxqE,MAAK8E,MAAM87B,IAAI4pC,IAoB1B/3C,MAAO,SAAU/sB,EAAGC,EAAG+Q,EAAKvK,EAAO2uC,GAI/B,MAFcrxC,UAAVqxC,IAAuBA,EAAQ96C,KAAK8E,OAEjCg2C,EAAMla,IAAI,GAAI9M,GAAOljB,MAAM5Q,KAAK4E,KAAMc,EAAGC,EAAG+Q,EAAKvK,KAmB5Dwd,OAAQ,SAAUjkB,EAAGC,EAAG+Q,EAAKvK,EAAO2uC,GAIhC,MAFcrxC,UAAVqxC,IAAuBA,EAAQ96C,KAAK8E,OAEjCg2C,EAAM1yC,OAAO1C,EAAGC,EAAG+Q,EAAKvK,IAanCs+D,MAAO,SAAUD,GAEb,MAAOxqE,MAAK4E,KAAKukC,OAAO/gC,OAAOoiE,IAenC1vB,MAAO,SAAU14C,EAAQ+4B,EAAMsZ,EAAYC,EAAYC,GAEnD,MAAO,IAAI7gB,GAAO0gB,MAAMx0C,KAAK4E,KAAMxC,EAAQ+4B,EAAMsZ,EAAYC,EAAYC,IAiB7E+1B,aAAc,SAAU/1B,EAAiBvyC,EAAQ+4B,EAAMsZ,GAEnD,MAAO,IAAI3gB,GAAO0gB,MAAMx0C,KAAK4E,KAAMxC,EAAQ+4B,EAAMsZ,GAAY,EAAME,IAevE/pC,YAAa,SAAUxI,EAAQ+4B,EAAMsZ,GAMjC,MAJehrC,UAAXrH,IAAwBA,EAAS,MACxBqH,SAAT0xB,IAAsBA,EAAO,SACd1xB,SAAfgrC,IAA4BA,GAAa,GAEtC,GAAI3gB,GAAO/kB,YAAY/O,KAAK4E,KAAMxC,EAAQ+4B,EAAMsZ,IAc3Dk2B,MAAO,SAAUj0D,EAAKquB,EAAQg+B,EAAM6H,GAEhC,MAAO5qE,MAAK4E,KAAKqkC,MAAMrI,IAAIlqB,EAAKquB,EAAQg+B,EAAM6H,IAclD3hC,MAAO,SAAUvyB,EAAKquB,EAAQg+B,EAAM6H,GAEhC,MAAO5qE,MAAK4E,KAAKqkC,MAAMrI,IAAIlqB,EAAKquB,EAAQg+B,EAAM6H,IAWlDC,YAAa,SAAUn0D,GAEnB,MAAO1W,MAAK4E,KAAKqkC,MAAM6hC,UAAUp0D,IAiBrCq0D,WAAY,SAAUrlE,EAAGC,EAAGkB,EAAOC,EAAQ4P,EAAKvK,EAAO2uC,GAInD,MAFcrxC,UAAVqxC,IAAuBA,EAAQ96C,KAAK8E,OAEjCg2C,EAAMla,IAAI,GAAI9M,GAAOq+B,WAAWnyD,KAAK4E,KAAMc,EAAGC,EAAGkB,EAAOC,EAAQ4P,EAAKvK,KAkBhF6+D,KAAM,SAAUtlE,EAAGC,EAAG+Q,EAAKvK,EAAO0Q,EAAQi+B,GAItC,MAFcrxC,UAAVqxC,IAAuBA,EAAQ96C,KAAK8E,OAEjCg2C,EAAMla,IAAI,GAAI9M,GAAOm3C,KAAKjrE,KAAK4E,KAAMc,EAAGC,EAAG+Q,EAAKvK,EAAO0Q,KAelE+gC,KAAM,SAAUl4C,EAAGC,EAAGi4C,EAAMn5B,EAAOq2B,GAI/B,MAFcrxC,UAAVqxC,IAAuBA,EAAQ96C,KAAK8E,OAEjCg2C,EAAMla,IAAI,GAAI9M,GAAOo3C,KAAKlrE,KAAK4E,KAAMc,EAAGC,EAAGi4C,EAAMn5B,KAoB5DkuC,OAAQ,SAAUjtD,EAAGC,EAAG+Q,EAAKiiC,EAAU3M,EAAiBm/B,EAAWC,EAAUC,EAAWC,EAASxwB,GAI7F,MAFcrxC,UAAVqxC,IAAuBA,EAAQ96C,KAAK8E,OAEjCg2C,EAAMla,IAAI,GAAI9M,GAAOy3C,OAAOvrE,KAAK4E,KAAMc,EAAGC,EAAG+Q,EAAKiiC,EAAU3M,EAAiBm/B,EAAWC,EAAUC,EAAWC,KAaxH5wD,SAAU,SAAUhV,EAAGC,EAAGm1C,GAItB,MAFcrxC,UAAVqxC,IAAuBA,EAAQ96C,KAAK8E,OAEjCg2C,EAAMla,IAAI,GAAI9M,GAAOnX,SAAS3c,KAAK4E,KAAMc,EAAGC,KAiBvD6lE,QAAS,SAAU9lE,EAAGC,EAAG8lE,GAErB,MAAOzrE,MAAK4E,KAAKwkC,UAAUxI,IAAI,GAAI9M,GAAO43B,UAAUggB,OAAOC,QAAQ3rE,KAAK4E,KAAMc,EAAGC,EAAG8lE,KA0BxFG,UAAW,SAAUC,EAAMC,EAAgBC,EAAiBC,EAAOC,EAAaC,EAAUC,EAAUC,EAASC,GAEzG,MAAO,IAAIv4C,GAAOw4C,UAAUtsE,KAAK4E,KAAMinE,EAAMC,EAAgBC,EAAiBC,EAAOC,EAAaC,EAAUC,EAAUC,EAASC;EAgCnIE,WAAY,SAAU7mE,EAAGC,EAAGkmE,EAAMjuB,EAAMj1B,EAAMmyB,GAI1C,MAFcrxC,UAAVqxC,IAAuBA,EAAQ96C,KAAK8E,OAEjCg2C,EAAMla,IAAI,GAAI9M,GAAOsxC,WAAWplE,KAAK4E,KAAMc,EAAGC,EAAGkmE,EAAMjuB,EAAMj1B,KAqBxE6jD,QAAS,SAAU91D,EAAK+1D,EAAWC,EAAY7lE,EAAOC,GAElD,MAAO,IAAIgtB,GAAO64C,QAAQ3sE,KAAK4E,KAAM8R,EAAK+1D,EAAWC,EAAY7lE,EAAOC,IAc5EH,cAAe,SAAUE,EAAOC,EAAQ4P,EAAKk2D,IAE7BnjE,SAARiN,GAA6B,KAARA,KAAcA,EAAM1W,KAAK4E,KAAK0kC,IAAIwU,QACxCr0C,SAAfmjE,IAA4BA,GAAa,EAE7C,IAAI9kE,GAAU,GAAIgsB,GAAOltB,cAAc5G,KAAK4E,KAAMiC,EAAOC,EAAQ4P,EAOjE,OALIk2D,IAEA5sE,KAAK4E,KAAKikC,MAAMgkC,iBAAiBn2D,EAAK5O,GAGnCA,GAcXglE,MAAO,SAAUp2D,EAAKq2D,GAElB,MAAO,IAAIj5C,GAAOmxC,MAAMjlE,KAAK4E,KAAM8R,EAAKq2D,IAgB5CjmC,WAAY,SAAUjgC,EAAOC,EAAQ4P,EAAKk2D,GAEnBnjE,SAAfmjE,IAA4BA,GAAa,IACjCnjE,SAARiN,GAA6B,KAARA,KAAcA,EAAM1W,KAAK4E,KAAK0kC,IAAIwU,OAE3D,IAAIh2C,GAAU,GAAIgsB,GAAOi1C,WAAW/oE,KAAK4E,KAAM8R,EAAK7P,EAAOC,EAO3D,OALI8lE,IAEA5sE,KAAK4E,KAAKikC,MAAMmkC,cAAct2D,EAAK5O,GAGhCA,GAYXokB,OAAQ,SAAUA,GAEd,GAAImM,GAAO53B,MAAM4C,UAAUuF,OAAO9C,KAAKyyB,UAAW,GAE9CrM,EAAS,GAAI4H,GAAOic,OAAO7jB,GAAQlsB,KAAK4E,KAI5C,OAFAsnB,GAAOpW,KAAK3O,MAAM+kB,EAAQmM,GAEnBnM,GAcX4lB,OAAQ,SAAUA,GAEd,MAAO9xC,MAAK4E,KAAK+sC,QAAQ/Q,IAAIkR,KAMrChe,EAAOo3B,kBAAkB7nD,UAAUC,YAAcwwB,EAAOo3B,kBAgBxDp3B,EAAOq3B,kBAAoB,SAAUvmD,GAMjC5E,KAAK4E,KAAOA,EAMZ5E,KAAK8E,MAAQ9E,KAAK4E,KAAKE,OAI3BgvB,EAAOq3B,kBAAkB9nD,WAerBovB,MAAO,SAAU/sB,EAAGC,EAAG+Q,EAAKvK,GAExB,MAAO,IAAI2nB,GAAOljB,MAAM5Q,KAAK4E,KAAMc,EAAGC,EAAG+Q,EAAKvK,IAclDwd,OAAQ,SAAUjkB,EAAGC,EAAG+Q,EAAKvK,GAEzB,MAAO,IAAI2nB,GAAOnsB,OAAO3H,KAAK4E,KAAMc,EAAGC,EAAG+Q,EAAKvK,IAanDs+D,MAAO,SAAUrxC,GAEb,MAAO,IAAItF,GAAOm5C,MAAM7zC,EAAKp5B,KAAK4E,KAAM5E,KAAK4E,KAAKukC,SAetD2R,MAAO,SAAU14C,EAAQ+4B,EAAMsZ,EAAYC,EAAYC,GAEnD,MAAO,IAAI7gB,GAAO0gB,MAAMx0C,KAAK4E,KAAMxC,EAAQ+4B,EAAMsZ,EAAYC,EAAYC,IAa7E/pC,YAAa,SAAUxI,EAAQ+4B,EAAMsZ,GAKjC,MAHahrC,UAAT0xB,IAAsBA,EAAO,SACd1xB,SAAfgrC,IAA4BA,GAAa,GAEtC,GAAI3gB,GAAO/kB,YAAY/O,KAAK4E,KAAMxC,EAAQ+4B,EAAMsZ,IAc3Dk2B,MAAO,SAAUj0D,EAAKquB,EAAQg+B,EAAM6H,GAEhC,MAAO5qE,MAAK4E,KAAKqkC,MAAMrI,IAAIlqB,EAAKquB,EAAQg+B,EAAM6H,IAWlDC,YAAa,SAAUn0D,GAEnB,MAAO1W,MAAK4E,KAAKqkC,MAAM6hC,UAAUp0D,IAcrCuyB,MAAO,SAAUvyB,EAAKquB,EAAQg+B,EAAM6H,GAEhC,MAAO5qE,MAAK4E,KAAKqkC,MAAMrI,IAAIlqB,EAAKquB,EAAQg+B,EAAM6H,IAgBlDG,WAAY,SAAUrlE,EAAGC,EAAGkB,EAAOC,EAAQ4P,EAAKvK,GAE5C,MAAO,IAAI2nB,GAAOq+B,WAAWnyD,KAAK4E,KAAMc,EAAGC,EAAGkB,EAAOC,EAAQ4P,EAAKvK,IAgBtE6+D,KAAM,SAAUtlE,EAAGC,EAAG+Q,EAAKvK,EAAO0Q,GAE9B,MAAO,IAAIiX,GAAOm3C,KAAKjrE,KAAK4E,KAAMc,EAAGC,EAAG+Q,EAAKvK,EAAO0Q,IAcxD+gC,KAAM,SAAUl4C,EAAGC,EAAGi4C,EAAMn5B,GAExB,MAAO,IAAIqP,GAAOo3C,KAAKlrE,KAAK4E,KAAMc,EAAGC,EAAGi4C,EAAMn5B,IAmBlDkuC,OAAQ,SAAUjtD,EAAGC,EAAG+Q,EAAKiiC,EAAU3M,EAAiBm/B,EAAWC,EAAUC,EAAWC,GAEpF,MAAO,IAAIx3C,GAAOy3C,OAAOvrE,KAAK4E,KAAMc,EAAGC,EAAG+Q,EAAKiiC,EAAU3M,EAAiBm/B,EAAWC,EAAUC,EAAWC,IAY9G5wD,SAAU,SAAUhV,EAAGC,GAEnB,MAAO,IAAImuB,GAAOnX,SAAS3c,KAAK4E,KAAMc,EAAGC,IAiB7C6lE,QAAS,SAAU9lE,EAAGC,EAAG8lE,GAErB,MAAO,IAAI33C,GAAO43B,UAAUggB,OAAOC,QAAQ3rE,KAAK4E,KAAMc,EAAGC,EAAG8lE,IA0BhEG,UAAW,SAAUC,EAAMC,EAAgBC,EAAiBC,EAAOC,EAAaC,EAAUC,EAAUC,EAASC,GAEzG,MAAO,IAAIv4C,GAAOw4C,UAAUtsE,KAAK4E,KAAMinE,EAAMC,EAAgBC,EAAiBC,EAAOC,EAAaC,EAAUC,EAAUC,EAASC,IAgCnIE,WAAY,SAAU7mE,EAAGC,EAAGkmE,EAAMjuB,EAAMj1B,EAAMukD,GAE1C,MAAO,IAAIp5C,GAAOsxC,WAAWplE,KAAK4E,KAAMc,EAAGC,EAAGkmE,EAAMjuB,EAAMj1B,EAAMukD,IAoBpEV,QAAS,SAAU91D,EAAK+1D,EAAWC,EAAY7lE,EAAOC,GAElD,MAAO,IAAIgtB,GAAO64C,QAAQ3sE,KAAK4E,KAAM8R,EAAK+1D,EAAWC,EAAY7lE,EAAOC,IAc5EH,cAAe,SAAUE,EAAOC,EAAQ4P,EAAKk2D,IAE7BnjE,SAARiN,GAA6B,KAARA,KAAcA,EAAM1W,KAAK4E,KAAK0kC,IAAIwU,QACxCr0C,SAAfmjE,IAA4BA,GAAa,EAE7C,IAAI9kE,GAAU,GAAIgsB,GAAOltB,cAAc5G,KAAK4E,KAAMiC,EAAOC,EAAQ4P,EAOjE,OALIk2D,IAEA5sE,KAAK4E,KAAKikC,MAAMgkC,iBAAiBn2D,EAAK5O,GAGnCA,GAgBXg/B,WAAY,SAAUjgC,EAAOC,EAAQ4P,EAAKk2D,GAEnBnjE,SAAfmjE,IAA4BA,GAAa,IACjCnjE,SAARiN,GAA6B,KAARA,KAAcA,EAAM1W,KAAK4E,KAAK0kC,IAAIwU,OAE3D,IAAIh2C,GAAU,GAAIgsB,GAAOi1C,WAAW/oE,KAAK4E,KAAM8R,EAAK7P,EAAOC,EAO3D,OALI8lE,IAEA5sE,KAAK4E,KAAKikC,MAAMmkC,cAAct2D,EAAK5O,GAGhCA,GAYXokB,OAAQ,SAAUA,GAEd,GAAImM,GAAO53B,MAAM4C,UAAUuF,OAAO9C,KAAKyyB,UAAW,GAE9CrM,EAAS,GAAI4H,GAAOic,OAAO7jB,GAAQlsB,KAAK4E,KAI5C,OAFAsnB,GAAOpW,KAAK3O,MAAM+kB,EAAQmM,GAEnBnM,IAMf4H,EAAOq3B,kBAAkB9nD,UAAUC,YAAcwwB,EAAOq3B,kBA6CxDr3B,EAAOnsB,OAAS,SAAU/C,EAAMc,EAAGC,EAAG+Q,EAAKvK,GAEvCzG,EAAIA,GAAK,EACTC,EAAIA,GAAK,EACT+Q,EAAMA,GAAO,KACbvK,EAAQA,GAAS,KAMjBnM,KAAK+W,KAAO+c,EAAOmC,OAMnBj2B,KAAK80C,YAAchhB,EAAOmC,OAE1Bn2B,KAAK6H,OAAO7B,KAAK9F,KAAMF,KAAK6O,aAAwB,WAEpDmlB,EAAO2uC,UAAUe,KAAK1tD,KAAKhQ,KAAK9F,KAAM4E,EAAMc,EAAGC,EAAG+Q,EAAKvK,IAI3D2nB,EAAOnsB,OAAOtE,UAAYO,OAAOwE,OAAOtI,KAAK6H,OAAOtE,WACpDywB,EAAOnsB,OAAOtE,UAAUC,YAAcwwB,EAAOnsB,OAE7CmsB,EAAO2uC,UAAUe,KAAKC,QAAQ39D,KAAKguB,EAAOnsB,OAAOtE,WAC7C,QACA,YACA,WACA,SACA,aACA,OACA,QACA,UACA,gBACA,SACA,WACA,eACA,UACA,WACA,cACA,UACA,cACA,QACA,cACA,aAGJywB,EAAOnsB,OAAOtE,UAAU8pE,iBAAmBr5C,EAAO2uC,UAAUoB,YAAYv9D,UACxEwtB,EAAOnsB,OAAOtE,UAAU+pE,kBAAoBt5C,EAAO2uC,UAAU+F,SAASliE,UACtEwtB,EAAOnsB,OAAOtE,UAAUgqE,iBAAmBv5C,EAAO2uC,UAAUyF,QAAQ5hE,UACpEwtB,EAAOnsB,OAAOtE,UAAUiqE,cAAgBx5C,EAAO2uC,UAAUe,KAAKl9D,UAS9DwtB,EAAOnsB,OAAOtE,UAAUiD,UAAY,WAEhC,MAAKtG,MAAKmtE,oBAAuBntE,KAAKotE,qBAAwBptE,KAAKqtE,mBAK5DrtE,KAAKstE,iBAHD,GAyCfx5C,EAAOljB,MAAQ,SAAUhM,EAAMc,EAAGC,EAAG+Q,EAAKvK,GAEtCzG,EAAIA,GAAK,EACTC,EAAIA,GAAK,EACT+Q,EAAMA,GAAO,KACbvK,EAAQA,GAAS,KAMjBnM,KAAK+W,KAAO+c,EAAOqC,MAEnBr2B,KAAK6H,OAAO7B,KAAK9F,KAAMF,KAAK6O,aAAwB,WAEpDmlB,EAAO2uC,UAAUe,KAAK1tD,KAAKhQ,KAAK9F,KAAM4E,EAAMc,EAAGC,EAAG+Q,EAAKvK,IAI3D2nB,EAAOljB,MAAMvN,UAAYO,OAAOwE,OAAOtI,KAAK6H,OAAOtE,WACnDywB,EAAOljB,MAAMvN,UAAUC,YAAcwwB,EAAOljB,MAE5CkjB,EAAO2uC,UAAUe,KAAKC,QAAQ39D,KAAKguB,EAAOljB,MAAMvN,WAC5C,QACA,YACA,WACA,SACA,aACA,OACA,UACA,gBACA,eACA,WACA,cACA,UACA,QACA,aAGJywB,EAAOljB,MAAMvN,UAAUgqE,iBAAmBv5C,EAAO2uC,UAAUyF,QAAQ5hE,UACnEwtB,EAAOljB,MAAMvN,UAAUiqE,cAAgBx5C,EAAO2uC,UAAUe,KAAKl9D,UAQ7DwtB,EAAOljB,MAAMvN,UAAUiD,UAAY,WAE/B,MAAKtG,MAAKqtE,mBAKHrtE,KAAKstE,iBAHD,GAiEfx5C,EAAOq+B,WAAa,SAAUvtD,EAAMc,EAAGC,EAAGkB,EAAOC,EAAQ4P,EAAKvK,GAE1DzG,EAAIA,GAAK,EACTC,EAAIA,GAAK,EACTkB,EAAQA,GAAS,IACjBC,EAASA,GAAU,IACnB4P,EAAMA,GAAO,KACbvK,EAAQA,GAAS,KAMjBnM,KAAK+W,KAAO+c,EAAOwC,WAMnBt2B,KAAK80C,YAAchhB,EAAOmC,OAM1Bj2B,KAAKutE,QAAU,GAAIz5C,GAAOpyB,KAE1B,IAAI8rE,GAAM5oE,EAAKikC,MAAMzU,SAAS,aAAa,EAE3Ct0B,MAAK2tE,aAAa3nE,KAAK9F,KAAM,GAAIF,MAAKyL,QAAQiiE,EAAIpE,MAAOviE,EAAOC,GAEhEgtB,EAAO2uC,UAAUe,KAAK1tD,KAAKhQ,KAAK9F,KAAM4E,EAAMc,EAAGC,EAAG+Q,EAAKvK,IAI3D2nB,EAAOq+B,WAAW9uD,UAAYO,OAAOwE,OAAOtI,KAAK2tE,aAAapqE,WAC9DywB,EAAOq+B,WAAW9uD,UAAUC,YAAcwwB,EAAOq+B,WAEjDr+B,EAAO2uC,UAAUe,KAAKC,QAAQ39D,KAAKguB,EAAOq+B,WAAW9uD,WACjD,QACA,YACA,WACA,SACA,aACA,UACA,gBACA,SACA,WACA,eACA,UACA,WACA,cACA,UACA,cACA,QACA,aAGJywB,EAAOq+B,WAAW9uD,UAAU8pE,iBAAmBr5C,EAAO2uC,UAAUoB,YAAYv9D,UAC5EwtB,EAAOq+B,WAAW9uD,UAAU+pE,kBAAoBt5C,EAAO2uC,UAAU+F,SAASliE,UAC1EwtB,EAAOq+B,WAAW9uD,UAAUgqE,iBAAmBv5C,EAAO2uC,UAAUyF,QAAQ5hE,UACxEwtB,EAAOq+B,WAAW9uD,UAAUiqE,cAAgBx5C,EAAO2uC,UAAUe,KAAKl9D,UAQlEwtB,EAAOq+B,WAAW9uD,UAAUiD,UAAY,WAYpC,MAVuB,KAAnBtG,KAAKutE,QAAQ7nE,IAEb1F,KAAKsqB,aAAa5kB,GAAK1F,KAAKutE,QAAQ7nE,EAAI1F,KAAK4E,KAAKskC,KAAKwkC,gBAGpC,IAAnB1tE,KAAKutE,QAAQ5nE,IAEb3F,KAAKsqB,aAAa3kB,GAAK3F,KAAKutE,QAAQ5nE,EAAI3F,KAAK4E,KAAKskC,KAAKwkC,gBAGtD1tE,KAAKmtE,oBAAuBntE,KAAKotE,qBAAwBptE,KAAKqtE,mBAK5DrtE,KAAKstE,iBAHD,GAkBfx5C,EAAOq+B,WAAW9uD,UAAUsqE,WAAa,SAASjoE,EAAGC,GAEjD3F,KAAKutE,QAAQvpE,IAAI0B,EAAGC,IAUxBmuB,EAAOq+B,WAAW9uD,UAAUuqE,WAAa,WAErC5tE,KAAKutE,QAAQvpE,IAAI,EAAG,IAYxB8vB,EAAOq+B,WAAW9uD,UAAUE,QAAU,SAASy3C,GAE3ClnB,EAAO2uC,UAAUsC,QAAQ1hE,UAAUE,QAAQuC,KAAK9F,KAAMg7C,GAEtDl7C,KAAK2tE,aAAapqE,UAAUE,QAAQuC,KAAK9F,OAe7C8zB,EAAOq+B,WAAW9uD,UAAUoZ,MAAQ,SAAS/W,EAAGC,GAO5C,MALAmuB,GAAO2uC,UAAUuH,MAAM3mE,UAAUoZ,MAAM3W,KAAK9F,KAAM0F,EAAGC,GAErD3F,KAAKsqB,aAAa5kB,EAAI,EACtB1F,KAAKsqB,aAAa3kB,EAAI,EAEf3F,MA4CX8zB,EAAOm3C,KAAO,SAAUrmE,EAAMc,EAAGC,EAAG+Q,EAAKvK,EAAO0Q,GAE5C7c,KAAK6c,UACL7c,KAAK6c,OAASA,EACd7c,KAAK6tE,qBAAsB,EAC3B7tE,KAAK8tE,yBAA2B,KAChCpoE,EAAIA,GAAK,EACTC,EAAIA,GAAK,EACT+Q,EAAMA,GAAO,KACbvK,EAAQA,GAAS,KAMjBnM,KAAK+W,KAAO+c,EAAOuD,KAMnBr3B,KAAKutE,QAAU,GAAIz5C,GAAOpyB,MAE1B5B,KAAKmrE,KAAKnlE,KAAK9F,KAAMF,KAAK6O,aAAwB,UAAG3O,KAAK6c,QAE1DiX,EAAO2uC,UAAUe,KAAK1tD,KAAKhQ,KAAK9F,KAAM4E,EAAMc,EAAGC,EAAG+Q,EAAKvK,IAI3D2nB,EAAOm3C,KAAK5nE,UAAYO,OAAOwE,OAAOtI,KAAKmrE,KAAK5nE,WAChDywB,EAAOm3C,KAAK5nE,UAAUC,YAAcwwB,EAAOm3C,KAE3Cn3C,EAAO2uC,UAAUe,KAAKC,QAAQ39D,KAAKguB,EAAOm3C,KAAK5nE,WAC3C,QACA,YACA,WACA,SACA,aACA,OACA,QACA,UACA,gBACA,eACA,UACA,WACA,cACA,UACA,cACA,QACA,cACA,aAGJywB,EAAOm3C,KAAK5nE,UAAU8pE,iBAAmBr5C,EAAO2uC,UAAUoB,YAAYv9D,UACtEwtB,EAAOm3C,KAAK5nE,UAAU+pE,kBAAoBt5C,EAAO2uC,UAAU+F,SAASliE,UACpEwtB,EAAOm3C,KAAK5nE,UAAUgqE,iBAAmBv5C,EAAO2uC,UAAUyF,QAAQ5hE,UAClEwtB,EAAOm3C,KAAK5nE,UAAUiqE,cAAgBx5C,EAAO2uC,UAAUe,KAAKl9D,UAQ5DwtB,EAAOm3C,KAAK5nE,UAAUiD,UAAY,WAY9B,MAVuB,KAAnBtG,KAAKutE,QAAQ7nE,IAEb1F,KAAKsqB,aAAa5kB,GAAK1F,KAAKutE,QAAQ7nE,EAAI1F,KAAK4E,KAAKskC,KAAKwkC,gBAGpC,IAAnB1tE,KAAKutE,QAAQ5nE,IAEb3F,KAAKsqB,aAAa3kB,GAAK3F,KAAKutE,QAAQ5nE,EAAI3F,KAAK4E,KAAKskC,KAAKwkC,gBAGtD1tE,KAAKmtE,oBAAuBntE,KAAKotE,qBAAwBptE,KAAKqtE,mBAK5DrtE,KAAKstE,iBAHD,GAafx5C,EAAOm3C,KAAK5nE,UAAUijC,OAAS,WAEvBtmC,KAAK6tE,qBAEL7tE,KAAK+tE,gBAAgBjoE,KAAK9F,OAgBlC8zB,EAAOm3C,KAAK5nE,UAAUoZ,MAAQ,SAAS/W,EAAGC,GAOtC,MALAmuB,GAAO2uC,UAAUuH,MAAM3mE,UAAUoZ,MAAM3W,KAAK9F,KAAM0F,EAAGC,GAErD3F,KAAKsqB,aAAa5kB,EAAI,EACtB1F,KAAKsqB,aAAa3kB,EAAI,EAEf3F,MAUX4D,OAAOC,eAAeiwB,EAAOm3C,KAAK5nE,UAAW,mBAEzCS,IAAK,WAED,MAAO9D,MAAKguE,kBAIhBhqE,IAAK,SAAUC,GAEPA,GAA0B,kBAAVA,IAEhBjE,KAAK6tE,qBAAsB,EAC3B7tE,KAAKguE,iBAAmB/pE,IAIxBjE,KAAK6tE,qBAAsB,EAC3B7tE,KAAKguE,iBAAmB,SAapCpqE,OAAOC,eAAeiwB,EAAOm3C,KAAK5nE,UAAW,YAEzCS,IAAK,WAKD,IAAK,GAFD4E,GAAOgE,EAAIC,EAAIC,EAAIC,EAAIhG,EAAOC,EAAQ0qB,EADtCy8C,KAGKxqE,EAAI,EAAGA,EAAIzD,KAAK6c,OAAOnZ,OAAQD,IAEpCiF,EAAY,EAAJjF,EAERiJ,EAAK1M,KAAK8oB,SAASpgB,GAAS1I,KAAK2B,MAAM+D,EACvCiH,EAAK3M,KAAK8oB,SAASpgB,EAAQ,GAAK1I,KAAK2B,MAAMgE,EAC3CiH,EAAK5M,KAAK8oB,SAASpgB,EAAQ,GAAK1I,KAAK2B,MAAM+D,EAC3CmH,EAAK7M,KAAK8oB,SAASpgB,EAAQ,GAAK1I,KAAK2B,MAAMgE,EAE3CkB,EAAQitB,EAAOnzB,KAAKutE,WAAWxhE,EAAIE,GACnC9F,EAASgtB,EAAOnzB,KAAKutE,WAAWvhE,EAAIE,GAEpCH,GAAM1M,KAAK8E,MAAMY,EACjBiH,GAAM3M,KAAK8E,MAAMa,EACjB6rB,EAAO,GAAIsC,GAAO9wB,UAAU0J,EAAIC,EAAI9F,EAAOC,GAC3CmnE,EAAS1pE,KAAKitB,EAGlB,OAAOy8C,MAuCfn6C,EAAOy3C,OAAS,SAAU3mE,EAAMc,EAAGC,EAAG+Q,EAAKiiC,EAAU3M,EAAiBm/B,EAAWC,EAAUC,EAAWC,GAElG5lE,EAAIA,GAAK,EACTC,EAAIA,GAAK,EACT+Q,EAAMA,GAAO,KACbiiC,EAAWA,GAAY,KACvB3M,EAAkBA,GAAmBhsC,KAErC8zB,EAAOljB,MAAM9K,KAAK9F,KAAM4E,EAAMc,EAAGC,EAAG+Q,EAAK00D,GAOzCprE,KAAK+W,KAAO+c,EAAOoC,OAMnBl2B,KAAK80C,YAAchhB,EAAOmC,OAO1Bj2B,KAAKmuE,aAAe,KAOpBnuE,KAAKouE,YAAc,KAOnBpuE,KAAKquE,aAAe,KAOpBruE,KAAKsuE,WAAa,KAOlBtuE,KAAKuuE,YAAc,KAOnBvuE,KAAKwuE,WAAa,KAOlBxuE,KAAKyuE,YAAc,KAOnBzuE,KAAK0uE,UAAY,KAOjB1uE,KAAK2uE,kBAAoB,GAOzB3uE,KAAK4uE,iBAAmB,GAOxB5uE,KAAK6uE,kBAAoB,GAOzB7uE,KAAK8uE,gBAAkB,GAMvB9uE,KAAK8mE,YAAc,GAAIhzC,GAAO0W,OAM9BxqC,KAAK+mE,WAAa,GAAIjzC,GAAO0W,OAM7BxqC,KAAKgnE,YAAc,GAAIlzC,GAAO0W,OAM9BxqC,KAAKinE,UAAY,GAAInzC,GAAO0W,OAQ5BxqC,KAAK+uE,iBAAkB,EAOvB/uE,KAAKgvE,cAAe,EAOpBhvE,KAAKivE,UAAW,EAEhBjvE,KAAKioE,cAAe,EAEpBjoE,KAAK8oC,MAAM19B,MAAM,GAAG,GAEpBpL,KAAK8oC,MAAMm0B,eAAgB,EAE3Bj9D,KAAKkvE,UAAU/D,EAAWC,EAAUC,EAAWC,GAE9B,OAAb3yB,GAEA34C,KAAKinE,UAAUrmC,IAAI+X,EAAU3M,GAIjChsC,KAAKo2C,OAAO0wB,YAAYlmC,IAAI5gC,KAAKmvE,mBAAoBnvE,MACrDA,KAAKo2C,OAAO2wB,WAAWnmC,IAAI5gC,KAAKovE,kBAAmBpvE,MACnDA,KAAKo2C,OAAO4wB,YAAYpmC,IAAI5gC,KAAKqvE,mBAAoBrvE,MACrDA,KAAKo2C,OAAO6wB,UAAUrmC,IAAI5gC,KAAKsvE,iBAAkBtvE,MAEjDA,KAAKo2C,OAAOqwB,mBAAmB7lC,IAAI5gC,KAAKuvE,iBAAkBvvE,OAI9D8zB,EAAOy3C,OAAOloE,UAAYO,OAAOwE,OAAO0rB,EAAOljB,MAAMvN,WACrDywB,EAAOy3C,OAAOloE,UAAUC,YAAcwwB,EAAOy3C,MAG7C,IAAIiE,GAAa,OACbC,EAAY,MACZC,EAAa,OACbC,EAAW,IAOf77C,GAAOy3C,OAAOloE,UAAUusE,YAAc,WAElC5vE,KAAKkvE,UAAU,KAAM,KAAM,KAAM,OAUrCp7C,EAAOy3C,OAAOloE,UAAUksE,iBAAmB,WAEvCvvE,KAAKioE,cAAe,GAaxBn0C,EAAOy3C,OAAOloE,UAAUwsE,cAAgB,SAAUlkC,EAAOx/B,EAAO2jE,GAE5D,GAAIC,GAAW,MAAQpkC,EAAQ,OAEjB,QAAVx/B,GAEAnM,KAAK+vE,GAAY5jE,EAEb2jE,GAEA9vE,KAAKgwE,iBAAiBrkC,IAK1B3rC,KAAK+vE,GAAY,MAazBj8C,EAAOy3C,OAAOloE,UAAU2sE,iBAAmB,SAAUrkC,GAEjD,GAAI3rC,KAAKgvE,aAEL,OAAO,CAGX,IAAIe,GAAW,MAAQpkC,EAAQ,QAC3Bx/B,EAAQnM,KAAK+vE,EAEjB,OAAqB,gBAAV5jE,IAEPnM,KAAK4pE,UAAYz9D,GACV,GAEe,gBAAVA,IAEZnM,KAAKmM,MAAQA,GACN,IAIA,GAiBf2nB,EAAOy3C,OAAOloE,UAAU6rE,UAAY,SAAU/D,EAAWC,EAAUC,EAAWC,GAE1EtrE,KAAK6vE,cAAcL,EAAYrE,EAAWnrE,KAAK8oC,MAAMm3B,eACrDjgE,KAAK6vE,cAAcJ,EAAWrE,GAAWprE,KAAK8oC,MAAMm3B,eACpDjgE,KAAK6vE,cAAcH,EAAYrE,EAAWrrE,KAAK8oC,MAAM+2B,eACrD7/D,KAAK6vE,cAAcF,EAAUrE,EAAStrE,KAAK8oC,MAAMg3B,cAarDhsC,EAAOy3C,OAAOloE,UAAU4sE,cAAgB,SAAUtkC,EAAO1C,EAAOinC,GAE5D,GAAIC,GAAW,KAAOxkC,EAAQ,QAC1BykC,EAAY,KAAOzkC,EAAQ,aAE3B1C,aAAiBnV,GAAOu8C,OAASpnC,YAAiBnV,GAAOw8C,aAEzDtwE,KAAKmwE,GAAYlnC,EACjBjpC,KAAKowE,GAA+B,gBAAXF,GAAsBA,EAAS,KAIxDlwE,KAAKmwE,GAAY,KACjBnwE,KAAKowE,GAAa,KAa1Bt8C,EAAOy3C,OAAOloE,UAAUktE,eAAiB,SAAU5kC,GAE/C,GAAIwkC,GAAW,KAAOxkC,EAAQ,QAC1B1C,EAAQjpC,KAAKmwE,EAEjB,IAAIlnC,EACJ,CACI,GAAImnC,GAAY,KAAOzkC,EAAQ,cAC3BukC,EAASlwE,KAAKowE,EAGlB,OADAnnC,GAAM45B,KAAKqN,IACJ,EAIP,OAAO,GAsBfp8C,EAAOy3C,OAAOloE,UAAUmtE,UAAY,SAAUC,EAAWC,EAAYC,EAAWC,EAAYC,EAAUC,EAAWC,EAASC,GAEtHhxE,KAAKiwE,cAAcT,EAAYiB,EAAWC,GAC1C1wE,KAAKiwE,cAAcR,EAAWoB,EAAUC,GACxC9wE,KAAKiwE,cAAcP,EAAYiB,EAAWC,GAC1C5wE,KAAKiwE,cAAcN,EAAUoB,EAASC,IAY1Cl9C,EAAOy3C,OAAOloE,UAAU4tE,aAAe,SAAUhoC,EAAOinC,GAEpDlwE,KAAKiwE,cAAcT,EAAYvmC,EAAOinC,IAY1Cp8C,EAAOy3C,OAAOloE,UAAU6tE,YAAc,SAAUjoC,EAAOinC,GAEnDlwE,KAAKiwE,cAAcR,EAAWxmC,EAAOinC,IAYzCp8C,EAAOy3C,OAAOloE,UAAU8tE,aAAe,SAAUloC,EAAOinC,GAEpDlwE,KAAKiwE,cAAcP,EAAYzmC,EAAOinC,IAY1Cp8C,EAAOy3C,OAAOloE,UAAU+tE,WAAa,SAAUnoC,EAAOinC,GAElDlwE,KAAKiwE,cAAcN,EAAU1mC,EAAOinC,IAYxCp8C,EAAOy3C,OAAOloE,UAAU8rE,mBAAqB,SAAUxlD,EAAQqnB,GAGvDA,EAAQwmB,iBAKZx3D,KAAKgwE,iBAAiBR,KAElBxvE,KAAK+uE,iBAAoB/9B,EAAQ8nB,WAKrC94D,KAAKuwE,eAAef,GAEhBxvE,KAAK8mE,aAEL9mE,KAAK8mE,YAAYr6B,SAASzsC,KAAMgxC,MAaxCld,EAAOy3C,OAAOloE,UAAU+rE,kBAAoB,SAAUzlD,EAAQqnB,GAE1DhxC,KAAKgwE,iBAAiBP,GAEtBzvE,KAAKuwE,eAAed,GAEhBzvE,KAAK+mE,YAEL/mE,KAAK+mE,WAAWt6B,SAASzsC,KAAMgxC,IAYvCld,EAAOy3C,OAAOloE,UAAUgsE,mBAAqB,SAAU1lD,EAAQqnB,GAE3DhxC,KAAKgwE,iBAAiBN,GAEtB1vE,KAAKuwE,eAAeb,GAEhB1vE,KAAKgnE,aAELhnE,KAAKgnE,YAAYv6B,SAASzsC,KAAMgxC,IAYxCld,EAAOy3C,OAAOloE,UAAUisE,iBAAmB,SAAU3lD,EAAQqnB,EAAS6tB,GAUlE,GARA7+D,KAAKuwE,eAAeZ,GAGhB3vE,KAAKinE,WAELjnE,KAAKinE,UAAUx6B,SAASzsC,KAAMgxC,EAAS6tB,IAGvC7+D,KAAKgvE,aAKT,GAAIhvE,KAAKivE,SAELjvE,KAAKgwE,iBAAiBP,OAG1B,CACI,GAAI4B,GAAYrxE,KAAKgwE,iBAAiBL,EACjC0B,IAKGrxE,KAAKgwE,iBAFLnR,EAEsB2Q,EAIAC,KA6BtC37C,EAAO/kB,YAAc,SAAUnK,EAAMxC,EAAQ+4B,EAAMsZ,IAEhChrC,SAAXrH,GAAmC,OAAXA,KAAmBA,EAASwC,EAAKE,OAE7DhF,KAAKiP,YAAYjJ,KAAK9F,MAEtB8zB,EAAO0gB,MAAM1uC,KAAK9F,KAAM4E,EAAMxC,EAAQ+4B,EAAMsZ,GAM5Cz0C,KAAK+W,KAAO+c,EAAOoD,aAIvBpD,EAAO/kB,YAAY1L,UAAYywB,EAAOoF,MAAMgC,QAAO,EAAMpH,EAAO/kB,YAAY1L,UAAWywB,EAAO0gB,MAAMnxC,UAAWvD,KAAKiP,YAAY1L,WAEhIywB,EAAO/kB,YAAY1L,UAAUC,YAAcwwB,EAAO/kB,YAoBlD+kB,EAAOw9C,SAAW,SAAU1sE,EAAMc,EAAGC,EAAG+Q,EAAKvK,GAEzC2nB,EAAOnsB,OAAO7B,KAAK9F,KAAM4E,EAAMc,EAAGC,EAAG+Q,EAAKvK,GAM1CnM,KAAKuxE,WAAY,EAMjBvxE,KAAKwxE,UAAY,KAMjBxxE,KAAKyxE,GAAK,EAMVzxE,KAAK0xE,WAAY,EAMjB1xE,KAAK2xE,UAAY,KAMjB3xE,KAAK4xE,GAAK,GAId99C,EAAOw9C,SAASjuE,UAAYO,OAAOwE,OAAO0rB,EAAOnsB,OAAOtE,WACxDywB,EAAOw9C,SAASjuE,UAAUC,YAAcwwB,EAAOw9C,SAQ/Cx9C,EAAOw9C,SAASjuE,UAAUijC,OAAS,WAE3BtmC,KAAKuxE,YAELvxE,KAAKyxE,KAEDzxE,KAAKyxE,GAELzxE,KAAK2B,MAAMqC,IAAIhE,KAAKwxE,UAAUxxE,KAAKyxE,IAAI/rE,EAAG1F,KAAKwxE,UAAUxxE,KAAKyxE,IAAI9rE,GAIlE3F,KAAKuxE,WAAY,GAIrBvxE,KAAK0xE,YAEL1xE,KAAK4xE,KAED5xE,KAAK4xE,GAEL5xE,KAAKgC,MAAQhC,KAAK2xE,UAAU3xE,KAAK4xE,IAAIn+D,EAIrCzT,KAAK0xE,WAAY,IAY7B59C,EAAOw9C,SAASjuE,UAAUwuE,OAAS,aASnC/9C,EAAOw9C,SAASjuE,UAAUyuE,aAAe,SAAS3gE,GAE9CnR,KAAK2xE,UAAYxgE,EACjBnR,KAAK4xE,GAAKzgE,EAAKzN,OAAS,EACxB1D,KAAKgC,MAAQhC,KAAK2xE,UAAU3xE,KAAK4xE,IAAIn+D,EACrCzT,KAAK0xE,WAAY,GAUrB59C,EAAOw9C,SAASjuE,UAAU0uE,aAAe,SAAS5gE,GAE9CnR,KAAKwxE,UAAYrgE,EACjBnR,KAAKyxE,GAAKtgE,EAAKzN,OAAS,EACxB1D,KAAK2B,MAAMqC,IAAIhE,KAAKwxE,UAAUxxE,KAAKyxE,IAAI/rE,EAAG1F,KAAKwxE,UAAUxxE,KAAKyxE,IAAI9rE,GAClE3F,KAAKuxE,WAAY,GAgBrBz9C,EAAOw9C,SAASjuE,UAAUoZ,MAAQ,SAAS/W,EAAGC,EAAG+hE,GAU7C,MARA5zC,GAAO2uC,UAAUuH,MAAM3mE,UAAUoZ,MAAM3W,KAAK9F,KAAM0F,EAAGC,EAAG+hE,GAExD1nE,KAAKgC,MAAQ,EACbhC,KAAK2B,MAAMqC,IAAI,GAEfhE,KAAKuxE,WAAY,EACjBvxE,KAAK0xE,WAAY,EAEV1xE,MAiCX8zB,EAAO61B,OAAS,WAOZ3pD,KAAKgyE,cAAgB,EAOrBhyE,KAAKiyE,aAAc,EAQnBjyE,KAAKuiD,SAAU,EAMfviD,KAAKotD,KAAM,EAMXptD,KAAKoiD,UAAW,EAMhBpiD,KAAK0zC,aAAc,EAMnB1zC,KAAKmtD,SAAU,EAMfntD,KAAKkyE,MAAO,EAMZlyE,KAAKmyE,YAAa,EAMlBnyE,KAAKoyE,UAAW,EAMhBpyE,KAAKqyE,QAAS,EAMdryE,KAAKsyE,WAAY,EAMjBtyE,KAAKwiD,SAAU,EAMfxiD,KAAKuyE,UAAW,EAMhBvyE,KAAKwyE,OAAQ,EAMbxyE,KAAKyyE,OAAQ,EAMbzyE,KAAK0yE,SAAU,EAMf1yE,KAAK2yE,cAAe,EAQpB3yE,KAAK+Q,QAAS,EAMd/Q,KAAK4yE,kBAAoB,KAMzB5yE,KAAKgb,OAAQ,EAMbhb,KAAK6yE,MAAO,EAMZ7yE,KAAK8yE,YAAa,EAMlB9yE,KAAK+yE,cAAe,EAMpB/yE,KAAKgzE,QAAS,EAMdhzE,KAAKizE,OAAQ,EAMbjzE,KAAK+yD,aAAc,EAMnB/yD,KAAKkzE,YAAa,EAMlBlzE,KAAKmzE,WAAY,EAMjBnzE,KAAKozE,cAAe,EAMpBpzE,KAAKqzE,YAAa,EAQlBrzE,KAAKovD,OAAQ,EAMbpvD,KAAKqvD,WAAY,EAOjBrvD,KAAKu0D,WAAa,KAQlBv0D,KAAKszE,OAAQ,EAMbtzE,KAAKyiD,QAAS,EAMdziD,KAAKuzE,cAAgB,EAMrBvzE,KAAKwzE,UAAW,EAMhBxzE,KAAKyzE,SAAU,EAMfzzE,KAAK0zE,eAAiB,EAMtB1zE,KAAK2zE,IAAK,EAMV3zE,KAAK4zE,UAAY,EAMjB5zE,KAAK6zE,SAAU,EAMf7zE,KAAK8zE,eAAiB,EAMtB9zE,KAAK+zE,cAAe,EAMpB/zE,KAAKg0E,QAAS,EAMdh0E,KAAKi0E,OAAQ,EAMbj0E,KAAKk0E,QAAS,EAMdl0E,KAAKsiD,QAAS,EAMdtiD,KAAKm0E,MAAO,EAQZn0E,KAAKo0E,WAAY,EAMjBp0E,KAAKksD,UAAW,EAMhBlsD,KAAKq0E,KAAM,EAMXr0E,KAAKs0E,MAAO,EAMZt0E,KAAKu0E,KAAM,EAMXv0E,KAAKw0E,KAAM,EAOXx0E,KAAKy0E,KAAM,EAMXz0E,KAAK00E,MAAO,EAQZ10E,KAAK20E,UAAW,EAMhB30E,KAAK40E,WAAY,EAMjB50E,KAAK60E,UAAW,EAMhB70E,KAAK80E,WAAY,EAMjB90E,KAAK+0E,UAAW,EAMhB/0E,KAAKg1E,UAAW,EAQhBh1E,KAAKi1E,QAAS,EAMdj1E,KAAKk1E,SAAU,EAMfl1E,KAAKqiD,MAAO,EAQZriD,KAAKm1E,WAAa,EAMlBn1E,KAAKo1E,cAAe,EAMpBp1E,KAAKq1E,eAAgB,EAMrBr1E,KAAKs1E,cAAe,EAMpBt1E,KAAKmiD,YAAa,EAMlBniD,KAAKooD,kBAAoB,GAMzBpoD,KAAKwoD,iBAAmB,GAMxBxoD,KAAKmoD,oBAAqB,GAM9Br0B,EAAO61B,OAAS,GAAI71B,GAAO61B,OAc3B71B,EAAO61B,OAAO4rB,cAAgB,GAAIzhD,GAAO0W,OAgBzC1W,EAAO61B,OAAOoB,UAAY,SAAUpS,EAAUvrC,EAASooE,GAEnD,GAAIC,GAAaz1E,KAAK01E,WAEtB,IAAI11E,KAAKgyE,gBAAkByD,EAEvB98B,EAAS7yC,KAAKsH,EAASpN,UAEtB,IAAIy1E,EAAWE,UAAYH,EAE5BC,EAAWG,OAASH,EAAWG,WAC/BH,EAAWG,OAAOrxE,MAAMo0C,EAAUvrC,QAGtC,CACIqoE,EAAWE,SAAWF,EAAWv9C,KAAKl4B,MACtCy1E,EAAWG,OAASH,EAAWG,WAC/BH,EAAWG,OAAOrxE,MAAMo0C,EAAUvrC,GAElC,IAAI+/C,GAAoC,mBAAnB14C,QAAO04C,QACxB/K,EAAWzyB,UAAsB,UAET,cAAxBnf,SAASqlE,YAAqD,gBAAxBrlE,SAASqlE,WAG/CphE,OAAOgzC,WAAWguB,EAAWE,SAAU,GAElCxoB,IAAY/K,EAIjB5xC,SAAS4iC,iBAAiB,cAAeqiC,EAAWE,UAAU,IAI9DnlE,SAAS4iC,iBAAiB,mBAAoBqiC,EAAWE,UAAU,GACnElhE,OAAO2+B,iBAAiB,OAAQqiC,EAAWE,UAAU,MAajE7hD,EAAO61B,OAAO+rB,YAAc,WAExB,GAAID,GAAaz1E,KAAK01E,WAEtB,IAAKllE,SAAS0lC,MAIT,IAAKl2C,KAAKgyE,cACf,CACIhyE,KAAKgyE,cAAgB/hC,KAAK6a,MAE1Bt6C,SAAS+jC,oBAAoB,cAAekhC,EAAWE,UACvDnlE,SAAS+jC,oBAAoB,mBAAoBkhC,EAAWE,UAC5DlhE,OAAO8/B,oBAAoB,OAAQkhC,EAAWE,UAE9C31E,KAAK81E,cACL91E,KAAKiyE,aAAc,EAEnBjyE,KAAKu1E,cAAc9oC,SAASzsC,KAG5B,KADA,GAAI+D,GACIA,EAAO0xE,EAAWG,OAAO/b,SACjC,CACI,GAAIlhB,GAAW50C,EAAK,GAChBqJ,EAAUrJ,EAAK,EACnB40C,GAAS7yC,KAAKsH,EAASpN,MAI3BA,KAAK01E,YAAc,KACnB11E,KAAK81E,YAAc,KACnB91E,KAAKu1E,cAAgB,UA1BrB9gE,QAAOgzC,WAAWguB,EAAWE,SAAU,KAsC/C7hD,EAAO61B,OAAOmsB,YAAc,WAOxB,QAASC,KAEL,GAAI71C,GAAKvQ,UAAUqmD,SAEf,oBAAmBC,KAAK/1C,GAExBuT,EAAOyiC,MAAO,EAET,SAASD,KAAK/1C,IAAO,kBAAkB+1C,KAAK/1C,IAAO,sBAAsB+1C,KAAK/1C,GAEnFuT,EAAO0iC,QAAS,EAIX,UAAUF,KAAK/1C,GAEpBuT,EAAO+O,SAAU,EAEZ,OAAOyzB,KAAK/1C,GAEjBuT,EAAO8+B,UAAW,EAEb,kBAAkB0D,KAAK/1C,GAE5BuT,EAAO2Z,KAAM,EAER,QAAQ6oB,KAAK/1C,GAElBuT,EAAO++B,OAAQ,EAEV,SAASyD,KAAK/1C,GAEnBuT,EAAOg/B,OAAQ,EAEV,UAAUwD,KAAK/1C,KAEpBuT,EAAOi/B,SAAU,IAGjB,iBAAiBuD,KAAK/1C,IAAO,YAAY+1C,KAAK/1C,MAE9CuT,EAAO+O,SAAU,EACjB/O,EAAO2Z,KAAM,EACb3Z,EAAOg/B,OAAQ,EACfh/B,EAAOi/B,SAAU,EACjBj/B,EAAOk/B,cAAe,EAG1B,IAAIwB,GAAO,OAAO8B,KAAK/1C,IAEnBuT,EAAOi/B,SAAWj/B,EAAOg/B,OAAUh/B,EAAO++B,QAAU2B,GAAS1gC,EAAO8+B,YAEpE9+B,EAAO8O,SAAU,IAIjB9O,EAAOk/B,cAAkB,cAAcsD,KAAK/1C,IAAS,SAAS+1C,KAAK/1C,MAEnEuT,EAAO8O,SAAU,GAQzB,QAAS6zB,KAEL3iC,EAAO1iC,SAAW0D,OAAiC,0BAAKg/B,EAAO2O,QAE/D,KACI3O,EAAOs/B,eAAiBA,aAAasD,QACvC,MAAOC,GACL7iC,EAAOs/B,cAAe,EAG1Bt/B,EAAOo/B,QAASp+D,OAAa,MAAOA,OAAmB,YAAOA,OAAiB,UAAOA,OAAa,MACnGg/B,EAAOq/B,aAAer+D,OAA0B,kBAEhDg/B,EAAOz4B,MAAQ,WAAgB,IAAM,GAAIjK,GAASP,SAASQ,cAAe,SAAyE,OAA7BD,GAAO8e,cAAe,IAAiBpb,OAAO8hE,wBAA2BxlE,EAAOE,WAAY,UAAaF,EAAOE,WAAY,uBAA4B,MAAOgqB,GAAM,OAAO,MAClSwY,EAAOz4B,QAAUy4B,EAAOz4B,MAExBy4B,EAAOu/B,SAAWv+D,OAAe,OAEjCg/B,EAAOsf,YAAc,sBAAwBviD,WAAY,yBAA2BA,WAAY,4BAA8BA,UAE9HijC,EAAO4/B,WAAsC,eAAxB7iE,SAASgmE,YAA+B,GAAQ,EAErE7mD,UAAUyjD,aAAezjD,UAAUyjD,cAAgBzjD,UAAU8mD,oBAAsB9mD,UAAU+mD,iBAAmB/mD,UAAUgnD,gBAAkBhnD,UAAUinD,cAEtJniE,OAAOoiE,IAAMpiE,OAAOoiE,KAAOpiE,OAAOqiE,WAAariE,OAAOsiE,QAAUtiE,OAAOuiE,MAEvEvjC,EAAO2/B,aAAe3/B,EAAO2/B,gBAAkBzjD,UAAUyjD,gBAAkB3+D,OAAOoiE,IAG9EpjC,EAAOggC,SAAWhgC,EAAOigC,eAAiB,KAE1CjgC,EAAO2/B,cAAe,IAOrB3/B,EAAO2Z,MAAQ3Z,EAAOkgC,IAAMlgC,EAAOggC,SAAWhgC,EAAOgP,UAEtDhP,EAAOm/B,mBAAoB,IAI3Bn/B,EAAOygC,QAAUzgC,EAAOsgC,gBAExBtgC,EAAOm/B,mBAAoB,GAQnC,QAASqE,MAED,gBAAkBzmE,UAASi1C,iBAAoBhxC,OAAOkb,UAAUunD,gBAAkBziE,OAAOkb,UAAUunD,gBAAkB,KAErHzjC,EAAO2b,OAAQ,IAGf36C,OAAOkb,UAAUwnD,kBAAoB1iE,OAAOkb,UAAUynD,kBAEtD3jC,EAAO4b,WAAY,GAGlB5b,EAAO2O,WAGJ,WAAa3tC,SAAWg/B,EAAOkgC,IAAM,cAAgBl/D,QAGrDg/B,EAAO8gB,WAAa,QAEf,gBAAkB9/C,QAGvBg/B,EAAO8gB,WAAa,aAEf9gB,EAAOggC,SAAW,oBAAsBh/D,UAG7Cg/B,EAAO8gB,WAAa,mBAShC,QAAS8iB,KAeL,IAAK,GAbDC,IACA,oBACA,oBACA,0BACA,0BACA,sBACA,sBACA,uBACA,wBAGAziB,EAAUrkD,SAASQ,cAAc,OAE5BvN,EAAI,EAAGA,EAAI6zE,EAAG5zE,OAAQD,IAE3B,GAAIoxD,EAAQyiB,EAAG7zE,IACf,CACIgwC,EAAO0O,YAAa,EACpB1O,EAAO2U,kBAAoBkvB,EAAG7zE,EAC9B,OAIR,GAAI8zE,IACA,mBACA,iBACA,yBACA,uBACA,qBACA,mBACA,sBACA,oBAGJ,IAAI9jC,EAAO0O,WAEP,IAAK,GAAI1+C,GAAI,EAAGA,EAAI8zE,EAAI7zE,OAAQD,IAE5B,GAAI+M,SAAS+mE,EAAI9zE,IACjB,CACIgwC,EAAO+U,iBAAmB+uB,EAAI9zE,EAC9B,OAMRgR,OAAgB,SAAK4zC,QAA8B,uBAEnD5U,EAAO0U,oBAAqB,GAQpC,QAASqvB,KAEL,GAAIt3C,GAAKvQ,UAAUqmD,SAmFnB,IAjFI,QAAQC,KAAK/1C,GAEbuT,EAAO6/B,OAAQ,EAEV,gBAAgB2C,KAAK/1C,KAAQuT,EAAOk/B,cAEzCl/B,EAAOgP,QAAS,EAChBhP,EAAO8/B,cAAgBl5C,SAASo9C,OAAOC,GAAI,KAEtC,WAAWzB,KAAK/1C,GAErBuT,EAAO+/B,UAAW,EAEb,kBAAkByC,KAAK/1C,IAE5BuT,EAAOggC,SAAU,EACjBhgC,EAAOigC,eAAiBr5C,SAASo9C,OAAOC,GAAI,KAEvC,cAAczB,KAAK/1C,IAAOuT,EAAO2Z,IAEtC3Z,EAAOsgC,cAAe,EAEjB,mBAAmBkC,KAAK/1C,IAE7BuT,EAAOkgC,IAAK,EACZlgC,EAAOmgC,UAAYv5C,SAASo9C,OAAOC,GAAI,KAElC,SAASzB,KAAK/1C,GAEnBuT,EAAOugC,QAAS,EAEX,QAAQiC,KAAK/1C,GAElBuT,EAAOwgC,OAAQ,EAEV,SAASgC,KAAK/1C,KAAQuT,EAAOk/B,aAElCl/B,EAAOygC,QAAS,EAEX,uCAAuC+B,KAAK/1C,KAEjDuT,EAAOkgC,IAAK,EACZlgC,EAAOogC,SAAU,EACjBpgC,EAAOqgC,eAAiBz5C,SAASo9C,OAAOC,GAAI,IAC5CjkC,EAAOmgC,UAAYv5C,SAASo9C,OAAOE,GAAI,KAIvC,OAAO1B,KAAK/1C,KAEZuT,EAAO0gC,MAAO,GAIdxkD,UAAsB,aAEtB8jB,EAAO6O,QAAS,GAGU,mBAAnB7tC,QAAO04C,UAEd1Z,EAAO0Z,SAAU,GAGE,mBAAZyqB,UAA8C,mBAAZC,WAEzCpkC,EAAOy+B,MAAO,GAGdz+B,EAAOy+B,MAAoC,gBAArB0F,SAAQE,WAE9BrkC,EAAO0+B,aAAeyF,QAAQE,SAAS,eAEvCrkC,EAAO2+B,WAAawF,QAAQE,SAAS1F,UAGrCziD,UAAsB,aAEtB8jB,EAAO2O,UAAW,GAGlB3O,EAAO2O,SAEP,IACI3O,EAAOC,YAAmC,mBAAbC,UAEjC,MAAM2iC,GAEF7iC,EAAOC,aAAc,EAIA,mBAAlBj/B,QAAO49D,SAEd5+B,EAAO4+B,QAAS,GAGhB,YAAY4D,KAAK/1C,KAEjBuT,EAAO6+B,WAAY,GAQ3B,QAASyF,KAEL,GAAIC,GAAexnE,SAASQ,cAAc,SACtCM,GAAS,CAEb,MACQA,IAAW0mE,EAAaC,eAEpBD,EAAaC,YAAY,8BAA8Bv8C,QAAQ,OAAQ,MAEvE+X,EAAOkhC,UAAW,GAGlBqD,EAAaC,YAAY,mCAAmCv8C,QAAQ,OAAQ,MAG5E+X,EAAOmhC,WAAY,EACnBnhC,EAAOohC,UAAW,GAGlBmD,EAAaC,YAAY,oCAAoCv8C,QAAQ,OAAQ,MAE7E+X,EAAOqhC,WAAY,GAGnBkD,EAAaC,YAAY,4BAA4Bv8C,QAAQ,OAAQ,MAErE+X,EAAOshC,UAAW,GAGlBiD,EAAaC,YAAY,+CAA+Cv8C,QAAQ,OAAQ,MAExF+X,EAAOuhC,UAAW,IAG5B,MAAO/5C,KAMb,QAASi9C,KAELzkC,EAAO2gC,YAAe3/D,OAAe,MACrCg/B,EAAOyY,YAAcz3C,OAAqB,eAAKA,OAA2B,mBAC1E,IAAI0jE,GAAe3nE,SAASQ,cAAc,SACtCM,GAAS,CAEb,MACQA,IAAW6mE,EAAaF,eAEpBE,EAAaF,YAAY,8BAA8Bv8C,QAAQ,OAAQ,MAEvE+X,EAAO4gC,KAAM,IAGb8D,EAAaF,YAAY,4BAA4Bv8C,QAAQ,OAAQ,KAAOy8C,EAAaF,YAAY,eAAev8C,QAAQ,OAAQ,OAEpI+X,EAAO6gC,MAAO,GAGd6D,EAAaF,YAAY,eAAev8C,QAAQ,OAAQ,MAExD+X,EAAO8gC,KAAM,GAMb4D,EAAaF,YAAY,yBAAyBv8C,QAAQ,OAAQ,MAElE+X,EAAO+gC,KAAM,IAGb2D,EAAaF,YAAY,iBAAmBE,EAAaF,YAAY,cAAcv8C,QAAQ,OAAQ,OAEnG+X,EAAOghC,KAAM,GAGb0D,EAAaF,YAAY,+BAA+Bv8C,QAAQ,OAAQ,MAExE+X,EAAOihC,MAAO,IAGxB,MAAOz5C,KAQb,QAASm9C,KAEL3kC,EAAO0hC,WAAa1gE,OAAyB,kBAAK,EAClDg/B,EAAOwhC,OAAgE,IAAvDtlD,UAAUqmD,UAAUqC,cAAclvE,QAAQ,UAC1DsqC,EAAOyhC,QAAgC,GAArBzhC,EAAO0hC,YAAmB1hC,EAAOwhC,OACnDxhC,EAAO4O,KAA4D,IAArD1yB,UAAUqmD,UAAUqC,cAAclvE,QAAQ,QAIpDsqC,EAAOy/B,WAFc,mBAAdoF,YAEa,GAIA,EAGG,mBAAhB93E,cAAqD,mBAAfi0B,aAAqD,mBAAhBl0B,eAElFkzC,EAAO2hC,aAAemD,IACtB9kC,EAAO4hC,cAAgB5hC,EAAO2hC,cAGlC3hC,EAAO6hC,aAAuC,mBAAhB90E,cAA4D,mBAAtBg4E,oBAA2D,mBAAfC,aAAsD,OAAxBhlC,EAAO2hC,cAAyBsD,IAE9K/oD,UAAUgpD,QAAUhpD,UAAUgpD,SAAWhpD,UAAUipD,eAAiBjpD,UAAUkpD,YAAclpD,UAAUmpD,UAElGnpD,UAAUgpD,UAEVllC,EAAO0/B,WAAY,GAU3B,QAASoF,KAEL,GAAIxzE,GAAI,GAAIvE,aAAY,GACpBwE,EAAI,GAAIyvB,YAAW1vB,GACnBE,EAAI,GAAI1E,aAAYwE,EAOxB,OALAC,GAAE,GAAK,IACPA,EAAE,GAAK,IACPA,EAAE,GAAK,IACPA,EAAE,GAAK,IAEK,YAARC,EAAE,IAEK,EAGC,YAARA,EAAE,IAEK,EAKA,KAUf,QAASyzE,KAEL,GAA0BjvE,SAAtB+uE,kBAEA,OAAO,CAGX,IAAIO,GAAOvoE,SAASQ,cAAc,UAC9B+1B,EAAMgyC,EAAK9nE,WAAW,KAE1B,KAAK81B,EAED,OAAO,CAGX,IAAItU,GAAQsU,EAAIiyC,gBAAgB,EAAG,EAEnC,OAAOvmD,GAAMthB,eAAgBqnE,mBAOjC,QAASS,KAEL,GACIC,GADAC,EAAK3oE,SAASQ,cAAc,KAE5BooE,GACAC,gBAAmB,oBACnBC,WAAc,eACdC,YAAe,gBACfC,aAAgB,iBAChB/pE,UAAa,YAIjBe,UAAS0lC,KAAK+R,aAAakxB,EAAI,KAE/B,KAAK,GAAIrgD,KAAKsgD,GAEU3vE,SAAhB0vE,EAAG10D,MAAMqU,KAETqgD,EAAG10D,MAAMqU,GAAK,2BACdogD,EAAQzkE,OAAOglE,iBAAiBN,GAAIO,iBAAiBN,EAAWtgD,IAIxEtoB,UAAS0lC,KAAKvtC,YAAYwwE,GAC1B1lC,EAAOw/B,MAAmBxpE,SAAVyvE,GAAuBA,EAAMx1E,OAAS,GAAe,SAAVw1E,EAhiB/D,GAAIzlC,GAASzzC,IAqiBb+1E,KACAmC,IACAH,IACAP,IACAyB,IACAb,IACAhC,IACAiB,IACAJ,KAYJnjD,EAAO61B,OAAOgwB,aAAe,SAAU5iE,GAEnC,MAAa,QAATA,GAAkB/W,KAAKu0E,KAEhB,EAEO,QAATx9D,IAAmB/W,KAAKq0E,KAAOr0E,KAAKs0E,OAElC,EAEO,QAATv9D,GAAkB/W,KAAKy0E,KAErB,EAEO,SAAT19D,GAAmB/W,KAAKs0E,MAEtB,EAEO,QAATv9D,GAAkB/W,KAAKw0E,KAErB,EAEO,SAATz9D,GAAmB/W,KAAK00E,MAEtB,GAGJ,GAYX5gD,EAAO61B,OAAOiwB,aAAe,SAAU7iE,GAEnC,MAAa,SAATA,IAAoB/W,KAAK80E,WAAa90E,KAAK+0E,WAEpC,EAEO,QAATh+D,IAAmB/W,KAAK60E,UAAY70E,KAAK40E,YAEvC,EAEO,QAAT79D,GAAkB/W,KAAK20E,UAErB,EAEO,SAAT59D,GAAmB/W,KAAKg1E,UAEtB,GAGJ,GAYXlhD,EAAO61B,OAAOkwB,cAAgB,WAE1B,MAAIplE,QAAOC,SAAWD,OAAOC,QAAiB,SAEnC,EAGPD,OAAOC,UAEPA,QAAQolE,UACRplE,QAAQqlE,aAEJrlE,QAAQ0P,OAER1P,QAAQ0P,QAGR1P,QAAkB,UAEXA,QAAkB,SAAEhR,OAAS,GAIrC,GAgBXowB,EAAO61B,OAAOqwB,sBAAwB,WAElC,GAAIC,GAAUxlE,OAAOkb,UAAUqmD,UAAUkE,MAAM,iCAC/C,OAAOD,IAAWA,EAAQ,GAAK,KAqBnCnmD,EAAO0e,KAYHC,UAAW,SAAUoiB,EAAS13B,GAE1BA,EAAQA,GAAS,GAAIrJ,GAAOpyB,KAE5B,IAAIy4E,GAAMtlB,EAAQ1O,wBAEdZ,EAAYzxB,EAAO0e,IAAI4nC,QACvBC,EAAavmD,EAAO0e,IAAI8nC,QACxBC,EAAY/pE,SAASi1C,gBAAgB80B,UACrCC,EAAahqE,SAASi1C,gBAAgB+0B,UAK1C,OAHAr9C,GAAMz3B,EAAIy0E,EAAIt/C,KAAOw/C,EAAaG,EAClCr9C,EAAMx3B,EAAIw0E,EAAI/8C,IAAMmoB,EAAYg1B,EAEzBp9C,GAiBXn3B,UAAW,SAAU6uD,EAAS4lB,GAM1B,MAJgBhxE,UAAZgxE,IAAyBA,EAAU,GAEvC5lB,EAAUA,IAAYA,EAAQ95B,SAAW85B,EAAQ,GAAKA,EAEjDA,GAAgC,IAArBA,EAAQ95B,SAMb/6B,KAAK06E,UAAU7lB,EAAQ1O,wBAAyBs0B,IAJhD,GAkBfC,UAAW,SAAUC,EAAQF,GAEzBA,GAAWA,GAAW,CAEtB,IAAI59C,IAAWh2B,MAAO,EAAGC,OAAQ,EAAG+zB,KAAM,EAAGD,MAAO,EAAGwC,IAAK,EAAGC,OAAQ,EAKvE,OAHAR,GAAOh2B,OAASg2B,EAAOjC,MAAQ+/C,EAAO//C,MAAQ6/C,IAAY59C,EAAOhC,KAAO8/C,EAAO9/C,KAAO4/C,GACtF59C,EAAO/1B,QAAU+1B,EAAOQ,OAASs9C,EAAOt9C,OAASo9C,IAAY59C,EAAOO,IAAMu9C,EAAOv9C,IAAMq9C,GAEhF59C,GAWX+9C,eAAgB,SAAUpQ,GAEtBA,EAAS,MAAQA,EAASxqE,KAAKujD,aAAe,IAAMinB,EAAOzvC,SAAW/6B,KAAKgG,UAAUwkE,GAAUA,CAE/F,IAAIjxD,GAAIixD,EAAc,MAClBngD,EAAImgD,EAAe,MAYvB,OAViB,kBAANjxD,KAEPA,EAAIA,EAAEzT,KAAK0kE,IAGE,kBAANngD,KAEPA,EAAIA,EAAEvkB,KAAK0kE,IAGRjxD,EAAI8Q,GAiBfwwD,iBAAkB,SAAUhmB,EAAS4lB,GAEjC,GAAIp8D,GAAIre,KAAKgG,UAAU6uD,EAAS4lB,EAEhC,SAASp8D,GAAKA,EAAEgf,QAAU,GAAKhf,EAAEuc,OAAS,GAAKvc,EAAE+e,KAAOp9B,KAAKimD,aAAap/C,OAASwX,EAAEwc,MAAQ76B,KAAKimD,aAAan/C,QA6BnH24C,qBAAsB,SAAUq7B,GAE5B,GAAIC,GAAStmE,OAAOsmE,OAChB/1B,EAAc+1B,EAAO/1B,aAAe+1B,EAAOC,gBAAkBD,EAAOE,aAExE,IAAIj2B,GAA2C,gBAArBA,GAAYjuC,KAGlC,MAAOiuC,GAAYjuC,IAElB,IAA2B,gBAAhBiuC,GAGZ,MAAOA,EAGX,IAAIk2B,GAAW,mBACXC,EAAY,mBAEhB,IAAwB,WAApBL,EAEA,MAAQC,GAAOj0E,OAASi0E,EAAOl0E,MAASq0E,EAAWC,CAElD,IAAwB,aAApBL,EAEL,MAAQ96E,MAAKujD,aAAaz8C,OAAS9G,KAAKujD,aAAa18C,MAASq0E,EAAWC,CAExE,IAAwB,uBAApBL,GAA0E,gBAAvBrmE,QAAOuwC,YAG/D,MAA+B,KAAvBvwC,OAAOuwC,aAA4C,MAAvBvwC,OAAOuwC,YAAuBk2B,EAAWC,CAE5E,IAAI1mE,OAAO2mE,WAChB,CACI,GAAI3mE,OAAO2mE,WAAW,2BAA2BnB,QAE7C,MAAOiB,EAEN,IAAIzmE,OAAO2mE,WAAW,4BAA4BnB,QAEnD,MAAOkB,GAIf,MAAQn7E,MAAKujD,aAAaz8C,OAAS9G,KAAKujD,aAAa18C,MAASq0E,EAAWC,GAqB7E53B,aAAc,GAAIzvB,GAAO9wB,UAqBzBijD,aAAc,GAAInyB,GAAO9wB,UAczBq4E,eAAgB,GAAIvnD,GAAO9wB,WAI/B8wB,EAAO61B,OAAOoB,UAAU,SAAUtX,GAG9B,GAAI6mC,GAAU7lE,QAAW,eAAiBA,QACtC,WAAc,MAAOA,QAAO6mE,aAC5B,WAAc,MAAO9qE,UAASi1C,gBAAgB40B,YAE9CD,EAAU3lE,QAAW,eAAiBA,QACtC,WAAc,MAAOA,QAAO8mE,aAC5B,WAAc,MAAO/qE,UAASi1C,gBAAgBF,UAUlD3hD,QAAOC,eAAeiwB,EAAO0e,IAAK,WAC9B1uC,IAAKw2E,IAWT12E,OAAOC,eAAeiwB,EAAO0e,IAAK,WAC9B1uC,IAAKs2E,IAGTx2E,OAAOC,eAAeiwB,EAAO0e,IAAI+Q,aAAc,KAC3Cz/C,IAAKw2E,IAGT12E,OAAOC,eAAeiwB,EAAO0e,IAAI+Q,aAAc,KAC3Cz/C,IAAKs2E,IAGTx2E,OAAOC,eAAeiwB,EAAO0e,IAAIyT,aAAc,KAC3ChiD,MAAO,IAGXL,OAAOC,eAAeiwB,EAAO0e,IAAIyT,aAAc,KAC3ChiD,MAAO,GAGX,IAAIu3E,GAAiB/nC,EAAO8O,SACvB/xC,SAASi1C,gBAAgBg2B,aAAehnE,OAAO6lB,YAC/C9pB,SAASi1C,gBAAgBi2B,cAAgBjnE,OAAO8lB,WAKrD,IAAIihD,EACJ,CAII,GAAIC,GAAc,WACd,MAAO96E,MAAK2+B,IAAI7qB,OAAO6lB,WAAY9pB,SAASi1C,gBAAgBg2B,cAE5DC,EAAe,WACf,MAAO/6E,MAAK2+B,IAAI7qB,OAAO8lB,YAAa/pB,SAASi1C,gBAAgBi2B,cAIjE93E,QAAOC,eAAeiwB,EAAO0e,IAAI+Q,aAAc,SAC3Cz/C,IAAK23E,IAGT73E,OAAOC,eAAeiwB,EAAO0e,IAAI+Q,aAAc,UAC3Cz/C,IAAK43E,IAGT93E,OAAOC,eAAeiwB,EAAO0e,IAAIyT,aAAc,SAC3CniD,IAAK23E,IAGT73E,OAAOC,eAAeiwB,EAAO0e,IAAIyT,aAAc,UAC3CniD,IAAK43E,QAKT93E,QAAOC,eAAeiwB,EAAO0e,IAAI+Q,aAAc,SAC3Cz/C,IAAK,WACD,MAAO2Q,QAAO6lB,cAItB12B,OAAOC,eAAeiwB,EAAO0e,IAAI+Q,aAAc,UAC3Cz/C,IAAK,WACD,MAAO2Q,QAAO8lB,eAItB32B,OAAOC,eAAeiwB,EAAO0e,IAAIyT,aAAc,SAE3CniD,IAAK,WACD,GAAIiB,GAAIyL,SAASi1C,gBAAgBg2B,YAC7Bz2E,EAAIyP,OAAO6lB,UAEf,OAAWt1B,GAAJD,EAAQC,EAAID,KAK3BnB,OAAOC,eAAeiwB,EAAO0e,IAAIyT,aAAc,UAE3CniD,IAAK,WACD,GAAIiB,GAAIyL,SAASi1C,gBAAgBi2B,aAC7B12E,EAAIyP,OAAO8lB,WAEf,OAAWv1B,GAAJD,EAAQC,EAAID,IAU/BnB,QAAOC,eAAeiwB,EAAO0e,IAAI6oC,eAAgB,KAC7Cp3E,MAAO,IAGXL,OAAOC,eAAeiwB,EAAO0e,IAAI6oC,eAAgB,KAC7Cp3E,MAAO,IAGXL,OAAOC,eAAeiwB,EAAO0e,IAAI6oC,eAAgB,SAE7Cv3E,IAAK,WACD,GAAIoB,GAAIsL,SAASi1C,eACjB,OAAO9kD,MAAK2+B,IAAIp6B,EAAEu2E,YAAav2E,EAAEy2E,YAAaz2E,EAAE02E,gBAKxDh4E,OAAOC,eAAeiwB,EAAO0e,IAAI6oC,eAAgB,UAE7Cv3E,IAAK,WACD,GAAIoB,GAAIsL,SAASi1C,eACjB,OAAO9kD,MAAK2+B,IAAIp6B,EAAEw2E,aAAcx2E,EAAE22E,aAAc32E,EAAE42E,kBAK3D,MAAM,GAcThoD,EAAO4e,QAWHtqC,OAAQ,SAAUvB,EAAOC,EAAQ8Q,GAE7B/Q,EAAQA,GAAS,IACjBC,EAASA,GAAU,GAEnB,IAAIiK,GAASP,SAASQ,cAAc,SAYpC,OAVkB,gBAAP4G,IAA0B,KAAPA,IAE1B7G,EAAO6G,GAAKA,GAGhB7G,EAAOlK,MAAQA,EACfkK,EAAOjK,OAASA,EAEhBiK,EAAO0T,MAAMs3D,QAAU,QAEhBhrE,GAYXjB,mBAAoB,SAAUiB,EAAQwJ,GAMlC,MAJAA,GAAQA,GAAS,aAEjBxJ,EAAO0T,MAAM5U,gBAAkB0K,EAExBxJ,GAYX6hC,eAAgB,SAAU7hC,EAAQ9M,GAQ9B,MANAA,GAAQA,GAAS,OAEjB8M,EAAO0T,MAAMu3D,cAAgB/3E,EAC7B8M,EAAO0T,MAAM,mBAAqBxgB,EAClC8M,EAAO0T,MAAM,gBAAkBxgB,EAExB8M,GAYX4hC,cAAe,SAAU5hC,EAAQ9M,GAY7B,MAVAA,GAAQA,GAAS,OAEjB8M,EAAO0T,MAAM,yBAA2BxgB,EACxC8M,EAAO0T,MAAM,uBAAyBxgB,EACtC8M,EAAO0T,MAAM,sBAAwBxgB,EACrC8M,EAAO0T,MAAM,oBAAsBxgB,EACnC8M,EAAO0T,MAAM,mBAAqBxgB,EAClC8M,EAAO0T,MAAM,eAAiBxgB,EAC9B8M,EAAO0T,MAAM,+BAAiC,mBAEvC1T,GAcXq7C,SAAU,SAAUr7C,EAAQ3O,EAAQ65E,GAEhC,GAAIx3E,EA+BJ,OA7BuBgF,UAAnBwyE,IAAgCA,GAAiB,GAEjD75E,IAEsB,gBAAXA,GAGPqC,EAAS+L,SAAS6yC,eAAejhD,GAEV,gBAAXA,IAA2C,IAApBA,EAAO24B,WAG1Ct2B,EAASrC,IAKZqC,IAEDA,EAAS+L,SAAS0lC,MAGlB+lC,GAAkBx3E,EAAOggB,QAEzBhgB,EAAOggB,MAAMy3D,SAAW,UAG5Bz3E,EAAOyjD,YAAYn3C,GAEZA,GAUXk8C,cAAe,SAAUl8C,GAEjBA,EAAO4vC,YAEP5vC,EAAO4vC,WAAWh4C,YAAYoI,IAkBtChD,aAAc,SAAUX,EAAS+uE,EAAYC,EAAY1xD,EAAQE,EAAQyxD,EAAOC,GAI5E,MAFAlvE,GAAQW,aAAa2c,EAAQ2xD,EAAOC,EAAO1xD,EAAQuxD,EAAYC,GAExDhvE,GAgBXmvE,oBAAqB,SAAUnvE,EAASnJ,GAEpC,GAAIu4E,IAAW,IAAK,OAAQ,KAAM,UAAW,MAE7C,KAAK,GAAIC,KAAUD,GACnB,CACI,GAAIt6C,GAAIs6C,EAAOC,GAAU,sBAEzB,IAAIv6C,IAAK90B,GAGL,MADAA,GAAQ80B,GAAKj+B,EACNmJ,EAIf,MAAOA,IAWXsvE,oBAAqB,SAAUtvE,GAE3B,MAAQA,GAA+B,uBAAKA,EAAkC,0BAAKA,EAAgC,wBAAKA,EAAqC,6BAAKA,EAAiC,yBAYvMuvE,uBAAwB,SAAU5rE,GAU9B,MARAA,GAAO0T,MAAM,mBAAqB,gBAClC1T,EAAO0T,MAAM,mBAAqB,cAClC1T,EAAO0T,MAAM,mBAAqB,mBAClC1T,EAAO0T,MAAM,mBAAqB,4BAClC1T,EAAO0T,MAAM,mBAAqB,oBAClC1T,EAAO0T,MAAM,mBAAqB,YAClC1T,EAAO0T,MAAMm4D,oBAAsB,mBAE5B7rE,GAYX8rE,yBAA0B,SAAU9rE,GAKhC,MAHAA,GAAO0T,MAAM,mBAAqB,OAClC1T,EAAO0T,MAAMm4D,oBAAsB,UAE5B7rE,IAoBf+iB,EAAOg4B,sBAAwB,SAASlnD,EAAMk4E,GAElBrzE,SAApBqzE,IAAiCA,GAAkB,GAKvD98E,KAAK4E,KAAOA,EAMZ5E,KAAKwpD,WAAY,EAKjBxpD,KAAK88E,gBAAkBA,CASvB,KAAK,GAPDC,IACA,KACA,MACA,SACA,KAGKr3E,EAAI,EAAGA,EAAIq3E,EAAQr5E,SAAW+Q,OAAOuoE,sBAAuBt3E,IAEjE+O,OAAOuoE,sBAAwBvoE,OAAOsoE,EAAQr3E,GAAK,yBACnD+O,OAAOwoE,qBAAuBxoE,OAAOsoE,EAAQr3E,GAAK,uBAOtD1F,MAAKk9E,eAAgB,EAMrBl9E,KAAKm9E,QAAU,KAMfn9E,KAAKo9E,WAAa,MAItBtpD,EAAOg4B,sBAAsBzoD,WAMzB+H,MAAO,WAEHpL,KAAKwpD,WAAY,CAEjB,IAAIpa,GAAQpvC,MAEPyU,OAAOuoE,uBAAyBh9E,KAAK88E,iBAEtC98E,KAAKk9E,eAAgB,EAErBl9E,KAAKm9E,QAAU,WACX,MAAO/tC,GAAMiuC,oBAGjBr9E,KAAKo9E,WAAa3oE,OAAOgzC,WAAWznD,KAAKm9E,QAAS,KAIlDn9E,KAAKk9E,eAAgB,EAErBl9E,KAAKm9E,QAAU,SAAUj0C,GACrB,MAAOkG,GAAMkuC,UAAUp0C,IAG3BlpC,KAAKo9E,WAAa3oE,OAAOuoE,sBAAsBh9E,KAAKm9E,WAU5DG,UAAW,SAAUC,GAGjBv9E,KAAK4E,KAAK0hC,OAAO3lC,KAAKq3B,MAAMulD,IAE5Bv9E,KAAKo9E,WAAa3oE,OAAOuoE,sBAAsBh9E,KAAKm9E,UAQxDE,iBAAkB,WAEdr9E,KAAK4E,KAAK0hC,OAAO2J,KAAK6a,OAEtB9qD,KAAKo9E,WAAa3oE,OAAOgzC,WAAWznD,KAAKm9E,QAASn9E,KAAK4E,KAAKskC,KAAKs0C,aAQrExyE,KAAM,WAEEhL,KAAKk9E,cAELO,aAAaz9E,KAAKo9E,YAIlB3oE,OAAOwoE,qBAAqBj9E,KAAKo9E,YAGrCp9E,KAAKwpD,WAAY,GASrBk0B,aAAc,WACV,MAAO19E,MAAKk9E,eAQhBS,MAAO,WACH,MAAQ39E,MAAKk9E,iBAAkB,IAKvCppD,EAAOg4B,sBAAsBzoD,UAAUC,YAAcwwB,EAAOg4B,sBAkB5Dh4B,EAAOnzB,MAOHi9E,IAAe,EAAVj9E,KAAKC,GAWVi9E,WAAY,SAAU94E,EAAGC,EAAG84E,GAExB,MADgBr0E,UAAZq0E,IAAyBA,EAAU,MAChCn9E,KAAKshB,IAAIld,EAAIC,GAAK84E,GAY7BC,cAAe,SAAUh5E,EAAGC,EAAG84E,GAE3B,MADgBr0E,UAAZq0E,IAAyBA,EAAU,MAC5B94E,EAAI84E,EAAR/4E,GAYXi5E,iBAAkB,SAAUj5E,EAAGC,EAAG84E,GAE9B,MADgBr0E,UAAZq0E,IAAyBA,EAAU,MAChC/4E,EAAIC,EAAI84E,GAUnBG,UAAW,SAAUC,EAAKJ,GAEtB,MADgBr0E,UAAZq0E,IAAyBA,EAAU,MAChCn9E,KAAKo3B,KAAKmmD,EAAMJ,IAU3BK,WAAY,SAAUD,EAAKJ,GAEvB,MADgBr0E,UAAZq0E,IAAyBA,EAAU,MAChCn9E,KAAKq3B,MAAMkmD,EAAMJ,IAU5BM,QAAS,WAIL,IAAK,GAFDC,GAAM,EAED56E,EAAI,EAAGA,EAAI80B,UAAU70B,OAAQD,IAClC46E,IAAS9lD,UAAU90B,EAGvB,OAAO46E,GAAM9lD,UAAU70B,QAS3B46E,MAAO,SAAU3sE,GACb,MAAOA,GAAI,GAcf4sE,OAAQ,SAAUz1C,EAAO01C,EAAKpzE,GAI1B,MAFc3B,UAAV2B,IAAuBA,EAAQ,GAEvB,IAARozE,EACO11C,GAGXA,GAAS19B,EACT09B,EAAQ01C,EAAM79E,KAAKi8B,MAAMkM,EAAQ01C,GAE1BpzE,EAAQ09B,IAgBnB21C,YAAa,SAAU31C,EAAO01C,EAAKpzE,GAI/B,MAFc3B,UAAV2B,IAAuBA,EAAQ,GAEvB,IAARozE,EACO11C,GAGXA,GAAS19B,EACT09B,EAAQ01C,EAAM79E,KAAKq3B,MAAM8Q,EAAQ01C,GAE1BpzE,EAAQ09B,IAgBnB41C,WAAY,SAAU51C,EAAO01C,EAAKpzE,GAI9B,MAFc3B,UAAV2B,IAAuBA,EAAQ,GAEvB,IAARozE,EACO11C,GAGXA,GAAS19B,EACT09B,EAAQ01C,EAAM79E,KAAKo3B,KAAK+Q,EAAQ01C,GAEzBpzE,EAAQ09B,IAuCnB61C,QAAS,SAAU16E,EAAO26E,EAAOxV,GAEf3/D,SAAVm1E,IAAuBA,EAAQ,GACtBn1E,SAAT2/D,IAAsBA,EAAO,GAEjC,IAAIvkE,GAAIlE,KAAKk+E,IAAIzV,GAAOwV,EAExB,OAAOj+E,MAAKi8B,MAAM34B,EAAQY,GAAKA,GAWnCi6E,QAAS,SAAU76E,EAAO26E,EAAOxV,GAEf3/D,SAAVm1E,IAAuBA,EAAQ,GACtBn1E,SAAT2/D,IAAsBA,EAAO,GAEjC,IAAIvkE,GAAIlE,KAAKk+E,IAAIzV,GAAOwV,EAExB,OAAOj+E,MAAKq3B,MAAM/zB,EAAQY,GAAKA,GAWnCk6E,OAAQ,SAAU96E,EAAO26E,EAAOxV,GAEd3/D,SAAVm1E,IAAuBA,EAAQ,GACtBn1E,SAAT2/D,IAAsBA,EAAO,GAEjC,IAAIvkE,GAAIlE,KAAKk+E,IAAIzV,GAAOwV,EAExB,OAAOj+E,MAAKo3B,KAAK9zB,EAAQY,GAAKA,GAalCm6E,aAAc,SAAUtyE,EAAIC,EAAIC,EAAIC,GAChC,MAAOlM,MAAKkF,MAAMgH,EAAKF,EAAIC,EAAKF,IAepCuyE,cAAe,SAAUvyE,EAAIC,EAAIC,EAAIC,GACjC,MAAOlM,MAAKkF,MAAM+G,EAAKF,EAAIG,EAAKF,IAUpCuyE,mBAAoB,SAAUC,EAAQC,GAClC,MAAOz+E,MAAKkF,MAAMu5E,EAAOz5E,EAAIw5E,EAAOx5E,EAAGy5E,EAAO15E,EAAIy5E,EAAOz5E,IAU7D25E,oBAAqB,SAAUF,EAAQC,GACnC,MAAOz+E,MAAKkF,MAAMu5E,EAAO15E,EAAIy5E,EAAOz5E,EAAG05E,EAAOz5E,EAAIw5E,EAAOx5E,IAS7D25E,aAAc,SAAUC,GACpB,MAAOv/E,MAAKw/E,eAAeD,EAAW5+E,KAAKC,IAAI,IASnD4+E,eAAgB,SAAUD,GAGtB,MADAA,IAAuB,EAAI5+E,KAAKC,GACzB2+E,GAAY,EAAIA,EAAWA,EAAW,EAAI5+E,KAAKC,IAa1D6+E,OAAQ,SAAUx7E,EAAOq0C,EAAQhZ,GAC7B,MAAO3+B,MAAK0wB,IAAIptB,EAAQq0C,EAAQhZ,IAYpCogD,OAAQ,SAAUz7E,EAAOq0C,EAAQjnB,GAC7B,MAAO1wB,MAAK2+B,IAAIr7B,EAAQq0C,EAAQjnB,IAcpC2O,KAAM,SAAU/7B,EAAOotB,EAAKiO,GAExB,GAAIv1B,GAAQu1B,EAAMjO,CAElB,IAAa,GAATtnB,EAEA,MAAO,EAGX,IAAIuH,IAAUrN,EAAQotB,GAAOtnB,CAO7B,OALa,GAATuH,IAEAA,GAAUvH,GAGPuH,EAAS+f,GAepBsuD,UAAW,SAAU17E,EAAOq0C,EAAQhZ,GAEhC,GAAI3f,EAMJ,OALA1b,GAAQtD,KAAKshB,IAAIhe,GACjBq0C,EAAS33C,KAAKshB,IAAIq2B,GAClBhZ,EAAM3+B,KAAKshB,IAAIqd,GACf3f,GAAQ1b,EAAQq0C,GAAUhZ,GAa9BsgD,MAAO,SAAUjuE,GAEb,SAAc,EAAJA,IAUdkuE,OAAQ,SAAUluE,GAEd,QAAa,EAAJA,IAYb0f,IAAK,WAED,GAAyB,IAArBkH,UAAU70B,QAAwC,gBAAjB60B,WAAU,GAE3C,GAAIpnB,GAAOonB,UAAU,OAIrB,IAAIpnB,GAAOonB,SAGf,KAAK,GAAI90B,GAAI,EAAG4tB,EAAM,EAAGE,EAAMpgB,EAAKzN,OAAY6tB,EAAJ9tB,EAASA,IAE7C0N,EAAK1N,GAAK0N,EAAKkgB,KAEfA,EAAM5tB,EAId;MAAO0N,GAAKkgB,IAahBiO,IAAK,WAED,GAAyB,IAArB/G,UAAU70B,QAAwC,gBAAjB60B,WAAU,GAE3C,GAAIpnB,GAAOonB,UAAU,OAIrB,IAAIpnB,GAAOonB,SAGf,KAAK,GAAI90B,GAAI,EAAG67B,EAAM,EAAG/N,EAAMpgB,EAAKzN,OAAY6tB,EAAJ9tB,EAASA,IAE7C0N,EAAK1N,GAAK0N,EAAKmuB,KAEfA,EAAM77B,EAId,OAAO0N,GAAKmuB,IAWhBwgD,YAAa,SAAUznC,GAEnB,GAAyB,IAArB9f,UAAU70B,QAAwC,gBAAjB60B,WAAU,GAE3C,GAAIpnB,GAAOonB,UAAU,OAIrB,IAAIpnB,GAAOonB,UAAUxb,MAAM,EAG/B,KAAK,GAAItZ,GAAI,EAAG4tB,EAAM,EAAGE,EAAMpgB,EAAKzN,OAAY6tB,EAAJ9tB,EAASA,IAE7C0N,EAAK1N,GAAG40C,GAAYlnC,EAAKkgB,GAAKgnB,KAE9BhnB,EAAM5tB,EAId,OAAO0N,GAAKkgB,GAAKgnB,IAWrB0nC,YAAa,SAAU1nC,GAEnB,GAAyB,IAArB9f,UAAU70B,QAAwC,gBAAjB60B,WAAU,GAE3C,GAAIpnB,GAAOonB,UAAU,OAIrB,IAAIpnB,GAAOonB,UAAUxb,MAAM,EAG/B,KAAK,GAAItZ,GAAI,EAAG67B,EAAM,EAAG/N,EAAMpgB,EAAKzN,OAAY6tB,EAAJ9tB,EAASA,IAE7C0N,EAAK1N,GAAG40C,GAAYlnC,EAAKmuB,GAAK+Y,KAE9B/Y,EAAM77B,EAId,OAAO0N,GAAKmuB,GAAK+Y,IAYrBsqB,UAAW,SAAU3lC,EAAOgjD,GAExB,MAAOA,GAAUhgF,KAAKggC,KAAKhD,GAAQr8B,KAAKC,GAAID,KAAKC,IAAMZ,KAAKggC,KAAKhD,EAAO,KAAM,MAYlFijD,oBAAqB,SAAUxsE,EAAGysE,GAE9B,GAAIx+C,GAAIjuB,EAAE/P,OAAS,EACf02B,EAAIsH,EAAIw+C,EACRz8E,EAAI9C,KAAKq3B,MAAMoC,EAEnB,OAAQ,GAAJ8lD,EAEOlgF,KAAKmgF,OAAO1sE,EAAE,GAAIA,EAAE,GAAI2mB,GAG/B8lD,EAAI,EAEGlgF,KAAKmgF,OAAO1sE,EAAEiuB,GAAIjuB,EAAEiuB,EAAI,GAAIA,EAAItH,GAGpCp6B,KAAKmgF,OAAO1sE,EAAEhQ,GAAIgQ,EAAEhQ,EAAI,EAAIi+B,EAAIA,EAAIj+B,EAAI,GAAI22B,EAAI32B,IAY3D28E,oBAAqB,SAAU3sE,EAAGysE,GAK9B,IAAK,GAHDl7E,GAAI,EACJ2M,EAAI8B,EAAE/P,OAAS,EAEVD,EAAI,EAAQkO,GAALlO,EAAQA,IAEpBuB,GAAKrE,KAAKk+E,IAAI,EAAIqB,EAAGvuE,EAAIlO,GAAK9C,KAAKk+E,IAAIqB,EAAGz8E,GAAKgQ,EAAEhQ,GAAKzD,KAAKqgF,UAAU1uE,EAAGlO,EAG5E,OAAOuB,IAYXs7E,wBAAyB,SAAU7sE,EAAGysE,GAElC,GAAIx+C,GAAIjuB,EAAE/P,OAAS,EACf02B,EAAIsH,EAAIw+C,EACRz8E,EAAI9C,KAAKq3B,MAAMoC,EAEnB,OAAI3mB,GAAE,KAAOA,EAAEiuB,IAEH,EAAJw+C,IAEAz8E,EAAI9C,KAAKq3B,MAAMoC,EAAIsH,GAAK,EAAIw+C,KAGzBlgF,KAAKugF,WAAW9sE,GAAGhQ,EAAI,EAAIi+B,GAAKA,GAAIjuB,EAAEhQ,GAAIgQ,GAAGhQ,EAAI,GAAKi+B,GAAIjuB,GAAGhQ,EAAI,GAAKi+B,GAAItH,EAAI32B,IAI7E,EAAJy8E,EAEOzsE,EAAE,IAAMzT,KAAKugF,WAAW9sE,EAAE,GAAIA,EAAE,GAAIA,EAAE,GAAIA,EAAE,IAAK2mB,GAAK3mB,EAAE,IAG/DysE,EAAI,EAEGzsE,EAAEiuB,IAAM1hC,KAAKugF,WAAW9sE,EAAEiuB,GAAIjuB,EAAEiuB,GAAIjuB,EAAEiuB,EAAI,GAAIjuB,EAAEiuB,EAAI,GAAItH,EAAIsH,GAAKjuB,EAAEiuB,IAGvE1hC,KAAKugF,WAAW9sE,EAAEhQ,EAAIA,EAAI,EAAI,GAAIgQ,EAAEhQ,GAAIgQ,EAAMhQ,EAAI,EAARi+B,EAAYA,EAAIj+B,EAAI,GAAIgQ,EAAMhQ,EAAI,EAARi+B,EAAYA,EAAIj+B,EAAI,GAAI22B,EAAI32B,IAc/G08E,OAAQ,SAAUK,EAAI/8C,EAAI3K,GACtB,OAAQ2K,EAAK+8C,GAAM1nD,EAAI0nD,GAU3BH,UAAW,SAAU1uE,EAAGlO,GACpB,MAAOzD,MAAKygF,UAAU9uE,GAAK3R,KAAKygF,UAAUh9E,GAAKzD,KAAKygF,UAAU9uE,EAAIlO,IAQtEg9E,UAAY,SAAUx8E,GAElB,GAAc,IAAVA,EAEA,MAAO,EAKX,KAFA,GAAIy8E,GAAMz8E,IAEFA,GAEJy8E,GAAOz8E,CAGX,OAAOy8E,IAgBXH,WAAY,SAAUC,EAAI/8C,EAAIC,EAAIi9C,EAAI7nD,GAElC,GAAI8nD,GAAiB,IAAXl9C,EAAK88C,GAAWK,EAAiB,IAAXF,EAAKl9C,GAAWq9C,EAAKhoD,EAAIA,EAAGioD,EAAKjoD,EAAIgoD,CAErE,QAAQ,EAAIr9C,EAAK,EAAIC,EAAKk9C,EAAKC,GAAME,GAAM,GAAKt9C,EAAK,EAAIC,EAAK,EAAIk9C,EAAKC,GAAMC,EAAKF,EAAK9nD,EAAI2K,GAY/FyqC,WAAY,SAAUnpE,EAAGC,GACrB,MAAOrE,MAAKshB,IAAIld,EAAIC,IAUxBg8E,kBAAmB,SAAU/8E,GAGzB,MAAQA,GAAQ,EAAKtD,KAAKo3B,KAAK9zB,GAAStD,KAAKq3B,MAAM/zB,IAiBvDg9E,gBAAiB,SAAUv9E,EAAQw9E,EAAcC,EAAcC,GAEtC33E,SAAjBy3E,IAA8BA,EAAe,GAC5Bz3E,SAAjB03E,IAA8BA,EAAe,GAC/B13E,SAAd23E,IAA2BA,EAAY,EAS3C,KAAK,GAPD57E,GAAM07E,EACNz7E,EAAM07E,EACNE,EAAMD,EAAYzgF,KAAKC,GAAK8C,EAE5B49E,KACAC,KAEKt8E,EAAI,EAAOvB,EAAJuB,EAAYA,IAExBQ,GAAOD,EAAM67E,EACb77E,GAAOC,EAAM47E,EAEbC,EAASr8E,GAAKQ,EACd87E,EAASt8E,GAAKO,CAIlB,QAASA,IAAK+7E,EAAU97E,IAAK67E,EAAU59E,OAAQA,IAcnDi5B,SAAU,SAAUjwB,EAAIC,EAAIC,EAAIC,GAE5B,GAAIc,GAAKjB,EAAKE,EACViB,EAAKlB,EAAKE,CAEd,OAAOlM,MAAKiF,KAAK+H,EAAKA,EAAKE,EAAKA,IAepC2zE,WAAY,SAAU90E,EAAIC,EAAIC,EAAIC,GAE9B,GAAIc,GAAKjB,EAAKE,EACViB,EAAKlB,EAAKE,CAEd,OAAOc,GAAKA,EAAKE,EAAKA,GAe1B4zE,YAAa,SAAU/0E,EAAIC,EAAIC,EAAIC,EAAIgyE,GAInC,MAFYp1E,UAARo1E,IAAqBA,EAAM,GAExBl+E,KAAKiF,KAAKjF,KAAKk+E,IAAIjyE,EAAKF,EAAImyE,GAAOl+E,KAAKk+E,IAAIhyE,EAAKF,EAAIkyE,KAahE59C,MAAO,SAAUv7B,EAAGX,EAAGC,GACnB,MAAaD,GAAJW,EAAUX,EAAQW,EAAIV,EAAMA,EAAIU,GAY7Cg8E,YAAa,SAAUh8E,EAAGX,GACtB,MAAWA,GAAJW,EAAQX,EAAIW,GAavBi8E,OAAQ,SAAU58E,EAAGC,EAAGq/B,GACpB,MAAQ1jC,MAAKshB,IAAIld,EAAIC,IAAMq/B,GAc/Bu9C,UAAW,SAAUl8E,EAAG0b,EAAIG,EAAIF,EAAIG,GAChC,MAAOH,IAAO3b,EAAI0b,IAASI,EAAKH,IAASE,EAAKH,IAYlDygE,WAAY,SAAUn8E,EAAG2rB,EAAKiO,GAE1B,MADA55B,GAAI/E,KAAK2+B,IAAI,EAAG3+B,KAAK0wB,IAAI,GAAI3rB,EAAI2rB,IAAQiO,EAAMjO,KACxC3rB,EAAIA,GAAK,EAAI,EAAIA,IAY5Bo8E,aAAc,SAAUp8E,EAAG2rB,EAAKiO,GAE5B,MADA55B,GAAI/E,KAAK2+B,IAAI,EAAG3+B,KAAK0wB,IAAI,GAAI3rB,EAAI2rB,IAAQiO,EAAMjO,KACxC3rB,EAAIA,EAAIA,GAAKA,GAAS,EAAJA,EAAQ,IAAM,KAY3CgM,KAAM,SAAUhM,GACZ,MAAa,GAAJA,EAAU,GAASA,EAAI,EAAM,EAAI,GAY9Cq8E,QAAS,SAAUh9E,EAAGC,EAAGokE,GAIrB,MAFa3/D,UAAT2/D,IAAsBA,EAAO,GAE7BrkE,EAAIC,GAAKokE,EAAOpkE,EAET,EAEEokE,EAAJrkE,GAAYqkE,EAAOrkE,EAEjB,GAICA,EAAIqkE,GAAQpkE,GAOhC,IAAIg9E,GAAwBrhF,KAAKC,GAAK,IAClCqhF,EAAwB,IAAMthF,KAAKC,EASvCkzB,GAAOnzB,KAAK68B,SAAW,SAAmB0kD,GACtC,MAAOA,GAAUF,GAUrBluD,EAAOnzB,KAAKwgC,SAAW,SAAmB6+C,GACtC,MAAOA,GAAUiC,GAyBrBnuD,EAAO+2B,oBAAsB,SAAUs3B,GAErB14E,SAAV04E,IAAuBA,MAM3BniF,KAAKiF,EAAI,EAMTjF,KAAKoiF,GAAK,EAMVpiF,KAAKsvB,GAAK,EAMVtvB,KAAKuvB,GAAK,EAEVvvB,KAAKqiF,IAAIF,IAIbruD,EAAO+2B,oBAAoBxnD,WASvBimC,IAAK,WAED,GAAIxQ,GAAI,QAAU94B,KAAKoiF,GAAc,uBAATpiF,KAAKiF,CAOjC,OALAjF,MAAKiF,EAAQ,EAAJ6zB,EACT94B,KAAKoiF,GAAKpiF,KAAKsvB,GACftvB,KAAKsvB,GAAKtvB,KAAKuvB,GACfvvB,KAAKuvB,GAAKuJ,EAAI94B,KAAKiF,EAEZjF,KAAKuvB,IAWhB8yD,IAAK,SAAUF,GAQX,GALAniF,KAAKoiF,GAAKpiF,KAAK01C,KAAK,KACpB11C,KAAKsvB,GAAKtvB,KAAK01C,KAAK11C,KAAKoiF,IACzBpiF,KAAKuvB,GAAKvvB,KAAK01C,KAAK11C,KAAKsvB,IACzBtvB,KAAKiF,EAAI,EAEJk9E,EAML,IAAK,GAAI1+E,GAAI,EAAGA,EAAI0+E,EAAMz+E,QAAuB,MAAZy+E,EAAM1+E,GAAaA,IACxD,CACI,GAAIunD,GAAOm3B,EAAM1+E,EAEjBzD,MAAKoiF,IAAMpiF,KAAK01C,KAAKsV,GACrBhrD,KAAKoiF,OAASpiF,KAAKoiF,GAAK,GACxBpiF,KAAKsvB,IAAMtvB,KAAK01C,KAAKsV,GACrBhrD,KAAKsvB,OAAStvB,KAAKsvB,GAAK,GACxBtvB,KAAKuvB,IAAMvvB,KAAK01C,KAAKsV,GACrBhrD,KAAKuvB,OAASvvB,KAAKuvB,GAAK,KAahCmmB,KAAM,SAAUvkC,GAEZ,GAAIkZ,GAAG5mB,EAAGkO,CAIV,KAHAA,EAAI,WACJR,EAAOA,EAAKjB,WAEPzM,EAAI,EAAGA,EAAI0N,EAAKzN,OAAQD,IACzBkO,GAAKR,EAAKmxE,WAAW7+E,GACrB4mB,EAAI,mBAAsB1Y,EAC1BA,EAAI0Y,IAAM,EACVA,GAAK1Y,EACL0Y,GAAK1Y,EACLA,EAAI0Y,IAAM,EACVA,GAAK1Y,EACLA,GAAS,WAAJ0Y,CAGT,OAAmB,yBAAX1Y,IAAM,IAUlB4wE,QAAS,WAEL,MAA8B,YAAvBviF,KAAKspC,IAAIniC,MAAMnH,OAU1BwiF,KAAM,WAEF,MAAOxiF,MAAKspC,IAAIniC,MAAMnH,MAAgD,wBAAhB,QAAvBA,KAAKspC,IAAIniC,MAAMnH,MAAmB,IAUrEyiF,KAAM,WAEF,MAAOziF,MAAKuiF,UAAYviF,KAAKwiF,QAYjCE,eAAgB,SAAUrxD,EAAKiO,GAE3B,MAAO3+B,MAAKq3B,MAAMh4B,KAAK2iF,YAAY,EAAGrjD,EAAMjO,EAAM,GAAKA,IAa3DoqB,QAAS,SAAUpqB,EAAKiO,GAEpB,MAAOt/B,MAAK0iF,eAAerxD,EAAKiO,IAYpCqjD,YAAa,SAAUtxD,EAAKiO,GAExB,MAAOt/B,MAAKwiF,QAAUljD,EAAMjO,GAAOA,GAUvCuxD,OAAQ,WAEJ,MAAO,GAAI,EAAI5iF,KAAKwiF,QAUxB1kC,KAAM,WAEF,GAAI/4C,GAAI,GACJC,EAAI,EAER,KAAKA,EAAID,EAAI,GAAIA,IAAM,GAAIC,IAAKD,EAAI,EAAQ,EAAJA,EAAM,GAAO,GAAFA,EAAO,EAAE/E,KAAKwiF,QAAY,GAAFz9E,EAAO,GAAK,GAAK,GAAGmL,SAAS,IAAM,KAI9G,MAAOlL,IAWX69E,KAAM,SAAUC,GAEZ,MAAOA,GAAI9iF,KAAK0iF,eAAe,EAAGI,EAAIp/E,OAAS,KAWnDq/E,aAAc,SAAUD,GAEpB,MAAOA,MAAOniF,KAAKk+E,IAAI7+E,KAAKwiF,OAAQ,IAAMM,EAAIp/E,OAAS,GAAK,MAYhEs/E,UAAW,SAAU3xD,EAAKiO,GAEtB,MAAOt/B,MAAK2iF,YAAYtxD,GAAO,UAAciO,GAAO,YAUxDtC,MAAO,WAEH,MAAOh9B,MAAK0iF,eAAe,KAAM,OAMzC5uD,EAAO+2B,oBAAoBxnD,UAAUC,YAAcwwB,EAAO+2B,oBAwB1D/2B,EAAOmvD,SAAW,SAASv9E,EAAGC,EAAGkB,EAAOC,EAAQo8E,EAAYC,EAAWl8D,GAMnEjnB,KAAKkjF,WAAa,GAMlBljF,KAAKmjF,UAAY,EAKjBnjF,KAAKinB,MAAQ,EAKbjnB,KAAK0G,UAKL1G,KAAKojF,WAKLpjF,KAAKqjF,SAMLrjF,KAAKsjF,UAELtjF,KAAKyc,MAAM/W,EAAGC,EAAGkB,EAAOC,EAAQo8E,EAAYC,EAAWl8D,IAI3D6M,EAAOmvD,SAAS5/E,WAcZoZ,MAAO,SAAU/W,EAAGC,EAAGkB,EAAOC,EAAQo8E,EAAYC,EAAWl8D,GAEzDjnB,KAAKkjF,WAAaA,GAAc,GAChCljF,KAAKmjF,UAAYA,GAAa,EAC9BnjF,KAAKinB,MAAQA,GAAS,EAEtBjnB,KAAK0G,QACDhB,EAAG/E,KAAKi8B,MAAMl3B,GACdC,EAAGhF,KAAKi8B,MAAMj3B,GACdkB,MAAOA,EACPC,OAAQA,EACRy8E,SAAU5iF,KAAKq3B,MAAMnxB,EAAQ,GAC7B28E,UAAW7iF,KAAKq3B,MAAMlxB,EAAS,GAC/B8zB,MAAOj6B,KAAKi8B,MAAMl3B,GAAK/E,KAAKq3B,MAAMnxB,EAAQ,GAC1Cw2B,OAAQ18B,KAAKi8B,MAAMj3B,GAAKhF,KAAKq3B,MAAMlxB,EAAS,IAGhD9G,KAAKojF,QAAQ1/E,OAAS,EACtB1D,KAAKqjF,MAAM3/E,OAAS,GAUxB+/E,SAAU,SAAU3oC,GAEhBA,EAAMliB,QAAQ54B,KAAK0jF,gBAAiB1jF,MAAM,IAU9C0jF,gBAAiB,SAAU/5D,GAEnBA,EAAOusB,MAAQvsB,EAAOsoB,QAEtBjyC,KAAK2jF,OAAOh6D,EAAOusB,OAU3B3c,MAAO,WAGHv5B,KAAKqjF,MAAM,GAAK,GAAIvvD,GAAOmvD,SAASjjF,KAAK0G,OAAOk0B,MAAO56B,KAAK0G,OAAOf,EAAG3F,KAAK0G,OAAO68E,SAAUvjF,KAAK0G,OAAO88E,UAAWxjF,KAAKkjF,WAAYljF,KAAKmjF,UAAYnjF,KAAKinB,MAAQ,GAGlKjnB,KAAKqjF,MAAM,GAAK,GAAIvvD,GAAOmvD,SAASjjF,KAAK0G,OAAOhB,EAAG1F,KAAK0G,OAAOf,EAAG3F,KAAK0G,OAAO68E,SAAUvjF,KAAK0G,OAAO88E,UAAWxjF,KAAKkjF,WAAYljF,KAAKmjF,UAAYnjF,KAAKinB,MAAQ,GAG9JjnB,KAAKqjF,MAAM,GAAK,GAAIvvD,GAAOmvD,SAASjjF,KAAK0G,OAAOhB,EAAG1F,KAAK0G,OAAO22B,OAAQr9B,KAAK0G,OAAO68E,SAAUvjF,KAAK0G,OAAO88E,UAAWxjF,KAAKkjF,WAAYljF,KAAKmjF,UAAYnjF,KAAKinB,MAAQ,GAGnKjnB,KAAKqjF,MAAM,GAAK,GAAIvvD,GAAOmvD,SAASjjF,KAAK0G,OAAOk0B,MAAO56B,KAAK0G,OAAO22B,OAAQr9B,KAAK0G,OAAO68E,SAAUvjF,KAAK0G,OAAO88E,UAAWxjF,KAAKkjF,WAAYljF,KAAKmjF,UAAYnjF,KAAKinB,MAAQ,IAU3K08D,OAAQ,SAAUztC,GAEd,GACIxtC,GADAjF,EAAI,CAIR,IAAqB,MAAjBzD,KAAKqjF,MAAM,KAEX36E,EAAQ1I,KAAKo3C,SAASlB,GAER,KAAVxtC,GAGA,WADA1I,MAAKqjF,MAAM36E,GAAOi7E,OAAOztC,EAOjC,IAFAl2C,KAAKojF,QAAQ7+E,KAAK2xC,GAEdl2C,KAAKojF,QAAQ1/E,OAAS1D,KAAKkjF,YAAcljF,KAAKinB,MAAQjnB,KAAKmjF,UAS3D,IANqB,MAAjBnjF,KAAKqjF,MAAM,IAEXrjF,KAAKu5B,QAIF91B,EAAIzD,KAAKojF,QAAQ1/E,QAEpBgF,EAAQ1I,KAAKo3C,SAASp3C,KAAKojF,QAAQ3/E,IAErB,KAAViF,EAGA1I,KAAKqjF,MAAM36E,GAAOi7E,OAAO3jF,KAAKojF,QAAQx6E,OAAOnF,EAAG,GAAG,IAInDA,KAchB2zC,SAAU,SAAU5lB,GAGhB,GAAI9oB,GAAQ,EA8BZ,OA5BI8oB,GAAK9rB,EAAI1F,KAAK0G,OAAOk0B,OAASpJ,EAAKoJ,MAAQ56B,KAAK0G,OAAOk0B,MAEnDpJ,EAAK7rB,EAAI3F,KAAK0G,OAAO22B,QAAU7L,EAAK6L,OAASr9B,KAAK0G,OAAO22B,OAGzD30B,EAAQ,EAEH8oB,EAAK7rB,EAAI3F,KAAK0G,OAAO22B,SAG1B30B,EAAQ,GAGP8oB,EAAK9rB,EAAI1F,KAAK0G,OAAOk0B,QAGtBpJ,EAAK7rB,EAAI3F,KAAK0G,OAAO22B,QAAU7L,EAAK6L,OAASr9B,KAAK0G,OAAO22B,OAGzD30B,EAAQ,EAEH8oB,EAAK7rB,EAAI3F,KAAK0G,OAAO22B,SAG1B30B,EAAQ,IAITA,GAWXk7E,SAAU,SAAUp1E,GAEhB,GAAIA,YAAkBslB,GAAO9wB,UAEzB,GAAI6gF,GAAgB7jF,KAAKojF,QAErB16E,EAAQ1I,KAAKo3C,SAAS5oC,OAG9B,CACI,IAAKA,EAAO0nC,KAER,MAAOl2C,MAAKsjF,MAGhB,IAAIO,GAAgB7jF,KAAKojF,QAErB16E,EAAQ1I,KAAKo3C,SAAS5oC,EAAO0nC,MAoBrC,MAjBIl2C,MAAKqjF,MAAM,KAGG,KAAV36E,EAEAm7E,EAAgBA,EAAchlE,OAAO7e,KAAKqjF,MAAM36E,GAAOk7E,SAASp1E,KAKhEq1E,EAAgBA,EAAchlE,OAAO7e,KAAKqjF,MAAM,GAAGO,SAASp1E,IAC5Dq1E,EAAgBA,EAAchlE,OAAO7e,KAAKqjF,MAAM,GAAGO,SAASp1E,IAC5Dq1E,EAAgBA,EAAchlE,OAAO7e,KAAKqjF,MAAM,GAAGO,SAASp1E,IAC5Dq1E,EAAgBA,EAAchlE,OAAO7e,KAAKqjF,MAAM,GAAGO,SAASp1E,MAI7Dq1E,GAQXz/D,MAAO,WAEHpkB,KAAKojF,QAAQ1/E,OAAS,CAItB,KAFA,GAAID,GAAIzD,KAAKqjF,MAAM3/E,OAEZD,KAEHzD,KAAKqjF,MAAM5/E,GAAG2gB,QACdpkB,KAAKqjF,MAAMz6E,OAAOnF,EAAG,EAGzBzD,MAAKqjF,MAAM3/E,OAAS,IAK5BowB,EAAOmvD,SAAS5/E,UAAUC,YAAcwwB,EAAOmvD,QAiD/C,IAAIa,GAAU,YAEdhwD,GAAO63B,IAAMm4B,EAEbhwD,EAAO63B,IAAItoD,WACP0gF,YAAY,EAEZC,YAAaF,EACbG,gBAAiBH,EACjBI,kBAAmBJ,EACnBK,eAAgBL,EAChBM,UAAWN,GAGfhwD,EAAO63B,IAAItoD,UAAUC,YAAcwwB,EAAO63B,IAa1C73B,EAAOy3B,aAAe,aAEtBz3B,EAAOy3B,aAAaloD,UAAUijC,OAAS,aAEvCxS,EAAOy3B,aAAaloD,UAAUC,YAAcwwB,EAAOy3B,aAoBnDz3B,EAAOw3B,KAAO,SAAU1mD,GAMpB5E,KAAK4E,KAAOA,EAOZ5E,KAAKkpC,KAAO,EAOZlpC,KAAKqkF,SAAW,EAchBrkF,KAAK8qD,IAAM,EAcX9qD,KAAK4sD,QAAU,EAaf5sD,KAAKskF,UAAY,EAajBtkF,KAAK0tE,eAAiB,EAOtB1tE,KAAK0oE,iBAAmB,EAUxB1oE,KAAKwsD,WAAa,GAWlBxsD,KAAKukF,aAAe,KASpBvkF,KAAK0sD,WAAa,EAOlB1sD,KAAKwkF,gBAAiB,EAStBxkF,KAAKykF,OAAS,EASdzkF,KAAK0kF,IAAM,EASX1kF,KAAK2kF,OAAS,IASd3kF,KAAK4kF,OAAS,EAUd5kF,KAAK6kF,MAAQ,IASb7kF,KAAK8kF,MAAQ,EAOb9kF,KAAK+kF,cAAgB,EAMrB/kF,KAAKw9E,WAAa,EAMlBx9E,KAAKglF,aAAe,EAMpBhlF,KAAKo2C,OAAS,GAAItiB,GAAOmxD,MAAMjlF,KAAK4E,MAAM,GAM1C5E,KAAKklF,YAAc,EAMnBllF,KAAKmlF,oBAAsB,EAM3BnlF,KAAKolF,SAAW,EAMhBplF,KAAKqlF,gBAAkB,EAMvBrlF,KAAKslF,cAAgB,EAMrBtlF,KAAKulF,cAAe,EAMpBvlF,KAAKwlF,YAIT1xD,EAAOw3B,KAAKjoD,WAQRioC,KAAM,WAEFtrC,KAAKolF,SAAWn1C,KAAK6a,MACrB9qD,KAAKkpC,KAAO+G,KAAK6a,MACjB9qD,KAAKo2C,OAAOhrC,SAWhBw1B,IAAK,SAAU6kD,GAIX,MAFAzlF,MAAKwlF,QAAQjhF,KAAKkhF,GAEXA,GAWXr9E,OAAQ,SAAUs9E,GAEMj8E,SAAhBi8E,IAA6BA,GAAc,EAE/C,IAAID,GAAQ,GAAI3xD,GAAOmxD,MAAMjlF,KAAK4E,KAAM8gF,EAIxC,OAFA1lF,MAAKwlF,QAAQjhF,KAAKkhF,GAEXA,GASX54C,UAAW,WAEP,IAAK,GAAIppC,GAAI,EAAGA,EAAIzD,KAAKwlF,QAAQ9hF,OAAQD,IAErCzD,KAAKwlF,QAAQ/hF,GAAGF,SAGpBvD,MAAKwlF,WAELxlF,KAAKo2C,OAAOvJ,aAWhBvG,OAAQ,SAAU4C,GAEVlpC,KAAK4E,KAAK6kD,IAAIyzB,cAEdl9E,KAAKq9E,iBAAiBn0C,GAItBlpC,KAAKs9E,UAAUp0C,GAGflpC,KAAKwkF,gBAELxkF,KAAK2lF,uBAIJ3lF,KAAK4E,KAAK+kC,SAGX3pC,KAAKo2C,OAAO9P,OAAOtmC,KAAKkpC,MAEpBlpC,KAAKwlF,QAAQ9hF,QAEb1D,KAAK4lF,iBAcjBvI,iBAAkB,SAAUn0C,GAGxB,GAAI28C,GAAkB7lF,KAAKkpC,IAG3BlpC,MAAKkpC,KAAOA,EAGZlpC,KAAKskF,UAAYtkF,KAAKkpC,KAAO28C,EAG7B7lF,KAAKqkF,SAAWrkF,KAAK8qD,IAGrB9qD,KAAK8qD,IAAM5hB,EAGXlpC,KAAK4sD,QAAU5sD,KAAK8qD,IAAM9qD,KAAKqkF,SAG/BrkF,KAAKw9E,WAAa78E,KAAKq3B,MAAMr3B,KAAK2+B,IAAI,EAAI,IAASt/B,KAAKwsD,YAAexsD,KAAK8lF,iBAAmB58C,KAG/FlpC,KAAK8lF,iBAAmB58C,EAAOlpC,KAAKw9E,WAGpCx9E,KAAK0tE,eAAiB,EAAI1tE,KAAKwsD,WAE/BxsD,KAAK0oE,iBAAyC,IAAtB1oE,KAAK0tE,gBAYjC4P,UAAW,SAAUp0C,GAGjB,GAAI28C,GAAkB7lF,KAAKkpC,IAG3BlpC,MAAKkpC,KAAO+G,KAAK6a,MAGjB9qD,KAAKskF,UAAYtkF,KAAKkpC,KAAO28C,EAG7B7lF,KAAKqkF,SAAWrkF,KAAK8qD,IAGrB9qD,KAAK8qD,IAAM5hB,EAGXlpC,KAAK4sD,QAAU5sD,KAAK8qD,IAAM9qD,KAAKqkF,SAG/BrkF,KAAK0tE,eAAiB,EAAI1tE,KAAKwsD,WAE/BxsD,KAAK0oE,iBAAyC,IAAtB1oE,KAAK0tE,gBAWjCkY,aAAc,WAMV,IAHA,GAAIniF,GAAI,EACJ8tB,EAAMvxB,KAAKwlF,QAAQ9hF,OAEZ6tB,EAAJ9tB,GAECzD,KAAKwlF,QAAQ/hF,GAAG6iC,OAAOtmC,KAAKkpC,MAE5BzlC,KAKAzD,KAAKwlF,QAAQ58E,OAAOnF,EAAG,GACvB8tB,MAaZo0D,qBAAsB,WAGlB3lF,KAAKklF,cACLllF,KAAKmlF,qBAAuBnlF,KAAK4sD,QAG7B5sD,KAAKklF,aAAiC,EAAlBllF,KAAKwsD,aAGzBxsD,KAAKukF,aAAiF,EAAlE5jF,KAAKq3B,MAAM,KAAOh4B,KAAKmlF,oBAAsBnlF,KAAKklF,cACtEllF,KAAKklF,YAAc,EACnBllF,KAAKmlF,oBAAsB,GAG/BnlF,KAAK6kF,MAAQlkF,KAAK0wB,IAAIrxB,KAAK6kF,MAAO7kF,KAAK4sD,SACvC5sD,KAAK8kF,MAAQnkF,KAAK2+B,IAAIt/B,KAAK8kF,MAAO9kF,KAAK4sD,SAEvC5sD,KAAKykF,SAEDzkF,KAAK8qD,IAAM9qD,KAAKqlF,gBAAkB,MAElCrlF,KAAK0kF,IAAM/jF,KAAKi8B,MAAqB,IAAd58B,KAAKykF,QAAkBzkF,KAAK8qD,IAAM9qD,KAAKqlF,kBAC9DrlF,KAAK2kF,OAAShkF,KAAK0wB,IAAIrxB,KAAK2kF,OAAQ3kF,KAAK0kF,KACzC1kF,KAAK4kF,OAASjkF,KAAK2+B,IAAIt/B,KAAK4kF,OAAQ5kF,KAAK0kF,KACzC1kF,KAAKqlF,gBAAkBrlF,KAAK8qD,IAC5B9qD,KAAKykF,OAAS,IAWtBxwC,WAAY,WAERj0C,KAAKslF,cAAgBr1C,KAAK6a,MAE1B9qD,KAAKo2C,OAAO5K,OAIZ,KAFA,GAAI/nC,GAAIzD,KAAKwlF,QAAQ9hF,OAEdD,KAEHzD,KAAKwlF,QAAQ/hF,GAAGsiF,UAWxB7xC,YAAa,WAGTl0C,KAAKkpC,KAAO+G,KAAK6a,MAEjB9qD,KAAK+kF,cAAgB/kF,KAAKkpC,KAAOlpC,KAAKslF,cAEtCtlF,KAAKo2C,OAAO1K,QAIZ,KAFA,GAAIjoC,GAAIzD,KAAKwlF,QAAQ9hF,OAEdD,KAEHzD,KAAKwlF,QAAQ/hF,GAAGuiF,WAWxB90C,oBAAqB,WACjB,MAAqC,MAA7BlxC,KAAKkpC,KAAOlpC,KAAKolF,WAU7Ba,aAAc,SAAUC,GACpB,MAAOlmF,MAAKkpC,KAAOg9C,GAUvBC,oBAAqB,SAAUD,GAC3B,MAA6B,MAArBlmF,KAAKkpC,KAAOg9C,IAQxBzpE,MAAO,WAEHzc,KAAKolF,SAAWplF,KAAKkpC,KACrBlpC,KAAK6sC,cAMb/Y,EAAOw3B,KAAKjoD,UAAUC,YAAcwwB,EAAOw3B,KAsB3Cx3B,EAAOmxD,MAAQ,SAAUrgF,EAAM8gF,GAEPj8E,SAAhBi8E,IAA6BA,GAAc,GAM/C1lF,KAAK4E,KAAOA,EAUZ5E,KAAKomF,SAAU,EAMfpmF,KAAK0lF,YAAcA,EAOnB1lF,KAAKqmF,SAAU,EAMfrmF,KAAK4sD,QAAU,EAKf5sD,KAAKo2C,UASLp2C,KAAKsmF,WAAa,GAAIxyD,GAAO0W,OAO7BxqC,KAAKumF,SAAW,EAKhBvmF,KAAKwmF,QAAU,IAOfxmF,KAAK2pC,QAAS,EAMd3pC,KAAKmqD,aAAc,EAOnBnqD,KAAKolF,SAAW,EAMhBplF,KAAKslF,cAAgB,EAMrBtlF,KAAKymF,YAAc,EAMnBzmF,KAAK0mF,KAAOz2C,KAAK6a,MAMjB9qD,KAAK4xC,KAAO,EAMZ5xC,KAAK2mF,QAAU,EAMf3mF,KAAK6xC,GAAK,EAMV7xC,KAAK4mF,MAAQ,EAMb5mF,KAAK6mF,SAAW,GASpB/yD,EAAOmxD,MAAM6B,OAAS,IAOtBhzD,EAAOmxD,MAAM8B,OAAS,IAOtBjzD,EAAOmxD,MAAM+B,KAAO,IAOpBlzD,EAAOmxD,MAAMgC,QAAU,IAEvBnzD,EAAOmxD,MAAM5hF,WAiBT+E,OAAQ,SAAUo5D,EAAOuB,EAAMmkB,EAAavuC,EAAU3M,EAAiB3T,GAEnEmpC,EAAQ7gE,KAAKi8B,MAAM4kC,EAEnB,IAAI2lB,GAAO3lB,CAIP2lB,IAFc,IAAdnnF,KAAK0mF,KAEG1mF,KAAK4E,KAAKskC,KAAKA,KAIflpC,KAAK0mF,IAGjB,IAAIxzC,GAAQ,GAAIpf,GAAOszD,WAAWpnF,KAAMwhE,EAAO2lB,EAAMD,EAAankB,EAAMpqB,EAAU3M,EAAiB3T,EAQnG,OANAr4B,MAAKo2C,OAAO7xC,KAAK2uC,GAEjBlzC,KAAK25C,QAEL35C,KAAKqmF,SAAU,EAERnzC,GAmBXtS,IAAK,SAAU4gC,EAAO7oB,EAAU3M,GAE5B,MAAOhsC,MAAKoI,OAAOo5D,GAAO,EAAO,EAAG7oB,EAAU3M,EAAiBvrC,MAAM4C,UAAUuF,OAAO9C,KAAKyyB,UAAW,KAoB1GjgB,OAAQ,SAAUkpD,EAAO0lB,EAAavuC,EAAU3M,GAE5C,MAAOhsC,MAAKoI,OAAOo5D,GAAO,EAAO0lB,EAAavuC,EAAU3M,EAAiBvrC,MAAM4C,UAAUuF,OAAO9C,KAAKyyB,UAAW,KAmBpHwqC,KAAM,SAAUvB,EAAO7oB,EAAU3M,GAE7B,MAAOhsC,MAAKoI,OAAOo5D,GAAO,EAAM,EAAG7oB,EAAU3M,EAAiBvrC,MAAM4C,UAAUuF,OAAO9C,KAAKyyB,UAAW,KASzGntB,MAAO,SAAUo2D,GAEb,IAAIxhE,KAAKomF,QAAT,CAKApmF,KAAKolF,SAAWplF,KAAK4E,KAAKskC,KAAKA,MAAQs4B,GAAS,GAEhDxhE,KAAKomF,SAAU,CAEf,KAAK,GAAI3iF,GAAI,EAAGA,EAAIzD,KAAKo2C,OAAO1yC,OAAQD,IAEpCzD,KAAKo2C,OAAO3yC,GAAG0jF,KAAOnnF,KAAKo2C,OAAO3yC,GAAG+9D,MAAQxhE,KAAKolF,WAU1Dp6E,KAAM,SAAUq8E,GAEZrnF,KAAKomF,SAAU,EAEK38E,SAAhB49E,IAA6BA,GAAc,GAE3CA,IAEArnF,KAAKo2C,OAAO1yC,OAAS,IAU7BqoC,OAAQ,SAAUmH,GAEd,IAAK,GAAIzvC,GAAI,EAAGA,EAAIzD,KAAKo2C,OAAO1yC,OAAQD,IAEpC,GAAIzD,KAAKo2C,OAAO3yC,KAAOyvC,EAGnB,MADAlzC,MAAKo2C,OAAO3yC,GAAG6jF,eAAgB,GACxB,CAIf,QAAO,GAUX3tC,MAAO,WAEC35C,KAAKo2C,OAAO1yC,OAAS,IAGrB1D,KAAKo2C,OAAOsD,KAAK15C,KAAK+5C,aAEtB/5C,KAAKumF,SAAWvmF,KAAKo2C,OAAO,GAAG+wC,OAUvCptC,YAAa,SAAUh1C,EAAGC,GAEtB,MAAID,GAAEoiF,KAAOniF,EAAEmiF,KAEJ,GAEFpiF,EAAEoiF,KAAOniF,EAAEmiF,KAET,EAGJ,GAUXI,mBAAoB,WAIhB,IAFAvnF,KAAK6xC,GAAK7xC,KAAKo2C,OAAO1yC,OAEf1D,KAAK6xC,MAEJ7xC,KAAKo2C,OAAOp2C,KAAK6xC,IAAIy1C,eAErBtnF,KAAKo2C,OAAOxtC,OAAO5I,KAAK6xC,GAAI,EAIpC7xC,MAAK4xC,KAAO5xC,KAAKo2C,OAAO1yC,OACxB1D,KAAK6xC,GAAK,GAYdvL,OAAQ,SAAU4C,GAEd,GAAIlpC,KAAK2pC,OAEL,OAAO,CAoBX,IAjBA3pC,KAAK4sD,QAAU1jB,EAAOlpC,KAAK0mF,KAC3B1mF,KAAK0mF,KAAOx9C,EAGRlpC,KAAK4sD,QAAU5sD,KAAKwmF,SAKpBxmF,KAAKwnF,aAAat+C,EAAOlpC,KAAK4sD,SAGlC5sD,KAAK2mF,QAAU,EAGf3mF,KAAKunF,qBAEDvnF,KAAKomF,SAAWpmF,KAAK0mF,MAAQ1mF,KAAKumF,UAAYvmF,KAAK4xC,KAAO,EAC9D,CACI,KAAO5xC,KAAK6xC,GAAK7xC,KAAK4xC,MAAQ5xC,KAAKomF,SAE3BpmF,KAAK0mF,MAAQ1mF,KAAKo2C,OAAOp2C,KAAK6xC,IAAIs1C,OAASnnF,KAAKo2C,OAAOp2C,KAAK6xC,IAAIy1C,eAGhEtnF,KAAK6mF,SAAY7mF,KAAK0mF,KAAO1mF,KAAKo2C,OAAOp2C,KAAK6xC,IAAI2vB,OAAUxhE,KAAK0mF,KAAO1mF,KAAKo2C,OAAOp2C,KAAK6xC,IAAIs1C,MAEzFnnF,KAAK6mF,SAAW,IAEhB7mF,KAAK6mF,SAAW7mF,KAAK0mF,KAAO1mF,KAAKo2C,OAAOp2C,KAAK6xC,IAAI2vB,OAGjDxhE,KAAKo2C,OAAOp2C,KAAK6xC,IAAIkxB,QAAS,GAE9B/iE,KAAKo2C,OAAOp2C,KAAK6xC,IAAIs1C,KAAOnnF,KAAK6mF,SACjC7mF,KAAKo2C,OAAOp2C,KAAK6xC,IAAI8G,SAASxxC,MAAMnH,KAAKo2C,OAAOp2C,KAAK6xC,IAAI7F,gBAAiBhsC,KAAKo2C,OAAOp2C,KAAK6xC,IAAIxZ,OAE1Fr4B,KAAKo2C,OAAOp2C,KAAK6xC,IAAIq1C,YAAc,GAExClnF,KAAKo2C,OAAOp2C,KAAK6xC,IAAIq1C,cACrBlnF,KAAKo2C,OAAOp2C,KAAK6xC,IAAIs1C,KAAOnnF,KAAK6mF,SACjC7mF,KAAKo2C,OAAOp2C,KAAK6xC,IAAI8G,SAASxxC,MAAMnH,KAAKo2C,OAAOp2C,KAAK6xC,IAAI7F,gBAAiBhsC,KAAKo2C,OAAOp2C,KAAK6xC,IAAIxZ,QAI/Fr4B,KAAK2mF,UACL3mF,KAAKo2C,OAAOp2C,KAAK6xC,IAAIy1C,eAAgB,EACrCtnF,KAAKo2C,OAAOp2C,KAAK6xC,IAAI8G,SAASxxC,MAAMnH,KAAKo2C,OAAOp2C,KAAK6xC,IAAI7F,gBAAiBhsC,KAAKo2C,OAAOp2C,KAAK6xC,IAAIxZ,OAGnGr4B,KAAK6xC,IAST7xC,MAAKo2C,OAAO1yC,OAAS1D,KAAK2mF,QAE1B3mF,KAAK25C,SAIL35C,KAAKqmF,SAAU,EACfrmF,KAAKsmF,WAAW75C,SAASzsC,OAIjC,MAAIA,MAAKqmF,SAAWrmF,KAAK0lF,aAEd,GAIA,GASfl6C,MAAO,WAEExrC,KAAKomF,UAKVpmF,KAAKmqD,aAAc,EAEfnqD,KAAK2pC,SAKT3pC,KAAKslF,cAAgBtlF,KAAK4E,KAAKskC,KAAKA,KAEpClpC,KAAK2pC,QAAS,KASlBo8C,OAAQ,YAEA/lF,KAAK2pC,QAAW3pC,KAAKomF,UAKzBpmF,KAAKslF,cAAgBtlF,KAAK4E,KAAKskC,KAAKA,KAEpClpC,KAAK2pC,QAAS,IAUlB69C,aAAc,SAAUC,GAEpB,IAAK,GAAIhkF,GAAI,EAAGA,EAAIzD,KAAKo2C,OAAO1yC,OAAQD,IAEpC,IAAKzD,KAAKo2C,OAAO3yC,GAAG6jF,cACpB,CAEI,GAAIxuD,GAAI94B,KAAKo2C,OAAO3yC,GAAG0jF,KAAOM,CAEtB,GAAJ3uD,IAEAA,EAAI,GAIR94B,KAAKo2C,OAAO3yC,GAAG0jF,KAAOnnF,KAAK0mF,KAAO5tD,EAI1C,GAAI5zB,GAAIlF,KAAKumF,SAAWkB,CAIpBznF,MAAKumF,SAFD,EAAJrhF,EAEgBlF,KAAK0mF,KAIL1mF,KAAK0mF,KAAOxhF,GAUpCwmC,OAAQ,WAEJ,GAAK1rC,KAAK2pC,OAAV,CAKA,GAAImhB,GAAM9qD,KAAK4E,KAAKskC,KAAKA,IACzBlpC,MAAKymF,aAAe37B,EAAM9qD,KAAK0mF,KAC/B1mF,KAAK0mF,KAAO57B,EAEZ9qD,KAAKwnF,aAAaxnF,KAAKslF,eAEvBtlF,KAAK2pC,QAAS,EACd3pC,KAAKmqD,aAAc,IASvB67B,QAAS,WAEDhmF,KAAKmqD,aAMLnqD,KAAK0rC,UAWbmB,UAAW,WAEP7sC,KAAKsmF,WAAWz5C,YAChB7sC,KAAKo2C,OAAO1yC,OAAS,EACrB1D,KAAK4xC,KAAO,EACZ5xC,KAAK6xC,GAAK,GAUdtuC,QAAS,WAELvD,KAAKsmF,WAAWz5C,YAChB7sC,KAAKomF,SAAU,EACfpmF,KAAKo2C,UACLp2C,KAAK4xC,KAAO,EACZ5xC,KAAK6xC,GAAK,IAWlBjuC,OAAOC,eAAeiwB,EAAOmxD,MAAM5hF,UAAW,QAE1CS,IAAK,WACD,MAAO9D,MAAKumF,YAUpB3iF,OAAOC,eAAeiwB,EAAOmxD,MAAM5hF,UAAW,YAE1CS,IAAK,WAED,MAAI9D,MAAKomF,SAAWpmF,KAAKumF,SAAWvmF,KAAK0mF,KAE9B1mF,KAAKumF,SAAWvmF,KAAK0mF,KAIrB,KAYnB9iF,OAAOC,eAAeiwB,EAAOmxD,MAAM5hF,UAAW,UAE1CS,IAAK,WACD,MAAO9D,MAAKo2C,OAAO1yC,UAU3BE,OAAOC,eAAeiwB,EAAOmxD,MAAM5hF,UAAW,MAE1CS,IAAK,WAED,MAAI9D,MAAKomF,QAEEpmF,KAAK0mF,KAAO1mF,KAAKolF,SAAWplF,KAAKymF,YAIjC,KAYnB7iF,OAAOC,eAAeiwB,EAAOmxD,MAAM5hF,UAAW,WAE1CS,IAAK,WAED,MAAI9D,MAAKomF,QAEY,KAAVpmF,KAAK0nF,GAIL,KAOnB5zD,EAAOmxD,MAAM5hF,UAAUC,YAAcwwB,EAAOmxD,MA2B5CnxD,EAAOszD,WAAa,SAAU3B,EAAOjkB,EAAO2lB,EAAMD,EAAankB,EAAMpqB,EAAU3M,EAAiB3T,GAO5Fr4B,KAAKylF,MAAQA,EAKbzlF,KAAKwhE,MAAQA,EAKbxhE,KAAKmnF,KAAOA,EAKZnnF,KAAKknF,YAAcA,EAAc,EAKjClnF,KAAK+iE,KAAOA,EAKZ/iE,KAAK24C,SAAWA,EAKhB34C,KAAKgsC,gBAAkBA,EAKvBhsC,KAAKq4B,KAAOA,EAMZr4B,KAAKsnF,eAAgB,GAIzBxzD,EAAOszD,WAAW/jF,UAAUC,YAAcwwB,EAAOszD,WAgBjDtzD,EAAOgwC,iBAAmB,SAAUn6C,GAKhC3pB,KAAK2pB,OAASA,EAKd3pB,KAAK4E,KAAO+kB,EAAO/kB,KASnB5E,KAAK2nF,aAAe,KAMpB3nF,KAAK4nF,YAAc,KAMnB5nF,KAAK6nF,iBAAkB,EAMvB7nF,KAAK8nF,UAAW,EAOhB9nF,KAAK+nF,WAAa,KAMlB/nF,KAAKgoF,UAMLhoF,KAAKioF,kBAITn0D,EAAOgwC,iBAAiBzgE,WAYpB4lE,cAAe,SAAUI,EAAWl9D,GAEhC,GAAkB1C,SAAd4/D,EAEA,OAAO,CAGX,IAAIrpE,KAAK8nF,SAGL,IAAK,GAAII,KAAQloF,MAAKgoF,OAElBhoF,KAAKgoF,OAAOE,GAAMC,gBAAgB9e,EAwB1C,OApBArpE,MAAK+nF,WAAa1e,EAEJ5/D,SAAV0C,GAAiC,OAAVA,EAEvBnM,KAAKmM,MAAQ,EAIQ,gBAAVA,GAEPnM,KAAK4pE,UAAYz9D,EAIjBnM,KAAKmM,MAAQA,EAIrBnM,KAAK8nF,UAAW,GAET,GAaXM,cAAe,SAAU/e,EAAWl9D,GAIhC,GAFAnM,KAAK+nF,WAAa1e,EAAU/tC,QAExBt7B,KAAK8nF,SAGL,IAAK,GAAII,KAAQloF,MAAKgoF,OAElBhoF,KAAKgoF,OAAOE,GAAMC,gBAAgBnoF,KAAK+nF,WAsB/C,OAlBct+E,UAAV0C,GAAiC,OAAVA,EAEvBnM,KAAKmM,MAAQ,EAIQ,gBAAVA,GAEPnM,KAAK4pE,UAAYz9D,EAIjBnM,KAAKmM,MAAQA,EAIrBnM,KAAK8nF,UAAW,GAET,GAeXlnD,IAAK,SAAUzF,EAAMspD,EAAQ3hB,EAAWC,EAAMslB,GAoC1C,MAlCA5D,GAASA,MACT3hB,EAAYA,GAAa,GAEZr5D,SAATs5D,IAAsBA,GAAO,GAGTt5D,SAApB4+E,IAIIA,EAFA5D,GAA+B,gBAAdA,GAAO,IAEN,GAIA,GAI1BzkF,KAAKioF,iBAELjoF,KAAK+nF,WAAWO,gBAAgB7D,EAAQ4D,EAAiBroF,KAAKioF,eAE9DjoF,KAAKgoF,OAAO7sD,GAAQ,GAAIrH,GAAO8uC,UAAU5iE,KAAK4E,KAAM5E,KAAK2pB,OAAQwR,EAAMn7B,KAAK+nF,WAAY/nF,KAAKioF,cAAenlB,EAAWC,GAEvH/iE,KAAK4nF,YAAc5nF,KAAKgoF,OAAO7sD,GAK3Bn7B,KAAK2pB,OAAOQ,gBAEZnqB,KAAK2pB,OAAOggD,gBAAiB,GAG1B3pE,KAAKgoF,OAAO7sD,IAYvBotD,eAAgB,SAAU9D,EAAQ4D,GAEN5+E,SAApB4+E,IAAiCA,GAAkB,EAEvD,KAAK,GAAI5kF,GAAI,EAAGA,EAAIghF,EAAO/gF,OAAQD,IAE/B,GAAI4kF,KAAoB,GAEpB,GAAI5D,EAAOhhF,GAAKzD,KAAK+nF,WAAW9tC,MAE5B,OAAO,MAKX,IAAIj6C,KAAK+nF,WAAWS,eAAe/D,EAAOhhF,OAAQ,EAE9C,OAAO,CAKnB,QAAO,GAiBXo/D,KAAM,SAAU1nC,EAAM2nC,EAAWC,EAAMC,GAEnC,MAAIhjE,MAAKgoF,OAAO7sD,GAERn7B,KAAK4nF,cAAgB5nF,KAAKgoF,OAAO7sD,GAE7Bn7B,KAAK4nF,YAAYa,aAAc,GAE/BzoF,KAAK4nF,YAAYj+C,QAAS,EACnB3pC,KAAK4nF,YAAY/kB,KAAKC,EAAWC,EAAMC,IAG3ChjE,KAAK4nF,aAIR5nF,KAAK4nF,aAAe5nF,KAAK4nF,YAAYa,WAErCzoF,KAAK4nF,YAAY58E,OAGrBhL,KAAK4nF,YAAc5nF,KAAKgoF,OAAO7sD,GAC/Bn7B,KAAK4nF,YAAYj+C,QAAS,EAC1B3pC,KAAK2nF,aAAe3nF,KAAK4nF,YAAYD,aAC9B3nF,KAAK4nF,YAAY/kB,KAAKC,EAAWC,EAAMC,IAtBtD,QAoCJh4D,KAAM,SAAUmwB,EAAMypC,GAECn7D,SAAfm7D,IAA4BA,GAAa,GAEzB,gBAATzpC,GAEHn7B,KAAKgoF,OAAO7sD,KAEZn7B,KAAK4nF,YAAc5nF,KAAKgoF,OAAO7sD,GAC/Bn7B,KAAK4nF,YAAY58E,KAAK45D,IAKtB5kE,KAAK4nF,aAEL5nF,KAAK4nF,YAAY58E,KAAK45D,IAalCt+B,OAAQ,WAEJ,MAAItmC,MAAK6nF,kBAAoB7nF,KAAK2pB,OAAO1nB,SAE9B,EAGPjC,KAAK4nF,aAAe5nF,KAAK4nF,YAAYthD,UAErCtmC,KAAK2nF,aAAe3nF,KAAK4nF,YAAYD,cAC9B,IAGJ,GAUX5wC,KAAM,SAAUF,GAER72C,KAAK4nF,cAEL5nF,KAAK4nF,YAAY7wC,KAAKF,GACtB72C,KAAK2nF,aAAe3nF,KAAK4nF,YAAYD,eAW7C3wC,SAAU,SAAUH,GAEZ72C,KAAK4nF,cAEL5nF,KAAK4nF,YAAY5wC,SAASH,GAC1B72C,KAAK2nF,aAAe3nF,KAAK4nF,YAAYD,eAY7Ce,aAAc,SAAUvtD,GAEpB,MAAoB,gBAATA,IAEHn7B,KAAKgoF,OAAO7sD,GAELn7B,KAAKgoF,OAAO7sD,GAIpB,MASXwtD,aAAc,WAGV3oF,KAAK2pB,OAAOvd,WAAWtM,KAAK6O,aAAa3O,KAAK2nF,aAAa7pC,QAU/Dv6C,QAAS,WAEL,GAAI2kF,GAAO,IAEX,KAAK,GAAIA,KAAQloF,MAAKgoF,OAEdhoF,KAAKgoF,OAAOhtD,eAAektD,IAE3BloF,KAAKgoF,OAAOE,GAAM3kF,SAI1BvD,MAAKgoF,UACLhoF,KAAKioF,iBACLjoF,KAAK+nF,WAAa,KAClB/nF,KAAK4nF,YAAc,KACnB5nF,KAAK2nF,aAAe,KACpB3nF,KAAK2pB,OAAS,KACd3pB,KAAK4E,KAAO,OAMpBkvB,EAAOgwC,iBAAiBzgE,UAAUC,YAAcwwB,EAAOgwC,iBAOvDlgE,OAAOC,eAAeiwB,EAAOgwC,iBAAiBzgE,UAAW,aAErDS,IAAK,WACD,MAAO9D,MAAK+nF,cAUpBnkF,OAAOC,eAAeiwB,EAAOgwC,iBAAiBzgE,UAAW,cAErDS,IAAK,WAED,MAAO9D,MAAK+nF,WAAW9tC,SAS/Br2C,OAAOC,eAAeiwB,EAAOgwC,iBAAiBzgE,UAAW,UAErDS,IAAK,WAED,MAAO9D,MAAK4nF,YAAYgB,UAI5B5kF,IAAK,SAAUC,GAEXjE,KAAK4nF,YAAYj+C,OAAS1lC,KAUlCL,OAAOC,eAAeiwB,EAAOgwC,iBAAiBzgE,UAAW,QAErDS,IAAK,WAED,MAAI9D,MAAK4nF,YAEE5nF,KAAK4nF,YAAYzsD,KAF5B,UAaRv3B,OAAOC,eAAeiwB,EAAOgwC,iBAAiBzgE,UAAW,SAErDS,IAAK,WAED,MAAI9D,MAAK2nF,aAEE3nF,KAAK2nF,aAAaj/E,MAF7B,QAOJ1E,IAAK,SAAUC,GAEU,gBAAVA,IAAsBjE,KAAK+nF,YAAkD,OAApC/nF,KAAK+nF,WAAWc,SAAS5kF,KAEzEjE,KAAK2nF,aAAe3nF,KAAK+nF,WAAWc,SAAS5kF,GAEzCjE,KAAK2nF,cAEL3nF,KAAK2pB,OAAOuJ,SAASlzB,KAAK2nF,kBAY1C/jF,OAAOC,eAAeiwB,EAAOgwC,iBAAiBzgE,UAAW,aAErDS,IAAK,WAED,MAAI9D,MAAK2nF,aAEE3nF,KAAK2nF,aAAaxsD,KAF7B,QAOJn3B,IAAK,SAAUC,GAEU,gBAAVA,IAAsBjE,KAAK+nF,YAAwD,OAA1C/nF,KAAK+nF,WAAWe,eAAe7kF,IAE/EjE,KAAK2nF,aAAe3nF,KAAK+nF,WAAWe,eAAe7kF,GAE/CjE,KAAK2nF,eAEL3nF,KAAK+oF,YAAc/oF,KAAK2nF,aAAaj/E,MAErC1I,KAAK2pB,OAAOuJ,SAASlzB,KAAK2nF,gBAK9BjzE,QAAQukB,KAAK,yBAA2Bh1B,MA4BpD6vB,EAAO8uC,UAAY,SAAUh+D,EAAMxC,EAAQ+4B,EAAMkuC,EAAWob,EAAQ3hB,EAAWC,GAE9Dt5D,SAATs5D,IAAsBA,GAAO,GAKjC/iE,KAAK4E,KAAOA,EAMZ5E,KAAKslE,QAAUljE,EAMfpC,KAAK+nF,WAAa1e,EAKlBrpE,KAAKm7B,KAAOA,EAMZn7B,KAAKgpF,WACLhpF,KAAKgpF,QAAUhpF,KAAKgpF,QAAQnqE,OAAO4lE,GAKnCzkF,KAAKwhE,MAAQ,IAAOsB,EAKpB9iE,KAAK+iE,KAAOA,EAKZ/iE,KAAKipF,UAAY,EAMjBjpF,KAAKgjE,gBAAiB,EAMtBhjE,KAAKkpF,YAAa,EAMlBlpF,KAAKyoF,WAAY,EAMjBzoF,KAAK4oF,UAAW,EAOhB5oF,KAAKmpF,gBAAkB,EAOvBnpF,KAAK+oF,YAAc,EAOnB/oF,KAAKopF,WAAa,EAOlBppF,KAAKqpF,WAAa,EAKlBrpF,KAAK2nF,aAAe3nF,KAAK+nF,WAAWc,SAAS7oF,KAAKgpF,QAAQhpF,KAAK+oF,cAK/D/oF,KAAKspF,QAAU,GAAIx1D,GAAO0W,OAQ1BxqC,KAAKupF,SAAW,KAKhBvpF,KAAKsmF,WAAa,GAAIxyD,GAAO0W,OAK7BxqC,KAAKwpF,OAAS,GAAI11D,GAAO0W,OAGzBxqC,KAAK4E,KAAK2mC,QAAQ3K,IAAI5gC,KAAKurC,QAASvrC,MACpCA,KAAK4E,KAAK6mC,SAAS7K,IAAI5gC,KAAKyrC,SAAUzrC,OAI1C8zB,EAAO8uC,UAAUv/D,WAWbw/D,KAAM,SAAUC,EAAWC,EAAMC,GAsC7B,MApCyB,gBAAdF,KAGP9iE,KAAKwhE,MAAQ,IAAOsB,GAGJ,iBAATC,KAGP/iE,KAAK+iE,KAAOA,GAGc,mBAAnBC,KAGPhjE,KAAKgjE,eAAiBA,GAG1BhjE,KAAKyoF,WAAY,EACjBzoF,KAAKkpF,YAAa,EAClBlpF,KAAK2pC,QAAS,EACd3pC,KAAKipF,UAAY,EAEjBjpF,KAAKypF,eAAiBzpF,KAAK4E,KAAKskC,KAAKA,KACrClpC,KAAK0pF,eAAiB1pF,KAAK4E,KAAKskC,KAAKA,KAAOlpC,KAAKwhE,MAEjDxhE,KAAK+oF,YAAc,EACnB/oF,KAAK2pF,oBAAmB,GAAO,GAE/B3pF,KAAKslE,QAAQlvB,OAAOwzC,0BAA0B5pF,KAAKslE,QAAStlE,MAE5DA,KAAKspF,QAAQ78C,SAASzsC,KAAKslE,QAAStlE,MAEpCA,KAAKslE,QAAQrC,WAAW2kB,YAAc5nF,KACtCA,KAAKslE,QAAQrC,WAAW0kB,aAAe3nF,KAAK2nF,aAErC3nF,MASXosC,QAAS,WAELpsC,KAAKyoF,WAAY,EACjBzoF,KAAKkpF,YAAa,EAClBlpF,KAAK2pC,QAAS,EACd3pC,KAAKipF,UAAY,EAEjBjpF,KAAKypF,eAAiBzpF,KAAK4E,KAAKskC,KAAKA,KACrClpC,KAAK0pF,eAAiB1pF,KAAK4E,KAAKskC,KAAKA,KAAOlpC,KAAKwhE,MAEjDxhE,KAAK+oF,YAAc,EAEnB/oF,KAAK2nF,aAAe3nF,KAAK+nF,WAAWc,SAAS7oF,KAAKgpF,QAAQhpF,KAAK+oF,cAE/D/oF,KAAKslE,QAAQpyC,SAASlzB,KAAK2nF,cAE3B3nF,KAAKslE,QAAQrC,WAAW2kB,YAAc5nF,KACtCA,KAAKslE,QAAQrC,WAAW0kB,aAAe3nF,KAAK2nF,aAE5C3nF,KAAKspF,QAAQ78C,SAASzsC,KAAKslE,QAAStlE,OAWxCkzB,SAAU,SAASxkB,EAASm7E,GAExB,GAAIC,EAQJ,IAN2BrgF,SAAvBogF,IAEAA,GAAqB,GAIF,gBAAZn7E,GAEP,IAAK,GAAIjL,GAAI,EAAGA,EAAIzD,KAAKgpF,QAAQtlF,OAAQD,IAEjCzD,KAAK+nF,WAAWc,SAAS7oF,KAAKgpF,QAAQvlF,IAAI03B,OAASzsB,IAEnDo7E,EAAarmF,OAIpB,IAAuB,gBAAZiL,GAEZ,GAAIm7E,EAEAC,EAAap7E,MAIb,KAAK,GAAIjL,GAAI,EAAGA,EAAIzD,KAAKgpF,QAAQtlF,OAAQD,IAEjCzD,KAAKgpF,QAAQvlF,KAAOqmF,IAEpBA,EAAarmF,EAMzBqmF,KAGA9pF,KAAK+oF,YAAce,EAAa,EAGhC9pF,KAAK0pF,eAAiB1pF,KAAK4E,KAAKskC,KAAKA,KAErClpC,KAAKsmC,WAabt7B,KAAM,SAAU45D,EAAYmlB,GAELtgF,SAAfm7D,IAA4BA,GAAa,GACpBn7D,SAArBsgF,IAAkCA,GAAmB,GAEzD/pF,KAAKyoF,WAAY,EACjBzoF,KAAKkpF,YAAa,EAClBlpF,KAAK2pC,QAAS,EAEVi7B,IAEA5kE,KAAK2nF,aAAe3nF,KAAK+nF,WAAWc,SAAS7oF,KAAKgpF,QAAQ,IAC1DhpF,KAAKslE,QAAQpyC,SAASlzB,KAAK2nF,eAG3BoC,IAEA/pF,KAAKslE,QAAQlvB,OAAO4zC,6BAA6BhqF,KAAKslE,QAAStlE,MAC/DA,KAAKsmF,WAAW75C,SAASzsC,KAAKslE,QAAStlE,QAU/CurC,QAAS,WAEDvrC,KAAKyoF,YAELzoF,KAAKopF,WAAappF,KAAK0pF,eAAiB1pF,KAAK4E,KAAKskC,KAAKA,OAU/DuC,SAAU,WAEFzrC,KAAKyoF,YAELzoF,KAAK0pF,eAAiB1pF,KAAK4E,KAAKskC,KAAKA,KAAOlpC,KAAKopF,aAUzD9iD,OAAQ,WAEJ,MAAItmC,MAAK4oF,UAEE,EAGP5oF,KAAKyoF,WAAazoF,KAAK4E,KAAKskC,KAAKA,MAAQlpC,KAAK0pF,gBAE9C1pF,KAAKqpF,WAAa,EAGlBrpF,KAAKopF,WAAappF,KAAK4E,KAAKskC,KAAKA,KAAOlpC,KAAK0pF,eAE7C1pF,KAAKypF,eAAiBzpF,KAAK4E,KAAKskC,KAAKA,KAEjClpC,KAAKopF,WAAappF,KAAKwhE,QAGvBxhE,KAAKqpF,WAAa1oF,KAAKq3B,MAAMh4B,KAAKopF,WAAappF,KAAKwhE,OACpDxhE,KAAKopF,YAAeppF,KAAKqpF,WAAarpF,KAAKwhE,OAI/CxhE,KAAK0pF,eAAiB1pF,KAAK4E,KAAKskC,KAAKA,MAAQlpC,KAAKwhE,MAAQxhE,KAAKopF,YAE/DppF,KAAK+oF,aAAe/oF,KAAKqpF,WAErBrpF,KAAK+oF,aAAe/oF,KAAKgpF,QAAQtlF,OAE7B1D,KAAK+iE,MAGL/iE,KAAK+oF,aAAe/oF,KAAKgpF,QAAQtlF,OACjC1D,KAAK2nF,aAAe3nF,KAAK+nF,WAAWc,SAAS7oF,KAAKgpF,QAAQhpF,KAAK+oF,cAG3D/oF,KAAK2nF,cAEL3nF,KAAKslE,QAAQpyC,SAASlzB,KAAK2nF,cAG/B3nF,KAAKipF,YACLjpF,KAAKslE,QAAQlvB,OAAO6zC,yBAAyBjqF,KAAKslE,QAAStlE,MAC3DA,KAAKwpF,OAAO/8C,SAASzsC,KAAKslE,QAAStlE,MAE/BA,KAAKupF,UAELvpF,KAAKupF,SAAS98C,SAASzsC,KAAMA,KAAK2nF,gBAGzB3nF,KAAK+nF,aAIP,IAKX/nF,KAAK+xB,YACE,GAKJ/xB,KAAK2pF,oBAAmB,KAIhC,GAgBXA,mBAAoB,SAAUO,EAAcC,GAIxC,GAFiB1gF,SAAb0gF,IAA0BA,GAAW,IAEpCnqF,KAAK+nF,WAGN,OAAO,CAIX,IAAIqC,GAAMpqF,KAAK2nF,aAAaj/E,KAS5B,OAPA1I,MAAK2nF,aAAe3nF,KAAK+nF,WAAWc,SAAS7oF,KAAKgpF,QAAQhpF,KAAK+oF,cAE3D/oF,KAAK2nF,eAAiBwC,IAAcA,GAAYC,IAAQpqF,KAAK2nF,aAAaj/E,QAE1E1I,KAAKslE,QAAQpyC,SAASlzB,KAAK2nF,cAG3B3nF,KAAKupF,UAAYW,GAEjBlqF,KAAKupF,SAAS98C,SAASzsC,KAAMA,KAAK2nF,gBAGzB3nF,KAAK+nF,aAIP,GAWfhxC,KAAM,SAAUF,GAEKptC,SAAbotC,IAA0BA,EAAW,EAEzC,IAAI1qC,GAAQnM,KAAK+oF,YAAclyC,CAE3B1qC,IAASnM,KAAKgpF,QAAQtlF,SAElB1D,KAAK+iE,KAEL52D,GAASnM,KAAKgpF,QAAQtlF,OAItByI,EAAQnM,KAAKgpF,QAAQtlF,OAAS,GAIlCyI,IAAUnM,KAAK+oF,cAEf/oF,KAAK+oF,YAAc58E,EACnBnM,KAAK2pF,oBAAmB,KAWhC3yC,SAAU,SAAUH,GAECptC,SAAbotC,IAA0BA,EAAW,EAEzC,IAAI1qC,GAAQnM,KAAK+oF,YAAclyC,CAEnB,GAAR1qC,IAEInM,KAAK+iE,KAEL52D,EAAQnM,KAAKgpF,QAAQtlF,OAASyI,EAI9BA,KAIJA,IAAUnM,KAAK+oF,cAEf/oF,KAAK+oF,YAAc58E,EACnBnM,KAAK2pF,oBAAmB,KAWhCxB,gBAAiB,SAAU9e,GAEvBrpE,KAAK+nF,WAAa1e,EAClBrpE,KAAK2nF,aAAe3nF,KAAK+nF,WAAa/nF,KAAK+nF,WAAWc,SAAS7oF,KAAKgpF,QAAQhpF,KAAK+oF,YAAc/oF,KAAKgpF,QAAQtlF,SAAW,MAS3HH,QAAS,WAEAvD,KAAK+nF,aAMV/nF,KAAK4E,KAAK2mC,QAAQQ,OAAO/rC,KAAKurC,QAASvrC,MACvCA,KAAK4E,KAAK6mC,SAASM,OAAO/rC,KAAKyrC,SAAUzrC,MAEzCA,KAAK4E,KAAO,KACZ5E,KAAKslE,QAAU,KACftlE,KAAKgpF,QAAU,KACfhpF,KAAK+nF,WAAa,KAClB/nF,KAAK2nF,aAAe,KACpB3nF,KAAKyoF,WAAY,EAEjBzoF,KAAKspF,QAAQn6C,UACbnvC,KAAKwpF,OAAOr6C,UACZnvC,KAAKsmF,WAAWn3C,UAEZnvC,KAAKupF,UAELvpF,KAAKupF,SAASp6C,YAWtBpd,SAAU,WAEN/xB,KAAK+oF,YAAc/oF,KAAKgpF,QAAQtlF,OAAS,EACzC1D,KAAK2nF,aAAe3nF,KAAK+nF,WAAWc,SAAS7oF,KAAKgpF,QAAQhpF,KAAK+oF,cAE/D/oF,KAAKyoF,WAAY,EACjBzoF,KAAKkpF,YAAa,EAClBlpF,KAAK2pC,QAAS,EAEd3pC,KAAKslE,QAAQlvB,OAAO4zC,6BAA6BhqF,KAAKslE,QAAStlE,MAE/DA,KAAKsmF,WAAW75C,SAASzsC,KAAKslE,QAAStlE,MAEnCA,KAAKgjE,gBAELhjE,KAAKslE,QAAQuC,SAOzB/zC,EAAO8uC,UAAUv/D,UAAUC,YAAcwwB,EAAO8uC,UAMhDh/D,OAAOC,eAAeiwB,EAAO8uC,UAAUv/D,UAAW,UAE9CS,IAAK,WAED,MAAO9D,MAAK4oF,UAIhB5kF,IAAK,SAAUC,GAEXjE,KAAK4oF,SAAW3kF,EAEZA,EAGAjE,KAAKmpF,gBAAkBnpF,KAAK4E,KAAKskC,KAAKA,KAKlClpC,KAAKyoF,YAELzoF,KAAK0pF,eAAiB1pF,KAAK4E,KAAKskC,KAAKA,KAAOlpC,KAAKwhE,UAajE59D,OAAOC,eAAeiwB,EAAO8uC,UAAUv/D,UAAW,cAE9CS,IAAK,WACD,MAAO9D,MAAKgpF,QAAQtlF,UAS5BE,OAAOC,eAAeiwB,EAAO8uC,UAAUv/D,UAAW,SAE9CS,IAAK,WAED,MAA0B,QAAtB9D,KAAK2nF,aAEE3nF,KAAK2nF,aAAaj/E,MAIlB1I,KAAK+oF,aAKpB/kF,IAAK,SAAUC,GAEXjE,KAAK2nF,aAAe3nF,KAAK+nF,WAAWc,SAAS7oF,KAAKgpF,QAAQ/kF,IAEhC,OAAtBjE,KAAK2nF,eAEL3nF,KAAK+oF,YAAc9kF,EACnBjE,KAAKslE,QAAQpyC,SAASlzB,KAAK2nF,cAEvB3nF,KAAKupF,UAELvpF,KAAKupF,SAAS98C,SAASzsC,KAAMA,KAAK2nF,kBAYlD/jF,OAAOC,eAAeiwB,EAAO8uC,UAAUv/D,UAAW,SAE9CS,IAAK,WAED,MAAOnD,MAAKi8B,MAAM,IAAO58B,KAAKwhE,QAIlCx9D,IAAK,SAAUC,GAEPA,GAAS,IAETjE,KAAKwhE,MAAQ,IAAOv9D,MAWhCL,OAAOC,eAAeiwB,EAAO8uC,UAAUv/D,UAAW,gBAE9CS,IAAK,WAED,MAA0B,QAAlB9D,KAAKupF,UAIjBvlF,IAAK,SAAUC,GAEPA,GAA2B,OAAlBjE,KAAKupF,SAEdvpF,KAAKupF,SAAW,GAAIz1D,GAAO0W,OAErBvmC,GAA2B,OAAlBjE,KAAKupF,WAEpBvpF,KAAKupF,SAASp6C,UACdnvC,KAAKupF,SAAW,SAqB5Bz1D,EAAO8uC,UAAUynB,mBAAqB,SAAU5N,EAAQrxE,EAAOJ,EAAMs/E,EAAQC,GAE1D9gF,SAAX6gF,IAAwBA,EAAS,GAErC,IAAIztD,MACA1wB,EAAQ,EAEZ,IAAYnB,EAARI,EAEA,IAAK,GAAI3H,GAAI2H,EAAYJ,GAALvH,EAAWA,IAKvB0I,EAHmB,gBAAZo+E,GAGCz2D,EAAOoF,MAAMsB,IAAI/2B,EAAEyM,WAAYq6E,EAAS,IAAK,GAI7C9mF,EAAEyM,WAGd/D,EAAQswE,EAAStwE,EAAQm+E,EAEzBztD,EAAOt4B,KAAK4H,OAKhB,KAAK,GAAI1I,GAAI2H,EAAO3H,GAAKuH,EAAMvH,IAKvB0I,EAHmB,gBAAZo+E,GAGCz2D,EAAOoF,MAAMsB,IAAI/2B,EAAEyM,WAAYq6E,EAAS,IAAK,GAI7C9mF,EAAEyM,WAGd/D,EAAQswE,EAAStwE,EAAQm+E,EAEzBztD,EAAOt4B,KAAK4H,EAIpB,OAAO0wB,IAsBX/I,EAAO02D,MAAQ,SAAU9hF,EAAOhD,EAAGC,EAAGkB,EAAOC,EAAQq0B,GAKjDn7B,KAAK0I,MAAQA,EAKb1I,KAAK0F,EAAIA,EAKT1F,KAAK2F,EAAIA,EAKT3F,KAAK6G,MAAQA,EAKb7G,KAAK8G,OAASA,EAKd9G,KAAKm7B,KAAOA,EAKZn7B,KAAK6jC,QAAUljC,KAAKq3B,MAAMnxB,EAAQ,GAKlC7G,KAAK8jC,QAAUnjC,KAAKq3B,MAAMlxB,EAAS,GAKnC9G,KAAK28B,SAAW7I,EAAOnzB,KAAKg8B,SAAS,EAAG,EAAG91B,EAAOC,GAMlD9G,KAAKyqF,SAAU,EAMfzqF,KAAK0qF,kBAAoB,KAMzB1qF,KAAKspE,SAAU,EAKftpE,KAAKypE,YAAc5iE,EAKnB7G,KAAK0pE,YAAc5iE,EAMnB9G,KAAKupE,kBAAoB,EAMzBvpE,KAAKwpE,kBAAoB,EAMzBxpE,KAAK2qF,kBAAoB,EAMzB3qF,KAAK4qF,kBAAoB,EAKzB5qF,KAAK46B,MAAQ56B,KAAK0F,EAAI1F,KAAK6G,MAK3B7G,KAAKq9B,OAASr9B,KAAK2F,EAAI3F,KAAK8G,QAIhCgtB,EAAO02D,MAAMnnF,WAST0E,OAAQ,SAAUlB,EAAOC,GAErB9G,KAAK6G,MAAQA,EACb7G,KAAK8G,OAASA,EACd9G,KAAK6jC,QAAUljC,KAAKq3B,MAAMnxB,EAAQ,GAClC7G,KAAK8jC,QAAUnjC,KAAKq3B,MAAMlxB,EAAS,GACnC9G,KAAK28B,SAAW7I,EAAOnzB,KAAKg8B,SAAS,EAAG,EAAG91B,EAAOC,GAClD9G,KAAKypE,YAAc5iE,EACnB7G,KAAK0pE,YAAc5iE,EACnB9G,KAAK46B,MAAQ56B,KAAK0F,EAAImB,EACtB7G,KAAKq9B,OAASr9B,KAAK2F,EAAImB,GAgB3B+jF,QAAS,SAAUvhB,EAASwhB,EAAaC,EAAcC,EAAOC,EAAOC,EAAWC,GAE5EnrF,KAAKspE,QAAUA,EAEXA,IAEAtpE,KAAKypE,YAAcqhB,EACnB9qF,KAAK0pE,YAAcqhB,EACnB/qF,KAAK6jC,QAAUljC,KAAKq3B,MAAM8yD,EAAc,GACxC9qF,KAAK8jC,QAAUnjC,KAAKq3B,MAAM+yD,EAAe,GACzC/qF,KAAKupE,kBAAoByhB,EACzBhrF,KAAKwpE,kBAAoByhB,EACzBjrF,KAAK2qF,kBAAoBO,EACzBlrF,KAAK4qF,kBAAoBO,IAYjC7vD,MAAO,WAEH,GAAIuB,GAAS,GAAI/I,GAAO02D,MAAMxqF,KAAK0I,MAAO1I,KAAK0F,EAAG1F,KAAK2F,EAAG3F,KAAK6G,MAAO7G,KAAK8G,OAAQ9G,KAAKm7B,KAExF,KAAK,GAAI9B,KAAQr5B,MAETA,KAAKg7B,eAAe3B,KAEpBwD,EAAOxD,GAAQr5B,KAAKq5B,GAI5B,OAAOwD,IAWXuuD,QAAS,SAAU9uD,GAWf,MATY7yB,UAAR6yB,EAEAA,EAAM,GAAIxI,GAAO9wB,UAAUhD,KAAK0F,EAAG1F,KAAK2F,EAAG3F,KAAK6G,MAAO7G,KAAK8G,QAI5Dw1B,EAAIC,MAAMv8B,KAAK0F,EAAG1F,KAAK2F,EAAG3F,KAAK6G,MAAO7G,KAAK8G,QAGxCw1B,IAMfxI,EAAO02D,MAAMnnF,UAAUC,YAAcwwB,EAAO02D,MAc5C12D,EAAOu3D,UAAY,WAMfrrF,KAAKgpF,WAMLhpF,KAAKsrF,gBAITx3D,EAAOu3D,UAAUhoF,WASbkoF,SAAU,SAAUp/E,GAWhB,MATAA,GAAMzD,MAAQ1I,KAAKgpF,QAAQtlF,OAE3B1D,KAAKgpF,QAAQzkF,KAAK4H,GAEC,KAAfA,EAAMgvB,OAENn7B,KAAKsrF,YAAYn/E,EAAMgvB,MAAQhvB,EAAMzD,OAGlCyD,GAWX08E,SAAU,SAAUngF,GAOhB,MALIA,IAAS1I,KAAKgpF,QAAQtlF,SAEtBgF,EAAQ,GAGL1I,KAAKgpF,QAAQtgF,IAWxBogF,eAAgB,SAAU3tD,GAEtB,MAAsC,gBAA3Bn7B,MAAKsrF,YAAYnwD,GAEjBn7B,KAAKgpF,QAAQhpF,KAAKsrF,YAAYnwD,IAGlC,MAWXqtD,eAAgB,SAAUrtD,GAEtB,MAA8B,OAA1Bn7B,KAAKsrF,YAAYnwD,IAEV,GAGJ,GAUXG,MAAO,WAKH,IAAK,GAHDuB,GAAS,GAAI/I,GAAOu3D,UAGf5nF,EAAI,EAAGA,EAAIzD,KAAKgpF,QAAQtlF,OAAQD,IAErCo5B,EAAOmsD,QAAQzkF,KAAKvE,KAAKgpF,QAAQvlF,GAAG63B,QAGxC,KAAK,GAAIz2B,KAAK7E,MAAKsrF,YAEXtrF,KAAKsrF,YAAYtwD,eAAen2B,IAEhCg4B,EAAOyuD,YAAY/mF,KAAKvE,KAAKsrF,YAAYzmF,GAIjD,OAAOg4B,IAaX2uD,cAAe,SAAUpgF,EAAOtB,EAAK+yB,GAElBpzB,SAAXozB,IAAwBA,KAE5B,KAAK,GAAIp5B,GAAI2H,EAAYtB,GAALrG,EAAUA,IAE1Bo5B,EAAOt4B,KAAKvE,KAAKgpF,QAAQvlF,GAG7B,OAAOo5B,IAcX4uD,UAAW,SAAUhH,EAAQ4D,EAAiBxrD,GAK1C,GAHwBpzB,SAApB4+E,IAAiCA,GAAkB,GACxC5+E,SAAXozB,IAAwBA,MAEbpzB,SAAXg7E,GAA0C,IAAlBA,EAAO/gF,OAG/B,IAAK,GAAID,GAAI,EAAGA,EAAIzD,KAAKgpF,QAAQtlF,OAAQD,IAGrCo5B,EAAOt4B,KAAKvE,KAAKgpF,QAAQvlF,QAM7B,KAAK,GAAIA,GAAI,EAAGA,EAAIghF,EAAO/gF,OAAQD,IAM3Bo5B,EAAOt4B,KAHP8jF,EAGYroF,KAAK6oF,SAASpE,EAAOhhF,IAKrBzD,KAAK8oF,eAAerE,EAAOhhF,IAKnD,OAAOo5B,IAcXyrD,gBAAiB,SAAU7D,EAAQ4D,EAAiBxrD,GAKhD,GAHwBpzB,SAApB4+E,IAAiCA,GAAkB,GACxC5+E,SAAXozB,IAAwBA,MAEbpzB,SAAXg7E,GAA0C,IAAlBA,EAAO/gF,OAG/B,IAAK,GAAID,GAAI,EAAGA,EAAIzD,KAAKgpF,QAAQtlF,OAAQD,IAErCo5B,EAAOt4B,KAAKvE,KAAKgpF,QAAQvlF,GAAGiF,WAMhC,KAAK,GAAIjF,GAAI,EAAGA,EAAIghF,EAAO/gF,OAAQD,IAG3B4kF,EAEAxrD,EAAOt4B,KAAKvE,KAAKgpF,QAAQvE,EAAOhhF,IAAIiF,OAIhC1I,KAAK8oF,eAAerE,EAAOhhF,KAE3Bo5B,EAAOt4B,KAAKvE,KAAK8oF,eAAerE,EAAOhhF,IAAIiF,MAM3D,OAAOm0B,KAMf/I,EAAOu3D,UAAUhoF,UAAUC,YAAcwwB,EAAOu3D,UAOhDznF,OAAOC,eAAeiwB,EAAOu3D,UAAUhoF,UAAW,SAE9CS,IAAK,WACD,MAAO9D,MAAKgpF,QAAQtlF,UAiB5BowB,EAAO43D,iBAeHC,YAAa,SAAU/mF,EAAM8R,EAAKk1E,EAAYC,EAAaC,EAAUnsC,EAAQosC,GAEzE,GAAI5iB,GAAMzyD,CAOV,IALmB,gBAARA,KAEPyyD,EAAMvkE,EAAKikC,MAAMzU,SAAS1d,IAGlB,OAARyyD,EAEA,MAAO,KAGX,IAAItiE,GAAQsiE,EAAItiE,MACZC,EAASqiE,EAAIriE,MAEC,IAAd8kF,IAEAA,EAAajrF,KAAKq3B,OAAOnxB,EAAQlG,KAAK0wB,IAAI,GAAIu6D,KAG/B,GAAfC,IAEAA,EAAclrF,KAAKq3B,OAAOlxB,EAASnG,KAAK0wB,IAAI,GAAIw6D,IAGpD,IAAItjD,GAAM5nC,KAAKq3B,OAAOnxB,EAAQ84C,IAAWisC,EAAaG,IAClDC,EAASrrF,KAAKq3B,OAAOlxB,EAAS64C,IAAWksC,EAAcE,IACvD9xC,EAAQ1R,EAAMyjD,CAQlB,IANiB,KAAbF,IAEA7xC,EAAQ6xC,GAIE,IAAVjlF,GAA0B,IAAXC,GAAwB8kF,EAAR/kF,GAA+BglF,EAAT/kF,GAAkC,IAAVmzC,EAG7E,MADAvlC,SAAQukB,KAAK,wCAA0CviB,EAAM,uEACtD,IAQX,KAAK,GAJDvF,GAAO,GAAI2iB,GAAOu3D,UAClB3lF,EAAIi6C,EACJh6C,EAAIg6C,EAECl8C,EAAI,EAAOw2C,EAAJx2C,EAAWA,IAEvB0N,EAAKo6E,SAAS,GAAIz3D,GAAO02D,MAAM/mF,EAAGiC,EAAGC,EAAGimF,EAAYC,EAAa,KAEjEnmF,GAAKkmF,EAAaG,EAEdrmF,EAAIkmF,EAAa/kF,IAEjBnB,EAAIi6C,EACJh6C,GAAKkmF,EAAcE,EAI3B,OAAO56E,IAYX86E,SAAU,SAAUrnF,EAAMsnF,GAGtB,IAAKA,EAAa,OAId,MAFAx3E,SAAQukB,KAAK,iGACbvkB,SAAQC,IAAIu3E,EAWhB,KAAK,GAFDC,GAJAh7E,EAAO,GAAI2iB,GAAOu3D,UAGlB5G,EAASyH,EAAa,OAGjBzoF,EAAI,EAAGA,EAAIghF,EAAO/gF,OAAQD,IAE/B0oF,EAAWh7E,EAAKo6E,SAAS,GAAIz3D,GAAO02D,MAChC/mF,EACAghF,EAAOhhF,GAAG0I,MAAMzG,EAChB++E,EAAOhhF,GAAG0I,MAAMxG,EAChB8+E,EAAOhhF,GAAG0I,MAAMoN,EAChBkrE,EAAOhhF,GAAG0I,MAAMke,EAChBo6D,EAAOhhF,GAAG2oF,WAGV3H,EAAOhhF,GAAG6lE,SAEV6iB,EAAStB,QACLpG,EAAOhhF,GAAG6lE,QACVmb,EAAOhhF,GAAG4oF,WAAW9yE,EACrBkrE,EAAOhhF,GAAG4oF,WAAWhiE,EACrBo6D,EAAOhhF,GAAG6oF,iBAAiB5mF,EAC3B++E,EAAOhhF,GAAG6oF,iBAAiB3mF,EAC3B8+E,EAAOhhF,GAAG6oF,iBAAiB/yE,EAC3BkrE,EAAOhhF,GAAG6oF,iBAAiBjiE,EAKvC,OAAOlZ,IAYXo7E,aAAc,SAAU3nF,EAAMsnF,GAG1B,IAAKA,EAAa,OAId,MAFAx3E,SAAQukB,KAAK,sGACbvkB,SAAQC,IAAIu3E,EAKhB,IAIIC,GAJAh7E,EAAO,GAAI2iB,GAAOu3D,UAGlB5G,EAASyH,EAAa,OAEtBzoF,EAAI,CAER,KAAK,GAAIiT,KAAO+tE,GAEZ0H,EAAWh7E,EAAKo6E,SAAS,GAAIz3D,GAAO02D,MAChC/mF,EACAghF,EAAO/tE,GAAKvK,MAAMzG,EAClB++E,EAAO/tE,GAAKvK,MAAMxG,EAClB8+E,EAAO/tE,GAAKvK,MAAMoN,EAClBkrE,EAAO/tE,GAAKvK,MAAMke,EAClB3T,IAGA+tE,EAAO/tE,GAAK4yD,SAEZ6iB,EAAStB,QACLpG,EAAO/tE,GAAK4yD,QACZmb,EAAO/tE,GAAK21E,WAAW9yE,EACvBkrE,EAAO/tE,GAAK21E,WAAWhiE,EACvBo6D,EAAO/tE,GAAK41E,iBAAiB5mF,EAC7B++E,EAAO/tE,GAAK41E,iBAAiB3mF,EAC7B8+E,EAAO/tE,GAAK41E,iBAAiB/yE,EAC7BkrE,EAAO/tE,GAAK41E,iBAAiBjiE,GAIrC5mB,GAGJ,OAAO0N,IAYXq7E,QAAS,SAAU5nF,EAAM6nF,GAGrB,IAAKA,EAAIC,qBAAqB,gBAG1B,WADAh4E,SAAQukB,KAAK,8FAoBjB,KAAK,GAbDkzD,GAEAhxD,EACAhvB,EACAzG,EACAC,EACAkB,EACAC,EACA6lF,EACAC,EACAhB,EACAC,EAbA16E,EAAO,GAAI2iB,GAAOu3D,UAClB5G,EAASgI,EAAIC,qBAAqB,cAc7BjpF,EAAI,EAAGA,EAAIghF,EAAO/gF,OAAQD,IAE/B0I,EAAQs4E,EAAOhhF,GAAGoS,WAElBslB,EAAOhvB,EAAMgvB,KAAKl3B,MAClByB,EAAI20B,SAASluB,EAAMzG,EAAEzB,MAAO,IAC5B0B,EAAI00B,SAASluB,EAAMxG,EAAE1B,MAAO,IAC5B4C,EAAQwzB,SAASluB,EAAMtF,MAAM5C,MAAO,IACpC6C,EAASuzB,SAASluB,EAAMrF,OAAO7C,MAAO,IAEtC0oF,EAAS,KACTC,EAAS,KAELzgF,EAAMwgF,SAENA,EAAShsF,KAAKshB,IAAIoY,SAASluB,EAAMwgF,OAAO1oF,MAAO,KAC/C2oF,EAASjsF,KAAKshB,IAAIoY,SAASluB,EAAMygF,OAAO3oF,MAAO,KAC/C2nF,EAAavxD,SAASluB,EAAMy/E,WAAW3nF,MAAO,IAC9C4nF,EAAcxxD,SAASluB,EAAM0/E,YAAY5nF,MAAO,KAGpDkoF,EAAWh7E,EAAKo6E,SAAS,GAAIz3D,GAAO02D,MAAM/mF,EAAGiC,EAAGC,EAAGkB,EAAOC,EAAQq0B,KAGnD,OAAXwxD,GAA8B,OAAXC,IAEnBT,EAAStB,SAAQ,EAAMhkF,EAAOC,EAAQ6lF,EAAQC,EAAQhB,EAAYC,EAI1E,OAAO16E,KAuCf2iB,EAAOs3B,MAAQ,SAAUxmD,GAKrB5E,KAAK4E,KAAOA,EAMZ5E,KAAK6sF,gBAAiB,EAOtB7sF,KAAK8sF,QACD/7E,UACA0hB,SACA3qB,WACAmhC,SACA6jC,SACAlvB,QACAsuC,QACAO,OACApjD,WACAmjC,WACAugB,UACAjmD,cACAkmD,cACAjhF,UACApF,kBAOJ3G,KAAKitF,WAMLjtF,KAAKktF,aAAe,GAAIt8E,OAMxB5Q,KAAKmtF,SAAW,KAKhBntF,KAAKotF,cAAgB,GAAIt5D,GAAO0W,OAMhCxqC,KAAKqtF,aAELrtF,KAAKqtF,UAAUv5D,EAAOs3B,MAAM31B,QAAUz1B,KAAK8sF,OAAO/7E,OAClD/Q,KAAKqtF,UAAUv5D,EAAOs3B,MAAMj1B,OAASn2B,KAAK8sF,OAAOr6D,MACjDzyB,KAAKqtF,UAAUv5D,EAAOs3B,MAAMkiC,SAAWttF,KAAK8sF,OAAOhlF,QACnD9H,KAAKqtF,UAAUv5D,EAAOs3B,MAAMmiC,OAASvtF,KAAK8sF,OAAO7jD,MACjDjpC,KAAKqtF,UAAUv5D,EAAOs3B,MAAM/0B,MAAQr2B,KAAK8sF,OAAOlvC,KAChD59C,KAAKqtF,UAAUv5D,EAAOs3B,MAAMoiC,SAAWxtF,KAAK8sF,OAAOzjD,QACnDrpC,KAAKqtF,UAAUv5D,EAAOs3B,MAAM10B,SAAW12B,KAAK8sF,OAAOtgB,QACnDxsE,KAAKqtF,UAAUv5D,EAAOs3B,MAAMqiC,QAAUztF,KAAK8sF,OAAOC,OAClD/sF,KAAKqtF,UAAUv5D,EAAOs3B,MAAMt0B,YAAc92B,KAAK8sF,OAAOhmD,WACtD9mC,KAAKqtF,UAAUv5D,EAAOs3B,MAAMsiC,YAAc1tF,KAAK8sF,OAAOE,WACtDhtF,KAAKqtF,UAAUv5D,EAAOs3B,MAAMuiC,MAAQ3tF,KAAK8sF,OAAOZ,KAChDlsF,KAAKqtF,UAAUv5D,EAAOs3B,MAAMwiC,KAAO5tF,KAAK8sF,OAAOL,IAC/CzsF,KAAKqtF,UAAUv5D,EAAOs3B,MAAMvzB,OAAS73B,KAAK8sF,OAAOhgB,MACjD9sE,KAAKqtF,UAAUv5D,EAAOs3B,MAAMyiC,QAAU7tF,KAAK8sF,OAAO/gF,OAClD/L,KAAKqtF,UAAUv5D,EAAOs3B,MAAM0iC,gBAAkB9tF,KAAK8sF,OAAOnmF,cAE1D3G,KAAK+tF,kBACL/tF,KAAKguF,mBAQTl6D,EAAOs3B,MAAM31B,OAAS,EAMtB3B,EAAOs3B,MAAMj1B,MAAQ,EAMrBrC,EAAOs3B,MAAMkiC,QAAU,EAMvBx5D,EAAOs3B,MAAMmiC,MAAQ,EAMrBz5D,EAAOs3B,MAAM/0B,KAAO,EAMpBvC,EAAOs3B,MAAMoiC,QAAU,EAMvB15D,EAAOs3B,MAAM10B,QAAU,EAMvB5C,EAAOs3B,MAAMqiC,OAAS,EAMtB35D,EAAOs3B,MAAMt0B,WAAa,EAM1BhD,EAAOs3B,MAAMsiC,WAAa,GAM1B55D,EAAOs3B,MAAMuiC,KAAO,GAMpB75D,EAAOs3B,MAAMwiC,IAAM,GAMnB95D,EAAOs3B,MAAMvzB,MAAQ,GAMrB/D,EAAOs3B,MAAMyiC,OAAS,GAMtB/5D,EAAOs3B,MAAM0iC,eAAiB,GAE9Bh6D,EAAOs3B,MAAM/nD,WAcT4qF,UAAW,SAAUv3E,EAAK3F,EAAQ3D,GAEd3D,SAAZ2D,IAAyBA,EAAU2D,EAAOE,WAAW,OAEzDjR,KAAK8sF,OAAO/7E,OAAO2F,IAAS3F,OAAQA,EAAQ3D,QAASA;EAczD8gF,SAAU,SAAUx3E,EAAKq2D,EAAK57D,GAEtBnR,KAAKmuF,cAAcz3E,IAEnB1W,KAAKouF,YAAY13E,EAGrB,IAAIyyD,IACAzyD,IAAKA,EACLq2D,IAAKA,EACL57D,KAAMA,EACNi4D,KAAM,GAAItpE,MAAKgyB,YAAY3gB,GAC3BhF,MAAO,GAAI2nB,GAAO02D,MAAM,EAAG,EAAG,EAAGr5E,EAAKtK,MAAOsK,EAAKrK,OAAQ4P,GAC1D2yD,UAAW,GAAIv1C,GAAOu3D,UAS1B,OANAliB,GAAIE,UAAUkiB,SAAS,GAAIz3D,GAAO02D,MAAM,EAAG,EAAG,EAAGr5E,EAAKtK,MAAOsK,EAAKrK,OAAQimE,IAE1E/sE,KAAK8sF,OAAOr6D,MAAM/b,GAAOyyD,EAEzBnpE,KAAKquF,YAAYthB,EAAK5D,GAEfA,GAaX4kB,gBAAiB,WAEb,GAAI5kB,GAAM,GAAIv4D,MAEdu4D,GAAIt4D,IAAM,wKAEV,IAAIuoB,GAAMp5B,KAAKkuF,SAAS,YAAa,KAAM/kB,EAE3CrpE,MAAK6O,aAAwB,UAAI,GAAI7O,MAAKyL,QAAQ6tB,EAAIgwC,OAa1D4kB,gBAAiB,WAEb,GAAI7kB,GAAM,GAAIv4D,MAEdu4D,GAAIt4D,IAAM,4WAEV,IAAIuoB,GAAMp5B,KAAKkuF,SAAS,YAAa,KAAM/kB,EAE3CrpE,MAAK6O,aAAwB,UAAI,GAAI7O,MAAKyL,QAAQ6tB,EAAIgwC,OAc1DklB,SAAU,SAAU53E,EAAKq2D,EAAK57D,EAAM+6C,EAAUqiC,GAEzB9kF,SAAbyiD,IAA0BA,GAAW,EAAMqiC,GAAW,GACzC9kF,SAAb8kF,IAA0BriC,GAAW,EAAOqiC,GAAW,EAE3D,IAAIC,IAAU,CAEVD,KAEAC,GAAU,GAGdxuF,KAAK8sF,OAAO7jD,MAAMvyB,IACdq2D,IAAKA,EACL57D,KAAMA,EACNs9E,YAAY,EACZD,QAASA,EACTtiC,SAAUA,EACVqiC,SAAUA,EACV17B,OAAQ7yD,KAAK4E,KAAKqkC,MAAMylD,aAG5B1uF,KAAKquF,YAAYthB,EAAK/sE,KAAK8sF,OAAO7jD,MAAMvyB,KAY5Ci4E,QAAS,SAAUj4E,EAAKq2D,EAAK57D,GAEzBnR,KAAK8sF,OAAOlvC,KAAKlnC,IAASq2D,IAAKA,EAAK57D,KAAMA,GAE1CnR,KAAKquF,YAAYthB,EAAK/sE,KAAK8sF,OAAOlvC,KAAKlnC,KAa3Ck4E,eAAgB,SAAUl4E,EAAKq2D,EAAKkf,EAAU9zE,GAE1CnY,KAAK8sF,OAAOzjD,QAAQ3yB,IAASq2D,IAAKA,EAAK57D,KAAM86E,EAAU9zE,OAAQA,GAE/DnY,KAAKquF,YAAYthB,EAAK/sE,KAAK8sF,OAAOzjD,QAAQ3yB,KAa9Cm4E,WAAY,SAAUn4E,EAAKq2D,EAAK+hB,EAAS32E,GAErCnY,KAAK8sF,OAAOtgB,QAAQ91D,IAASq2D,IAAKA,EAAK57D,KAAM29E,EAAS32E,OAAQA,GAE9DnY,KAAKquF,YAAYthB,EAAK/sE,KAAK8sF,OAAOtgB,QAAQ91D,KAW9Cq4E,UAAW,SAAUr4E,EAAKs4E,GAEtBhvF,KAAK8sF,OAAOC,OAAOr2E,GAAOs4E,GAa9BhiB,cAAe,SAAUt2D,EAAKowB,EAAYuiC,GAYtC,MAVAviC,GAAWpwB,IAAMA,EAECjN,SAAd4/D,IAEAA,EAAY,GAAIv1C,GAAOu3D,UACvBhiB,EAAUkiB,SAASzkD,EAAWmoD,eAGlCjvF,KAAK8sF,OAAOhmD,WAAWpwB,IAASvF,KAAM21B,EAAYuiC,UAAWA,GAEtDviC,GAeXooD,cAAe,SAAUx4E,EAAKq2D,EAAK57D,EAAMg+E,EAAWC,EAAWljB,EAAUC,GAErE,GAAI/yC,IACA2zC,IAAKA,EACL57D,KAAMA,EACN06D,KAAM,KACNzC,KAAM,GAAItpE,MAAKgyB,YAAY3gB,GAK3BioB,GAAIyyC,KAFU,SAAdujB,EAEWt7D,EAAOu7D,aAAaC,eAAeH,EAAW/1D,EAAIgwC,KAAM8C,EAAUC,GAIlEr4C,EAAOu7D,aAAaE,cAAcJ,EAAW/1D,EAAIgwC,KAAM8C,EAAUC,GAGhFnsE,KAAK8sF,OAAOE,WAAWt2E,GAAO0iB,EAE9Bp5B,KAAKquF,YAAYthB,EAAK3zC,IAY1Bo2D,QAAS,SAAU94E,EAAKq2D,EAAK57D,GAEzBnR,KAAK8sF,OAAOZ,KAAKx1E,IAASq2D,IAAKA,EAAK57D,KAAMA,GAE1CnR,KAAKquF,YAAYthB,EAAK/sE,KAAK8sF,OAAOZ,KAAKx1E,KAY3C+4E,OAAQ,SAAU/4E,EAAKq2D,EAAK57D,GAExBnR,KAAK8sF,OAAOL,IAAI/1E,IAASq2D,IAAKA,EAAK57D,KAAMA,GAEzCnR,KAAKquF,YAAYthB,EAAK/sE,KAAK8sF,OAAOL,IAAI/1E,KAa1Cg5E,SAAU,SAAUh5E,EAAKq2D,EAAK57D,EAAMw+E,GAEhC3vF,KAAK8sF,OAAOhgB,MAAMp2D,IAASq2D,IAAKA,EAAK57D,KAAMA,EAAMw+E,OAAQA,EAAQ98B,QAAQ,GAEzE7yD,KAAKquF,YAAYthB,EAAK/sE,KAAK8sF,OAAOhgB,MAAMp2D,KAY5Ck5E,UAAW,SAAUl5E,EAAKq2D,EAAK57D,GAE3BnR,KAAK8sF,OAAO/gF,OAAO2K,IAASq2D,IAAKA,EAAK57D,KAAMA,GAE5CnR,KAAKquF,YAAYthB,EAAK/sE,KAAK8sF,OAAO/gF,OAAO2K,KAW7Cm2D,iBAAkB,SAAUn2D,EAAK5O,GAE7B9H,KAAK8sF,OAAOnmF,cAAc+P,IAAS5O,QAASA,EAASqE,MAAO,GAAI2nB,GAAO02D,MAAM,EAAG,EAAG,EAAG1iF,EAAQjB,MAAOiB,EAAQhB,OAAQ,GAAI,MAiB7H+oF,eAAgB,SAAUn5E,EAAKq2D,EAAK57D,EAAMy6E,EAAYC,EAAaC,EAAUnsC,EAAQosC,GAEjF,GAAI3yD,IACA1iB,IAAKA,EACLq2D,IAAKA,EACL57D,KAAMA,EACNy6E,WAAYA,EACZC,YAAaA,EACblsC,OAAQA,EACRosC,QAASA,EACT3iB,KAAM,GAAItpE,MAAKgyB,YAAY3gB,GAC3Bk4D,UAAWv1C,EAAO43D,gBAAgBC,YAAY3rF,KAAK4E,KAAMuM,EAAMy6E,EAAYC,EAAaC,EAAUnsC,EAAQosC,GAG9G/rF,MAAK8sF,OAAOr6D,MAAM/b,GAAO0iB,EAEzBp5B,KAAKquF,YAAYthB,EAAK3zC,IAc1B02D,gBAAiB,SAAUp5E,EAAKq2D,EAAK57D,EAAMg+E,EAAWh3E,GAElD,GAAIihB,IACA1iB,IAAKA,EACLq2D,IAAKA,EACL57D,KAAMA,EACNi4D,KAAM,GAAItpE,MAAKgyB,YAAY3gB,GAK3BioB,GAAIiwC,UAFJlxD,IAAW2b,EAAOu3B,OAAO0kC,2BAETj8D,EAAO43D,gBAAgBc,QAAQxsF,KAAK4E,KAAMuqF,EAAWz4E,GAKjEjW,MAAMyT,QAAQi7E,EAAU1K,QAER3wD,EAAO43D,gBAAgBO,SAASjsF,KAAK4E,KAAMuqF,EAAWz4E,GAItDod,EAAO43D,gBAAgBa,aAAavsF,KAAK4E,KAAMuqF,EAAWz4E,GAIlF1W,KAAK8sF,OAAOr6D,MAAM/b,GAAO0iB,EAEzBp5B,KAAKquF,YAAYthB,EAAK3zC,IAc1B42D,YAAa,SAAUt5E,GAEnB,GAAI04B,GAAQpvC,KAERipC,EAAQjpC,KAAKiwF,SAASv5E,EAEtBuyB,KAEAA,EAAM93B,KAAKN,IAAMo4B,EAAM8jC,IAEvB9jC,EAAM93B,KAAKiiC,iBAAiB,iBAAkB,WAC1C,MAAOhE,GAAM8gD,oBAAoBx5E,KAClC,GAEHuyB,EAAM93B,KAAK43B,SAWnBmnD,oBAAqB,SAAUx5E,GAE3B,GAAIuyB,GAAQjpC,KAAKiwF,SAASv5E,EAEtBuyB,KAEAA,EAAM4pB,QAAS,EACf7yD,KAAKotF,cAAc3gD,SAAS/1B,KAWpCy5E,YAAa,SAAUz5E,EAAK2hC,EAAUp0C,GAElC,GAAIglC,GAAQjpC,KAAKiwF,SAASv5E,EAEtBuyB,KAEAA,EAAMoP,GAAYp0C,IAY1BmsF,aAAc,SAAU15E,EAAKvF,GAEzB,GAAI83B,GAAQjpC,KAAKiwF,SAASv5E,EAE1BuyB,GAAM93B,KAAOA,EACb83B,EAAMulD,SAAU,EAChBvlD,EAAMwlD,YAAa,GAWvB4B,eAAgB,SAAU35E,GAEtB,GAAIuyB,GAAQjpC,KAAKq2E,QAAQ3/D,EAAKod,EAAOs3B,MAAMmiC,MAAO,iBAElD,OAAItkD,GAEOA,EAAMulD,QAFjB,QAeJ8B,aAAc,SAAU55E,GAEpB,GAAIuyB,GAAQjpC,KAAKq2E,QAAQ3/D,EAAKod,EAAOs3B,MAAMmiC,MAAO,iBAElD,OAAItkD,GAEQA,EAAMulD,UAAYxuF,KAAK4E,KAAKqkC,MAAMylD,YAF9C,QAmBJ6B,SAAU,SAAU1nD,EAAOnyB,GAEvB,MAAI1W,MAAKqtF,UAAUxkD,GAAOnyB,IAEf,GAGJ,GAcX85E,SAAU,SAAUzjB,GAEhB,MAAI/sE,MAAKitF,QAAQjtF,KAAKquF,YAAYthB,KAEvB,GAGJ,GAWX0jB,eAAgB,SAAU/5E,GAEtB,MAAO1W,MAAKuwF,SAASz8D,EAAOs3B,MAAM31B,OAAQ/e,IAW9Cy3E,cAAe,SAAUz3E,GAErB,MAAO1W,MAAKuwF,SAASz8D,EAAOs3B,MAAMj1B,MAAOzf,IAW7Cg6E,gBAAiB,SAAUh6E,GAEvB,MAAO1W,MAAKuwF,SAASz8D,EAAOs3B,MAAMkiC,QAAS52E,IAW/Ci6E,cAAe,SAAUj6E,GAErB,MAAO1W,MAAKuwF,SAASz8D,EAAOs3B,MAAMmiC,MAAO72E,IAW7Ck6E,aAAc,SAAUl6E,GAEpB,MAAO1W,MAAKuwF,SAASz8D,EAAOs3B,MAAM/0B,KAAM3f,IAW5Cm6E,gBAAiB,SAAUn6E,GAEvB,MAAO1W,MAAKuwF,SAASz8D,EAAOs3B,MAAMoiC,QAAS92E,IAW/Co6E,gBAAiB,SAAUp6E,GAEvB,MAAO1W,MAAKuwF,SAASz8D,EAAOs3B,MAAM10B,QAAShgB,IAW/Cq6E,eAAgB,SAAUr6E,GAEtB,MAAO1W,MAAKuwF,SAASz8D,EAAOs3B,MAAMqiC,OAAQ/2E,IAW9Cs6E,mBAAoB,SAAUt6E,GAE1B,MAAO1W,MAAKuwF,SAASz8D,EAAOs3B,MAAMt0B,WAAYpgB,IAWlDu6E,mBAAoB,SAAUv6E,GAE1B,MAAO1W,MAAKuwF,SAASz8D,EAAOs3B,MAAMsiC,WAAYh3E,IAWlDw6E,aAAc,SAAUx6E,GAEpB,MAAO1W,MAAKuwF,SAASz8D,EAAOs3B,MAAMuiC,KAAMj3E,IAW5Cy6E,YAAa,SAAUz6E,GAEnB,MAAO1W,MAAKuwF,SAASz8D,EAAOs3B,MAAMwiC,IAAKl3E,IAW3C06E,cAAe,SAAU16E,GAErB,MAAO1W,MAAKuwF,SAASz8D,EAAOs3B,MAAMvzB,MAAOnhB,IAW7C26E,eAAgB,SAAU36E,GAEtB,MAAO1W,MAAKuwF,SAASz8D,EAAOs3B,MAAMyiC,OAAQn3E,IAW9C46E,sBAAuB,SAAU56E,GAE7B,MAAO1W,MAAKuwF,SAASz8D,EAAOs3B,MAAM0iC,eAAgBp3E,IAqBtD2/D,QAAS,SAAU3/D,EAAKmyB,EAAOkQ,EAAQV,GAEnC,MAAKr4C,MAAKuwF,SAAS1nD,EAAOnyB,GASLjN,SAAb4uC,EAEOr4C,KAAKqtF,UAAUxkD,GAAOnyB,GAItB1W,KAAKqtF,UAAUxkD,GAAOnyB,GAAK2hC,IAblCU,GAEArkC,QAAQukB,KAAK,gBAAkB8f,EAAS,UAAYriC,EAAM,yBAe3D,OAeX4d,UAAW,SAAU5d,GAEjB,MAAO1W,MAAKq2E,QAAQ3/D,EAAKod,EAAOs3B,MAAM31B,OAAQ,YAAa,WAoB/DrB,SAAU,SAAU1d,EAAK66E,IAET9nF,SAARiN,GAA6B,OAARA,KAErBA,EAAM,aAGGjN,SAAT8nF,IAAsBA,GAAO,EAEjC,IAAIpoB,GAAMnpE,KAAKq2E,QAAQ3/D,EAAKod,EAAOs3B,MAAMj1B,MAAO,WAOhD,OALY,QAARgzC,IAEAA,EAAMnpE,KAAKq2E,QAAQ,YAAaviD,EAAOs3B,MAAMj1B,MAAO,aAGpDo7D,EAEOpoB,EAIAA,EAAIh4D,MAcnBqgF,gBAAiB,SAAU96E,GAEvB,MAAO1W,MAAKq2E,QAAQ3/D,EAAKod,EAAOs3B,MAAMkiC,QAAS,kBAAmB,UAetE2C,SAAU,SAAUv5E,GAEhB,MAAO1W,MAAKq2E,QAAQ3/D,EAAKod,EAAOs3B,MAAMmiC,MAAO,aAejDkE,aAAc,SAAU/6E,GAEpB,MAAO1W,MAAKq2E,QAAQ3/D,EAAKod,EAAOs3B,MAAMmiC,MAAO,eAAgB,SAejEmE,QAAS,SAAUh7E,GAEf,MAAO1W,MAAKq2E,QAAQ3/D,EAAKod,EAAOs3B,MAAM/0B,KAAM,UAAW,SAmB3Ds7D,eAAgB,SAAUj7E,EAAK8zD,EAAQonB,GAEnC,GAAIzgF,GAAOnR,KAAKq2E,QAAQ3/D,EAAKod,EAAOs3B,MAAMoiC,QAAS,iBAAkB,OAErE,IAAa,OAATr8E,GAA4B1H,SAAX+gE,GAAmC,OAAXA,EAEzC,MAAOr5D,EAIP,IAAIA,EAAKq5D,GACT,CACI,GAAIqnB,GAAW1gF,EAAKq5D,EAGpB,KAAIqnB,IAAYD,EAmBZ,MAAOC,EAjBP,KAAK,GAAIC,KAAWD,GAMhB,GAHAC,EAAUD,EAASC,GAGfA,EAAQF,aAAeA,EAEvB,MAAOE,EAKfp9E,SAAQukB,KAAK,kEAAoE24D,EAAa,OAASl7E,EAAM,SASjHhC,SAAQukB,KAAK,qDAAuDviB,EAAM,MAAQ8zD,EAAS,IAInG,OAAO,OAeXunB,eAAgB,SAAUr7E,GAEtB,MAAO1W,MAAKq2E,QAAQ3/D,EAAKod,EAAOs3B,MAAM10B,QAAS,mBAenDs7D,UAAW,SAAUt7E,GAEjB,MAAO1W,MAAKq2E,QAAQ3/D,EAAKod,EAAOs3B,MAAMqiC,OAAQ,cAelDwE,cAAe,SAAUv7E,GAErB,MAAO1W,MAAKq2E,QAAQ3/D,EAAKod,EAAOs3B,MAAMt0B,WAAY,gBAAiB,SAevEo7D,cAAe,SAAUx7E,GAErB,MAAO1W,MAAKq2E,QAAQ3/D,EAAKod,EAAOs3B,MAAMsiC,WAAY,kBAmBtDyE,QAAS,SAAUz7E,EAAK4kB,GAEpB,GAAInqB,GAAOnR,KAAKq2E,QAAQ3/D,EAAKod,EAAOs3B,MAAMuiC,KAAM,UAAW,OAE3D,OAAIx8E,GAEImqB,EAEOxH,EAAOoF,MAAMgC,QAAO,EAAM/pB,GAI1BA,EAKJ,MAgBfihF,OAAQ,SAAU17E,GAEd,MAAO1W,MAAKq2E,QAAQ3/D,EAAKod,EAAOs3B,MAAMwiC,IAAK,SAAU,SAezDyE,SAAU,SAAU37E,GAEhB,MAAO1W,MAAKq2E,QAAQ3/D,EAAKod,EAAOs3B,MAAMvzB,MAAO,aAejDy6D,UAAW,SAAU57E,GAEjB,MAAO1W,MAAKq2E,QAAQ3/D,EAAKod,EAAOs3B,MAAMyiC,OAAQ,YAAa,SAe/D0E,iBAAkB,SAAU77E,GAExB,MAAO1W,MAAKq2E,QAAQ3/D,EAAKod,EAAOs3B,MAAM0iC,eAAgB,qBAgB1D0E,eAAgB,SAAU97E,EAAKmyB,GAI3B,MAFcp/B,UAAVo/B,IAAuBA,EAAQ/U,EAAOs3B,MAAMj1B,OAEzCn2B,KAAKq2E,QAAQ3/D,EAAKmyB,EAAO,iBAAkB,SAWtDggD,SAAU,SAAUnyE,GAEhB,MAAO1W,MAAKq2E,QAAQ3/D,EAAKod,EAAOs3B,MAAMj1B,MAAO,WAAY,UAW7Ds8D,cAAe,SAAU/7E,GAErB,GAAIvF,GAAOnR,KAAKkpE,aAAaxyD,EAE7B,OAAIvF,GAEOA,EAAK8oC,MAIL,GAgBfivB,aAAc,SAAUxyD,GAEpB,MAAO1W,MAAKq2E,QAAQ3/D,EAAKod,EAAOs3B,MAAMj1B,MAAO,eAAgB,cAWjE6yC,aAAc,SAAUtyD,GAEpB,MAAmE,QAA3D1W,KAAKq2E,QAAQ3/D,EAAKod,EAAOs3B,MAAMj1B,MAAO,GAAI,cAYtDgyD,gBAAiB,SAAUzxE,EAAK2yD,EAAWxgC,GAEzBp/B,SAAVo/B,IAAuBA,EAAQ/U,EAAOs3B,MAAMj1B,OAE5Cn2B,KAAKqtF,UAAUxkD,GAAOnyB,KAEtB1W,KAAKqtF,UAAUxkD,GAAOnyB,GAAK2yD,UAAYA,IAa/CqpB,gBAAiB,SAAUh8E,EAAKhO,GAE5B,GAAIyI,GAAOnR,KAAKkpE,aAAaxyD,EAE7B,OAAIvF,GAEOA,EAAK03E,SAASngF,GAId,MAafogF,eAAgB,SAAUpyE,EAAKykB,GAE3B,GAAIhqB,GAAOnR,KAAKkpE,aAAaxyD,EAE7B,OAAIvF,GAEOA,EAAK23E,eAAe3tD,GAIpB,MAafw3D,eAAgB,SAAUj8E,GAEtB,MAAI5W,MAAK6O,aAAa+H,GAEX5W,KAAK6O,aAAa+H,IAIzBhC,QAAQukB,KAAK,8CAAgDviB,EAAM,KAC5D,OAafk8E,mBAAoB,SAAUl8E,GAE1B,MAAI5W,MAAK8xB,iBAAiBlb,GAEf5W,KAAK8xB,iBAAiBlb,IAI7BhC,QAAQukB,KAAK,kDAAoDviB,EAAM,KAChE,OAcfm8E,OAAQ,SAAU9lB,GAEd,GAAIA,GAAM/sE,KAAKquF,YAAYthB,EAE3B,OAAIA,GAEO/sE,KAAKitF,QAAQlgB,IAIpBr4D,QAAQukB,KAAK,sCAAwC8zC,EAAO,uCACrD,OAYf+lB,QAAS,SAAUjqD,GAEDp/B,SAAVo/B,IAAuBA,EAAQ/U,EAAOs3B,MAAMj1B,MAEhD,IAAImG,KAEJ,IAAIt8B,KAAK8sF,OAAOjkD,GAEZ,IAAK,GAAInyB,KAAO1W,MAAK8sF,OAAOjkD,GAEZ,cAARnyB,GAA+B,cAARA,GAEvB4lB,EAAI/3B,KAAKmS,EAKrB,OAAO4lB,IAiBXy2D,aAAc,SAAUr8E,SAEb1W,MAAK8sF,OAAO/7E,OAAO2F,IAc9B03E,YAAa,SAAU13E,EAAKs8E,GAEDvpF,SAAnBupF,IAAgCA,GAAiB,SAE9ChzF,MAAK8sF,OAAOr6D,MAAM/b,GAErBs8E,GAEAlzF,KAAK8xB,iBAAiBlb,GAAKnT,WAcnC0vF,YAAa,SAAUv8E,SAEZ1W,MAAK8sF,OAAO7jD,MAAMvyB,IAa7Bw8E,WAAY,SAAUx8E,SAEX1W,MAAK8sF,OAAOlvC,KAAKlnC,IAa5By8E,cAAe,SAAUz8E,SAEd1W,MAAK8sF,OAAOzjD,QAAQ3yB,IAa/B08E,cAAe,SAAU18E,SAEd1W,MAAK8sF,OAAOtgB,QAAQ91D,IAa/B28E,aAAc,SAAU38E,SAEb1W,MAAK8sF,OAAOC,OAAOr2E,IAa9B48E,iBAAkB,SAAU58E,SAEjB1W,MAAK8sF,OAAOhmD,WAAWpwB,IAalC68E,iBAAkB,SAAU78E,SAEjB1W,MAAK8sF,OAAOE,WAAWt2E,IAalC88E,WAAY,SAAU98E,SAEX1W,MAAK8sF,OAAOZ,KAAKx1E,IAa5B+8E,UAAW,SAAU/8E,SAEV1W,MAAK8sF,OAAOL,IAAI/1E,IAa3Bg9E,YAAa,SAAUh9E,SAEZ1W,MAAK8sF,OAAOhgB,MAAMp2D,IAa7Bi9E,aAAc,SAAUj9E,SAEb1W,MAAK8sF,OAAO/gF,OAAO2K,IAa9Bk9E,oBAAqB,SAAUl9E,SAEpB1W,MAAK8sF,OAAOnmF,cAAc+P,IAarCm9E,kBAAmB,SAAUn9E,SAElB1W,MAAK8sF,OAAOnB,YAAYj1E,IAanCo9E,mBAAoB,SAAUp9E,SAEnB1W,MAAK8sF,OAAOiH,MAAMr9E,IAW7B41C,gBAAiB,WAEb,IAAK,GAAI51C,KAAO1W,MAAK6oC,MAAMpW,MAEvBzyB,KAAK6oC,MAAMpW,MAAM/b,GAAK0yD,KAAKzxD,gBAenC02E,YAAa,SAAUthB,EAAK57D,GAExB,MAAKnR,MAAK6sF,gBAKV7sF,KAAKktF,aAAar8E,IAAM7Q,KAAK4E,KAAKmkC,KAAKirD,QAAUjnB,EAEjD/sE,KAAKmtF,SAAWntF,KAAKktF,aAAar8E,IAGlC7Q,KAAKktF,aAAar8E,IAAM,GAGpBM,IAEAnR,KAAKitF,QAAQjtF,KAAKmtF,UAAYh8E,GAG3BnR,KAAKmtF,UAhBD,MA0Bf5pF,QAAS,WAEL,IAAK,GAAIE,GAAI,EAAGA,EAAIzD,KAAKqtF,UAAU3pF,OAAQD,IAC3C,CACI,GAAIolC,GAAQ7oC,KAAKqtF,UAAU5pF,EAE3B,KAAK,GAAIiT,KAAOmyB,GAEA,cAARnyB,GAA+B,cAARA,IAEnBmyB,EAAMnyB,GAAc,SAEpBmyB,EAAMnyB,GAAKnT,gBAGRslC,GAAMnyB,IAKzB1W,KAAKitF,QAAU,KACfjtF,KAAKktF,aAAe,KACpBltF,KAAKmtF,SAAW,OAMxBr5D,EAAOs3B,MAAM/nD,UAAUC,YAAcwwB,EAAOs3B,MAuB5Ct3B,EAAOu3B,OAAS,SAAUzmD,GAOtB5E,KAAK4E,KAAOA,EAOZ5E,KAAK6oC,MAAQjkC,EAAKikC,MAOlB7oC,KAAKuvD,aAAc,EAOnBvvD,KAAKi0F,WAAY,EAOjBj0F,KAAKiM,WAAY,EAUjBjM,KAAKk0F,cAAgB,KAOrBl0F,KAAK0yB,aAAc,EASnB1yB,KAAKg0F,QAAU,GAoBfh0F,KAAKm0F,KAAO,GAQZn0F,KAAKo0F,YAAc,GAAItgE,GAAO0W,OAO9BxqC,KAAKq0F,eAAiB,GAAIvgE,GAAO0W,OAWjCxqC,KAAKs0F,eAAiB,GAAIxgE,GAAO0W,OAUjCxqC,KAAKu0F,YAAc,GAAIzgE,GAAO0W,OAa9BxqC,KAAKw0F,eAAiB,GAAI1gE,GAAO0W,OAWjCxqC,KAAKy0F,YAAc,GAAI3gE,GAAO0W,OAU9BxqC,KAAK00F,mBAAoB,EAMzB10F,KAAK20F,4BAA6B,EASlC30F,KAAK40F,gBAAiB,EAUtB50F,KAAK60F,qBAAuB,EAM5B70F,KAAK80F,oBAAsB,EAU3B90F,KAAK+0F,aAcL/0F,KAAKg1F,gBAQLh1F,KAAKi1F,gBAAkB,EASvBj1F,KAAKk1F,kBAAmB,EAOxBl1F,KAAKm1F,gBAAkB,EAOvBn1F,KAAKo1F,gBAAkB,EAOvBp1F,KAAKq1F,iBAAmB,EAOxBr1F,KAAKs1F,iBAAmB,GAQ5BxhE,EAAOu3B,OAAOkqC,yBAA2B,EAMzCzhE,EAAOu3B,OAAOmqC,wBAA0B,EAMxC1hE,EAAOu3B,OAAO0kC,2BAA6B,EAM3Cj8D,EAAOu3B,OAAOoqC,yBAA2B,EAMzC3hE,EAAOu3B,OAAOqqC,oBAAsB,EAEpC5hE,EAAOu3B,OAAOhoD,WAcVsyF,iBAAkB,SAAUhsE,EAAQisE,GAEhCA,EAAYA,GAAa,EAEzB51F,KAAKk0F,eAAkBvqE,OAAQA,EAAQisE,UAAWA,EAAW/uF,MAAO8iB,EAAO9iB,MAAOC,OAAQ6iB,EAAO7iB,OAAQ0qB,KAAM,MAK3GxxB,KAAKk0F,cAAc1iE,KAHL,IAAdokE,EAG0B,GAAI9hE,GAAO9wB,UAAU,EAAG,EAAG,EAAG2mB,EAAO7iB,QAKrC,GAAIgtB,GAAO9wB,UAAU,EAAG,EAAG2mB,EAAO9iB,MAAO,GAGvE8iB,EAAOzc,KAAKlN,KAAKk0F,cAAc1iE,MAE/B7H,EAAO1nB,SAAU,GAYrB8F,OAAQ,WAEA/H,KAAKk0F,eAAiBl0F,KAAKk0F,cAAcptF,SAAW9G,KAAKk0F,cAAcvqE,OAAO7iB,SAE9E9G,KAAKk0F,cAAc1iE,KAAK1qB,OAAS9G,KAAKk0F,cAAcvqE,OAAO7iB,SAenE+uF,eAAgB,SAAU9+E,EAAML,GAE5B,MAAO1W,MAAK81F,cAAc/+E,EAAML,GAAO,IAe3Co/E,cAAe,SAAU/+E,EAAML,GAI3B,IAAK,GAFDq/E,GAAY,GAEPtyF,EAAI,EAAGA,EAAIzD,KAAK+0F,UAAUrxF,OAAQD,IAC3C,CACI,GAAIovE,GAAO7yE,KAAK+0F,UAAUtxF,EAE1B,IAAIovE,EAAK97D,OAASA,GAAQ87D,EAAKn8D,MAAQA,IAEnCq/E,EAAYtyF,GAGPovE,EAAKmjB,SAAWnjB,EAAKojB,SAEtB,MAKZ,MAAOF,IAeXG,SAAU,SAAUn/E,EAAML,GAEtB,GAAIy/E,GAAYn2F,KAAK81F,cAAc/+E,EAAML,EAEzC,OAAIy/E,GAAY,IAEHztF,MAAOytF,EAAWtjB,KAAM7yE,KAAK+0F,UAAUoB,KAG7C,GAgBX15E,MAAO,SAAUw0C,EAAMo2B,GAEC59E,SAAhB49E,IAA6BA,GAAc,GAE3CrnF,KAAKuvD,cAKL0B,IAEAjxD,KAAKk0F,cAAgB,MAGzBl0F,KAAKi0F,WAAY,EAEjBj0F,KAAKi1F,gBAAkB,EACvBj1F,KAAK+0F,UAAUrxF,OAAS,EACxB1D,KAAKg1F,aAAatxF,OAAS,EAE3B1D,KAAKk1F,kBAAmB,EACxBl1F,KAAKo1F,gBAAkB,EACvBp1F,KAAKm1F,gBAAkB,EACvBn1F,KAAKq1F,iBAAmB,EACxBr1F,KAAKs1F,iBAAmB,EAEpBjO,IAEArnF,KAAKo0F,YAAYvnD,YACjB7sC,KAAKq0F,eAAexnD,YACpB7sC,KAAKs0F,eAAeznD,YACpB7sC,KAAKu0F,YAAY1nD,YACjB7sC,KAAKw0F,eAAe3nD,YACpB7sC,KAAKy0F,YAAY5nD,eAkBzBupD,cAAe,SAAUr/E,EAAML,EAAKq2D,EAAKspB,EAAYC,EAAWC,GAI5D,GAFkB9sF,SAAd6sF,IAA2BA,GAAY,GAE/B7sF,SAARiN,GAA6B,KAARA,EAGrB,MADAhC,SAAQukB,KAAK,kDAAoDliB,GAC1D/W,IAGX,IAAYyJ,SAARsjE,GAA6B,OAARA,EACzB,CACI,IAAIwpB,EAOA,MADA7hF,SAAQukB,KAAK,8CAAgDliB,EAAO,SAAWL,GACxE1W,IALP+sE,GAAMr2D,EAAM6/E,EASpB,GAAI1jB,IACA97D,KAAMA,EACNL,IAAKA,EACLy9E,KAAMn0F,KAAKm0F,KACXpnB,IAAKA,EACLypB,UAAWx2F,KAAK80F,oBAAsB,EACtC3jF,KAAM,KACN8kF,SAAS,EACTD,QAAQ,EACR1f,OAAO,EAGX,IAAI+f,EAEA,IAAK,GAAIh9D,KAAQg9D,GAEbxjB,EAAKx5C,GAAQg9D,EAAWh9D,EAIhC,IAAI88D,GAAYn2F,KAAK81F,cAAc/+E,EAAML,EAEzC,IAAI4/E,GAAaH,EAAY,GAC7B,CACI,GAAIM,GAAcz2F,KAAK+0F,UAAUoB,EAE5BM,GAAYR,SAAYQ,EAAYT,QAMrCh2F,KAAK+0F,UAAUxwF,KAAKsuE,GACpB7yE,KAAKo1F,mBALLp1F,KAAK+0F,UAAUoB,GAAatjB,MAQb,KAAdsjB,IAELn2F,KAAK+0F,UAAUxwF,KAAKsuE,GACpB7yE,KAAKo1F,kBAGT,OAAOp1F,OAcX02F,kBAAmB,SAAU3/E,EAAML,EAAKq2D,EAAKspB,GAEzC,MAAOr2F,MAAKo2F,cAAcr/E,EAAML,EAAKq2D,EAAKspB,GAAY,IA0B1DM,KAAM,SAAUjgF,EAAKq2D,EAAK57D,EAAM66B,GAM5B,GAJYviC,SAARsjE,IAAqBA,EAAM,MAClBtjE,SAAT0H,IAAsBA,EAAO,MACT1H,SAApBuiC,IAAiCA,EAAkB,OAElD+gC,IAAQ57D,EAIT,MAFAuD,SAAQukB,KAAK,qEAENj5B,IAGX,IAAI22F,IACA5/E,KAAM,WACNL,IAAKA,EACLq2D,IAAKA,EACLonB,KAAMn0F,KAAKm0F,KACXqC,WAAW,EACXrlF,KAAM,KACN8kF,SAAS,EACTD,QAAQ,EACR1f,OAAO,EACPtqC,gBAAiBA,EAIjB76B,KAEoB,gBAATA,KAEPA,EAAOw8E,KAAKlrD,MAAMtxB,IAGtBwlF,EAAKxlF,KAAOA,MAGZwlF,EAAKX,QAAS,EAKlB,KAAK,GAAIvyF,GAAI,EAAGA,EAAIzD,KAAK+0F,UAAUrxF,OAAS,EAAGD,IAC/C,CACI,GAAIovE,GAAO7yE,KAAK+0F,UAAUtxF,EAE1B,KAAKovE,IAAUA,EAAKmjB,SAAWnjB,EAAKojB,SAAyB,aAAdpjB,EAAK97D,KACpD,CACI/W,KAAK+0F,UAAUnsF,OAAOnF,EAAG,EAAGkzF,GAC5B32F,KAAKm1F,iBACL,QAIR,MAAOn1F,OA2BXyyB,MAAO,SAAU/b,EAAKq2D,EAAKupB,GAEvB,MAAOt2F,MAAKo2F,cAAc,QAAS1/E,EAAKq2D,EAAKtjE,OAAW6sF,EAAW,SAyBvE14C,KAAM,SAAUlnC,EAAKq2D,EAAKupB,GAEtB,MAAOt2F,MAAKo2F,cAAc,OAAQ1/E,EAAKq2D,EAAKtjE,OAAW6sF,EAAW,SA0BtEpK,KAAM,SAAUx1E,EAAKq2D,EAAKupB,GAEtB,MAAOt2F,MAAKo2F,cAAc,OAAQ1/E,EAAKq2D,EAAKtjE,OAAW6sF,EAAW,UAyBtEvqF,OAAQ,SAAU2K,EAAKq2D,EAAKupB,GAExB,MAAOt2F,MAAKo2F,cAAc,SAAU1/E,EAAKq2D,EAAKtjE,OAAW6sF,EAAW,UAyBxE7J,IAAK,SAAU/1E,EAAKq2D,EAAKupB,GAErB,MAAOt2F,MAAKo2F,cAAc,MAAO1/E,EAAKq2D,EAAKtjE,OAAW6sF,EAAW,SA6BrEM,OAAQ,SAAUlgF,EAAKq2D,EAAKp0B,EAAU3M,GAMlC,MAJiBviC,UAAbkvC,IAA0BA,GAAW,GAErCA,KAAa,GAA6BlvC,SAApBuiC,IAAiCA,EAAkBhsC,MAEtEA,KAAKo2F,cAAc,SAAU1/E,EAAKq2D,GAAOypB,WAAW,EAAM79C,SAAUA,EAAU3M,gBAAiBA,IAAmB,EAAO,QA+BpI+gD,OAAQ,SAAUr2E,EAAKq2D,EAAKp0B,EAAU3M,GAOlC,MALiBviC,UAAbkvC,IAA0BA,GAAW,GAGrCA,KAAa,GAA6BlvC,SAApBuiC,IAAiCA,EAAkB2M,GAEtE34C,KAAKo2F,cAAc,SAAU1/E,EAAKq2D,GAAOp0B,SAAUA,EAAU3M,gBAAiBA,IAAmB,EAAO,SAoCnH6qD,YAAa,SAAUngF,EAAKq2D,EAAK6e,EAAYC,EAAaC,EAAUnsC,EAAQosC,GAMxE,MAJiBtiF,UAAbqiF,IAA0BA,EAAW,IAC1BriF,SAAXk2C,IAAwBA,EAAS,GACrBl2C,SAAZsiF,IAAyBA,EAAU,GAEhC/rF,KAAKo2F,cAAc,cAAe1/E,EAAKq2D,GAAO6e,WAAYA,EAAYC,YAAaA,EAAaC,SAAUA,EAAUnsC,OAAQA,EAAQosC,QAASA,IAAW,EAAO,SA6B1KphB,MAAO,SAAUj0D,EAAKogF,EAAMC,GAExB,MAAI/2F,MAAK4E,KAAKqkC,MAAM+tD,QAETh3F,MAGQyJ,SAAfstF,IAA4BA,GAAa,GAEzB,gBAATD,KAEPA,GAAQA,IAGL92F,KAAKo2F,cAAc,QAAS1/E,EAAKogF,GAAQ96E,OAAQ,KAAM+6E,WAAYA,MA4B9EE,YAAa,SAASvgF,EAAKogF,EAAMI,EAASC,EAAUJ,GAEhD,MAAI/2F,MAAK4E,KAAKqkC,MAAM+tD,QAETh3F,MAGKyJ,SAAZytF,IAAyBA,EAAU,MACtBztF,SAAb0tF,IAA0BA,EAAW,MACtB1tF,SAAfstF,IAA4BA,GAAa,GAE7C/2F,KAAK2qE,MAAMj0D,EAAKogF,EAAMC,GAElBG,EAEAl3F,KAAKksF,KAAKx1E,EAAM,cAAewgF,GAE1BC,GAEmB,gBAAbA,KAEPA,EAAWxJ,KAAKlrD,MAAM00D,IAG1Bn3F,KAAK6oC,MAAM2mD,QAAQ94E,EAAM,cAAe,GAAIygF,IAI5CziF,QAAQukB,KAAK,8FAGVj5B,OAkCX8sE,MAAO,SAAUp2D,EAAKogF,EAAMM,EAAWC,GAqBnC,MAnBkB5tF,UAAd2tF,IAIIA,EAFAp3F,KAAK4E,KAAK6uC,OAAOggC,QAEL,aAIA,kBAILhqE,SAAX4tF,IAAwBA,GAAS,GAEjB,gBAATP,KAEPA,GAAQA,IAGL92F,KAAKo2F,cAAc,QAAS1/E,EAAKogF,GAAQ96E,OAAQ,KAAMq7E,OAAQA,EAAQD,UAAWA,KAiC7F5qB,QAAS,SAAU91D,EAAKq2D,EAAK57D,EAAMgH,GAmB/B,GAjBY1O,SAARsjE,IAAqBA,EAAM,MAClBtjE,SAAT0H,IAAsBA,EAAO,MAClB1H,SAAX0O,IAAwBA,EAAS2b,EAAO64C,QAAQ2qB,KAE/CvqB,GAAQ57D,IAIL47D,EAFA50D,IAAW2b,EAAO64C,QAAQ2qB,IAEpB5gF,EAAM,OAINA,EAAM,SAKhBvF,EACJ,CACI,OAAQgH,GAGJ,IAAK2b,GAAO64C,QAAQ2qB,IAChB,KAGJ,KAAKxjE,GAAO64C,QAAQ4qB,WAEI,gBAATpmF,KAEPA,EAAOw8E,KAAKlrD,MAAMtxB,IAK9BnR,KAAK6oC,MAAMgmD,WAAWn4E,EAAK,KAAMvF,EAAMgH,OAIvCnY,MAAKo2F,cAAc,UAAW1/E,EAAKq2D,GAAO50D,OAAQA,GAGtD,OAAOnY,OAmCXqpC,QAAS,SAAU3yB,EAAKq2D,EAAK57D,EAAMgH,GA0B/B,MAxBY1O,UAARsjE,IAAqBA,EAAM,MAClBtjE,SAAT0H,IAAsBA,EAAO,MAClB1H,SAAX0O,IAAwBA,EAAS2b,EAAO8gB,QAAQ4iD,kBAE/CzqB,GAAQ57D,IAET47D,EAAMr2D,EAAM,SAIZvF,GAEoB,gBAATA,KAEPA,EAAOw8E,KAAKlrD,MAAMtxB,IAGtBnR,KAAK6oC,MAAM+lD,eAAel4E,EAAK,KAAMvF,EAAMgH,IAI3CnY,KAAKo2F,cAAc,UAAW1/E,EAAKq2D,GAAO50D,OAAQA,IAG/CnY,MA0CXgtF,WAAY,SAAUt2E,EAAK+gF,EAAYC,EAAUvI,EAAWjjB,EAAUC,GAYlE,IAXmB1iE,SAAfguF,GAA2C,OAAfA,KAE5BA,EAAa/gF,EAAM,QAGNjN,SAAbiuF,IAA0BA,EAAW,MACvBjuF,SAAd0lF,IAA2BA,EAAY,MAC1B1lF,SAAbyiE,IAA0BA,EAAW,GACxBziE,SAAb0iE,IAA0BA,EAAW,GAGrCurB,EAEA13F,KAAKo2F,cAAc,aAAc1/E,EAAK+gF,GAAcC,SAAUA,EAAUxrB,SAAUA,EAAUC,SAAUA,QAKtG,IAAyB,gBAAdgjB,GACX,CACI,GAAIjD,GAAMO,CAEV,KAEIP,EAAOyB,KAAKlrD,MAAM0sD,GAEtB,MAAQl0D,GAEJwxD,EAAMzsF,KAAK23F,SAASxI,GAGxB,IAAK1C,IAAQP,EAET,KAAM,IAAIrjF,OAAM,iDAGpB7I,MAAKo2F,cAAc,aAAc1/E,EAAK+gF,GAAcC,SAAU,KAAMvI,UAAWjD,GAAQO,EACnF2C,UAAclD,EAAO,OAAS,MAAQhgB,SAAUA,EAAUC,SAAUA,IAIhF,MAAOnsE,OA2CX43F,eAAgB,SAAUlhF,EAAK+gF,EAAYC,EAAUvI,GAEjD,MAAOnvF,MAAK+zF,MAAMr9E,EAAK+gF,EAAYC,EAAUvI,EAAWr7D,EAAOu3B,OAAOkqC,2BA4C1EsC,cAAe,SAAUnhF,EAAK+gF,EAAYC,EAAUvI,GAEhD,MAAOnvF,MAAK+zF,MAAMr9E,EAAK+gF,EAAYC,EAAUvI,EAAWr7D,EAAOu3B,OAAOmqC,0BA4C1EsC,SAAU,SAAUphF,EAAK+gF,EAAYC,EAAUvI,GAU3C,MARiB1lF,UAAbiuF,IAA0BA,EAAW,MACvBjuF,SAAd0lF,IAA2BA,EAAY,MAEtCuI,GAAavI,IAEduI,EAAWhhF,EAAM,QAGd1W,KAAK+zF,MAAMr9E,EAAK+gF,EAAYC,EAAUvI,EAAWr7D,EAAOu3B,OAAO0kC,6BA2C1EgE,MAAO,SAAUr9E,EAAK+gF,EAAYC,EAAUvI,EAAWh3E,GAwBnD,IAtBmB1O,SAAfguF,GAA2C,OAAfA,KAE5BA,EAAa/gF,EAAM,QAGNjN,SAAbiuF,IAA0BA,EAAW,MACvBjuF,SAAd0lF,IAA2BA,EAAY,MAC5B1lF,SAAX0O,IAAwBA,EAAS2b,EAAOu3B,OAAOkqC,0BAE9CmC,GAAavI,IAIVuI,EAFAv/E,IAAW2b,EAAOu3B,OAAO0kC,2BAEdr5E,EAAM,OAINA,EAAM,SAKrBghF,EAEA13F,KAAKo2F,cAAc,eAAgB1/E,EAAK+gF,GAAcC,SAAUA,EAAUv/E,OAAQA,QAGtF,CACI,OAAQA,GAGJ,IAAK2b,GAAOu3B,OAAOkqC,yBAEU,gBAAdpG,KAEPA,EAAYxB,KAAKlrD,MAAM0sD,GAE3B,MAGJ,KAAKr7D,GAAOu3B,OAAO0kC,2BAEf,GAAyB,gBAAdZ,GACX,CACI,GAAI1C,GAAMzsF,KAAK23F,SAASxI,EAExB,KAAK1C,EAED,KAAM,IAAI5jF,OAAM,iDAGpBsmF,GAAY1C,GAKxBzsF,KAAKo2F,cAAc,eAAgB1/E,EAAK+gF,GAAcC,SAAU,KAAMvI,UAAWA,EAAWh3E,OAAQA,IAIxG,MAAOnY,OAiBX+3F,cAAe,SAAUp/C,EAAU3M,GAE/BhsC,KAAK80F,qBAEL,KACIn8C,EAAS7yC,KAAKkmC,GAAmBhsC,KAAMA,MACzC,QACEA,KAAK80F,sBAGT,MAAO90F,OAcXg4F,aAAc,SAAUjhF,EAAML,GAE1B,GAAIuhF,GAAQj4F,KAAKk2F,SAASn/E,EAAML,EAOhC,OALIuhF,KAEAA,EAAMplB,KAAK2jB,WAAY,GAGpBx2F,MAaXk4F,WAAY,SAAUnhF,EAAML,GAExB,GAAIuhF,GAAQj4F,KAAKk2F,SAASn/E,EAAML,EAE5BuhF,KAEKA,EAAMjC,QAAWiC,EAAMhC,SAExBj2F,KAAK+0F,UAAUnsF,OAAOqvF,EAAMvvF,MAAO,KAY/CmkC,UAAW,WAEP7sC,KAAK+0F,UAAUrxF,OAAS,EACxB1D,KAAKg1F,aAAatxF,OAAS,GAS/B0H,MAAO,WAECpL,KAAKi0F,YAKTj0F,KAAKiM,WAAY,EACjBjM,KAAKi0F,WAAY,EAEjBj0F,KAAKm4F,iBAELn4F,KAAKo4F,qBAiBTA,iBAAkB,WAEd,IAAKp4F,KAAKi0F,UAIN,MAFAv/E,SAAQukB,KAAK,uDACbj5B,MAAKq4F,iBAAgB,EAKzB,KAAK,GAAI50F,GAAI,EAAGA,EAAIzD,KAAKg1F,aAAatxF,OAAQD,IAC9C,CACI,GAAIovE,GAAO7yE,KAAKg1F,aAAavxF,IAEzBovE,EAAKmjB,QAAUnjB,EAAKyD,SAEpBt2E,KAAKg1F,aAAapsF,OAAOnF,EAAG,GAC5BA,IAEAovE,EAAKojB,SAAU,EACfpjB,EAAKylB,WAAa,KAClBzlB,EAAK0lB,cAAgB,KAEjB1lB,EAAKyD,OAELt2E,KAAKy0F,YAAYhoD,SAASomC,EAAKn8D,IAAKm8D,GAGtB,aAAdA,EAAK97D,MAEL/W,KAAKs1F,mBACLt1F,KAAKw0F,eAAe/nD,SAASzsC,KAAKw4F,SAAU3lB,EAAKn8D,KAAMm8D,EAAKyD,MAAOt2E,KAAKs1F,iBAAkBt1F,KAAKo1F,kBAE5E,aAAdviB,EAAK97D,MAAuB87D,EAAKyD,QAGtCt2E,KAAKq1F,mBACLr1F,KAAKs0F,eAAe7nD,SAASomC,EAAKn8D,KAAMm8D,EAAKyD,MAAOt2E,KAAKq1F,iBAAkBr1F,KAAKm1F,mBAW5F,IAAK,GAJDsD,IAAY,EAEZC,EAAgB14F,KAAK40F,eAAiB9gE,EAAOnzB,KAAKsgC,MAAMjhC,KAAK60F,qBAAsB,EAAG,IAAM,EAEvFpxF,EAAIzD,KAAKi1F,gBAAiBxxF,EAAIzD,KAAK+0F,UAAUrxF,OAAQD,IAC9D,CACI,GAAIovE,GAAO7yE,KAAK+0F,UAAUtxF,EAuD1B,IApDkB,aAAdovE,EAAK97D,OAAwB87D,EAAKyD,OAASzD,EAAKmjB,QAAUvyF,IAAMzD,KAAKi1F,kBAGrEj1F,KAAK24F,YAAY9lB,GAEjB7yE,KAAKq1F,mBACLr1F,KAAKs0F,eAAe7nD,SAASomC,EAAKn8D,KAAMm8D,EAAKyD,MAAOt2E,KAAKq1F,iBAAkBr1F,KAAKm1F,kBAGhFtiB,EAAKmjB,QAAUnjB,EAAKyD,MAGhB7yE,IAAMzD,KAAKi1F,kBAEXj1F,KAAKi1F,gBAAkBxxF,EAAI,IAGzBovE,EAAKojB,SAAWj2F,KAAKg1F,aAAatxF,OAASg1F,IAG/B,aAAd7lB,EAAK97D,MAAwB87D,EAAK1hE,KAS5BsnF,IAEDz4F,KAAKk1F,mBAENl1F,KAAKk1F,kBAAmB,EACxBl1F,KAAKo0F,YAAY3nD,YAGrBzsC,KAAKg1F,aAAazwF,KAAKsuE,GACvBA,EAAKojB,SAAU,EACfj2F,KAAKu0F,YAAY9nD,SAASzsC,KAAKw4F,SAAU3lB,EAAKn8D,IAAKm8D,EAAK9F,KAExD/sE,KAAK44F,SAAS/lB,KAjBd7yE,KAAKg1F,aAAazwF,KAAKsuE,GACvBA,EAAKojB,SAAU,EAEfj2F,KAAK44F,SAAS/lB,MAkBjBA,EAAKmjB,QAAUnjB,EAAK2jB,YAErBiC,GAAY,GAKZz4F,KAAKg1F,aAAatxF,QAAUg1F,GAC3BD,GAAaz4F,KAAKq1F,mBAAqBr1F,KAAKm1F,gBAE7C,MAQR,GAJAn1F,KAAKm4F,iBAIDn4F,KAAKi1F,iBAAmBj1F,KAAK+0F,UAAUrxF,OAEvC1D,KAAKq4F,sBAEJ,KAAKr4F,KAAKg1F,aAAatxF,OAC5B,CAGIgR,QAAQukB,KAAK,6EAEb,IAAImW,GAAQpvC,IAEZynD,YAAW,WACPrY,EAAMipD,iBAAgB,IACvB,OAYXA,gBAAiB,SAAUQ,GAEnB74F,KAAKiM,YAKTjM,KAAKiM,WAAY,EACjBjM,KAAKi0F,WAAY,EAGZ4E,GAAa74F,KAAKk1F,mBAEnBl1F,KAAKk1F,kBAAmB,EACxBl1F,KAAKo0F,YAAY3nD,YAGrBzsC,KAAKq0F,eAAe5nD,WAEpBzsC,KAAKyc,QAELzc,KAAK4E,KAAK+mC,MAAMiB,iBAapBksD,cAAe,SAAUjmB,EAAMkmB,GAENtvF,SAAjBsvF,IAA8BA,EAAe,IAEjDlmB,EAAKmjB,QAAS,EACdnjB,EAAKyD,QAAUyiB,EAEXA,IAEAlmB,EAAKkmB,aAAeA,EAEpBrkF,QAAQukB,KAAK,mBAAqB45C,EAAK97D,KAAO,IAAM87D,EAAKn8D,IAAM,MAAaqiF,IAIhF/4F,KAAKo4F,oBAWTO,YAAa,SAAUhC,GAEnB,GAAIqC,GAAWrC,EAAKxlF,KAAKwlF,EAAKjgF,IAE9B,KAAKsiF,EAGD,WADAtkF,SAAQukB,KAAK,mBAAqB09D,EAAKjgF,IAAM,wCAIjD,KAAK,GAAIjT,GAAI,EAAGA,EAAIu1F,EAASt1F,OAAQD,IACrC,CACI,GAAIovE,GAAOmmB,EAASv1F,EAEpB,QAAQovE,EAAK97D,MAET,IAAK,QACD/W,KAAKyyB,MAAMogD,EAAKn8D,IAAKm8D,EAAK9F,IAAK8F,EAAKyjB,UACpC,MAEJ,KAAK,OACDt2F,KAAK49C,KAAKi1B,EAAKn8D,IAAKm8D,EAAK9F,IAAK8F,EAAKyjB,UACnC,MAEJ,KAAK,OACDt2F,KAAKksF,KAAKrZ,EAAKn8D,IAAKm8D,EAAK9F,IAAK8F,EAAKyjB,UACnC,MAEJ,KAAK,MACDt2F,KAAKysF,IAAI5Z,EAAKn8D,IAAKm8D,EAAK9F,IAAK8F,EAAKyjB,UAClC,MAEJ,KAAK,SACDt2F,KAAK42F,OAAO/jB,EAAKn8D,IAAKm8D,EAAK9F,IAAK8F,EAAKl6B,SAAUg+C,EAAK3qD,iBAAmBhsC,KACvE,MAEJ,KAAK,SACDA,KAAK+sF,OAAOla,EAAKn8D,IAAKm8D,EAAK9F,IAAK8F,EAAKl6B,SAAUg+C,EAAK3qD,iBAAmBhsC,KACvE,MAEJ,KAAK,cACDA,KAAK62F,YAAYhkB,EAAKn8D,IAAKm8D,EAAK9F,IAAK8F,EAAK+Y,WAAY/Y,EAAKgZ,YAAahZ,EAAKiZ,SAAUjZ,EAAKlzB,OAAQkzB,EAAKkZ,QACzG,MAEJ,KAAK,QACD/rF,KAAK8sE,MAAM+F,EAAKn8D,IAAKm8D,EAAKikB,KAC1B,MAEJ,KAAK,QACD92F,KAAK2qE,MAAMkI,EAAKn8D,IAAKm8D,EAAKikB,KAAMjkB,EAAKkkB,WACrC,MAEJ,KAAK,cACD/2F,KAAKi3F,YAAYpkB,EAAKn8D,IAAKm8D,EAAKikB,KAAMjkB,EAAKqkB,QAASrkB,EAAKskB,SAAUtkB,EAAKkkB,WACxE,MAEJ,KAAK,UACD/2F,KAAKwsE,QAAQqG,EAAKn8D,IAAKm8D,EAAK9F,IAAK8F,EAAK1hE,KAAM2iB,EAAO64C,QAAQkG,EAAK16D,QAChE,MAEJ,KAAK,UACDnY,KAAKqpC,QAAQwpC,EAAKn8D,IAAKm8D,EAAK9F,IAAK8F,EAAK1hE,KAAM2iB,EAAOu3B,OAAOwnB,EAAK16D,QAC/D,MAEJ,KAAK,aACDnY,KAAKgtF,WAAWna,EAAKn8D,IAAKm8D,EAAK4kB,WAAY5kB,EAAK6kB,SAAU7kB,EAAKsc,UAAWtc,EAAK3G,SAAU2G,EAAK1G,SAC9F,MAEJ,KAAK,iBACDnsE,KAAK43F,eAAe/kB,EAAKn8D,IAAKm8D,EAAK4kB,WAAY5kB,EAAK6kB,SAAU7kB,EAAKsc,UACnE,MAEJ,KAAK,gBACDnvF,KAAK63F,cAAchlB,EAAKn8D,IAAKm8D,EAAK4kB,WAAY5kB,EAAK6kB,SAAU7kB,EAAKsc,UAClE,MAEJ,KAAK,WACDnvF,KAAK83F,SAASjlB,EAAKn8D,IAAKm8D,EAAK4kB,WAAY5kB,EAAK6kB,SAAU7kB,EAAKsc,UAC7D,MAEJ,KAAK,QACDnvF,KAAK+zF,MAAMlhB,EAAKn8D,IAAKm8D,EAAK4kB,WAAY5kB,EAAK6kB,SAAU7kB,EAAKsc,UAAWr7D,EAAOu3B,OAAOwnB,EAAK16D,QACxF,MAEJ,KAAK,SACDnY,KAAK+L,OAAO8mE,EAAKn8D,IAAKm8D,EAAK9F,IAAK8F,EAAKyjB,cAiBrD2C,aAAc,SAAUlsB,EAAK8F,GAEzB,MAAK9F,GAKoB,SAArBA,EAAI58D,OAAO,EAAG,IAAsC,OAArB48D,EAAI58D,OAAO,EAAG,GAEtC48D,EAIA/sE,KAAKg0F,QAAUnhB,EAAKshB,KAAOpnB,GAT3B,GAuBf6rB,SAAU,SAAU/lB,GAGhB,OAAQA,EAAK97D,MAET,IAAK,WACD/W,KAAKk5F,QAAQrmB,EAAM7yE,KAAKi5F,aAAapmB,EAAK9F,IAAK8F,GAAO,OAAQ7yE,KAAKm5F,aACnE,MAEJ,KAAK,QACL,IAAK,cACL,IAAK,eACL,IAAK,aACDn5F,KAAKo5F,aAAavmB,EAClB,MAEJ,KAAK,QACDA,EAAK9F,IAAM/sE,KAAKq5F,YAAYxmB,EAAK9F,KAE7B8F,EAAK9F,IAGD/sE,KAAK4E,KAAKqkC,MAAMqwD,cAEhBt5F,KAAKk5F,QAAQrmB,EAAM7yE,KAAKi5F,aAAapmB,EAAK9F,IAAK8F,GAAO,cAAe7yE,KAAKm5F,cAErEn5F,KAAK4E,KAAKqkC,MAAMswD,eAErBv5F,KAAKw5F,aAAa3mB,GAKtB7yE,KAAKy5F,UAAU5mB,EAAM,KAAM,kFAE/B,MAEJ,KAAK,QACDA,EAAK9F,IAAM/sE,KAAK05F,YAAY7mB,EAAK9F,KAE7B8F,EAAK9F,IAED8F,EAAKwkB,OAELr3F,KAAKk5F,QAAQrmB,EAAM7yE,KAAKi5F,aAAapmB,EAAK9F,IAAK8F,GAAO,cAAe7yE,KAAKm5F,cAI1En5F,KAAK25F,aAAa9mB,GAKtB7yE,KAAKy5F,UAAU5mB,EAAM,KAAM,kFAE/B,MAEJ,KAAK,OAED7yE,KAAKk5F,QAAQrmB,EAAM7yE,KAAKi5F,aAAapmB,EAAK9F,IAAK8F,GAAO,OAAQ7yE,KAAK45F,iBACnE,MAEJ,KAAK,MAED55F,KAAKk5F,QAAQrmB,EAAM7yE,KAAKi5F,aAAapmB,EAAK9F,IAAK8F,GAAO,OAAQ7yE,KAAK65F,gBACnE,MAEJ,KAAK,UAEGhnB,EAAK16D,SAAW2b,EAAO64C,QAAQ4qB,WAE/Bv3F,KAAKk5F,QAAQrmB,EAAM7yE,KAAKi5F,aAAapmB,EAAK9F,IAAK8F,GAAO,OAAQ7yE,KAAK45F,kBAE9D/mB,EAAK16D,SAAW2b,EAAO64C,QAAQ2qB,IAEpCt3F,KAAKk5F,QAAQrmB,EAAM7yE,KAAKi5F,aAAapmB,EAAK9F,IAAK8F,GAAO,OAAQ7yE,KAAK85F,iBAInE95F,KAAK84F,cAAcjmB,EAAM,2BAA6BA,EAAK16D,OAE/D,MAEJ,KAAK,OACL,IAAK,SACL,IAAK,SACL,IAAK,UACDnY,KAAKk5F,QAAQrmB,EAAM7yE,KAAKi5F,aAAapmB,EAAK9F,IAAK8F,GAAO,OAAQ7yE,KAAKm5F,aACnE,MAEJ,KAAK,SACDn5F,KAAKk5F,QAAQrmB,EAAM7yE,KAAKi5F,aAAapmB,EAAK9F,IAAK8F,GAAO,cAAe7yE,KAAKm5F,gBAUtFC,aAAc,SAAUvmB,GAEpB,GAAIzjC,GAAQpvC,IAEZ6yE,GAAK1hE,KAAO,GAAIP,OAChBiiE,EAAK1hE,KAAKgqB,KAAO03C,EAAKn8D,IAElB1W,KAAK0yB,cAELmgD,EAAK1hE,KAAKuhB,YAAc1yB,KAAK0yB,aAGjCmgD,EAAK1hE,KAAK4oF,OAAS,WACXlnB,EAAK1hE,KAAK4oF,SAEVlnB,EAAK1hE,KAAK4oF,OAAS,KACnBlnB,EAAK1hE,KAAK6oF,QAAU,KACpB5qD,EAAM+pD,aAAatmB,KAG3BA,EAAK1hE,KAAK6oF,QAAU,WACZnnB,EAAK1hE,KAAK4oF,SAEVlnB,EAAK1hE,KAAK4oF,OAAS,KACnBlnB,EAAK1hE,KAAK6oF,QAAU,KACpB5qD,EAAMqqD,UAAU5mB,KAIxBA,EAAK1hE,KAAKN,IAAM7Q,KAAKi5F,aAAapmB,EAAK9F,IAAK8F,GAGxCA,EAAK1hE,KAAK4gB,UAAY8gD,EAAK1hE,KAAKtK,OAASgsE,EAAK1hE,KAAKrK,SAEnD+rE,EAAK1hE,KAAK4oF,OAAS,KACnBlnB,EAAK1hE,KAAK6oF,QAAU,KACpBh6F,KAAKm5F,aAAatmB,KAS1B8mB,aAAc,SAAU9mB,GAEpB,GAAIzjC,GAAQpvC,IAEZ6yE,GAAK1hE,KAAOX,SAASQ,cAAc,SACnC6hE,EAAK1hE,KAAKgqB,KAAO03C,EAAKn8D,IACtBm8D,EAAK1hE,KAAK8oF,UAAW,EACrBpnB,EAAK1hE,KAAK+oF,UAAW,CAErB,IAAIC,GAAiB,WAEjBtnB,EAAK1hE,KAAKojC,oBAAoBs+B,EAAKukB,UAAW+C,GAAgB,GAC9DtnB,EAAK1hE,KAAK6oF,QAAU,KACpBnnB,EAAK1hE,KAAKipF,SAAU,EACpBtmE,EAAOyB,MAAM6Z,EAAMxqC,KAAKgT,IAAImxB,KAAKowD,aAAatmB,GAIlDA,GAAK1hE,KAAK6oF,QAAU,WAChBnnB,EAAK1hE,KAAKojC,oBAAoBs+B,EAAKukB,UAAW+C,GAAgB,GAC9DtnB,EAAK1hE,KAAK6oF,QAAU,KACpBnnB,EAAK1hE,KAAKipF,SAAU,EACpBhrD,EAAMqqD,UAAU5mB,IAGpBA,EAAK1hE,KAAKiiC,iBAAiBy/B,EAAKukB,UAAW+C,GAAgB,GAE3DtnB,EAAK1hE,KAAKN,IAAM7Q,KAAKi5F,aAAapmB,EAAK9F,IAAK8F,GAC5CA,EAAK1hE,KAAK43B,QAQdywD,aAAc,SAAU3mB,GAEpB,GAAIzjC,GAAQpvC,IAEZ,IAAIA,KAAK4E,KAAKqkC,MAAMylD,YAGhB7b,EAAK1hE,KAAO,GAAIkpF,OAChBxnB,EAAK1hE,KAAKgqB,KAAO03C,EAAKn8D,IACtBm8D,EAAK1hE,KAAKo4B,QAAU,OACpBspC,EAAK1hE,KAAKN,IAAM7Q,KAAKi5F,aAAapmB,EAAK9F,IAAK8F,GAE5C7yE,KAAKm5F,aAAatmB,OAGtB,CACIA,EAAK1hE,KAAO,GAAIkpF,OAChBxnB,EAAK1hE,KAAKgqB,KAAO03C,EAAKn8D,GAEtB,IAAI4jF,GAAmB,WACnBznB,EAAK1hE,KAAKojC,oBAAoB,iBAAkB+lD,GAAkB,GAClEznB,EAAK1hE,KAAK6oF,QAAU,KAEpBlmE,EAAOyB,MAAM6Z,EAAMxqC,KAAKgT,IAAImxB,KAAKowD,aAAatmB,GAElDA,GAAK1hE,KAAK6oF,QAAU,WAChBnnB,EAAK1hE,KAAKojC,oBAAoB,iBAAkB+lD,GAAkB,GAClEznB,EAAK1hE,KAAK6oF,QAAU,KACpB5qD,EAAMqqD,UAAU5mB,IAGpBA,EAAK1hE,KAAKo4B,QAAU,OACpBspC,EAAK1hE,KAAKN,IAAM7Q,KAAKi5F,aAAapmB,EAAK9F,IAAK8F,GAC5CA,EAAK1hE,KAAKiiC,iBAAiB,iBAAkBknD,GAAkB,GAC/DznB,EAAK1hE,KAAK43B,SAkBlBmwD,QAAS,SAAUrmB,EAAM9F,EAAKh2D,EAAMgjF,EAAQC,GAExC,GAAIh6F,KAAK00F,mBAAqBjgF,OAAO8lF,eAGjC,WADAv6F,MAAKw6F,eAAe3nB,EAAM9F,EAAKh2D,EAAMgjF,EAAQC,EAIjD,IAAIS,GAAM,GAAIC,eACdD,GAAIE,KAAK,MAAO5tB,GAAK,GACrB0tB,EAAIG,aAAe7jF,EAEnBijF,EAAUA,GAAWh6F,KAAKy5F,SAE1B,IAAIrqD,GAAQpvC,IAEZy6F,GAAIV,OAAS,WAET,IAEI,MAAOA,GAAOj0F,KAAKspC,EAAOyjC,EAAM4nB,GAElC,MAAOx/D,GAKAmU,EAAMnjC,UAMHwI,OAAgB,SAEhBC,QAAQ4hE,MAAMr7C,GANlBmU,EAAM0pD,cAAcjmB,EAAM53C,EAAE4/D,SAAW,eAYnDJ,EAAIT,QAAU,WAEV,IAEI,MAAOA,GAAQl0F,KAAKspC,EAAOyjC,EAAM4nB,GAEnC,MAAOx/D,GAEAmU,EAAMnjC,UAMHwI,OAAgB,SAEhBC,QAAQ4hE,MAAMr7C,GANlBmU,EAAM0pD,cAAcjmB,EAAM53C,EAAE4/D,SAAW,eAanDhoB,EAAK0lB,cAAgBkC,EACrB5nB,EAAKylB,WAAavrB,EAElB0tB,EAAIK,QAmBRN,eAAgB,SAAU3nB,EAAM9F,EAAKh2D,EAAMgjF,EAAQC,GAG1Ch6F,KAAK20F,4BACJ30F,KAAK4E,KAAK6uC,OAAOkgC,MAAM3zE,KAAK4E,KAAK6uC,OAAOmgC,WAAa,MAEvD5zE,KAAK20F,4BAA6B,EAClCjgF,QAAQukB,KAAK,wDAIjB,IAAIwhE,GAAM,GAAIhmF,QAAO8lF,cACrBE,GAAIE,KAAK,MAAO5tB,GAAK,GACrB0tB,EAAIG,aAAe7jF,EAKnB0jF,EAAIM,QAAU,IAEdf,EAAUA,GAAWh6F,KAAKy5F,SAE1B,IAAIrqD,GAAQpvC,IAEZy6F,GAAIT,QAAU,WACV,IACI,MAAOA,GAAQl0F,KAAKspC,EAAOyjC,EAAM4nB,GACnC,MAAOx/D,GACLmU,EAAM0pD,cAAcjmB,EAAM53C,EAAE4/D,SAAW,eAI/CJ,EAAIO,UAAY,WACZ,IACI,MAAOhB,GAAQl0F,KAAKspC,EAAOyjC,EAAM4nB,GACnC,MAAOx/D,GACLmU,EAAM0pD,cAAcjmB,EAAM53C,EAAE4/D,SAAW,eAI/CJ,EAAIQ,WAAa,aAEjBR,EAAIV,OAAS,WACT,IACI,MAAOA,GAAOj0F,KAAKspC,EAAOyjC,EAAM4nB,GAClC,MAAOx/D,GACLmU,EAAM0pD,cAAcjmB,EAAM53C,EAAE4/D,SAAW,eAI/ChoB,EAAK0lB,cAAgBkC,EACrB5nB,EAAKylB,WAAavrB,EAIlBtlB,WAAW,WACPgzC,EAAIK,QACL,IAcPpB,YAAa,SAAU5C,GAEnB,IAAK,GAAIrzF,GAAI,EAAGA,EAAIqzF,EAAKpzF,OAAQD,IACjC,CACI,GACIy3F,GADAnuB,EAAM+pB,EAAKrzF,EAGf,IAAIspE,EAAIouB,IAEJpuB,EAAMA,EAAIouB,IACVD,EAAYnuB,EAAIh2D,SAGpB,CAEI,GAA6B,IAAzBg2D,EAAI5jE,QAAQ,UAA2C,IAAzB4jE,EAAI5jE,QAAQ,SAE1C,MAAO4jE,EAGPA,GAAI5jE,QAAQ,MAAQ,IAEpB4jE,EAAMA,EAAI58D,OAAO,EAAG48D,EAAI5jE,QAAQ,MAGpC,IAAIotF,GAAYxpB,EAAI58D,QAAQxP,KAAK2+B,IAAI,EAAGytC,EAAIquB,YAAY,OAAS9wF,KAAY,EAE7E4wF,GAAY3E,EAAUle,cAG1B,GAAIr4E,KAAK4E,KAAK6uC,OAAOmmC,aAAashB,GAE9B,MAAOpE,GAAKrzF,GAIpB,MAAO,OAcX41F,YAAa,SAAUvC,GAEnB,GAAI92F,KAAK4E,KAAKqkC,MAAM+tD,QAEhB,MAAO,KAGX,KAAK,GAAIvzF,GAAI,EAAGA,EAAIqzF,EAAKpzF,OAAQD,IACjC,CACI,GACI43F,GADAtuB,EAAM+pB,EAAKrzF,EAGf,IAAIspE,EAAIouB,IAEJpuB,EAAMA,EAAIouB,IACVE,EAAYtuB,EAAIh2D,SAGpB,CAEI,GAA6B,IAAzBg2D,EAAI5jE,QAAQ,UAA2C,IAAzB4jE,EAAI5jE,QAAQ,SAE1C,MAAO4jE,EAGPA,GAAI5jE,QAAQ,MAAQ,IAEpB4jE,EAAMA,EAAI58D,OAAO,EAAG48D,EAAI5jE,QAAQ,MAGpC,IAAIotF,GAAYxpB,EAAI58D,QAAQxP,KAAK2+B,IAAI,EAAGytC,EAAIquB,YAAY,OAAS9wF,KAAY,EAE7E+wF,GAAY9E,EAAUle,cAG1B,GAAIr4E,KAAK4E,KAAK6uC,OAAOkmC,aAAa0hB,GAE9B,MAAOvE,GAAKrzF,GAIpB,MAAO,OAaXg2F,UAAW,SAAU5mB,EAAM4nB,EAAKa,GAE5B,GAAIvuB,GAAM8F,EAAKylB,YAAct4F,KAAKi5F,aAAapmB,EAAK9F,IAAK8F,GACrDgoB,EAAU,gCAAkC9tB,GAE3CuuB,GAAUb,IAEXa,EAASb,EAAIc,QAGbD,IAEAT,EAAUA,EAAU,KAAOS,EAAS,KAGxCt7F,KAAK84F,cAAcjmB,EAAMgoB,IAY7B1B,aAAc,SAAUtmB,EAAM4nB,GAE1B,GAAIe,IAAW,CAEf,QAAQ3oB,EAAK97D,MAET,IAAK,WAGD,GAAI5F,GAAOw8E,KAAKlrD,MAAMg4D,EAAIgB,aAC1B5oB,GAAK1hE,KAAOA,KACZ,MAEJ,KAAK,QAEDnR,KAAK6oC,MAAMqlD,SAASrb,EAAKn8D,IAAKm8D,EAAK9F,IAAK8F,EAAK1hE,KAC7C,MAEJ,KAAK,cAEDnR,KAAK6oC,MAAMgnD,eAAehd,EAAKn8D,IAAKm8D,EAAK9F,IAAK8F,EAAK1hE,KAAM0hE,EAAK+Y,WAAY/Y,EAAKgZ,YAAahZ,EAAKiZ,SAAUjZ,EAAKlzB,OAAQkzB,EAAKkZ,QAC7H,MAEJ,KAAK,eAED,GAAqB,MAAjBlZ,EAAK6kB,SAEL13F,KAAK6oC,MAAMinD,gBAAgBjd,EAAKn8D,IAAKm8D,EAAK9F,IAAK8F,EAAK1hE,KAAM0hE,EAAKsc,UAAWtc,EAAK16D,YAO/E,IAFAqjF,GAAW,EAEP3oB,EAAK16D,QAAU2b,EAAOu3B,OAAOkqC,0BAA4B1iB,EAAK16D,QAAU2b,EAAOu3B,OAAOmqC,wBAEtFx1F,KAAKk5F,QAAQrmB,EAAM7yE,KAAKi5F,aAAapmB,EAAK6kB,SAAU7kB,GAAO,OAAQ7yE,KAAK45F,sBAEvE,CAAA,GAAI/mB,EAAK16D,QAAU2b,EAAOu3B,OAAO0kC,2BAMlC,KAAM,IAAIlnF,OAAM,gDAAkDgqE,EAAK16D,OAJvEnY,MAAKk5F,QAAQrmB,EAAM7yE,KAAKi5F,aAAapmB,EAAK6kB,SAAU7kB,GAAO,OAAQ7yE,KAAK65F,iBAOhF,KAEJ,KAAK,aAEIhnB,EAAK6kB,UAON8D,GAAW,EACXx7F,KAAKk5F,QAAQrmB,EAAM7yE,KAAKi5F,aAAapmB,EAAK6kB,SAAU7kB,GAAO,OAAQ,SAAUA,EAAM4nB,GAC/E,GAAIvO,EAEJ,KAGIA,EAAOyB,KAAKlrD,MAAMg4D,EAAIgB,cAE1B,MAAOxgE,IAEDixD,GAEFrZ,EAAKuc,UAAY,OACjBpvF,KAAK45F,iBAAiB/mB,EAAM4nB,KAI5B5nB,EAAKuc,UAAY,MACjBpvF,KAAK65F,gBAAgBhnB,EAAM4nB,OAxBnCz6F,KAAK6oC,MAAMqmD,cAAcrc,EAAKn8D,IAAKm8D,EAAK9F,IAAK8F,EAAK1hE,KAAM0hE,EAAKsc,UAAWtc,EAAKuc,UAAWvc,EAAK3G,SAAU2G,EAAK1G,SA4BhH,MAEJ,KAAK,QAED,GAAI0G,EAAKwkB,OAEL,IAEIxkB,EAAK1hE,KAAO,GAAIuqF,OAAM,GAAIjnE,YAAWgmE,EAAIkB,YAE7C,MAAO1gE,GAEH,KAAM,IAAIpyB,OAAM,sDAAwDgqE,EAAKn8D,KAIrF1W,KAAK6oC,MAAM6mD,SAAS7c,EAAKn8D,IAAKm8D,EAAK9F,IAAK8F,EAAK1hE,KAAM0hE,EAAKwkB,OACxD,MAEJ,KAAK,QAEGr3F,KAAK4E,KAAKqkC,MAAMqwD,eAEhBzmB,EAAK1hE,KAAOspF,EAAIkB,SAEhB37F,KAAK6oC,MAAMylD,SAASzb,EAAKn8D,IAAKm8D,EAAK9F,IAAK8F,EAAK1hE,MAAM,GAAM,GAErD0hE,EAAKkkB,YAEL/2F,KAAK4E,KAAKqkC,MAAM2yD,OAAO/oB,EAAKn8D,MAKhC1W,KAAK6oC,MAAMylD,SAASzb,EAAKn8D,IAAKm8D,EAAK9F,IAAK8F,EAAK1hE,MAAM,GAAO,EAE9D,MAEJ,KAAK,OACD0hE,EAAK1hE,KAAOspF,EAAIgB,aAChBz7F,KAAK6oC,MAAM8lD,QAAQ9b,EAAKn8D,IAAKm8D,EAAK9F,IAAK8F,EAAK1hE,KAC5C,MAEJ,KAAK,SACD0hE,EAAK1hE,KAAOspF,EAAIgB,aAChBz7F,KAAK6oC,MAAM+mD,UAAU/c,EAAKn8D,IAAKm8D,EAAK9F,IAAK8F,EAAK1hE,KAC9C,MAEJ,KAAK,UACD,GAAIA,GAAOw8E,KAAKlrD,MAAMg4D,EAAIgB,aAC1Bz7F,MAAK6oC,MAAM+lD,eAAe/b,EAAKn8D,IAAKm8D,EAAK9F,IAAK57D,EAAM0hE,EAAK16D,OACzD,MAEJ,KAAK,SACD06D,EAAK1hE,KAAOX,SAASQ,cAAc,UACnC6hE,EAAK1hE,KAAK0qF,SAAW,aACrBhpB,EAAK1hE,KAAK4F,KAAO,kBACjB87D,EAAK1hE,KAAK2qF,OAAQ,EAClBjpB,EAAK1hE,KAAKysC,KAAO68C,EAAIgB,aACrBjrF,SAASurF,KAAK7zC,YAAY2qB,EAAK1hE,MAC3B0hE,EAAKl6B,WAELk6B,EAAK1hE,KAAO0hE,EAAKl6B,SAAS7yC,KAAK+sE,EAAK7mC,gBAAiB6mC,EAAKn8D,IAAK+jF,EAAIgB,cAEvE,MAEJ,KAAK,SAGG5oB,EAAK1hE,KAFL0hE,EAAKl6B,SAEOk6B,EAAKl6B,SAAS7yC,KAAK+sE,EAAK7mC,gBAAiB6mC,EAAKn8D,IAAK+jF,EAAIkB,UAIvDlB,EAAIkB,SAGpB37F,KAAK6oC,MAAMkmD,UAAUlc,EAAKn8D,IAAKm8D,EAAK1hE,MAKxCqqF,GAEAx7F,KAAK84F,cAAcjmB,IAa3B+mB,iBAAkB,SAAU/mB,EAAM4nB,GAE9B,GAAItpF,GAAOw8E,KAAKlrD,MAAMg4D,EAAIgB,aAER,aAAd5oB,EAAK97D,KAEL/W,KAAK6oC,MAAMgmD,WAAWhc,EAAKn8D,IAAKm8D,EAAK9F,IAAK57D,EAAM0hE,EAAK16D,QAElC,eAAd06D,EAAK97D,KAEV/W,KAAK6oC,MAAMqmD,cAAcrc,EAAKn8D,IAAKm8D,EAAK9F,IAAK8F,EAAK1hE,KAAMA,EAAM0hE,EAAKuc,UAAWvc,EAAK3G,SAAU2G,EAAK1G,UAE/E,SAAd0G,EAAK97D,KAEV/W,KAAK6oC,MAAM2mD,QAAQ3c,EAAKn8D,IAAKm8D,EAAK9F,IAAK57D,GAIvCnR,KAAK6oC,MAAMinD,gBAAgBjd,EAAKn8D,IAAKm8D,EAAK9F,IAAK8F,EAAK1hE,KAAMA,EAAM0hE,EAAK16D,QAGzEnY,KAAK84F,cAAcjmB,IAWvBinB,gBAAiB,SAAUjnB,EAAM4nB,GAE7B,GAAItpF,GAAOspF,EAAIgB,YAEfz7F,MAAK6oC,MAAMgmD,WAAWhc,EAAKn8D,IAAKm8D,EAAK9F,IAAK57D,EAAM0hE,EAAK16D,QAErDnY,KAAK84F,cAAcjmB,IAYvBgnB,gBAAiB,SAAUhnB,EAAM4nB,GAG7B,GAAItpF,GAAOspF,EAAIgB,aACXhP,EAAMzsF,KAAK23F,SAASxmF,EAExB,KAAKs7E,EACL,CACI,GAAImO,GAAeH,EAAIG,cAAgBH,EAAIuB,WAG3C,OAFAtnF,SAAQukB,KAAK,mBAAqB45C,EAAKn8D,IAAM,kBAAoBkkF,EAAe,SAChF56F,MAAK84F,cAAcjmB,EAAM,eAIX,eAAdA,EAAK97D,KAEL/W,KAAK6oC,MAAMqmD,cAAcrc,EAAKn8D,IAAKm8D,EAAK9F,IAAK8F,EAAK1hE,KAAMs7E,EAAK5Z,EAAKuc,UAAWvc,EAAK3G,SAAU2G,EAAK1G,UAE9E,iBAAd0G,EAAK97D,KAEV/W,KAAK6oC,MAAMinD,gBAAgBjd,EAAKn8D,IAAKm8D,EAAK9F,IAAK8F,EAAK1hE,KAAMs7E,EAAK5Z,EAAK16D,QAEjD,QAAd06D,EAAK97D,MAEV/W,KAAK6oC,MAAM4mD,OAAO5c,EAAKn8D,IAAKm8D,EAAK9F,IAAK0f,GAG1CzsF,KAAK84F,cAAcjmB,IAYvB8kB,SAAU,SAAUxmF,GAEhB,GAAIs7E,EAEJ,KAEI,GAAIh4E,OAAkB,UACtB,CACI,GAAIwnF,GAAY,GAAIC,UACpBzP,GAAMwP,EAAUE,gBAAgBhrF,EAAM,gBAItCs7E,GAAM,GAAI2P,eAAc,oBAExB3P,EAAI4P,MAAQ,QACZ5P,EAAI6P,QAAQnrF,GAGpB,MAAO8pB,GAEHwxD,EAAM,KAGV,MAAKA,IAAQA,EAAIhnC,kBAAmBgnC,EAAIC,qBAAqB,eAAehpF,OAMjE+oF,EAJA,MAiBf0L,eAAgB,WAERn4F,KAAKk0F,gBAEgC,IAAjCl0F,KAAKk0F,cAAc0B,UAEnB51F,KAAKk0F,cAAc1iE,KAAK3qB,MAAQlG,KAAKq3B,MAAOh4B,KAAKk0F,cAAcrtF,MAAQ,IAAO7G,KAAKw4F,UAInFx4F,KAAKk0F,cAAc1iE,KAAK1qB,OAASnG,KAAKq3B,MAAOh4B,KAAKk0F,cAAcptF,OAAS,IAAO9G,KAAKw4F,UAGrFx4F,KAAKk0F,cAAcvqE,OAEnB3pB,KAAKk0F,cAAcvqE,OAAOg7C,aAK1B3kE,KAAKk0F,cAAgB,OAajCqI,iBAAkB,WAEd,MAAOv8F,MAAKs1F,kBAWhB5oD,iBAAkB,WAEd,MAAO1sC,MAAKo1F,gBAAkBp1F,KAAKs1F,kBAWvCkH,iBAAkB,WAEd,MAAOx8F,MAAKm1F,iBAWhBxoD,iBAAkB,WAEd,MAAO3sC,MAAKm1F,gBAAkBn1F,KAAKq1F,mBAe3CzxF,OAAOC,eAAeiwB,EAAOu3B,OAAOhoD,UAAW,iBAE3CS,IAAK,WACD,GAAI00F,GAAYx4F,KAAKs1F,iBAAmBt1F,KAAKo1F,gBAAmB,GAChE,OAAOthE,GAAOnzB,KAAKsgC,MAAMu3D,GAAY,EAAG,EAAG,QAWnD50F,OAAOC,eAAeiwB,EAAOu3B,OAAOhoD,UAAW,YAE3CS,IAAK,WACD,MAAOnD,MAAKi8B,MAAM58B,KAAKy8F,kBAK/B3oE,EAAOu3B,OAAOhoD,UAAUC,YAAcwwB,EAAOu3B,OAa7Cv3B,EAAOu7D,cAYHrC,WAAY,SAAUP,EAAKzgF,EAAakgE,EAAUC,GAE9C,MAAOnsE,MAAKuvF,cAAc9C,EAAKzgF,EAAakgE,EAAUC,IAc1DojB,cAAe,SAAU9C,EAAKzgF,EAAakgE,EAAUC,GAEjD,GAAIh7D,MACAurF,EAAOjQ,EAAIC,qBAAqB,QAAQ,GACxCiQ,EAASlQ,EAAIC,qBAAqB,UAAU,EAEhDv7E,GAAK06D,KAAO6wB,EAAKE,aAAa,QAC9BzrF,EAAKwX,KAAO0R,SAASqiE,EAAKE,aAAa,QAAS,IAChDzrF,EAAK0rF,WAAaxiE,SAASsiE,EAAOC,aAAa,cAAe,IAAMzwB,EACpEh7D,EAAK66D,QAIL,KAAK,GAFD8wB,GAAUrQ,EAAIC,qBAAqB,QAE9BjpF,EAAI,EAAGA,EAAIq5F,EAAQp5F,OAAQD,IACpC,CACI,GAAIs5F,GAAW1iE,SAASyiE,EAAQr5F,GAAGm5F,aAAa,MAAO,GAEvDzrF,GAAK66D,MAAM+wB,IACPr3F,EAAG20B,SAASyiE,EAAQr5F,GAAGm5F,aAAa,KAAM,IAC1Cj3F,EAAG00B,SAASyiE,EAAQr5F,GAAGm5F,aAAa,KAAM,IAC1C/1F,MAAOwzB,SAASyiE,EAAQr5F,GAAGm5F,aAAa,SAAU,IAClD91F,OAAQuzB,SAASyiE,EAAQr5F,GAAGm5F,aAAa,UAAW,IACpDxwB,QAAS/xC,SAASyiE,EAAQr5F,GAAGm5F,aAAa,WAAY,IACtDvwB,QAAShyC,SAASyiE,EAAQr5F,GAAGm5F,aAAa,WAAY,IACtDI,SAAU3iE,SAASyiE,EAAQr5F,GAAGm5F,aAAa,YAAa,IAAM1wB,EAC9D+wB;CAIR,GAAIC,GAAWzQ,EAAIC,qBAAqB,UAExC,KAAKjpF,EAAI,EAAGA,EAAIy5F,EAASx5F,OAAQD,IACjC,CACI,GAAIg3D,GAAQpgC,SAAS6iE,EAASz5F,GAAGm5F,aAAa,SAAU,IACpDO,EAAS9iE,SAAS6iE,EAASz5F,GAAGm5F,aAAa,UAAW,IACtDtkD,EAASje,SAAS6iE,EAASz5F,GAAGm5F,aAAa,UAAW,GAE1DzrF,GAAK66D,MAAMmxB,GAAQF,QAAQxiC,GAASniB,EAGxC,MAAOt4C,MAAKo9F,mBAAmBpxF,EAAamF,IAchDm+E,eAAgB,SAAUpD,EAAMlgF,EAAakgE,EAAUC,GAEnD,GAAIh7D,IACA06D,KAAMqgB,EAAKrgB,KAAK6wB,KAAKW,MACrB10E,KAAM0R,SAAS6xD,EAAKrgB,KAAK6wB,KAAKY,MAAO,IACrCT,WAAYxiE,SAAS6xD,EAAKrgB,KAAK8wB,OAAOY,YAAa,IAAMpxB,EACzDH,SAqCJ,OAlCAkgB,GAAKrgB,KAAKG,MAAM,QAAQpzC,QAEpB,SAAmB4kE,GAEf,GAAIT,GAAW1iE,SAASmjE,EAAOC,IAAK,GAEpCtsF,GAAK66D,MAAM+wB,IACPr3F,EAAG20B,SAASmjE,EAAOvtC,GAAI,IACvBtqD,EAAG00B,SAASmjE,EAAOttC,GAAI,IACvBrpD,MAAOwzB,SAASmjE,EAAOn1F,OAAQ,IAC/BvB,OAAQuzB,SAASmjE,EAAOl1F,QAAS,IACjC8jE,QAAS/xC,SAASmjE,EAAOE,SAAU,IACnCrxB,QAAShyC,SAASmjE,EAAOG,SAAU,IACnCX,SAAU3iE,SAASmjE,EAAOI,UAAW,IAAM1xB,EAC3C+wB,cAMR/Q,EAAKrgB,KAAKqxB,UAAYhR,EAAKrgB,KAAKqxB,SAASD,SAEzC/Q,EAAKrgB,KAAKqxB,SAASD,QAAQrkE,QAEvB,SAAsBqkE,GAElB9rF,EAAK66D,MAAMixB,EAAQY,SAASZ,QAAQA,EAAQa,QAAUzjE,SAAS4iE,EAAQc,QAAS,MAQrF/9F,KAAKo9F,mBAAmBpxF,EAAamF,IAahDisF,mBAAoB,SAAUpxF,EAAagyF,GAcvC,MAZAp6F,QAAOg4B,KAAKoiE,EAAehyB,OAAOpzC,QAE9B,SAAoBmkE,GAEhB,GAAIS,GAASQ,EAAehyB,MAAM+wB,EAElCS,GAAO11F,QAAU,GAAIhI,MAAKyL,QAAQS,EAAa,GAAI8nB,GAAO9wB,UAAUw6F,EAAO93F,EAAG83F,EAAO73F,EAAG63F,EAAO32F,MAAO22F,EAAO12F,WAM9Gk3F,IAgBflqE,EAAO23B,aAAe,aAEtB33B,EAAO23B,aAAapoD,UAAUioC,KAAO,aACrCxX,EAAO23B,aAAapoD,UAAUijC,OAAS,aACvCxS,EAAO23B,aAAapoD,UAAUE,QAAU,aACxCuwB,EAAO23B,aAAapoD,UAAU6pD,QAAU,aACxCp5B,EAAO23B,aAAapoD,UAAUgqD,UAAY,aAE1Cv5B,EAAO23B,aAAapoD,UAAUC,YAAcwwB,EAAO23B,YAanD,IAAIwyC,GAAY,YAEhBnqE,GAAOoF,MAAM0yB,MAAQqyC,EAErBnqE,EAAOoF,MAAM0yB,MAAMvoD,WACf0gF,YAAY,EAEZz4C,KAAM2yD,EACN33F,UAAW23F,EACXxhF,MAAOwhF,EACP7yF,MAAO6yF,EACPjzF,KAAMizF,EACNn/D,KAAMm/D,EACNC,UAAWD,EACXE,WAAYF,EACZxY,MAAOwY,EACPjtD,QAASitD,EACTG,gBAAiBH,EACjBvnF,IAAKunF,EACLI,UAAWJ,EACXK,aAAcL,EACdM,aAAcN,EACdO,WAAYP,EACZQ,aAAcR,EACdS,SAAUT,EACVU,MAAOV,EACPpgD,KAAMogD,EACNW,UAAWX,EACXrgD,KAAMqgD,EACNY,SAAUZ,EACV/nD,KAAM+nD,EACNa,SAAUb,EACVc,WAAYd,EACZe,UAAWf,GAGfnqE,EAAOoF,MAAM0yB,MAAMvoD,UAAUC,YAAcwwB,EAAOoF,MAAM0yB,MAoBxD93B,EAAOulB,SAAW,SAAU4lD,GAOxBj/F,KAAKyB,SAAW,EAMhBzB,KAAKi/F,KAAOA,OAIhBnrE,EAAOulB,SAASh2C,WAUZu9B,IAAK,SAAU78B,GAOX,MALK/D,MAAKiyC,OAAOluC,IAEb/D,KAAKi/F,KAAK16F,KAAKR,GAGZA,GAWXqzC,SAAU,SAAUrzC,GAEhB,MAAO/D,MAAKi/F,KAAK91F,QAAQpF,IAa7Bm7F,SAAU,SAAU7mD,EAAUp0C,GAI1B,IAFA,GAAIR,GAAIzD,KAAKi/F,KAAKv7F,OAEXD,KAEH,GAAIzD,KAAKi/F,KAAKx7F,GAAG40C,KAAcp0C,EAE3B,MAAOjE,MAAKi/F,KAAKx7F,EAIzB,OAAO,OAWXwuC,OAAQ,SAAUluC,GAEd,MAAQ/D,MAAKi/F,KAAK91F,QAAQpF,GAAQ,IAStC0Y,MAAO,WAEHzc,KAAKi/F,KAAKv7F,OAAS,GAWvBqoC,OAAQ,SAAUhoC,GAEd,GAAIqmF,GAAMpqF,KAAKi/F,KAAK91F,QAAQpF,EAE5B,OAAIqmF,GAAM,IAENpqF,KAAKi/F,KAAKr2F,OAAOwhF,EAAK,GACfrmF,GAHX,QAeJk0C,OAAQ,SAAUvhC,EAAKzS,GAInB,IAFA,GAAIR,GAAIzD,KAAKi/F,KAAKv7F,OAEXD,KAECzD,KAAKi/F,KAAKx7F,KAEVzD,KAAKi/F,KAAKx7F,GAAGiT,GAAOzS,IAgBhC60C,QAAS,SAAUpiC,GAMf,IAJA,GAAI2hB,GAAO53B,MAAM4C,UAAUuF,OAAO9C,KAAKyyB,UAAW,GAE9C90B,EAAIzD,KAAKi/F,KAAKv7F,OAEXD,KAECzD,KAAKi/F,KAAKx7F,IAAMzD,KAAKi/F,KAAKx7F,GAAGiT,IAE7B1W,KAAKi/F,KAAKx7F,GAAGiT,GAAKvP,MAAMnH,KAAKi/F,KAAKx7F,GAAI40B,IAYlDwU,UAAW,SAAUtpC,GAEDkG,SAAZlG,IAAyBA,GAAU,EAIvC,KAFA,GAAIE,GAAIzD,KAAKi/F,KAAKv7F,OAEXD,KAEH,GAAIzD,KAAKi/F,KAAKx7F,GACd,CACI,GAAIM,GAAO/D,KAAK+rC,OAAO/rC,KAAKi/F,KAAKx7F,GAE7BF,IAEAQ,EAAKR,UAKjBvD,KAAKyB,SAAW,EAChBzB,KAAKi/F,UAYbr7F,OAAOC,eAAeiwB,EAAOulB,SAASh2C,UAAW,SAE7CS,IAAK,WACD,MAAO9D,MAAKi/F,KAAKv7F,UAWzBE,OAAOC,eAAeiwB,EAAOulB,SAASh2C,UAAW,SAE7CS,IAAK,WAID,MAFA9D,MAAKyB,SAAW,EAEZzB,KAAKi/F,KAAKv7F,OAAS,EAEZ1D,KAAKi/F,KAAK,GAIV,QAanBr7F,OAAOC,eAAeiwB,EAAOulB,SAASh2C,UAAW,QAE7CS,IAAK,WAED,MAAI9D,MAAKyB,SAAWzB,KAAKi/F,KAAKv7F,QAE1B1D,KAAKyB,WAEEzB,KAAKi/F,KAAKj/F,KAAKyB,WAIf,QAOnBqyB,EAAOulB,SAASh2C,UAAUC,YAAcwwB,EAAOulB,SAc/CvlB,EAAO4mB,YAcHC,cAAe,SAAUyoC,EAAS53D,EAAY9nB,GAE1C,GAAe,MAAX0/E,EACA,MAAO,KAGQ35E,UAAf+hB,IAA4BA,EAAa,GAC9B/hB,SAAX/F,IAAwBA,EAAS0/E,EAAQ1/E,OAE7C,IAAIy7F,GAAc3zE,EAAa7qB,KAAKq3B,MAAMr3B,KAAKm5B,SAAWp2B,EAC1D,OAAgC+F,UAAzB25E,EAAQ+b,GAA6B,KAAO/b,EAAQ+b,IAgB/DC,iBAAkB,SAAUhc,EAAS53D,EAAY9nB,GAE7C,GAAe,MAAX0/E,EACA,MAAO,KAGQ35E,UAAf+hB,IAA4BA,EAAa,GAC9B/hB,SAAX/F,IAAwBA,EAAS0/E,EAAQ1/E,OAE7C,IAAIy7F,GAAc3zE,EAAa7qB,KAAKq3B,MAAMr3B,KAAKm5B,SAAWp2B,EAC1D,IAAIy7F,EAAc/b,EAAQ1/E,OAC1B,CACI,GAAIsG,GAAUo5E,EAAQx6E,OAAOu2F,EAAa,EAC1C,OAAsB11F,UAAfO,EAAQ,GAAmB,KAAOA,EAAQ,GAIjD,MAAO,OAYfq1F,QAAS,SAAU/+D,GAEf,IAAK,GAAI78B,GAAI68B,EAAM58B,OAAS,EAAGD,EAAI,EAAGA,IACtC,CACI,GAAIa,GAAI3D,KAAKq3B,MAAMr3B,KAAKm5B,UAAYr2B,EAAI,IACpCqpB,EAAOwT,EAAM78B,EACjB68B,GAAM78B,GAAK68B,EAAMh8B,GACjBg8B,EAAMh8B,GAAKwoB,EAGf,MAAOwT,IAWXg/D,gBAAiB,SAAUh/D,GAOvB,IAAK,GALDi/D,GAAiBj/D,EAAM58B,OACvB87F,EAAiBl/D,EAAM,GAAG58B,OAE1B4N,EAAS,GAAI7Q,OAAM++F,GAEd/7F,EAAI,EAAO+7F,EAAJ/7F,EAAoBA,IACpC,CACI6N,EAAO7N,GAAK,GAAIhD,OAAM8+F,EAEtB,KAAK,GAAIj7F,GAAIi7F,EAAiB,EAAGj7F,EAAI,GAAIA,IAErCgN,EAAO7N,GAAGa,GAAKg8B,EAAMh8B,GAAGb,GAIhC,MAAO6N,IAcXmuF,aAAc,SAAUx5F,EAAQ2vF,GAO5B,GALyB,gBAAdA,KAEPA,GAAcA,EAAY,IAAO,KAAO,KAG1B,KAAdA,GAAkC,OAAdA,GAAoC,eAAdA,EAE1C3vF,EAAS6tB,EAAO4mB,WAAW4kD,gBAAgBr5F,GAC3CA,EAASA,EAAO2gB,cAEf,IAAkB,MAAdgvE,GAAmC,MAAdA,GAAmC,gBAAdA,EAE/C3vF,EAASA,EAAO2gB,UAChB3gB,EAAS6tB,EAAO4mB,WAAW4kD,gBAAgBr5F,OAE1C,IAA4B,MAAxBtF,KAAKshB,IAAI2zE,IAAoC,cAAdA,EACxC,CACI,IAAK,GAAInyF,GAAI,EAAGA,EAAIwC,EAAOvC,OAAQD,IAE/BwC,EAAOxC,GAAGmjB,SAGd3gB,GAASA,EAAO2gB,UAGpB,MAAO3gB,IAaXy5F,YAAa,SAAUz7F,EAAO07F,GAE1B,IAAKA,EAAIj8F,OAEL,MAAOk8F,IAEN,IAAmB,IAAfD,EAAIj8F,QAAgBO,EAAQ07F,EAAI,GAErC,MAAOA,GAAI,EAIf,KADA,GAAIl8F,GAAI,EACDk8F,EAAIl8F,GAAKQ,GACZR,GAGJ,IAAIo8F,GAAMF,EAAIl8F,EAAI,GACdq8F,EAAQr8F,EAAIk8F,EAAIj8F,OAAUi8F,EAAIl8F,GAAK6/B,OAAOy8D,iBAE9C,OAA2B97F,GAAQ47F,GAA1BC,EAAO77F,EAA2B67F,EAAOD,GAYtDhhE,OAAQ,SAAUyB,GAEd,GAAI4B,GAAI5B,EAAMu5B,OAGd,OAFAv5B,GAAM/7B,KAAK29B,GAEJA,GAaX89D,YAAa,SAAU50F,EAAOtB,GAI1B,IAAK,GAFDwH,MAEK7N,EAAI2H,EAAYtB,GAALrG,EAAUA,IAE1B6N,EAAO/M,KAAKd,EAGhB,OAAO6N,IAqCX2uF,gBAAiB,SAAS70F,EAAOtB,EAAKkjD,GAElC5hD,GAASA,GAAS,CAGlB,IAAI2L,SAAcjN,EAEJ,YAATiN,GAA8B,WAATA,IAAsBi2C,GAAQA,EAAKljD,KAASsB,IAElEtB,EAAMkjD,EAAO,MAGjBA,EAAe,MAARA,EAAe,GAAMA,GAAQ,EAExB,OAARljD,GAEAA,EAAMsB,EACNA,EAAQ,GAIRtB,GAAOA,GAAO,CASlB,KAJA,GAAIpB,GAAQ,GACRhF,EAAS/C,KAAK2+B,IAAIxL,EAAOnzB,KAAKqgF,mBAAmBl3E,EAAMsB,IAAU4hD,GAAQ,IAAK,GAC9E17C,EAAS,GAAI7Q,OAAMiD,KAEdgF,EAAQhF,GAEb4N,EAAO5I,GAAS0C,EAChBA,GAAS4hD,CAGb,OAAO17C,KAiBfwiB,EAAOqgB,OAeH+rD,UAAW,SAAU7hF,EAAGC,EAAGtZ,EAAGD,GAE1B,MAAI+uB,GAAO61B,OAAO0rB,eAEJtwE,GAAK,GAAOC,GAAK,GAAOsZ,GAAM,EAAKD,KAAQ,GAI3CA,GAAK,GAAOC,GAAK,GAAOtZ,GAAM,EAAKD,KAAQ,GAwB7Do7F,YAAa,SAAUC,EAAM9jE,EAAK+jE,EAAKC,GAkCnC,OAhCY72F,SAAR6yB,GAA6B,OAARA,KAAgBA,EAAMxI,EAAOqgB,MAAMosD,gBAChD92F,SAAR42F,GAA6B,OAARA,KAAgBA,GAAM,IACnC52F,SAAR62F,GAA6B,OAARA,KAAgBA,GAAM,GAE3CxsE,EAAO61B,OAAO0rB,eAEd/4C,EAAIv3B,GAAa,WAAPq7F,KAAuB,GACjC9jE,EAAIt3B,GAAa,SAAPo7F,KAAuB,GACjC9jE,EAAIhe,GAAa,MAAP8hF,KAAuB,EACjC9jE,EAAIje,EAAa,IAAP+hF,IAIV9jE,EAAIje,GAAa,WAAP+hF,KAAuB,GACjC9jE,EAAIhe,GAAa,SAAP8hF,KAAuB,GACjC9jE,EAAIt3B,GAAa,MAAPo7F,KAAuB,EACjC9jE,EAAIv3B,EAAa,IAAPq7F,GAGd9jE,EAAI/hB,MAAQ6lF,EACZ9jE,EAAI8jE,KAAO,QAAU9jE,EAAIje,EAAI,IAAMie,EAAIhe,EAAI,IAAMge,EAAIt3B,EAAI,IAAOs3B,EAAIv3B,EAAI,IAAO,IAE3Es7F,GAEAvsE,EAAOqgB,MAAMqsD,SAASlkE,EAAIje,EAAGie,EAAIhe,EAAGge,EAAIt3B,EAAGs3B,GAG3CgkE,GAEAxsE,EAAOqgB,MAAMssD,SAASnkE,EAAIje,EAAGie,EAAIhe,EAAGge,EAAIt3B,EAAGs3B,GAGxCA,GAeXokE,SAAU,SAAUN,EAAM9jE,GActB,MAZKA,KAEDA,EAAMxI,EAAOqgB,MAAMosD,eAGvBjkE,EAAIje,GAAa,WAAP+hF,KAAuB,GACjC9jE,EAAIhe,GAAa,SAAP8hF,KAAuB,GACjC9jE,EAAIt3B,GAAa,MAAPo7F,KAAuB,EACjC9jE,EAAIv3B,EAAa,IAAPq7F,EAEV9jE,EAAI8jE,KAAO,QAAU9jE,EAAIje,EAAI,IAAMie,EAAIhe,EAAI,IAAMge,EAAIt3B,EAAI,IAAMs3B,EAAIv3B,EAAI,IAEhEu3B,GAgBXqkE,OAAQ,SAAUtiF,EAAGC,EAAGtZ,EAAGD,GAEvB,MAAQsZ,IAAK,GAAOC,GAAK,GAAOtZ,GAAM,EAAKD,GAkB/Cy7F,SAAU,SAAUniF,EAAGC,EAAGtZ,EAAGs3B,GAEpBA,IAEDA,EAAMxI,EAAOqgB,MAAMosD,YAAYliF,EAAGC,EAAGtZ,EAAG,IAG5CqZ,GAAK,IACLC,GAAK,IACLtZ,GAAK,GAEL,IAAIqsB,GAAM1wB,KAAK0wB,IAAIhT,EAAGC,EAAGtZ,GACrBs6B,EAAM3+B,KAAK2+B,IAAIjhB,EAAGC,EAAGtZ,EAOzB,IAJAs3B,EAAIjS,EAAI,EACRiS,EAAI4F,EAAI,EACR5F,EAAI7C,GAAK6F,EAAMjO,GAAO,EAElBiO,IAAQjO,EACZ,CACI,GAAInsB,GAAIo6B,EAAMjO,CAEdiL,GAAI4F,EAAI5F,EAAI7C,EAAI,GAAMv0B,GAAK,EAAIo6B,EAAMjO,GAAOnsB,GAAKo6B,EAAMjO,GAEnDiO,IAAQjhB,EAERie,EAAIjS,GAAK/L,EAAItZ,GAAKE,GAASF,EAAJsZ,EAAQ,EAAI,GAE9BghB,IAAQhhB,EAEbge,EAAIjS,GAAKrlB,EAAIqZ,GAAKnZ,EAAI,EAEjBo6B,IAAQt6B,IAEbs3B,EAAIjS,GAAKhM,EAAIC,GAAKpZ,EAAI,GAG1Bo3B,EAAIjS,GAAK,EAGb,MAAOiS,IAkBXskE,SAAU,SAAUv2E,EAAG6X,EAAGzI,EAAG6C,GAczB,GAZKA,GAODA,EAAIje,EAAIob,EACR6C,EAAIhe,EAAImb,EACR6C,EAAIt3B,EAAIy0B,GAPR6C,EAAMxI,EAAOqgB,MAAMosD,YAAY9mE,EAAGA,EAAGA,GAU/B,IAANyI,EACJ,CACI,GAAI2+D,GAAQ,GAAJpnE,EAAUA,GAAK,EAAIyI,GAAKzI,EAAIyI,EAAIzI,EAAIyI,EACxCr9B,EAAI,EAAI40B,EAAIonE,CAChBvkE,GAAIje,EAAIyV,EAAOqgB,MAAM2sD,WAAWj8F,EAAGg8F,EAAGx2E,EAAI,EAAI,GAC9CiS,EAAIhe,EAAIwV,EAAOqgB,MAAM2sD,WAAWj8F,EAAGg8F,EAAGx2E,GACtCiS,EAAIt3B,EAAI8uB,EAAOqgB,MAAM2sD,WAAWj8F,EAAGg8F,EAAGx2E,EAAI,EAAI,GAalD,MANAiS,GAAIje,EAAI1d,KAAKq3B,MAAe,IAARsE,EAAIje,EAAU,GAClCie,EAAIhe,EAAI3d,KAAKq3B,MAAe,IAARsE,EAAIhe,EAAU,GAClCge,EAAIt3B,EAAIrE,KAAKq3B,MAAe,IAARsE,EAAIt3B,EAAU,GAElC8uB,EAAOqgB,MAAM4sD,YAAYzkE,GAElBA,GAkBXmkE,SAAU,SAAUpiF,EAAGC,EAAGtZ,EAAGs3B,GAEpBA,IAEDA,EAAMxI,EAAOqgB,MAAMosD,YAAYliF,EAAGC,EAAGtZ,EAAG,MAG5CqZ,GAAK,IACLC,GAAK,IACLtZ,GAAK,GAEL,IAAIqsB,GAAM1wB,KAAK0wB,IAAIhT,EAAGC,EAAGtZ,GACrBs6B,EAAM3+B,KAAK2+B,IAAIjhB,EAAGC,EAAGtZ,GACrBE,EAAIo6B,EAAMjO,CAyBd,OAtBAiL,GAAIjS,EAAI,EACRiS,EAAI4F,EAAY,IAAR5C,EAAY,EAAIp6B,EAAIo6B,EAC5BhD,EAAI7oB,EAAI6rB,EAEJA,IAAQjO,IAEJiO,IAAQjhB,EAERie,EAAIjS,GAAK/L,EAAItZ,GAAKE,GAASF,EAAJsZ,EAAQ,EAAI,GAE9BghB,IAAQhhB,EAEbge,EAAIjS,GAAKrlB,EAAIqZ,GAAKnZ,EAAI,EAEjBo6B,IAAQt6B,IAEbs3B,EAAIjS,GAAKhM,EAAIC,GAAKpZ,EAAI,GAG1Bo3B,EAAIjS,GAAK,GAGNiS,GAkBX0kE,SAAU,SAAU32E,EAAG6X,EAAGzuB,EAAG6oB,GAEb7yB,SAAR6yB,IAAqBA,EAAMxI,EAAOqgB,MAAMosD,YAAY,EAAG,EAAG,EAAG,EAAGl2E,EAAG6X,EAAG,EAAGzuB,GAE7E,IAAI4K,GAAGC,EAAGtZ,EACNvB,EAAI9C,KAAKq3B,MAAU,EAAJ3N,GACf+P,EAAQ,EAAJ/P,EAAQ5mB,EACZoB,EAAI4O,GAAK,EAAIyuB,GACb2+D,EAAIptF,GAAK,EAAI2mB,EAAI8H,GACjBpJ,EAAIrlB,GAAK,GAAK,EAAI2mB,GAAK8H,EAE3B,QAAQz+B,EAAI,GAER,IAAK,GACD4a,EAAI5K,EACJ6K,EAAIwa,EACJ9zB,EAAIH,CACJ,MACJ,KAAK,GACDwZ,EAAIwiF,EACJviF,EAAI7K,EACJzO,EAAIH,CACJ,MACJ,KAAK,GACDwZ,EAAIxZ,EACJyZ,EAAI7K,EACJzO,EAAI8zB,CACJ,MACJ,KAAK,GACDza,EAAIxZ,EACJyZ,EAAIuiF,EACJ77F,EAAIyO,CACJ,MACJ,KAAK,GACD4K,EAAIya,EACJxa,EAAIzZ,EACJG,EAAIyO,CACJ,MACJ,KAAK,GACD4K,EAAI5K,EACJ6K,EAAIzZ,EACJG,EAAI67F,EAUZ,MANAvkE,GAAIje,EAAI1d,KAAKq3B,MAAU,IAAJ3Z,GACnBie,EAAIhe,EAAI3d,KAAKq3B,MAAU,IAAJ1Z,GACnBge,EAAIt3B,EAAIrE,KAAKq3B,MAAU,IAAJhzB,GAEnB8uB,EAAOqgB,MAAM4sD,YAAYzkE,GAElBA,GAeXwkE,WAAY,SAAUj8F,EAAGg8F,EAAG/nE,GAYxB,MAVQ,GAAJA,IAEAA,GAAK,GAGLA,EAAI,IAEJA,GAAK,GAGD,EAAI,EAARA,EAEOj0B,EAAc,GAATg8F,EAAIh8F,GAASi0B,EAGrB,GAAJA,EAEO+nE,EAGH,EAAI,EAAR/nE,EAEOj0B,GAAKg8F,EAAIh8F,IAAM,EAAI,EAAIi0B,GAAK,EAGhCj0B,GAuBX07F,YAAa,SAAUliF,EAAGC,EAAGtZ,EAAGD,EAAGslB,EAAG6X,EAAGzI,EAAGhmB,GAExC,GAAI6oB,IAAQje,EAAGA,GAAK,EAAGC,EAAGA,GAAK,EAAGtZ,EAAGA,GAAK,EAAGD,EAAGA,GAAK,EAAGslB,EAAGA,GAAK,EAAG6X,EAAGA,GAAK,EAAGzI,EAAGA,GAAK,EAAGhmB,EAAGA,GAAK,EAAG8G,MAAO,EAAG0mF,QAAS,EAAGb,KAAM,GAEhI,OAAOtsE,GAAOqgB,MAAM4sD,YAAYzkE,IAYpCykE,YAAa,SAAUzkE,GAMnB,MAJAA,GAAI8jE,KAAO,QAAU9jE,EAAIje,EAAEnO,WAAa,IAAMosB,EAAIhe,EAAEpO,WAAa,IAAMosB,EAAIt3B,EAAEkL,WAAa,IAAMosB,EAAIv3B,EAAEmL,WAAa,IACnHosB,EAAI/hB,MAAQuZ,EAAOqgB,MAAME,SAAS/X,EAAIje,EAAGie,EAAIhe,EAAGge,EAAIt3B,GACpDs3B,EAAI2kE,QAAUntE,EAAOqgB,MAAM+sD,WAAW5kE,EAAIv3B,EAAGu3B,EAAIje,EAAGie,EAAIhe,EAAGge,EAAIt3B,GAExDs3B,GAeX4kE,WAAY,SAAUn8F,EAAGsZ,EAAGC,EAAGtZ,GAE3B,MAAOD,IAAK,GAAKsZ,GAAK,GAAKC,GAAK,EAAItZ,GAcxCqvC,SAAU,SAAUh2B,EAAGC,EAAGtZ,GAEtB,MAAOqZ,IAAK,GAAKC,GAAK,EAAItZ,GAiB9BsvC,YAAa,SAAUj2B,EAAGC,EAAGtZ,EAAGD,EAAG03E,GAK/B,MAHUhzE,UAAN1E,IAAmBA,EAAI,KACZ0E,SAAXgzE,IAAwBA,EAAS,KAEtB,MAAXA,EAEO,MAAQ,GAAK,KAAOp+D,GAAK,KAAOC,GAAK,GAAKtZ,GAAGkL,SAAS,IAAI6M,MAAM,GAIhE,KAAO+W,EAAOqgB,MAAMgtD,eAAep8F,GAAK+uB,EAAOqgB,MAAMgtD,eAAe9iF,GAAKyV,EAAOqgB,MAAMgtD,eAAe7iF,GAAKwV,EAAOqgB,MAAMgtD,eAAen8F,IAarJo8F,SAAU,SAAUnxF,GAEhB,GAAIK,GAAMwjB,EAAOqgB,MAAMktD,WAAWpxF,EAElC,OAAIK,GAEOwjB,EAAOqgB,MAAM+sD,WAAW5wF,EAAIvL,EAAGuL,EAAI+N,EAAG/N,EAAIgO,EAAGhO,EAAItL,GAF5D,QAoBJq8F,WAAY,SAAUpxF,EAAKqsB,GAGvBrsB,EAAMA,EAAIyrB,QAAQ,0CAA2C,SAASgG,EAAGrjB,EAAGC,EAAGtZ,GAC3E,MAAOqZ,GAAIA,EAAIC,EAAIA,EAAItZ,EAAIA,GAG/B,IAAIsM,GAAS,mDAAmDgwF,KAAKrxF,EAErE,IAAIqB,EACJ,CACI,GAAI+M,GAAIgc,SAAS/oB,EAAO,GAAI,IACxBgN,EAAI+b,SAAS/oB,EAAO,GAAI,IACxBtM,EAAIq1B,SAAS/oB,EAAO,GAAI,GAEvBgrB,IAMDA,EAAIje,EAAIA,EACRie,EAAIhe,EAAIA,EACRge,EAAIt3B,EAAIA,GANRs3B,EAAMxI,EAAOqgB,MAAMosD,YAAYliF,EAAGC,EAAGtZ,GAU7C,MAAOs3B,IAeXilE,WAAY,SAAUC,EAAKllE,GAElBA,IAEDA,EAAMxI,EAAOqgB,MAAMosD,cAGvB,IAAIjvF,GAAS,4EAA4EgwF,KAAKE,EAW9F,OATIlwF,KAEAgrB,EAAIje,EAAIgc,SAAS/oB,EAAO,GAAI,IAC5BgrB,EAAIhe,EAAI+b,SAAS/oB,EAAO,GAAI,IAC5BgrB,EAAIt3B,EAAIq1B,SAAS/oB,EAAO,GAAI,IAC5BgrB,EAAIv3B,EAAkB0E,SAAd6H,EAAO,GAAmBmwF,WAAWnwF,EAAO,IAAM,EAC1DwiB,EAAOqgB,MAAM4sD,YAAYzkE,IAGtBA,GAiBX8X,aAAc,SAAUnwC,EAAOq4B,GAS3B,GALKA,IAEDA,EAAMxI,EAAOqgB,MAAMosD,eAGF,gBAAVt8F,GAEP,MAA6B,KAAzBA,EAAMkF,QAAQ,OAEP2qB,EAAOqgB,MAAMotD,WAAWt9F,EAAOq4B,IAKtCA,EAAIv3B,EAAI,EACD+uB,EAAOqgB,MAAMktD,WAAWp9F,EAAOq4B,GAGzC,IAAqB,gBAAVr4B,GAChB,CAGI,GAAIy9F,GAAY5tE,EAAOqgB,MAAMwtD,OAAO19F,EAKpC,OAJAq4B,GAAIje,EAAIqjF,EAAUrjF,EAClBie,EAAIhe,EAAIojF,EAAUpjF,EAClBge,EAAIt3B,EAAI08F,EAAU18F,EAClBs3B,EAAIv3B,EAAI28F,EAAU38F,EAAI,IACfu3B,EAIP,MAAOA,IAaf6kE,eAAgB,SAAU5mF,GAEtB,GAAItK,GAAMsK,EAAMrK,SAAS,GACzB,OAAqB,IAAdD,EAAIvM,OAAc,IAAMuM,EAAMA,GAazC2xF,cAAe,SAAU1/D,EAAGzuB,GAEdhK,SAANy4B,IAAmBA,EAAI,GACjBz4B,SAANgK,IAAmBA,EAAI,EAI3B,KAAK,GAFDuV,MAEK/jB,EAAI,EAAQ,KAALA,EAAUA,IAEtB+jB,EAAOzkB,KAAKuvB,EAAOqgB,MAAM6sD,SAAS/7F,EAAI,IAAKi9B,EAAGzuB,GAGlD,OAAOuV,IAaX64E,cAAe,SAAU3/D,EAAGzI,GAEdhwB,SAANy4B,IAAmBA,EAAI,IACjBz4B,SAANgwB,IAAmBA,EAAI,GAI3B,KAAK,GAFDzQ,MAEK/jB,EAAI,EAAQ,KAALA,EAAUA,IAEtB+jB,EAAOzkB,KAAKuvB,EAAOqgB,MAAMysD,SAAS37F,EAAI,IAAKi9B,EAAGzI,GAGlD,OAAOzQ,IAgBX84E,iBAAkB,SAAUC,EAAQC,EAAQC,EAAOC,EAAalgG,GAE9CyH,SAAVzH,IAAuBA,EAAQ,IAEnC,IAAImgG,GAAOruE,EAAOqgB,MAAMwtD,OAAOI,GAC3BK,EAAOtuE,EAAOqgB,MAAMwtD,OAAOK,GAC3B3jF,GAAO+jF,EAAKC,IAAMF,EAAKE,KAAOH,EAAeD,EAASE,EAAKE,IAC3D/jF,GAAO8jF,EAAKE,MAAQH,EAAKG,OAASJ,EAAeD,EAASE,EAAKG,MAC/Dt9F,GAAOo9F,EAAKG,KAAOJ,EAAKI,MAAQL,EAAeD,EAASE,EAAKI,IAEjE,OAAOzuE,GAAOqgB,MAAM+sD,WAAWl/F,EAAOqc,EAAGC,EAAGtZ,IAiBhDw9F,wBAAyB,SAAUjoF,EAAO8D,EAAGC,EAAGtZ,EAAGi9F,EAAOC,GAEtD,GAAIrxF,GAAMijB,EAAOqgB,MAAMwtD,OAAOpnF,GAC1BkoF,GAAQpkF,EAAIxN,EAAIwxF,KAAOH,EAAeD,EAASpxF,EAAIwxF,IACnDK,GAAQpkF,EAAIzN,EAAIyxF,OAASJ,EAAeD,EAASpxF,EAAIyxF,MACrDK,GAAQ39F,EAAI6L,EAAI0xF,MAAQL,EAAeD,EAASpxF,EAAI0xF,IAExD,OAAOzuE,GAAOqgB,MAAME,SAASouD,EAAIC,EAAIC,IAkBzCC,eAAgB,SAAUC,EAAIC,EAAIzhF,EAAI0hF,EAAIC,EAAIxhF,EAAIygF,EAAOC,GAErD,GAAI7jF,IAAO0kF,EAAKF,GAAMX,EAAeD,EAASY,EAC1CvkF,GAAO0kF,EAAKF,GAAMZ,EAAeD,EAASa,EAC1C99F,GAAOwc,EAAKH,GAAM6gF,EAAeD,EAAS5gF,CAE9C,OAAOyS,GAAOqgB,MAAME,SAASh2B,EAAGC,EAAGtZ,IAgBvCi+F,eAAgB,SAAU5xE,EAAKiO,EAAKt9B,GAOhC,GALYyH,SAAR4nB,IAAqBA,EAAM,GACnB5nB,SAAR61B,IAAqBA,EAAM,KACjB71B,SAAVzH,IAAuBA,EAAQ,KAG/Bs9B,EAAM,KAAOjO,EAAMiO,EAEnB,MAAOxL,GAAOqgB,MAAME,SAAS,IAAK,IAAK,IAG3C,IAAIguD,GAAMhxE,EAAM1wB,KAAKi8B,MAAMj8B,KAAKm5B,UAAYwF,EAAMjO,IAC9CixE,EAAQjxE,EAAM1wB,KAAKi8B,MAAMj8B,KAAKm5B,UAAYwF,EAAMjO,IAChDkxE,EAAOlxE,EAAM1wB,KAAKi8B,MAAMj8B,KAAKm5B,UAAYwF,EAAMjO,GAEnD,OAAOyC,GAAOqgB,MAAM+sD,WAAWl/F,EAAOqgG,EAAKC,EAAOC,IActDZ,OAAQ,SAAUpnF,GAEd,MAAIA,GAAQ,UAIJvY,MAAOuY,IAAU,GACjB8nF,IAAK9nF,GAAS,GAAK,IACnB+nF,MAAO/nF,GAAS,EAAI,IACpBgoF,KAAc,IAARhoF,EACNxV,EAAGwV,IAAU,GACb8D,EAAG9D,GAAS,GAAK,IACjB+D,EAAG/D,GAAS,EAAI,IAChBvV,EAAW,IAARuV,IAMHvY,MAAO,IACPqgG,IAAK9nF,GAAS,GAAK,IACnB+nF,MAAO/nF,GAAS,EAAI,IACpBgoF,KAAc,IAARhoF,EACNxV,EAAG,IACHsZ,EAAG9D,GAAS,GAAK,IACjB+D,EAAG/D,GAAS,EAAI,IAChBvV,EAAW,IAARuV,IAcf2oF,UAAW,SAAU3oF,GAEjB,GAAqB,gBAAVA,GAEP,MAAO,QAAUA,EAAM8D,EAAEnO,WAAa,IAAMqK,EAAM+D,EAAEpO,WAAa,IAAMqK,EAAMvV,EAAEkL,WAAa,KAAOqK,EAAMxV,EAAI,KAAKmL,WAAa,GAI/H,IAAII,GAAMwjB,EAAOqgB,MAAMwtD,OAAOpnF,EAC9B,OAAO,QAAUjK,EAAI+N,EAAEnO,WAAa,IAAMI,EAAIgO,EAAEpO,WAAa,IAAMI,EAAItL,EAAEkL,WAAa,KAAOI,EAAIvL,EAAI,KAAKmL,WAAa,KAa/HizF,SAAU,SAAU5oF,GAChB,MAAOA,KAAU,IAWrB6oF,cAAe,SAAU7oF,GACrB,OAAQA,IAAU,IAAM,KAW5B8oF,OAAQ,SAAU9oF,GACd,MAAOA,IAAS,GAAK,KAWzB+oF,SAAU,SAAU/oF,GAChB,MAAOA,IAAS,EAAI,KAWxBgpF,QAAS,SAAUhpF,GACf,MAAe,KAARA,GAYXipF,YAAa,SAAUz+F,GACnB,MAAOA,IAYX0+F,aAAc,SAAU1+F,EAAGC,GACvB,MAAQA,GAAID,EAAKC,EAAID,GAYzB2+F,YAAa,SAAU3+F,EAAGC,GACtB,MAAQA,GAAID,EAAKA,EAAIC,GAezB2+F,cAAe,SAAU5+F,EAAGC,GACxB,MAAQD,GAAIC,EAAK,KAYrB4+F,aAAc,SAAU7+F,EAAGC,GACvB,OAAQD,EAAIC,GAAK,GAYrB6+F,SAAU,SAAU9+F,EAAGC,GACnB,MAAOrE,MAAK0wB,IAAI,IAAKtsB,EAAIC,IAY7B8+F,cAAe,SAAU/+F,EAAGC,GACxB,MAAOrE,MAAK2+B,IAAI,EAAGv6B,EAAIC,EAAI,MAc/B++F,gBAAiB,SAAUh/F,EAAGC,GAC1B,MAAOrE,MAAKshB,IAAIld,EAAIC,IAYxBg/F,cAAe,SAAUj/F,EAAGC,GACxB,MAAO,KAAMrE,KAAKshB,IAAI,IAAMld,EAAIC,IAcpCi/F,YAAa,SAAUl/F,EAAGC,GACtB,MAAO,OAAS,IAAMD,IAAM,IAAMC,IAAO,IAa7Ck/F,eAAgB,SAAUn/F,EAAGC,GACzB,MAAOD,GAAIC,EAAI,EAAID,EAAIC,EAAI,KAc/Bm/F,aAAc,SAAUp/F,EAAGC,GACvB,MAAW,KAAJA,EAAW,EAAID,EAAIC,EAAI,IAAQ,IAAM,GAAK,IAAMD,IAAM,IAAMC,GAAK,KAsB5Eo/F,eAAgB,SAAUr/F,EAAGC,GACzB,MAAW,KAAJA,EAAW,IAAMD,GAAK,GAAK,KAAQC,EAAI,KAAO,IAAO,GAAK,MAAQD,GAAK,GAAK,MAAQ,IAAMC,GAAK,KAuB1Gq/F,eAAgB,SAAUt/F,EAAGC,GACzB,MAAO8uB,GAAOqgB,MAAMgwD,aAAan/F,EAAGD,IAaxCu/F,gBAAiB,SAAUv/F,EAAGC,GAC1B,MAAa,OAANA,EAAYA,EAAIrE,KAAK0wB,IAAI,KAAOtsB,GAAK,IAAM,IAAMC,KAa5Du/F,eAAgB,SAAUx/F,EAAGC,GACzB,MAAa,KAANA,EAAUA,EAAIrE,KAAK2+B,IAAI,EAAI,KAAQ,IAAMv6B,GAAM,GAAKC,IAY/Dw/F,iBAAkB,SAAUz/F,EAAGC,GAC3B,MAAO8uB,GAAOqgB,MAAM0vD,SAAS9+F,EAAGC,IAYpCy/F,gBAAiB,SAAU1/F,EAAGC,GAC1B,MAAO8uB,GAAOqgB,MAAM2vD,cAAc/+F,EAAGC,IAczC0/F,iBAAkB,SAAU3/F,EAAGC,GAC3B,MAAW,KAAJA,EAAU8uB,EAAOqgB,MAAMswD,gBAAgB1/F,EAAG,EAAIC,GAAK8uB,EAAOqgB,MAAMqwD,iBAAiBz/F,EAAI,GAAKC,EAAI,OAezG2/F,gBAAiB,SAAU5/F,EAAGC,GAC1B,MAAW,KAAJA,EAAU8uB,EAAOqgB,MAAMowD,eAAex/F,EAAG,EAAIC,GAAK8uB,EAAOqgB,MAAMmwD,gBAAgBv/F,EAAI,GAAKC,EAAI,OAavG4/F,cAAe,SAAU7/F,EAAGC,GACxB,MAAW,KAAJA,EAAU8uB,EAAOqgB,MAAMuvD,YAAY3+F,EAAG,EAAIC,GAAK8uB,EAAOqgB,MAAMsvD,aAAa1+F,EAAI,GAAKC,EAAI,OAejG6/F,aAAc,SAAU9/F,EAAGC,GACvB,MAAO8uB,GAAOqgB,MAAMwwD,gBAAgB5/F,EAAGC,GAAK,IAAM,EAAI,KAY1D8/F,aAAc,SAAU//F,EAAGC,GACvB,MAAa,OAANA,EAAYA,EAAIrE,KAAK0wB,IAAI,IAAMtsB,EAAIA,GAAK,IAAMC,KAYzD+/F,UAAW,SAAUhgG,EAAGC,GACpB,MAAO8uB,GAAOqgB,MAAM2wD,aAAa9/F,EAAGD,IAYxCigG,aAAc,SAAUjgG,EAAGC,GACvB,MAAOrE,MAAK0wB,IAAItsB,EAAGC,GAAKrE,KAAK2+B,IAAIv6B,EAAGC,GAAK,MAsBjD8uB,EAAOmxE,WAAa,WAOhBjlG,KAAK+2C,KAAO,KAOZ/2C,KAAKklG,KAAO,KAOZllG,KAAKy6D,MAAQ,KAObz6D,KAAKw5B,KAAO,KAOZx5B,KAAKi6C,MAAQ,GAIjBnmB,EAAOmxE,WAAW5hG,WASdu9B,IAAK,SAAU78B,GAGX,MAAmB,KAAf/D,KAAKi6C,OAA8B,OAAfj6C,KAAKy6D,OAAgC,OAAdz6D,KAAKw5B,MAEhDx5B,KAAKy6D,MAAQ12D,EACb/D,KAAKw5B,KAAOz1B,EACZ/D,KAAK+2C,KAAOhzC,EACZA,EAAKmhG,KAAOllG,KACZA,KAAKi6C,QACEl2C,IAIX/D,KAAKw5B,KAAKud,KAAOhzC,EAEjBA,EAAKmhG,KAAOllG,KAAKw5B,KAEjBx5B,KAAKw5B,KAAOz1B,EAEZ/D,KAAKi6C,QAEEl2C,IASX0Y,MAAO,WAEHzc,KAAKy6D,MAAQ,KACbz6D,KAAKw5B,KAAO,KACZx5B,KAAK+2C,KAAO,KACZ/2C,KAAKklG,KAAO,KACZllG,KAAKi6C,MAAQ,GAUjBlO,OAAQ,SAAUhoC,GAEd,MAAmB,KAAf/D,KAAKi6C,OAELj6C,KAAKyc,aACL1Y,EAAKgzC,KAAOhzC,EAAKmhG,KAAO,QAIxBnhG,IAAS/D,KAAKy6D,MAGdz6D,KAAKy6D,MAAQz6D,KAAKy6D,MAAM1jB,KAEnBhzC,IAAS/D,KAAKw5B,OAGnBx5B,KAAKw5B,KAAOx5B,KAAKw5B,KAAK0rE,MAGtBnhG,EAAKmhG,OAGLnhG,EAAKmhG,KAAKnuD,KAAOhzC,EAAKgzC,MAGtBhzC,EAAKgzC,OAGLhzC,EAAKgzC,KAAKmuD,KAAOnhG,EAAKmhG,MAG1BnhG,EAAKgzC,KAAOhzC,EAAKmhG,KAAO,KAEL,OAAfllG,KAAKy6D,QAELz6D,KAAKw5B,KAAO,UAGhBx5B,MAAKi6C,UAWTnB,QAAS,SAAUH,GAEf,GAAK34C,KAAKy6D,OAAUz6D,KAAKw5B,KAAzB,CAKA,GAAI2rE,GAASnlG,KAAKy6D,KAElB,GAEQ0qC,IAAUA,EAAOxsD,IAEjBwsD,EAAOxsD,GAAU7yC,KAAKq/F,GAG1BA,EAASA,EAAOpuD,WAGdouD,GAAUnlG,KAAKw5B,KAAKud,SAMlCjjB,EAAOmxE,WAAW5hG,UAAUC,YAAcwwB,EAAOmxE,WAsBjDnxE,EAAO8gB,QAAU,SAAUhwC,EAAM0tC,GAE7BA,EAASA,MAKTtyC,KAAK4E,KAAOA,EAKZ5E,KAAKsyC,OAASA,EAKdtyC,KAAKolG,OAAS,KAKdplG,KAAK0jC,GAAK,KAKV1jC,KAAKqlG,MAAQ,KAKbrlG,KAAKslG,MAAQ,KAKbtlG,KAAKulG,SAAW,KAKhBvlG,KAAKwlG,OAAS,KAEdxlG,KAAKuyC,eAQTze,EAAO8gB,QAAQC,OAAS,EAMxB/gB,EAAO8gB,QAAQyvB,KAAO,EAMtBvwC,EAAO8gB,QAAQ6wD,MAAQ,EAMvB3xE,EAAO8gB,QAAQ8wD,MAAQ,EAMvB5xE,EAAO8gB,QAAQ+wD,SAAW,EAM1B7xE,EAAO8gB,QAAQgxD,SAAW,EAE1B9xE,EAAO8gB,QAAQvxC,WAOXkvC,YAAa,WAEHvyC,KAAKsyC,OAAOtX,eAAe,WAAah7B,KAAKsyC,OAAe,UAAM,IAASxe,EAAO8gB,QAAQ5Z,eAAe,YAG3Gh7B,KAAKolG,OAAS,GAAItxE,GAAO8gB,QAAQ82B,OAAO1rE,KAAK4E,OAG7C5E,KAAKsyC,OAAOtX,eAAe,UAAYh7B,KAAKsyC,OAAc,SAAM,GAAQxe,EAAO8gB,QAAQ5Z,eAAe,WAEtGh7B,KAAKqlG,MAAQ,GAAIvxE,GAAO8gB,QAAQixD,MAAM7lG,KAAK4E,OAG3C5E,KAAKsyC,OAAOtX,eAAe,OAASh7B,KAAKsyC,OAAW,MAAM,GAAQxe,EAAO8gB,QAAQ5Z,eAAe,QAEhGh7B,KAAK0jC,GAAK,GAAI5P,GAAO8gB,QAAQkxD,GAAG9lG,KAAK4E,KAAM5E,KAAKsyC,SAGhDtyC,KAAKsyC,OAAOtX,eAAe,UAAYh7B,KAAKsyC,OAAc,SAAM,GAAQxe,EAAO8gB,QAAQ5Z,eAAe,WAEtGh7B,KAAKslG,MAAQ,GAAIxxE,GAAO8gB,QAAQ8wD,MAAM1lG,KAAK4E,KAAM5E,KAAKsyC,SAGtDtyC,KAAKsyC,OAAOtX,eAAe,WAAah7B,KAAKsyC,OAAe,UAAM,GAAQxe,EAAO8gB,QAAQ5Z,eAAe,YAExGh7B,KAAKwlG,OAAS,GAAI1xE,GAAO8gB,QAAQmxD,OAAO/lG,KAAK4E,KAAM5E,KAAKsyC,UAyBhE0zD,YAAa,SAAUC,GAEfA,IAAWnyE,EAAO8gB,QAAQC,OAE1B70C,KAAKolG,OAAS,GAAItxE,GAAO8gB,QAAQ82B,OAAO1rE,KAAK4E,MAExCqhG,IAAWnyE,EAAO8gB,QAAQyvB,KAEf,OAAZrkE,KAAK0jC,GAEL1jC,KAAK0jC,GAAK,GAAI5P,GAAO8gB,QAAQkxD,GAAG9lG,KAAK4E,KAAM5E,KAAKsyC,QAIhDtyC,KAAK0jC,GAAGjnB,QAGPwpF,IAAWnyE,EAAO8gB,QAAQ6wD,MAE/BzlG,KAAKqlG,MAAQ,GAAIvxE,GAAO8gB,QAAQixD,MAAM7lG,KAAK4E,MAEtCqhG,IAAWnyE,EAAO8gB,QAAQ8wD,MAEZ,OAAf1lG,KAAKslG,MAELtlG,KAAKslG,MAAQ,GAAIxxE,GAAO8gB,QAAQsxD,MAAMlmG,KAAK4E,KAAM5E,KAAKsyC,QAItDtyC,KAAKslG,MAAM7oF,QAGVwpF,IAAWnyE,EAAO8gB,QAAQgxD,WAEX,OAAhB5lG,KAAKwlG,OAELxlG,KAAKwlG,OAAS,GAAI1xE,GAAO8gB,QAAQmxD,OAAO/lG,KAAK4E,KAAM5E,KAAKsyC,QAIxDtyC,KAAKwlG,OAAO/oF,UA0BxBmH,OAAQ,SAAU4mD,EAAQy7B,EAAQn5D,GAEfrjC,SAAXw8F,IAAwBA,EAASnyE,EAAO8gB,QAAQC,QACtCprC,SAAVqjC,IAAuBA,GAAQ,GAE/Bm5D,IAAWnyE,EAAO8gB,QAAQC,OAE1B70C,KAAKolG,OAAOxhF,OAAO4mD,GAEdy7B,IAAWnyE,EAAO8gB,QAAQyvB,MAAQrkE,KAAK0jC,GAE5C1jC,KAAK0jC,GAAG9f,OAAO4mD,EAAQ19B,GAElBm5D,IAAWnyE,EAAO8gB,QAAQ6wD,OAASzlG,KAAKqlG,MAE7CrlG,KAAKqlG,MAAMc,WAAW37B,GAEjBy7B,IAAWnyE,EAAO8gB,QAAQ8wD,OAAS1lG,KAAKslG,MAE7CtlG,KAAKslG,MAAM1hF,OAAO4mD,GAEby7B,IAAWnyE,EAAO8gB,QAAQgxD,UAAY5lG,KAAKwlG,QAEhDxlG,KAAKwlG,OAAO5hF,OAAO4mD,IAW3BlkE,UAAW,WAIHtG,KAAK0jC,IAEL1jC,KAAK0jC,GAAGp9B,YAGRtG,KAAKslG,OAELtlG,KAAKslG,MAAMh/F,YAGXtG,KAAKwlG,QAELxlG,KAAKwlG,OAAOl/F,aAWpBggC,OAAQ,WAIAtmC,KAAK0jC,IAEL1jC,KAAK0jC,GAAG4C,SAGRtmC,KAAKslG,OAELtlG,KAAKslG,MAAMh/D,SAGXtmC,KAAKwlG,QAELxlG,KAAKwlG,OAAOl/D,UAWpBG,iBAAkB,WAEVzmC,KAAKolG,QAELplG,KAAKolG,OAAO3+D,mBAGZzmC,KAAKqlG,OAELrlG,KAAKqlG,MAAM5+D,mBAGXzmC,KAAK0jC,IAEL1jC,KAAK0jC,GAAG+C,mBAGRzmC,KAAKslG,OAELtlG,KAAKslG,MAAM7+D,mBAGXzmC,KAAKwlG,QAELxlG,KAAKwlG,OAAO/+D,oBAWpBriB,MAAO,WAECpkB,KAAK0jC,IAEL1jC,KAAK0jC,GAAGtf,QAGRpkB,KAAKslG,OAELtlG,KAAKslG,MAAMlhF,QAGXpkB,KAAKwlG,QAELxlG,KAAKwlG,OAAOphF,SAWpB3H,MAAO,WAECzc,KAAK0jC,IAEL1jC,KAAK0jC,GAAGjnB,QAGRzc,KAAKslG,OAELtlG,KAAKslG,MAAM7oF,QAGXzc,KAAKwlG,QAELxlG,KAAKwlG,OAAO/oF,SAUpBlZ,QAAS,WAEDvD,KAAK0jC,IAEL1jC,KAAK0jC,GAAGngC,UAGRvD,KAAKslG,OAELtlG,KAAKslG,MAAM/hG,UAGXvD,KAAKwlG,QAELxlG,KAAKwlG,OAAOjiG,UAGhBvD,KAAKolG,OAAS,KACdplG,KAAKqlG,MAAQ,KACbrlG,KAAK0jC,GAAK,KACV1jC,KAAKslG,MAAQ,KACbtlG,KAAKwlG,OAAS,OAMtB1xE,EAAO8gB,QAAQvxC,UAAUC,YAAcwwB,EAAO8gB,QAe9C9gB,EAAO43B,UAAY,SAAU9mD,GAKzB5E,KAAK4E,KAAOA,EAKZ5E,KAAKomG,YAMLpmG,KAAKqmG,GAAK,GAIdvyE,EAAO43B,UAAUroD,WAQbu9B,IAAK,SAAU4qC,GAIX,MAFAxrE,MAAKomG,SAAS56B,EAAQrwC,MAAQqwC,EAEvBA,GASXz/B,OAAQ,SAAUy/B,SAEPxrE,MAAKomG,SAAS56B,EAAQrwC,OASjCmL,OAAQ,WAEJ,IAAK,GAAI5vB,KAAO1W,MAAKomG,SAEbpmG,KAAKomG,SAAS1vF,GAAKu7B,QAEnBjyC,KAAKomG,SAAS1vF,GAAK4vB,WAQnCxS,EAAO43B,UAAUroD,UAAUC,YAAcwwB,EAAO43B,UAWxBjiD,SAApB3J,KAAK+L,aAEL/L,KAAK+L,WAAaioB,EAAOjoB,YAGLpC,SAApB3J,KAAK2N,aAEL3N,KAAK2N,WAAaqmB,EAAOrmB,YAGKhE,SAA9B3J,KAAKyL,QAAQC,eAEb1L,KAAKyL,QAAQC,aAAe,GAAI1L,MAAKyL,QAAQ,GAAIzL,MAAKgyB,cAGnBroB,SAAnC3J,KAAK0B,cAAcuF,cAEnBjH,KAAK0B,cAAcuF,YAAc,GAAIjH,MAAK0C,QAGRiH,SAAlC3J,KAAK8G,cAAcitB,aAEnB/zB,KAAK8G,cAAcitB,WAAa,GAAI/zB,MAAK0C,QAGlBiH,SAAvB3J,KAAK6c,SAASC,OAEd9c,KAAK6c,SAASC,KAAOkX,EAAO+C,QAC5B/2B,KAAK6c,SAASa,KAAOsW,EAAOyD,UAC5Bz3B,KAAK6c,SAASe,KAAOoW,EAAOwD,OAC5Bx3B,KAAK6c,SAASgB,KAAOmW,EAAOmD,QAC5Bn3B,KAAK6c,SAASkB,KAAOiW,EAAO6D,kBAGhC73B,KAAKgzB,mBAAoB,EAQE,mBAAZ+B,UACe,mBAAXC,SAA0BA,OAAOD,UACxCA,QAAUC,OAAOD,QAAUf,GAE/Be,QAAQf,OAASA,GACQ,mBAAXiB,SAA0BA,OAAOC,IAC/CD,OAAO,SAAU,WAAc,MAAOh1B,GAAK+zB,OAASA,MAEpD/zB,EAAK+zB,OAASA,IAEnBhuB,KAAK9F"} \ No newline at end of file +{"version":3,"file":"phaser-minimum.min.js","sources":["phaser-minimum.js"],"names":["root","this","PIXI","WEBGL_RENDERER","CANVAS_RENDERER","VERSION","_UID","Float32Array","Uint16Array","Uint32Array","ArrayBuffer","Array","PI_2","Math","PI","RAD_TO_DEG","DEG_TO_RAD","RETINA_PREFIX","defaultRenderOptions","view","transparent","antialias","preserveDrawingBuffer","resolution","clearBeforeRender","autoResize","DisplayObject","position","Point","scale","transformCallback","transformCallbackContext","pivot","rotation","alpha","visible","hitArea","renderable","parent","stage","worldAlpha","worldTransform","Matrix","worldPosition","worldScale","worldRotation","_sr","_cr","filterArea","_bounds","Rectangle","_currentBounds","_mask","_cacheAsBitmap","_cacheIsDirty","prototype","constructor","destroy","children","i","length","_destroyCachedSprite","Object","defineProperty","get","item","set","value","isMask","_filters","passes","filterPasses","j","push","_filterBlock","target","_generateCachedSprite","updateTransform","game","p","world","a","b","c","d","tx","ty","pt","wt","rotationCache","sin","cos","x","y","sqrt","atan2","call","displayObjectUpdateTransform","getBounds","matrix","EmptyRectangle","getLocalBounds","identityMatrix","setStageReference","preUpdate","generateTexture","scaleMode","renderer","bounds","renderTexture","RenderTexture","width","height","_tempMatrix","render","updateCache","toGlobal","apply","toLocal","from","applyInverse","_renderCachedSprite","renderSession","_cachedSprite","gl","Sprite","_renderWebGL","_renderCanvas","texture","resize","tempFilters","filters","anchor","DisplayObjectContainer","create","_width","_height","addChild","child","addChildAt","index","removeChild","splice","Error","swapChildren","child2","index1","getChildIndex","index2","indexOf","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","Texture","emptyTexture","tint","cachedTint","tintedTexture","blendMode","blendModes","NORMAL","shader","baseTexture","hasLoaded","onTextureUpdate","frame","setTexture","valid","w0","w1","h0","h1","x1","y1","x2","y2","x3","y3","x4","y4","crop","currentBlendMode","context","globalCompositeOperation","blendModesCanvas","globalAlpha","smoothProperty","scaleModes","LINEAR","dx","trim","dy","roundPixels","setTransform","cw","ch","requiresReTint","CanvasTinter","getTintedTexture","drawImage","cx","cy","source","fromFrame","frameId","TextureCache","fromImage","imageId","crossorigin","SpriteBatch","textureThing","ready","initWebGL","fastSpriteBatch","WebGLFastSpriteBatch","setContext","shaderManager","setShader","fastShader","transform","isRotated","childTransform","Stage","backgroundColor","setBackgroundColor","backgroundColorSplit","hex2rgb","hex","toString","substr","backgroundColorString","rgb2hex","rgb","canUseNewCanvasBlendModes","document","pngHead","pngEnd","magenta","Image","src","yellow","canvas","createElement","getContext","getImageData","data","getNextPowerOfTwo","number","result","isPowerOfTwo","PolyK","Triangulate","sign","n","tgs","avl","al","i0","i1","i2","ax","ay","bx","by","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","isArray","join","createShader","shaderSource","compileShader","getShaderParameter","COMPILE_STATUS","window","console","log","getShaderInfoLog","compileProgram","vertexSrc","fragmentSrc","fragmentShader","vertexShader","shaderProgram","createProgram","attachShader","linkProgram","getProgramParameter","LINK_STATUS","PixiShader","program","textureCount","firstRun","dirty","attributes","init","defaultVertexSrc","useProgram","uSampler","getUniformLocation","projectionVector","offsetVector","dimensions","aVertexPosition","getAttribLocation","aTextureCoord","colorAttribute","key","uniforms","uniformLocation","initUniforms","uniform","type","_init","initSampler2D","glMatrix","glValueLength","glFunc","uniformMatrix2fv","uniformMatrix3fv","uniformMatrix4fv","activeTexture","bindTexture","TEXTURE_2D","_glTextures","id","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","transpose","z","w","_dirty","instances","updateTexture","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","toArray","uniform1f","uniform2f","uniform3fv","bindBuffer","ARRAY_BUFFER","buffer","vertexAttribPointer","FLOAT","ELEMENT_ARRAY_BUFFER","indexBuffer","TRIANGLE_STRIP","lastIndex","clearDirty","graphicsData","reset","graphicsDataPool","Graphics","POLY","points","shape","slice","closed","fill","switchMode","canDrawUsingSimple","buildPoly","buildComplexPoly","lineWidth","buildLine","RECT","buildRectangle","CIRC","ELIP","buildCircle","RREC","buildRoundedRectangle","upload","pop","WebGLGraphicsData","rectData","fillColor","fillAlpha","r","g","verts","vertPos","tempPoints","rrectData","radius","recPoints","concat","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","a1","b1","c1","a2","b2","c2","denom","pdist","dist","indexCount","indexStart","lineColor","lineAlpha","abs","createBuffer","glPoints","bufferData","STATIC_DRAW","glIndicies","glContexts","WebGLRenderer","options","defaultRenderer","_contextOptions","premultipliedAlpha","stencil","WebGLShaderManager","WebGLSpriteBatch","WebGLMaskManager","WebGLFilterManager","WebGLStencilManager","blendModeManager","WebGLBlendModeManager","drawCount","initContext","mapBlendModes","glContextId","disable","DEPTH_TEST","CULL_FACE","enable","BLEND","contextLost","__stage","viewport","bindFramebuffer","FRAMEBUFFER","clearColor","clear","COLOR_BUFFER_BIT","renderDisplayObject","displayObject","setBlendMode","style","createTexture","UNPACK_PREMULTIPLY_ALPHA_WEBGL","NEAREST","mipmap","LINEAR_MIPMAP_LINEAR","NEAREST_MIPMAP_NEAREST","generateMipmap","_powerOf2","blendModesWebGL","ONE","ONE_MINUS_SRC_ALPHA","ADD","SRC_ALPHA","DST_ALPHA","MULTIPLY","DST_COLOR","SCREEN","OVERLAY","DARKEN","LIGHTEN","COLOR_DODGE","COLOR_BURN","HARD_LIGHT","SOFT_LIGHT","DIFFERENCE","EXCLUSION","HUE","SATURATION","COLOR","LUMINOSITY","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","size","numVerts","numIndices","vertices","positions","colors","lastIndexCount","drawing","currentBatchSize","currentBaseTexture","textures","shaders","sprites","AbstractFilter","vertexBuffer","DYNAMIC_DRAW","sprite","uvs","_uvs","aX","aY","x0","y0","renderTilingSprite","tilingTexture","TextureUvs","h","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","DEFAULT","framebufferTexture2D","COLOR_ATTACHMENT0","renderBuffer","createRenderbuffer","bindRenderbuffer","RENDERBUFFER","framebufferRenderbuffer","DEPTH_STENCIL_ATTACHMENT","renderbufferStorage","DEPTH_STENCIL","deleteFramebuffer","deleteTexture","CanvasBuffer","clearRect","CanvasMaskManager","save","cacheAlpha","CanvasGraphics","renderGraphicsMask","clip","restore","tintMethod","tintWithMultiply","fillStyle","fillRect","tintWithPerPixel","rgbValues","pixelData","pixels","canHandleAlpha","putImageData","checkInverseAlpha","s1","s2","canUseMultiply","CanvasRenderer","refresh","navigator","isCocoonJS","screencanvas","removeView","updateGraphicsTint","_fillTint","_lineTint","beginPath","moveTo","lineTo","closePath","strokeStyle","stroke","strokeRect","arc","kappa","ox","oy","xe","ye","xm","ym","bezierCurveTo","rx","ry","maxRadius","min","quadraticCurveTo","len","rect","tintR","tintG","tintB","BaseTextureCache","BaseTextureCacheIdGenerator","BaseTexture","complete","naturalWidth","naturalHeight","imageUrl","forceLoaded","_pixiId","unloadFromGPU","updateSourceImage","newSrc","glTexture","image","crossOrigin","fromCanvas","TextureCacheIdGenerator","FrameCache","TextureSilentFail","noFrame","isTiling","requiresUpdate","setFrame","onBaseTextureLoaded","destroyBase","_updateUvs","tw","th","addTextureToCache","removeTextureFromCache","textureBuffer","renderWebGL","renderCanvas","tempMatrix","Phaser","updateBase","identity","translate","append","realResolution","getImage","getBase64","getCanvas","toDataURL","webGLPixels","Uint8Array","readPixels","tempCanvas","canvasData","exports","module","define","amd","WheelEventProxy","scaleFactor","deltaMode","_scaleFactor","_deltaMode","originalEvent","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","CIRCLE","RECTANGLE","LINE","MATRIX","POINT","ROUNDEDRECTANGLE","CREATURE","VIDEO","trunc","ceil","floor","Function","bind","thisArg","bound","args","boundArgs","arguments","TypeError","F","proto","arg","forEach","fun","t","CheapArray","assert","warn","Utils","getProperty","obj","prop","parts","split","last","l","current","setProperty","chanceRoll","chance","random","randomChoice","choice1","choice2","parseDimension","dimension","f","parseInt","innerWidth","innerHeight","pad","str","dir","padlen","right","left","isPlainObject","nodeType","hasOwnProperty","e","extend","name","copy","copyIsArray","clone","deep","mixinPrototype","mixin","replace","mixinKeys","keys","to","o","childNodes","cloneNode","Circle","diameter","_diameter","_radius","circumference","out","setTo","copyFrom","copyTo","dest","distance","round","output","contains","circumferencePoint","angle","asDegrees","offsetPoint","point","top","bottom","equals","intersects","degToRad","intersectsRectangle","halfWidth","xDist","halfHeight","yDist","xCornerDist","yCornerDist","xCornerDistSq","yCornerDistSq","maxCornerDistSq","Ellipse","normx","normy","Line","fromSprite","startSprite","endSprite","useCenter","center","fromAngle","rotate","line","asSegment","intersectsPoints","reflect","pointOnLine","pointOnSegment","xMin","xMax","max","yMin","yMax","coordinatesOnLine","stepRate","results","sx","sy","err","e2","wrap","uc","ua","ub","normalAngle","fromArray","array","pos","newPos","tx1","d1","invert","add","subtract","multiply","divide","clampX","clamp","clampY","radToDeg","getMagnitude","getMagnitudeSq","setMagnitude","magnitude","normalize","isZero","m","dot","cross","perp","rperp","normalRightHand","negative","multiplyAdd","s","interpolate","project","amt","projectUnit","centroid","pointslength","parse","xProp","yProp","Polygon","area","_points","toNumberArray","flatten","inside","ix","iy","jx","jy","Number","MAX_VALUE","calculateArea","p1","p2","avgHeight","centerOn","centerX","centerY","floorAll","ceilAll","inflate","containsRect","intersection","intersectsRaw","tolerance","union","randomX","randomY","empty","inflatePoint","containsRaw","rw","rh","containsPoint","volume","sameDimensions","aabb","MIN_VALUE","RoundedRectangle","Camera","deadzone","roundPx","atLimit","totalInView","_targetPosition","_edge","_position","FOLLOW_LOCKON","FOLLOW_PLATFORMER","FOLLOW_TOPDOWN","FOLLOW_TOPDOWN_TIGHT","follow","helper","unfollow","focusOn","setPosition","focusOnXY","update","updateTarget","checkBounds","setBoundsToWorld","setSize","Create","bmd","make","bitmapData","ctx","palettes",1,2,3,4,5,6,7,8,9,"A","B","C","D","E","PALETTE_ARNE","PALETTE_JMP","PALETTE_CGA","PALETTE_C64","PALETTE_JAPANESE_MACHINE","pixelWidth","pixelHeight","palette","row","grid","cellWidth","cellHeight","State","camera","cache","input","load","math","sound","time","tweens","particles","physics","rnd","preload","loadUpdate","loadRender","preRender","paused","resumed","pauseUpdate","shutdown","StateManager","pendingState","states","_pendingState","_clearWorld","_clearCache","_created","_args","onStateChange","Signal","onInitCallback","onPreloadCallback","onCreateCallback","onUpdateCallback","onRenderCallback","onResizeCallback","onPreRenderCallback","onLoadUpdateCallback","onLoadRenderCallback","onPausedCallback","onResumedCallback","onPauseUpdateCallback","onShutDownCallback","boot","onPause","pause","onResume","resume","state","autoStart","newState","isBooted","remove","callbackContext","clearWorld","clearCache","checkState","restart","dummy","previousStateKey","clearCurrentState","setCurrentState","dispatch","totalQueuedFiles","totalQueuedPacks","loadComplete","removeAll","debug","link","unlink","_kickstart","getCurrentState","elapsedTime","renderType","_bindings","_prevParams","memorize","_shouldPropagate","active","_boundDispatch","validateListener","listener","fnName","_registerListener","isOnce","listenerContext","priority","binding","prevIndex","_indexOfListener","SignalBinding","_addBinding","execute","_priority","cur","_listener","has","addOnce","_destroy","getNumListeners","halt","bindings","paramsArr","forget","dispose","_this","signal","_isOnce","_signal","callCount","params","handlerReturn","detach","isBound","getListener","getSignal","Filter","prevPoint","Date","mouse","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","exists","currentRenderOrderID","_hiddenVar","_onChange","_backgroundColor","config","parseConfig","DOM","getOffset","Canvas","setUserSelect","setTouchAction","checkVisibility","webkitHidden","mozHidden","msHidden","hidden","event","visibilityChange","addEventListener","onblur","onfocus","onpagehide","onpageshow","device","cocoonJSApp","CocoonJS","App","onSuspended","onActivated","focusLoss","focusGain","gamePaused","gameResumed","Color","valueToColor","getColor","RGBtoString","removeEventListener","Group","addToStage","enableBody","physicsBodyType","Physics","ARCADE","physicsType","alive","ignoreDestroy","pendingDestroy","classType","cursor","enableBodyDebug","physicsSortDirection","onDestroy","cursorIndex","fixedToCamera","cameraOffset","hash","_sortProperty","RETURN_NONE","RETURN_TOTAL","RETURN_CHILD","SORT_ASCENDING","SORT_DESCENDING","silent","body","addToHash","events","onAddedToGroup$dispatch","removeFromHash","addMultiple","moveAll","addAt","updateZ","getAt","createMultiple","quantity","resetCursor","next","previous","swap","child1","bringToTop","getIndex","sendToBack","moveUp","moveDown","xy","oldChild","newChild","hasProperty","operation","force","checkProperty","checkAlive","checkVisible","setAll","setAllChildren","checkAll","addAll","property","amount","subAll","multiplyAll","divideAll","callAllExists","callback","existsValue","callbackFromArray","callAll","method","methodLength","contextLength","renderOrderID","predicate","checkExists","ArraySet","forEachExists","iterate","forEachAlive","forEachDead","sort","order","ascendingSortHandler","descendingSortHandler","customSort","sortHandler","returnType","total","getFirstExists","getFirstAlive","getFirstDead","getTop","getBottom","countLiving","countDead","getRandom","ArrayUtils","getRandomItem","destroyPhase","onRemovedFromGroup$dispatch","group","removeBetween","destroyChildren","soft","World","_definedSize","stateChange","setBounds","useBounds","horizontal","vertical","between","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","text","geom","uuid","topLeft","topMiddle","topRight","bottomLeft","bottomMiddle","bottomRight","ScaleManager","dom","minWidth","maxWidth","minHeight","maxHeight","forceLandscape","forcePortrait","incorrectOrientation","_pageAlignHorizontally","_pageAlignVertically","onOrientationChange","enterIncorrectOrientation","leaveIncorrectOrientation","fullScreenTarget","_createdFullScreenTarget","onFullScreenInit","onFullScreenChange","onFullScreenError","screenOrientation","getScreenOrientation","scaleFactorInversed","margin","aspectRatio","sourceAspectRatio","windowConstraints","compatibility","supportsFullScreen","orientationFallback","noMargins","scrollTo","forceMinimumDocumentHeight","canExpandParent","clickTrampoline","_scaleMode","NO_SCALE","_fullScreenScaleMode","parentIsWindow","parentNode","parentScaleFactor","trackParentInterval","onSizeChange","onResizeContext","_pendingScaleMode","_fullScreenRestore","_gameSize","_userScaleFactor","_userScaleTrim","_lastUpdate","_updateThrottle","_updateThrottleReset","_parentBounds","_tempBounds","_lastReportedCanvasSize","_lastReportedGameSize","_booted","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","visualBounds","newWidth","newHeight","updateDimensions","queueUpdate","currentScaleMode","setUserScale","hScale","vScale","hTrim","vTrim","setResizeCallback","signalSizeChange","setMinMax","prevThrottle","prevWidth","prevHeight","boundsChanged","orientationChanged","updateOrientationState","updateLayout","throttle","updateScalingAndBounds","forceOrientation","classifyOrientation","orientation","previousOrientation","previouslyIncorrect","isLandscape","isPortrait","changed","correctnessChanged","scrollTop","reflowGame","documentElement","setMaximum","setExactFit","isFullScreen","boundingParent","setShowAll","resetCanvas","reflowCanvas","layoutBounds","clientRect","getBoundingClientRect","wc","windowBounds","alignCanvas","parentBounds","canvasBounds","currentEdge","targetEdge","marginLeft","marginRight","marginTop","marginBottom","pageAlignHorizontally","pageAlignVertically","cssWidth","cssHeight","expanding","createFullScreenTarget","fsTarget","background","startFullScreen","allowTrampoline","setTimeout","activePointer","mousePointer","addClickTrampoline","smoothed","cleanupCreatedTarget","initData","targetElement","insertBefore","appendChild","fullscreenKeyboard","requestFullscreen","Element","ALLOW_KEYBOARD_INPUT","stopFullScreen","cancelFullscreen","prepScreenMode","enteringFullscreen","createdTarget","targetWidth","targetHeight","enterFullScreen","leaveFullScreen","letterBox","scaleX1","scaleY1","scaleX2","scaleY2","scaleOnWidth","Game","physicsConfig","isRunning","raf","net","Device","lockRender","stepping","pendingStep","stepCount","onBlur","onFocus","_paused","_codePaused","currentUpdateID","updatesThisFrame","_deltaTime","_lastCount","_spiraling","fpsProblemNotifier","forceSingleUpdate","_nextFpsNotification","enableDebug","RandomDataGenerator","now","whenReady","seed","setUpRenderer","GameObjectFactory","GameObjectCreator","Cache","Loader","Time","TweenManager","Input","SoundManager","Particles","Net","Debug","showDebugHeader","RequestAnimationFrame","stopFocus","focus","hideBanner","webAudio","contextRestored","addToDOM","preventDefault","clearGLTextures","updateLogic","desiredFps","updateRender","slowMotion","slowStep","elapsed","timeStep","enableStep","disableStep","step","removeFromDOM","setMute","cordova","iOS","unsetMute","hitCanvas","hitContext","moveCallbacks","pollRate","enabled","multiInputOverride","MOUSE_TOUCH_COMBINE","speed","circle","maxPointers","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","Touch","MSPointer","Keyboard","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","mouseDownCallback","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","BACK_BUTTON","FORWARD_BUTTON","WHEEL_UP","WHEEL_DOWN","onMouseDown","onMouseMove","onMouseUp","_onMouseUpGlobal","onMouseUpGlobal","onMouseOut","onMouseOver","onMouseWheel","wheelEvent","mouseMoveCallback","withinGame","bindEvent","deltaY","requestPointerLock","element","mozRequestPointerLock","webkitRequestPointerLock","_pointerLockChange","pointerLockChange","pointerLockElement","mozPointerLockElement","webkitPointerLockElement","releasePointerLock","exitPointerLock","mozExitPointerLock","webkitExitPointerLock","_stubsGenerated","makeBinder","defineProperties","detail","deltaX","wheelDeltaX","deltaZ","pointerDownCallback","pointerMoveCallback","pointerUpCallback","_onMSPointerDown","_onMSPointerMove","_onMSPointerUp","onPointerDown","onPointerMove","onPointerUp","pointerType","DeviceButton","buttonCode","isDown","isUp","timeDown","duration","timeUp","repeats","altKey","shiftKey","ctrlKey","onFloat","padFloat","justPressed","justReleased","leftButton","middleButton","rightButton","backButton","forwardButton","eraserButton","ERASER_BUTTON","_holdSent","_history","_nextDrop","_stateReset","clientX","clientY","pageX","pageY","screenX","screenY","rawMovementX","rawMovementY","movementX","movementY","isMouse","previousTapTime","totalTouches","msSinceLastClick","targetObject","positionDown","positionUp","_clickTrampolines","_trampolineTargetObject","resetButtons","updateButtons","buttons","totalActivePointers","_touchedHandler","processInteractiveObjects","shift","fromClick","pollLocked","mozMovementX","webkitMovementX","mozMovementY","webkitMovementY","isDragged","highestRenderOrderID","highestInputPriorityID","candidateTarget","currentNode","first","checked","validForInput","checkPointerDown","checkPointerOver","priorityID","_pointerOutHandler","_pointerOverHandler","leave","currentPointers","callbackArgs","trampolines","trampoline","_releasedHandler","resetMovement","touchLockCallbacks","touchStartCallback","touchMoveCallback","touchEndCallback","touchEnterCallback","touchLeaveCallback","touchCancelCallback","_onTouchStart","_onTouchMove","_onTouchEnd","_onTouchEnter","_onTouchLeave","_onTouchCancel","onTouchStart","onTouchMove","onTouchEnd","onTouchEnter","onTouchLeave","onTouchCancel","consumeDocumentTouches","_documentTouchMove","addTouchLockCallback","removeTouchLockCallback","changedTouches","InputHandler","useHandCursor","_setHandCursor","allowHorizontalDrag","allowVerticalDrag","snapOffset","snapOnDrag","snapOnRelease","snapX","snapY","snapOffsetX","snapOffsetY","pixelPerfectOver","pixelPerfectClick","pixelPerfectAlpha","draggable","boundsRect","boundsSprite","consumePointerEvent","scaleLayer","dragOffset","dragFromCenter","dragStartPoint","snapPoint","_dragPoint","_dragPhase","_wasEnabled","_tempPoint","_pointerData","isOver","isOut","timeOver","timeOut","downDuration","onAddedToGroup","addedToGroup","onRemovedFromGroup","removedFromGroup","flagged","highestID","highestRenderID","includePixelPerfect","isPixelPerfect","pointerX","pointerY","pointerDown","pointerUp","pointerTimeDown","pointerTimeUp","pointerOver","pointerOut","pointerTimeOver","pointerTimeOut","pointerDragged","fastTest","checkPixel","_dx","_dy","_draggedPointerID","updateDrag","onInputOver$dispatch","onInputOut$dispatch","onInputDown$dispatch","startDrag","onInputUp$dispatch","stopDrag","globalToLocalX","globalToLocalY","checkBoundsRect","checkBoundsSprite","onDragUpdate","justOver","delay","overDuration","justOut","enableDrag","lockCenter","pixelPerfect","alphaThreshold","disableDrag","onDragStart$dispatch","onDragStop$dispatch","setDragLock","allowHorizontal","allowVertical","enableSnap","onDrag","onRelease","disableSnap","Component","Angle","wrapAngle","Animation","play","frameRate","loop","killOnComplete","animations","AutoCull","autoCull","inCamera","checkWorldBounds","Bounds","BringToTop","Core","install","components","previousPosition","Events","PhysicsBody","AnimationManager","LoadTexture","loadTexture","FixedToCamera","previousRotation","fresh","_exists","P2JS","removeFromWorld","customRender","Crop","cropRect","_crop","updateCrop","resetFrame","_frame","Delta","Destroy","onDestroy$dispatch","Video","onChangeSource","resizeFrame","BitmapText","_glyphs","_parent","_onDestroy","_onAddedToGroup","_onRemovedFromGroup","_onRemovedFromWorld","_onKilled","_onRevived","_onEnterBounds","_onOutOfBounds","_onInputOver","_onInputOut","_onInputDown","_onInputUp","_onDragStart","_onDragUpdate","_onDragStop","_onAnimationStart","_onAnimationComplete","_onAnimationLoop","onRemovedFromWorld","onKilled","onRevived","onOutOfBounds","onEnterBounds","onInputOver","onInputOut","onInputDown","onInputUp","onDragStart","onDragStop","onAnimationStart","onAnimationComplete","onAnimationLoop","backing","_fixedToCamera","Health","health","maxHealth","damage","kill","heal","InCamera","InputEnabled","inputEnabled","InWorld","_outOfBoundsFired","onEnterBounds$dispatch","onOutOfBounds$dispatch","outOfBoundsKill","inWorld","LifeSpan","lifespan","physicsElapsedMS","revive","onRevived$dispatch","onKilled$dispatch","stopAnimation","BitmapData","hasFrameData","loadFrameData","getFrameData","img","base","frameData","trimmed","spriteSourceSizeX","spriteSourceSizeY","sourceSizeW","sourceSizeH","refreshTexture","frameName","Overlap","overlap","_reset","Reset","ScaleMinMax","checkTransform","scaleMin","scaleMax","setScaleMinMax","Smoothed","existing","object","creature","mesh","Creature","tween","physicsGroup","audio","connect","audioSprite","addSprite","tileSprite","rope","Rope","Text","overFrame","outFrame","downFrame","upFrame","Button","emitter","maxParticles","Arcade","Emitter","retroFont","font","characterWidth","characterHeight","chars","charsPerRow","xSpacing","ySpacing","xOffset","yOffset","RetroFont","bitmapText","tilemap","tileWidth","tileHeight","Tilemap","addToCache","addRenderTexture","video","url","addBitmapData","Tween","align","preUpdatePhysics","preUpdateLifeSpan","preUpdateInWorld","preUpdateCore","_scroll","def","TilingSprite","physicsElapsed","autoScroll","stopScroll","_hasUpdateAnimation","_updateAnimationCallback","updateAnimation","_updateAnimation","segments","difference","_onOverFrame","_onOutFrame","_onDownFrame","_onUpFrame","onOverSound","onOutSound","onDownSound","onUpSound","onOverSoundMarker","onOutSoundMarker","onDownSoundMarker","onUpSoundMarker","onOverMouseOnly","freezeFrames","forceOut","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","Particle","autoScale","scaleData","_s","autoAlpha","alphaData","_a","onEmit","setAlphaData","setScaleData","deviceReadyAt","initialized","node","nodeWebkit","electron","ejecta","crosswalk","chromeOS","linux","macOS","windows","windowsPhone","canvasBitBltShift","file","fileSystem","localStorage","worker","css3D","typedArray","vibration","getUserMedia","quirksMode","arora","chromeVersion","epiphany","firefox","firefoxVersion","ie","ieVersion","trident","tridentVersion","mobileSafari","midori","opera","safari","silk","audioData","ogg","opus","mp3","wav","m4a","webm","oggVideo","h264Video","mp4Video","webmVideo","vp9Video","hlsVideo","iPhone","iPhone4","pixelRatio","littleEndian","LITTLE_ENDIAN","support32bit","onInitialized","nonPrimer","readyCheck","_readyCheck","_monitor","_queue","readyState","_initialize","_checkOS","userAgent","test","vita","kindle","_checkFeatures","getItem","error","WebGLRenderingContext","compatMode","webkitGetUserMedia","mozGetUserMedia","msGetUserMedia","oGetUserMedia","URL","webkitURL","mozURL","msURL","_checkInput","maxTouchPoints","msPointerEnabled","pointerEnabled","_checkFullScreenSupport","fs","cfs","_checkBrowser","RegExp","$1","$3","process","require","versions","_checkVideo","videoElement","canPlayType","_checkAudio","audioElement","_checkDevice","toLowerCase","Int8Array","_checkIsLittleEndian","Uint8ClampedArray","Int32Array","_checkIsUint8ClampedImageData","vibrate","webkitVibrate","mozVibrate","msVibrate","elem","createImageData","_checkCSS3D","has3d","el","transforms","webkitTransform","OTransform","msTransform","MozTransform","getComputedStyle","getPropertyValue","canPlayAudio","canPlayVideo","isConsoleOpen","profile","profileEnd","isAndroidStockBrowser","matches","match","box","scrollY","scrollLeft","scrollX","clientTop","clientLeft","cushion","calibrate","coords","getAspectRatio","inLayoutViewport","primaryFallback","screen","mozOrientation","msOrientation","PORTRAIT","LANDSCAPE","matchMedia","documentBounds","pageXOffset","pageYOffset","treatAsDesktop","clientWidth","clientHeight","offsetWidth","scrollWidth","offsetHeight","scrollHeight","display","msTouchAction","overflowHidden","overflow","translateX","translateY","skewX","skewY","setSmoothingEnabled","vendor","prefix","getSmoothingEnabled","setImageRenderingCrisp","msInterpolationMode","setImageRenderingBicubic","forceSetTimeOut","vendors","requestAnimationFrame","cancelAnimationFrame","_isSetTimeOut","_onLoop","_timeOutID","updateSetTimeout","updateRAF","rafTime","timeToCall","clearTimeout","isSetTimeOut","isRAF","PI2","fuzzyEqual","epsilon","fuzzyLessThan","fuzzyGreaterThan","fuzzyCeil","val","fuzzyFloor","average","sum","shear","snapTo","gap","snapToFloor","snapToCeil","roundTo","place","pow","floorTo","ceilTo","angleBetween","angleBetweenY","angleBetweenPoints","point1","point2","angleBetweenPointsY","reverseAngle","angleRad","normalizeAngle","maxAdd","minSub","wrapValue","isOdd","isEven","minProperty","maxProperty","radians","linearInterpolation","k","linear","bezierInterpolation","bernstein","catmullRomInterpolation","catmullRom","p0","factorial","res","p3","v0","v1","t2","t3","roundAwayFromZero","sinCosGenerator","sinAmplitude","cosAmplitude","frequency","frq","cosTable","sinTable","distanceSq","distancePow","clampBottom","within","mapLinear","smoothstep","smootherstep","percent","degreeToRadiansFactor","radianToDegreesFactor","degrees","seeds","s0","sow","charCodeAt","integer","frac","real","integerInRange","realInRange","normal","pick","ary","weightedPick","timestamp","QuadTree","maxObjects","maxLevels","objects","nodes","_empty","subWidth","subHeight","populate","populateHandler","insert","retrieve","returnObjects","netNoop","isDisabled","getHostName","checkDomainName","updateQueryString","getQueryString","decodeURI","prevTime","elapsedMS","suggestedFps","advancedTiming","frames","fps","fpsMin","fpsMax","msMin","msMax","pauseDuration","timeExpected","Timer","_frameCount","_elapsedAccumulator","_started","_timeLastSecond","_pauseStarted","_justResumed","_timers","timer","autoDestroy","updateAdvancedTiming","updateTimers","previousDateNow","timeCallExpected","_pause","_resume","elapsedSince","since","elapsedSecondsSince","running","expired","onComplete","nextTick","timeCap","_pauseTotal","_now","_marked","_diff","_newTick","MINUTE","SECOND","HALF","QUARTER","repeatCount","tick","TimerEvent","clearEvents","pendingDelete","clearPendingEvents","adjustEvents","baseTime","ms","currentFrame","currentAnim","updateIfVisible","isLoaded","_frameData","_anims","_outputFrames","anim","updateFrameData","copyFrameData","useNumericIndex","getFrameIndexes","validateFrames","checkFrameName","isPlaying","getAnimation","refreshFrame","isPaused","getFrame","getFrameByName","_frameIndex","_frames","loopCount","isFinished","_pauseStartTime","_frameDiff","_frameSkip","onStart","onUpdate","onLoop","_timeLastFrame","_timeNextFrame","updateCurrentFrame","onAnimationStart$dispatch","useLocalFrameIndex","frameIndex","dispatchComplete","onAnimationComplete$dispatch","onAnimationLoop$dispatch","signalUpdate","fromPlay","idx","generateFrameNames","suffix","zeroPad","Frame","rotated","rotationDirection","spriteSourceSizeW","spriteSourceSizeH","setTrim","actualWidth","actualHeight","destX","destY","destWidth","destHeight","getRect","FrameData","_frameNames","addFrame","getFrameRange","getFrames","AnimationParser","spriteSheet","frameWidth","frameHeight","frameMax","spacing","column","JSONData","json","newFrame","filename","sourceSize","spriteSourceSize","JSONDataHash","XMLData","xml","getElementsByTagName","frameX","frameY","autoResolveURL","_cache","binary","bitmapFont","_urlMap","_urlResolver","_urlTemp","onSoundUnlock","_cacheMap","TEXTURE","SOUND","PHYSICS","BINARY","BITMAPFONT","JSON","XML","SHADER","RENDER_TEXTURE","addDefaultImage","addMissingImage","addCanvas","addImage","checkImageKey","removeImage","_resolveURL","addSound","audioTag","decoded","isDecoding","touchLocked","addText","addPhysicsData","addTilemap","mapData","addBinary","binaryData","textureFrame","addBitmapFont","atlasData","atlasType","LoaderParser","jsonBitmapFont","xmlBitmapFont","addJSON","addXML","addVideo","isBlob","addShader","addSpriteSheet","addTextureAtlas","TEXTURE_ATLAS_XML_STARLING","reloadSound","getSound","reloadSoundComplete","updateSound","decodedSound","isSoundDecoded","isSoundReady","checkKey","checkURL","checkCanvasKey","checkTextureKey","checkSoundKey","checkTextKey","checkPhysicsKey","checkTilemapKey","checkBinaryKey","checkBitmapDataKey","checkBitmapFontKey","checkJSONKey","checkXMLKey","checkVideoKey","checkShaderKey","checkRenderTextureKey","full","getTextureFrame","getSoundData","getText","getPhysicsData","fixtureKey","fixtures","fixture","getTilemapData","getBinary","getBitmapData","getBitmapFont","getJSON","getXML","getVideo","getShader","getRenderTexture","getBaseTexture","getFrameCount","getFrameByIndex","getPixiTexture","getPixiBaseTexture","getURL","getKeys","removeCanvas","removeFromPixi","removeSound","removeText","removePhysics","removeTilemap","removeBinary","removeBitmapData","removeBitmapFont","removeJSON","removeXML","removeVideo","removeShader","removeRenderTexture","removeSpriteSheet","removeTextureAtlas","atlas","baseURL","isLoading","preloadSprite","path","onLoadStart","onLoadComplete","onPackComplete","onFileStart","onFileComplete","onFileError","useXDomainRequest","_warnedAboutXDomainRequest","enableParallel","maxParallelDownloads","_withSyncPointDepth","_fileList","_flightQueue","_processingHead","_fileLoadStarted","_totalPackCount","_totalFileCount","_loadedPackCount","_loadedFileCount","TEXTURE_ATLAS_JSON_ARRAY","TEXTURE_ATLAS_JSON_HASH","PHYSICS_LIME_CORONA_JSON","PHYSICS_PHASER_JSON","setPreloadSprite","direction","checkKeyExists","getAssetIndex","bestFound","loaded","loading","getAsset","fileIndex","addToFileList","properties","overwrite","extension","syncPoint","currentFile","replaceInFileList","pack","script","spritesheet","urls","autoDecode","noAudio","audiosprite","jsonURL","jsonData","loadEvent","asBlob","CSV","TILED_JSON","LIME_CORONA_JSON","textureURL","atlasURL","parseXml","atlasJSONArray","atlasJSONHash","atlasXML","withSyncPoint","addSyncPoint","asset","removeFile","updateProgress","processLoadQueue","finishedLoading","requestUrl","requestObject","progress","syncblock","inflightLimit","processPack","loadFile","abnormal","asyncComplete","errorMessage","packData","transformUrl","xhrLoad","fileComplete","loadImageTag","getAudioURL","usingWebAudio","usingAudioTag","loadAudioTag","fileError","getVideoURL","loadVideoTag","jsonLoadComplete","xmlLoadComplete","csvLoadComplete","onload","onerror","controls","autoplay","videoLoadEvent","canplay","Audio","playThroughEvent","XDomainRequest","xhrLoadWithXDR","xhr","XMLHttpRequest","open","responseType","message","send","timeout","ontimeout","onprogress","videoType","uri","lastIndexOf","audioType","reason","status","loadNext","responseText","Blob","response","decode","language","defer","head","contentType","domparser","DOMParser","parseFromString","ActiveXObject","async","loadXML","totalLoadedFiles","totalLoadedPacks","progressFloat","info","common","getAttribute","lineHeight","letters","charCode","xAdvance","kerning","kernings","second","finalizeBitmapFont","_face","_size","_lineHeight","letter","_id","_xoffset","_yoffset","_xadvance","_second","_first","_amount","bitmapFontData","debugNoop","soundInfo","cameraInfo","spriteInputInfo","inputInfo","spriteBounds","ropeSegments","spriteInfo","spriteCoords","lineInfo","pixel","rectangle","quadTree","bodyInfo","box2dWorld","box2dBody","list","getByKey","randomIndex","removeRandomItem","shuffle","transposeMatrix","sourceRowCount","sourceColCount","rotateMatrix","findClosest","arr","NaN","low","high","POSITIVE_INFINITY","numberArray","numberArrayStep","packPixel","unpackPixel","rgba","hsl","hsv","createColor","RGBtoHSL","RGBtoHSV","fromRGBA","toRGBA","HSLtoRGB","q","hueToColor","updateColor","HSVtoRGB","color32","getColor32","componentToHex","hexToRGB","hexToColor","exec","webToColor","web","parseFloat","tempColor","getRGB","HSVColorWheel","HSLColorWheel","interpolateColor","color1","color2","steps","currentStep","src1","src2","red","green","blue","interpolateColorWithRGB","or","og","ob","interpolateRGB","r1","g1","r2","g2","getRandomColor","getWebRGB","getAlpha","getAlphaFloat","getRed","getGreen","getBlue","blendNormal","blendLighten","blendDarken","blendMultiply","blendAverage","blendAdd","blendSubtract","blendDifference","blendNegation","blendScreen","blendExclusion","blendOverlay","blendSoftLight","blendHardLight","blendColorDodge","blendColorBurn","blendLinearDodge","blendLinearBurn","blendLinearLight","blendVividLight","blendPinLight","blendHardMix","blendReflect","blendGlow","blendPhoenix","LinkedList","prev","entity","arcade","ninja","box2d","chipmunk","matter","NINJA","BOX2D","CHIPMUNK","MATTERJS","Ninja","P2","Matter","startSystem","system","Box2D","enableAABB","emitters","ID"],"mappings":"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"} \ No newline at end of file diff --git a/build/custom/phaser-minimum.min.js b/build/custom/phaser-minimum.min.js index 2e6bd00e8..34fa2c4a1 100644 --- a/build/custom/phaser-minimum.min.js +++ b/build/custom/phaser-minimum.min.js @@ -1,15 +1,15 @@ -/* Phaser v2.4.0 - http://phaser.io - @photonstorm - (c) 2015 Photon Storm Ltd. */ +/* Phaser v2.4.1 - http://phaser.io - @photonstorm - (c) 2015 Photon Storm Ltd. */ -var PIXI=function(){var a=this,b=b||{};return b.WEBGL_RENDERER=0,b.CANVAS_RENDERER=1,b.VERSION="v2.2.8",b._UID=0,"undefined"!=typeof Float32Array?(b.Float32Array=Float32Array,b.Uint16Array=Uint16Array,b.Uint32Array=Uint32Array,b.ArrayBuffer=ArrayBuffer):(b.Float32Array=Array,b.Uint16Array=Array),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.defaultRenderOptions={view:null,transparent:!1,antialias:!1,preserveDrawingBuffer:!1,resolution:1,clearBeforeRender:!0,autoResize:!1},b.DisplayObject=function(){this.position=new b.Point(0,0),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.renderable=!1,this.parent=null,this.stage=null,this.worldAlpha=1,this.worldTransform=new b.Matrix,this.worldPosition=new b.Point(0,0),this.worldScale=new b.Point(1,1),this.worldRotation=0,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,b.DisplayObject.prototype.destroy=function(){if(this.children){for(var a=this.children.length;a--;)this.children[a].destroy();this.children=[]}this.transformCallback=null,this.transformCallbackContext=null,this.hitArea=null,this.parent=null,this.stage=null,this.worldTransform=null,this.filterArea=null,this._bounds=null,this._currentBounds=null,this._mask=null,this.renderable=!1,this._destroyCachedSprite()},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;gj;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;for(var b=0;bi&&(i*=-1),0>l&&(l*=-1),q=i*e+m,o=i*d+m,r=l*g+n,p=l*f+n;else{var s=i*e+k*g+m,t=l*g+j*e+n,u=i*d+k*g+m,v=l*g+j*d+n,w=i*d+k*f+m,x=l*f+j*d+n,y=i*e+k*f+m,z=l*f+j*e+n;q=q>s?s:q,q=q>u?u:q,q=q>w?w:q,q=q>y?y:q,r=r>t?t:r,r=r>v?v:r,r=r>x?x:r,r=r>z?z:r,o=s>o?s:o,o=u>o?u:o,o=w>o?w:o,o=y>o?y:o,p=t>p?t:p,p=v>p?v:p,p=x>p?x:p,p=z>p?z:p}var A=this._bounds;return A.x=q,A.width=o-q,A.y=r,A.height=p-r,this._currentBounds=A,A},b.Sprite.prototype._renderWebGL=function(a,b){if(this.visible&&!(this.alpha<=0)&&this.renderable){var c=this.worldTransform;if(b&&(c=b),this._mask||this._filters){var d=a.spriteBatch;this._filters&&(d.flush(),a.filterManager.pushFilter(this._filterBlock)),this._mask&&(d.stop(),a.maskManager.pushMask(this.mask,a),d.start()),d.render(this);for(var e=0;e>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]},b.canUseNewCanvasBlendModes=function(){if(void 0===document)return!1;var a="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAQAAAABAQMAAADD8p2OAAAAA1BMVEX/",b="AAAACklEQVQI12NgAAAAAgAB4iG8MwAAAABJRU5ErkJggg==",c=new Image;c.src=a+"AP804Oa6"+b;var d=new Image;d.src=a+"/wCKxvRF"+b;var e=document.createElement("canvas");e.width=6,e.height=1;var f=e.getContext("2d");if(f.globalCompositeOperation="multiply",f.drawImage(c,0,0),f.drawImage(d,2,0),!f.getImageData(2,0,1,1))return!1;var g=f.getImageData(2,0,1,1).data;return 255===g[0]&&0===g[1]&&0===g[2]},b.getNextPowerOfTwo=function(a){if(a>0&&0===(a&a-1))return a;for(var b=1;a>b;)b<<=1;return b},b.isPowerOfTwo=function(a,b){return a>0&&0===(a&a-1)&&b>0&&0===(b&b-1)},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;Array.isArray(b)&&(d=b.join("\n"));var 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;"," vColor = vec4(aColor.rgb * aColor.a, aColor.a);","}"],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 float flipY;","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 * -flipY) + flipY , 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.flipY=a.getUniformLocation(c,"flipY"),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;","uniform float flipY;","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 * -flipY) + flipY , 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.flipY=a.getUniformLocation(c,"flipY"),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=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;gj;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;for(var b=0;bi&&(i*=-1),0>l&&(l*=-1),q=i*e+m,o=i*d+m,r=l*g+n,p=l*f+n;else{var s=i*e+k*g+m,t=l*g+j*e+n,u=i*d+k*g+m,v=l*g+j*d+n,w=i*d+k*f+m,x=l*f+j*d+n,y=i*e+k*f+m,z=l*f+j*e+n;q=q>s?s:q,q=q>u?u:q,q=q>w?w:q,q=q>y?y:q,r=r>t?t:r,r=r>v?v:r,r=r>x?x:r,r=r>z?z:r,o=s>o?s:o,o=u>o?u:o,o=w>o?w:o,o=y>o?y:o,p=t>p?t:p,p=v>p?v:p,p=x>p?x:p,p=z>p?z:p}var A=this._bounds;return A.x=q,A.width=o-q,A.y=r,A.height=p-r,this._currentBounds=A,A},b.Sprite.prototype._renderWebGL=function(a,b){if(this.visible&&!(this.alpha<=0)&&this.renderable){var c=this.worldTransform;if(b&&(c=b),this._mask||this._filters){var d=a.spriteBatch;this._filters&&(d.flush(),a.filterManager.pushFilter(this._filterBlock)),this._mask&&(d.stop(),a.maskManager.pushMask(this.mask,a),d.start()),d.render(this);for(var e=0;e>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]},b.canUseNewCanvasBlendModes=function(){if(void 0===document)return!1;var a="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAQAAAABAQMAAADD8p2OAAAAA1BMVEX/",b="AAAACklEQVQI12NgAAAAAgAB4iG8MwAAAABJRU5ErkJggg==",c=new Image;c.src=a+"AP804Oa6"+b;var d=new Image;d.src=a+"/wCKxvRF"+b;var e=document.createElement("canvas");e.width=6,e.height=1;var f=e.getContext("2d");if(f.globalCompositeOperation="multiply",f.drawImage(c,0,0),f.drawImage(d,2,0),!f.getImageData(2,0,1,1))return!1;var g=f.getImageData(2,0,1,1).data;return 255===g[0]&&0===g[1]&&0===g[2]},b.getNextPowerOfTwo=function(a){if(a>0&&0===(a&a-1))return a;for(var b=1;a>b;)b<<=1;return b},b.isPowerOfTwo=function(a,b){return a>0&&0===(a&a-1)&&b>0&&0===(b&b-1)},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;Array.isArray(b)&&(d=b.join("\n"));var 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;"," vColor = vec4(aColor.rgb * aColor.a, aColor.a);","}"],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 float flipY;","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 * -flipY) + flipY , 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.flipY=a.getUniformLocation(c,"flipY"),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;","uniform float flipY;","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 * -flipY) + flipY , 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.flipY=a.getUniformLocation(c,"flipY"),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.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=[]},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)void 0===d[e]&&(d[e]=b.defaultRenderOptions[e]);else d=b.defaultRenderOptions;b.defaultRenderer||(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._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&&(this.__stage=a),a.updateTransform();var b=this.gl;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,e){this.renderSession.blendModeManager.setBlendMode(b.blendModes.NORMAL),this.renderSession.drawCount=0,this.renderSession.flipY=d?-1:1,this.renderSession.projection=c,this.renderSession.offset=this.offset,this.spriteBatch.begin(this.renderSession),this.filterManager.begin(this.renderSession,d),a._renderWebGL(this.renderSession,e),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),a.mipmap&&b.isPowerOfTwo(a.width,a.height)?(c.texParameteri(c.TEXTURE_2D,c.TEXTURE_MIN_FILTER,a.scaleMode===b.scaleModes.LINEAR?c.LINEAR_MIPMAP_LINEAR:c.NEAREST_MIPMAP_NEAREST),c.generateMipmap(c.TEXTURE_2D)):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.destroy=function(){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.instances[this.glContextId]=null,b.WebGLRenderer.glContextId--},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.uniform1f(e.flipY,d.flipY),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.uniform1f(e.flipY,d.flipY),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,b){var c=a.texture,d=a.worldTransform;b&&(d=b),this.currentBatchSize>=this.size&&(this.flush(),this.currentBaseTexture=c.baseTexture);var e=c._uvs;if(e){var f,g,h,i,j=a.anchor.x,k=a.anchor.y;if(c.trim){var l=c.trim;g=l.x-j*l.width,f=g+c.crop.width,i=l.y-k*l.height,h=i+c.crop.height}else f=c.frame.width*(1-j),g=c.frame.width*-j,h=c.frame.height*(1-k),i=c.frame.height*-k;var m=4*this.currentBatchSize*this.vertSize,n=c.baseTexture.resolution,o=d.a/n,p=d.b/n,q=d.c/n,r=d.d/n,s=d.tx,t=d.ty,u=this.colors,v=this.positions;this.renderSession.roundPixels?(v[m]=o*g+q*i+s|0,v[m+1]=r*i+p*g+t|0,v[m+5]=o*f+q*i+s|0,v[m+6]=r*i+p*f+t|0,v[m+10]=o*f+q*h+s|0,v[m+11]=r*h+p*f+t|0,v[m+15]=o*g+q*h+s|0,v[m+16]=r*h+p*g+t|0):(v[m]=o*g+q*i+s,v[m+1]=r*i+p*g+t,v[m+5]=o*f+q*i+s,v[m+6]=r*i+p*f+t,v[m+10]=o*f+q*h+s,v[m+11]=r*h+p*f+t,v[m+15]=o*g+q*h+s,v[m+16]=r*h+p*g+t),v[m+2]=e.x0,v[m+3]=e.y0,v[m+7]=e.x1,v[m+8]=e.y1,v[m+12]=e.x2,v[m+13]=e.y2,v[m+17]=e.x3,v[m+18]=e.y3;var w=a.tint;u[m+4]=u[m+9]=u[m+14]=u[m+19]=(w>>16)+(65280&w)+((255&w)<<16)+(255*a.worldAlpha<<24),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,e=c.baseTexture.width,f=c.baseTexture.height;a.tilePosition.x%=e*a.tileScaleOffset.x,a.tilePosition.y%=f*a.tileScaleOffset.y;var g=a.tilePosition.x/(e*a.tileScaleOffset.x),h=a.tilePosition.y/(f*a.tileScaleOffset.y),i=a.width/e/(a.tileScale.x*a.tileScaleOffset.x),j=a.height/f/(a.tileScale.y*a.tileScaleOffset.y);d.x0=0-g,d.y0=0-h,d.x1=1*i-g,d.y1=0-h,d.x2=1*i-g,d.y2=1*j-h,d.x3=0-g,d.y3=1*j-h;var k=a.tint,l=(k>>16)+(65280&k)+((255&k)<<16)+(255*a.worldAlpha<<24),m=this.positions,n=this.colors,o=a.width,p=a.height,q=a.anchor.x,r=a.anchor.y,s=o*(1-q),t=o*-q,u=p*(1-r),v=p*-r,w=4*this.currentBatchSize*this.vertSize,x=c.baseTexture.resolution,y=a.worldTransform,z=y.a/x,A=y.b/x,B=y.c/x,C=y.d/x,D=y.tx,E=y.ty;m[w++]=z*t+B*v+D,m[w++]=C*v+A*t+E,m[w++]=d.x0,m[w++]=d.y0,n[w++]=l,m[w++]=z*s+B*v+D,m[w++]=C*v+A*s+E,m[w++]=d.x1,m[w++]=d.y1,n[w++]=l,m[w++]=z*s+B*u+D,m[w++]=C*u+A*s+E,m[w++]=d.x2,m[w++]=d.y2,n[w++]=l,m[w++]=z*t+B*u+D,m[w++]=C*u+A*t+E,m[w++]=d.x3,m[w++]=d.y3,n[w++]=l,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,4,c.UNSIGNED_BYTE,!0,d,16)}if(this.currentBatchSize>.5*this.size)c.bufferSubData(c.ARRAY_BUFFER,0,this.vertices);else{var e=this.positions.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.tilingTexture?i.tilingTexture.baseTexture: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;jB?B:A,c.beginPath(),c.moveTo(w,x+A),c.lineTo(w,x+z-A),c.quadraticCurveTo(w,x+z,w+A,x+z),c.lineTo(w+y-A,x+z),c.quadraticCurveTo(w+y,x+z,w+y,x+z-A),c.lineTo(w+y,x+A),c.quadraticCurveTo(w+y,x,w+y-A,x),c.lineTo(w+A,x),c.quadraticCurveTo(w,x,w,x+A),c.closePath(),(f.fillColor||0===f.fillColor)&&(c.globalAlpha=f.fillAlpha*d,c.fillStyle="#"+("00000"+(0|h).toString(16)).substr(-6),c.fill()),f.lineWidth&&(c.globalAlpha=f.lineAlpha*d,c.strokeStyle="#"+("00000"+(0|i).toString(16)).substr(-6),c.stroke())}}},b.CanvasGraphics.renderGraphicsMask=function(a,c){var d=a.graphicsData.length;if(0!==d){c.beginPath();for(var e=0;d>e;e++){var f=a.graphicsData[e],g=f.shape;if(f.type===b.Graphics.POLY){var h=g.points;c.moveTo(h[0],h[1]);for(var i=1;iz?z:y,c.moveTo(u,v+y),c.lineTo(u,v+x-y),c.quadraticCurveTo(u,v+x,u+y,v+x),c.lineTo(u+w-y,v+x),c.quadraticCurveTo(u+w,v+x,u+w,v+x-y),c.lineTo(u+w,v+y),c.quadraticCurveTo(u+w,v,u+w-y,v),c.lineTo(u+y,v),c.quadraticCurveTo(u,v,u,v+y),c.closePath()}}}},b.CanvasGraphics.updateGraphicsTint=function(a){if(16777215!==a.tint)for(var b=(a.tint>>16&255)/255,c=(a.tint>>8&255)/255,d=(255&a.tint)/255,e=0;e>16&255)/255*b*255<<16)+((g>>8&255)/255*c*255<<8)+(255&g)/255*d*255,f._lineTint=((h>>16&255)/255*b*255<<16)+((h>>8&255)/255*c*255<<8)+(255&h)/255*d*255}},b.BaseTextureCache={},b.BaseTextureCacheIdGenerator=0,b.BaseTexture=function(a,c){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.mipmap=!1,this._dirty=[!0,!0,!0,!0],a&&((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()),this.imageUrl=null,this._powerOf2=!1)},b.BaseTexture.prototype.constructor=b.BaseTexture,b.BaseTexture.prototype.forceLoaded=function(a,b){this.hasLoaded=!0,this.width=a,this.height=b,this.dirty()},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++),0===a.width&&(a.width=1),0===a.height&&(a.height=1);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.TextureSilentFail=!1,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.isTiling=!1,this.requiresUpdate=!1,this.requiresReTint=!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))},b.Texture.prototype.constructor=b.Texture,b.Texture.prototype.onBaseTextureLoaded=function(){var a=this.baseTexture;this.noFrame&&(this.frame=new b.Rectangle(0,0,a.width,a.height)),this.setFrame(this.frame)},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)){if(!b.TextureSilentFail)throw new Error("Texture Error: frame does not fit inside the base Texture dimensions "+this);return void(this.valid=!1)}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.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.resolution,this.height*this.resolution)),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.height,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.tempMatrix=new Phaser.Matrix,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=a,this.height=c,this.frame.width=this.crop.width=a*this.resolution,this.frame.height=this.crop.height=c*this.resolution,d&&(this.baseTexture.width=this.width*this.resolution,this.baseTexture.height=this.height*this.resolution),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.height))},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&&0!==a.alpha){var d=a.worldTransform;d.identity(),d.translate(0,2*this.projection.y),b&&d.append(b),d.scale(1,-1);for(var e=0;ea;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,b}.call(this);(function(){function a(a,b){this._scaleFactor=a,this._deltaMode=b,this.originalEvent=null}var b=this,c=c||{VERSION:"2.4.0",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,CIRCLE:21,RECTANGLE:22,LINE:23,MATRIX:24,POINT:25,ROUNDEDRECTANGLE:26,CREATURE:27,VIDEO:28,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:PIXI||{}};if(Math.trunc||(Math.trunc=function(a){return 0>a?Math.ceil(a):Math.floor(a)}),Function.prototype.bind||(Function.prototype.bind=function(){var a=Array.prototype.slice;return function(b){function c(){var f=e.concat(a.call(arguments));d.apply(this instanceof c?this:b,f)}var d=this,e=a.call(arguments,1);if("function"!=typeof d)throw new TypeError;return c.prototype=function f(a){return a&&(f.prototype=a),this instanceof f?void 0:new f}(d.prototype),c}}()),Array.isArray||(Array.isArray=function(a){return"[object Array]"==Object.prototype.toString.call(a)}),Array.prototype.forEach||(Array.prototype.forEach=function(a){"use strict";if(void 0===this||null===this)throw new TypeError;var b=Object(this),c=b.length>>>0;if("function"!=typeof a)throw new TypeError;for(var d=arguments.length>=2?arguments[1]:void 0,e=0;c>e;e++)e in b&&a.call(d,b[e],e,b)}),"function"!=typeof window.Uint32Array&&"object"!=typeof window.Uint32Array){var d=function(a){var b=new Array;window[a]=function(a){if("number"==typeof a){Array.call(this,a),this.length=a;for(var b=0;bf&&(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 void 0===a&&(a=50),a>0&&100*Math.random()<=a},randomChoice:function(a,b){return Math.random()<.5?a:b},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(void 0===b)var b=0;if(void 0===c)var c=" ";if(void 0===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},mixinPrototype:function(a,b,c){void 0===c&&(c=!1);for(var d=Object.keys(b),e=0;e0&&(this._radius=.5*d),this.type=c.CIRCLE},c.Circle.prototype={circumference:function(){return 2*Math.PI*this._radius},random:function(a){void 0===a&&(a=new c.Point);var b=2*Math.PI*Math.random(),d=Math.random()+Math.random(),e=d>1?2-d:d,f=e*Math.cos(b),g=e*Math.sin(b);return a.x=this.x+f*this.radius,a.y=this.y+g*this.radius,a},getBounds:function(){return new c.Rectangle(this.x-this.radius,this.y-this.radius,this.diameter,this.diameter)},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 void 0===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 +a.bindFramebuffer(a.FRAMEBUFFER,i.frameBuffer),a.activeTexture(a.TEXTURE0),a.bindTexture(a.TEXTURE_2D,h.texture),this.applyFilterPass(k,d,d.width,d.height);var l=h;h=i,i=l}a.enable(a.BLEND),e=h,this.texturePool.push(i)}var m=c.filterPasses[c.filterPasses.length-1];this.offsetX-=d.x,this.offsetY-=d.y;var n=this.width,o=this.height,p=0,q=0,r=this.buffer;if(0===this.filterStack.length)a.colorMask(!0,!0,!0,!0);else{var s=this.filterStack[this.filterStack.length-1];d=s._filterArea,n=d.width,o=d.height,p=d.x,q=d.y,r=s._glFilterTexture.frameBuffer}f.x=n/2,f.y=-o/2,g.x=p,g.y=q,d=c._filterArea;var t=d.x-p,u=d.y-q;a.bindBuffer(a.ARRAY_BUFFER,this.vertexBuffer),this.vertexArray[0]=t,this.vertexArray[1]=u+d.height,this.vertexArray[2]=t+d.width,this.vertexArray[3]=u+d.height,this.vertexArray[4]=t,this.vertexArray[5]=u,this.vertexArray[6]=t+d.width,this.vertexArray[7]=u,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),a.viewport(0,0,n*this.renderSession.resolution,o*this.renderSession.resolution),a.bindFramebuffer(a.FRAMEBUFFER,r),a.activeTexture(a.TEXTURE0),a.bindTexture(a.TEXTURE_2D,e.texture),this.applyFilterPass(m,d,n,o),this.texturePool.push(e),c._glFilterTexture=null},b.WebGLFilterManager.prototype.applyFilterPass=function(a,c,d,e){var f=this.gl,g=a.shaders[f.id];g||(g=new b.PixiShader(f),g.fragmentSrc=a.fragmentSrc,g.uniforms=a.uniforms,g.init(),a.shaders[f.id]=g),this.renderSession.shaderManager.setShader(g),f.uniform2f(g.projectionVector,d/2,-e/2),f.uniform2f(g.offsetVector,0,0),a.uniforms.dimensions&&(a.uniforms.dimensions.value[0]=this.width,a.uniforms.dimensions.value[1]=this.height,a.uniforms.dimensions.value[2]=this.vertexArray[0],a.uniforms.dimensions.value[3]=this.vertexArray[5]),g.syncUniforms(),f.bindBuffer(f.ARRAY_BUFFER,this.vertexBuffer),f.vertexAttribPointer(g.aVertexPosition,2,f.FLOAT,!1,0,0),f.bindBuffer(f.ARRAY_BUFFER,this.uvBuffer),f.vertexAttribPointer(g.aTextureCoord,2,f.FLOAT,!1,0,0),f.bindBuffer(f.ARRAY_BUFFER,this.colorBuffer),f.vertexAttribPointer(g.colorAttribute,2,f.FLOAT,!1,0,0),f.bindBuffer(f.ELEMENT_ARRAY_BUFFER,this.indexBuffer),f.drawElements(f.TRIANGLES,6,f.UNSIGNED_SHORT,0),this.renderSession.drawCount++},b.WebGLFilterManager.prototype.initShaderBuffers=function(){var a=this.gl;this.vertexBuffer=a.createBuffer(),this.uvBuffer=a.createBuffer(),this.colorBuffer=a.createBuffer(),this.indexBuffer=a.createBuffer(),this.vertexArray=new b.Float32Array([0,0,1,0,0,1,1,1]),a.bindBuffer(a.ARRAY_BUFFER,this.vertexBuffer),a.bufferData(a.ARRAY_BUFFER,this.vertexArray,a.STATIC_DRAW),this.uvArray=new b.Float32Array([0,0,1,0,0,1,1,1]),a.bindBuffer(a.ARRAY_BUFFER,this.uvBuffer),a.bufferData(a.ARRAY_BUFFER,this.uvArray,a.STATIC_DRAW),this.colorArray=new b.Float32Array([1,16777215,1,16777215,1,16777215,1,16777215]),a.bindBuffer(a.ARRAY_BUFFER,this.colorBuffer),a.bufferData(a.ARRAY_BUFFER,this.colorArray,a.STATIC_DRAW),a.bindBuffer(a.ELEMENT_ARRAY_BUFFER,this.indexBuffer),a.bufferData(a.ELEMENT_ARRAY_BUFFER,new Uint16Array([0,1,2,1,3,2]),a.STATIC_DRAW)},b.WebGLFilterManager.prototype.destroy=function(){var a=this.gl;this.filterStack=null,this.offsetX=0,this.offsetY=0;for(var b=0;bB?B:A,c.beginPath(),c.moveTo(w,x+A),c.lineTo(w,x+z-A),c.quadraticCurveTo(w,x+z,w+A,x+z),c.lineTo(w+y-A,x+z),c.quadraticCurveTo(w+y,x+z,w+y,x+z-A),c.lineTo(w+y,x+A),c.quadraticCurveTo(w+y,x,w+y-A,x),c.lineTo(w+A,x),c.quadraticCurveTo(w,x,w,x+A),c.closePath(),(f.fillColor||0===f.fillColor)&&(c.globalAlpha=f.fillAlpha*d,c.fillStyle="#"+("00000"+(0|h).toString(16)).substr(-6),c.fill()),f.lineWidth&&(c.globalAlpha=f.lineAlpha*d,c.strokeStyle="#"+("00000"+(0|i).toString(16)).substr(-6),c.stroke())}}},b.CanvasGraphics.renderGraphicsMask=function(a,c){var d=a.graphicsData.length;if(0!==d){c.beginPath();for(var e=0;d>e;e++){var f=a.graphicsData[e],g=f.shape;if(f.type===b.Graphics.POLY){var h=g.points;c.moveTo(h[0],h[1]);for(var i=1;iz?z:y,c.moveTo(u,v+y),c.lineTo(u,v+x-y),c.quadraticCurveTo(u,v+x,u+y,v+x),c.lineTo(u+w-y,v+x),c.quadraticCurveTo(u+w,v+x,u+w,v+x-y),c.lineTo(u+w,v+y),c.quadraticCurveTo(u+w,v,u+w-y,v),c.lineTo(u+y,v),c.quadraticCurveTo(u,v,u,v+y),c.closePath()}}}},b.CanvasGraphics.updateGraphicsTint=function(a){if(16777215!==a.tint)for(var b=(a.tint>>16&255)/255,c=(a.tint>>8&255)/255,d=(255&a.tint)/255,e=0;e>16&255)/255*b*255<<16)+((g>>8&255)/255*c*255<<8)+(255&g)/255*d*255,f._lineTint=((h>>16&255)/255*b*255<<16)+((h>>8&255)/255*c*255<<8)+(255&h)/255*d*255}},b.BaseTextureCache={},b.BaseTextureCacheIdGenerator=0,b.BaseTexture=function(a,c){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.mipmap=!1,this._dirty=[!0,!0,!0,!0],a&&((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()),this.imageUrl=null,this._powerOf2=!1)},b.BaseTexture.prototype.constructor=b.BaseTexture,b.BaseTexture.prototype.forceLoaded=function(a,b){this.hasLoaded=!0,this.width=a,this.height=b,this.dirty()},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++),0===a.width&&(a.width=1),0===a.height&&(a.height=1);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.TextureSilentFail=!1,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.isTiling=!1,this.requiresUpdate=!1,this.requiresReTint=!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))},b.Texture.prototype.constructor=b.Texture,b.Texture.prototype.onBaseTextureLoaded=function(){var a=this.baseTexture;this.noFrame&&(this.frame=new b.Rectangle(0,0,a.width,a.height)),this.setFrame(this.frame)},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)){if(!b.TextureSilentFail)throw new Error("Texture Error: frame does not fit inside the base Texture dimensions "+this);return void(this.valid=!1)}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.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.resolution,this.height*this.resolution)),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.height,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.tempMatrix=new Phaser.Matrix,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=a,this.height=c,this.frame.width=this.crop.width=a*this.resolution,this.frame.height=this.crop.height=c*this.resolution,d&&(this.baseTexture.width=this.width*this.resolution,this.baseTexture.height=this.height*this.resolution),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.height))},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&&0!==a.alpha){var d=a.worldTransform;d.identity(),d.translate(0,2*this.projection.y),b&&d.append(b),d.scale(1,-1);for(var e=0;ea;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,b}).call(this),function(){function a(a,b){this._scaleFactor=a,this._deltaMode=b,this.originalEvent=null}var b=this,c=c||{VERSION:"2.4.1",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,CIRCLE:21,RECTANGLE:22,LINE:23,MATRIX:24,POINT:25,ROUNDEDRECTANGLE:26,CREATURE:27,VIDEO:28,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:PIXI||{}};if(Math.trunc||(Math.trunc=function(a){return 0>a?Math.ceil(a):Math.floor(a)}),Function.prototype.bind||(Function.prototype.bind=function(){var a=Array.prototype.slice;return function(b){function c(){var f=e.concat(a.call(arguments));d.apply(this instanceof c?this:b,f)}var d=this,e=a.call(arguments,1);if("function"!=typeof d)throw new TypeError;return c.prototype=function f(a){return a&&(f.prototype=a),this instanceof f?void 0:new f}(d.prototype),c}}()),Array.isArray||(Array.isArray=function(a){return"[object Array]"==Object.prototype.toString.call(a)}),Array.prototype.forEach||(Array.prototype.forEach=function(a){"use strict";if(void 0===this||null===this)throw new TypeError;var b=Object(this),c=b.length>>>0;if("function"!=typeof a)throw new TypeError;for(var d=arguments.length>=2?arguments[1]:void 0,e=0;c>e;e++)e in b&&a.call(d,b[e],e,b)}),"function"!=typeof window.Uint32Array&&"object"!=typeof window.Uint32Array){var d=function(a){var b=new Array;window[a]=function(a){if("number"==typeof a){Array.call(this,a),this.length=a;for(var b=0;bf&&(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 void 0===a&&(a=50),a>0&&100*Math.random()<=a},randomChoice:function(a,b){return Math.random()<.5?a:b},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(void 0===b)var b=0;if(void 0===c)var c=" ";if(void 0===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},mixinPrototype:function(a,b,c){void 0===c&&(c=!1);for(var d=Object.keys(b),e=0;e0&&(this._radius=.5*d),this.type=c.CIRCLE},c.Circle.prototype={circumference:function(){return 2*Math.PI*this._radius},random:function(a){void 0===a&&(a=new c.Point);var b=2*Math.PI*Math.random(),d=Math.random()+Math.random(),e=d>1?2-d:d,f=e*Math.cos(b),g=e*Math.sin(b);return a.x=this.x+f*this.radius,a.y=this.y+g*this.radius,a},getBounds:function(){return new c.Rectangle(this.x-this.radius,this.y-this.radius,this.diameter,this.diameter)},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 void 0===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 void 0===d&&(d=!1),void 0===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.Ellipse=function(a,b,d,e){a=a||0,b=b||0,d=d||0,e=e||0,this.x=a,this.y=b,this.width=d,this.height=e,this.type=c.ELLIPSE},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 void 0===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)},random:function(a){void 0===a&&(a=new c.Point);var b=Math.random()*Math.PI*2,d=Math.random();return a.x=Math.sqrt(d)*Math.cos(b),a.y=Math.sqrt(d)*Math.sin(b),a.x=this.x+a.x*this.width/2,a.y=this.y+a.y*this.height/2,a},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},PIXI.Ellipse=c.Ellipse,c.Line=function(a,b,d,e){a=a||0,b=b||0,d=d||0,e=e||0,this.start=new c.Point(a,b),this.end=new c.Point(d,e),this.type=c.LINE},c.Line.prototype={setTo:function(a,b,c,d){return this.start.setTo(a,b),this.end.setTo(c,d),this},fromSprite:function(a,b,c){return void 0===c&&(c=!1),c?this.setTo(a.center.x,a.center.y,b.center.x,b.center.y):this.setTo(a.x,a.y,b.x,b.y)},fromAngle:function(a,b,c,d){return this.start.setTo(a,b),this.end.setTo(a+Math.cos(c)*d,b+Math.sin(c)*d),this},rotate:function(a,b){var c=this.start.x,d=this.start.y;return this.start.rotate(this.end.x,this.end.y,a,b,this.length),this.end.rotate(c,d,a,b,this.length),this},intersects:function(a,b,d){return c.Line.intersectsPoints(this.start,this.end,a.start,a.end,b,d)},reflect:function(a){return c.Line.reflect(this,a)},pointOnLine:function(a,b){return(a-this.start.x)*(this.end.y-this.start.y)===(this.end.x-this.start.x)*(b-this.start.y)},pointOnSegment:function(a,b){var c=Math.min(this.start.x,this.end.x),d=Math.max(this.start.x,this.end.x),e=Math.min(this.start.y,this.end.y),f=Math.max(this.start.y,this.end.y);return this.pointOnLine(a,b)&&a>=c&&d>=a&&b>=e&&f>=b},random:function(a){void 0===a&&(a=new c.Point);var b=Math.random();return a.x=this.start.x+b*(this.end.x-this.start.x),a.y=this.start.y+b*(this.end.y-this.start.y),a},coordinatesOnLine:function(a,b){void 0===a&&(a=1),void 0===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 void 0===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)}}),Object.defineProperty(c.Line.prototype,"normalX",{get:function(){return Math.cos(this.angle-1.5707963267948966)}}),Object.defineProperty(c.Line.prototype,"normalY",{get:function(){return Math.sin(this.angle-1.5707963267948966)}}),Object.defineProperty(c.Line.prototype,"normalAngle",{get:function(){return c.Math.wrap(this.angle-1.5707963267948966,-Math.PI,Math.PI)}}),c.Line.intersectsPoints=function(a,b,d,e,f,g){void 0===f&&(f=!0),void 0===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.Line.reflect=function(a,b){return 2*b.normalAngle-3.141592653589793-a.angle},c.Matrix=function(a,b,d,e,f,g){a=a||1,b=b||0,d=d||0,e=e||1,f=f||0,g=g||0,this.a=a,this.b=b,this.c=d,this.d=e,this.tx=f,this.ty=g,this.type=c.MATRIX},c.Matrix.prototype={fromArray:function(a){return this.setTo(a[0],a[1],a[3],a[4],a[2],a[5])},setTo:function(a,b,c,d,e,f){return this.a=a,this.b=b,this.c=c,this.d=d,this.tx=e,this.ty=f,this},clone:function(a){return void 0===a||null===a?a=new c.Matrix(this.a,this.b,this.c,this.d,this.tx,this.ty):(a.a=this.a,a.b=this.b,a.c=this.c,a.d=this.d,a.tx=this.tx,a.ty=this.ty),a},copyTo:function(a){return a.copyFrom(this),a},copyFrom:function(a){return this.a=a.a,this.b=a.b,this.c=a.c,this.d=a.d,this.tx=a.tx,this.ty=a.ty,this},toArray:function(a,b){return void 0===b&&(b=new PIXI.Float32Array(9)),a?(b[0]=this.a,b[1]=this.b,b[2]=0,b[3]=this.c,b[4]=this.d,b[5]=0,b[6]=this.tx,b[7]=this.ty,b[8]=1):(b[0]=this.a,b[1]=this.c,b[2]=this.tx,b[3]=this.b,b[4]=this.d,b[5]=this.ty,b[6]=0,b[7]=0,b[8]=1),b},apply:function(a,b){return void 0===b&&(b=new c.Point),b.x=this.a*a.x+this.c*a.y+this.tx,b.y=this.b*a.x+this.d*a.y+this.ty,b},applyInverse:function(a,b){void 0===b&&(b=new c.Point);var d=1/(this.a*this.d+this.c*-this.b),e=a.x,f=a.y;return b.x=this.d*d*e+-this.c*d*f+(this.ty*this.c-this.tx*this.d)*d,b.y=this.a*d*f+-this.b*d*e+(-this.ty*this.a+this.tx*this.b)*d,b},translate:function(a,b){return this.tx+=a,this.ty+=b,this},scale:function(a,b){return this.a*=a,this.d*=b,this.c*=a,this.b*=b,this.tx*=a,this.ty*=b,this},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},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},identity:function(){return this.setTo(1,0,0,1,0,0)}},c.identityMatrix=new c.Matrix,PIXI.Matrix=c.Matrix,PIXI.identityMatrix=c.identityMatrix,c.Point=function(a,b){a=a||0,b=b||0,this.x=a,this.y=b,this.type=c.POINT},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 void 0===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 void 0===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)},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 void 0===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 void 0===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 void 0===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 void 0===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.negative=function(a,b){return void 0===b&&(b=new c.Point),b.setTo(-a.x,-a.y)},c.Point.multiplyAdd=function(a,b,d,e){return void 0===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 void 0===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 void 0===b&&(b=new c.Point),b.setTo(-a.y,a.x)},c.Point.rperp=function(a,b){return void 0===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){void 0===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){void 0===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 void 0===b&&(b=new c.Point),b.setTo(-1*a.y,a.x)},c.Point.normalize=function(a,b){void 0===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){void 0===f&&(f=!1),void 0===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.x=b+g*Math.cos(h),a.y=d+g*Math.sin(h),a},c.Point.centroid=function(a,b){if(void 0===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.Polygon=function(){this.area=0,this._points=[],arguments.length>0&&this.setTo.apply(this,arguments),this.closed=!0,this.type=c.POLYGON},c.Polygon.prototype={toNumberArray:function(a){void 0===a&&(a=[]);for(var b=0;b=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,c=0,d=a.length;d>c;c++){if("number"==typeof a[c]){var e=new PIXI.Point(a[c],a[c+1]);c++}else var e=new PIXI.Point(a[c].x,a[c].y);this._points.push(e),e.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.Polygon=c.Polygon,c.Rectangle=function(a,b,d,e){a=a||0,b=b||0,d=d||0,e=e||0,this.x=a,this.y=b,this.width=d,this.height=e,this.type=c.RECTANGLE},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 void 0===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)},ceil:function(){this.x=Math.ceil(this.x),this.y=Math.ceil(this.y)},ceilAll:function(){this.x=Math.ceil(this.x),this.y=Math.ceil(this.y),this.width=Math.ceil(this.width),this.height=Math.ceil(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)},resize:function(a,b){return this.width=a,this.height=b,this},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){return c.Rectangle.intersects(this,a)},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)},random:function(a){return void 0===a&&(a=new c.Point),a.x=this.randomX,a.y=this.randomY,a},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,"bottomLeft",{get:function(){return new c.Point(this.x,this.bottom)},set:function(a){this.x=a.x,this.bottom=a.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 void 0===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 void 0===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 void 0===f&&(f=0),!(b>a.right+f||ca.bottom+f||ed&&(d=a.x),a.xf&&(f=a.y),a.y=c&&a<=c+this.width){var d=this.y;if(b>=d&&b<=d+this.height)return!0}return!1}},c.RoundedRectangle.prototype.constructor=c.RoundedRectangle,PIXI.RoundedRectangle=c.RoundedRectangle,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.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.displayObject=null,this.scale=null,this.totalInView=0,this._targetPosition=new c.Point,this._edge=0,this._position=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={preUpdate:function(){this.totalInView=0},follow:function(a,b){void 0===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),this.target.parent&&this._targetPosition.multiply(this.target.parent.worldTransform.a,this.target.parent.worldTransform.d),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.copyFrom(this.game.world.bounds)},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.Create=function(a){this.game=a,this.bmd=a.make.bitmapData(),this.canvas=this.bmd.canvas,this.ctx=this.bmd.context,this.palettes=[{0:"#000",1:"#9D9D9D",2:"#FFF",3:"#BE2633",4:"#E06F8B",5:"#493C2B",6:"#A46422",7:"#EB8931",8:"#F7E26B",9:"#2F484E",A:"#44891A",B:"#A3CE27",C:"#1B2632",D:"#005784",E:"#31A2F2",F:"#B2DCEF"},{0:"#000",1:"#191028",2:"#46af45",3:"#a1d685",4:"#453e78",5:"#7664fe",6:"#833129",7:"#9ec2e8",8:"#dc534b",9:"#e18d79",A:"#d6b97b",B:"#e9d8a1",C:"#216c4b",D:"#d365c8",E:"#afaab9",F:"#f5f4eb"},{0:"#000",1:"#2234d1",2:"#0c7e45",3:"#44aacc",4:"#8a3622",5:"#5c2e78",6:"#aa5c3d",7:"#b5b5b5",8:"#5e606e",9:"#4c81fb",A:"#6cd947",B:"#7be2f9",C:"#eb8a60",D:"#e23d69",E:"#ffd93f",F:"#fff"},{0:"#000",1:"#fff",2:"#8b4131",3:"#7bbdc5",4:"#8b41ac",5:"#6aac41",6:"#3931a4",7:"#d5de73",8:"#945a20",9:"#5a4100",A:"#bd736a",B:"#525252",C:"#838383",D:"#acee8b",E:"#7b73de",F:"#acacac"},{0:"#000",1:"#191028",2:"#46af45",3:"#a1d685",4:"#453e78",5:"#7664fe",6:"#833129",7:"#9ec2e8",8:"#dc534b",9:"#e18d79",A:"#d6b97b",B:"#e9d8a1",C:"#216c4b",D:"#d365c8",E:"#afaab9",F:"#fff"}]},c.Create.PALETTE_ARNE=0,c.Create.PALETTE_JMP=1,c.Create.PALETTE_CGA=2,c.Create.PALETTE_C64=3,c.Create.PALETTE_JAPANESE_MACHINE=4,c.Create.prototype={texture:function(a,b,c,d,e){void 0===c&&(c=8),void 0===d&&(d=c),void 0===e&&(e=0);var f=b[0].length*c,g=b.length*d;this.bmd.resize(f,g),this.bmd.clear();for(var h=0;hg;g+=e)this.ctx.fillRect(0,g,b,1);for(var h=0;b>h;h+=d)this.ctx.fillRect(h,0,1,c);return this.bmd.generateTexture(a)}},c.Create.prototype.constructor=c.Create,c.State=function(){this.game=null,this.key="",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={init:function(){},preload:function(){},loadUpdate:function(){},loadRender:function(){},create:function(){},update:function(){},preRender:function(){},render:function(){},resize:function(){},paused:function(){},resumed: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.onStateChange=new c.Signal,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),null!==this._pendingState&&"string"!=typeof this._pendingState&&this.add("default",this._pendingState,!0)},add:function(a,b,d){void 0===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.onPreRenderCallback=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){void 0===b&&(b=!0),void 0===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){void 0===a&&(a=!0),void 0===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){var a=this.current;if(this.clearCurrentState(),this.setCurrentState(this._pendingState),this.onStateChange.dispatch(this.current,a),this.current!==this._pendingState)return;this._pendingState=null,this.onPreloadCallback?(this.game.load.reset(!0),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||this.states[a].create||this.states[a].update||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,this.states[a].key=a},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&&this.game.physics.reset(),this.current=a,this._created=!1,this.onInitCallback.apply(this.callbackContext,this._args),a===this._pendingState&&(this._args=[]),this.game._kickstart=!0},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(a){this._created&&this.onPreRenderCallback&&this.onPreRenderCallback.call(this.callbackContext,this.game,a)},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.context.restore()):this.onRenderCallback.call(this.callbackContext,this.game)):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,this.current=""}},c.StateManager.prototype.constructor=c.StateManager,Object.defineProperty(c.StateManager.prototype,"created",{get:function(){return this._created}}),c.Signal=function(){},c.Signal.prototype={_bindings:null,_prevParams:null,memorize:!1,_shouldPropagate:!0,active:!0,_boundDispatch:!0,validateListener:function(a,b){if("function"!=typeof a)throw new Error("Phaser.Signal: listener is a required param of {fn}() and should be a Function.".replace("{fn}",b))},_registerListener:function(a,b,d,e,f){var g,h=this._indexOfListener(a,d);if(-1!==h){if(g=this._bindings[h],g.isOnce()!==b)throw new Error("You cannot add"+(b?"":"Once")+"() then add"+(b?"Once":"")+"() the same listener without removing the relationship first.")}else g=new c.SignalBinding(this,a,b,d,e,f),this._addBinding(g);return this.memorize&&this._prevParams&&g.execute(this._prevParams),g},_addBinding:function(a){this._bindings||(this._bindings=[]);var b=this._bindings.length;do b--;while(this._bindings[b]&&a._priority<=this._bindings[b]._priority);this._bindings.splice(b+1,0,a)},_indexOfListener:function(a,b){if(!this._bindings)return-1;void 0===b&&(b=null);for(var c,d=this._bindings.length;d--;)if(c=this._bindings[d],c._listener===a&&c.context===b)return d;return-1},has:function(a,b){return-1!==this._indexOfListener(a,b)},add:function(a,b,c){this.validateListener(a,"add");var d=[];if(arguments.length>3)for(var e=3;e3)for(var e=3;ea||a>=this.children.length?-1:this.getChildAt(a)},c.Group.prototype.create=function(a,b,c,d,e){void 0===e&&(e=!0);var f=new this.classType(this.game,a,b,c,d);return f.exists=e,f.visible=e,f.alive=e,this.addChild(f),f.z=this.children.length,this.enableBody&&this.game.physics.enable(f,this.physicsBodyType,this.enableBodyDebug),f.events&&f.events.onAddedToGroup$dispatch(f,this),null===this.cursor&&(this.cursor=f),f},c.Group.prototype.createMultiple=function(a,b,c,d){void 0===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 void 0===a&&(a=0),a>this.children.length-1&&(a=0),this.cursor?(this.cursorIndex=a,this.cursor=this.children[this.cursorIndex],this.cursor):void 0},c.Group.prototype.next=function(){return this.cursor?(this.cursorIndex>=this.children.length-1?this.cursorIndex=0:this.cursorIndex++,this.cursor=this.children[this.cursorIndex],this.cursor):void 0},c.Group.prototype.previous=function(){return this.cursor?(0===this.cursorIndex?this.cursorIndex=this.children.length-1:this.cursorIndex--,this.cursor=this.children[this.cursorIndex],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);return-1!==d?(b.parent&&(b.parent instanceof c.Group?b.parent.remove(b):b.parent.removeChild(b)),this.remove(a),this.addAt(b,d),a):void 0},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(void 0===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 void 0===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 void 0===g&&(g=!1),b=b.split("."),void 0===d&&(d=!1),void 0===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){void 0===c&&(c=!1),void 0===d&&(d=!1),void 0===f&&(f=!1),a=a.split("."),e=e||0;for(var g=0;g2){c=[];for(var d=2;d2){e=[];for(var f=2;f2){d=[null];for(var e=2;e2){d=[null];for(var e=2;e2){d=[null];for(var e=2;eb[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;for(var h=0,i=0;i0?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(void 0===b&&(b=!1),void 0===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.removeFromHash(a),this.updateZ(),this.cursor===a&&this.next(),b&&d&&d.destroy(!0),!0},c.Group.prototype.moveAll=function(a,b){if(void 0===b&&(b=!1),this.children.length>0&&a instanceof c.Group){do a.add(this.children[0],b);while(this.children.length>0);this.hash=[],this.cursor=null}return a},c.Group.prototype.removeAll=function(a,b){if(void 0===a&&(a=!1),void 0===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]);this.removeFromHash(c),a&&c&&c.destroy(!0)}while(this.children.length>0);this.hash=[],this.cursor=null}},c.Group.prototype.removeBetween=function(a,b,c,d){if(void 0===b&&(b=this.children.length-1),void 0===c&&(c=!1),void 0===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]);this.removeFromHash(f),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||(void 0===a&&(a=!0),void 0===b&&(b=!1),this.onDestroy.dispatch(this,a,b),this.removeAll(a),this.cursor=null,this.filters=null,this.pendingDestroy=!1,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)}}),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,this.game.state.onStateChange.add(this.stateChange,this)},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.stateChange=function(){this.x=0,this.y=0,this.camera.reset()},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.x=a,this.y=b,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,this.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();(f||g)&&(this.onResize&&this.onResize.call(this.onResizeContext,this,e),this.updateLayout(),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,Object.defineProperty(c.ScaleManager.prototype,"boundingParent",{get:function(){if(this.parentIsWindow||this.isFullScreen&&!this._createdFullScreenTarget)return null;var a=this.game.canvas&&this.game.canvas.parentNode;return a||null}}),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,"isGamePortrait",{get:function(){return this.height>this.width}}),Object.defineProperty(c.ScaleManager.prototype,"isGameLandscape",{get:function(){return this.width>this.height}}),c.Game=function(a,b,d,e,f,g,h,i){return this.id=c.GAMES.push(this)-1,this.config=null,this.physicsConfig=i,this.parent="",this.width=800,this.height=600,this.resolution=1,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.plugins=null,this.rnd=null,this.device=c.Device,this.camera=null,this.canvas=null,this.context=null,this.debug=null,this.particles=null,this.create=null,this.lockRender=!1,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.currentUpdateID=0,this.updatesThisFrame=1,this._deltaTime=0,this._lastCount=0,this._spiraling=0,this._kickstart=!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)),this.device.whenReady(this.boot,this),this},c.Game.prototype={parseConfig:function(a){this.config=a,void 0===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.resolution&&(this.resolution=a.resolution),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||(this.onPause=new c.Signal,this.onResume=new c.Signal,this.onBlur=new c.Signal,this.onFocus=new c.Signal,this.isBooted=!0,this.math=c.Math,this.scale=new c.ScaleManager(this,this._width,this._height),this.stage=new c.Stage(this),this.setUpRenderer(),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.create=new c.Create(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.debug={preUpdate:function(){},update:function(){},reset:function(){}},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._kickstart=!0,window.focus&&(!window.PhaserGlobal||window.PhaserGlobal&&!window.PhaserGlobal.stopFocus)&&window.focus(),this.raf.start())},showDebugHeader:function(){if(!window.PhaserGlobal||!window.PhaserGlobal.hideBanner){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: #9854d8","background: #6c2ca7","color: #ffffff; background: #450f78;","background: #6c2ca7","background: #9854d8","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:this.resolution,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:this.resolution,antialias:this.antialias,preserveDrawingBuffer:this.preserveDrawingBuffer}),this.context=null,this.canvas.addEventListener("webglcontextlost",this.contextLost.bind(this),!1),this.canvas.addEventListener("webglcontextrestored",this.contextRestored.bind(this),!1);this.renderType!==c.HEADLESS&&(this.stage.smoothed=this.antialias,c.Canvas.addToDOM(this.canvas,this.parent,!1),c.Canvas.setTouchAction(this.canvas))},contextLost:function(a){a.preventDefault(),this.renderer.contextLost=!0},contextRestored:function(){this.renderer.initContext(),this.cache.clearGLTextures(),this.renderer.contextLost=!1},update:function(a){if(this.time.update(a),this._kickstart)return this.updateLogic(1/this.time.desiredFps),this.stage.updateTransform(),this.updateRender(this.time.slowMotion*this.time.desiredFps),void(this._kickstart=!1);if(this._spiraling>1&&!this.forceSingleUpdate)this.time.time>this._nextFpsNotification&&(this._nextFpsNotification=this.time.time+1e4,this.fpsProblemNotifier.dispatch()),this._deltaTime=0,this._spiraling=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);var c=0;for(this.updatesThisFrame=Math.floor(this._deltaTime/b),this.forceSingleUpdate&&(this.updatesThisFrame=Math.min(1,this.updatesThisFrame));this._deltaTime>=b&&(this._deltaTime-=b,this.currentUpdateID=c,this.updateLogic(1/this.time.desiredFps),this.stage.updateTransform(),c++,!this.forceSingleUpdate||1!==c););c>this._lastCount?this._spiraling++:c=c.Input.MAX_POINTERS)return console.warn("Phaser.Input.addPointer: Maximum limit of "+c.Input.MAX_POINTERS+" pointers reached."),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&&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 a-b},getPointer:function(a){void 0===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._pollCounterthis.game.time.time},justReleased:function(a){return a=a||250,this.isUp&&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,this.altKey=!1,this.shiftKey=!1,this.ctrlKey=!1},destroy:function(){this.onDown.dispose(),this.onUp.dispose(),this.onFloat.dispose(),this.parent=null,this.game=null}},c.DeviceButton.prototype.constructor=c.DeviceButton,Object.defineProperty(c.DeviceButton.prototype,"duration",{get:function(){return this.isUp?-1:this.game.time.time-this.timeDown}}),c.Pointer=function(a,b){this.game=a,this.id=b,this.type=c.POINTER,this.exists=!0,this.identifier=0,this.pointerId=null,this.target=null,this.button=null,this.leftButton=new c.DeviceButton(this,c.Pointer.LEFT_BUTTON),this.middleButton=new c.DeviceButton(this,c.Pointer.MIDDLE_BUTTON),this.rightButton=new c.DeviceButton(this,c.Pointer.RIGHT_BUTTON),this.backButton=new c.DeviceButton(this,c.Pointer.BACK_BUTTON),this.forwardButton=new c.DeviceButton(this,c.Pointer.FORWARD_BUTTON),this.eraserButton=new c.DeviceButton(this,c.Pointer.ERASER_BUTTON),this._holdSent=!1,this._history=[],this._nextDrop=0,this._stateReset=!1,this.withinGame=!1,this.clientX=-1,this.clientY=-1,this.pageX=-1,this.pageY=-1,this.screenX=-1,this.screenY=-1,this.rawMovementX=0,this.rawMovementY=0,this.movementX=0,this.movementY=0,this.x=-1,this.y=-1,this.isMouse=0===b,this.isDown=!1,this.isUp=!0,this.timeDown=0,this.timeUp=0,this.previousTapTime=0,this.totalTouches=0,this.msSinceLastClick=Number.MAX_VALUE,this.targetObject=null,this.active=!1,this.dirty=!1,this.position=new c.Point,this.positionDown=new c.Point,this.positionUp=new c.Point,this.circle=new c.Circle(0,0,44),this._clickTrampolines=null,this._trampolineTargetObject=null},c.Pointer.NO_BUTTON=0,c.Pointer.LEFT_BUTTON=1,c.Pointer.RIGHT_BUTTON=2,c.Pointer.MIDDLE_BUTTON=4,c.Pointer.BACK_BUTTON=8,c.Pointer.FORWARD_BUTTON=16,c.Pointer.ERASER_BUTTON=32,c.Pointer.prototype={resetButtons:function(){this.isDown=!1,this.isUp=!0,this.isMouse&&(this.leftButton.reset(),this.middleButton.reset(),this.rightButton.reset(),this.backButton.reset(),this.forwardButton.reset(),this.eraserButton.reset())},updateButtons:function(a){this.button=a.button;var b=a.buttons;void 0!==b&&(c.Pointer.LEFT_BUTTON&b?this.leftButton.start(a):this.leftButton.stop(a),c.Pointer.RIGHT_BUTTON&b?this.rightButton.start(a):this.rightButton.stop(a),c.Pointer.MIDDLE_BUTTON&b?this.middleButton.start(a):this.middleButton.stop(a),c.Pointer.BACK_BUTTON&b?this.backButton.start(a):this.backButton.stop(a),c.Pointer.FORWARD_BUTTON&b?this.forwardButton.start(a):this.forwardButton.stop(a),c.Pointer.ERASER_BUTTON&b?this.eraserButton.start(a):this.eraserButton.stop(a),a.ctrlKey&&this.leftButton.isDown&&this.rightButton.start(a),this.isUp=!0,this.isDown=!1,(this.leftButton.isDown||this.rightButton.isDown||this.middleButton.isDown||this.backButton.isDown||this.forwardButton.isDown||this.eraserButton.isDown)&&(this.isUp=!1,this.isDown=!0))},start:function(a){return a.pointerId&&(this.pointerId=a.pointerId),this.identifier=a.identifier,this.target=a.target,this.isMouse?this.updateButtons(a):(this.isDown=!0,this.isUp=!1),this._history=[],this.active=!0,this.withinGame=!0,this.dirty=!1,this._clickTrampolines=null,this._trampolineTargetObject=null,this.msSinceLastClick=this.game.time.time-this.timeDown,this.timeDown=this.game.time.time,this._holdSent=!1,this.move(a,!0),this.positionDown.setTo(this.x,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.totalActivePointers)&&(this.game.input.x=this.x,this.game.input.y=this.y,this.game.input.position.setTo(this.x,this.y),this.game.input.onDown.dispatch(this,a),this.game.input.resetSpeed(this.x,this.y)),this._stateReset=!1,this.totalTouches++,null!==this.targetObject&&this.targetObject._touchedHandler(this),this},update:function(){this.active&&(this.dirty&&(this.game.input.interactiveItems.total>0&&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.totalActivePointers)&&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(void 0===b&&(b=!1),void 0!==a.button&&(this.button=a.button),b&&this.updateButtons(a),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.totalActivePointers)&&(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.renderOrderID,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.renderOrderID,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&&this.withinGame?void a.preventDefault():(this.isMouse?this.updateButtons(a):(this.isDown=!1,this.isUp=!0),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.totalActivePointers)&&(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.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&&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;fd;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}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 void 0===c&&(c=!0),0===this.sprite.scale.x||0===this.sprite.scale.y||this.priorityIDa||this.priorityID===a&&this.sprite.renderOrderIDb;b++)if(this._pointerData[b].isOver)return!0}return!1},pointerOut:function(a){if(this.enabled){if(void 0!==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)?(void 0===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)?(void 0===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&&this._pointerData[a.id].isOver){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.snapPoint.set(this.sprite.cameraOffset.x,this.sprite.cameraOffset.y))):(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,this.snapPoint.set(this.sprite.x,this.sprite.y))),this.sprite.events.onDragUpdate.dispatch(this.sprite,a,b,c,this.snapPoint),!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){var b=this.sprite.x,c=this.sprite.y;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 d=this.sprite.getBounds();this.sprite.x=this.globalToLocalX(a.x)+(this.sprite.x-d.centerX),this.sprite.y=this.globalToLocalY(a.y)+(this.sprite.y-d.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.dragStartPoint.set(b,c),this.sprite.events.onDragStart$dispatch(this.sprite,a,b,c)},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){void 0===a&&(a=!0),void 0===b&&(b=!0),this.allowHorizontalDrag=a,this.allowVerticalDrag=b},enableSnap:function(a,b,c,d,e,f){void 0===c&&(c=!0),void 0===d&&(d=!1),void 0===e&&(e=0),void 0===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.leftthis.boundsRect.right&&(this.sprite.x=this.boundsRect.right-(this.sprite.width-this.sprite.offsetX)),this.sprite.topthis.boundsRect.bottom&&(this.sprite.y=this.boundsRect.bottom-(this.sprite.height-this.sprite.offsetY)))},checkBoundsSprite:function(){this.sprite.fixedToCamera&&this.boundsSprite.fixedToCamera?(this.sprite.cameraOffset.xthis.boundsSprite.cameraOffset.x+this.boundsSprite.width&&(this.sprite.cameraOffset.x=this.boundsSprite.cameraOffset.x+this.boundsSprite.width-this.sprite.width),this.sprite.cameraOffset.ythis.boundsSprite.cameraOffset.y+this.boundsSprite.height&&(this.sprite.cameraOffset.y=this.boundsSprite.cameraOffset.y+this.boundsSprite.height-this.sprite.height)):(this.sprite.leftthis.boundsSprite.right&&(this.sprite.x=this.boundsSprite.right-(this.sprite.width-this.sprite.offsetX)),this.sprite.topthis.boundsSprite.bottom&&(this.sprite.y=this.boundsSprite.bottom-(this.sprite.height-this.sprite.offsetY)))}},c.InputHandler.prototype.constructor=c.InputHandler,c.Component=function(){},c.Component.Angle=function(){},c.Component.Angle.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))}}},c.Component.Animation=function(){},c.Component.Animation.prototype={play:function(a,b,c,d){return this.animations?this.animations.play(a,b,c,d):void 0}},c.Component.AutoCull=function(){},c.Component.AutoCull.prototype={autoCull:!1,inCamera:{get:function(){return this.autoCull||this.checkWorldBounds||(this._bounds.copyFrom(this.getBounds()),this._bounds.x+=this.game.camera.view.x,this._bounds.y+=this.game.camera.view.y),this.game.world.camera.view.intersects(this._bounds)}}},c.Component.Bounds=function(){},c.Component.Bounds.prototype={offsetX:{get:function(){return this.anchor.x*this.width}},offsetY:{get:function(){return this.anchor.y*this.height}},left:{get:function(){return this.x-this.offsetX}},right:{get:function(){return this.x+this.width-this.offsetX}},top:{get:function(){return this.y-this.offsetY}},bottom:{get:function(){return this.y+this.height-this.offsetY}}},c.Component.BringToTop=function(){},c.Component.BringToTop.prototype.bringToTop=function(){return this.parent&&this.parent.bringToTop(this),this},c.Component.BringToTop.prototype.sendToBack=function(){return this.parent&&this.parent.sendToBack(this),this},c.Component.BringToTop.prototype.moveUp=function(){return this.parent&&this.parent.moveUp(this),this},c.Component.BringToTop.prototype.moveDown=function(){return this.parent&&this.parent.moveDown(this),this},c.Component.Core=function(){},c.Component.Core.install=function(a){c.Utils.mixinPrototype(this,c.Component.Core.prototype),this.components={};for(var b=0;bthis.maxHealth&&(this.health=this.maxHealth)),this}},c.Component.InCamera=function(){},c.Component.InCamera.prototype={inCamera:{get:function(){return this.game.world.camera.view.intersects(this._bounds)}}},c.Component.InputEnabled=function(){},c.Component.InputEnabled.prototype={input:null,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()}}},c.Component.InWorld=function(){},c.Component.InWorld.preUpdate=function(){if((this.autoCull||this.checkWorldBounds)&&(this._bounds.copyFrom(this.getBounds()),this._bounds.x+=this.game.camera.view.x,this._bounds.y+=this.game.camera.view.y,this.autoCull&&(this.game.world.camera.view.intersects(this._bounds)?(this.renderable=!0,this.game.world.camera.totalInView++):this.renderable=!1),this.checkWorldBounds))if(this._outOfBoundsFired&&this.game.world.bounds.intersects(this._bounds))this._outOfBoundsFired=!1,this.events.onEnterBounds$dispatch(this);else if(!this._outOfBoundsFired&&!this.game.world.bounds.intersects(this._bounds)&&(this._outOfBoundsFired=!0,this.events.onOutOfBounds$dispatch(this),this.outOfBoundsKill))return this.kill(),!1;return!0},c.Component.InWorld.prototype={checkWorldBounds:!1,outOfBoundsKill:!1,_outOfBoundsFired:!1,inWorld:{get:function(){return this.game.world.bounds.intersects(this.getBounds())}}},c.Component.LifeSpan=function(){},c.Component.LifeSpan.preUpdate=function(){return this.lifespan>0&&(this.lifespan-=this.game.time.physicsElapsedMS,this.lifespan<=0)?(this.kill(),!1):!0},c.Component.LifeSpan.prototype={alive:!0,lifespan:0,revive:function(a){return void 0===a&&(a=1),this.alive=!0,this.exists=!0,this.visible=!0,"number"==typeof this.health&&(this.health=a),this.events&&this.events.onRevived$dispatch(this),this},kill:function(){return this.alive=!1,this.exists=!1,this.visible=!1,this.events&&this.events.onKilled$dispatch(this),this}},c.Component.LoadTexture=function(){},c.Component.LoadTexture.prototype={customRender:!1,_frame:null,loadTexture:function(a,b,d){b=b||0,(d||void 0===d)&&this.animations&&this.animations.stop(),this.key=a,this.customRender=!1;var e=this.game.cache,f=!0,g=!this.texture.baseTexture.scaleMode;if(c.RenderTexture&&a instanceof c.RenderTexture)this.key=a.key,this.setTexture(a);else if(c.BitmapData&&a instanceof c.BitmapData)this.customRender=!0,this.setTexture(a.texture),e.hasFrameData(a.key,c.Cache.BITMAPDATA)&&(f=!this.animations.loadFrameData(e.getFrameData(a.key,c.Cache.BITMAPDATA),b));else if(c.Video&&a instanceof c.Video){this.customRender=!0;var h=a.texture.valid;this.setTexture(a.texture),this.setFrame(a.texture.frame.clone()),a.onChangeSource.add(this.resizeFrame,this),this.texture.valid=h}else if(a instanceof PIXI.Texture)this.setTexture(a);else{var i=e.getImage(a,!0);this.key=i.key,this.setTexture(new PIXI.Texture(i.base)),f=!this.animations.loadFrameData(i.frameData,b)}f&&(this._frame=c.Rectangle.clone(this.texture.frame)),g||(this.texture.baseTexture.scaleMode=1)},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.requiresReTint=!0,this.texture._updateUvs(),this.tilingTexture&&(this.refreshTexture=!0)},resizeFrame:function(a,b,c){this.texture.frame.resize(b,c),this.texture.setFrame(this.texture.frame)},resetFrame:function(){this._frame&&this.setFrame(this._frame)},frame:{get:function(){return this.animations.frame},set:function(a){this.animations.frame=a}},frameName:{get:function(){return this.animations.frameName},set:function(a){this.animations.frameName=a}}},c.Component.Overlap=function(){},c.Component.Overlap.prototype={overlap:function(a){return c.Rectangle.intersects(this.getBounds(),a.getBounds())}},c.Component.PhysicsBody=function(){},c.Component.PhysicsBody.preUpdate=function(){return this.fresh&&this.exists?(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.previousPosition.set(this.world.x,this.world.y),this.previousRotation=this.rotation,this.body&&this.body.preUpdate(),this.fresh=!1,!1):(this.previousPosition.set(this.world.x,this.world.y),this.previousRotation=this.rotation,this._exists&&this.parent.exists?!0:(this.renderOrderID=-1,!1))},c.Component.PhysicsBody.postUpdate=function(){this.exists&&this.body&&this.body.postUpdate()},c.Component.PhysicsBody.prototype={body:null,x:{get:function(){return this.position.x},set:function(a){this.position.x=a,this.body&&!this.body.dirty&&(this.body._reset=!0)}},y:{get:function(){return this.position.y},set:function(a){this.position.y=a,this.body&&!this.body.dirty&&(this.body._reset=!0)}}},c.Component.Reset=function(){},c.Component.Reset.prototype.reset=function(a,b,c){return void 0===c&&(c=1),this.world.set(a,b),this.position.set(a,b),this.fresh=!0,this.exists=!0,this.visible=!0,this.renderable=!0,this.components.InWorld&&(this._outOfBoundsFired=!1),this.components.LifeSpan&&(this.alive=!0,this.health=c),this.components.PhysicsBody&&this.body&&this.body.reset(a,b,!1,!1),this},c.Component.ScaleMinMax=function(){},c.Component.ScaleMinMax.prototype={transformCallback:this.checkTransform,transformCallbackContext:this,scaleMin:null,scaleMax:null,checkTransform:function(a){this.scaleMin&&(a.athis.scaleMax.x&&(a.a=this.scaleMax.x),a.d>this.scaleMax.y&&(a.d=this.scaleMax.y))},setScaleMinMax:function(a,b,d,e){void 0===b?b=d=e=a:void 0===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)}},c.Component.Smoothed=function(){},c.Component.Smoothed.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)}}},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 void 0===f&&(f=this.world),f.add(new c.Image(this.game,a,b,d,e))},sprite:function(a,b,c,d,e){return void 0===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 void 0===a&&(a=null),void 0===b&&(b="group"),void 0===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 void 0===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 void 0===g&&(g=this.world),g.add(new c.Rope(this.game,a,b,d,e,f))},text:function(a,b,d,e,f){return void 0===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 void 0===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 void 0===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 void 0===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){(void 0===d||""===d)&&(d=this.game.rnd.uuid()),void 0===e&&(e=!1);var f=new c.RenderTexture(this.game,a,b,d);return e&&this.game.cache.addRenderTexture(d,f),f},video:function(a,b){return new c.Video(this.game,a,b)},bitmapData:function(a,b,d,e){void 0===e&&(e=!1),(void 0===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,this.game.tweens)},group:function(a,b,d,e,f){return new c.Group(this.game,a,b,d,e,f)},spriteBatch:function(a,b,d){return void 0===b&&(b="group"),void 0===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,g){return new c.BitmapText(this.game,a,b,d,e,f,g)},tilemap:function(a,b,d,e,f){return new c.Tilemap(this.game,a,b,d,e,f)},renderTexture:function(a,b,d,e){(void 0===d||""===d)&&(d=this.game.rnd.uuid()),void 0===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){void 0===e&&(e=!1),(void 0===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.Sprite=function(a,b,d,e,f){b=b||0,d=d||0,e=e||null,f=f||null,this.type=c.SPRITE,this.physicsType=c.SPRITE,PIXI.Sprite.call(this,PIXI.TextureCache.__default),c.Component.Core.init.call(this,a,b,d,e,f)},c.Sprite.prototype=Object.create(PIXI.Sprite.prototype),c.Sprite.prototype.constructor=c.Sprite,c.Component.Core.install.call(c.Sprite.prototype,["Angle","Animation","AutoCull","Bounds","BringToTop","Crop","Delta","Destroy","FixedToCamera","Health","InCamera","InputEnabled","InWorld","LifeSpan","LoadTexture","Overlap","PhysicsBody","Reset","ScaleMinMax","Smoothed"]),c.Sprite.prototype.preUpdatePhysics=c.Component.PhysicsBody.preUpdate,c.Sprite.prototype.preUpdateLifeSpan=c.Component.LifeSpan.preUpdate,c.Sprite.prototype.preUpdateInWorld=c.Component.InWorld.preUpdate,c.Sprite.prototype.preUpdateCore=c.Component.Core.preUpdate,c.Sprite.prototype.preUpdate=function(){return this.preUpdatePhysics()&&this.preUpdateLifeSpan()&&this.preUpdateInWorld()?this.preUpdateCore():!1},c.Image=function(a,b,d,e,f){b=b||0,d=d||0,e=e||null,f=f||null,this.type=c.IMAGE,PIXI.Sprite.call(this,PIXI.TextureCache.__default),c.Component.Core.init.call(this,a,b,d,e,f)},c.Image.prototype=Object.create(PIXI.Sprite.prototype),c.Image.prototype.constructor=c.Image,c.Component.Core.install.call(c.Image.prototype,["Angle","Animation","AutoCull","Bounds","BringToTop","Crop","Destroy","FixedToCamera","InputEnabled","LifeSpan","LoadTexture","Overlap","Reset","Smoothed"]),c.Image.prototype.preUpdateInWorld=c.Component.InWorld.preUpdate,c.Image.prototype.preUpdateCore=c.Component.Core.preUpdate,c.Image.prototype.preUpdate=function(){return this.preUpdateInWorld()?this.preUpdateCore():!1},c.TileSprite=function(a,b,d,e,f,g,h){b=b||0,d=d||0,e=e||256,f=f||256,g=g||null,h=h||null,this.type=c.TILESPRITE,this.physicsType=c.SPRITE,this._scroll=new c.Point;var i=a.cache.getImage("__default",!0);PIXI.TilingSprite.call(this,new PIXI.Texture(i.base),e,f),c.Component.Core.init.call(this,a,b,d,g,h)},c.TileSprite.prototype=Object.create(PIXI.TilingSprite.prototype),c.TileSprite.prototype.constructor=c.TileSprite,c.Component.Core.install.call(c.TileSprite.prototype,["Angle","Animation","AutoCull","Bounds","BringToTop","Destroy","FixedToCamera","Health","InCamera","InputEnabled","InWorld","LifeSpan","LoadTexture","Overlap","PhysicsBody","Reset","Smoothed"]),c.TileSprite.prototype.preUpdatePhysics=c.Component.PhysicsBody.preUpdate,c.TileSprite.prototype.preUpdateLifeSpan=c.Component.LifeSpan.preUpdate,c.TileSprite.prototype.preUpdateInWorld=c.Component.InWorld.preUpdate,c.TileSprite.prototype.preUpdateCore=c.Component.Core.preUpdate,c.TileSprite.prototype.preUpdate=function(){return 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.preUpdatePhysics()&&this.preUpdateLifeSpan()&&this.preUpdateInWorld()?this.preUpdateCore():!1},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.destroy=function(a){c.Component.Destroy.prototype.destroy.call(this,a),PIXI.TilingSprite.prototype.destroy.call(this)},c.TileSprite.prototype.reset=function(a,b){return c.Component.Reset.prototype.reset.call(this,a,b),this.tilePosition.x=0,this.tilePosition.y=0,this},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.type=c.ROPE,this._scroll=new c.Point,PIXI.Rope.call(this,PIXI.TextureCache.__default,this.points),c.Component.Core.init.call(this,a,b,d,e,f)},c.Rope.prototype=Object.create(PIXI.Rope.prototype),c.Rope.prototype.constructor=c.Rope,c.Component.Core.install.call(c.Rope.prototype,["Angle","Animation","AutoCull","Bounds","BringToTop","Crop","Delta","Destroy","FixedToCamera","InputEnabled","InWorld","LifeSpan","LoadTexture","Overlap","PhysicsBody","Reset","ScaleMinMax","Smoothed"]),c.Rope.prototype.preUpdatePhysics=c.Component.PhysicsBody.preUpdate,c.Rope.prototype.preUpdateLifeSpan=c.Component.LifeSpan.preUpdate,c.Rope.prototype.preUpdateInWorld=c.Component.InWorld.preUpdate,c.Rope.prototype.preUpdateCore=c.Component.Core.preUpdate,c.Rope.prototype.preUpdate=function(){return 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.preUpdatePhysics()&&this.preUpdateLifeSpan()&&this.preUpdateInWorld()?this.preUpdateCore():!1},c.Rope.prototype.update=function(){this._hasUpdateAnimation&&this.updateAnimation.call(this)},c.Rope.prototype.reset=function(a,b){return c.Component.Reset.prototype.reset.call(this,a,b),this.tilePosition.x=0,this.tilePosition.y=0,this},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;k=1)&&(l.touch=!0),(window.navigator.msPointerEnabled||window.navigator.pointerEnabled)&&(l.mspointer=!0),l.cocoonJS||("onwheel"in window||l.ie&&"WheelEvent"in window?l.wheelEvent="wheel":"onmousewheel"in window?l.wheelEvent="mousewheel":l.firefox&&"MouseScrollEvent"in window&&(l.wheelEvent="DOMMouseScroll"))}function d(){for(var a=["requestFullscreen","requestFullScreen","webkitRequestFullscreen","webkitRequestFullScreen","msRequestFullscreen","msRequestFullScreen","mozRequestFullScreen","mozRequestFullscreen"],b=document.createElement("div"),c=0;c0&&"none"!==a}var l=this;a(),g(),f(),e(),k(),h(),b(),d(),c()},c.Device.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},c.Device.canPlayVideo=function(a){return"webm"===a&&(this.webmVideo||this.vp9Video)?!0:"mp4"===a&&(this.mp4Video||this.h264Video)?!0:"ogg"===a&&this.oggVideo?!0:"mpeg"===a&&this.hlsVideo?!0:!1},c.Device.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.isAndroidStockBrowser=function(){var a=window.navigator.userAgent.match(/Android.*AppleWebKit\/([\d.]+)/);return a&&a[1]<537},c.DOM={getOffset:function(a,b){b=b||new c.Point;var d=a.getBoundingClientRect(),e=c.DOM.scrollY,f=c.DOM.scrollX,g=document.documentElement.clientTop,h=document.documentElement.clientLeft;return b.x=d.left+f-h,b.y=d.top+e-g,b},getBounds:function(a,b){return void 0===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.visualBounds:1===a.nodeType?this.getBounds(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},inLayoutViewport:function(a,b){var c=this.getBounds(a,b);return!!c&&c.bottom>=0&&c.right>=0&&c.top<=this.layoutBounds.width&&c.left<=this.layoutBounds.height},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.visualBounds.height>this.visualBounds.width?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.visualBounds.height>this.visualBounds.width?d:e},visualBounds:new c.Rectangle,layoutBounds:new c.Rectangle,documentBounds:new c.Rectangle},c.Device.whenReady(function(a){var b=window&&"pageXOffset"in window?function(){return window.pageXOffset}:function(){return document.documentElement.scrollLeft},d=window&&"pageYOffset"in window?function(){return window.pageYOffset}:function(){return document.documentElement.scrollTop};Object.defineProperty(c.DOM,"scrollX",{get:b}),Object.defineProperty(c.DOM,"scrollY",{get:d}),Object.defineProperty(c.DOM.visualBounds,"x",{get:b}),Object.defineProperty(c.DOM.visualBounds,"y",{get:d}),Object.defineProperty(c.DOM.layoutBounds,"x",{value:0}),Object.defineProperty(c.DOM.layoutBounds,"y",{value:0});var e=a.desktop&&document.documentElement.clientWidth<=window.innerWidth&&document.documentElement.clientHeight<=window.innerHeight;if(e){var f=function(){return Math.max(window.innerWidth,document.documentElement.clientWidth)},g=function(){return Math.max(window.innerHeight,document.documentElement.clientHeight)};Object.defineProperty(c.DOM.visualBounds,"width",{get:f}),Object.defineProperty(c.DOM.visualBounds,"height",{get:g}),Object.defineProperty(c.DOM.layoutBounds,"width",{get:f}),Object.defineProperty(c.DOM.layoutBounds,"height",{get:g})}else Object.defineProperty(c.DOM.visualBounds,"width",{get:function(){return window.innerWidth}}),Object.defineProperty(c.DOM.visualBounds,"height",{get:function(){return window.innerHeight}}),Object.defineProperty(c.DOM.layoutBounds,"width",{get:function(){var a=document.documentElement.clientWidth,b=window.innerWidth;return b>a?b:a}}),Object.defineProperty(c.DOM.layoutBounds,"height",{get:function(){var a=document.documentElement.clientHeight,b=window.innerHeight;return b>a?b:a}});Object.defineProperty(c.DOM.documentBounds,"x",{value:0}),Object.defineProperty(c.DOM.documentBounds,"y",{value:0}),Object.defineProperty(c.DOM.documentBounds,"width",{get:function(){var a=document.documentElement;return Math.max(a.clientWidth,a.offsetWidth,a.scrollWidth)}}),Object.defineProperty(c.DOM.documentBounds,"height",{get:function(){var a=document.documentElement;return Math.max(a.clientHeight,a.offsetHeight,a.scrollHeight)}})},null,!0),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 void 0===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){var c=["i","mozI","oI","webkitI","msI"];for(var d in c){var e=c[d]+"mageSmoothingEnabled";if(e in a)return a[e]=b,a}return 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.RequestAnimationFrame=function(a,b){void 0===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 void 0===c&&(c=1e-4),a>b-c},fuzzyCeil:function(a,b){return void 0===b&&(b=1e-4),Math.ceil(a-b)},fuzzyFloor:function(a,b){return void 0===b&&(b=1e-4),Math.floor(a+b)},average:function(){for(var a=0,b=0;b=0?a:a+2*Math.PI},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},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)},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)},roundAwayFromZero:function(a){return a>0?Math.ceil(a):Math.floor(a)},sinCosGenerator:function(a,b,c,d){void 0===b&&(b=1),void 0===c&&(c=1),void 0===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}},distance:function(a,b,c,d){var e=a-c,f=b-d;return Math.sqrt(e*e+f*f)},distanceSq:function(a,b,c,d){var e=a-c,f=b-d;return e*e+f*f},distancePow:function(a,b,c,d,e){return void 0===e&&(e=2),Math.sqrt(Math.pow(c-a,e)+Math.pow(d-b,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 void 0===c&&(c=0),a>b||c>b?1:c>a||c>a?0:(a-c)/b}};var j=Math.PI/180,k=180/Math.PI;c.Math.degToRad=function(a){return a*j},c.Math.radToDeg=function(a){return a*k},c.RandomDataGenerator=function(a){void 0===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){if(this.s0=this.hash(" "),this.s1=this.hash(this.s0),this.s2=this.hash(this.s1),this.c=1,a)for(var b=0;b>>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)+.5)]},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;var l=function(){};c.Net=l,c.Net.prototype={isDisabled:!0,getHostName:l,checkDomainName:l,updateQueryString:l,getQueryString:l,decodeURI:l},c.Net.prototype.constructor=c.Net,c.TweenManager=function(){},c.TweenManager.prototype.update=function(){},c.TweenManager.prototype.constructor=c.TweenManager,c.Time=function(a){this.game=a,this.time=0,this.prevTime=0,this.now=0,this.elapsed=0,this.elapsedMS=0,this.physicsElapsed=0,this.physicsElapsedMS=0,this.desiredFps=60,this.suggestedFps=null,this.slowMotion=1,this.advancedTiming=!1,this.frames=0,this.fps=0,this.fpsMin=1e3,this.fpsMax=0,this.msMin=1e3,this.msMax=0,this.pauseDuration=0,this.timeToCall=0,this.timeExpected=0,this.events=new c.Timer(this.game,!1),this._frameCount=0,this._elapsedAccumulator=0,this._started=0,this._timeLastSecond=0,this._pauseStarted=0,this._justResumed=!1,this._timers=[]},c.Time.prototype={boot:function(){this._started=Date.now(),this.time=Date.now(),this.events.start()},add:function(a){return this._timers.push(a),a},create:function(a){void 0===a&&(a=!0);var b=new c.Timer(this.game,a);return this._timers.push(b),b},removeAll:function(){for(var a=0;aa;)this._timers[a].update(this.time)?a++:(this._timers.splice(a,1),b--)},updateAdvancedTiming:function(){this._frameCount++,this._elapsedAccumulator+=this.elapsed,this._frameCount>=2*this.desiredFps&&(this.suggestedFps=5*Math.floor(200/(this._elapsedAccumulator/this._frameCount)),this._frameCount=0,this._elapsedAccumulator=0),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)},gamePaused:function(){this._pauseStarted=Date.now(),this.events.pause();for(var a=this._timers.length;a--;)this._timers[a]._pause()},gameResumed:function(){this.time=Date.now(),this.pauseDuration=this.time-this._pauseStarted,this.events.resume();for(var a=this._timers.length;a--;)this._timers[a]._resume()},totalElapsedSeconds:function(){return.001*(this.time-this._started)},elapsedSince:function(a){return this.time-a},elapsedSecondsSince:function(a){return.001*(this.time-a)},reset:function(){this._started=this.time,this.removeAll()}},c.Time.prototype.constructor=c.Time,c.Timer=function(a,b){void 0===b&&(b=!0),this.game=a,this.running=!1,this.autoDestroy=b,this.expired=!1,this.elapsed=0,this.events=[],this.onComplete=new c.Signal,this.nextTick=0,this.timeCap=1e3,this.paused=!1,this._codePaused=!1,this._started=0,this._pauseStarted=0,this._pauseTotal=0,this._now=Date.now(),this._len=0,this._marked=0,this._i=0,this._diff=0,this._newTick=0},c.Timer.MINUTE=6e4,c.Timer.SECOND=1e3,c.Timer.HALF=500,c.Timer.QUARTER=250,c.Timer.prototype={create:function(a,b,d,e,f,g){a=Math.round(a);var h=a;h+=0===this._now?this.game.time.time:this._now;var i=new c.TimerEvent(this,a,h,d,b,e,f,g);return this.events.push(i),this.order(),this.expired=!1,i},add:function(a,b,c){return this.create(a,!1,0,b,c,Array.prototype.splice.call(arguments,3))},repeat:function(a,b,c,d){return this.create(a,!1,b,c,d,Array.prototype.splice.call(arguments,4))},loop:function(a,b,c){return this.create(a,!0,0,b,c,Array.prototype.splice.call(arguments,3))},start:function(a){if(!this.running){this._started=this.game.time.time+(a||0),this.running=!0;for(var b=0;b0&&(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.events[this._i].pendingDelete;)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},destroy:function(){this.onComplete.removeAll(),this.running=!1,this.events=[],this._len=0,this._i=0}},Object.defineProperty(c.Timer.prototype,"next",{get:function(){return this.nextTick}}),Object.defineProperty(c.Timer.prototype,"duration",{get:function(){return this.running&&this.nextTick>this._now?this.nextTick-this._now:0}}),Object.defineProperty(c.Timer.prototype,"length",{get:function(){return this.events.length}}),Object.defineProperty(c.Timer.prototype,"ms",{get:function(){return this.running?this._now-this._started-this._pauseTotal:0}}),Object.defineProperty(c.Timer.prototype,"seconds",{get:function(){return this.running?.001*this.ms:0}}),c.Timer.prototype.constructor=c.Timer,c.TimerEvent=function(a,b,c,d,e,f,g,h){this.timer=a,this.delay=b,this.tick=c,this.repeatCount=d-1,this.loop=e,this.callback=f,this.callbackContext=g,this.args=h,this.pendingDelete=!1},c.TimerEvent.prototype.constructor=c.TimerEvent,c.AnimationManager=function(a){this.sprite=a,this.game=a.game,this.currentFrame=null,this.currentAnim=null,this.updateIfVisible=!0,this.isLoaded=!1,this._frameData=null,this._anims={},this._outputFrames=[]},c.AnimationManager.prototype={loadFrameData:function(a,b){if(void 0===a)return!1;if(this.isLoaded)for(var c in this._anims)this._anims[c].updateFrameData(a);return this._frameData=a,void 0===b||null===b?this.frame=0:"string"==typeof b?this.frameName=b:this.frame=b,this.isLoaded=!0,!0},copyFrameData:function(a,b){if(this._frameData=a.clone(),this.isLoaded)for(var c in this._anims)this._anims[c].updateFrameData(this._frameData);return void 0===b||null===b?this.frame=0:"string"==typeof b?this.frameName=b:this.frame=b,this.isLoaded=!0,!0},add:function(a,b,d,e,f){return b=b||[],d=d||60,void 0===e&&(e=!1),void 0===f&&(f=b&&"number"==typeof b[0]?!0:!1),this._outputFrames=[],this._frameData.getFrameIndexes(b,f,this._outputFrames),this._anims[a]=new c.Animation(this.game,this.sprite,a,this._frameData,this._outputFrames,d,e),this.currentAnim=this._anims[a],this.sprite.tilingTexture&&(this.sprite.refreshTexture=!0),this._anims[a]},validateFrames:function(a,b){void 0===b&&(b=!0);for(var c=0;cthis._frameData.total)return!1}else if(this._frameData.checkFrameName(a[c])===!1)return!1;return!0},play:function(a,b,c,d){return this._anims[a]?this.currentAnim===this._anims[a]?this.currentAnim.isPlaying===!1?(this.currentAnim.paused=!1,this.currentAnim.play(b,c,d)):this.currentAnim:(this.currentAnim&&this.currentAnim.isPlaying&&this.currentAnim.stop(),this.currentAnim=this._anims[a],this.currentAnim.paused=!1,this.currentFrame=this.currentAnim.currentFrame,this.currentAnim.play(b,c,d)):void 0},stop:function(a,b){void 0===b&&(b=!1),"string"==typeof a?this._anims[a]&&(this.currentAnim=this._anims[a],this.currentAnim.stop(b)):this.currentAnim&&this.currentAnim.stop(b)},update:function(){return this.updateIfVisible&&!this.sprite.visible?!1:this.currentAnim&&this.currentAnim.update()?(this.currentFrame=this.currentAnim.currentFrame,!0):!1},next:function(a){this.currentAnim&&(this.currentAnim.next(a),this.currentFrame=this.currentAnim.currentFrame)},previous:function(a){this.currentAnim&&(this.currentAnim.previous(a),this.currentFrame=this.currentAnim.currentFrame)},getAnimation:function(a){return"string"==typeof a&&this._anims[a]?this._anims[a]:null},refreshFrame:function(){this.sprite.setTexture(PIXI.TextureCache[this.currentFrame.uuid])},destroy:function(){var a=null;for(var a in this._anims)this._anims.hasOwnProperty(a)&&this._anims[a].destroy();this._anims={},this._outputFrames=[],this._frameData=null,this.currentAnim=null,this.currentFrame=null,this.sprite=null,this.game=null}},c.AnimationManager.prototype.constructor=c.AnimationManager,Object.defineProperty(c.AnimationManager.prototype,"frameData",{get:function(){return this._frameData}}),Object.defineProperty(c.AnimationManager.prototype,"frameTotal",{get:function(){return this._frameData.total}}),Object.defineProperty(c.AnimationManager.prototype,"paused",{get:function(){return this.currentAnim.isPaused},set:function(a){this.currentAnim.paused=a}}),Object.defineProperty(c.AnimationManager.prototype,"name",{get:function(){return this.currentAnim?this.currentAnim.name:void 0}}),Object.defineProperty(c.AnimationManager.prototype,"frame",{get:function(){return this.currentFrame?this.currentFrame.index:void 0},set:function(a){"number"==typeof a&&this._frameData&&null!==this._frameData.getFrame(a)&&(this.currentFrame=this._frameData.getFrame(a),this.currentFrame&&this.sprite.setFrame(this.currentFrame))}}),Object.defineProperty(c.AnimationManager.prototype,"frameName",{get:function(){return this.currentFrame?this.currentFrame.name:void 0},set:function(a){"string"==typeof a&&this._frameData&&null!==this._frameData.getFrameByName(a)?(this.currentFrame=this._frameData.getFrameByName(a),this.currentFrame&&(this._frameIndex=this.currentFrame.index,this.sprite.setFrame(this.currentFrame))):console.warn("Cannot set frameName: "+a)}}),c.Animation=function(a,b,d,e,f,g,h){void 0===h&&(h=!1),this.game=a,this._parent=b,this._frameData=e,this.name=d,this._frames=[],this._frames=this._frames.concat(f),this.delay=1e3/g,this.loop=h,this.loopCount=0,this.killOnComplete=!1,this.isFinished=!1,this.isPlaying=!1,this.isPaused=!1,this._pauseStartTime=0,this._frameIndex=0,this._frameDiff=0,this._frameSkip=1,this.currentFrame=this._frameData.getFrame(this._frames[this._frameIndex]),this.onStart=new c.Signal,this.onUpdate=null,this.onComplete=new c.Signal,this.onLoop=new c.Signal,this.game.onPause.add(this.onPause,this),this.game.onResume.add(this.onResume,this)},c.Animation.prototype={play:function(a,b,c){return"number"==typeof a&&(this.delay=1e3/a),"boolean"==typeof b&&(this.loop=b),"undefined"!=typeof c&&(this.killOnComplete=c),this.isPlaying=!0,this.isFinished=!1,this.paused=!1,this.loopCount=0,this._timeLastFrame=this.game.time.time,this._timeNextFrame=this.game.time.time+this.delay,this._frameIndex=0,this.updateCurrentFrame(!1,!0),this._parent.events.onAnimationStart$dispatch(this._parent,this),this.onStart.dispatch(this._parent,this),this._parent.animations.currentAnim=this,this._parent.animations.currentFrame=this.currentFrame,this},restart:function(){this.isPlaying=!0,this.isFinished=!1,this.paused=!1,this.loopCount=0,this._timeLastFrame=this.game.time.time,this._timeNextFrame=this.game.time.time+this.delay,this._frameIndex=0,this.currentFrame=this._frameData.getFrame(this._frames[this._frameIndex]),this._parent.setFrame(this.currentFrame),this._parent.animations.currentAnim=this,this._parent.animations.currentFrame=this.currentFrame,this.onStart.dispatch(this._parent,this)},setFrame:function(a,b){var c;if(void 0===b&&(b=!1),"string"==typeof a)for(var d=0;d=this._timeNextFrame?(this._frameSkip=1,this._frameDiff=this.game.time.time-this._timeNextFrame,this._timeLastFrame=this.game.time.time,this._frameDiff>this.delay&&(this._frameSkip=Math.floor(this._frameDiff/this.delay),this._frameDiff-=this._frameSkip*this.delay),this._timeNextFrame=this.game.time.time+(this.delay-this._frameDiff),this._frameIndex+=this._frameSkip,this._frameIndex>=this._frames.length?this.loop?(this._frameIndex%=this._frames.length,this.currentFrame=this._frameData.getFrame(this._frames[this._frameIndex]),this.currentFrame&&this._parent.setFrame(this.currentFrame),this.loopCount++,this._parent.events.onAnimationLoop$dispatch(this._parent,this),this.onLoop.dispatch(this._parent,this),this.onUpdate?(this.onUpdate.dispatch(this,this.currentFrame),!!this._frameData):!0):(this.complete(),!1):this.updateCurrentFrame(!0)):!1},updateCurrentFrame:function(a,b){if(void 0===b&&(b=!1),!this._frameData)return!1;var c=this.currentFrame.index;return this.currentFrame=this._frameData.getFrame(this._frames[this._frameIndex]),this.currentFrame&&(b||!b&&c!==this.currentFrame.index)&&this._parent.setFrame(this.currentFrame),this.onUpdate&&a?(this.onUpdate.dispatch(this,this.currentFrame),!!this._frameData):!0},next:function(a){void 0===a&&(a=1);var b=this._frameIndex+a;b>=this._frames.length&&(this.loop?b%=this._frames.length:b=this._frames.length-1),b!==this._frameIndex&&(this._frameIndex=b,this.updateCurrentFrame(!0))},previous:function(a){void 0===a&&(a=1);var b=this._frameIndex-a;0>b&&(this.loop?b=this._frames.length+b:b++),b!==this._frameIndex&&(this._frameIndex=b,this.updateCurrentFrame(!0))},updateFrameData:function(a){this._frameData=a,this.currentFrame=this._frameData?this._frameData.getFrame(this._frames[this._frameIndex%this._frames.length]):null},destroy:function(){this._frameData&&(this.game.onPause.remove(this.onPause,this),this.game.onResume.remove(this.onResume,this),this.game=null,this._parent=null,this._frames=null,this._frameData=null,this.currentFrame=null,this.isPlaying=!1,this.onStart.dispose(),this.onLoop.dispose(),this.onComplete.dispose(),this.onUpdate&&this.onUpdate.dispose())},complete:function(){this._frameIndex=this._frames.length-1,this.currentFrame=this._frameData.getFrame(this._frames[this._frameIndex]),this.isPlaying=!1,this.isFinished=!0,this.paused=!1,this._parent.events.onAnimationComplete$dispatch(this._parent,this),this.onComplete.dispatch(this._parent,this),this.killOnComplete&&this._parent.kill()}},c.Animation.prototype.constructor=c.Animation,Object.defineProperty(c.Animation.prototype,"paused",{get:function(){return this.isPaused},set:function(a){this.isPaused=a,a?this._pauseStartTime=this.game.time.time:this.isPlaying&&(this._timeNextFrame=this.game.time.time+this.delay)}}),Object.defineProperty(c.Animation.prototype,"frameTotal",{get:function(){return this._frames.length}}),Object.defineProperty(c.Animation.prototype,"frame",{get:function(){return null!==this.currentFrame?this.currentFrame.index:this._frameIndex},set:function(a){this.currentFrame=this._frameData.getFrame(this._frames[a]),null!==this.currentFrame&&(this._frameIndex=a,this._parent.setFrame(this.currentFrame),this.onUpdate&&this.onUpdate.dispatch(this,this.currentFrame))}}),Object.defineProperty(c.Animation.prototype,"speed",{get:function(){return Math.round(1e3/this.delay)},set:function(a){a>=1&&(this.delay=1e3/a)}}),Object.defineProperty(c.Animation.prototype,"enableUpdate",{get:function(){return null!==this.onUpdate},set:function(a){a&&null===this.onUpdate?this.onUpdate=new c.Signal:a||null===this.onUpdate||(this.onUpdate.dispose(),this.onUpdate=null)}}),c.Animation.generateFrameNames=function(a,b,d,e,f){void 0===e&&(e="");var g=[],h="";if(d>b)for(var i=b;d>=i;i++)h="number"==typeof f?c.Utils.pad(i.toString(),f,"0",1):i.toString(),h=a+h+e,g.push(h);else for(var i=b;i>=d;i--)h="number"==typeof f?c.Utils.pad(i.toString(),f,"0",1):i.toString(),h=a+h+e,g.push(h);return g},c.Frame=function(a,b,d,e,f,g){this.index=a,this.x=b,this.y=d,this.width=e,this.height=f,this.name=g,this.centerX=Math.floor(e/2),this.centerY=Math.floor(f/2),this.distance=c.Math.distance(0,0,e,f),this.rotated=!1,this.rotationDirection="cw",this.trimmed=!1,this.sourceSizeW=e,this.sourceSizeH=f,this.spriteSourceSizeX=0,this.spriteSourceSizeY=0,this.spriteSourceSizeW=0,this.spriteSourceSizeH=0,this.right=this.x+this.width,this.bottom=this.y+this.height},c.Frame.prototype={resize:function(a,b){this.width=a,this.height=b,this.centerX=Math.floor(a/2),this.centerY=Math.floor(b/2),this.distance=c.Math.distance(0,0,a,b),this.sourceSizeW=a,this.sourceSizeH=b,this.right=this.x+a,this.bottom=this.y+b},setTrim:function(a,b,c,d,e,f,g){this.trimmed=a,a&&(this.sourceSizeW=b,this.sourceSizeH=c,this.centerX=Math.floor(b/2),this.centerY=Math.floor(c/2),this.spriteSourceSizeX=d,this.spriteSourceSizeY=e,this.spriteSourceSizeW=f,this.spriteSourceSizeH=g)},clone:function(){var a=new c.Frame(this.index,this.x,this.y,this.width,this.height,this.name);for(var b in this)this.hasOwnProperty(b)&&(a[b]=this[b]);return a},getRect:function(a){return void 0===a?a=new c.Rectangle(this.x,this.y,this.width,this.height):a.setTo(this.x,this.y,this.width,this.height),a}},c.Frame.prototype.constructor=c.Frame,c.FrameData=function(){this._frames=[],this._frameNames=[]},c.FrameData.prototype={addFrame:function(a){return a.index=this._frames.length,this._frames.push(a),""!==a.name&&(this._frameNames[a.name]=a.index),a},getFrame:function(a){return a>=this._frames.length&&(a=0),this._frames[a]},getFrameByName:function(a){return"number"==typeof this._frameNames[a]?this._frames[this._frameNames[a]]:null},checkFrameName:function(a){return null==this._frameNames[a]?!1:!0},clone:function(){for(var a=new c.FrameData,b=0;b=d;d++)c.push(this._frames[d]);return c},getFrames:function(a,b,c){if(void 0===b&&(b=!0),void 0===c&&(c=[]),void 0===a||0===a.length)for(var d=0;d=d&&(d=Math.floor(-j/Math.min(-1,d))),0>=e&&(e=Math.floor(-k/Math.min(-1,e)));var l=Math.floor((j-g)/(d+h)),m=Math.floor((k-g)/(e+h)),n=l*m;if(-1!==f&&(n=f),0===j||0===k||d>j||e>k||0===n)return console.warn("Phaser.AnimationParser.spriteSheet: '"+b+"'s width/height zero or width/height < given frameWidth/frameHeight"),null;for(var o=new c.FrameData,p=g,q=g,r=0;n>r;r++)o.addFrame(new c.Frame(r,p,q,d,e,"")),p+=d+h,p+d>j&&(p=g,q+=e+h);return o},JSONData:function(a,b){if(!b.frames)return console.warn("Phaser.AnimationParser.JSONData: Invalid Texture Atlas JSON given, missing 'frames' array"),void console.log(b);for(var d,e=new c.FrameData,f=b.frames,g=0;g tag");for(var d,e,f,g,h,i,j,k,l,m,n,o=new c.FrameData,p=b.getElementsByTagName("SubTexture"),q=0;q-1},getAssetIndex:function(a,b){for(var c=-1,d=0;d-1?{index:c,file:this._fileList[c]}:!1},reset:function(a,b){void 0===b&&(b=!1),this.resetLocked||(a&&(this.preloadSprite=null),this.isLoading=!1,this._processingHead=0,this._fileList.length=0,this._flightQueue.length=0,this._fileLoadStarted=!1,this._totalFileCount=0,this._totalPackCount=0,this._loadedPackCount=0,this._loadedFileCount=0,b&&(this.onLoadStart.removeAll(),this.onLoadComplete.removeAll(),this.onPackComplete.removeAll(),this.onFileStart.removeAll(),this.onFileComplete.removeAll(),this.onFileError.removeAll()))},addToFileList:function(a,b,c,d,e,f){if(void 0===e&&(e=!1),void 0===b||""===b)return console.warn("Phaser.Loader: Invalid or no key given of type "+a),this;if(void 0===c||null===c){if(!f)return console.warn("Phaser.Loader: No URL given for file type: "+a+" key: "+b),this;c=b+f}var g={type:a,key:b,path:this.path,url:c,syncPoint:this._withSyncPointDepth>0,data:null,loading:!1,loaded:!1,error:!1};if(d)for(var h in d)g[h]=d[h];var i=this.getAssetIndex(a,b);if(e&&i>-1){var j=this._fileList[i];j.loading||j.loaded?(this._fileList.push(g),this._totalFileCount++):this._fileList[i]=g}else-1===i&&(this._fileList.push(g),this._totalFileCount++);return this},replaceInFileList:function(a,b,c,d){return this.addToFileList(a,b,c,d,!0)},pack:function(a,b,c,d){if(void 0===b&&(b=null),void 0===c&&(c=null),void 0===d&&(d=null),!b&&!c)return console.warn("Phaser.Loader.pack - Both url and data are null. One must be set."),this;var e={type:"packfile",key:a,url:b,path:this.path,syncPoint:!0,data:null,loading:!1,loaded:!1,error:!1,callbackContext:d};c&&("string"==typeof c&&(c=JSON.parse(c)),e.data=c||{},e.loaded=!0);for(var f=0;f=e||d&&this._loadedPackCount===this._totalPackCount)break}if(this.updateProgress(),this._processingHead>=this._fileList.length)this.finishedLoading();else if(!this._flightQueue.length){console.warn("Phaser.Loader - aborting: processing queue empty, loading may have stalled");var f=this;setTimeout(function(){f.finishedLoading(!0)},2e3)}},finishedLoading:function(a){this.hasLoaded||(this.hasLoaded=!0,this.isLoading=!1,a||this._fileLoadStarted||(this._fileLoadStarted=!0,this.onLoadStart.dispatch()),this.onLoadComplete.dispatch(),this.reset(),this.game.state.loadComplete())},asyncComplete:function(a,b){void 0===b&&(b=""),a.loaded=!0,a.error=!!b,b&&(a.errorMessage=b,console.warn("Phaser.Loader - "+a.type+"["+a.key+"]: "+b)),this.processLoadQueue()},processPack:function(a){var b=a.data[a.key];if(!b)return void console.warn("Phaser.Loader - "+a.key+": pack has data, but not for pack key");for(var d=0;d=10)||(this._warnedAboutXDomainRequest=!0,console.warn("Phaser.Loader - using XDomainRequest outside of IE 9"));var f=new window.XDomainRequest;f.open("GET",b,!0),f.responseType=c,f.timeout=3e3,e=e||this.fileError;var g=this;f.onerror=function(){try{return e.call(g,a,f)}catch(b){g.asyncComplete(a,b.message||"Exception")}},f.ontimeout=function(){try{return e.call(g,a,f)}catch(b){g.asyncComplete(a,b.message||"Exception")}},f.onprogress=function(){},f.onload=function(){try{return d.call(g,a,f)}catch(b){g.asyncComplete(a,b.message||"Exception")}},a.requestObject=f,a.requestUrl=b,setTimeout(function(){f.send()},0)},getVideoURL:function(a){for(var b=0;b=0&&(d=d.substr(0,d.indexOf("?")));var e=d.substr((Math.max(0,d.lastIndexOf("."))||1/0)+1);c=e.toLowerCase()}if(this.game.device.canPlayVideo(c))return a[b]}return null},getAudioURL:function(a){if(this.game.sound.noAudio)return null;for(var b=0;b=0&&(d=d.substr(0,d.indexOf("?")));var e=d.substr((Math.max(0,d.lastIndexOf("."))||1/0)+1);c=e.toLowerCase()}if(this.game.device.canPlayAudio(c))return a[b]}return null},fileError:function(a,b,c){var d=a.requestUrl||this.transformUrl(a.url,a),e="error loading asset from URL "+d;!c&&b&&(c=b.status),c&&(e=e+" ("+c+")"),this.asyncComplete(a,e)},fileComplete:function(a,b){var d=!0;switch(a.type){case"packfile":var e=JSON.parse(b.responseText);a.data=e||{};break;case"image":this.cache.addImage(a.key,a.url,a.data);break;case"spritesheet":this.cache.addSpriteSheet(a.key,a.url,a.data,a.frameWidth,a.frameHeight,a.frameMax,a.margin,a.spacing);break;case"textureatlas":if(null==a.atlasURL)this.cache.addTextureAtlas(a.key,a.url,a.data,a.atlasData,a.format);else if(d=!1,a.format==c.Loader.TEXTURE_ATLAS_JSON_ARRAY||a.format==c.Loader.TEXTURE_ATLAS_JSON_HASH)this.xhrLoad(a,this.transformUrl(a.atlasURL,a),"text",this.jsonLoadComplete);else{if(a.format!=c.Loader.TEXTURE_ATLAS_XML_STARLING)throw new Error("Phaser.Loader. Invalid Texture Atlas format: "+a.format);this.xhrLoad(a,this.transformUrl(a.atlasURL,a),"text",this.xmlLoadComplete)}break;case"bitmapfont":a.atlasURL?(d=!1,this.xhrLoad(a,this.transformUrl(a.atlasURL,a),"text",function(a,b){var c;try{c=JSON.parse(b.responseText)}catch(d){}c?(a.atlasType="json",this.jsonLoadComplete(a,b)):(a.atlasType="xml",this.xmlLoadComplete(a,b))})):this.cache.addBitmapFont(a.key,a.url,a.data,a.atlasData,a.atlasType,a.xSpacing,a.ySpacing);break;case"video":if(a.asBlob)try{a.data=new Blob([new Uint8Array(b.response)])}catch(f){throw new Error("Phaser.Loader. Unable to parse video file as Blob: "+a.key)}this.cache.addVideo(a.key,a.url,a.data,a.asBlob);break;case"audio":this.game.sound.usingWebAudio?(a.data=b.response,this.cache.addSound(a.key,a.url,a.data,!0,!1),a.autoDecode&&this.game.sound.decode(a.key)):this.cache.addSound(a.key,a.url,a.data,!1,!0);break;case"text":a.data=b.responseText,this.cache.addText(a.key,a.url,a.data);break;case"shader":a.data=b.responseText,this.cache.addShader(a.key,a.url,a.data);break;case"physics":var e=JSON.parse(b.responseText);this.cache.addPhysicsData(a.key,a.url,e,a.format);break;case"script":a.data=document.createElement("script"),a.data.language="javascript",a.data.type="text/javascript",a.data.defer=!1,a.data.text=b.responseText,document.head.appendChild(a.data),a.callback&&(a.data=a.callback.call(a.callbackContext,a.key,b.responseText));break;case"binary":a.data=a.callback?a.callback.call(a.callbackContext,a.key,b.response):b.response,this.cache.addBinary(a.key,a.data)}d&&this.asyncComplete(a)},jsonLoadComplete:function(a,b){var c=JSON.parse(b.responseText);"tilemap"===a.type?this.cache.addTilemap(a.key,a.url,c,a.format):"bitmapfont"===a.type?this.cache.addBitmapFont(a.key,a.url,a.data,c,a.atlasType,a.xSpacing,a.ySpacing):"json"===a.type?this.cache.addJSON(a.key,a.url,c):this.cache.addTextureAtlas(a.key,a.url,a.data,c,a.format),this.asyncComplete(a)},csvLoadComplete:function(a,b){var c=b.responseText;this.cache.addTilemap(a.key,a.url,c,a.format),this.asyncComplete(a)},xmlLoadComplete:function(a,b){var c=b.responseText,d=this.parseXml(c);if(!d){var e=b.responseType||b.contentType;return console.warn("Phaser.Loader - "+a.key+": invalid XML ("+e+")"),void this.asyncComplete(a,"invalid XML")}"bitmapfont"===a.type?this.cache.addBitmapFont(a.key,a.url,a.data,d,a.atlasType,a.xSpacing,a.ySpacing):"textureatlas"===a.type?this.cache.addTextureAtlas(a.key,a.url,a.data,d,a.format):"xml"===a.type&&this.cache.addXML(a.key,a.url,d),this.asyncComplete(a)},parseXml:function(a){var b;try{if(window.DOMParser){var c=new DOMParser;b=c.parseFromString(a,"text/xml")}else b=new ActiveXObject("Microsoft.XMLDOM"),b.async="false",b.loadXML(a)}catch(d){b=null}return b&&b.documentElement&&!b.getElementsByTagName("parsererror").length?b:null},updateProgress:function(){this.preloadSprite&&(0===this.preloadSprite.direction?this.preloadSprite.rect.width=Math.floor(this.preloadSprite.width/100*this.progress):this.preloadSprite.rect.height=Math.floor(this.preloadSprite.height/100*this.progress),this.preloadSprite.sprite?this.preloadSprite.sprite.updateCrop():this.preloadSprite=null)},totalLoadedFiles:function(){return this._loadedFileCount},totalQueuedFiles:function(){return this._totalFileCount-this._loadedFileCount},totalLoadedPacks:function(){return this._totalPackCount},totalQueuedPacks:function(){return this._totalPackCount-this._loadedPackCount}},Object.defineProperty(c.Loader.prototype,"progressFloat",{get:function(){var a=this._loadedFileCount/this._totalFileCount*100;return c.Math.clamp(a||0,0,100)}}),Object.defineProperty(c.Loader.prototype,"progress",{get:function(){return Math.round(this.progressFloat)}}),c.Loader.prototype.constructor=c.Loader,c.LoaderParser={bitmapFont:function(a,b,c,d){return this.xmlBitmapFont(a,b,c,d)},xmlBitmapFont:function(a,b,c,d){var e={},f=a.getElementsByTagName("info")[0],g=a.getElementsByTagName("common")[0];e.font=f.getAttribute("face"),e.size=parseInt(f.getAttribute("size"),10),e.lineHeight=parseInt(g.getAttribute("lineHeight"),10)+d,e.chars={};for(var h=a.getElementsByTagName("char"),i=0;i-1},reset:function(){this.list.length=0},remove:function(a){var b=this.list.indexOf(a);return b>-1?(this.list.splice(b,1),a):void 0},setAll:function(a,b){for(var c=this.list.length;c--;)this.list[c]&&(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)},removeAll:function(a){void 0===a&&(a=!1);for(var b=this.list.length;b--;)if(this.list[b]){var c=this.remove(this.list[b]);a&&c.destroy()}this.position=0,this.list=[]}},Object.defineProperty(c.ArraySet.prototype,"total",{get:function(){return this.list.length}}),Object.defineProperty(c.ArraySet.prototype,"first",{get:function(){return this.position=0,this.list.length>0?this.list[0]:null}}),Object.defineProperty(c.ArraySet.prototype,"next",{get:function(){return this.position0;b--){var c=Math.floor(Math.random()*(b+1)),d=a[b];a[b]=a[c],a[c]=d}return a},transposeMatrix:function(a){for(var b=a.length,c=a[0].length,d=new Array(c),e=0;c>e;e++){d[e]=new Array(b);for(var f=b-1;f>-1;f--)d[e][f]=a[f][e]}return d},rotateMatrix:function(a,b){if("string"!=typeof b&&(b=(b%360+360)%360),90===b||-270===b||"rotateLeft"===b)a=c.ArrayUtils.transposeMatrix(a),a=a.reverse();else if(-90===b||270===b||"rotateRight"===b)a=a.reverse(),a=c.ArrayUtils.transposeMatrix(a);else if(180===Math.abs(b)||"rotate180"===b){for(var d=0;d=e-a?e:d},rotate:function(a){var b=a.shift();return a.push(b),b},numberArray:function(a,b){for(var c=[],d=a;b>=d;d++)c.push(d);return c},numberArrayStep:function(a,b,d){a=+a||0;var e=typeof b;"number"!==e&&"string"!==e||!d||d[b]!==a||(b=d=null),d=null==d?1:+d||0,null===b?(b=a,a=0):b=+b||0;for(var f=-1,g=Math.max(c.Math.roundAwayFromZero((b-a)/(d||1)),0),h=new Array(g);++f>>0:(a<<24|b<<16|d<<8|e)>>>0},unpackPixel:function(a,b,d,e){return(void 0===b||null===b)&&(b=c.Color.createColor()),(void 0===d||null===d)&&(d=!1),(void 0===e||null===e)&&(e=!1),c.Device.LITTLE_ENDIAN?(b.a=(4278190080&a)>>>24,b.b=(16711680&a)>>>16,b.g=(65280&a)>>>8,b.r=255&a):(b.r=(4278190080&a)>>>24,b.g=(16711680&a)>>>16,b.b=(65280&a)>>>8,b.a=255&a),b.color=a,b.rgba="rgba("+b.r+","+b.g+","+b.b+","+b.a/255+")",d&&c.Color.RGBtoHSL(b.r,b.g,b.b,b),e&&c.Color.RGBtoHSV(b.r,b.g,b.b,b),b},fromRGBA:function(a,b){return b||(b=c.Color.createColor()),b.r=(4278190080&a)>>>24,b.g=(16711680&a)>>>16,b.b=(65280&a)>>>8,b.a=255&a,b.rgba="rgba("+b.r+","+b.g+","+b.b+","+b.a+")",b},toRGBA:function(a,b,c,d){return a<<24|b<<16|c<<8|d},RGBtoHSL:function(a,b,d,e){e||(e=c.Color.createColor(a,b,d,1)),a/=255,b/=255,d/=255;var f=Math.min(a,b,d),g=Math.max(a,b,d);if(e.h=0,e.s=0,e.l=(g+f)/2,g!==f){var h=g-f;e.s=e.l>.5?h/(2-g-f):h/(g+f),g===a?e.h=(b-d)/h+(d>b?6:0):g===b?e.h=(d-a)/h+2:g===d&&(e.h=(a-b)/h+4),e.h/=6}return e},HSLtoRGB:function(a,b,d,e){if(e?(e.r=d,e.g=d,e.b=d):e=c.Color.createColor(d,d,d),0!==b){var f=.5>d?d*(1+b):d+b-d*b,g=2*d-f;e.r=c.Color.hueToColor(g,f,a+1/3),e.g=c.Color.hueToColor(g,f,a),e.b=c.Color.hueToColor(g,f,a-1/3)}return e.r=Math.floor(255*e.r|0),e.g=Math.floor(255*e.g|0),e.b=Math.floor(255*e.b|0),c.Color.updateColor(e),e},RGBtoHSV:function(a,b,d,e){e||(e=c.Color.createColor(a,b,d,255)),a/=255,b/=255,d/=255;var f=Math.min(a,b,d),g=Math.max(a,b,d),h=g-f;return e.h=0,e.s=0===g?0:h/g,e.v=g,g!==f&&(g===a?e.h=(b-d)/h+(d>b?6:0):g===b?e.h=(d-a)/h+2:g===d&&(e.h=(a-b)/h+4),e.h/=6),e},HSVtoRGB:function(a,b,d,e){void 0===e&&(e=c.Color.createColor(0,0,0,1,a,b,0,d));var f,g,h,i=Math.floor(6*a),j=6*a-i,k=d*(1-b),l=d*(1-j*b),m=d*(1-(1-j)*b);switch(i%6){case 0:f=d,g=m,h=k;break;case 1:f=l,g=d,h=k;break;case 2:f=k,g=d,h=m;break;case 3:f=k,g=l,h=d;break;case 4:f=m,g=k,h=d;break;case 5:f=d,g=k,h=l}return e.r=Math.floor(255*f),e.g=Math.floor(255*g),e.b=Math.floor(255*h),c.Color.updateColor(e),e},hueToColor:function(a,b,c){return 0>c&&(c+=1),c>1&&(c-=1),1/6>c?a+6*(b-a)*c:.5>c?b:2/3>c?a+(b-a)*(2/3-c)*6:a},createColor:function(a,b,d,e,f,g,h,i){var j={r:a||0,g:b||0,b:d||0,a:e||1,h:f||0,s:g||0,l:h||0,v:i||0,color:0,color32:0,rgba:""};return c.Color.updateColor(j)},updateColor:function(a){return a.rgba="rgba("+a.r.toString()+","+a.g.toString()+","+a.b.toString()+","+a.a.toString()+")",a.color=c.Color.getColor(a.r,a.g,a.b),a.color32=c.Color.getColor32(a.a,a.r,a.g,a.b),a},getColor32:function(a,b,c,d){return a<<24|b<<16|c<<8|d},getColor:function(a,b,c){return a<<16|b<<8|c},RGBtoString:function(a,b,d,e,f){return void 0===e&&(e=255),void 0===f&&(f="#"),"#"===f?"#"+((1<<24)+(a<<16)+(b<<8)+d).toString(16).slice(1):"0x"+c.Color.componentToHex(e)+c.Color.componentToHex(a)+c.Color.componentToHex(b)+c.Color.componentToHex(d)},hexToRGB:function(a){var b=c.Color.hexToColor(a);return b?c.Color.getColor32(b.a,b.r,b.g,b.b):void 0},hexToColor:function(a,b){a=a.replace(/^(?:#|0x)?([a-f\d])([a-f\d])([a-f\d])$/i,function(a,b,c,d){return b+b+c+c+d+d});var d=/^(?:#|0x)?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i.exec(a);if(d){var e=parseInt(d[1],16),f=parseInt(d[2],16),g=parseInt(d[3],16);b?(b.r=e,b.g=f,b.b=g):b=c.Color.createColor(e,f,g)}return b},webToColor:function(a,b){b||(b=c.Color.createColor());var d=/^rgba?\(\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d+)\s*(?:,\s*(\d+(?:\.\d+)?))?\s*\)$/.exec(a);return d&&(b.r=parseInt(d[1],10),b.g=parseInt(d[2],10),b.b=parseInt(d[3],10),b.a=void 0!==d[4]?parseFloat(d[4]):1,c.Color.updateColor(b)),b},valueToColor:function(a,b){if(b||(b=c.Color.createColor()),"string"==typeof a)return 0===a.indexOf("rgb")?c.Color.webToColor(a,b):(b.a=1,c.Color.hexToColor(a,b));if("number"==typeof a){var d=c.Color.getRGB(a);return b.r=d.r,b.g=d.g,b.b=d.b,b.a=d.a/255,b}return b},componentToHex:function(a){var b=a.toString(16);return 1==b.length?"0"+b:b},HSVColorWheel:function(a,b){void 0===a&&(a=1),void 0===b&&(b=1);for(var d=[],e=0;359>=e;e++)d.push(c.Color.HSVtoRGB(e/359,a,b));return d},HSLColorWheel:function(a,b){void 0===a&&(a=.5),void 0===b&&(b=.5);for(var d=[],e=0;359>=e;e++)d.push(c.Color.HSLtoRGB(e/359,a,b));return d},interpolateColor:function(a,b,d,e,f){void 0===f&&(f=255);var g=c.Color.getRGB(a),h=c.Color.getRGB(b),i=(h.red-g.red)*e/d+g.red,j=(h.green-g.green)*e/d+g.green,k=(h.blue-g.blue)*e/d+g.blue;return c.Color.getColor32(f,i,j,k)},interpolateColorWithRGB:function(a,b,d,e,f,g){var h=c.Color.getRGB(a),i=(b-h.red)*g/f+h.red,j=(d-h.green)*g/f+h.green,k=(e-h.blue)*g/f+h.blue;return c.Color.getColor(i,j,k)},interpolateRGB:function(a,b,d,e,f,g,h,i){var j=(e-a)*i/h+a,k=(f-b)*i/h+b,l=(g-d)*i/h+d;return c.Color.getColor(j,k,l)},getRandomColor:function(a,b,d){if(void 0===a&&(a=0),void 0===b&&(b=255),void 0===d&&(d=255),b>255||a>b)return c.Color.getColor(255,255,255);var e=a+Math.round(Math.random()*(b-a)),f=a+Math.round(Math.random()*(b-a)),g=a+Math.round(Math.random()*(b-a));return c.Color.getColor32(d,e,f,g)},getRGB:function(a){return a>16777215?{alpha:a>>>24,red:a>>16&255,green:a>>8&255,blue:255&a,a:a>>>24,r:a>>16&255,g:a>>8&255,b:255&a}:{alpha:255,red:a>>16&255,green:a>>8&255,blue:255&a,a:255,r:a>>16&255,g:a>>8&255,b:255&a}},getWebRGB:function(a){if("object"==typeof a)return"rgba("+a.r.toString()+","+a.g.toString()+","+a.b.toString()+","+(a.a/255).toString()+")";var b=c.Color.getRGB(a);return"rgba("+b.r.toString()+","+b.g.toString()+","+b.b.toString()+","+(b.a/255).toString()+")"},getAlpha:function(a){return a>>>24},getAlphaFloat:function(a){return(a>>>24)/255},getRed:function(a){return a>>16&255},getGreen:function(a){return a>>8&255},getBlue:function(a){return 255&a},blendNormal:function(a){return a},blendLighten:function(a,b){return b>a?b:a},blendDarken:function(a,b){return b>a?a:b},blendMultiply:function(a,b){return a*b/255},blendAverage:function(a,b){return(a+b)/2},blendAdd:function(a,b){return Math.min(255,a+b)},blendSubtract:function(a,b){return Math.max(0,a+b-255)},blendDifference:function(a,b){return Math.abs(a-b)},blendNegation:function(a,b){return 255-Math.abs(255-a-b)},blendScreen:function(a,b){return 255-((255-a)*(255-b)>>8)},blendExclusion:function(a,b){return a+b-2*a*b/255},blendOverlay:function(a,b){return 128>b?2*a*b/255:255-2*(255-a)*(255-b)/255},blendSoftLight:function(a,b){return 128>b?2*((a>>1)+64)*(b/255):255-2*(255-((a>>1)+64))*(255-b)/255},blendHardLight:function(a,b){return c.Color.blendOverlay(b,a)},blendColorDodge:function(a,b){return 255===b?b:Math.min(255,(a<<8)/(255-b))},blendColorBurn:function(a,b){return 0===b?b:Math.max(0,255-(255-a<<8)/b)},blendLinearDodge:function(a,b){return c.Color.blendAdd(a,b)},blendLinearBurn:function(a,b){return c.Color.blendSubtract(a,b)},blendLinearLight:function(a,b){return 128>b?c.Color.blendLinearBurn(a,2*b):c.Color.blendLinearDodge(a,2*(b-128))},blendVividLight:function(a,b){return 128>b?c.Color.blendColorBurn(a,2*b):c.Color.blendColorDodge(a,2*(b-128))},blendPinLight:function(a,b){return 128>b?c.Color.blendDarken(a,2*b):c.Color.blendLighten(a,2*(b-128))},blendHardMix:function(a,b){return c.Color.blendVividLight(a,b)<128?0:255},blendReflect:function(a,b){return 255===b?b:Math.min(255,a*a/(255-b))},blendGlow:function(a,b){return c.Color.blendReflect(b,a)},blendPhoenix:function(a,b){return Math.min(a,b)-Math.max(a,b)+255}},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.Physics=function(a,b){b=b||{},this.game=a,this.config=b,this.arcade=null,this.p2=null,this.ninja=null,this.box2d=null,this.chipmunk=null,this.matter=null,this.parseConfig()},c.Physics.ARCADE=0,c.Physics.P2JS=1,c.Physics.NINJA=2,c.Physics.BOX2D=3,c.Physics.CHIPMUNK=4,c.Physics.MATTERJS=5,c.Physics.prototype={parseConfig:function(){this.config.hasOwnProperty("arcade")&&this.config.arcade!==!0||!c.Physics.hasOwnProperty("Arcade")||(this.arcade=new c.Physics.Arcade(this.game)),this.config.hasOwnProperty("ninja")&&this.config.ninja===!0&&c.Physics.hasOwnProperty("Ninja")&&(this.ninja=new c.Physics.Ninja(this.game)),this.config.hasOwnProperty("p2")&&this.config.p2===!0&&c.Physics.hasOwnProperty("P2")&&(this.p2=new c.Physics.P2(this.game,this.config)),this.config.hasOwnProperty("box2d")&&this.config.box2d===!0&&c.Physics.hasOwnProperty("BOX2D")&&(this.box2d=new c.Physics.BOX2D(this.game,this.config)),this.config.hasOwnProperty("matter")&&this.config.matter===!0&&c.Physics.hasOwnProperty("Matter")&&(this.matter=new c.Physics.Matter(this.game,this.config))},startSystem:function(a){a===c.Physics.ARCADE?this.arcade=new c.Physics.Arcade(this.game):a===c.Physics.P2JS?null===this.p2?this.p2=new c.Physics.P2(this.game,this.config):this.p2.reset():a===c.Physics.NINJA?this.ninja=new c.Physics.Ninja(this.game):a===c.Physics.BOX2D?null===this.box2d?this.box2d=new c.Physics.Box2D(this.game,this.config):this.box2d.reset():a===c.Physics.MATTERJS&&(null===this.matter?this.matter=new c.Physics.Matter(this.game,this.config):this.matter.reset())},enable:function(a,b,d){void 0===b&&(b=c.Physics.ARCADE),void 0===d&&(d=!1),b===c.Physics.ARCADE?this.arcade.enable(a):b===c.Physics.P2JS&&this.p2?this.p2.enable(a,d):b===c.Physics.NINJA&&this.ninja?this.ninja.enableAABB(a):b===c.Physics.BOX2D&&this.box2d?this.box2d.enable(a):b===c.Physics.MATTERJS&&this.matter&&this.matter.enable(a)},preUpdate:function(){this.p2&&this.p2.preUpdate(),this.box2d&&this.box2d.preUpdate(),this.matter&&this.matter.preUpdate()},update:function(){this.p2&&this.p2.update(),this.box2d&&this.box2d.update(),this.matter&&this.matter.update()},setBoundsToWorld:function(){this.arcade&&this.arcade.setBoundsToWorld(),this.ninja&&this.ninja.setBoundsToWorld(),this.p2&&this.p2.setBoundsToWorld(),this.box2d&&this.box2d.setBoundsToWorld(),this.matter&&this.matter.setBoundsToWorld()},clear:function(){this.p2&&this.p2.clear(),this.box2d&&this.box2d.clear(),this.matter&&this.matter.clear()},reset:function(){this.p2&&this.p2.reset(),this.box2d&&this.box2d.reset(),this.matter&&this.matter.reset()},destroy:function(){this.p2&&this.p2.destroy(),this.box2d&&this.box2d.destroy(),this.matter&&this.matter.destroy(),this.arcade=null,this.ninja=null,this.p2=null,this.box2d=null,this.matter=null}},c.Physics.prototype.constructor=c.Physics,c.Particles=function(a){this.game=a,this.emitters={},this.ID=0},c.Particles.prototype={add:function(a){return this.emitters[a.name]=a,a},remove:function(a){delete this.emitters[a.name]},update:function(){for(var a in this.emitters)this.emitters[a].exists&&this.emitters[a].update()}},c.Particles.prototype.constructor=c.Particles,void 0===PIXI.blendModes&&(PIXI.blendModes=c.blendModes),void 0===PIXI.scaleModes&&(PIXI.scaleModes=c.scaleModes),void 0===PIXI.Texture.emptyTexture&&(PIXI.Texture.emptyTexture=new PIXI.Texture(new PIXI.BaseTexture)),void 0===PIXI.DisplayObject._tempMatrix&&(PIXI.DisplayObject._tempMatrix=new PIXI.Matrix),void 0===PIXI.RenderTexture.tempMatrix&&(PIXI.RenderTexture.tempMatrix=new PIXI.Matrix),void 0===PIXI.Graphics.POLY&&(PIXI.Graphics.POLY=c.POLYGON,PIXI.Graphics.RECT=c.RECTANGLE,PIXI.Graphics.CIRC=c.CIRCLE,PIXI.Graphics.ELIP=c.ELLIPSE,PIXI.Graphics.RREC=c.ROUNDEDRECTANGLE),PIXI.TextureSilentFail=!0,"undefined"!=typeof exports?("undefined"!=typeof module&&module.exports&&(exports=module.exports=c),exports.Phaser=c):"undefined"!=typeof define&&define.amd?define("Phaser",function(){return b.Phaser=c}()):b.Phaser=c}).call(this); +}},c.Touch.prototype.constructor=c.Touch,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.dragOffset=new c.Point,this.dragFromCenter=!1,this.dragStartPoint=new c.Point,this.snapPoint=new c.Point,this._dragPoint=new c.Point,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,void 0===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}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 void 0===c&&(c=!0),0===this.sprite.scale.x||0===this.sprite.scale.y||this.priorityIDa||this.priorityID===a&&this.sprite.renderOrderIDb;b++)if(this._pointerData[b].isOver)return!0}return!1},pointerOut:function(a){if(this.enabled){if(void 0!==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)?(void 0===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)?(void 0===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&&this._pointerData[a.id].isOver){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.snapPoint.set(this.sprite.cameraOffset.x,this.sprite.cameraOffset.y))):(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,this.snapPoint.set(this.sprite.x,this.sprite.y))),this.sprite.events.onDragUpdate.dispatch(this.sprite,a,b,c,this.snapPoint),!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){var b=this.sprite.x,c=this.sprite.y;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 d=this.sprite.getBounds();this.sprite.x=this.globalToLocalX(a.x)+(this.sprite.x-d.centerX),this.sprite.y=this.globalToLocalY(a.y)+(this.sprite.y-d.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.dragStartPoint.set(b,c),this.sprite.events.onDragStart$dispatch(this.sprite,a,b,c)},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){void 0===a&&(a=!0),void 0===b&&(b=!0),this.allowHorizontalDrag=a,this.allowVerticalDrag=b},enableSnap:function(a,b,c,d,e,f){void 0===c&&(c=!0),void 0===d&&(d=!1),void 0===e&&(e=0),void 0===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.leftthis.boundsRect.right&&(this.sprite.x=this.boundsRect.right-(this.sprite.width-this.sprite.offsetX)),this.sprite.topthis.boundsRect.bottom&&(this.sprite.y=this.boundsRect.bottom-(this.sprite.height-this.sprite.offsetY)))},checkBoundsSprite:function(){this.sprite.fixedToCamera&&this.boundsSprite.fixedToCamera?(this.sprite.cameraOffset.xthis.boundsSprite.cameraOffset.x+this.boundsSprite.width&&(this.sprite.cameraOffset.x=this.boundsSprite.cameraOffset.x+this.boundsSprite.width-this.sprite.width),this.sprite.cameraOffset.ythis.boundsSprite.cameraOffset.y+this.boundsSprite.height&&(this.sprite.cameraOffset.y=this.boundsSprite.cameraOffset.y+this.boundsSprite.height-this.sprite.height)):(this.sprite.leftthis.boundsSprite.right&&(this.sprite.x=this.boundsSprite.right-(this.sprite.width-this.sprite.offsetX)),this.sprite.topthis.boundsSprite.bottom&&(this.sprite.y=this.boundsSprite.bottom-(this.sprite.height-this.sprite.offsetY)))}},c.InputHandler.prototype.constructor=c.InputHandler,c.Component=function(){},c.Component.Angle=function(){},c.Component.Angle.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))}}},c.Component.Animation=function(){},c.Component.Animation.prototype={play:function(a,b,c,d){return this.animations?this.animations.play(a,b,c,d):void 0}},c.Component.AutoCull=function(){},c.Component.AutoCull.prototype={autoCull:!1,inCamera:{get:function(){return this.autoCull||this.checkWorldBounds||(this._bounds.copyFrom(this.getBounds()),this._bounds.x+=this.game.camera.view.x,this._bounds.y+=this.game.camera.view.y),this.game.world.camera.view.intersects(this._bounds)}}},c.Component.Bounds=function(){},c.Component.Bounds.prototype={offsetX:{get:function(){return this.anchor.x*this.width}},offsetY:{get:function(){return this.anchor.y*this.height}},left:{get:function(){return this.x-this.offsetX}},right:{get:function(){return this.x+this.width-this.offsetX}},top:{get:function(){return this.y-this.offsetY}},bottom:{get:function(){return this.y+this.height-this.offsetY}}},c.Component.BringToTop=function(){},c.Component.BringToTop.prototype.bringToTop=function(){return this.parent&&this.parent.bringToTop(this),this},c.Component.BringToTop.prototype.sendToBack=function(){return this.parent&&this.parent.sendToBack(this),this},c.Component.BringToTop.prototype.moveUp=function(){return this.parent&&this.parent.moveUp(this),this},c.Component.BringToTop.prototype.moveDown=function(){return this.parent&&this.parent.moveDown(this),this},c.Component.Core=function(){},c.Component.Core.install=function(a){c.Utils.mixinPrototype(this,c.Component.Core.prototype),this.components={};for(var b=0;bthis.maxHealth&&(this.health=this.maxHealth)),this}},c.Component.InCamera=function(){},c.Component.InCamera.prototype={inCamera:{get:function(){return this.game.world.camera.view.intersects(this._bounds)}}},c.Component.InputEnabled=function(){},c.Component.InputEnabled.prototype={input:null,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()}}},c.Component.InWorld=function(){},c.Component.InWorld.preUpdate=function(){if((this.autoCull||this.checkWorldBounds)&&(this._bounds.copyFrom(this.getBounds()),this._bounds.x+=this.game.camera.view.x,this._bounds.y+=this.game.camera.view.y,this.autoCull&&(this.game.world.camera.view.intersects(this._bounds)?(this.renderable=!0,this.game.world.camera.totalInView++):this.renderable=!1),this.checkWorldBounds))if(this._outOfBoundsFired&&this.game.world.bounds.intersects(this._bounds))this._outOfBoundsFired=!1,this.events.onEnterBounds$dispatch(this);else if(!this._outOfBoundsFired&&!this.game.world.bounds.intersects(this._bounds)&&(this._outOfBoundsFired=!0,this.events.onOutOfBounds$dispatch(this),this.outOfBoundsKill))return this.kill(),!1;return!0},c.Component.InWorld.prototype={checkWorldBounds:!1,outOfBoundsKill:!1,_outOfBoundsFired:!1,inWorld:{get:function(){return this.game.world.bounds.intersects(this.getBounds())}}},c.Component.LifeSpan=function(){},c.Component.LifeSpan.preUpdate=function(){return this.lifespan>0&&(this.lifespan-=this.game.time.physicsElapsedMS,this.lifespan<=0)?(this.kill(),!1):!0},c.Component.LifeSpan.prototype={alive:!0,lifespan:0,revive:function(a){return void 0===a&&(a=1),this.alive=!0,this.exists=!0,this.visible=!0,"number"==typeof this.health&&(this.health=a),this.events&&this.events.onRevived$dispatch(this),this},kill:function(){return this.alive=!1,this.exists=!1,this.visible=!1,this.events&&this.events.onKilled$dispatch(this),this}},c.Component.LoadTexture=function(){},c.Component.LoadTexture.prototype={customRender:!1,_frame:null,loadTexture:function(a,b,d){b=b||0,(d||void 0===d)&&this.animations&&this.animations.stop(),this.key=a,this.customRender=!1;var e=this.game.cache,f=!0,g=!this.texture.baseTexture.scaleMode;if(c.RenderTexture&&a instanceof c.RenderTexture)this.key=a.key,this.setTexture(a);else if(c.BitmapData&&a instanceof c.BitmapData)this.customRender=!0,this.setTexture(a.texture),e.hasFrameData(a.key,c.Cache.BITMAPDATA)&&(f=!this.animations.loadFrameData(e.getFrameData(a.key,c.Cache.BITMAPDATA),b));else if(c.Video&&a instanceof c.Video){this.customRender=!0;var h=a.texture.valid;this.setTexture(a.texture),this.setFrame(a.texture.frame.clone()),a.onChangeSource.add(this.resizeFrame,this),this.texture.valid=h}else if(a instanceof PIXI.Texture)this.setTexture(a);else{var i=e.getImage(a,!0);this.key=i.key,this.setTexture(new PIXI.Texture(i.base)),f=!this.animations.loadFrameData(i.frameData,b)}f&&(this._frame=c.Rectangle.clone(this.texture.frame)),g||(this.texture.baseTexture.scaleMode=1)},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.requiresReTint=!0,this.texture._updateUvs(),this.tilingTexture&&(this.refreshTexture=!0)},resizeFrame:function(a,b,c){this.texture.frame.resize(b,c),this.texture.setFrame(this.texture.frame)},resetFrame:function(){this._frame&&this.setFrame(this._frame)},frame:{get:function(){return this.animations.frame},set:function(a){this.animations.frame=a}},frameName:{get:function(){return this.animations.frameName},set:function(a){this.animations.frameName=a}}},c.Component.Overlap=function(){},c.Component.Overlap.prototype={overlap:function(a){return c.Rectangle.intersects(this.getBounds(),a.getBounds())}},c.Component.PhysicsBody=function(){},c.Component.PhysicsBody.preUpdate=function(){return this.fresh&&this.exists?(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.previousPosition.set(this.world.x,this.world.y),this.previousRotation=this.rotation,this.body&&this.body.preUpdate(),this.fresh=!1,!1):(this.previousPosition.set(this.world.x,this.world.y),this.previousRotation=this.rotation,this._exists&&this.parent.exists?!0:(this.renderOrderID=-1,!1))},c.Component.PhysicsBody.postUpdate=function(){this.exists&&this.body&&this.body.postUpdate()},c.Component.PhysicsBody.prototype={body:null,x:{get:function(){return this.position.x},set:function(a){this.position.x=a,this.body&&!this.body.dirty&&(this.body._reset=!0)}},y:{get:function(){return this.position.y},set:function(a){this.position.y=a,this.body&&!this.body.dirty&&(this.body._reset=!0)}}},c.Component.Reset=function(){},c.Component.Reset.prototype.reset=function(a,b,c){return void 0===c&&(c=1),this.world.set(a,b),this.position.set(a,b),this.fresh=!0,this.exists=!0,this.visible=!0,this.renderable=!0,this.components.InWorld&&(this._outOfBoundsFired=!1),this.components.LifeSpan&&(this.alive=!0,this.health=c),this.components.PhysicsBody&&this.body&&this.body.reset(a,b,!1,!1),this},c.Component.ScaleMinMax=function(){},c.Component.ScaleMinMax.prototype={transformCallback:this.checkTransform,transformCallbackContext:this,scaleMin:null,scaleMax:null,checkTransform:function(a){this.scaleMin&&(a.athis.scaleMax.x&&(a.a=this.scaleMax.x),a.d>this.scaleMax.y&&(a.d=this.scaleMax.y))},setScaleMinMax:function(a,b,d,e){void 0===b?b=d=e=a:void 0===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)}},c.Component.Smoothed=function(){},c.Component.Smoothed.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)}}},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 void 0===f&&(f=this.world),f.add(new c.Image(this.game,a,b,d,e))},sprite:function(a,b,c,d,e){return void 0===e&&(e=this.world),e.create(a,b,c,d)},creature:function(a,b,d,e,f){void 0===f&&(f=this.world);var g=new c.Creature(this.game,a,b,d,e);return f.add(g),g},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 void 0===a&&(a=null),void 0===b&&(b="group"),void 0===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 void 0===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 void 0===g&&(g=this.world),g.add(new c.Rope(this.game,a,b,d,e,f))},text:function(a,b,d,e,f){return void 0===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 void 0===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 void 0===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 void 0===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){(void 0===d||""===d)&&(d=this.game.rnd.uuid()),void 0===e&&(e=!1);var f=new c.RenderTexture(this.game,a,b,d);return e&&this.game.cache.addRenderTexture(d,f),f},video:function(a,b){return new c.Video(this.game,a,b)},bitmapData:function(a,b,d,e){void 0===e&&(e=!1),(void 0===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,this.game.tweens)},group:function(a,b,d,e,f){return new c.Group(this.game,a,b,d,e,f)},spriteBatch:function(a,b,d){return void 0===b&&(b="group"),void 0===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,g){return new c.BitmapText(this.game,a,b,d,e,f,g)},tilemap:function(a,b,d,e,f){return new c.Tilemap(this.game,a,b,d,e,f)},renderTexture:function(a,b,d,e){(void 0===d||""===d)&&(d=this.game.rnd.uuid()),void 0===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){void 0===e&&(e=!1),(void 0===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.Sprite=function(a,b,d,e,f){b=b||0,d=d||0,e=e||null,f=f||null,this.type=c.SPRITE,this.physicsType=c.SPRITE,PIXI.Sprite.call(this,PIXI.TextureCache.__default),c.Component.Core.init.call(this,a,b,d,e,f)},c.Sprite.prototype=Object.create(PIXI.Sprite.prototype),c.Sprite.prototype.constructor=c.Sprite,c.Component.Core.install.call(c.Sprite.prototype,["Angle","Animation","AutoCull","Bounds","BringToTop","Crop","Delta","Destroy","FixedToCamera","Health","InCamera","InputEnabled","InWorld","LifeSpan","LoadTexture","Overlap","PhysicsBody","Reset","ScaleMinMax","Smoothed"]),c.Sprite.prototype.preUpdatePhysics=c.Component.PhysicsBody.preUpdate,c.Sprite.prototype.preUpdateLifeSpan=c.Component.LifeSpan.preUpdate,c.Sprite.prototype.preUpdateInWorld=c.Component.InWorld.preUpdate,c.Sprite.prototype.preUpdateCore=c.Component.Core.preUpdate,c.Sprite.prototype.preUpdate=function(){return this.preUpdatePhysics()&&this.preUpdateLifeSpan()&&this.preUpdateInWorld()?this.preUpdateCore():!1},c.Image=function(a,b,d,e,f){b=b||0,d=d||0,e=e||null,f=f||null,this.type=c.IMAGE,PIXI.Sprite.call(this,PIXI.TextureCache.__default),c.Component.Core.init.call(this,a,b,d,e,f)},c.Image.prototype=Object.create(PIXI.Sprite.prototype),c.Image.prototype.constructor=c.Image,c.Component.Core.install.call(c.Image.prototype,["Angle","Animation","AutoCull","Bounds","BringToTop","Crop","Destroy","FixedToCamera","InputEnabled","LifeSpan","LoadTexture","Overlap","Reset","Smoothed"]),c.Image.prototype.preUpdateInWorld=c.Component.InWorld.preUpdate,c.Image.prototype.preUpdateCore=c.Component.Core.preUpdate,c.Image.prototype.preUpdate=function(){return this.preUpdateInWorld()?this.preUpdateCore():!1},c.TileSprite=function(a,b,d,e,f,g,h){b=b||0,d=d||0,e=e||256,f=f||256,g=g||null,h=h||null,this.type=c.TILESPRITE,this.physicsType=c.SPRITE,this._scroll=new c.Point;var i=a.cache.getImage("__default",!0);PIXI.TilingSprite.call(this,new PIXI.Texture(i.base),e,f),c.Component.Core.init.call(this,a,b,d,g,h)},c.TileSprite.prototype=Object.create(PIXI.TilingSprite.prototype),c.TileSprite.prototype.constructor=c.TileSprite,c.Component.Core.install.call(c.TileSprite.prototype,["Angle","Animation","AutoCull","Bounds","BringToTop","Destroy","FixedToCamera","Health","InCamera","InputEnabled","InWorld","LifeSpan","LoadTexture","Overlap","PhysicsBody","Reset","Smoothed"]),c.TileSprite.prototype.preUpdatePhysics=c.Component.PhysicsBody.preUpdate,c.TileSprite.prototype.preUpdateLifeSpan=c.Component.LifeSpan.preUpdate,c.TileSprite.prototype.preUpdateInWorld=c.Component.InWorld.preUpdate,c.TileSprite.prototype.preUpdateCore=c.Component.Core.preUpdate,c.TileSprite.prototype.preUpdate=function(){return 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.preUpdatePhysics()&&this.preUpdateLifeSpan()&&this.preUpdateInWorld()?this.preUpdateCore():!1},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.destroy=function(a){c.Component.Destroy.prototype.destroy.call(this,a),PIXI.TilingSprite.prototype.destroy.call(this)},c.TileSprite.prototype.reset=function(a,b){return c.Component.Reset.prototype.reset.call(this,a,b),this.tilePosition.x=0,this.tilePosition.y=0,this},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.type=c.ROPE,this._scroll=new c.Point,PIXI.Rope.call(this,PIXI.TextureCache.__default,this.points),c.Component.Core.init.call(this,a,b,d,e,f)},c.Rope.prototype=Object.create(PIXI.Rope.prototype),c.Rope.prototype.constructor=c.Rope,c.Component.Core.install.call(c.Rope.prototype,["Angle","Animation","AutoCull","Bounds","BringToTop","Crop","Delta","Destroy","FixedToCamera","InputEnabled","InWorld","LifeSpan","LoadTexture","Overlap","PhysicsBody","Reset","ScaleMinMax","Smoothed"]),c.Rope.prototype.preUpdatePhysics=c.Component.PhysicsBody.preUpdate,c.Rope.prototype.preUpdateLifeSpan=c.Component.LifeSpan.preUpdate,c.Rope.prototype.preUpdateInWorld=c.Component.InWorld.preUpdate,c.Rope.prototype.preUpdateCore=c.Component.Core.preUpdate,c.Rope.prototype.preUpdate=function(){return 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.preUpdatePhysics()&&this.preUpdateLifeSpan()&&this.preUpdateInWorld()?this.preUpdateCore():!1},c.Rope.prototype.update=function(){this._hasUpdateAnimation&&this.updateAnimation.call(this)},c.Rope.prototype.reset=function(a,b){return c.Component.Reset.prototype.reset.call(this,a,b),this.tilePosition.x=0,this.tilePosition.y=0,this},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;k=1)&&(l.touch=!0),(window.navigator.msPointerEnabled||window.navigator.pointerEnabled)&&(l.mspointer=!0),l.cocoonJS||("onwheel"in window||l.ie&&"WheelEvent"in window?l.wheelEvent="wheel":"onmousewheel"in window?l.wheelEvent="mousewheel":l.firefox&&"MouseScrollEvent"in window&&(l.wheelEvent="DOMMouseScroll"))}function d(){for(var a=["requestFullscreen","requestFullScreen","webkitRequestFullscreen","webkitRequestFullScreen","msRequestFullscreen","msRequestFullScreen","mozRequestFullScreen","mozRequestFullscreen"],b=document.createElement("div"),c=0;c0&&"none"!==a}var l=this;a(),g(),f(),e(),k(),h(),b(),d(),c()},c.Device.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},c.Device.canPlayVideo=function(a){return"webm"===a&&(this.webmVideo||this.vp9Video)?!0:"mp4"===a&&(this.mp4Video||this.h264Video)?!0:"ogg"===a&&this.oggVideo?!0:"mpeg"===a&&this.hlsVideo?!0:!1},c.Device.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.isAndroidStockBrowser=function(){var a=window.navigator.userAgent.match(/Android.*AppleWebKit\/([\d.]+)/);return a&&a[1]<537},c.DOM={getOffset:function(a,b){b=b||new c.Point;var d=a.getBoundingClientRect(),e=c.DOM.scrollY,f=c.DOM.scrollX,g=document.documentElement.clientTop,h=document.documentElement.clientLeft;return b.x=d.left+f-h,b.y=d.top+e-g,b},getBounds:function(a,b){return void 0===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.visualBounds:1===a.nodeType?this.getBounds(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},inLayoutViewport:function(a,b){var c=this.getBounds(a,b);return!!c&&c.bottom>=0&&c.right>=0&&c.top<=this.layoutBounds.width&&c.left<=this.layoutBounds.height},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.visualBounds.height>this.visualBounds.width?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.visualBounds.height>this.visualBounds.width?d:e},visualBounds:new c.Rectangle,layoutBounds:new c.Rectangle,documentBounds:new c.Rectangle},c.Device.whenReady(function(a){var b=window&&"pageXOffset"in window?function(){return window.pageXOffset}:function(){return document.documentElement.scrollLeft},d=window&&"pageYOffset"in window?function(){return window.pageYOffset}:function(){return document.documentElement.scrollTop};Object.defineProperty(c.DOM,"scrollX",{get:b}),Object.defineProperty(c.DOM,"scrollY",{get:d}),Object.defineProperty(c.DOM.visualBounds,"x",{get:b}),Object.defineProperty(c.DOM.visualBounds,"y",{get:d}),Object.defineProperty(c.DOM.layoutBounds,"x",{value:0}),Object.defineProperty(c.DOM.layoutBounds,"y",{value:0});var e=a.desktop&&document.documentElement.clientWidth<=window.innerWidth&&document.documentElement.clientHeight<=window.innerHeight;if(e){var f=function(){return Math.max(window.innerWidth,document.documentElement.clientWidth)},g=function(){return Math.max(window.innerHeight,document.documentElement.clientHeight)};Object.defineProperty(c.DOM.visualBounds,"width",{get:f}),Object.defineProperty(c.DOM.visualBounds,"height",{get:g}),Object.defineProperty(c.DOM.layoutBounds,"width",{get:f}),Object.defineProperty(c.DOM.layoutBounds,"height",{get:g})}else Object.defineProperty(c.DOM.visualBounds,"width",{get:function(){return window.innerWidth}}),Object.defineProperty(c.DOM.visualBounds,"height",{get:function(){return window.innerHeight}}),Object.defineProperty(c.DOM.layoutBounds,"width",{get:function(){var a=document.documentElement.clientWidth,b=window.innerWidth;return b>a?b:a}}),Object.defineProperty(c.DOM.layoutBounds,"height",{get:function(){var a=document.documentElement.clientHeight,b=window.innerHeight;return b>a?b:a}});Object.defineProperty(c.DOM.documentBounds,"x",{value:0}),Object.defineProperty(c.DOM.documentBounds,"y",{value:0}),Object.defineProperty(c.DOM.documentBounds,"width",{get:function(){var a=document.documentElement;return Math.max(a.clientWidth,a.offsetWidth,a.scrollWidth)}}),Object.defineProperty(c.DOM.documentBounds,"height",{get:function(){var a=document.documentElement;return Math.max(a.clientHeight,a.offsetHeight,a.scrollHeight)}})},null,!0),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 void 0===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){var c=["i","mozI","oI","webkitI","msI"];for(var d in c){var e=c[d]+"mageSmoothingEnabled";if(e in a)return a[e]=b,a}return 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.RequestAnimationFrame=function(a,b){void 0===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 void 0===c&&(c=1e-4),a>b-c},fuzzyCeil:function(a,b){return void 0===b&&(b=1e-4),Math.ceil(a-b)},fuzzyFloor:function(a,b){return void 0===b&&(b=1e-4),Math.floor(a+b)},average:function(){for(var a=0,b=0;b=0?a:a+2*Math.PI},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},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)},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)},roundAwayFromZero:function(a){return a>0?Math.ceil(a):Math.floor(a)},sinCosGenerator:function(a,b,c,d){void 0===b&&(b=1),void 0===c&&(c=1),void 0===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}},distance:function(a,b,c,d){var e=a-c,f=b-d;return Math.sqrt(e*e+f*f)},distanceSq:function(a,b,c,d){var e=a-c,f=b-d;return e*e+f*f},distancePow:function(a,b,c,d,e){return void 0===e&&(e=2),Math.sqrt(Math.pow(c-a,e)+Math.pow(d-b,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 void 0===c&&(c=0),a>b||c>b?1:c>a||c>a?0:(a-c)/b}};var j=Math.PI/180,k=180/Math.PI;c.Math.degToRad=function(a){return a*j},c.Math.radToDeg=function(a){return a*k},c.RandomDataGenerator=function(a){void 0===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){if(this.s0=this.hash(" "),this.s1=this.hash(this.s0),this.s2=this.hash(this.s1),this.c=1,a)for(var b=0;b>>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)+.5)]},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;var l=function(){};c.Net=l,c.Net.prototype={isDisabled:!0,getHostName:l,checkDomainName:l,updateQueryString:l,getQueryString:l,decodeURI:l},c.Net.prototype.constructor=c.Net,c.TweenManager=function(){},c.TweenManager.prototype.update=function(){},c.TweenManager.prototype.constructor=c.TweenManager,c.Time=function(a){this.game=a,this.time=0,this.prevTime=0,this.now=0,this.elapsed=0,this.elapsedMS=0,this.physicsElapsed=0,this.physicsElapsedMS=0,this.desiredFps=60,this.suggestedFps=null,this.slowMotion=1,this.advancedTiming=!1,this.frames=0,this.fps=0,this.fpsMin=1e3,this.fpsMax=0,this.msMin=1e3,this.msMax=0,this.pauseDuration=0,this.timeToCall=0,this.timeExpected=0,this.events=new c.Timer(this.game,!1),this._frameCount=0,this._elapsedAccumulator=0,this._started=0,this._timeLastSecond=0,this._pauseStarted=0,this._justResumed=!1,this._timers=[]},c.Time.prototype={boot:function(){this._started=Date.now(),this.time=Date.now(),this.events.start()},add:function(a){return this._timers.push(a),a},create:function(a){void 0===a&&(a=!0);var b=new c.Timer(this.game,a);return this._timers.push(b),b},removeAll:function(){for(var a=0;aa;)this._timers[a].update(this.time)?a++:(this._timers.splice(a,1),b--)},updateAdvancedTiming:function(){this._frameCount++,this._elapsedAccumulator+=this.elapsed,this._frameCount>=2*this.desiredFps&&(this.suggestedFps=5*Math.floor(200/(this._elapsedAccumulator/this._frameCount)),this._frameCount=0,this._elapsedAccumulator=0),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)},gamePaused:function(){this._pauseStarted=Date.now(),this.events.pause();for(var a=this._timers.length;a--;)this._timers[a]._pause()},gameResumed:function(){this.time=Date.now(),this.pauseDuration=this.time-this._pauseStarted,this.events.resume();for(var a=this._timers.length;a--;)this._timers[a]._resume()},totalElapsedSeconds:function(){return.001*(this.time-this._started)},elapsedSince:function(a){return this.time-a},elapsedSecondsSince:function(a){return.001*(this.time-a)},reset:function(){this._started=this.time,this.removeAll()}},c.Time.prototype.constructor=c.Time,c.Timer=function(a,b){void 0===b&&(b=!0),this.game=a,this.running=!1,this.autoDestroy=b,this.expired=!1,this.elapsed=0,this.events=[],this.onComplete=new c.Signal,this.nextTick=0,this.timeCap=1e3,this.paused=!1,this._codePaused=!1,this._started=0,this._pauseStarted=0,this._pauseTotal=0,this._now=Date.now(),this._len=0,this._marked=0,this._i=0,this._diff=0,this._newTick=0},c.Timer.MINUTE=6e4,c.Timer.SECOND=1e3,c.Timer.HALF=500,c.Timer.QUARTER=250,c.Timer.prototype={create:function(a,b,d,e,f,g){a=Math.round(a);var h=a;h+=0===this._now?this.game.time.time:this._now;var i=new c.TimerEvent(this,a,h,d,b,e,f,g);return this.events.push(i),this.order(),this.expired=!1,i},add:function(a,b,c){return this.create(a,!1,0,b,c,Array.prototype.splice.call(arguments,3))},repeat:function(a,b,c,d){return this.create(a,!1,b,c,d,Array.prototype.splice.call(arguments,4))},loop:function(a,b,c){return this.create(a,!0,0,b,c,Array.prototype.splice.call(arguments,3))},start:function(a){if(!this.running){this._started=this.game.time.time+(a||0),this.running=!0;for(var b=0;b0&&(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.events[this._i].pendingDelete;)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},destroy:function(){this.onComplete.removeAll(),this.running=!1,this.events=[],this._len=0,this._i=0}},Object.defineProperty(c.Timer.prototype,"next",{get:function(){return this.nextTick}}),Object.defineProperty(c.Timer.prototype,"duration",{get:function(){return this.running&&this.nextTick>this._now?this.nextTick-this._now:0}}),Object.defineProperty(c.Timer.prototype,"length",{get:function(){return this.events.length}}),Object.defineProperty(c.Timer.prototype,"ms",{get:function(){return this.running?this._now-this._started-this._pauseTotal:0}}),Object.defineProperty(c.Timer.prototype,"seconds",{get:function(){return this.running?.001*this.ms:0}}),c.Timer.prototype.constructor=c.Timer,c.TimerEvent=function(a,b,c,d,e,f,g,h){this.timer=a,this.delay=b,this.tick=c,this.repeatCount=d-1,this.loop=e,this.callback=f,this.callbackContext=g,this.args=h,this.pendingDelete=!1},c.TimerEvent.prototype.constructor=c.TimerEvent,c.AnimationManager=function(a){this.sprite=a,this.game=a.game,this.currentFrame=null,this.currentAnim=null,this.updateIfVisible=!0,this.isLoaded=!1,this._frameData=null,this._anims={},this._outputFrames=[]},c.AnimationManager.prototype={loadFrameData:function(a,b){if(void 0===a)return!1;if(this.isLoaded)for(var c in this._anims)this._anims[c].updateFrameData(a);return this._frameData=a,void 0===b||null===b?this.frame=0:"string"==typeof b?this.frameName=b:this.frame=b,this.isLoaded=!0,!0},copyFrameData:function(a,b){if(this._frameData=a.clone(),this.isLoaded)for(var c in this._anims)this._anims[c].updateFrameData(this._frameData);return void 0===b||null===b?this.frame=0:"string"==typeof b?this.frameName=b:this.frame=b,this.isLoaded=!0,!0},add:function(a,b,d,e,f){return b=b||[],d=d||60,void 0===e&&(e=!1),void 0===f&&(f=b&&"number"==typeof b[0]?!0:!1),this._outputFrames=[],this._frameData.getFrameIndexes(b,f,this._outputFrames),this._anims[a]=new c.Animation(this.game,this.sprite,a,this._frameData,this._outputFrames,d,e),this.currentAnim=this._anims[a],this.sprite.tilingTexture&&(this.sprite.refreshTexture=!0),this._anims[a]},validateFrames:function(a,b){void 0===b&&(b=!0);for(var c=0;cthis._frameData.total)return!1}else if(this._frameData.checkFrameName(a[c])===!1)return!1;return!0},play:function(a,b,c,d){return this._anims[a]?this.currentAnim===this._anims[a]?this.currentAnim.isPlaying===!1?(this.currentAnim.paused=!1,this.currentAnim.play(b,c,d)):this.currentAnim:(this.currentAnim&&this.currentAnim.isPlaying&&this.currentAnim.stop(),this.currentAnim=this._anims[a],this.currentAnim.paused=!1,this.currentFrame=this.currentAnim.currentFrame,this.currentAnim.play(b,c,d)):void 0},stop:function(a,b){void 0===b&&(b=!1),"string"==typeof a?this._anims[a]&&(this.currentAnim=this._anims[a],this.currentAnim.stop(b)):this.currentAnim&&this.currentAnim.stop(b)},update:function(){return this.updateIfVisible&&!this.sprite.visible?!1:this.currentAnim&&this.currentAnim.update()?(this.currentFrame=this.currentAnim.currentFrame,!0):!1},next:function(a){this.currentAnim&&(this.currentAnim.next(a),this.currentFrame=this.currentAnim.currentFrame)},previous:function(a){this.currentAnim&&(this.currentAnim.previous(a),this.currentFrame=this.currentAnim.currentFrame)},getAnimation:function(a){return"string"==typeof a&&this._anims[a]?this._anims[a]:null},refreshFrame:function(){this.sprite.setTexture(PIXI.TextureCache[this.currentFrame.uuid])},destroy:function(){var a=null;for(var a in this._anims)this._anims.hasOwnProperty(a)&&this._anims[a].destroy();this._anims={},this._outputFrames=[],this._frameData=null,this.currentAnim=null,this.currentFrame=null,this.sprite=null,this.game=null}},c.AnimationManager.prototype.constructor=c.AnimationManager,Object.defineProperty(c.AnimationManager.prototype,"frameData",{get:function(){return this._frameData}}),Object.defineProperty(c.AnimationManager.prototype,"frameTotal",{get:function(){return this._frameData.total}}),Object.defineProperty(c.AnimationManager.prototype,"paused",{get:function(){return this.currentAnim.isPaused},set:function(a){this.currentAnim.paused=a}}),Object.defineProperty(c.AnimationManager.prototype,"name",{get:function(){return this.currentAnim?this.currentAnim.name:void 0}}),Object.defineProperty(c.AnimationManager.prototype,"frame",{get:function(){return this.currentFrame?this.currentFrame.index:void 0},set:function(a){"number"==typeof a&&this._frameData&&null!==this._frameData.getFrame(a)&&(this.currentFrame=this._frameData.getFrame(a),this.currentFrame&&this.sprite.setFrame(this.currentFrame))}}),Object.defineProperty(c.AnimationManager.prototype,"frameName",{get:function(){return this.currentFrame?this.currentFrame.name:void 0},set:function(a){"string"==typeof a&&this._frameData&&null!==this._frameData.getFrameByName(a)?(this.currentFrame=this._frameData.getFrameByName(a),this.currentFrame&&(this._frameIndex=this.currentFrame.index,this.sprite.setFrame(this.currentFrame))):console.warn("Cannot set frameName: "+a)}}),c.Animation=function(a,b,d,e,f,g,h){void 0===h&&(h=!1),this.game=a,this._parent=b,this._frameData=e,this.name=d,this._frames=[],this._frames=this._frames.concat(f),this.delay=1e3/g,this.loop=h,this.loopCount=0,this.killOnComplete=!1,this.isFinished=!1,this.isPlaying=!1,this.isPaused=!1,this._pauseStartTime=0,this._frameIndex=0,this._frameDiff=0,this._frameSkip=1,this.currentFrame=this._frameData.getFrame(this._frames[this._frameIndex]),this.onStart=new c.Signal,this.onUpdate=null,this.onComplete=new c.Signal,this.onLoop=new c.Signal,this.game.onPause.add(this.onPause,this),this.game.onResume.add(this.onResume,this)},c.Animation.prototype={play:function(a,b,c){return"number"==typeof a&&(this.delay=1e3/a),"boolean"==typeof b&&(this.loop=b),"undefined"!=typeof c&&(this.killOnComplete=c),this.isPlaying=!0,this.isFinished=!1,this.paused=!1,this.loopCount=0,this._timeLastFrame=this.game.time.time,this._timeNextFrame=this.game.time.time+this.delay,this._frameIndex=0,this.updateCurrentFrame(!1,!0),this._parent.events.onAnimationStart$dispatch(this._parent,this),this.onStart.dispatch(this._parent,this),this._parent.animations.currentAnim=this,this._parent.animations.currentFrame=this.currentFrame,this},restart:function(){this.isPlaying=!0,this.isFinished=!1,this.paused=!1,this.loopCount=0,this._timeLastFrame=this.game.time.time,this._timeNextFrame=this.game.time.time+this.delay,this._frameIndex=0,this.currentFrame=this._frameData.getFrame(this._frames[this._frameIndex]),this._parent.setFrame(this.currentFrame),this._parent.animations.currentAnim=this,this._parent.animations.currentFrame=this.currentFrame,this.onStart.dispatch(this._parent,this)},setFrame:function(a,b){var c;if(void 0===b&&(b=!1),"string"==typeof a)for(var d=0;d=this._timeNextFrame?(this._frameSkip=1,this._frameDiff=this.game.time.time-this._timeNextFrame,this._timeLastFrame=this.game.time.time,this._frameDiff>this.delay&&(this._frameSkip=Math.floor(this._frameDiff/this.delay),this._frameDiff-=this._frameSkip*this.delay),this._timeNextFrame=this.game.time.time+(this.delay-this._frameDiff),this._frameIndex+=this._frameSkip,this._frameIndex>=this._frames.length?this.loop?(this._frameIndex%=this._frames.length,this.currentFrame=this._frameData.getFrame(this._frames[this._frameIndex]),this.currentFrame&&this._parent.setFrame(this.currentFrame),this.loopCount++,this._parent.events.onAnimationLoop$dispatch(this._parent,this),this.onLoop.dispatch(this._parent,this),this.onUpdate?(this.onUpdate.dispatch(this,this.currentFrame),!!this._frameData):!0):(this.complete(),!1):this.updateCurrentFrame(!0)):!1},updateCurrentFrame:function(a,b){if(void 0===b&&(b=!1),!this._frameData)return!1;var c=this.currentFrame.index;return this.currentFrame=this._frameData.getFrame(this._frames[this._frameIndex]),this.currentFrame&&(b||!b&&c!==this.currentFrame.index)&&this._parent.setFrame(this.currentFrame),this.onUpdate&&a?(this.onUpdate.dispatch(this,this.currentFrame),!!this._frameData):!0},next:function(a){void 0===a&&(a=1);var b=this._frameIndex+a;b>=this._frames.length&&(this.loop?b%=this._frames.length:b=this._frames.length-1),b!==this._frameIndex&&(this._frameIndex=b,this.updateCurrentFrame(!0))},previous:function(a){void 0===a&&(a=1);var b=this._frameIndex-a;0>b&&(this.loop?b=this._frames.length+b:b++),b!==this._frameIndex&&(this._frameIndex=b,this.updateCurrentFrame(!0))},updateFrameData:function(a){this._frameData=a,this.currentFrame=this._frameData?this._frameData.getFrame(this._frames[this._frameIndex%this._frames.length]):null},destroy:function(){this._frameData&&(this.game.onPause.remove(this.onPause,this),this.game.onResume.remove(this.onResume,this),this.game=null,this._parent=null,this._frames=null,this._frameData=null,this.currentFrame=null,this.isPlaying=!1,this.onStart.dispose(),this.onLoop.dispose(),this.onComplete.dispose(),this.onUpdate&&this.onUpdate.dispose())},complete:function(){this._frameIndex=this._frames.length-1,this.currentFrame=this._frameData.getFrame(this._frames[this._frameIndex]),this.isPlaying=!1,this.isFinished=!0,this.paused=!1,this._parent.events.onAnimationComplete$dispatch(this._parent,this),this.onComplete.dispatch(this._parent,this),this.killOnComplete&&this._parent.kill()}},c.Animation.prototype.constructor=c.Animation,Object.defineProperty(c.Animation.prototype,"paused",{get:function(){return this.isPaused},set:function(a){this.isPaused=a,a?this._pauseStartTime=this.game.time.time:this.isPlaying&&(this._timeNextFrame=this.game.time.time+this.delay)}}),Object.defineProperty(c.Animation.prototype,"frameTotal",{get:function(){return this._frames.length}}),Object.defineProperty(c.Animation.prototype,"frame",{get:function(){return null!==this.currentFrame?this.currentFrame.index:this._frameIndex},set:function(a){this.currentFrame=this._frameData.getFrame(this._frames[a]),null!==this.currentFrame&&(this._frameIndex=a,this._parent.setFrame(this.currentFrame),this.onUpdate&&this.onUpdate.dispatch(this,this.currentFrame))}}),Object.defineProperty(c.Animation.prototype,"speed",{get:function(){return Math.round(1e3/this.delay)},set:function(a){a>=1&&(this.delay=1e3/a)}}),Object.defineProperty(c.Animation.prototype,"enableUpdate",{get:function(){return null!==this.onUpdate},set:function(a){a&&null===this.onUpdate?this.onUpdate=new c.Signal:a||null===this.onUpdate||(this.onUpdate.dispose(),this.onUpdate=null)}}),c.Animation.generateFrameNames=function(a,b,d,e,f){void 0===e&&(e="");var g=[],h="";if(d>b)for(var i=b;d>=i;i++)h="number"==typeof f?c.Utils.pad(i.toString(),f,"0",1):i.toString(),h=a+h+e,g.push(h);else for(var i=b;i>=d;i--)h="number"==typeof f?c.Utils.pad(i.toString(),f,"0",1):i.toString(),h=a+h+e,g.push(h);return g},c.Frame=function(a,b,d,e,f,g){this.index=a,this.x=b,this.y=d,this.width=e,this.height=f,this.name=g,this.centerX=Math.floor(e/2),this.centerY=Math.floor(f/2),this.distance=c.Math.distance(0,0,e,f),this.rotated=!1,this.rotationDirection="cw",this.trimmed=!1,this.sourceSizeW=e,this.sourceSizeH=f,this.spriteSourceSizeX=0,this.spriteSourceSizeY=0,this.spriteSourceSizeW=0,this.spriteSourceSizeH=0,this.right=this.x+this.width,this.bottom=this.y+this.height},c.Frame.prototype={resize:function(a,b){this.width=a,this.height=b,this.centerX=Math.floor(a/2),this.centerY=Math.floor(b/2),this.distance=c.Math.distance(0,0,a,b),this.sourceSizeW=a,this.sourceSizeH=b,this.right=this.x+a,this.bottom=this.y+b},setTrim:function(a,b,c,d,e,f,g){this.trimmed=a,a&&(this.sourceSizeW=b,this.sourceSizeH=c,this.centerX=Math.floor(b/2),this.centerY=Math.floor(c/2),this.spriteSourceSizeX=d,this.spriteSourceSizeY=e,this.spriteSourceSizeW=f,this.spriteSourceSizeH=g)},clone:function(){var a=new c.Frame(this.index,this.x,this.y,this.width,this.height,this.name);for(var b in this)this.hasOwnProperty(b)&&(a[b]=this[b]);return a},getRect:function(a){return void 0===a?a=new c.Rectangle(this.x,this.y,this.width,this.height):a.setTo(this.x,this.y,this.width,this.height),a}},c.Frame.prototype.constructor=c.Frame,c.FrameData=function(){this._frames=[],this._frameNames=[]},c.FrameData.prototype={addFrame:function(a){return a.index=this._frames.length,this._frames.push(a),""!==a.name&&(this._frameNames[a.name]=a.index),a},getFrame:function(a){return a>=this._frames.length&&(a=0),this._frames[a]},getFrameByName:function(a){return"number"==typeof this._frameNames[a]?this._frames[this._frameNames[a]]:null},checkFrameName:function(a){return null==this._frameNames[a]?!1:!0},clone:function(){for(var a=new c.FrameData,b=0;b=d;d++)c.push(this._frames[d]);return c},getFrames:function(a,b,c){if(void 0===b&&(b=!0),void 0===c&&(c=[]),void 0===a||0===a.length)for(var d=0;d=d&&(d=Math.floor(-j/Math.min(-1,d))),0>=e&&(e=Math.floor(-k/Math.min(-1,e)));var l=Math.floor((j-g)/(d+h)),m=Math.floor((k-g)/(e+h)),n=l*m;if(-1!==f&&(n=f),0===j||0===k||d>j||e>k||0===n)return console.warn("Phaser.AnimationParser.spriteSheet: '"+b+"'s width/height zero or width/height < given frameWidth/frameHeight"),null;for(var o=new c.FrameData,p=g,q=g,r=0;n>r;r++)o.addFrame(new c.Frame(r,p,q,d,e,"")),p+=d+h,p+d>j&&(p=g,q+=e+h);return o},JSONData:function(a,b){if(!b.frames)return console.warn("Phaser.AnimationParser.JSONData: Invalid Texture Atlas JSON given, missing 'frames' array"),void console.log(b);for(var d,e=new c.FrameData,f=b.frames,g=0;g tag");for(var d,e,f,g,h,i,j,k,l,m,n,o=new c.FrameData,p=b.getElementsByTagName("SubTexture"),q=0;q-1},getAssetIndex:function(a,b){for(var c=-1,d=0;d-1?{index:c,file:this._fileList[c]}:!1},reset:function(a,b){void 0===b&&(b=!1),this.resetLocked||(a&&(this.preloadSprite=null),this.isLoading=!1,this._processingHead=0,this._fileList.length=0,this._flightQueue.length=0,this._fileLoadStarted=!1,this._totalFileCount=0,this._totalPackCount=0,this._loadedPackCount=0,this._loadedFileCount=0,b&&(this.onLoadStart.removeAll(),this.onLoadComplete.removeAll(),this.onPackComplete.removeAll(),this.onFileStart.removeAll(),this.onFileComplete.removeAll(),this.onFileError.removeAll()))},addToFileList:function(a,b,c,d,e,f){if(void 0===e&&(e=!1),void 0===b||""===b)return console.warn("Phaser.Loader: Invalid or no key given of type "+a),this;if(void 0===c||null===c){if(!f)return console.warn("Phaser.Loader: No URL given for file type: "+a+" key: "+b),this;c=b+f}var g={type:a,key:b,path:this.path,url:c,syncPoint:this._withSyncPointDepth>0,data:null,loading:!1,loaded:!1,error:!1};if(d)for(var h in d)g[h]=d[h];var i=this.getAssetIndex(a,b);if(e&&i>-1){var j=this._fileList[i];j.loading||j.loaded?(this._fileList.push(g),this._totalFileCount++):this._fileList[i]=g}else-1===i&&(this._fileList.push(g),this._totalFileCount++);return this},replaceInFileList:function(a,b,c,d){return this.addToFileList(a,b,c,d,!0)},pack:function(a,b,c,d){if(void 0===b&&(b=null),void 0===c&&(c=null),void 0===d&&(d=null),!b&&!c)return console.warn("Phaser.Loader.pack - Both url and data are null. One must be set."),this;var e={type:"packfile",key:a,url:b,path:this.path,syncPoint:!0,data:null,loading:!1,loaded:!1,error:!1,callbackContext:d};c&&("string"==typeof c&&(c=JSON.parse(c)),e.data=c||{},e.loaded=!0);for(var f=0;f=e||d&&this._loadedPackCount===this._totalPackCount)break}if(this.updateProgress(),this._processingHead>=this._fileList.length)this.finishedLoading();else if(!this._flightQueue.length){console.warn("Phaser.Loader - aborting: processing queue empty, loading may have stalled");var f=this;setTimeout(function(){f.finishedLoading(!0)},2e3)}},finishedLoading:function(a){this.hasLoaded||(this.hasLoaded=!0,this.isLoading=!1,a||this._fileLoadStarted||(this._fileLoadStarted=!0,this.onLoadStart.dispatch()),this.onLoadComplete.dispatch(),this.reset(),this.game.state.loadComplete())},asyncComplete:function(a,b){void 0===b&&(b=""),a.loaded=!0,a.error=!!b,b&&(a.errorMessage=b,console.warn("Phaser.Loader - "+a.type+"["+a.key+"]: "+b)),this.processLoadQueue()},processPack:function(a){var b=a.data[a.key];if(!b)return void console.warn("Phaser.Loader - "+a.key+": pack has data, but not for pack key");for(var d=0;d=10)||(this._warnedAboutXDomainRequest=!0,console.warn("Phaser.Loader - using XDomainRequest outside of IE 9"));var f=new window.XDomainRequest;f.open("GET",b,!0),f.responseType=c,f.timeout=3e3,e=e||this.fileError;var g=this;f.onerror=function(){try{return e.call(g,a,f)}catch(b){g.asyncComplete(a,b.message||"Exception")}},f.ontimeout=function(){try{return e.call(g,a,f)}catch(b){g.asyncComplete(a,b.message||"Exception")}},f.onprogress=function(){},f.onload=function(){try{return d.call(g,a,f)}catch(b){g.asyncComplete(a,b.message||"Exception")}},a.requestObject=f,a.requestUrl=b,setTimeout(function(){f.send()},0)},getVideoURL:function(a){for(var b=0;b=0&&(d=d.substr(0,d.indexOf("?")));var e=d.substr((Math.max(0,d.lastIndexOf("."))||1/0)+1);c=e.toLowerCase()}if(this.game.device.canPlayVideo(c))return a[b]}return null},getAudioURL:function(a){if(this.game.sound.noAudio)return null;for(var b=0;b=0&&(d=d.substr(0,d.indexOf("?")));var e=d.substr((Math.max(0,d.lastIndexOf("."))||1/0)+1);c=e.toLowerCase()}if(this.game.device.canPlayAudio(c))return a[b]}return null},fileError:function(a,b,c){var d=a.requestUrl||this.transformUrl(a.url,a),e="error loading asset from URL "+d;!c&&b&&(c=b.status),c&&(e=e+" ("+c+")"),this.asyncComplete(a,e)},fileComplete:function(a,b){var d=!0;switch(a.type){case"packfile":var e=JSON.parse(b.responseText);a.data=e||{};break;case"image":this.cache.addImage(a.key,a.url,a.data);break;case"spritesheet":this.cache.addSpriteSheet(a.key,a.url,a.data,a.frameWidth,a.frameHeight,a.frameMax,a.margin,a.spacing);break;case"textureatlas":if(null==a.atlasURL)this.cache.addTextureAtlas(a.key,a.url,a.data,a.atlasData,a.format);else if(d=!1,a.format==c.Loader.TEXTURE_ATLAS_JSON_ARRAY||a.format==c.Loader.TEXTURE_ATLAS_JSON_HASH)this.xhrLoad(a,this.transformUrl(a.atlasURL,a),"text",this.jsonLoadComplete);else{if(a.format!=c.Loader.TEXTURE_ATLAS_XML_STARLING)throw new Error("Phaser.Loader. Invalid Texture Atlas format: "+a.format);this.xhrLoad(a,this.transformUrl(a.atlasURL,a),"text",this.xmlLoadComplete)}break;case"bitmapfont":a.atlasURL?(d=!1,this.xhrLoad(a,this.transformUrl(a.atlasURL,a),"text",function(a,b){var c;try{c=JSON.parse(b.responseText)}catch(d){}c?(a.atlasType="json",this.jsonLoadComplete(a,b)):(a.atlasType="xml",this.xmlLoadComplete(a,b))})):this.cache.addBitmapFont(a.key,a.url,a.data,a.atlasData,a.atlasType,a.xSpacing,a.ySpacing);break;case"video":if(a.asBlob)try{a.data=new Blob([new Uint8Array(b.response)])}catch(f){throw new Error("Phaser.Loader. Unable to parse video file as Blob: "+a.key)}this.cache.addVideo(a.key,a.url,a.data,a.asBlob);break;case"audio":this.game.sound.usingWebAudio?(a.data=b.response,this.cache.addSound(a.key,a.url,a.data,!0,!1),a.autoDecode&&this.game.sound.decode(a.key)):this.cache.addSound(a.key,a.url,a.data,!1,!0);break;case"text":a.data=b.responseText,this.cache.addText(a.key,a.url,a.data);break;case"shader":a.data=b.responseText,this.cache.addShader(a.key,a.url,a.data);break;case"physics":var e=JSON.parse(b.responseText);this.cache.addPhysicsData(a.key,a.url,e,a.format);break;case"script":a.data=document.createElement("script"),a.data.language="javascript",a.data.type="text/javascript",a.data.defer=!1,a.data.text=b.responseText,document.head.appendChild(a.data),a.callback&&(a.data=a.callback.call(a.callbackContext,a.key,b.responseText));break;case"binary":a.data=a.callback?a.callback.call(a.callbackContext,a.key,b.response):b.response,this.cache.addBinary(a.key,a.data)}d&&this.asyncComplete(a)},jsonLoadComplete:function(a,b){var c=JSON.parse(b.responseText);"tilemap"===a.type?this.cache.addTilemap(a.key,a.url,c,a.format):"bitmapfont"===a.type?this.cache.addBitmapFont(a.key,a.url,a.data,c,a.atlasType,a.xSpacing,a.ySpacing):"json"===a.type?this.cache.addJSON(a.key,a.url,c):this.cache.addTextureAtlas(a.key,a.url,a.data,c,a.format),this.asyncComplete(a)},csvLoadComplete:function(a,b){var c=b.responseText;this.cache.addTilemap(a.key,a.url,c,a.format),this.asyncComplete(a)},xmlLoadComplete:function(a,b){var c=b.responseText,d=this.parseXml(c);if(!d){var e=b.responseType||b.contentType;return console.warn("Phaser.Loader - "+a.key+": invalid XML ("+e+")"),void this.asyncComplete(a,"invalid XML")}"bitmapfont"===a.type?this.cache.addBitmapFont(a.key,a.url,a.data,d,a.atlasType,a.xSpacing,a.ySpacing):"textureatlas"===a.type?this.cache.addTextureAtlas(a.key,a.url,a.data,d,a.format):"xml"===a.type&&this.cache.addXML(a.key,a.url,d),this.asyncComplete(a)},parseXml:function(a){var b;try{if(window.DOMParser){var c=new DOMParser;b=c.parseFromString(a,"text/xml")}else b=new ActiveXObject("Microsoft.XMLDOM"),b.async="false",b.loadXML(a)}catch(d){b=null}return b&&b.documentElement&&!b.getElementsByTagName("parsererror").length?b:null},updateProgress:function(){this.preloadSprite&&(0===this.preloadSprite.direction?this.preloadSprite.rect.width=Math.floor(this.preloadSprite.width/100*this.progress):this.preloadSprite.rect.height=Math.floor(this.preloadSprite.height/100*this.progress),this.preloadSprite.sprite?this.preloadSprite.sprite.updateCrop():this.preloadSprite=null)},totalLoadedFiles:function(){return this._loadedFileCount},totalQueuedFiles:function(){return this._totalFileCount-this._loadedFileCount},totalLoadedPacks:function(){return this._totalPackCount},totalQueuedPacks:function(){return this._totalPackCount-this._loadedPackCount}},Object.defineProperty(c.Loader.prototype,"progressFloat",{get:function(){var a=this._loadedFileCount/this._totalFileCount*100;return c.Math.clamp(a||0,0,100)}}),Object.defineProperty(c.Loader.prototype,"progress",{get:function(){return Math.round(this.progressFloat)}}),c.Loader.prototype.constructor=c.Loader,c.LoaderParser={bitmapFont:function(a,b,c,d){return this.xmlBitmapFont(a,b,c,d)},xmlBitmapFont:function(a,b,c,d){var e={},f=a.getElementsByTagName("info")[0],g=a.getElementsByTagName("common")[0];e.font=f.getAttribute("face"),e.size=parseInt(f.getAttribute("size"),10),e.lineHeight=parseInt(g.getAttribute("lineHeight"),10)+d,e.chars={};for(var h=a.getElementsByTagName("char"),i=0;i-1},reset:function(){this.list.length=0},remove:function(a){var b=this.list.indexOf(a);return b>-1?(this.list.splice(b,1),a):void 0},setAll:function(a,b){for(var c=this.list.length;c--;)this.list[c]&&(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)},removeAll:function(a){void 0===a&&(a=!1);for(var b=this.list.length;b--;)if(this.list[b]){var c=this.remove(this.list[b]);a&&c.destroy()}this.position=0,this.list=[]}},Object.defineProperty(c.ArraySet.prototype,"total",{get:function(){return this.list.length}}),Object.defineProperty(c.ArraySet.prototype,"first",{get:function(){return this.position=0,this.list.length>0?this.list[0]:null}}),Object.defineProperty(c.ArraySet.prototype,"next",{get:function(){return this.position0;b--){var c=Math.floor(Math.random()*(b+1)),d=a[b];a[b]=a[c],a[c]=d}return a},transposeMatrix:function(a){for(var b=a.length,c=a[0].length,d=new Array(c),e=0;c>e;e++){d[e]=new Array(b);for(var f=b-1;f>-1;f--)d[e][f]=a[f][e]}return d},rotateMatrix:function(a,b){if("string"!=typeof b&&(b=(b%360+360)%360),90===b||-270===b||"rotateLeft"===b)a=c.ArrayUtils.transposeMatrix(a),a=a.reverse();else if(-90===b||270===b||"rotateRight"===b)a=a.reverse(),a=c.ArrayUtils.transposeMatrix(a);else if(180===Math.abs(b)||"rotate180"===b){for(var d=0;d=e-a?e:d},rotate:function(a){var b=a.shift();return a.push(b),b},numberArray:function(a,b){for(var c=[],d=a;b>=d;d++)c.push(d);return c},numberArrayStep:function(a,b,d){a=+a||0;var e=typeof b;"number"!==e&&"string"!==e||!d||d[b]!==a||(b=d=null),d=null==d?1:+d||0,null===b?(b=a,a=0):b=+b||0;for(var f=-1,g=Math.max(c.Math.roundAwayFromZero((b-a)/(d||1)),0),h=new Array(g);++f>>0:(a<<24|b<<16|d<<8|e)>>>0},unpackPixel:function(a,b,d,e){return(void 0===b||null===b)&&(b=c.Color.createColor()),(void 0===d||null===d)&&(d=!1),(void 0===e||null===e)&&(e=!1),c.Device.LITTLE_ENDIAN?(b.a=(4278190080&a)>>>24,b.b=(16711680&a)>>>16,b.g=(65280&a)>>>8,b.r=255&a):(b.r=(4278190080&a)>>>24,b.g=(16711680&a)>>>16,b.b=(65280&a)>>>8,b.a=255&a),b.color=a,b.rgba="rgba("+b.r+","+b.g+","+b.b+","+b.a/255+")",d&&c.Color.RGBtoHSL(b.r,b.g,b.b,b),e&&c.Color.RGBtoHSV(b.r,b.g,b.b,b),b},fromRGBA:function(a,b){return b||(b=c.Color.createColor()),b.r=(4278190080&a)>>>24,b.g=(16711680&a)>>>16,b.b=(65280&a)>>>8,b.a=255&a,b.rgba="rgba("+b.r+","+b.g+","+b.b+","+b.a+")",b},toRGBA:function(a,b,c,d){return a<<24|b<<16|c<<8|d},RGBtoHSL:function(a,b,d,e){e||(e=c.Color.createColor(a,b,d,1)),a/=255,b/=255,d/=255;var f=Math.min(a,b,d),g=Math.max(a,b,d);if(e.h=0,e.s=0,e.l=(g+f)/2,g!==f){var h=g-f;e.s=e.l>.5?h/(2-g-f):h/(g+f),g===a?e.h=(b-d)/h+(d>b?6:0):g===b?e.h=(d-a)/h+2:g===d&&(e.h=(a-b)/h+4),e.h/=6}return e},HSLtoRGB:function(a,b,d,e){if(e?(e.r=d,e.g=d,e.b=d):e=c.Color.createColor(d,d,d),0!==b){var f=.5>d?d*(1+b):d+b-d*b,g=2*d-f;e.r=c.Color.hueToColor(g,f,a+1/3),e.g=c.Color.hueToColor(g,f,a),e.b=c.Color.hueToColor(g,f,a-1/3)}return e.r=Math.floor(255*e.r|0),e.g=Math.floor(255*e.g|0),e.b=Math.floor(255*e.b|0),c.Color.updateColor(e),e},RGBtoHSV:function(a,b,d,e){e||(e=c.Color.createColor(a,b,d,255)),a/=255,b/=255,d/=255;var f=Math.min(a,b,d),g=Math.max(a,b,d),h=g-f;return e.h=0,e.s=0===g?0:h/g,e.v=g,g!==f&&(g===a?e.h=(b-d)/h+(d>b?6:0):g===b?e.h=(d-a)/h+2:g===d&&(e.h=(a-b)/h+4),e.h/=6),e},HSVtoRGB:function(a,b,d,e){void 0===e&&(e=c.Color.createColor(0,0,0,1,a,b,0,d));var f,g,h,i=Math.floor(6*a),j=6*a-i,k=d*(1-b),l=d*(1-j*b),m=d*(1-(1-j)*b);switch(i%6){case 0:f=d,g=m,h=k;break;case 1:f=l,g=d,h=k;break;case 2:f=k,g=d,h=m;break;case 3:f=k,g=l,h=d;break;case 4:f=m,g=k,h=d;break;case 5:f=d,g=k,h=l}return e.r=Math.floor(255*f),e.g=Math.floor(255*g),e.b=Math.floor(255*h),c.Color.updateColor(e),e},hueToColor:function(a,b,c){return 0>c&&(c+=1),c>1&&(c-=1),1/6>c?a+6*(b-a)*c:.5>c?b:2/3>c?a+(b-a)*(2/3-c)*6:a},createColor:function(a,b,d,e,f,g,h,i){var j={r:a||0,g:b||0,b:d||0,a:e||1,h:f||0,s:g||0,l:h||0,v:i||0,color:0,color32:0,rgba:""};return c.Color.updateColor(j)},updateColor:function(a){return a.rgba="rgba("+a.r.toString()+","+a.g.toString()+","+a.b.toString()+","+a.a.toString()+")",a.color=c.Color.getColor(a.r,a.g,a.b),a.color32=c.Color.getColor32(a.a,a.r,a.g,a.b),a},getColor32:function(a,b,c,d){return a<<24|b<<16|c<<8|d},getColor:function(a,b,c){return a<<16|b<<8|c},RGBtoString:function(a,b,d,e,f){return void 0===e&&(e=255),void 0===f&&(f="#"),"#"===f?"#"+((1<<24)+(a<<16)+(b<<8)+d).toString(16).slice(1):"0x"+c.Color.componentToHex(e)+c.Color.componentToHex(a)+c.Color.componentToHex(b)+c.Color.componentToHex(d)},hexToRGB:function(a){var b=c.Color.hexToColor(a);return b?c.Color.getColor32(b.a,b.r,b.g,b.b):void 0},hexToColor:function(a,b){a=a.replace(/^(?:#|0x)?([a-f\d])([a-f\d])([a-f\d])$/i,function(a,b,c,d){return b+b+c+c+d+d});var d=/^(?:#|0x)?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i.exec(a);if(d){var e=parseInt(d[1],16),f=parseInt(d[2],16),g=parseInt(d[3],16);b?(b.r=e,b.g=f,b.b=g):b=c.Color.createColor(e,f,g)}return b},webToColor:function(a,b){b||(b=c.Color.createColor());var d=/^rgba?\(\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d+)\s*(?:,\s*(\d+(?:\.\d+)?))?\s*\)$/.exec(a);return d&&(b.r=parseInt(d[1],10),b.g=parseInt(d[2],10),b.b=parseInt(d[3],10),b.a=void 0!==d[4]?parseFloat(d[4]):1,c.Color.updateColor(b)),b},valueToColor:function(a,b){if(b||(b=c.Color.createColor()),"string"==typeof a)return 0===a.indexOf("rgb")?c.Color.webToColor(a,b):(b.a=1,c.Color.hexToColor(a,b));if("number"==typeof a){var d=c.Color.getRGB(a);return b.r=d.r,b.g=d.g,b.b=d.b,b.a=d.a/255,b}return b},componentToHex:function(a){var b=a.toString(16);return 1==b.length?"0"+b:b},HSVColorWheel:function(a,b){void 0===a&&(a=1),void 0===b&&(b=1);for(var d=[],e=0;359>=e;e++)d.push(c.Color.HSVtoRGB(e/359,a,b));return d},HSLColorWheel:function(a,b){void 0===a&&(a=.5),void 0===b&&(b=.5);for(var d=[],e=0;359>=e;e++)d.push(c.Color.HSLtoRGB(e/359,a,b));return d},interpolateColor:function(a,b,d,e,f){void 0===f&&(f=255);var g=c.Color.getRGB(a),h=c.Color.getRGB(b),i=(h.red-g.red)*e/d+g.red,j=(h.green-g.green)*e/d+g.green,k=(h.blue-g.blue)*e/d+g.blue;return c.Color.getColor32(f,i,j,k)},interpolateColorWithRGB:function(a,b,d,e,f,g){var h=c.Color.getRGB(a),i=(b-h.red)*g/f+h.red,j=(d-h.green)*g/f+h.green,k=(e-h.blue)*g/f+h.blue;return c.Color.getColor(i,j,k)},interpolateRGB:function(a,b,d,e,f,g,h,i){var j=(e-a)*i/h+a,k=(f-b)*i/h+b,l=(g-d)*i/h+d;return c.Color.getColor(j,k,l)},getRandomColor:function(a,b,d){if(void 0===a&&(a=0),void 0===b&&(b=255),void 0===d&&(d=255),b>255||a>b)return c.Color.getColor(255,255,255);var e=a+Math.round(Math.random()*(b-a)),f=a+Math.round(Math.random()*(b-a)),g=a+Math.round(Math.random()*(b-a));return c.Color.getColor32(d,e,f,g)},getRGB:function(a){return a>16777215?{alpha:a>>>24,red:a>>16&255,green:a>>8&255,blue:255&a,a:a>>>24,r:a>>16&255,g:a>>8&255,b:255&a}:{alpha:255,red:a>>16&255,green:a>>8&255,blue:255&a,a:255,r:a>>16&255,g:a>>8&255,b:255&a}},getWebRGB:function(a){if("object"==typeof a)return"rgba("+a.r.toString()+","+a.g.toString()+","+a.b.toString()+","+(a.a/255).toString()+")";var b=c.Color.getRGB(a);return"rgba("+b.r.toString()+","+b.g.toString()+","+b.b.toString()+","+(b.a/255).toString()+")"},getAlpha:function(a){return a>>>24},getAlphaFloat:function(a){return(a>>>24)/255},getRed:function(a){return a>>16&255},getGreen:function(a){return a>>8&255},getBlue:function(a){return 255&a},blendNormal:function(a){return a},blendLighten:function(a,b){return b>a?b:a},blendDarken:function(a,b){return b>a?a:b},blendMultiply:function(a,b){return a*b/255},blendAverage:function(a,b){return(a+b)/2},blendAdd:function(a,b){return Math.min(255,a+b)},blendSubtract:function(a,b){return Math.max(0,a+b-255)},blendDifference:function(a,b){return Math.abs(a-b)},blendNegation:function(a,b){return 255-Math.abs(255-a-b)},blendScreen:function(a,b){return 255-((255-a)*(255-b)>>8)},blendExclusion:function(a,b){return a+b-2*a*b/255},blendOverlay:function(a,b){return 128>b?2*a*b/255:255-2*(255-a)*(255-b)/255},blendSoftLight:function(a,b){return 128>b?2*((a>>1)+64)*(b/255):255-2*(255-((a>>1)+64))*(255-b)/255},blendHardLight:function(a,b){return c.Color.blendOverlay(b,a)},blendColorDodge:function(a,b){return 255===b?b:Math.min(255,(a<<8)/(255-b))},blendColorBurn:function(a,b){return 0===b?b:Math.max(0,255-(255-a<<8)/b)},blendLinearDodge:function(a,b){return c.Color.blendAdd(a,b)},blendLinearBurn:function(a,b){return c.Color.blendSubtract(a,b)},blendLinearLight:function(a,b){return 128>b?c.Color.blendLinearBurn(a,2*b):c.Color.blendLinearDodge(a,2*(b-128))},blendVividLight:function(a,b){return 128>b?c.Color.blendColorBurn(a,2*b):c.Color.blendColorDodge(a,2*(b-128))},blendPinLight:function(a,b){return 128>b?c.Color.blendDarken(a,2*b):c.Color.blendLighten(a,2*(b-128))},blendHardMix:function(a,b){return c.Color.blendVividLight(a,b)<128?0:255},blendReflect:function(a,b){return 255===b?b:Math.min(255,a*a/(255-b))},blendGlow:function(a,b){return c.Color.blendReflect(b,a)},blendPhoenix:function(a,b){return Math.min(a,b)-Math.max(a,b)+255}},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.Physics=function(a,b){b=b||{},this.game=a,this.config=b,this.arcade=null,this.p2=null,this.ninja=null,this.box2d=null,this.chipmunk=null,this.matter=null,this.parseConfig()},c.Physics.ARCADE=0,c.Physics.P2JS=1,c.Physics.NINJA=2,c.Physics.BOX2D=3,c.Physics.CHIPMUNK=4,c.Physics.MATTERJS=5,c.Physics.prototype={parseConfig:function(){this.config.hasOwnProperty("arcade")&&this.config.arcade!==!0||!c.Physics.hasOwnProperty("Arcade")||(this.arcade=new c.Physics.Arcade(this.game)),this.config.hasOwnProperty("ninja")&&this.config.ninja===!0&&c.Physics.hasOwnProperty("Ninja")&&(this.ninja=new c.Physics.Ninja(this.game)),this.config.hasOwnProperty("p2")&&this.config.p2===!0&&c.Physics.hasOwnProperty("P2")&&(this.p2=new c.Physics.P2(this.game,this.config)),this.config.hasOwnProperty("box2d")&&this.config.box2d===!0&&c.Physics.hasOwnProperty("BOX2D")&&(this.box2d=new c.Physics.BOX2D(this.game,this.config)),this.config.hasOwnProperty("matter")&&this.config.matter===!0&&c.Physics.hasOwnProperty("Matter")&&(this.matter=new c.Physics.Matter(this.game,this.config))},startSystem:function(a){a===c.Physics.ARCADE?this.arcade=new c.Physics.Arcade(this.game):a===c.Physics.P2JS?null===this.p2?this.p2=new c.Physics.P2(this.game,this.config):this.p2.reset():a===c.Physics.NINJA?this.ninja=new c.Physics.Ninja(this.game):a===c.Physics.BOX2D?null===this.box2d?this.box2d=new c.Physics.Box2D(this.game,this.config):this.box2d.reset():a===c.Physics.MATTERJS&&(null===this.matter?this.matter=new c.Physics.Matter(this.game,this.config):this.matter.reset())},enable:function(a,b,d){void 0===b&&(b=c.Physics.ARCADE),void 0===d&&(d=!1),b===c.Physics.ARCADE?this.arcade.enable(a):b===c.Physics.P2JS&&this.p2?this.p2.enable(a,d):b===c.Physics.NINJA&&this.ninja?this.ninja.enableAABB(a):b===c.Physics.BOX2D&&this.box2d?this.box2d.enable(a):b===c.Physics.MATTERJS&&this.matter&&this.matter.enable(a)},preUpdate:function(){this.p2&&this.p2.preUpdate(),this.box2d&&this.box2d.preUpdate(),this.matter&&this.matter.preUpdate()},update:function(){this.p2&&this.p2.update(),this.box2d&&this.box2d.update(),this.matter&&this.matter.update()},setBoundsToWorld:function(){this.arcade&&this.arcade.setBoundsToWorld(),this.ninja&&this.ninja.setBoundsToWorld(),this.p2&&this.p2.setBoundsToWorld(),this.box2d&&this.box2d.setBoundsToWorld(),this.matter&&this.matter.setBoundsToWorld()},clear:function(){this.p2&&this.p2.clear(),this.box2d&&this.box2d.clear(),this.matter&&this.matter.clear()},reset:function(){this.p2&&this.p2.reset(),this.box2d&&this.box2d.reset(),this.matter&&this.matter.reset()},destroy:function(){this.p2&&this.p2.destroy(),this.box2d&&this.box2d.destroy(),this.matter&&this.matter.destroy(),this.arcade=null,this.ninja=null,this.p2=null,this.box2d=null,this.matter=null}},c.Physics.prototype.constructor=c.Physics,c.Particles=function(a){this.game=a,this.emitters={},this.ID=0},c.Particles.prototype={add:function(a){return this.emitters[a.name]=a,a},remove:function(a){delete this.emitters[a.name]},update:function(){for(var a in this.emitters)this.emitters[a].exists&&this.emitters[a].update()}},c.Particles.prototype.constructor=c.Particles,void 0===PIXI.blendModes&&(PIXI.blendModes=c.blendModes),void 0===PIXI.scaleModes&&(PIXI.scaleModes=c.scaleModes),void 0===PIXI.Texture.emptyTexture&&(PIXI.Texture.emptyTexture=new PIXI.Texture(new PIXI.BaseTexture)),void 0===PIXI.DisplayObject._tempMatrix&&(PIXI.DisplayObject._tempMatrix=new PIXI.Matrix),void 0===PIXI.RenderTexture.tempMatrix&&(PIXI.RenderTexture.tempMatrix=new PIXI.Matrix),void 0===PIXI.Graphics.POLY&&(PIXI.Graphics.POLY=c.POLYGON,PIXI.Graphics.RECT=c.RECTANGLE,PIXI.Graphics.CIRC=c.CIRCLE,PIXI.Graphics.ELIP=c.ELLIPSE,PIXI.Graphics.RREC=c.ROUNDEDRECTANGLE),PIXI.TextureSilentFail=!0,"undefined"!=typeof exports?("undefined"!=typeof module&&module.exports&&(exports=module.exports=c),exports.Phaser=c):"undefined"!=typeof define&&define.amd?define("Phaser",function(){return b.Phaser=c}()):b.Phaser=c}.call(this); //# sourceMappingURL=phaser-minimum.map \ No newline at end of file diff --git a/build/custom/phaser-no-physics.js b/build/custom/phaser-no-physics.js index 116436dd7..62d3f4bcf 100644 --- a/build/custom/phaser-no-physics.js +++ b/build/custom/phaser-no-physics.js @@ -7,7 +7,7 @@ * * Phaser - http://phaser.io * -* v2.4.0 "Katar" - Built: Wed Jul 22 2015 15:30:31 +* v2.4.1 "Ionin Spring" - Built: Thu Jul 23 2015 16:01:54 * * By Richard Davey http://www.photonstorm.com @photonstorm * @@ -32,7 +32,7 @@ * @author Mat Groves http://matgroves.com/ @Doormat23 */ -var PIXI = (function(){ +(function(){ var root = this; @@ -9142,6 +9142,1200 @@ PIXI.AbstractFilter.prototype.apply = function(frameBuffer) // TODO :) }; */ +/** + * @author Mat Groves http://matgroves.com/ + */ + + /** + * + * @class Strip + * @extends DisplayObjectContainer + * @constructor + * @param texture {Texture} The texture to use + * @param width {Number} the width + * @param height {Number} the height + * + */ +PIXI.Strip = function(texture) +{ + PIXI.DisplayObjectContainer.call( this ); + + + /** + * The texture of the strip + * + * @property texture + * @type Texture + */ + this.texture = texture; + + // set up the main bits.. + this.uvs = new PIXI.Float32Array([0, 1, + 1, 1, + 1, 0, + 0, 1]); + + this.vertices = new PIXI.Float32Array([0, 0, + 100, 0, + 100, 100, + 0, 100]); + + this.colors = new PIXI.Float32Array([1, 1, 1, 1]); + + this.indices = new PIXI.Uint16Array([0, 1, 2, 3]); + + /** + * Whether the strip is dirty or not + * + * @property dirty + * @type Boolean + */ + this.dirty = true; + + /** + * The blend mode to be applied to the sprite. Set to PIXI.blendModes.NORMAL to remove any blend mode. + * + * @property blendMode + * @type Number + * @default PIXI.blendModes.NORMAL; + */ + this.blendMode = PIXI.blendModes.NORMAL; + + /** + * Triangles in canvas mode are automatically antialiased, use this value to force triangles to overlap a bit with each other. + * + * @property canvasPadding + * @type Number + */ + this.canvasPadding = 0; + + this.drawMode = PIXI.Strip.DrawModes.TRIANGLE_STRIP; + +}; + +// constructor +PIXI.Strip.prototype = Object.create(PIXI.DisplayObjectContainer.prototype); +PIXI.Strip.prototype.constructor = PIXI.Strip; + +PIXI.Strip.prototype._renderWebGL = function(renderSession) +{ + // if the sprite is not visible or the alpha is 0 then no need to render this element + if(!this.visible || this.alpha <= 0)return; + // render triangle strip.. + + renderSession.spriteBatch.stop(); + + // init! init! + if(!this._vertexBuffer)this._initWebGL(renderSession); + + renderSession.shaderManager.setShader(renderSession.shaderManager.stripShader); + + this._renderStrip(renderSession); + + ///renderSession.shaderManager.activateDefaultShader(); + + renderSession.spriteBatch.start(); + + //TODO check culling +}; + +PIXI.Strip.prototype._initWebGL = function(renderSession) +{ + // build the strip! + var gl = renderSession.gl; + + this._vertexBuffer = gl.createBuffer(); + this._indexBuffer = gl.createBuffer(); + this._uvBuffer = gl.createBuffer(); + this._colorBuffer = gl.createBuffer(); + + gl.bindBuffer(gl.ARRAY_BUFFER, this._vertexBuffer); + gl.bufferData(gl.ARRAY_BUFFER, this.vertices, gl.DYNAMIC_DRAW); + + gl.bindBuffer(gl.ARRAY_BUFFER, this._uvBuffer); + gl.bufferData(gl.ARRAY_BUFFER, this.uvs, gl.STATIC_DRAW); + + gl.bindBuffer(gl.ARRAY_BUFFER, this._colorBuffer); + gl.bufferData(gl.ARRAY_BUFFER, this.colors, gl.STATIC_DRAW); + + gl.bindBuffer(gl.ELEMENT_ARRAY_BUFFER, this._indexBuffer); + gl.bufferData(gl.ELEMENT_ARRAY_BUFFER, this.indices, gl.STATIC_DRAW); +}; + +PIXI.Strip.prototype._renderStrip = function(renderSession) +{ + var gl = renderSession.gl; + var projection = renderSession.projection, + offset = renderSession.offset, + shader = renderSession.shaderManager.stripShader; + + var drawMode = this.drawMode === PIXI.Strip.DrawModes.TRIANGLE_STRIP ? gl.TRIANGLE_STRIP : gl.TRIANGLES; + + // gl.uniformMatrix4fv(shaderProgram.mvMatrixUniform, false, mat4Real); + + renderSession.blendModeManager.setBlendMode(this.blendMode); + + + // set uniforms + gl.uniformMatrix3fv(shader.translationMatrix, false, this.worldTransform.toArray(true)); + gl.uniform2f(shader.projectionVector, projection.x, -projection.y); + gl.uniform2f(shader.offsetVector, -offset.x, -offset.y); + gl.uniform1f(shader.alpha, this.worldAlpha); + + if(!this.dirty) + { + + gl.bindBuffer(gl.ARRAY_BUFFER, this._vertexBuffer); + gl.bufferSubData(gl.ARRAY_BUFFER, 0, this.vertices); + gl.vertexAttribPointer(shader.aVertexPosition, 2, gl.FLOAT, false, 0, 0); + + // update the uvs + gl.bindBuffer(gl.ARRAY_BUFFER, this._uvBuffer); + gl.vertexAttribPointer(shader.aTextureCoord, 2, gl.FLOAT, false, 0, 0); + + gl.activeTexture(gl.TEXTURE0); + + // check if a texture is dirty.. + if(this.texture.baseTexture._dirty[gl.id]) + { + renderSession.renderer.updateTexture(this.texture.baseTexture); + } + else + { + // bind the current texture + gl.bindTexture(gl.TEXTURE_2D, this.texture.baseTexture._glTextures[gl.id]); + } + + // dont need to upload! + gl.bindBuffer(gl.ELEMENT_ARRAY_BUFFER, this._indexBuffer); + + + } + else + { + + this.dirty = false; + gl.bindBuffer(gl.ARRAY_BUFFER, this._vertexBuffer); + gl.bufferData(gl.ARRAY_BUFFER, this.vertices, gl.STATIC_DRAW); + gl.vertexAttribPointer(shader.aVertexPosition, 2, gl.FLOAT, false, 0, 0); + + // update the uvs + gl.bindBuffer(gl.ARRAY_BUFFER, this._uvBuffer); + gl.bufferData(gl.ARRAY_BUFFER, this.uvs, gl.STATIC_DRAW); + gl.vertexAttribPointer(shader.aTextureCoord, 2, gl.FLOAT, false, 0, 0); + + gl.activeTexture(gl.TEXTURE0); + + // check if a texture is dirty.. + if(this.texture.baseTexture._dirty[gl.id]) + { + renderSession.renderer.updateTexture(this.texture.baseTexture); + } + else + { + gl.bindTexture(gl.TEXTURE_2D, this.texture.baseTexture._glTextures[gl.id]); + } + + // dont need to upload! + gl.bindBuffer(gl.ELEMENT_ARRAY_BUFFER, this._indexBuffer); + gl.bufferData(gl.ELEMENT_ARRAY_BUFFER, this.indices, gl.STATIC_DRAW); + + } + //console.log(gl.TRIANGLE_STRIP) + // + // + gl.drawElements(drawMode, this.indices.length, gl.UNSIGNED_SHORT, 0); + + +}; + + + +PIXI.Strip.prototype._renderCanvas = function(renderSession) +{ + var context = renderSession.context; + + var transform = this.worldTransform; + + if (renderSession.roundPixels) + { + context.setTransform(transform.a, transform.b, transform.c, transform.d, transform.tx | 0, transform.ty | 0); + } + else + { + context.setTransform(transform.a, transform.b, transform.c, transform.d, transform.tx, transform.ty); + } + + if (this.drawMode === PIXI.Strip.DrawModes.TRIANGLE_STRIP) + { + this._renderCanvasTriangleStrip(context); + } + else + { + this._renderCanvasTriangles(context); + } +}; + +PIXI.Strip.prototype._renderCanvasTriangleStrip = function(context) +{ + // draw triangles!! + var vertices = this.vertices; + var uvs = this.uvs; + + var length = vertices.length / 2; + this.count++; + + for (var i = 0; i < length - 2; i++) { + // draw some triangles! + var index = i * 2; + this._renderCanvasDrawTriangle(context, vertices, uvs, index, (index + 2), (index + 4)); + } +}; + +PIXI.Strip.prototype._renderCanvasTriangles = function(context) +{ + // draw triangles!! + var vertices = this.vertices; + var uvs = this.uvs; + var indices = this.indices; + + var length = indices.length; + this.count++; + + for (var i = 0; i < length; i += 3) { + // draw some triangles! + var index0 = indices[i] * 2, index1 = indices[i + 1] * 2, index2 = indices[i + 2] * 2; + this._renderCanvasDrawTriangle(context, vertices, uvs, index0, index1, index2); + } +}; + +PIXI.Strip.prototype._renderCanvasDrawTriangle = function(context, vertices, uvs, index0, index1, index2) +{ + var textureSource = this.texture.baseTexture.source; + var textureWidth = this.texture.width; + var textureHeight = this.texture.height; + + var x0 = vertices[index0], x1 = vertices[index1], x2 = vertices[index2]; + var y0 = vertices[index0 + 1], y1 = vertices[index1 + 1], y2 = vertices[index2 + 1]; + + var u0 = uvs[index0] * textureWidth, u1 = uvs[index1] * textureWidth, u2 = uvs[index2] * textureWidth; + var v0 = uvs[index0 + 1] * textureHeight, v1 = uvs[index1 + 1] * textureHeight, v2 = uvs[index2 + 1] * textureHeight; + + if (this.canvasPadding > 0) { + var paddingX = this.canvasPadding / this.worldTransform.a; + var paddingY = this.canvasPadding / this.worldTransform.d; + var centerX = (x0 + x1 + x2) / 3; + var centerY = (y0 + y1 + y2) / 3; + + var normX = x0 - centerX; + var normY = y0 - centerY; + + var dist = Math.sqrt(normX * normX + normY * normY); + x0 = centerX + (normX / dist) * (dist + paddingX); + y0 = centerY + (normY / dist) * (dist + paddingY); + + // + + normX = x1 - centerX; + normY = y1 - centerY; + + dist = Math.sqrt(normX * normX + normY * normY); + x1 = centerX + (normX / dist) * (dist + paddingX); + y1 = centerY + (normY / dist) * (dist + paddingY); + + normX = x2 - centerX; + normY = y2 - centerY; + + dist = Math.sqrt(normX * normX + normY * normY); + x2 = centerX + (normX / dist) * (dist + paddingX); + y2 = centerY + (normY / dist) * (dist + paddingY); + } + + context.save(); + context.beginPath(); + + + context.moveTo(x0, y0); + context.lineTo(x1, y1); + context.lineTo(x2, y2); + + context.closePath(); + + context.clip(); + + // Compute matrix transform + var delta = (u0 * v1) + (v0 * u2) + (u1 * v2) - (v1 * u2) - (v0 * u1) - (u0 * v2); + var deltaA = (x0 * v1) + (v0 * x2) + (x1 * v2) - (v1 * x2) - (v0 * x1) - (x0 * v2); + var deltaB = (u0 * x1) + (x0 * u2) + (u1 * x2) - (x1 * u2) - (x0 * u1) - (u0 * x2); + var deltaC = (u0 * v1 * x2) + (v0 * x1 * u2) + (x0 * u1 * v2) - (x0 * v1 * u2) - (v0 * u1 * x2) - (u0 * x1 * v2); + var deltaD = (y0 * v1) + (v0 * y2) + (y1 * v2) - (v1 * y2) - (v0 * y1) - (y0 * v2); + var deltaE = (u0 * y1) + (y0 * u2) + (u1 * y2) - (y1 * u2) - (y0 * u1) - (u0 * y2); + var deltaF = (u0 * v1 * y2) + (v0 * y1 * u2) + (y0 * u1 * v2) - (y0 * v1 * u2) - (v0 * u1 * y2) - (u0 * y1 * v2); + + context.transform(deltaA / delta, deltaD / delta, + deltaB / delta, deltaE / delta, + deltaC / delta, deltaF / delta); + + context.drawImage(textureSource, 0, 0); + context.restore(); +}; + + + +/** + * Renders a flat strip + * + * @method renderStripFlat + * @param strip {Strip} The Strip to render + * @private + */ +PIXI.Strip.prototype.renderStripFlat = function(strip) +{ + var context = this.context; + var vertices = strip.vertices; + + var length = vertices.length/2; + this.count++; + + context.beginPath(); + for (var i=1; i < length-2; i++) + { + // draw some triangles! + var index = i*2; + + var x0 = vertices[index], x1 = vertices[index+2], x2 = vertices[index+4]; + var y0 = vertices[index+1], y1 = vertices[index+3], y2 = vertices[index+5]; + + context.moveTo(x0, y0); + context.lineTo(x1, y1); + context.lineTo(x2, y2); + } + + context.fillStyle = '#FF0000'; + context.fill(); + context.closePath(); +}; + +/* +PIXI.Strip.prototype.setTexture = function(texture) +{ + //TODO SET THE TEXTURES + //TODO VISIBILITY + + // stop current texture + this.texture = texture; + this.width = texture.frame.width; + this.height = texture.frame.height; + this.updateFrame = true; +}; +*/ + +/** + * When the texture is updated, this event will fire to update the scale and frame + * + * @method onTextureUpdate + * @param event + * @private + */ + +PIXI.Strip.prototype.onTextureUpdate = function() +{ + this.updateFrame = true; +}; + +/** + * Returns the bounds of the mesh as a rectangle. The bounds calculation takes the worldTransform into account. + * + * @method getBounds + * @param matrix {Matrix} the transformation matrix of the sprite + * @return {Rectangle} the framing rectangle + */ +PIXI.Strip.prototype.getBounds = function(matrix) +{ + var worldTransform = matrix || this.worldTransform; + + var a = worldTransform.a; + var b = worldTransform.b; + var c = worldTransform.c; + var d = worldTransform.d; + var tx = worldTransform.tx; + var ty = worldTransform.ty; + + var maxX = -Infinity; + var maxY = -Infinity; + + var minX = Infinity; + var minY = Infinity; + + var vertices = this.vertices; + for (var i = 0, n = vertices.length; i < n; i += 2) + { + var rawX = vertices[i], rawY = vertices[i + 1]; + var x = (a * rawX) + (c * rawY) + tx; + var y = (d * rawY) + (b * rawX) + ty; + + minX = x < minX ? x : minX; + minY = y < minY ? y : minY; + + maxX = x > maxX ? x : maxX; + maxY = y > maxY ? y : maxY; + } + + if (minX === -Infinity || maxY === Infinity) + { + return PIXI.EmptyRectangle; + } + + var bounds = this._bounds; + + bounds.x = minX; + bounds.width = maxX - minX; + + bounds.y = minY; + bounds.height = maxY - minY; + + // store a reference so that if this function gets called again in the render cycle we do not have to recalculate + this._currentBounds = bounds; + + return bounds; +}; + +/** + * Different drawing buffer modes supported + * + * @property + * @type {{TRIANGLE_STRIP: number, TRIANGLES: number}} + * @static + */ +PIXI.Strip.DrawModes = { + TRIANGLE_STRIP: 0, + TRIANGLES: 1 +}; + +/** + * @author Mat Groves http://matgroves.com/ @Doormat23 + * @copyright Mat Groves, Rovanion Luckey + */ + +/** + * + * @class Rope + * @constructor + * @extends Strip + * @param {Texture} texture - The texture to use on the rope. + * @param {Array} points - An array of {PIXI.Point}. + * + */ +PIXI.Rope = function(texture, points) +{ + PIXI.Strip.call( this, texture ); + this.points = points; + + this.vertices = new PIXI.Float32Array(points.length * 4); + this.uvs = new PIXI.Float32Array(points.length * 4); + this.colors = new PIXI.Float32Array(points.length * 2); + this.indices = new PIXI.Uint16Array(points.length * 2); + + + this.refresh(); +}; + + +// constructor +PIXI.Rope.prototype = Object.create( PIXI.Strip.prototype ); +PIXI.Rope.prototype.constructor = PIXI.Rope; + +/* + * Refreshes + * + * @method refresh + */ +PIXI.Rope.prototype.refresh = function() +{ + var points = this.points; + if(points.length < 1) return; + + var uvs = this.uvs; + + var lastPoint = points[0]; + var indices = this.indices; + var colors = this.colors; + + this.count-=0.2; + + uvs[0] = 0; + uvs[1] = 0; + uvs[2] = 0; + uvs[3] = 1; + + colors[0] = 1; + colors[1] = 1; + + indices[0] = 0; + indices[1] = 1; + + var total = points.length, + point, index, amount; + + for (var i = 1; i < total; i++) + { + point = points[i]; + index = i * 4; + // time to do some smart drawing! + amount = i / (total-1); + + if(i%2) + { + uvs[index] = amount; + uvs[index+1] = 0; + + uvs[index+2] = amount; + uvs[index+3] = 1; + } + else + { + uvs[index] = amount; + uvs[index+1] = 0; + + uvs[index+2] = amount; + uvs[index+3] = 1; + } + + index = i * 2; + colors[index] = 1; + colors[index+1] = 1; + + index = i * 2; + indices[index] = index; + indices[index + 1] = index + 1; + + lastPoint = point; + } +}; + +/* + * Updates the object transform for rendering + * + * @method updateTransform + * @private + */ +PIXI.Rope.prototype.updateTransform = function() +{ + + var points = this.points; + if(points.length < 1)return; + + var lastPoint = points[0]; + var nextPoint; + var perp = {x:0, y:0}; + + this.count-=0.2; + + var vertices = this.vertices; + var total = points.length, + point, index, ratio, perpLength, num; + + for (var i = 0; i < total; i++) + { + point = points[i]; + index = i * 4; + + if(i < points.length-1) + { + nextPoint = points[i+1]; + } + else + { + nextPoint = point; + } + + perp.y = -(nextPoint.x - lastPoint.x); + perp.x = nextPoint.y - lastPoint.y; + + ratio = (1 - (i / (total-1))) * 10; + + if(ratio > 1) ratio = 1; + + perpLength = Math.sqrt(perp.x * perp.x + perp.y * perp.y); + num = this.texture.height / 2; //(20 + Math.abs(Math.sin((i + this.count) * 0.3) * 50) )* ratio; + perp.x /= perpLength; + perp.y /= perpLength; + + perp.x *= num; + perp.y *= num; + + vertices[index] = point.x + perp.x; + vertices[index+1] = point.y + perp.y; + vertices[index+2] = point.x - perp.x; + vertices[index+3] = point.y - perp.y; + + lastPoint = point; + } + + PIXI.DisplayObjectContainer.prototype.updateTransform.call( this ); +}; +/* + * Sets the texture that the Rope will use + * + * @method setTexture + * @param texture {Texture} the texture that will be used + */ +PIXI.Rope.prototype.setTexture = function(texture) +{ + // stop current texture + this.texture = texture; + //this.updateFrame = true; +}; + +/** + * @author Mat Groves http://matgroves.com/ + */ + +/** + * A tiling sprite is a fast way of rendering a tiling image + * + * @class TilingSprite + * @extends Sprite + * @constructor + * @param texture {Texture} the texture of the tiling sprite + * @param width {Number} the width of the tiling sprite + * @param height {Number} the height of the tiling sprite + */ +PIXI.TilingSprite = function(texture, width, height) +{ + PIXI.Sprite.call(this, texture); + + /** + * The width of the tiling sprite + * + * @property width + * @type Number + */ + this._width = width || 128; + + /** + * The height of the tiling sprite + * + * @property height + * @type Number + */ + this._height = height || 128; + + /** + * The scaling of the image that is being tiled + * + * @property tileScale + * @type Point + */ + this.tileScale = new PIXI.Point(1, 1); + + /** + * A point that represents the scale of the texture object + * + * @property tileScaleOffset + * @type Point + */ + this.tileScaleOffset = new PIXI.Point(1, 1); + + /** + * The offset position of the image that is being tiled + * + * @property tilePosition + * @type Point + */ + this.tilePosition = new PIXI.Point(); + + /** + * Whether this sprite is renderable or not + * + * @property renderable + * @type Boolean + * @default true + */ + this.renderable = true; + + /** + * The tint applied to the sprite. This is a hex value + * + * @property tint + * @type Number + * @default 0xFFFFFF + */ + this.tint = 0xFFFFFF; + + /** + * If enabled a green rectangle will be drawn behind the generated tiling texture, allowing you to visually + * debug the texture being used. + * + * @property textureDebug + * @type Boolean + */ + this.textureDebug = false; + + /** + * The blend mode to be applied to the sprite + * + * @property blendMode + * @type Number + * @default PIXI.blendModes.NORMAL; + */ + this.blendMode = PIXI.blendModes.NORMAL; + + /** + * The CanvasBuffer object that the tiled texture is drawn to. + * + * @property canvasBuffer + * @type PIXI.CanvasBuffer + */ + this.canvasBuffer = null; + + /** + * An internal Texture object that holds the tiling texture that was generated from TilingSprite.texture. + * + * @property tilingTexture + * @type PIXI.Texture + */ + this.tilingTexture = null; + + /** + * The Context fill pattern that is used to draw the TilingSprite in Canvas mode only (will be null in WebGL). + * + * @property tilePattern + * @type PIXI.Texture + */ + this.tilePattern = null; + + /** + * If true the TilingSprite will run generateTexture on its **next** render pass. + * This is set by the likes of Phaser.LoadTexture.setFrame. + * + * @property refreshTexture + * @type Boolean + * @default true + */ + this.refreshTexture = true; + + this.frameWidth = 0; + this.frameHeight = 0; + +}; + +PIXI.TilingSprite.prototype = Object.create(PIXI.Sprite.prototype); +PIXI.TilingSprite.prototype.constructor = PIXI.TilingSprite; + +PIXI.TilingSprite.prototype.setTexture = function(texture) +{ + if (this.texture !== texture) + { + this.texture = texture; + this.refreshTexture = true; + this.cachedTint = 0xFFFFFF; + } + +}; + +/** +* Renders the object using the WebGL renderer +* +* @method _renderWebGL +* @param renderSession {RenderSession} +* @private +*/ +PIXI.TilingSprite.prototype._renderWebGL = function(renderSession) +{ + if (this.visible === false || this.alpha === 0) + { + return; + } + + if (this._mask) + { + renderSession.spriteBatch.stop(); + renderSession.maskManager.pushMask(this.mask, renderSession); + renderSession.spriteBatch.start(); + } + + if (this._filters) + { + renderSession.spriteBatch.flush(); + renderSession.filterManager.pushFilter(this._filterBlock); + } + + if (this.refreshTexture) + { + this.generateTilingTexture(true); + + if (this.tilingTexture) + { + if (this.tilingTexture.needsUpdate) + { + renderSession.renderer.updateTexture(this.tilingTexture.baseTexture); + this.tilingTexture.needsUpdate = false; + } + } + else + { + return; + } + } + + renderSession.spriteBatch.renderTilingSprite(this); + + for (var i = 0; i < this.children.length; i++) + { + this.children[i]._renderWebGL(renderSession); + } + + renderSession.spriteBatch.stop(); + + if (this._filters) + { + renderSession.filterManager.popFilter(); + } + + if (this._mask) + { + renderSession.maskManager.popMask(this._mask, renderSession); + } + + renderSession.spriteBatch.start(); + +}; + +/** +* Renders the object using the Canvas renderer +* +* @method _renderCanvas +* @param renderSession {RenderSession} +* @private +*/ +PIXI.TilingSprite.prototype._renderCanvas = function(renderSession) +{ + if (this.visible === false || this.alpha === 0) + { + return; + } + + var context = renderSession.context; + + if (this._mask) + { + renderSession.maskManager.pushMask(this._mask, renderSession); + } + + context.globalAlpha = this.worldAlpha; + + var wt = this.worldTransform; + var resolution = renderSession.resolution; + + context.setTransform(wt.a * resolution, + wt.b * resolution, + wt.c * resolution, + wt.d * resolution, + wt.tx * resolution, + wt.ty * resolution); + + if (this.refreshTexture) + { + this.generateTilingTexture(false); + + if (this.tilingTexture) + { + this.tilePattern = context.createPattern(this.tilingTexture.baseTexture.source, 'repeat'); + } + else + { + return; + } + } + + var sessionBlendMode = renderSession.currentBlendMode; + + // Check blend mode + if (this.blendMode !== renderSession.currentBlendMode) + { + renderSession.currentBlendMode = this.blendMode; + context.globalCompositeOperation = PIXI.blendModesCanvas[renderSession.currentBlendMode]; + } + + var tilePosition = this.tilePosition; + var tileScale = this.tileScale; + + tilePosition.x %= this.tilingTexture.baseTexture.width; + tilePosition.y %= this.tilingTexture.baseTexture.height; + + // Translate + context.scale(tileScale.x, tileScale.y); + context.translate(tilePosition.x + (this.anchor.x * -this._width), tilePosition.y + (this.anchor.y * -this._height)); + + context.fillStyle = this.tilePattern; + + var tx = -tilePosition.x; + var ty = -tilePosition.y; + var tw = this._width / tileScale.x; + var th = this._height / tileScale.y; + + // Allow for pixel rounding + if (renderSession.roundPixels) + { + tx | 0; + ty | 0; + tw | 0; + th | 0; + } + + context.fillRect(tx, ty, tw, th); + + // Translate back again + context.scale(1 / tileScale.x, 1 / tileScale.y); + context.translate(-tilePosition.x + (this.anchor.x * this._width), -tilePosition.y + (this.anchor.y * this._height)); + + if (this._mask) + { + renderSession.maskManager.popMask(renderSession); + } + + for (var i = 0; i < this.children.length; i++) + { + this.children[i]._renderCanvas(renderSession); + } + + // Reset blend mode + if (sessionBlendMode !== this.blendMode) + { + renderSession.currentBlendMode = sessionBlendMode; + context.globalCompositeOperation = PIXI.blendModesCanvas[sessionBlendMode]; + } + +}; + +/** + * When the texture is updated, this event will fire to update the scale and frame + * + * @method onTextureUpdate + * @param event + * @private + */ +PIXI.TilingSprite.prototype.onTextureUpdate = function() +{ + // overriding the sprite version of this! +}; + +/** +* +* @method generateTilingTexture +* +* @param forcePowerOfTwo {Boolean} Whether we want to force the texture to be a power of two +*/ +PIXI.TilingSprite.prototype.generateTilingTexture = function(forcePowerOfTwo) +{ + if (!this.texture.baseTexture.hasLoaded) + { + return; + } + + var texture = this.texture; + var frame = texture.frame; + + var targetWidth = this._frame.sourceSizeW; + var targetHeight = this._frame.sourceSizeH; + + var dx = 0; + var dy = 0; + + if (this._frame.trimmed) + { + dx = this._frame.spriteSourceSizeX; + dy = this._frame.spriteSourceSizeY; + } + + if (forcePowerOfTwo) + { + targetWidth = PIXI.getNextPowerOfTwo(targetWidth); + targetHeight = PIXI.getNextPowerOfTwo(targetHeight); + } + + if (this.canvasBuffer) + { + this.canvasBuffer.resize(targetWidth, targetHeight); + this.tilingTexture.baseTexture.width = targetWidth; + this.tilingTexture.baseTexture.height = targetHeight; + this.tilingTexture.needsUpdate = true; + } + else + { + this.canvasBuffer = new PIXI.CanvasBuffer(targetWidth, targetHeight); + this.tilingTexture = PIXI.Texture.fromCanvas(this.canvasBuffer.canvas); + this.tilingTexture = PIXI.Texture.fromCanvas(this.canvasBuffer.canvas); + this.tilingTexture.isTiling = true; + this.tilingTexture.needsUpdate = true; + } + + if (this.textureDebug) + { + this.canvasBuffer.context.strokeStyle = '#00ff00'; + this.canvasBuffer.context.strokeRect(0, 0, targetWidth, targetHeight); + } + + // If a sprite sheet we need this: + var w = texture.crop.width; + var h = texture.crop.height; + + if (w !== targetWidth || h !== targetHeight) + { + w = targetWidth; + h = targetHeight; + } + + this.canvasBuffer.context.drawImage(texture.baseTexture.source, + texture.crop.x, + texture.crop.y, + texture.crop.width, + texture.crop.height, + dx, + dy, + w, + h); + + this.tileScaleOffset.x = frame.width / targetWidth; + this.tileScaleOffset.y = frame.height / targetHeight; + + this.refreshTexture = false; + + this.tilingTexture.baseTexture._powerOf2 = true; + +}; + +/** +* Returns the framing rectangle of the sprite as a PIXI.Rectangle object +* +* @method getBounds +* @return {Rectangle} the framing rectangle +*/ +PIXI.TilingSprite.prototype.getBounds = function() +{ + var width = this._width; + var height = this._height; + + var w0 = width * (1-this.anchor.x); + var w1 = width * -this.anchor.x; + + var h0 = height * (1-this.anchor.y); + var h1 = height * -this.anchor.y; + + var worldTransform = this.worldTransform; + + var a = worldTransform.a; + var b = worldTransform.b; + var c = worldTransform.c; + var d = worldTransform.d; + var tx = worldTransform.tx; + var ty = worldTransform.ty; + + var x1 = a * w1 + c * h1 + tx; + var y1 = d * h1 + b * w1 + ty; + + var x2 = a * w0 + c * h1 + tx; + var y2 = d * h1 + b * w0 + ty; + + var x3 = a * w0 + c * h0 + tx; + var y3 = d * h0 + b * w0 + ty; + + var x4 = a * w1 + c * h0 + tx; + var y4 = d * h0 + b * w1 + ty; + + var maxX = -Infinity; + var maxY = -Infinity; + + var minX = Infinity; + var minY = Infinity; + + minX = x1 < minX ? x1 : minX; + minX = x2 < minX ? x2 : minX; + minX = x3 < minX ? x3 : minX; + minX = x4 < minX ? x4 : minX; + + minY = y1 < minY ? y1 : minY; + minY = y2 < minY ? y2 : minY; + minY = y3 < minY ? y3 : minY; + minY = y4 < minY ? y4 : minY; + + maxX = x1 > maxX ? x1 : maxX; + maxX = x2 > maxX ? x2 : maxX; + maxX = x3 > maxX ? x3 : maxX; + maxX = x4 > maxX ? x4 : maxX; + + maxY = y1 > maxY ? y1 : maxY; + maxY = y2 > maxY ? y2 : maxY; + maxY = y3 > maxY ? y3 : maxY; + maxY = y4 > maxY ? y4 : maxY; + + var bounds = this._bounds; + + bounds.x = minX; + bounds.width = maxX - minX; + + bounds.y = minY; + bounds.height = maxY - minY; + + // store a reference so that if this function gets called again in the render cycle we do not have to recalculate + this._currentBounds = bounds; + + return bounds; +}; + +PIXI.TilingSprite.prototype.destroy = function () { + + PIXI.Sprite.prototype.destroy.call(this); + + this.tileScale = null; + this.tileScaleOffset = null; + this.tilePosition = null; + + if (this.tilingTexture) + { + this.tilingTexture.destroy(true); + this.tilingTexture = null; + } + +}; + +/** + * The width of the sprite, setting this will actually modify the scale to achieve the value set + * + * @property width + * @type Number + */ +Object.defineProperty(PIXI.TilingSprite.prototype, 'width', { + + get: function() { + return this._width; + }, + + set: function(value) { + this._width = value; + } + +}); + +/** + * The height of the TilingSprite, setting this will actually modify the scale to achieve the value set + * + * @property height + * @type Number + */ +Object.defineProperty(PIXI.TilingSprite.prototype, 'height', { + + get: function() { + return this._height; + }, + + set: function(value) { + this._height = value; + } + +}); + /** * @author Mat Groves http://matgroves.com/ @Doormat23 */ @@ -9186,7 +10380,7 @@ var Phaser = Phaser || { * @constant * @type {string} */ - VERSION: '2.4.0', + VERSION: '2.4.1', /** * An array of Phaser game instances. @@ -34618,6 +35812,39 @@ Phaser.GameObjectFactory.prototype = { }, + /** + * Create a new Creature Animation object. + * + * Creature is a custom Game Object used in conjunction with the Creature Runtime libraries by Kestrel Moon Studios. + * + * It allows you to display animated Game Objects that were created with the [Creature Automated Animation Tool](http://www.kestrelmoon.com/creature/). + * + * Note 1: You can only use Phaser.Creature objects in WebGL enabled games. They do not work in Canvas mode games. + * + * Note 2: You must use a build of Phaser that includes the CreatureMeshBone.js runtime and gl-matrix.js, or have them + * loaded before your Phaser game boots. + * + * See the Phaser custom build process for more details. + * + * @method Phaser.GameObjectFactory#creature + * @param {number} [x=0] - The x coordinate of the creature. The coordinate is relative to any parent container this creature may be in. + * @param {number} [y=0] - The y coordinate of the creature. The coordinate is relative to any parent container this creature may be in. + * @param {string|PIXI.Texture} [key] - The image used as a texture by this creature object during rendering. If a string Phaser will get for an entry in the Image Cache. Or it can be an instance of a PIXI.Texture. + * @param {Phaser.Group} [group] - Optional Group to add the object to. If not specified it will be added to the World group. + * @returns {Phaser.Creature} The newly created Sprite object. + */ + creature: function (x, y, key, mesh, group) { + + if (group === undefined) { group = this.world; } + + var obj = new Phaser.Creature(this.game, x, y, key, mesh); + + group.add(obj); + + return obj; + + }, + /** * Create a tween on a specific object. * @@ -43777,651 +45004,6 @@ Object.defineProperty(Phaser.RetroFont.prototype, "smoothed", { }); -/** - * @author Mat Groves http://matgroves.com/ - */ - - /** - * - * @class Strip - * @extends DisplayObjectContainer - * @constructor - * @param texture {Texture} The texture to use - * @param width {Number} the width - * @param height {Number} the height - * - */ -PIXI.Strip = function(texture) -{ - PIXI.DisplayObjectContainer.call( this ); - - - /** - * The texture of the strip - * - * @property texture - * @type Texture - */ - this.texture = texture; - - // set up the main bits.. - this.uvs = new PIXI.Float32Array([0, 1, - 1, 1, - 1, 0, - 0, 1]); - - this.vertices = new PIXI.Float32Array([0, 0, - 100, 0, - 100, 100, - 0, 100]); - - this.colors = new PIXI.Float32Array([1, 1, 1, 1]); - - this.indices = new PIXI.Uint16Array([0, 1, 2, 3]); - - /** - * Whether the strip is dirty or not - * - * @property dirty - * @type Boolean - */ - this.dirty = true; - - /** - * The blend mode to be applied to the sprite. Set to PIXI.blendModes.NORMAL to remove any blend mode. - * - * @property blendMode - * @type Number - * @default PIXI.blendModes.NORMAL; - */ - this.blendMode = PIXI.blendModes.NORMAL; - - /** - * Triangles in canvas mode are automatically antialiased, use this value to force triangles to overlap a bit with each other. - * - * @property canvasPadding - * @type Number - */ - this.canvasPadding = 0; - - this.drawMode = PIXI.Strip.DrawModes.TRIANGLE_STRIP; - -}; - -// constructor -PIXI.Strip.prototype = Object.create(PIXI.DisplayObjectContainer.prototype); -PIXI.Strip.prototype.constructor = PIXI.Strip; - -PIXI.Strip.prototype._renderWebGL = function(renderSession) -{ - // if the sprite is not visible or the alpha is 0 then no need to render this element - if(!this.visible || this.alpha <= 0)return; - // render triangle strip.. - - renderSession.spriteBatch.stop(); - - // init! init! - if(!this._vertexBuffer)this._initWebGL(renderSession); - - renderSession.shaderManager.setShader(renderSession.shaderManager.stripShader); - - this._renderStrip(renderSession); - - ///renderSession.shaderManager.activateDefaultShader(); - - renderSession.spriteBatch.start(); - - //TODO check culling -}; - -PIXI.Strip.prototype._initWebGL = function(renderSession) -{ - // build the strip! - var gl = renderSession.gl; - - this._vertexBuffer = gl.createBuffer(); - this._indexBuffer = gl.createBuffer(); - this._uvBuffer = gl.createBuffer(); - this._colorBuffer = gl.createBuffer(); - - gl.bindBuffer(gl.ARRAY_BUFFER, this._vertexBuffer); - gl.bufferData(gl.ARRAY_BUFFER, this.vertices, gl.DYNAMIC_DRAW); - - gl.bindBuffer(gl.ARRAY_BUFFER, this._uvBuffer); - gl.bufferData(gl.ARRAY_BUFFER, this.uvs, gl.STATIC_DRAW); - - gl.bindBuffer(gl.ARRAY_BUFFER, this._colorBuffer); - gl.bufferData(gl.ARRAY_BUFFER, this.colors, gl.STATIC_DRAW); - - gl.bindBuffer(gl.ELEMENT_ARRAY_BUFFER, this._indexBuffer); - gl.bufferData(gl.ELEMENT_ARRAY_BUFFER, this.indices, gl.STATIC_DRAW); -}; - -PIXI.Strip.prototype._renderStrip = function(renderSession) -{ - var gl = renderSession.gl; - var projection = renderSession.projection, - offset = renderSession.offset, - shader = renderSession.shaderManager.stripShader; - - var drawMode = this.drawMode === PIXI.Strip.DrawModes.TRIANGLE_STRIP ? gl.TRIANGLE_STRIP : gl.TRIANGLES; - - // gl.uniformMatrix4fv(shaderProgram.mvMatrixUniform, false, mat4Real); - - renderSession.blendModeManager.setBlendMode(this.blendMode); - - - // set uniforms - gl.uniformMatrix3fv(shader.translationMatrix, false, this.worldTransform.toArray(true)); - gl.uniform2f(shader.projectionVector, projection.x, -projection.y); - gl.uniform2f(shader.offsetVector, -offset.x, -offset.y); - gl.uniform1f(shader.alpha, this.worldAlpha); - - if(!this.dirty) - { - - gl.bindBuffer(gl.ARRAY_BUFFER, this._vertexBuffer); - gl.bufferSubData(gl.ARRAY_BUFFER, 0, this.vertices); - gl.vertexAttribPointer(shader.aVertexPosition, 2, gl.FLOAT, false, 0, 0); - - // update the uvs - gl.bindBuffer(gl.ARRAY_BUFFER, this._uvBuffer); - gl.vertexAttribPointer(shader.aTextureCoord, 2, gl.FLOAT, false, 0, 0); - - gl.activeTexture(gl.TEXTURE0); - - // check if a texture is dirty.. - if(this.texture.baseTexture._dirty[gl.id]) - { - renderSession.renderer.updateTexture(this.texture.baseTexture); - } - else - { - // bind the current texture - gl.bindTexture(gl.TEXTURE_2D, this.texture.baseTexture._glTextures[gl.id]); - } - - // dont need to upload! - gl.bindBuffer(gl.ELEMENT_ARRAY_BUFFER, this._indexBuffer); - - - } - else - { - - this.dirty = false; - gl.bindBuffer(gl.ARRAY_BUFFER, this._vertexBuffer); - gl.bufferData(gl.ARRAY_BUFFER, this.vertices, gl.STATIC_DRAW); - gl.vertexAttribPointer(shader.aVertexPosition, 2, gl.FLOAT, false, 0, 0); - - // update the uvs - gl.bindBuffer(gl.ARRAY_BUFFER, this._uvBuffer); - gl.bufferData(gl.ARRAY_BUFFER, this.uvs, gl.STATIC_DRAW); - gl.vertexAttribPointer(shader.aTextureCoord, 2, gl.FLOAT, false, 0, 0); - - gl.activeTexture(gl.TEXTURE0); - - // check if a texture is dirty.. - if(this.texture.baseTexture._dirty[gl.id]) - { - renderSession.renderer.updateTexture(this.texture.baseTexture); - } - else - { - gl.bindTexture(gl.TEXTURE_2D, this.texture.baseTexture._glTextures[gl.id]); - } - - // dont need to upload! - gl.bindBuffer(gl.ELEMENT_ARRAY_BUFFER, this._indexBuffer); - gl.bufferData(gl.ELEMENT_ARRAY_BUFFER, this.indices, gl.STATIC_DRAW); - - } - //console.log(gl.TRIANGLE_STRIP) - // - // - gl.drawElements(drawMode, this.indices.length, gl.UNSIGNED_SHORT, 0); - - -}; - - - -PIXI.Strip.prototype._renderCanvas = function(renderSession) -{ - var context = renderSession.context; - - var transform = this.worldTransform; - - if (renderSession.roundPixels) - { - context.setTransform(transform.a, transform.b, transform.c, transform.d, transform.tx | 0, transform.ty | 0); - } - else - { - context.setTransform(transform.a, transform.b, transform.c, transform.d, transform.tx, transform.ty); - } - - if (this.drawMode === PIXI.Strip.DrawModes.TRIANGLE_STRIP) - { - this._renderCanvasTriangleStrip(context); - } - else - { - this._renderCanvasTriangles(context); - } -}; - -PIXI.Strip.prototype._renderCanvasTriangleStrip = function(context) -{ - // draw triangles!! - var vertices = this.vertices; - var uvs = this.uvs; - - var length = vertices.length / 2; - this.count++; - - for (var i = 0; i < length - 2; i++) { - // draw some triangles! - var index = i * 2; - this._renderCanvasDrawTriangle(context, vertices, uvs, index, (index + 2), (index + 4)); - } -}; - -PIXI.Strip.prototype._renderCanvasTriangles = function(context) -{ - // draw triangles!! - var vertices = this.vertices; - var uvs = this.uvs; - var indices = this.indices; - - var length = indices.length; - this.count++; - - for (var i = 0; i < length; i += 3) { - // draw some triangles! - var index0 = indices[i] * 2, index1 = indices[i + 1] * 2, index2 = indices[i + 2] * 2; - this._renderCanvasDrawTriangle(context, vertices, uvs, index0, index1, index2); - } -}; - -PIXI.Strip.prototype._renderCanvasDrawTriangle = function(context, vertices, uvs, index0, index1, index2) -{ - var textureSource = this.texture.baseTexture.source; - var textureWidth = this.texture.width; - var textureHeight = this.texture.height; - - var x0 = vertices[index0], x1 = vertices[index1], x2 = vertices[index2]; - var y0 = vertices[index0 + 1], y1 = vertices[index1 + 1], y2 = vertices[index2 + 1]; - - var u0 = uvs[index0] * textureWidth, u1 = uvs[index1] * textureWidth, u2 = uvs[index2] * textureWidth; - var v0 = uvs[index0 + 1] * textureHeight, v1 = uvs[index1 + 1] * textureHeight, v2 = uvs[index2 + 1] * textureHeight; - - if (this.canvasPadding > 0) { - var paddingX = this.canvasPadding / this.worldTransform.a; - var paddingY = this.canvasPadding / this.worldTransform.d; - var centerX = (x0 + x1 + x2) / 3; - var centerY = (y0 + y1 + y2) / 3; - - var normX = x0 - centerX; - var normY = y0 - centerY; - - var dist = Math.sqrt(normX * normX + normY * normY); - x0 = centerX + (normX / dist) * (dist + paddingX); - y0 = centerY + (normY / dist) * (dist + paddingY); - - // - - normX = x1 - centerX; - normY = y1 - centerY; - - dist = Math.sqrt(normX * normX + normY * normY); - x1 = centerX + (normX / dist) * (dist + paddingX); - y1 = centerY + (normY / dist) * (dist + paddingY); - - normX = x2 - centerX; - normY = y2 - centerY; - - dist = Math.sqrt(normX * normX + normY * normY); - x2 = centerX + (normX / dist) * (dist + paddingX); - y2 = centerY + (normY / dist) * (dist + paddingY); - } - - context.save(); - context.beginPath(); - - - context.moveTo(x0, y0); - context.lineTo(x1, y1); - context.lineTo(x2, y2); - - context.closePath(); - - context.clip(); - - // Compute matrix transform - var delta = (u0 * v1) + (v0 * u2) + (u1 * v2) - (v1 * u2) - (v0 * u1) - (u0 * v2); - var deltaA = (x0 * v1) + (v0 * x2) + (x1 * v2) - (v1 * x2) - (v0 * x1) - (x0 * v2); - var deltaB = (u0 * x1) + (x0 * u2) + (u1 * x2) - (x1 * u2) - (x0 * u1) - (u0 * x2); - var deltaC = (u0 * v1 * x2) + (v0 * x1 * u2) + (x0 * u1 * v2) - (x0 * v1 * u2) - (v0 * u1 * x2) - (u0 * x1 * v2); - var deltaD = (y0 * v1) + (v0 * y2) + (y1 * v2) - (v1 * y2) - (v0 * y1) - (y0 * v2); - var deltaE = (u0 * y1) + (y0 * u2) + (u1 * y2) - (y1 * u2) - (y0 * u1) - (u0 * y2); - var deltaF = (u0 * v1 * y2) + (v0 * y1 * u2) + (y0 * u1 * v2) - (y0 * v1 * u2) - (v0 * u1 * y2) - (u0 * y1 * v2); - - context.transform(deltaA / delta, deltaD / delta, - deltaB / delta, deltaE / delta, - deltaC / delta, deltaF / delta); - - context.drawImage(textureSource, 0, 0); - context.restore(); -}; - - - -/** - * Renders a flat strip - * - * @method renderStripFlat - * @param strip {Strip} The Strip to render - * @private - */ -PIXI.Strip.prototype.renderStripFlat = function(strip) -{ - var context = this.context; - var vertices = strip.vertices; - - var length = vertices.length/2; - this.count++; - - context.beginPath(); - for (var i=1; i < length-2; i++) - { - // draw some triangles! - var index = i*2; - - var x0 = vertices[index], x1 = vertices[index+2], x2 = vertices[index+4]; - var y0 = vertices[index+1], y1 = vertices[index+3], y2 = vertices[index+5]; - - context.moveTo(x0, y0); - context.lineTo(x1, y1); - context.lineTo(x2, y2); - } - - context.fillStyle = '#FF0000'; - context.fill(); - context.closePath(); -}; - -/* -PIXI.Strip.prototype.setTexture = function(texture) -{ - //TODO SET THE TEXTURES - //TODO VISIBILITY - - // stop current texture - this.texture = texture; - this.width = texture.frame.width; - this.height = texture.frame.height; - this.updateFrame = true; -}; -*/ - -/** - * When the texture is updated, this event will fire to update the scale and frame - * - * @method onTextureUpdate - * @param event - * @private - */ - -PIXI.Strip.prototype.onTextureUpdate = function() -{ - this.updateFrame = true; -}; - -/** - * Returns the bounds of the mesh as a rectangle. The bounds calculation takes the worldTransform into account. - * - * @method getBounds - * @param matrix {Matrix} the transformation matrix of the sprite - * @return {Rectangle} the framing rectangle - */ -PIXI.Strip.prototype.getBounds = function(matrix) -{ - var worldTransform = matrix || this.worldTransform; - - var a = worldTransform.a; - var b = worldTransform.b; - var c = worldTransform.c; - var d = worldTransform.d; - var tx = worldTransform.tx; - var ty = worldTransform.ty; - - var maxX = -Infinity; - var maxY = -Infinity; - - var minX = Infinity; - var minY = Infinity; - - var vertices = this.vertices; - for (var i = 0, n = vertices.length; i < n; i += 2) - { - var rawX = vertices[i], rawY = vertices[i + 1]; - var x = (a * rawX) + (c * rawY) + tx; - var y = (d * rawY) + (b * rawX) + ty; - - minX = x < minX ? x : minX; - minY = y < minY ? y : minY; - - maxX = x > maxX ? x : maxX; - maxY = y > maxY ? y : maxY; - } - - if (minX === -Infinity || maxY === Infinity) - { - return PIXI.EmptyRectangle; - } - - var bounds = this._bounds; - - bounds.x = minX; - bounds.width = maxX - minX; - - bounds.y = minY; - bounds.height = maxY - minY; - - // store a reference so that if this function gets called again in the render cycle we do not have to recalculate - this._currentBounds = bounds; - - return bounds; -}; - -/** - * Different drawing buffer modes supported - * - * @property - * @type {{TRIANGLE_STRIP: number, TRIANGLES: number}} - * @static - */ -PIXI.Strip.DrawModes = { - TRIANGLE_STRIP: 0, - TRIANGLES: 1 -}; - -/** - * @author Mat Groves http://matgroves.com/ @Doormat23 - * @copyright Mat Groves, Rovanion Luckey - */ - -/** - * - * @class Rope - * @constructor - * @extends Strip - * @param {Texture} texture - The texture to use on the rope. - * @param {Array} points - An array of {PIXI.Point}. - * - */ -PIXI.Rope = function(texture, points) -{ - PIXI.Strip.call( this, texture ); - this.points = points; - - this.vertices = new PIXI.Float32Array(points.length * 4); - this.uvs = new PIXI.Float32Array(points.length * 4); - this.colors = new PIXI.Float32Array(points.length * 2); - this.indices = new PIXI.Uint16Array(points.length * 2); - - - this.refresh(); -}; - - -// constructor -PIXI.Rope.prototype = Object.create( PIXI.Strip.prototype ); -PIXI.Rope.prototype.constructor = PIXI.Rope; - -/* - * Refreshes - * - * @method refresh - */ -PIXI.Rope.prototype.refresh = function() -{ - var points = this.points; - if(points.length < 1) return; - - var uvs = this.uvs; - - var lastPoint = points[0]; - var indices = this.indices; - var colors = this.colors; - - this.count-=0.2; - - uvs[0] = 0; - uvs[1] = 0; - uvs[2] = 0; - uvs[3] = 1; - - colors[0] = 1; - colors[1] = 1; - - indices[0] = 0; - indices[1] = 1; - - var total = points.length, - point, index, amount; - - for (var i = 1; i < total; i++) - { - point = points[i]; - index = i * 4; - // time to do some smart drawing! - amount = i / (total-1); - - if(i%2) - { - uvs[index] = amount; - uvs[index+1] = 0; - - uvs[index+2] = amount; - uvs[index+3] = 1; - } - else - { - uvs[index] = amount; - uvs[index+1] = 0; - - uvs[index+2] = amount; - uvs[index+3] = 1; - } - - index = i * 2; - colors[index] = 1; - colors[index+1] = 1; - - index = i * 2; - indices[index] = index; - indices[index + 1] = index + 1; - - lastPoint = point; - } -}; - -/* - * Updates the object transform for rendering - * - * @method updateTransform - * @private - */ -PIXI.Rope.prototype.updateTransform = function() -{ - - var points = this.points; - if(points.length < 1)return; - - var lastPoint = points[0]; - var nextPoint; - var perp = {x:0, y:0}; - - this.count-=0.2; - - var vertices = this.vertices; - var total = points.length, - point, index, ratio, perpLength, num; - - for (var i = 0; i < total; i++) - { - point = points[i]; - index = i * 4; - - if(i < points.length-1) - { - nextPoint = points[i+1]; - } - else - { - nextPoint = point; - } - - perp.y = -(nextPoint.x - lastPoint.x); - perp.x = nextPoint.y - lastPoint.y; - - ratio = (1 - (i / (total-1))) * 10; - - if(ratio > 1) ratio = 1; - - perpLength = Math.sqrt(perp.x * perp.x + perp.y * perp.y); - num = this.texture.height / 2; //(20 + Math.abs(Math.sin((i + this.count) * 0.3) * 50) )* ratio; - perp.x /= perpLength; - perp.y /= perpLength; - - perp.x *= num; - perp.y *= num; - - vertices[index] = point.x + perp.x; - vertices[index+1] = point.y + perp.y; - vertices[index+2] = point.x - perp.x; - vertices[index+3] = point.y - perp.y; - - lastPoint = point; - } - - PIXI.DisplayObjectContainer.prototype.updateTransform.call( this ); -}; -/* - * Sets the texture that the Rope will use - * - * @method setTexture - * @param texture {Texture} the texture that will be used - */ -PIXI.Rope.prototype.setTexture = function(texture) -{ - // stop current texture - this.texture = texture; - //this.updateFrame = true; -}; - /** * @author Richard Davey * @copyright 2015 Photon Storm Ltd, Richard Davey @@ -44651,555 +45233,6 @@ Object.defineProperty(Phaser.Rope.prototype, "segments", { }); -/** - * @author Mat Groves http://matgroves.com/ - */ - -/** - * A tiling sprite is a fast way of rendering a tiling image - * - * @class TilingSprite - * @extends Sprite - * @constructor - * @param texture {Texture} the texture of the tiling sprite - * @param width {Number} the width of the tiling sprite - * @param height {Number} the height of the tiling sprite - */ -PIXI.TilingSprite = function(texture, width, height) -{ - PIXI.Sprite.call(this, texture); - - /** - * The width of the tiling sprite - * - * @property width - * @type Number - */ - this._width = width || 128; - - /** - * The height of the tiling sprite - * - * @property height - * @type Number - */ - this._height = height || 128; - - /** - * The scaling of the image that is being tiled - * - * @property tileScale - * @type Point - */ - this.tileScale = new PIXI.Point(1, 1); - - /** - * A point that represents the scale of the texture object - * - * @property tileScaleOffset - * @type Point - */ - this.tileScaleOffset = new PIXI.Point(1, 1); - - /** - * The offset position of the image that is being tiled - * - * @property tilePosition - * @type Point - */ - this.tilePosition = new PIXI.Point(); - - /** - * Whether this sprite is renderable or not - * - * @property renderable - * @type Boolean - * @default true - */ - this.renderable = true; - - /** - * The tint applied to the sprite. This is a hex value - * - * @property tint - * @type Number - * @default 0xFFFFFF - */ - this.tint = 0xFFFFFF; - - /** - * If enabled a green rectangle will be drawn behind the generated tiling texture, allowing you to visually - * debug the texture being used. - * - * @property textureDebug - * @type Boolean - */ - this.textureDebug = false; - - /** - * The blend mode to be applied to the sprite - * - * @property blendMode - * @type Number - * @default PIXI.blendModes.NORMAL; - */ - this.blendMode = PIXI.blendModes.NORMAL; - - /** - * The CanvasBuffer object that the tiled texture is drawn to. - * - * @property canvasBuffer - * @type PIXI.CanvasBuffer - */ - this.canvasBuffer = null; - - /** - * An internal Texture object that holds the tiling texture that was generated from TilingSprite.texture. - * - * @property tilingTexture - * @type PIXI.Texture - */ - this.tilingTexture = null; - - /** - * The Context fill pattern that is used to draw the TilingSprite in Canvas mode only (will be null in WebGL). - * - * @property tilePattern - * @type PIXI.Texture - */ - this.tilePattern = null; - - /** - * If true the TilingSprite will run generateTexture on its **next** render pass. - * This is set by the likes of Phaser.LoadTexture.setFrame. - * - * @property refreshTexture - * @type Boolean - * @default true - */ - this.refreshTexture = true; - - this.frameWidth = 0; - this.frameHeight = 0; - -}; - -PIXI.TilingSprite.prototype = Object.create(PIXI.Sprite.prototype); -PIXI.TilingSprite.prototype.constructor = PIXI.TilingSprite; - -PIXI.TilingSprite.prototype.setTexture = function(texture) -{ - if (this.texture !== texture) - { - this.texture = texture; - this.refreshTexture = true; - this.cachedTint = 0xFFFFFF; - } - -}; - -/** -* Renders the object using the WebGL renderer -* -* @method _renderWebGL -* @param renderSession {RenderSession} -* @private -*/ -PIXI.TilingSprite.prototype._renderWebGL = function(renderSession) -{ - if (this.visible === false || this.alpha === 0) - { - return; - } - - if (this._mask) - { - renderSession.spriteBatch.stop(); - renderSession.maskManager.pushMask(this.mask, renderSession); - renderSession.spriteBatch.start(); - } - - if (this._filters) - { - renderSession.spriteBatch.flush(); - renderSession.filterManager.pushFilter(this._filterBlock); - } - - if (this.refreshTexture) - { - this.generateTilingTexture(true); - - if (this.tilingTexture) - { - if (this.tilingTexture.needsUpdate) - { - renderSession.renderer.updateTexture(this.tilingTexture.baseTexture); - this.tilingTexture.needsUpdate = false; - } - } - else - { - return; - } - } - - renderSession.spriteBatch.renderTilingSprite(this); - - for (var i = 0; i < this.children.length; i++) - { - this.children[i]._renderWebGL(renderSession); - } - - renderSession.spriteBatch.stop(); - - if (this._filters) - { - renderSession.filterManager.popFilter(); - } - - if (this._mask) - { - renderSession.maskManager.popMask(this._mask, renderSession); - } - - renderSession.spriteBatch.start(); - -}; - -/** -* Renders the object using the Canvas renderer -* -* @method _renderCanvas -* @param renderSession {RenderSession} -* @private -*/ -PIXI.TilingSprite.prototype._renderCanvas = function(renderSession) -{ - if (this.visible === false || this.alpha === 0) - { - return; - } - - var context = renderSession.context; - - if (this._mask) - { - renderSession.maskManager.pushMask(this._mask, renderSession); - } - - context.globalAlpha = this.worldAlpha; - - var wt = this.worldTransform; - var resolution = renderSession.resolution; - - context.setTransform(wt.a * resolution, - wt.b * resolution, - wt.c * resolution, - wt.d * resolution, - wt.tx * resolution, - wt.ty * resolution); - - if (this.refreshTexture) - { - this.generateTilingTexture(false); - - if (this.tilingTexture) - { - this.tilePattern = context.createPattern(this.tilingTexture.baseTexture.source, 'repeat'); - } - else - { - return; - } - } - - var sessionBlendMode = renderSession.currentBlendMode; - - // Check blend mode - if (this.blendMode !== renderSession.currentBlendMode) - { - renderSession.currentBlendMode = this.blendMode; - context.globalCompositeOperation = PIXI.blendModesCanvas[renderSession.currentBlendMode]; - } - - var tilePosition = this.tilePosition; - var tileScale = this.tileScale; - - tilePosition.x %= this.tilingTexture.baseTexture.width; - tilePosition.y %= this.tilingTexture.baseTexture.height; - - // Translate - context.scale(tileScale.x, tileScale.y); - context.translate(tilePosition.x + (this.anchor.x * -this._width), tilePosition.y + (this.anchor.y * -this._height)); - - context.fillStyle = this.tilePattern; - - var tx = -tilePosition.x; - var ty = -tilePosition.y; - var tw = this._width / tileScale.x; - var th = this._height / tileScale.y; - - // Allow for pixel rounding - if (renderSession.roundPixels) - { - tx | 0; - ty | 0; - tw | 0; - th | 0; - } - - context.fillRect(tx, ty, tw, th); - - // Translate back again - context.scale(1 / tileScale.x, 1 / tileScale.y); - context.translate(-tilePosition.x + (this.anchor.x * this._width), -tilePosition.y + (this.anchor.y * this._height)); - - if (this._mask) - { - renderSession.maskManager.popMask(renderSession); - } - - for (var i = 0; i < this.children.length; i++) - { - this.children[i]._renderCanvas(renderSession); - } - - // Reset blend mode - if (sessionBlendMode !== this.blendMode) - { - renderSession.currentBlendMode = sessionBlendMode; - context.globalCompositeOperation = PIXI.blendModesCanvas[sessionBlendMode]; - } - -}; - -/** - * When the texture is updated, this event will fire to update the scale and frame - * - * @method onTextureUpdate - * @param event - * @private - */ -PIXI.TilingSprite.prototype.onTextureUpdate = function() -{ - // overriding the sprite version of this! -}; - -/** -* -* @method generateTilingTexture -* -* @param forcePowerOfTwo {Boolean} Whether we want to force the texture to be a power of two -*/ -PIXI.TilingSprite.prototype.generateTilingTexture = function(forcePowerOfTwo) -{ - if (!this.texture.baseTexture.hasLoaded) - { - return; - } - - var texture = this.texture; - var frame = texture.frame; - - var targetWidth = this._frame.sourceSizeW; - var targetHeight = this._frame.sourceSizeH; - - var dx = 0; - var dy = 0; - - if (this._frame.trimmed) - { - dx = this._frame.spriteSourceSizeX; - dy = this._frame.spriteSourceSizeY; - } - - if (forcePowerOfTwo) - { - targetWidth = PIXI.getNextPowerOfTwo(targetWidth); - targetHeight = PIXI.getNextPowerOfTwo(targetHeight); - } - - if (this.canvasBuffer) - { - this.canvasBuffer.resize(targetWidth, targetHeight); - this.tilingTexture.baseTexture.width = targetWidth; - this.tilingTexture.baseTexture.height = targetHeight; - this.tilingTexture.needsUpdate = true; - } - else - { - this.canvasBuffer = new PIXI.CanvasBuffer(targetWidth, targetHeight); - this.tilingTexture = PIXI.Texture.fromCanvas(this.canvasBuffer.canvas); - this.tilingTexture = PIXI.Texture.fromCanvas(this.canvasBuffer.canvas); - this.tilingTexture.isTiling = true; - this.tilingTexture.needsUpdate = true; - } - - if (this.textureDebug) - { - this.canvasBuffer.context.strokeStyle = '#00ff00'; - this.canvasBuffer.context.strokeRect(0, 0, targetWidth, targetHeight); - } - - // If a sprite sheet we need this: - var w = texture.crop.width; - var h = texture.crop.height; - - if (w !== targetWidth || h !== targetHeight) - { - w = targetWidth; - h = targetHeight; - } - - this.canvasBuffer.context.drawImage(texture.baseTexture.source, - texture.crop.x, - texture.crop.y, - texture.crop.width, - texture.crop.height, - dx, - dy, - w, - h); - - this.tileScaleOffset.x = frame.width / targetWidth; - this.tileScaleOffset.y = frame.height / targetHeight; - - this.refreshTexture = false; - - this.tilingTexture.baseTexture._powerOf2 = true; - -}; - -/** -* Returns the framing rectangle of the sprite as a PIXI.Rectangle object -* -* @method getBounds -* @return {Rectangle} the framing rectangle -*/ -PIXI.TilingSprite.prototype.getBounds = function() -{ - var width = this._width; - var height = this._height; - - var w0 = width * (1-this.anchor.x); - var w1 = width * -this.anchor.x; - - var h0 = height * (1-this.anchor.y); - var h1 = height * -this.anchor.y; - - var worldTransform = this.worldTransform; - - var a = worldTransform.a; - var b = worldTransform.b; - var c = worldTransform.c; - var d = worldTransform.d; - var tx = worldTransform.tx; - var ty = worldTransform.ty; - - var x1 = a * w1 + c * h1 + tx; - var y1 = d * h1 + b * w1 + ty; - - var x2 = a * w0 + c * h1 + tx; - var y2 = d * h1 + b * w0 + ty; - - var x3 = a * w0 + c * h0 + tx; - var y3 = d * h0 + b * w0 + ty; - - var x4 = a * w1 + c * h0 + tx; - var y4 = d * h0 + b * w1 + ty; - - var maxX = -Infinity; - var maxY = -Infinity; - - var minX = Infinity; - var minY = Infinity; - - minX = x1 < minX ? x1 : minX; - minX = x2 < minX ? x2 : minX; - minX = x3 < minX ? x3 : minX; - minX = x4 < minX ? x4 : minX; - - minY = y1 < minY ? y1 : minY; - minY = y2 < minY ? y2 : minY; - minY = y3 < minY ? y3 : minY; - minY = y4 < minY ? y4 : minY; - - maxX = x1 > maxX ? x1 : maxX; - maxX = x2 > maxX ? x2 : maxX; - maxX = x3 > maxX ? x3 : maxX; - maxX = x4 > maxX ? x4 : maxX; - - maxY = y1 > maxY ? y1 : maxY; - maxY = y2 > maxY ? y2 : maxY; - maxY = y3 > maxY ? y3 : maxY; - maxY = y4 > maxY ? y4 : maxY; - - var bounds = this._bounds; - - bounds.x = minX; - bounds.width = maxX - minX; - - bounds.y = minY; - bounds.height = maxY - minY; - - // store a reference so that if this function gets called again in the render cycle we do not have to recalculate - this._currentBounds = bounds; - - return bounds; -}; - -PIXI.TilingSprite.prototype.destroy = function () { - - PIXI.Sprite.prototype.destroy.call(this); - - this.tileScale = null; - this.tileScaleOffset = null; - this.tilePosition = null; - - if (this.tilingTexture) - { - this.tilingTexture.destroy(true); - this.tilingTexture = null; - } - -}; - -/** - * The width of the sprite, setting this will actually modify the scale to achieve the value set - * - * @property width - * @type Number - */ -Object.defineProperty(PIXI.TilingSprite.prototype, 'width', { - - get: function() { - return this._width; - }, - - set: function(value) { - this._width = value; - } - -}); - -/** - * The height of the TilingSprite, setting this will actually modify the scale to achieve the value set - * - * @property height - * @type Number - */ -Object.defineProperty(PIXI.TilingSprite.prototype, 'height', { - - get: function() { - return this._height; - }, - - set: function(value) { - this._height = value; - } - -}); - /** * @author Richard Davey * @copyright 2015 Photon Storm Ltd. @@ -56989,6 +57022,9 @@ Phaser.Cache.prototype = { /** * Gets a PIXI.Texture by key from the PIXI.TextureCache. * + * If the texture isn't found in the cache, then it searches the Phaser Image Cache and + * creates a new PIXI.Texture object which is then returned. + * * @method Phaser.Cache#getPixiTexture * @deprecated * @param {string} key - Asset key of the Texture to retrieve from the Cache. @@ -57002,19 +57038,29 @@ Phaser.Cache.prototype = { } else { - console.warn('Phaser.Cache.getPixiTexture: Invalid key: "' + key + '"'); - return null; + var base = this.getPixiBaseTexture(key); + + if (base) + { + return new PIXI.Texture(base); + } + else + { + return null; + } } }, /** - * Gets a PIXI.BaseTexture by key from the PIXI.BaseTExtureCache. + * Gets a PIXI.BaseTexture by key from the PIXI.BaseTextureCache. + * + * If the texture isn't found in the cache, then it searches the Phaser Image Cache. * * @method Phaser.Cache#getPixiBaseTexture * @deprecated * @param {string} key - Asset key of the BaseTexture to retrieve from the Cache. - * @return {PIXI.BaseTexture} The BaseTexture object. + * @return {PIXI.BaseTexture} The BaseTexture object or null if not found. */ getPixiBaseTexture: function (key) { @@ -57024,8 +57070,16 @@ Phaser.Cache.prototype = { } else { - console.warn('Phaser.Cache.getPixiBaseTexture: Invalid key: "' + key + '"'); - return null; + var img = this.getItem(key, Phaser.Cache.IMAGE, 'getPixiBaseTexture'); + + if (img !== null) + { + return img.base; + } + else + { + return null; + } } }, @@ -57068,9 +57122,9 @@ Phaser.Cache.prototype = { var out = []; - if (this._cache[cache]) + if (this._cacheMap[cache]) { - for (var key in this._cache[cache]) + for (var key in this._cacheMap[cache]) { if (key !== '__default' && key !== '__missing') { diff --git a/build/custom/phaser-no-physics.map b/build/custom/phaser-no-physics.map index 37f2d6848..0ffc1a1ca 100644 --- a/build/custom/phaser-no-physics.map +++ b/build/custom/phaser-no-physics.map @@ -1 +1 @@ -{"version":3,"file":"phaser-no-physics.min.js","sources":["phaser-no-physics.js"],"names":["PIXI","root","this","WEBGL_RENDERER","CANVAS_RENDERER","VERSION","_UID","Float32Array","Uint16Array","Uint32Array","ArrayBuffer","Array","PI_2","Math","PI","RAD_TO_DEG","DEG_TO_RAD","RETINA_PREFIX","defaultRenderOptions","view","transparent","antialias","preserveDrawingBuffer","resolution","clearBeforeRender","autoResize","DisplayObject","position","Point","scale","transformCallback","transformCallbackContext","pivot","rotation","alpha","visible","hitArea","renderable","parent","stage","worldAlpha","worldTransform","Matrix","worldPosition","worldScale","worldRotation","_sr","_cr","filterArea","_bounds","Rectangle","_currentBounds","_mask","_cacheAsBitmap","_cacheIsDirty","prototype","constructor","destroy","children","i","length","_destroyCachedSprite","Object","defineProperty","get","item","set","value","isMask","_filters","passes","filterPasses","j","push","_filterBlock","target","_generateCachedSprite","updateTransform","game","p","world","a","b","c","d","tx","ty","pt","wt","rotationCache","sin","cos","x","y","sqrt","atan2","call","displayObjectUpdateTransform","getBounds","matrix","EmptyRectangle","getLocalBounds","identityMatrix","setStageReference","preUpdate","generateTexture","scaleMode","renderer","bounds","renderTexture","RenderTexture","width","height","_tempMatrix","render","updateCache","toGlobal","apply","toLocal","from","applyInverse","_renderCachedSprite","renderSession","_cachedSprite","gl","Sprite","_renderWebGL","_renderCanvas","texture","resize","tempFilters","filters","anchor","DisplayObjectContainer","create","_width","_height","addChild","child","addChildAt","index","removeChild","splice","Error","swapChildren","child2","index1","getChildIndex","index2","indexOf","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","Texture","emptyTexture","tint","cachedTint","tintedTexture","blendMode","blendModes","NORMAL","shader","baseTexture","hasLoaded","onTextureUpdate","frame","setTexture","valid","w0","w1","h0","h1","x1","y1","x2","y2","x3","y3","x4","y4","crop","currentBlendMode","context","globalCompositeOperation","blendModesCanvas","globalAlpha","smoothProperty","scaleModes","LINEAR","dx","trim","dy","roundPixels","setTransform","cw","ch","requiresReTint","CanvasTinter","getTintedTexture","drawImage","cx","cy","source","fromFrame","frameId","TextureCache","fromImage","imageId","crossorigin","SpriteBatch","textureThing","ready","initWebGL","fastSpriteBatch","WebGLFastSpriteBatch","setContext","shaderManager","setShader","fastShader","transform","isRotated","childTransform","Stage","backgroundColor","setBackgroundColor","backgroundColorSplit","hex2rgb","hex","toString","substr","backgroundColorString","rgb2hex","rgb","canUseNewCanvasBlendModes","document","pngHead","pngEnd","magenta","Image","src","yellow","canvas","createElement","getContext","getImageData","data","getNextPowerOfTwo","number","result","isPowerOfTwo","PolyK","Triangulate","sign","n","tgs","avl","al","i0","i1","i2","ax","ay","bx","by","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","isArray","join","createShader","shaderSource","compileShader","getShaderParameter","COMPILE_STATUS","window","console","log","getShaderInfoLog","compileProgram","vertexSrc","fragmentSrc","fragmentShader","vertexShader","shaderProgram","createProgram","attachShader","linkProgram","getProgramParameter","LINK_STATUS","PixiShader","program","textureCount","firstRun","dirty","attributes","init","defaultVertexSrc","useProgram","uSampler","getUniformLocation","projectionVector","offsetVector","dimensions","aVertexPosition","getAttribLocation","aTextureCoord","colorAttribute","key","uniforms","uniformLocation","initUniforms","uniform","type","_init","initSampler2D","glMatrix","glValueLength","glFunc","uniformMatrix2fv","uniformMatrix3fv","uniformMatrix4fv","activeTexture","bindTexture","TEXTURE_2D","_glTextures","id","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","transpose","z","w","_dirty","instances","updateTexture","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","toArray","uniform1f","uniform2f","uniform3fv","bindBuffer","ARRAY_BUFFER","buffer","vertexAttribPointer","FLOAT","ELEMENT_ARRAY_BUFFER","indexBuffer","TRIANGLE_STRIP","lastIndex","clearDirty","graphicsData","reset","graphicsDataPool","Graphics","POLY","points","shape","slice","closed","fill","switchMode","canDrawUsingSimple","buildPoly","buildComplexPoly","lineWidth","buildLine","RECT","buildRectangle","CIRC","ELIP","buildCircle","RREC","buildRoundedRectangle","upload","pop","WebGLGraphicsData","rectData","fillColor","fillAlpha","r","g","verts","vertPos","tempPoints","rrectData","radius","recPoints","concat","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","a1","b1","c1","a2","b2","c2","denom","pdist","dist","indexCount","indexStart","lineColor","lineAlpha","abs","createBuffer","glPoints","bufferData","STATIC_DRAW","glIndicies","glContexts","WebGLRenderer","options","defaultRenderer","_contextOptions","premultipliedAlpha","stencil","WebGLShaderManager","WebGLSpriteBatch","WebGLMaskManager","WebGLFilterManager","WebGLStencilManager","blendModeManager","WebGLBlendModeManager","drawCount","initContext","mapBlendModes","glContextId","disable","DEPTH_TEST","CULL_FACE","enable","BLEND","contextLost","__stage","viewport","bindFramebuffer","FRAMEBUFFER","clearColor","clear","COLOR_BUFFER_BIT","renderDisplayObject","displayObject","setBlendMode","style","createTexture","UNPACK_PREMULTIPLY_ALPHA_WEBGL","NEAREST","mipmap","LINEAR_MIPMAP_LINEAR","NEAREST_MIPMAP_NEAREST","generateMipmap","_powerOf2","blendModesWebGL","ONE","ONE_MINUS_SRC_ALPHA","ADD","SRC_ALPHA","DST_ALPHA","MULTIPLY","DST_COLOR","SCREEN","OVERLAY","DARKEN","LIGHTEN","COLOR_DODGE","COLOR_BURN","HARD_LIGHT","SOFT_LIGHT","DIFFERENCE","EXCLUSION","HUE","SATURATION","COLOR","LUMINOSITY","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","size","numVerts","numIndices","vertices","positions","colors","lastIndexCount","drawing","currentBatchSize","currentBaseTexture","textures","shaders","sprites","AbstractFilter","vertexBuffer","DYNAMIC_DRAW","sprite","uvs","_uvs","aX","aY","x0","y0","renderTilingSprite","tilingTexture","TextureUvs","h","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","DEFAULT","framebufferTexture2D","COLOR_ATTACHMENT0","renderBuffer","createRenderbuffer","bindRenderbuffer","RENDERBUFFER","framebufferRenderbuffer","DEPTH_STENCIL_ATTACHMENT","renderbufferStorage","DEPTH_STENCIL","deleteFramebuffer","deleteTexture","CanvasBuffer","clearRect","CanvasMaskManager","save","cacheAlpha","CanvasGraphics","renderGraphicsMask","clip","restore","tintMethod","tintWithMultiply","fillStyle","fillRect","tintWithPerPixel","rgbValues","pixelData","pixels","canHandleAlpha","putImageData","checkInverseAlpha","s1","s2","canUseMultiply","CanvasRenderer","refresh","navigator","isCocoonJS","screencanvas","removeView","updateGraphicsTint","_fillTint","_lineTint","beginPath","moveTo","lineTo","closePath","strokeStyle","stroke","strokeRect","arc","kappa","ox","oy","xe","ye","xm","ym","bezierCurveTo","rx","ry","maxRadius","min","quadraticCurveTo","len","rect","tintR","tintG","tintB","BaseTextureCache","BaseTextureCacheIdGenerator","BaseTexture","complete","naturalWidth","naturalHeight","imageUrl","forceLoaded","_pixiId","unloadFromGPU","updateSourceImage","newSrc","glTexture","image","crossOrigin","fromCanvas","TextureCacheIdGenerator","FrameCache","TextureSilentFail","noFrame","isTiling","requiresUpdate","setFrame","onBaseTextureLoaded","destroyBase","_updateUvs","tw","th","addTextureToCache","removeTextureFromCache","textureBuffer","renderWebGL","renderCanvas","tempMatrix","Phaser","updateBase","identity","translate","append","realResolution","getImage","getBase64","getCanvas","toDataURL","webGLPixels","Uint8Array","readPixels","tempCanvas","canvasData","exports","module","define","amd","WheelEventProxy","scaleFactor","deltaMode","_scaleFactor","_deltaMode","originalEvent","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","CIRCLE","RECTANGLE","LINE","MATRIX","POINT","ROUNDEDRECTANGLE","CREATURE","VIDEO","trunc","ceil","floor","Function","bind","thisArg","bound","args","boundArgs","arguments","TypeError","F","proto","arg","forEach","fun","t","CheapArray","assert","warn","Utils","getProperty","obj","prop","parts","split","last","l","current","setProperty","chanceRoll","chance","random","randomChoice","choice1","choice2","parseDimension","dimension","f","parseInt","innerWidth","innerHeight","pad","str","dir","padlen","right","left","isPlainObject","nodeType","hasOwnProperty","e","extend","name","copy","copyIsArray","clone","deep","mixinPrototype","mixin","replace","mixinKeys","keys","to","o","childNodes","cloneNode","Circle","diameter","_diameter","_radius","circumference","out","setTo","copyFrom","copyTo","dest","distance","round","output","contains","circumferencePoint","angle","asDegrees","offsetPoint","point","top","bottom","equals","intersects","degToRad","intersectsRectangle","halfWidth","xDist","halfHeight","yDist","xCornerDist","yCornerDist","xCornerDistSq","yCornerDistSq","maxCornerDistSq","Ellipse","normx","normy","Line","fromSprite","startSprite","endSprite","useCenter","center","fromAngle","rotate","line","asSegment","intersectsPoints","reflect","pointOnLine","pointOnSegment","xMin","xMax","max","yMin","yMax","coordinatesOnLine","stepRate","results","sx","sy","err","e2","wrap","uc","ua","ub","normalAngle","fromArray","array","pos","newPos","tx1","d1","invert","add","subtract","multiply","divide","clampX","clamp","clampY","radToDeg","getMagnitude","getMagnitudeSq","setMagnitude","magnitude","normalize","isZero","m","dot","cross","perp","rperp","normalRightHand","negative","multiplyAdd","s","interpolate","project","amt","projectUnit","centroid","pointslength","parse","xProp","yProp","Polygon","area","_points","toNumberArray","flatten","inside","ix","iy","jx","jy","Number","MAX_VALUE","calculateArea","p1","p2","avgHeight","centerOn","centerX","centerY","floorAll","ceilAll","inflate","containsRect","intersection","intersectsRaw","tolerance","union","randomX","randomY","empty","inflatePoint","containsRaw","rw","rh","containsPoint","volume","sameDimensions","aabb","MIN_VALUE","RoundedRectangle","Camera","deadzone","roundPx","atLimit","totalInView","_targetPosition","_edge","_position","FOLLOW_LOCKON","FOLLOW_PLATFORMER","FOLLOW_TOPDOWN","FOLLOW_TOPDOWN_TIGHT","follow","helper","unfollow","focusOn","setPosition","focusOnXY","update","updateTarget","checkBounds","setBoundsToWorld","setSize","Create","bmd","make","bitmapData","ctx","palettes",1,2,3,4,5,6,7,8,9,"A","B","C","D","E","PALETTE_ARNE","PALETTE_JMP","PALETTE_CGA","PALETTE_C64","PALETTE_JAPANESE_MACHINE","pixelWidth","pixelHeight","palette","row","grid","cellWidth","cellHeight","State","camera","cache","input","load","math","sound","time","tweens","particles","physics","rnd","preload","loadUpdate","loadRender","preRender","paused","resumed","pauseUpdate","shutdown","StateManager","pendingState","states","_pendingState","_clearWorld","_clearCache","_created","_args","onStateChange","Signal","onInitCallback","onPreloadCallback","onCreateCallback","onUpdateCallback","onRenderCallback","onResizeCallback","onPreRenderCallback","onLoadUpdateCallback","onLoadRenderCallback","onPausedCallback","onResumedCallback","onPauseUpdateCallback","onShutDownCallback","boot","onPause","pause","onResume","resume","state","autoStart","newState","isBooted","remove","callbackContext","clearWorld","clearCache","checkState","restart","dummy","previousStateKey","clearCurrentState","setCurrentState","dispatch","totalQueuedFiles","totalQueuedPacks","loadComplete","removeAll","debug","link","unlink","_kickstart","getCurrentState","elapsedTime","renderType","_bindings","_prevParams","memorize","_shouldPropagate","active","_boundDispatch","validateListener","listener","fnName","_registerListener","isOnce","listenerContext","priority","binding","prevIndex","_indexOfListener","SignalBinding","_addBinding","execute","_priority","cur","_listener","has","addOnce","_destroy","getNumListeners","halt","bindings","paramsArr","forget","dispose","_this","signal","_isOnce","_signal","callCount","params","handlerReturn","detach","isBound","getListener","getSignal","Filter","prevPoint","Date","mouse","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","exists","currentRenderOrderID","_hiddenVar","_onChange","_backgroundColor","config","parseConfig","DOM","getOffset","Canvas","setUserSelect","setTouchAction","checkVisibility","webkitHidden","mozHidden","msHidden","hidden","event","visibilityChange","addEventListener","onblur","onfocus","onpagehide","onpageshow","device","cocoonJSApp","CocoonJS","App","onSuspended","onActivated","focusLoss","focusGain","gamePaused","gameResumed","Color","valueToColor","getColor","RGBtoString","removeEventListener","Group","addToStage","enableBody","physicsBodyType","Physics","ARCADE","physicsType","alive","ignoreDestroy","pendingDestroy","classType","cursor","enableBodyDebug","physicsSortDirection","onDestroy","cursorIndex","fixedToCamera","cameraOffset","hash","_sortProperty","RETURN_NONE","RETURN_TOTAL","RETURN_CHILD","SORT_ASCENDING","SORT_DESCENDING","silent","body","addToHash","events","onAddedToGroup$dispatch","removeFromHash","addMultiple","moveAll","addAt","updateZ","getAt","createMultiple","quantity","resetCursor","next","previous","swap","child1","bringToTop","getIndex","sendToBack","moveUp","moveDown","xy","oldChild","newChild","hasProperty","operation","force","checkProperty","checkAlive","checkVisible","setAll","setAllChildren","checkAll","addAll","property","amount","subAll","multiplyAll","divideAll","callAllExists","callback","existsValue","callbackFromArray","callAll","method","methodLength","contextLength","renderOrderID","predicate","checkExists","ArraySet","forEachExists","iterate","forEachAlive","forEachDead","sort","order","ascendingSortHandler","descendingSortHandler","customSort","sortHandler","returnType","total","getFirstExists","getFirstAlive","getFirstDead","getTop","getBottom","countLiving","countDead","getRandom","ArrayUtils","getRandomItem","destroyPhase","onRemovedFromGroup$dispatch","group","removeBetween","destroyChildren","soft","World","_definedSize","stateChange","setBounds","useBounds","horizontal","vertical","between","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","text","geom","uuid","topLeft","topMiddle","topRight","bottomLeft","bottomMiddle","bottomRight","ScaleManager","dom","minWidth","maxWidth","minHeight","maxHeight","forceLandscape","forcePortrait","incorrectOrientation","_pageAlignHorizontally","_pageAlignVertically","onOrientationChange","enterIncorrectOrientation","leaveIncorrectOrientation","fullScreenTarget","_createdFullScreenTarget","onFullScreenInit","onFullScreenChange","onFullScreenError","screenOrientation","getScreenOrientation","scaleFactorInversed","margin","aspectRatio","sourceAspectRatio","windowConstraints","compatibility","supportsFullScreen","orientationFallback","noMargins","scrollTo","forceMinimumDocumentHeight","canExpandParent","clickTrampoline","_scaleMode","NO_SCALE","_fullScreenScaleMode","parentIsWindow","parentNode","parentScaleFactor","trackParentInterval","onSizeChange","onResizeContext","_pendingScaleMode","_fullScreenRestore","_gameSize","_userScaleFactor","_userScaleTrim","_lastUpdate","_updateThrottle","_updateThrottleReset","_parentBounds","_tempBounds","_lastReportedCanvasSize","_lastReportedGameSize","_booted","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","visualBounds","newWidth","newHeight","updateDimensions","queueUpdate","currentScaleMode","setUserScale","hScale","vScale","hTrim","vTrim","setResizeCallback","signalSizeChange","setMinMax","prevThrottle","prevWidth","prevHeight","boundsChanged","orientationChanged","updateOrientationState","updateLayout","throttle","updateScalingAndBounds","forceOrientation","classifyOrientation","orientation","previousOrientation","previouslyIncorrect","isLandscape","isPortrait","changed","correctnessChanged","scrollTop","reflowGame","documentElement","setMaximum","setExactFit","isFullScreen","boundingParent","setShowAll","resetCanvas","reflowCanvas","layoutBounds","clientRect","getBoundingClientRect","wc","windowBounds","alignCanvas","parentBounds","canvasBounds","currentEdge","targetEdge","marginLeft","marginRight","marginTop","marginBottom","pageAlignHorizontally","pageAlignVertically","cssWidth","cssHeight","expanding","createFullScreenTarget","fsTarget","background","startFullScreen","allowTrampoline","setTimeout","activePointer","mousePointer","addClickTrampoline","smoothed","cleanupCreatedTarget","initData","targetElement","insertBefore","appendChild","fullscreenKeyboard","requestFullscreen","Element","ALLOW_KEYBOARD_INPUT","stopFullScreen","cancelFullscreen","prepScreenMode","enteringFullscreen","createdTarget","targetWidth","targetHeight","enterFullScreen","leaveFullScreen","letterBox","scaleX1","scaleY1","scaleX2","scaleY2","scaleOnWidth","Game","physicsConfig","isRunning","raf","net","Device","lockRender","stepping","pendingStep","stepCount","onBlur","onFocus","_paused","_codePaused","currentUpdateID","updatesThisFrame","_deltaTime","_lastCount","_spiraling","fpsProblemNotifier","forceSingleUpdate","_nextFpsNotification","enableDebug","RandomDataGenerator","now","whenReady","seed","setUpRenderer","GameObjectFactory","GameObjectCreator","Cache","Loader","Time","TweenManager","Input","SoundManager","Particles","Net","Debug","showDebugHeader","RequestAnimationFrame","stopFocus","focus","hideBanner","webAudio","contextRestored","addToDOM","preventDefault","clearGLTextures","updateLogic","desiredFps","updateRender","slowMotion","slowStep","elapsed","timeStep","enableStep","disableStep","step","removeFromDOM","setMute","cordova","iOS","unsetMute","hitCanvas","hitContext","moveCallbacks","pollRate","enabled","multiInputOverride","MOUSE_TOUCH_COMBINE","speed","circle","maxPointers","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","Touch","MSPointer","Keyboard","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","mouseDownCallback","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","BACK_BUTTON","FORWARD_BUTTON","WHEEL_UP","WHEEL_DOWN","onMouseDown","onMouseMove","onMouseUp","_onMouseUpGlobal","onMouseUpGlobal","onMouseOut","onMouseOver","onMouseWheel","wheelEvent","mouseMoveCallback","withinGame","bindEvent","deltaY","requestPointerLock","element","mozRequestPointerLock","webkitRequestPointerLock","_pointerLockChange","pointerLockChange","pointerLockElement","mozPointerLockElement","webkitPointerLockElement","releasePointerLock","exitPointerLock","mozExitPointerLock","webkitExitPointerLock","_stubsGenerated","makeBinder","defineProperties","detail","deltaX","wheelDeltaX","deltaZ","pointerDownCallback","pointerMoveCallback","pointerUpCallback","_onMSPointerDown","_onMSPointerMove","_onMSPointerUp","onPointerDown","onPointerMove","onPointerUp","pointerType","DeviceButton","buttonCode","isDown","isUp","timeDown","duration","timeUp","repeats","altKey","shiftKey","ctrlKey","onFloat","padFloat","justPressed","justReleased","leftButton","middleButton","rightButton","backButton","forwardButton","eraserButton","ERASER_BUTTON","_holdSent","_history","_nextDrop","_stateReset","clientX","clientY","pageX","pageY","screenX","screenY","rawMovementX","rawMovementY","movementX","movementY","isMouse","previousTapTime","totalTouches","msSinceLastClick","targetObject","positionDown","positionUp","_clickTrampolines","_trampolineTargetObject","resetButtons","updateButtons","buttons","totalActivePointers","_touchedHandler","processInteractiveObjects","shift","fromClick","pollLocked","mozMovementX","webkitMovementX","mozMovementY","webkitMovementY","isDragged","highestRenderOrderID","highestInputPriorityID","candidateTarget","currentNode","first","checked","validForInput","checkPointerDown","checkPointerOver","priorityID","_pointerOutHandler","_pointerOverHandler","leave","currentPointers","callbackArgs","trampolines","trampoline","_releasedHandler","resetMovement","touchLockCallbacks","touchStartCallback","touchMoveCallback","touchEndCallback","touchEnterCallback","touchLeaveCallback","touchCancelCallback","_onTouchStart","_onTouchMove","_onTouchEnd","_onTouchEnter","_onTouchLeave","_onTouchCancel","onTouchStart","onTouchMove","onTouchEnd","onTouchEnter","onTouchLeave","onTouchCancel","consumeDocumentTouches","_documentTouchMove","addTouchLockCallback","removeTouchLockCallback","changedTouches","InputHandler","useHandCursor","_setHandCursor","allowHorizontalDrag","allowVerticalDrag","snapOffset","snapOnDrag","snapOnRelease","snapX","snapY","snapOffsetX","snapOffsetY","pixelPerfectOver","pixelPerfectClick","pixelPerfectAlpha","draggable","boundsRect","boundsSprite","consumePointerEvent","scaleLayer","dragOffset","dragFromCenter","dragStartPoint","snapPoint","_dragPoint","_dragPhase","_wasEnabled","_tempPoint","_pointerData","isOver","isOut","timeOver","timeOut","downDuration","onAddedToGroup","addedToGroup","onRemovedFromGroup","removedFromGroup","flagged","highestID","highestRenderID","includePixelPerfect","isPixelPerfect","pointerX","pointerY","pointerDown","pointerUp","pointerTimeDown","pointerTimeUp","pointerOver","pointerOut","pointerTimeOver","pointerTimeOut","pointerDragged","fastTest","checkPixel","_dx","_dy","_draggedPointerID","updateDrag","onInputOver$dispatch","onInputOut$dispatch","onInputDown$dispatch","startDrag","onInputUp$dispatch","stopDrag","globalToLocalX","globalToLocalY","checkBoundsRect","checkBoundsSprite","onDragUpdate","justOver","delay","overDuration","justOut","enableDrag","lockCenter","pixelPerfect","alphaThreshold","disableDrag","onDragStart$dispatch","onDragStop$dispatch","setDragLock","allowHorizontal","allowVertical","enableSnap","onDrag","onRelease","disableSnap","_gamepadIndexMap","_rawPads","_active","_gamepadSupportAvailable","webkitGetGamepads","webkitGamepads","userAgent","getGamepads","_prevRawGamepadTypes","_prevTimestamps","onConnectCallback","onDisconnectCallback","onDownCallback","onUpCallback","onAxisCallback","onFloatCallback","_ongamepadconnected","_gamepaddisconnected","_gamepads","SinglePad","addCallbacks","callbacks","onConnect","onDisconnect","onAxis","_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","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","processButtonDown","processButtonUp","processButtonFloat","axes","processAxisChange","triggerCallback","disconnectingIndex","axis","axisCode","buttonValue","Key","keycode","_enabled","keyCode","onHoldCallback","onHoldContext","_justDown","_justUp","processKeyDown","processKeyUp","upDuration","pressEvent","onPressCallback","_keys","_capture","_onKeyDown","_onKeyPress","_onKeyUp","_k","onPress","addKey","addKeyCapture","addKeys","removeKey","removeKeyCapture","createCursorKeys","up","down","processKeyPress","clearCaptures","String","fromCharCode","charCode","charCodeAt","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","COMMA","UNDERSCORE","PERIOD","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","PLUS","MINUS","INSERT","DELETE","HELP","NUM_LOCK","Component","Angle","wrapAngle","Animation","play","frameRate","loop","killOnComplete","animations","AutoCull","autoCull","inCamera","checkWorldBounds","Bounds","BringToTop","Core","install","components","previousPosition","Events","PhysicsBody","AnimationManager","LoadTexture","loadTexture","FixedToCamera","previousRotation","fresh","_exists","P2JS","removeFromWorld","customRender","Crop","cropRect","_crop","updateCrop","resetFrame","_frame","Delta","Destroy","onDestroy$dispatch","Video","onChangeSource","resizeFrame","BitmapText","_glyphs","_parent","_onDestroy","_onAddedToGroup","_onRemovedFromGroup","_onRemovedFromWorld","_onKilled","_onRevived","_onEnterBounds","_onOutOfBounds","_onInputOver","_onInputOut","_onInputDown","_onInputUp","_onDragStart","_onDragUpdate","_onDragStop","_onAnimationStart","_onAnimationComplete","_onAnimationLoop","onRemovedFromWorld","onKilled","onRevived","onOutOfBounds","onEnterBounds","onInputOver","onInputOut","onInputDown","onInputUp","onDragStart","onDragStop","onAnimationStart","onAnimationComplete","onAnimationLoop","backing","_fixedToCamera","Health","health","maxHealth","damage","kill","heal","InCamera","InputEnabled","inputEnabled","InWorld","_outOfBoundsFired","onEnterBounds$dispatch","onOutOfBounds$dispatch","outOfBoundsKill","inWorld","LifeSpan","lifespan","physicsElapsedMS","revive","onRevived$dispatch","onKilled$dispatch","stopAnimation","BitmapData","hasFrameData","loadFrameData","getFrameData","img","base","frameData","trimmed","spriteSourceSizeX","spriteSourceSizeY","sourceSizeW","sourceSizeH","refreshTexture","frameName","Overlap","overlap","_reset","Reset","ScaleMinMax","checkTransform","scaleMin","scaleMax","setScaleMinMax","Smoothed","existing","object","tween","physicsGroup","audio","audioSprite","addSprite","tileSprite","rope","Rope","Text","overFrame","outFrame","downFrame","upFrame","Button","emitter","maxParticles","Arcade","Emitter","retroFont","font","characterWidth","characterHeight","chars","charsPerRow","xSpacing","ySpacing","xOffset","yOffset","RetroFont","bitmapText","tilemap","tileWidth","tileHeight","Tilemap","addToCache","addRenderTexture","video","url","addBitmapData","Tween","align","preUpdatePhysics","preUpdateLifeSpan","preUpdateInWorld","preUpdateCore","_scroll","def","TilingSprite","physicsElapsed","autoScroll","stopScroll","_hasUpdateAnimation","_updateAnimationCallback","updateAnimation","_updateAnimation","segments","difference","_onOverFrame","_onOutFrame","_onDownFrame","_onUpFrame","onOverSound","onOutSound","onDownSound","onUpSound","onOverSoundMarker","onOutSoundMarker","onDownSoundMarker","onUpSoundMarker","onOverMouseOnly","freezeFrames","forceOut","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","Particle","autoScale","scaleData","_s","autoAlpha","alphaData","_a","onEmit","setAlphaData","setScaleData","imageData","textureFrame","Frame","disableTextureUpload","cls","_image","_pos","_size","_scale","_rotate","_alpha","prev","_anchor","_tempR","_tempG","_tempB","_circle","_swapCanvas","moveH","moveV","draw","addImage","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","direction","scan","anchorX","anchorY","copyRect","drawGroup","shadow","blur","shadowColor","shadowBlur","shadowOffsetX","shadowOffsetY","alphaMask","sourceRect","maskRect","blendSourceAtop","blendReset","extract","destination","prevFont","fillText","textureLine","createPattern","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","currentPath","boundsPadding","_localBounds","webGLDirty","cachedSpriteDirty","lineStyle","drawShape","cpX2","cpY2","dt","dt2","dt3","t2","t3","arcTo","mm","dd","cc","tt","k1","k2","j1","j2","qx","qy","startAngle","endAngle","anticlockwise","sweep","segs","startX","startY","filling","theta","theta2","cTheta","sTheta","segMinus","remainder","real","beginFill","endFill","drawRect","drawRoundedRect","drawCircle","drawEllipse","drawPolygon","path","canvasBuffer","updateCachedSpriteTexture","_prevTint","updateLocalBounds","tempPoint","cachedSprite","destroyCachedSprite","GraphicsData","drawTriangle","cull","triangle","cameraToFace","ab","cb","faceNormal","drawTriangles","point1","point2","point3","renderXY","renderRawXY","textBounds","strokeColors","autoRound","_res","_text","_fontComponents","_lineSpacing","_charCount","setStyle","updateText","setShadow","shadowStroke","shadowFill","boundsAlignH","boundsAlignV","strokeThickness","wordWrap","wordWrapWidth","tabs","fontToComponents","fontStyle","fontVariant","fontWeight","fontSize","componentsToFont","outputText","runWordWrap","lines","lineWidths","maxLineWidth","fontProperties","determineFontProperties","measureText","tab","section","snapToCeil","lineHeight","lineSpacing","textBaseline","lineCap","lineJoin","linePositionX","linePositionY","ascent","updateLine","updateShadow","strokeText","renderTabLine","snap","letter","clearColors","addColor","addStrokeColor","spaceLeft","words","wordWidth","wordWidthWithSpace","updateFont","match","fontFamily","setText","parseList","list","setTextBounds","properties","fontPropertiesCache","fontPropertiesCanvas","fontPropertiesContext","baseline","descent","imagedata","idx","exec","parseFloat","textWidth","textHeight","_prevAnchor","_maxWidth","_data","getBitmapFont","_font","_fontSize","_align","_tint","sourceWidth","sourceHeight","scanLine","lastSpace","prevCharCode","test","charAt","charData","kerning","xAdvance","purgeGlyphs","kept","checkImageKey","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","content","characterSpacing","allowLowerCase","buildRetroFontText","getLongestLine","pasteLine","longestLine","removeUnsupportedCharacters","stripCR","newString","aChar","code","updateOffset","diffX","diffY","frames","getFrames","newText","toUpperCase","Strip","canvasPadding","drawMode","DrawModes","_vertexBuffer","_initWebGL","_renderStrip","_indexBuffer","_uvBuffer","_colorBuffer","_renderCanvasTriangleStrip","_renderCanvasTriangles","_renderCanvasDrawTriangle","index0","textureSource","textureWidth","textureHeight","u0","u1","u2","v0","v1","v2","paddingX","paddingY","normX","normY","delta","deltaA","deltaB","deltaC","deltaD","deltaE","deltaF","renderStripFlat","strip","updateFrame","rawX","rawY","nextPoint","ratio","perpLength","num","textureDebug","tilePattern","frameWidth","frameHeight","generateTilingTexture","needsUpdate","sessionBlendMode","forcePowerOfTwo","deviceReadyAt","initialized","node","nodeWebkit","electron","ejecta","crosswalk","chromeOS","linux","macOS","windows","windowsPhone","canvasBitBltShift","file","fileSystem","localStorage","worker","css3D","typedArray","vibration","getUserMedia","quirksMode","arora","chromeVersion","epiphany","firefox","firefoxVersion","ie","ieVersion","trident","tridentVersion","mobileSafari","midori","opera","safari","silk","audioData","ogg","opus","mp3","wav","m4a","webm","oggVideo","h264Video","mp4Video","webmVideo","vp9Video","hlsVideo","iPhone","iPhone4","pixelRatio","littleEndian","support32bit","onInitialized","nonPrimer","readyCheck","_readyCheck","_monitor","_queue","readyState","_initialize","_checkOS","vita","kindle","_checkFeatures","getItem","error","WebGLRenderingContext","compatMode","webkitGetUserMedia","mozGetUserMedia","msGetUserMedia","oGetUserMedia","URL","webkitURL","mozURL","msURL","_checkInput","maxTouchPoints","msPointerEnabled","pointerEnabled","_checkFullScreenSupport","fs","cfs","_checkBrowser","RegExp","$1","$3","process","require","versions","_checkVideo","videoElement","canPlayType","_checkAudio","audioElement","_checkDevice","toLowerCase","Int8Array","_checkIsLittleEndian","Uint8ClampedArray","Int32Array","_checkIsUint8ClampedImageData","vibrate","webkitVibrate","mozVibrate","msVibrate","elem","createImageData","_checkCSS3D","has3d","el","transforms","webkitTransform","OTransform","msTransform","MozTransform","getComputedStyle","getPropertyValue","canPlayAudio","canPlayVideo","isConsoleOpen","profile","profileEnd","isAndroidStockBrowser","matches","box","scrollY","scrollLeft","scrollX","clientTop","clientLeft","cushion","calibrate","coords","getAspectRatio","inLayoutViewport","primaryFallback","screen","mozOrientation","msOrientation","PORTRAIT","LANDSCAPE","matchMedia","documentBounds","pageXOffset","pageYOffset","treatAsDesktop","clientWidth","clientHeight","offsetWidth","scrollWidth","offsetHeight","scrollHeight","display","msTouchAction","overflowHidden","overflow","vendor","prefix","setImageRenderingCrisp","msInterpolationMode","setImageRenderingBicubic","forceSetTimeOut","vendors","requestAnimationFrame","cancelAnimationFrame","_isSetTimeOut","_onLoop","_timeOutID","updateSetTimeout","updateRAF","rafTime","timeToCall","clearTimeout","isSetTimeOut","isRAF","PI2","fuzzyEqual","epsilon","fuzzyLessThan","fuzzyGreaterThan","fuzzyCeil","val","fuzzyFloor","average","sum","shear","snapTo","gap","snapToFloor","roundTo","place","pow","floorTo","ceilTo","angleBetween","angleBetweenY","angleBetweenPoints","angleBetweenPointsY","reverseAngle","angleRad","normalizeAngle","maxAdd","minSub","wrapValue","isOdd","isEven","minProperty","maxProperty","radians","linearInterpolation","linear","bezierInterpolation","bernstein","catmullRomInterpolation","catmullRom","p0","factorial","res","p3","roundAwayFromZero","sinCosGenerator","sinAmplitude","cosAmplitude","frequency","frq","cosTable","sinTable","distanceSq","distancePow","clampBottom","within","mapLinear","smoothstep","smootherstep","percent","degreeToRadiansFactor","radianToDegreesFactor","degrees","seeds","s0","sow","integer","frac","integerInRange","realInRange","normal","pick","ary","weightedPick","QuadTree","maxObjects","maxLevels","objects","nodes","_empty","subWidth","subHeight","populate","populateHandler","insert","retrieve","returnObjects","getHostName","location","hostname","checkDomainName","domain","updateQueryString","redirect","href","re","separator","getQueryString","parameter","keyValues","search","substring","decodeURI","decodeURIComponent","_tweens","_add","easeMap","Power0","Easing","Power1","Power2","Power3","Power4","Linear","None","Quad","Quadratic","Out","Cubic","Quart","Quartic","Quint","Quintic","Sine","Sinusoidal","Expo","Exponential","Circ","Circular","Elastic","Back","Bounce","Quad.easeIn","In","Cubic.easeIn","Quart.easeIn","Quint.easeIn","Sine.easeIn","Expo.easeIn","Circ.easeIn","Elastic.easeIn","Back.easeIn","Bounce.easeIn","Quad.easeOut","Cubic.easeOut","Quart.easeOut","Quint.easeOut","Sine.easeOut","Expo.easeOut","Circ.easeOut","Elastic.easeOut","Back.easeOut","Bounce.easeOut","Quad.easeInOut","InOut","Cubic.easeInOut","Quart.easeInOut","Quint.easeInOut","Sine.easeInOut","Expo.easeInOut","Circ.easeInOut","Elastic.easeInOut","Back.easeInOut","Bounce.easeInOut","_pauseAll","_resumeAll","getAll","pendingDelete","removeFrom","_manager","addTweens","numTweens","isTweening","some","_pause","_resume","pauseAll","resumeAll","timeline","timeScale","repeatCounter","onStart","onLoop","onRepeat","onChildComplete","onComplete","chainedTween","isPaused","_onUpdateCallback","_onUpdateCallbackContext","_pausedTime","_hasStarted","ease","yoyo","Default","TweenData","vEnd","loadValues","updateTweenData","repeatDelay","yoyoDelay","easing","interpolation","repeatAll","chain","startTime","status","PENDING","RUNNING","LOOPED","COMPLETE","generateData","vStart","vStartCache","vEndCache","inReverse","easingFunction","interpolationFunction","interpolationContext","isFrom","yoyoCounter","elapsedMS","fps","blob","reversed","asin","prevTime","suggestedFps","advancedTiming","fpsMin","fpsMax","msMin","msMax","pauseDuration","timeExpected","Timer","_frameCount","_elapsedAccumulator","_started","_timeLastSecond","_pauseStarted","_justResumed","_timers","timer","autoDestroy","updateAdvancedTiming","updateTimers","previousDateNow","timeCallExpected","elapsedSince","since","elapsedSecondsSince","running","expired","nextTick","timeCap","_pauseTotal","_now","_marked","_diff","_newTick","MINUTE","SECOND","HALF","QUARTER","repeatCount","tick","TimerEvent","clearEvents","clearPendingEvents","adjustEvents","baseTime","ms","currentFrame","currentAnim","updateIfVisible","isLoaded","_frameData","_anims","_outputFrames","anim","copyFrameData","useNumericIndex","getFrameIndexes","validateFrames","checkFrameName","isPlaying","getAnimation","refreshFrame","getFrame","getFrameByName","_frameIndex","_frames","loopCount","isFinished","_pauseStartTime","_frameDiff","_frameSkip","onUpdate","_timeLastFrame","_timeNextFrame","updateCurrentFrame","onAnimationStart$dispatch","useLocalFrameIndex","frameIndex","dispatchComplete","onAnimationComplete$dispatch","onAnimationLoop$dispatch","signalUpdate","fromPlay","generateFrameNames","suffix","zeroPad","rotated","rotationDirection","spriteSourceSizeW","spriteSourceSizeH","setTrim","actualWidth","actualHeight","destX","destY","destWidth","destHeight","getRect","_frameNames","getFrameRange","AnimationParser","spriteSheet","frameMax","spacing","column","JSONData","json","newFrame","filename","sourceSize","spriteSourceSize","JSONDataHash","XMLData","xml","getElementsByTagName","frameX","frameY","autoResolveURL","_cache","binary","bitmapFont","_urlMap","_urlResolver","_urlTemp","onSoundUnlock","_cacheMap","TEXTURE","SOUND","PHYSICS","BINARY","BITMAPFONT","JSON","XML","SHADER","RENDER_TEXTURE","addDefaultImage","addMissingImage","addCanvas","removeImage","_resolveURL","addSound","audioTag","decoded","isDecoding","touchLocked","addText","addPhysicsData","addTilemap","mapData","addBinary","binaryData","addBitmapFont","atlasData","atlasType","LoaderParser","jsonBitmapFont","xmlBitmapFont","addJSON","addXML","addVideo","isBlob","addShader","addSpriteSheet","addTextureAtlas","TEXTURE_ATLAS_XML_STARLING","reloadSound","getSound","reloadSoundComplete","updateSound","decodedSound","isSoundDecoded","isSoundReady","checkKey","checkURL","checkCanvasKey","checkTextureKey","checkSoundKey","checkTextKey","checkPhysicsKey","checkTilemapKey","checkBinaryKey","checkBitmapDataKey","checkBitmapFontKey","checkJSONKey","checkXMLKey","checkVideoKey","checkShaderKey","checkRenderTextureKey","full","getTextureFrame","getSoundData","getText","getPhysicsData","fixtureKey","fixtures","fixture","getTilemapData","getBinary","getBitmapData","getJSON","getXML","getVideo","getShader","getRenderTexture","getBaseTexture","getFrameCount","getFrameByIndex","getPixiTexture","getPixiBaseTexture","getURL","getKeys","removeCanvas","removeFromPixi","removeSound","removeText","removePhysics","removeTilemap","removeBinary","removeBitmapData","removeBitmapFont","removeJSON","removeXML","removeVideo","removeShader","removeRenderTexture","removeSpriteSheet","removeTextureAtlas","atlas","baseURL","isLoading","preloadSprite","onLoadStart","onLoadComplete","onPackComplete","onFileStart","onFileComplete","onFileError","useXDomainRequest","_warnedAboutXDomainRequest","enableParallel","maxParallelDownloads","_withSyncPointDepth","_fileList","_flightQueue","_processingHead","_fileLoadStarted","_totalPackCount","_totalFileCount","_loadedPackCount","_loadedFileCount","TEXTURE_ATLAS_JSON_ARRAY","TEXTURE_ATLAS_JSON_HASH","PHYSICS_LIME_CORONA_JSON","PHYSICS_PHASER_JSON","setPreloadSprite","checkKeyExists","getAssetIndex","bestFound","loaded","loading","getAsset","fileIndex","addToFileList","overwrite","extension","syncPoint","currentFile","replaceInFileList","pack","script","spritesheet","urls","autoDecode","noAudio","audiosprite","jsonURL","jsonData","loadEvent","asBlob","CSV","TILED_JSON","LIME_CORONA_JSON","textureURL","atlasURL","parseXml","atlasJSONArray","atlasJSONHash","atlasXML","withSyncPoint","addSyncPoint","asset","removeFile","updateProgress","processLoadQueue","finishedLoading","requestUrl","requestObject","progress","syncblock","inflightLimit","processPack","loadFile","abnormal","asyncComplete","errorMessage","packData","transformUrl","xhrLoad","fileComplete","loadImageTag","getAudioURL","usingWebAudio","usingAudioTag","loadAudioTag","fileError","getVideoURL","loadVideoTag","jsonLoadComplete","xmlLoadComplete","csvLoadComplete","onload","onerror","controls","autoplay","videoLoadEvent","canplay","Audio","playThroughEvent","XDomainRequest","xhrLoadWithXDR","xhr","XMLHttpRequest","open","responseType","message","send","timeout","ontimeout","onprogress","videoType","uri","lastIndexOf","audioType","reason","loadNext","responseText","Blob","response","decode","language","defer","head","contentType","domparser","DOMParser","parseFromString","ActiveXObject","async","loadXML","totalLoadedFiles","totalLoadedPacks","progressFloat","info","common","getAttribute","letters","kernings","second","finalizeBitmapFont","_face","_lineHeight","_id","_xoffset","_yoffset","_xadvance","_second","_first","_amount","bitmapFontData","autoplayKey","sounds","spritemap","addMarker","connectToMaster","markers","totalDuration","currentTime","durationMS","stopTime","pausedPosition","pausedTime","currentMarker","fadeTween","pendingPlayback","override","allowMultiple","externalNode","masterGainNode","gainNode","_sound","masterGain","createGain","createGainNode","gain","soundHasUnlocked","onDecoded","onPlay","onStop","onMute","onMarkerComplete","onFadeComplete","_volume","_buffer","_muted","_tempMarker","_tempPosition","_tempVolume","_muteVolume","_tempLoop","_onDecodedEventDispatched","removeMarker","onEndedHandler","isDecoded","loopFull","forceRestart","noteOff","createBufferSource","onended","noteGrainOn","muted","prevMarker","fadeIn","fadeTo","fadeOut","fadeComplete","mute","onSoundDecode","onVolumeChange","onUnMute","channels","_codeMuted","_unlockSource","_sounds","_watchList","_watching","_watchCallback","_watchContext","disableAudio","disableWebAudio","audioContext","fakeiOSTouchLock","setTouchLock","unlock","noteOn","stopAll","soundData","decodeAudioData","setDecodedCallback","files","playbackState","PLAYING_STATE","FINISHED_STATE","removeByKey","columnWidth","renderShadow","currentAlpha","currentColor","soundInfo","cameraInfo","hideIfUp","downColor","upColor","worldX","worldY","spriteInputInfo","justDown","justUp","inputInfo","spriteBounds","filled","rectangle","ropeSegments","self","segment","spriteInfo","spriteCoords","lineInfo","forceType","quadTree","quadtree","Body","NINJA","Ninja","BOX2D","Box2D","renderBody","bodyInfo","renderBodyInfo","box2d","box2dWorld","renderDebugDraw","box2dBody","getByKey","randomIndex","removeRandomItem","shuffle","transposeMatrix","sourceRowCount","sourceColCount","rotateMatrix","findClosest","arr","NaN","low","high","POSITIVE_INFINITY","numberArray","numberArrayStep","rgba","RGBtoHSL","RGBtoHSV","fromRGBA","toRGBA","q","hueToColor","updateColor","HSVtoRGB","color32","getColor32","componentToHex","hexToRGB","hexToColor","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","blendNormal","blendAverage","blendSubtract","blendNegation","blendLinearDodge","blendLinearBurn","blendLinearLight","blendVividLight","blendPinLight","blendHardMix","blendReflect","blendGlow","blendPhoenix","LinkedList","entity","arcade","ninja","chipmunk","matter","CHIPMUNK","MATTERJS","P2","Matter","startSystem","system","enableAABB","emitters","ID","onAccess","onError","onTimeout","videoStream","isStreaming","retryLimit","retry","retryInterval","_retryID","_pending","_autoplay","_video","createVideoFromBlob","videoWidth","videoHeight","createVideoFromURL","snapshot","connectToMediaStream","stream","startMediaStream","captureAudio","removeVideoElement","setAttribute","getUserMediaTimeout","getUserMediaSuccess","getUserMediaError","mozSrcObject","createObjectURL","onloadeddata","checkStream","checkVideoProgress","change","playbackRate","setPause","setResume","playHandler","playing","ended","changeSource","grab","hasChildNodes","firstChild","removeAttribute"],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"phaser-no-physics.min.js","sources":["phaser-no-physics.js"],"names":["root","this","PIXI","WEBGL_RENDERER","CANVAS_RENDERER","VERSION","_UID","Float32Array","Uint16Array","Uint32Array","ArrayBuffer","Array","PI_2","Math","PI","RAD_TO_DEG","DEG_TO_RAD","RETINA_PREFIX","defaultRenderOptions","view","transparent","antialias","preserveDrawingBuffer","resolution","clearBeforeRender","autoResize","DisplayObject","position","Point","scale","transformCallback","transformCallbackContext","pivot","rotation","alpha","visible","hitArea","renderable","parent","stage","worldAlpha","worldTransform","Matrix","worldPosition","worldScale","worldRotation","_sr","_cr","filterArea","_bounds","Rectangle","_currentBounds","_mask","_cacheAsBitmap","_cacheIsDirty","prototype","constructor","destroy","children","i","length","_destroyCachedSprite","Object","defineProperty","get","item","set","value","isMask","_filters","passes","filterPasses","j","push","_filterBlock","target","_generateCachedSprite","updateTransform","game","p","world","a","b","c","d","tx","ty","pt","wt","rotationCache","sin","cos","x","y","sqrt","atan2","call","displayObjectUpdateTransform","getBounds","matrix","EmptyRectangle","getLocalBounds","identityMatrix","setStageReference","preUpdate","generateTexture","scaleMode","renderer","bounds","renderTexture","RenderTexture","width","height","_tempMatrix","render","updateCache","toGlobal","apply","toLocal","from","applyInverse","_renderCachedSprite","renderSession","_cachedSprite","gl","Sprite","_renderWebGL","_renderCanvas","texture","resize","tempFilters","filters","anchor","DisplayObjectContainer","create","_width","_height","addChild","child","addChildAt","index","removeChild","splice","Error","swapChildren","child2","index1","getChildIndex","index2","indexOf","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","Texture","emptyTexture","tint","cachedTint","tintedTexture","blendMode","blendModes","NORMAL","shader","baseTexture","hasLoaded","onTextureUpdate","frame","setTexture","valid","w0","w1","h0","h1","x1","y1","x2","y2","x3","y3","x4","y4","crop","currentBlendMode","context","globalCompositeOperation","blendModesCanvas","globalAlpha","smoothProperty","scaleModes","LINEAR","dx","trim","dy","roundPixels","setTransform","cw","ch","requiresReTint","CanvasTinter","getTintedTexture","drawImage","cx","cy","source","fromFrame","frameId","TextureCache","fromImage","imageId","crossorigin","SpriteBatch","textureThing","ready","initWebGL","fastSpriteBatch","WebGLFastSpriteBatch","setContext","shaderManager","setShader","fastShader","transform","isRotated","childTransform","Stage","backgroundColor","setBackgroundColor","backgroundColorSplit","hex2rgb","hex","toString","substr","backgroundColorString","rgb2hex","rgb","canUseNewCanvasBlendModes","document","pngHead","pngEnd","magenta","Image","src","yellow","canvas","createElement","getContext","getImageData","data","getNextPowerOfTwo","number","result","isPowerOfTwo","PolyK","Triangulate","sign","n","tgs","avl","al","i0","i1","i2","ax","ay","bx","by","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","isArray","join","createShader","shaderSource","compileShader","getShaderParameter","COMPILE_STATUS","window","console","log","getShaderInfoLog","compileProgram","vertexSrc","fragmentSrc","fragmentShader","vertexShader","shaderProgram","createProgram","attachShader","linkProgram","getProgramParameter","LINK_STATUS","PixiShader","program","textureCount","firstRun","dirty","attributes","init","defaultVertexSrc","useProgram","uSampler","getUniformLocation","projectionVector","offsetVector","dimensions","aVertexPosition","getAttribLocation","aTextureCoord","colorAttribute","key","uniforms","uniformLocation","initUniforms","uniform","type","_init","initSampler2D","glMatrix","glValueLength","glFunc","uniformMatrix2fv","uniformMatrix3fv","uniformMatrix4fv","activeTexture","bindTexture","TEXTURE_2D","_glTextures","id","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","transpose","z","w","_dirty","instances","updateTexture","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","toArray","uniform1f","uniform2f","uniform3fv","bindBuffer","ARRAY_BUFFER","buffer","vertexAttribPointer","FLOAT","ELEMENT_ARRAY_BUFFER","indexBuffer","TRIANGLE_STRIP","lastIndex","clearDirty","graphicsData","reset","graphicsDataPool","Graphics","POLY","points","shape","slice","closed","fill","switchMode","canDrawUsingSimple","buildPoly","buildComplexPoly","lineWidth","buildLine","RECT","buildRectangle","CIRC","ELIP","buildCircle","RREC","buildRoundedRectangle","upload","pop","WebGLGraphicsData","rectData","fillColor","fillAlpha","r","g","verts","vertPos","tempPoints","rrectData","radius","recPoints","concat","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","a1","b1","c1","a2","b2","c2","denom","pdist","dist","indexCount","indexStart","lineColor","lineAlpha","abs","createBuffer","glPoints","bufferData","STATIC_DRAW","glIndicies","glContexts","WebGLRenderer","options","defaultRenderer","_contextOptions","premultipliedAlpha","stencil","WebGLShaderManager","WebGLSpriteBatch","WebGLMaskManager","WebGLFilterManager","WebGLStencilManager","blendModeManager","WebGLBlendModeManager","drawCount","initContext","mapBlendModes","glContextId","disable","DEPTH_TEST","CULL_FACE","enable","BLEND","contextLost","__stage","viewport","bindFramebuffer","FRAMEBUFFER","clearColor","clear","COLOR_BUFFER_BIT","renderDisplayObject","displayObject","setBlendMode","style","createTexture","UNPACK_PREMULTIPLY_ALPHA_WEBGL","NEAREST","mipmap","LINEAR_MIPMAP_LINEAR","NEAREST_MIPMAP_NEAREST","generateMipmap","_powerOf2","blendModesWebGL","ONE","ONE_MINUS_SRC_ALPHA","ADD","SRC_ALPHA","DST_ALPHA","MULTIPLY","DST_COLOR","SCREEN","OVERLAY","DARKEN","LIGHTEN","COLOR_DODGE","COLOR_BURN","HARD_LIGHT","SOFT_LIGHT","DIFFERENCE","EXCLUSION","HUE","SATURATION","COLOR","LUMINOSITY","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","size","numVerts","numIndices","vertices","positions","colors","lastIndexCount","drawing","currentBatchSize","currentBaseTexture","textures","shaders","sprites","AbstractFilter","vertexBuffer","DYNAMIC_DRAW","sprite","uvs","_uvs","aX","aY","x0","y0","renderTilingSprite","tilingTexture","TextureUvs","h","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","DEFAULT","framebufferTexture2D","COLOR_ATTACHMENT0","renderBuffer","createRenderbuffer","bindRenderbuffer","RENDERBUFFER","framebufferRenderbuffer","DEPTH_STENCIL_ATTACHMENT","renderbufferStorage","DEPTH_STENCIL","deleteFramebuffer","deleteTexture","CanvasBuffer","clearRect","CanvasMaskManager","save","cacheAlpha","CanvasGraphics","renderGraphicsMask","clip","restore","tintMethod","tintWithMultiply","fillStyle","fillRect","tintWithPerPixel","rgbValues","pixelData","pixels","canHandleAlpha","putImageData","checkInverseAlpha","s1","s2","canUseMultiply","CanvasRenderer","refresh","navigator","isCocoonJS","screencanvas","removeView","updateGraphicsTint","_fillTint","_lineTint","beginPath","moveTo","lineTo","closePath","strokeStyle","stroke","strokeRect","arc","kappa","ox","oy","xe","ye","xm","ym","bezierCurveTo","rx","ry","maxRadius","min","quadraticCurveTo","len","rect","tintR","tintG","tintB","BaseTextureCache","BaseTextureCacheIdGenerator","BaseTexture","complete","naturalWidth","naturalHeight","imageUrl","forceLoaded","_pixiId","unloadFromGPU","updateSourceImage","newSrc","glTexture","image","crossOrigin","fromCanvas","TextureCacheIdGenerator","FrameCache","TextureSilentFail","noFrame","isTiling","requiresUpdate","setFrame","onBaseTextureLoaded","destroyBase","_updateUvs","tw","th","addTextureToCache","removeTextureFromCache","textureBuffer","renderWebGL","renderCanvas","tempMatrix","Phaser","updateBase","identity","translate","append","realResolution","getImage","getBase64","getCanvas","toDataURL","webGLPixels","Uint8Array","readPixels","tempCanvas","canvasData","Strip","canvasPadding","drawMode","DrawModes","_vertexBuffer","_initWebGL","_renderStrip","_indexBuffer","_uvBuffer","_colorBuffer","_renderCanvasTriangleStrip","_renderCanvasTriangles","_renderCanvasDrawTriangle","index0","textureSource","textureWidth","textureHeight","u0","u1","u2","v0","v1","v2","paddingX","paddingY","centerX","centerY","normX","normY","delta","deltaA","deltaB","deltaC","deltaD","deltaE","deltaF","renderStripFlat","strip","updateFrame","rawX","rawY","Rope","point","amount","total","nextPoint","perp","ratio","perpLength","num","TilingSprite","textureDebug","canvasBuffer","tilePattern","refreshTexture","frameWidth","frameHeight","generateTilingTexture","needsUpdate","createPattern","sessionBlendMode","forcePowerOfTwo","targetWidth","_frame","sourceSizeW","targetHeight","sourceSizeH","trimmed","spriteSourceSizeX","spriteSourceSizeY","exports","module","define","amd","WheelEventProxy","scaleFactor","deltaMode","_scaleFactor","_deltaMode","originalEvent","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","CIRCLE","RECTANGLE","LINE","MATRIX","POINT","ROUNDEDRECTANGLE","CREATURE","VIDEO","trunc","ceil","floor","Function","bind","thisArg","bound","args","boundArgs","arguments","TypeError","F","proto","arg","forEach","fun","t","CheapArray","assert","warn","Utils","getProperty","obj","prop","parts","split","last","l","current","setProperty","chanceRoll","chance","random","randomChoice","choice1","choice2","parseDimension","dimension","f","parseInt","innerWidth","innerHeight","pad","str","dir","padlen","right","left","isPlainObject","nodeType","hasOwnProperty","e","extend","name","copy","copyIsArray","clone","deep","mixinPrototype","mixin","replace","mixinKeys","keys","to","o","childNodes","cloneNode","Circle","diameter","_diameter","_radius","circumference","out","setTo","copyFrom","copyTo","dest","distance","round","output","contains","circumferencePoint","angle","asDegrees","offsetPoint","top","bottom","equals","intersects","degToRad","intersectsRectangle","halfWidth","xDist","halfHeight","yDist","xCornerDist","yCornerDist","xCornerDistSq","yCornerDistSq","maxCornerDistSq","Ellipse","normx","normy","Line","fromSprite","startSprite","endSprite","useCenter","center","fromAngle","rotate","line","asSegment","intersectsPoints","reflect","pointOnLine","pointOnSegment","xMin","xMax","max","yMin","yMax","coordinatesOnLine","stepRate","results","sx","sy","err","e2","wrap","uc","ua","ub","normalAngle","fromArray","array","pos","newPos","tx1","d1","invert","add","subtract","multiply","divide","clampX","clamp","clampY","radToDeg","getMagnitude","getMagnitudeSq","setMagnitude","magnitude","normalize","isZero","m","dot","cross","rperp","normalRightHand","negative","multiplyAdd","s","interpolate","project","amt","projectUnit","centroid","pointslength","parse","xProp","yProp","Polygon","area","_points","toNumberArray","flatten","inside","ix","iy","jx","jy","Number","MAX_VALUE","calculateArea","p1","p2","avgHeight","centerOn","floorAll","ceilAll","inflate","containsRect","intersection","intersectsRaw","tolerance","union","randomX","randomY","empty","inflatePoint","containsRaw","rw","rh","containsPoint","volume","sameDimensions","aabb","MIN_VALUE","RoundedRectangle","Camera","deadzone","roundPx","atLimit","totalInView","_targetPosition","_edge","_position","FOLLOW_LOCKON","FOLLOW_PLATFORMER","FOLLOW_TOPDOWN","FOLLOW_TOPDOWN_TIGHT","follow","helper","unfollow","focusOn","setPosition","focusOnXY","update","updateTarget","checkBounds","setBoundsToWorld","setSize","Create","bmd","make","bitmapData","ctx","palettes",1,2,3,4,5,6,7,8,9,"A","B","C","D","E","PALETTE_ARNE","PALETTE_JMP","PALETTE_CGA","PALETTE_C64","PALETTE_JAPANESE_MACHINE","pixelWidth","pixelHeight","palette","row","grid","cellWidth","cellHeight","State","camera","cache","input","load","math","sound","time","tweens","particles","physics","rnd","preload","loadUpdate","loadRender","preRender","paused","resumed","pauseUpdate","shutdown","StateManager","pendingState","states","_pendingState","_clearWorld","_clearCache","_created","_args","onStateChange","Signal","onInitCallback","onPreloadCallback","onCreateCallback","onUpdateCallback","onRenderCallback","onResizeCallback","onPreRenderCallback","onLoadUpdateCallback","onLoadRenderCallback","onPausedCallback","onResumedCallback","onPauseUpdateCallback","onShutDownCallback","boot","onPause","pause","onResume","resume","state","autoStart","newState","isBooted","remove","callbackContext","clearWorld","clearCache","checkState","restart","dummy","previousStateKey","clearCurrentState","setCurrentState","dispatch","totalQueuedFiles","totalQueuedPacks","loadComplete","removeAll","debug","link","unlink","_kickstart","getCurrentState","elapsedTime","renderType","_bindings","_prevParams","memorize","_shouldPropagate","active","_boundDispatch","validateListener","listener","fnName","_registerListener","isOnce","listenerContext","priority","binding","prevIndex","_indexOfListener","SignalBinding","_addBinding","execute","_priority","cur","_listener","has","addOnce","_destroy","getNumListeners","halt","bindings","paramsArr","forget","dispose","_this","signal","_isOnce","_signal","callCount","params","handlerReturn","detach","isBound","getListener","getSignal","Filter","prevPoint","Date","mouse","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","exists","currentRenderOrderID","_hiddenVar","_onChange","_backgroundColor","config","parseConfig","DOM","getOffset","Canvas","setUserSelect","setTouchAction","checkVisibility","webkitHidden","mozHidden","msHidden","hidden","event","visibilityChange","addEventListener","onblur","onfocus","onpagehide","onpageshow","device","cocoonJSApp","CocoonJS","App","onSuspended","onActivated","focusLoss","focusGain","gamePaused","gameResumed","Color","valueToColor","getColor","RGBtoString","removeEventListener","Group","addToStage","enableBody","physicsBodyType","Physics","ARCADE","physicsType","alive","ignoreDestroy","pendingDestroy","classType","cursor","enableBodyDebug","physicsSortDirection","onDestroy","cursorIndex","fixedToCamera","cameraOffset","hash","_sortProperty","RETURN_NONE","RETURN_TOTAL","RETURN_CHILD","SORT_ASCENDING","SORT_DESCENDING","silent","body","addToHash","events","onAddedToGroup$dispatch","removeFromHash","addMultiple","moveAll","addAt","updateZ","getAt","createMultiple","quantity","resetCursor","next","previous","swap","child1","bringToTop","getIndex","sendToBack","moveUp","moveDown","xy","oldChild","newChild","hasProperty","operation","force","checkProperty","checkAlive","checkVisible","setAll","setAllChildren","checkAll","addAll","property","subAll","multiplyAll","divideAll","callAllExists","callback","existsValue","callbackFromArray","callAll","method","methodLength","contextLength","renderOrderID","predicate","checkExists","ArraySet","forEachExists","iterate","forEachAlive","forEachDead","sort","order","ascendingSortHandler","descendingSortHandler","customSort","sortHandler","returnType","getFirstExists","getFirstAlive","getFirstDead","getTop","getBottom","countLiving","countDead","getRandom","ArrayUtils","getRandomItem","destroyPhase","onRemovedFromGroup$dispatch","group","removeBetween","destroyChildren","soft","World","_definedSize","stateChange","setBounds","useBounds","horizontal","vertical","between","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","text","geom","uuid","topLeft","topMiddle","topRight","bottomLeft","bottomMiddle","bottomRight","ScaleManager","dom","minWidth","maxWidth","minHeight","maxHeight","forceLandscape","forcePortrait","incorrectOrientation","_pageAlignHorizontally","_pageAlignVertically","onOrientationChange","enterIncorrectOrientation","leaveIncorrectOrientation","fullScreenTarget","_createdFullScreenTarget","onFullScreenInit","onFullScreenChange","onFullScreenError","screenOrientation","getScreenOrientation","scaleFactorInversed","margin","aspectRatio","sourceAspectRatio","windowConstraints","compatibility","supportsFullScreen","orientationFallback","noMargins","scrollTo","forceMinimumDocumentHeight","canExpandParent","clickTrampoline","_scaleMode","NO_SCALE","_fullScreenScaleMode","parentIsWindow","parentNode","parentScaleFactor","trackParentInterval","onSizeChange","onResizeContext","_pendingScaleMode","_fullScreenRestore","_gameSize","_userScaleFactor","_userScaleTrim","_lastUpdate","_updateThrottle","_updateThrottleReset","_parentBounds","_tempBounds","_lastReportedCanvasSize","_lastReportedGameSize","_booted","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","visualBounds","newWidth","newHeight","updateDimensions","queueUpdate","currentScaleMode","setUserScale","hScale","vScale","hTrim","vTrim","setResizeCallback","signalSizeChange","setMinMax","prevThrottle","prevWidth","prevHeight","boundsChanged","orientationChanged","updateOrientationState","updateLayout","throttle","updateScalingAndBounds","forceOrientation","classifyOrientation","orientation","previousOrientation","previouslyIncorrect","isLandscape","isPortrait","changed","correctnessChanged","scrollTop","reflowGame","documentElement","setMaximum","setExactFit","isFullScreen","boundingParent","setShowAll","resetCanvas","reflowCanvas","layoutBounds","clientRect","getBoundingClientRect","wc","windowBounds","alignCanvas","parentBounds","canvasBounds","currentEdge","targetEdge","marginLeft","marginRight","marginTop","marginBottom","pageAlignHorizontally","pageAlignVertically","cssWidth","cssHeight","expanding","createFullScreenTarget","fsTarget","background","startFullScreen","allowTrampoline","setTimeout","activePointer","mousePointer","addClickTrampoline","smoothed","cleanupCreatedTarget","initData","targetElement","insertBefore","appendChild","fullscreenKeyboard","requestFullscreen","Element","ALLOW_KEYBOARD_INPUT","stopFullScreen","cancelFullscreen","prepScreenMode","enteringFullscreen","createdTarget","enterFullScreen","leaveFullScreen","letterBox","scaleX1","scaleY1","scaleX2","scaleY2","scaleOnWidth","Game","physicsConfig","isRunning","raf","net","Device","lockRender","stepping","pendingStep","stepCount","onBlur","onFocus","_paused","_codePaused","currentUpdateID","updatesThisFrame","_deltaTime","_lastCount","_spiraling","fpsProblemNotifier","forceSingleUpdate","_nextFpsNotification","enableDebug","RandomDataGenerator","now","whenReady","seed","setUpRenderer","GameObjectFactory","GameObjectCreator","Cache","Loader","Time","TweenManager","Input","SoundManager","Particles","Net","Debug","showDebugHeader","RequestAnimationFrame","stopFocus","focus","hideBanner","webAudio","contextRestored","addToDOM","preventDefault","clearGLTextures","updateLogic","desiredFps","updateRender","slowMotion","slowStep","elapsed","timeStep","enableStep","disableStep","step","removeFromDOM","setMute","cordova","iOS","unsetMute","hitCanvas","hitContext","moveCallbacks","pollRate","enabled","multiInputOverride","MOUSE_TOUCH_COMBINE","speed","circle","maxPointers","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","Touch","MSPointer","Keyboard","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","mouseDownCallback","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","BACK_BUTTON","FORWARD_BUTTON","WHEEL_UP","WHEEL_DOWN","onMouseDown","onMouseMove","onMouseUp","_onMouseUpGlobal","onMouseUpGlobal","onMouseOut","onMouseOver","onMouseWheel","wheelEvent","mouseMoveCallback","withinGame","bindEvent","deltaY","requestPointerLock","element","mozRequestPointerLock","webkitRequestPointerLock","_pointerLockChange","pointerLockChange","pointerLockElement","mozPointerLockElement","webkitPointerLockElement","releasePointerLock","exitPointerLock","mozExitPointerLock","webkitExitPointerLock","_stubsGenerated","makeBinder","defineProperties","detail","deltaX","wheelDeltaX","deltaZ","pointerDownCallback","pointerMoveCallback","pointerUpCallback","_onMSPointerDown","_onMSPointerMove","_onMSPointerUp","onPointerDown","onPointerMove","onPointerUp","pointerType","DeviceButton","buttonCode","isDown","isUp","timeDown","duration","timeUp","repeats","altKey","shiftKey","ctrlKey","onFloat","padFloat","justPressed","justReleased","leftButton","middleButton","rightButton","backButton","forwardButton","eraserButton","ERASER_BUTTON","_holdSent","_history","_nextDrop","_stateReset","clientX","clientY","pageX","pageY","screenX","screenY","rawMovementX","rawMovementY","movementX","movementY","isMouse","previousTapTime","totalTouches","msSinceLastClick","targetObject","positionDown","positionUp","_clickTrampolines","_trampolineTargetObject","resetButtons","updateButtons","buttons","totalActivePointers","_touchedHandler","processInteractiveObjects","shift","fromClick","pollLocked","mozMovementX","webkitMovementX","mozMovementY","webkitMovementY","isDragged","highestRenderOrderID","highestInputPriorityID","candidateTarget","currentNode","first","checked","validForInput","checkPointerDown","checkPointerOver","priorityID","_pointerOutHandler","_pointerOverHandler","leave","currentPointers","callbackArgs","trampolines","trampoline","_releasedHandler","resetMovement","touchLockCallbacks","touchStartCallback","touchMoveCallback","touchEndCallback","touchEnterCallback","touchLeaveCallback","touchCancelCallback","_onTouchStart","_onTouchMove","_onTouchEnd","_onTouchEnter","_onTouchLeave","_onTouchCancel","onTouchStart","onTouchMove","onTouchEnd","onTouchEnter","onTouchLeave","onTouchCancel","consumeDocumentTouches","_documentTouchMove","addTouchLockCallback","removeTouchLockCallback","changedTouches","InputHandler","useHandCursor","_setHandCursor","allowHorizontalDrag","allowVerticalDrag","snapOffset","snapOnDrag","snapOnRelease","snapX","snapY","snapOffsetX","snapOffsetY","pixelPerfectOver","pixelPerfectClick","pixelPerfectAlpha","draggable","boundsRect","boundsSprite","consumePointerEvent","scaleLayer","dragOffset","dragFromCenter","dragStartPoint","snapPoint","_dragPoint","_dragPhase","_wasEnabled","_tempPoint","_pointerData","isOver","isOut","timeOver","timeOut","downDuration","onAddedToGroup","addedToGroup","onRemovedFromGroup","removedFromGroup","flagged","highestID","highestRenderID","includePixelPerfect","isPixelPerfect","pointerX","pointerY","pointerDown","pointerUp","pointerTimeDown","pointerTimeUp","pointerOver","pointerOut","pointerTimeOver","pointerTimeOut","pointerDragged","fastTest","checkPixel","_dx","_dy","_draggedPointerID","updateDrag","onInputOver$dispatch","onInputOut$dispatch","onInputDown$dispatch","startDrag","onInputUp$dispatch","stopDrag","globalToLocalX","globalToLocalY","checkBoundsRect","checkBoundsSprite","onDragUpdate","justOver","delay","overDuration","justOut","enableDrag","lockCenter","pixelPerfect","alphaThreshold","disableDrag","onDragStart$dispatch","onDragStop$dispatch","setDragLock","allowHorizontal","allowVertical","enableSnap","onDrag","onRelease","disableSnap","_gamepadIndexMap","_rawPads","_active","_gamepadSupportAvailable","webkitGetGamepads","webkitGamepads","userAgent","getGamepads","_prevRawGamepadTypes","_prevTimestamps","onConnectCallback","onDisconnectCallback","onDownCallback","onUpCallback","onAxisCallback","onFloatCallback","_ongamepadconnected","_gamepaddisconnected","_gamepads","SinglePad","addCallbacks","callbacks","onConnect","onDisconnect","onAxis","_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","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","processButtonDown","processButtonUp","processButtonFloat","axes","processAxisChange","triggerCallback","disconnectingIndex","axis","axisCode","buttonValue","Key","keycode","_enabled","keyCode","onHoldCallback","onHoldContext","_justDown","_justUp","processKeyDown","processKeyUp","upDuration","pressEvent","onPressCallback","_keys","_capture","_onKeyDown","_onKeyPress","_onKeyUp","_k","onPress","addKey","addKeyCapture","addKeys","removeKey","removeKeyCapture","createCursorKeys","up","down","processKeyPress","clearCaptures","String","fromCharCode","charCode","charCodeAt","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","COMMA","UNDERSCORE","PERIOD","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","PLUS","MINUS","INSERT","DELETE","HELP","NUM_LOCK","Component","Angle","wrapAngle","Animation","play","frameRate","loop","killOnComplete","animations","AutoCull","autoCull","inCamera","checkWorldBounds","Bounds","BringToTop","Core","install","components","previousPosition","Events","PhysicsBody","AnimationManager","LoadTexture","loadTexture","FixedToCamera","previousRotation","fresh","_exists","P2JS","removeFromWorld","customRender","Crop","cropRect","_crop","updateCrop","resetFrame","Delta","Destroy","onDestroy$dispatch","Video","onChangeSource","resizeFrame","BitmapText","_glyphs","_parent","_onDestroy","_onAddedToGroup","_onRemovedFromGroup","_onRemovedFromWorld","_onKilled","_onRevived","_onEnterBounds","_onOutOfBounds","_onInputOver","_onInputOut","_onInputDown","_onInputUp","_onDragStart","_onDragUpdate","_onDragStop","_onAnimationStart","_onAnimationComplete","_onAnimationLoop","onRemovedFromWorld","onKilled","onRevived","onOutOfBounds","onEnterBounds","onInputOver","onInputOut","onInputDown","onInputUp","onDragStart","onDragStop","onAnimationStart","onAnimationComplete","onAnimationLoop","backing","_fixedToCamera","Health","health","maxHealth","damage","kill","heal","InCamera","InputEnabled","inputEnabled","InWorld","_outOfBoundsFired","onEnterBounds$dispatch","onOutOfBounds$dispatch","outOfBoundsKill","inWorld","LifeSpan","lifespan","physicsElapsedMS","revive","onRevived$dispatch","onKilled$dispatch","stopAnimation","BitmapData","hasFrameData","loadFrameData","getFrameData","img","base","frameData","frameName","Overlap","overlap","_reset","Reset","ScaleMinMax","checkTransform","scaleMin","scaleMax","setScaleMinMax","Smoothed","existing","object","creature","mesh","Creature","tween","physicsGroup","audio","audioSprite","addSprite","tileSprite","rope","Text","overFrame","outFrame","downFrame","upFrame","Button","emitter","maxParticles","Arcade","Emitter","retroFont","font","characterWidth","characterHeight","chars","charsPerRow","xSpacing","ySpacing","xOffset","yOffset","RetroFont","bitmapText","tilemap","tileWidth","tileHeight","Tilemap","addToCache","addRenderTexture","video","url","addBitmapData","Tween","align","preUpdatePhysics","preUpdateLifeSpan","preUpdateInWorld","preUpdateCore","_scroll","def","physicsElapsed","autoScroll","stopScroll","_hasUpdateAnimation","_updateAnimationCallback","updateAnimation","_updateAnimation","segments","difference","_onOverFrame","_onOutFrame","_onDownFrame","_onUpFrame","onOverSound","onOutSound","onDownSound","onUpSound","onOverSoundMarker","onOutSoundMarker","onDownSoundMarker","onUpSoundMarker","onOverMouseOnly","freezeFrames","forceOut","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","Particle","autoScale","scaleData","_s","autoAlpha","alphaData","_a","onEmit","setAlphaData","setScaleData","imageData","textureFrame","Frame","disableTextureUpload","cls","_image","_pos","_size","_scale","_rotate","_alpha","prev","_anchor","_tempR","_tempG","_tempB","_circle","_swapCanvas","moveH","moveV","draw","addImage","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","direction","scan","anchorX","anchorY","copyRect","drawGroup","shadow","blur","shadowColor","shadowBlur","shadowOffsetX","shadowOffsetY","alphaMask","sourceRect","maskRect","blendSourceAtop","blendReset","extract","destination","prevFont","fillText","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","currentPath","boundsPadding","_localBounds","webGLDirty","cachedSpriteDirty","lineStyle","drawShape","cpX2","cpY2","dt","dt2","dt3","t2","t3","arcTo","mm","dd","cc","tt","k1","k2","j1","j2","qx","qy","startAngle","endAngle","anticlockwise","sweep","segs","startX","startY","filling","theta","theta2","cTheta","sTheta","segMinus","remainder","real","beginFill","endFill","drawRect","drawRoundedRect","drawCircle","drawEllipse","drawPolygon","path","updateCachedSpriteTexture","_prevTint","updateLocalBounds","tempPoint","cachedSprite","destroyCachedSprite","GraphicsData","drawTriangle","cull","triangle","cameraToFace","ab","cb","faceNormal","drawTriangles","point1","point2","point3","renderXY","renderRawXY","textBounds","strokeColors","autoRound","_res","_text","_fontComponents","_lineSpacing","_charCount","setStyle","updateText","setShadow","shadowStroke","shadowFill","boundsAlignH","boundsAlignV","strokeThickness","wordWrap","wordWrapWidth","tabs","fontToComponents","fontStyle","fontVariant","fontWeight","fontSize","componentsToFont","outputText","runWordWrap","lines","lineWidths","maxLineWidth","fontProperties","determineFontProperties","measureText","tab","section","snapToCeil","lineHeight","lineSpacing","textBaseline","lineCap","lineJoin","linePositionX","linePositionY","ascent","updateLine","updateShadow","strokeText","renderTabLine","snap","letter","clearColors","addColor","addStrokeColor","spaceLeft","words","wordWidth","wordWidthWithSpace","updateFont","match","fontFamily","setText","parseList","list","setTextBounds","properties","fontPropertiesCache","fontPropertiesCanvas","fontPropertiesContext","baseline","descent","imagedata","idx","exec","parseFloat","textWidth","textHeight","_prevAnchor","_maxWidth","_data","getBitmapFont","_font","_fontSize","_align","_tint","sourceWidth","sourceHeight","scanLine","lastSpace","prevCharCode","test","charAt","charData","kerning","xAdvance","purgeGlyphs","kept","checkImageKey","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","content","characterSpacing","allowLowerCase","buildRetroFontText","getLongestLine","pasteLine","longestLine","removeUnsupportedCharacters","stripCR","newString","aChar","code","updateOffset","diffX","diffY","frames","getFrames","newText","toUpperCase","deviceReadyAt","initialized","node","nodeWebkit","electron","ejecta","crosswalk","chromeOS","linux","macOS","windows","windowsPhone","canvasBitBltShift","file","fileSystem","localStorage","worker","css3D","typedArray","vibration","getUserMedia","quirksMode","arora","chromeVersion","epiphany","firefox","firefoxVersion","ie","ieVersion","trident","tridentVersion","mobileSafari","midori","opera","safari","silk","audioData","ogg","opus","mp3","wav","m4a","webm","oggVideo","h264Video","mp4Video","webmVideo","vp9Video","hlsVideo","iPhone","iPhone4","pixelRatio","littleEndian","support32bit","onInitialized","nonPrimer","readyCheck","_readyCheck","_monitor","_queue","readyState","_initialize","_checkOS","vita","kindle","_checkFeatures","getItem","error","WebGLRenderingContext","compatMode","webkitGetUserMedia","mozGetUserMedia","msGetUserMedia","oGetUserMedia","URL","webkitURL","mozURL","msURL","_checkInput","maxTouchPoints","msPointerEnabled","pointerEnabled","_checkFullScreenSupport","fs","cfs","_checkBrowser","RegExp","$1","$3","process","require","versions","_checkVideo","videoElement","canPlayType","_checkAudio","audioElement","_checkDevice","toLowerCase","Int8Array","_checkIsLittleEndian","Uint8ClampedArray","Int32Array","_checkIsUint8ClampedImageData","vibrate","webkitVibrate","mozVibrate","msVibrate","elem","createImageData","_checkCSS3D","has3d","el","transforms","webkitTransform","OTransform","msTransform","MozTransform","getComputedStyle","getPropertyValue","canPlayAudio","canPlayVideo","isConsoleOpen","profile","profileEnd","isAndroidStockBrowser","matches","box","scrollY","scrollLeft","scrollX","clientTop","clientLeft","cushion","calibrate","coords","getAspectRatio","inLayoutViewport","primaryFallback","screen","mozOrientation","msOrientation","PORTRAIT","LANDSCAPE","matchMedia","documentBounds","pageXOffset","pageYOffset","treatAsDesktop","clientWidth","clientHeight","offsetWidth","scrollWidth","offsetHeight","scrollHeight","display","msTouchAction","overflowHidden","overflow","vendor","prefix","setImageRenderingCrisp","msInterpolationMode","setImageRenderingBicubic","forceSetTimeOut","vendors","requestAnimationFrame","cancelAnimationFrame","_isSetTimeOut","_onLoop","_timeOutID","updateSetTimeout","updateRAF","rafTime","timeToCall","clearTimeout","isSetTimeOut","isRAF","PI2","fuzzyEqual","epsilon","fuzzyLessThan","fuzzyGreaterThan","fuzzyCeil","val","fuzzyFloor","average","sum","shear","snapTo","gap","snapToFloor","roundTo","place","pow","floorTo","ceilTo","angleBetween","angleBetweenY","angleBetweenPoints","angleBetweenPointsY","reverseAngle","angleRad","normalizeAngle","maxAdd","minSub","wrapValue","isOdd","isEven","minProperty","maxProperty","radians","linearInterpolation","linear","bezierInterpolation","bernstein","catmullRomInterpolation","catmullRom","p0","factorial","res","p3","roundAwayFromZero","sinCosGenerator","sinAmplitude","cosAmplitude","frequency","frq","cosTable","sinTable","distanceSq","distancePow","clampBottom","within","mapLinear","smoothstep","smootherstep","percent","degreeToRadiansFactor","radianToDegreesFactor","degrees","seeds","s0","sow","integer","frac","integerInRange","realInRange","normal","pick","ary","weightedPick","QuadTree","maxObjects","maxLevels","objects","nodes","_empty","subWidth","subHeight","populate","populateHandler","insert","retrieve","returnObjects","getHostName","location","hostname","checkDomainName","domain","updateQueryString","redirect","href","re","separator","getQueryString","parameter","keyValues","search","substring","decodeURI","decodeURIComponent","_tweens","_add","easeMap","Power0","Easing","Power1","Power2","Power3","Power4","Linear","None","Quad","Quadratic","Out","Cubic","Quart","Quartic","Quint","Quintic","Sine","Sinusoidal","Expo","Exponential","Circ","Circular","Elastic","Back","Bounce","Quad.easeIn","In","Cubic.easeIn","Quart.easeIn","Quint.easeIn","Sine.easeIn","Expo.easeIn","Circ.easeIn","Elastic.easeIn","Back.easeIn","Bounce.easeIn","Quad.easeOut","Cubic.easeOut","Quart.easeOut","Quint.easeOut","Sine.easeOut","Expo.easeOut","Circ.easeOut","Elastic.easeOut","Back.easeOut","Bounce.easeOut","Quad.easeInOut","InOut","Cubic.easeInOut","Quart.easeInOut","Quint.easeInOut","Sine.easeInOut","Expo.easeInOut","Circ.easeInOut","Elastic.easeInOut","Back.easeInOut","Bounce.easeInOut","_pauseAll","_resumeAll","getAll","pendingDelete","removeFrom","_manager","addTweens","numTweens","isTweening","some","_pause","_resume","pauseAll","resumeAll","timeline","timeScale","repeatCounter","onStart","onLoop","onRepeat","onChildComplete","onComplete","chainedTween","isPaused","_onUpdateCallback","_onUpdateCallbackContext","_pausedTime","_hasStarted","ease","yoyo","Default","TweenData","vEnd","loadValues","updateTweenData","repeatDelay","yoyoDelay","easing","interpolation","repeatAll","chain","startTime","status","PENDING","RUNNING","LOOPED","COMPLETE","generateData","vStart","vStartCache","vEndCache","inReverse","easingFunction","interpolationFunction","interpolationContext","isFrom","yoyoCounter","elapsedMS","fps","blob","reversed","asin","prevTime","suggestedFps","advancedTiming","fpsMin","fpsMax","msMin","msMax","pauseDuration","timeExpected","Timer","_frameCount","_elapsedAccumulator","_started","_timeLastSecond","_pauseStarted","_justResumed","_timers","timer","autoDestroy","updateAdvancedTiming","updateTimers","previousDateNow","timeCallExpected","elapsedSince","since","elapsedSecondsSince","running","expired","nextTick","timeCap","_pauseTotal","_now","_marked","_diff","_newTick","MINUTE","SECOND","HALF","QUARTER","repeatCount","tick","TimerEvent","clearEvents","clearPendingEvents","adjustEvents","baseTime","ms","currentFrame","currentAnim","updateIfVisible","isLoaded","_frameData","_anims","_outputFrames","anim","copyFrameData","useNumericIndex","getFrameIndexes","validateFrames","checkFrameName","isPlaying","getAnimation","refreshFrame","getFrame","getFrameByName","_frameIndex","_frames","loopCount","isFinished","_pauseStartTime","_frameDiff","_frameSkip","onUpdate","_timeLastFrame","_timeNextFrame","updateCurrentFrame","onAnimationStart$dispatch","useLocalFrameIndex","frameIndex","dispatchComplete","onAnimationComplete$dispatch","onAnimationLoop$dispatch","signalUpdate","fromPlay","generateFrameNames","suffix","zeroPad","rotated","rotationDirection","spriteSourceSizeW","spriteSourceSizeH","setTrim","actualWidth","actualHeight","destX","destY","destWidth","destHeight","getRect","_frameNames","getFrameRange","AnimationParser","spriteSheet","frameMax","spacing","column","JSONData","json","newFrame","filename","sourceSize","spriteSourceSize","JSONDataHash","XMLData","xml","getElementsByTagName","frameX","frameY","autoResolveURL","_cache","binary","bitmapFont","_urlMap","_urlResolver","_urlTemp","onSoundUnlock","_cacheMap","TEXTURE","SOUND","PHYSICS","BINARY","BITMAPFONT","JSON","XML","SHADER","RENDER_TEXTURE","addDefaultImage","addMissingImage","addCanvas","removeImage","_resolveURL","addSound","audioTag","decoded","isDecoding","touchLocked","addText","addPhysicsData","addTilemap","mapData","addBinary","binaryData","addBitmapFont","atlasData","atlasType","LoaderParser","jsonBitmapFont","xmlBitmapFont","addJSON","addXML","addVideo","isBlob","addShader","addSpriteSheet","addTextureAtlas","TEXTURE_ATLAS_XML_STARLING","reloadSound","getSound","reloadSoundComplete","updateSound","decodedSound","isSoundDecoded","isSoundReady","checkKey","checkURL","checkCanvasKey","checkTextureKey","checkSoundKey","checkTextKey","checkPhysicsKey","checkTilemapKey","checkBinaryKey","checkBitmapDataKey","checkBitmapFontKey","checkJSONKey","checkXMLKey","checkVideoKey","checkShaderKey","checkRenderTextureKey","full","getTextureFrame","getSoundData","getText","getPhysicsData","fixtureKey","fixtures","fixture","getTilemapData","getBinary","getBitmapData","getJSON","getXML","getVideo","getShader","getRenderTexture","getBaseTexture","getFrameCount","getFrameByIndex","getPixiTexture","getPixiBaseTexture","getURL","getKeys","removeCanvas","removeFromPixi","removeSound","removeText","removePhysics","removeTilemap","removeBinary","removeBitmapData","removeBitmapFont","removeJSON","removeXML","removeVideo","removeShader","removeRenderTexture","removeSpriteSheet","removeTextureAtlas","atlas","baseURL","isLoading","preloadSprite","onLoadStart","onLoadComplete","onPackComplete","onFileStart","onFileComplete","onFileError","useXDomainRequest","_warnedAboutXDomainRequest","enableParallel","maxParallelDownloads","_withSyncPointDepth","_fileList","_flightQueue","_processingHead","_fileLoadStarted","_totalPackCount","_totalFileCount","_loadedPackCount","_loadedFileCount","TEXTURE_ATLAS_JSON_ARRAY","TEXTURE_ATLAS_JSON_HASH","PHYSICS_LIME_CORONA_JSON","PHYSICS_PHASER_JSON","setPreloadSprite","checkKeyExists","getAssetIndex","bestFound","loaded","loading","getAsset","fileIndex","addToFileList","overwrite","extension","syncPoint","currentFile","replaceInFileList","pack","script","spritesheet","urls","autoDecode","noAudio","audiosprite","jsonURL","jsonData","loadEvent","asBlob","CSV","TILED_JSON","LIME_CORONA_JSON","textureURL","atlasURL","parseXml","atlasJSONArray","atlasJSONHash","atlasXML","withSyncPoint","addSyncPoint","asset","removeFile","updateProgress","processLoadQueue","finishedLoading","requestUrl","requestObject","progress","syncblock","inflightLimit","processPack","loadFile","abnormal","asyncComplete","errorMessage","packData","transformUrl","xhrLoad","fileComplete","loadImageTag","getAudioURL","usingWebAudio","usingAudioTag","loadAudioTag","fileError","getVideoURL","loadVideoTag","jsonLoadComplete","xmlLoadComplete","csvLoadComplete","onload","onerror","controls","autoplay","videoLoadEvent","canplay","Audio","playThroughEvent","XDomainRequest","xhrLoadWithXDR","xhr","XMLHttpRequest","open","responseType","message","send","timeout","ontimeout","onprogress","videoType","uri","lastIndexOf","audioType","reason","loadNext","responseText","Blob","response","decode","language","defer","head","contentType","domparser","DOMParser","parseFromString","ActiveXObject","async","loadXML","totalLoadedFiles","totalLoadedPacks","progressFloat","info","common","getAttribute","letters","kernings","second","finalizeBitmapFont","_face","_lineHeight","_id","_xoffset","_yoffset","_xadvance","_second","_first","_amount","bitmapFontData","autoplayKey","sounds","spritemap","addMarker","connectToMaster","markers","totalDuration","currentTime","durationMS","stopTime","pausedPosition","pausedTime","currentMarker","fadeTween","pendingPlayback","override","allowMultiple","externalNode","masterGainNode","gainNode","_sound","masterGain","createGain","createGainNode","gain","soundHasUnlocked","onDecoded","onPlay","onStop","onMute","onMarkerComplete","onFadeComplete","_volume","_buffer","_muted","_tempMarker","_tempPosition","_tempVolume","_muteVolume","_tempLoop","_onDecodedEventDispatched","removeMarker","onEndedHandler","isDecoded","loopFull","forceRestart","noteOff","createBufferSource","onended","noteGrainOn","muted","prevMarker","fadeIn","fadeTo","fadeOut","fadeComplete","mute","onSoundDecode","onVolumeChange","onUnMute","channels","_codeMuted","_unlockSource","_sounds","_watchList","_watching","_watchCallback","_watchContext","disableAudio","disableWebAudio","audioContext","fakeiOSTouchLock","setTouchLock","unlock","noteOn","stopAll","soundData","decodeAudioData","setDecodedCallback","files","playbackState","PLAYING_STATE","FINISHED_STATE","removeByKey","columnWidth","renderShadow","currentAlpha","currentColor","soundInfo","cameraInfo","hideIfUp","downColor","upColor","worldX","worldY","spriteInputInfo","justDown","justUp","inputInfo","spriteBounds","filled","rectangle","ropeSegments","self","segment","spriteInfo","spriteCoords","lineInfo","forceType","quadTree","quadtree","Body","NINJA","Ninja","BOX2D","Box2D","renderBody","bodyInfo","renderBodyInfo","box2d","box2dWorld","renderDebugDraw","box2dBody","getByKey","randomIndex","removeRandomItem","shuffle","transposeMatrix","sourceRowCount","sourceColCount","rotateMatrix","findClosest","arr","NaN","low","high","POSITIVE_INFINITY","numberArray","numberArrayStep","rgba","RGBtoHSL","RGBtoHSV","fromRGBA","toRGBA","q","hueToColor","updateColor","HSVtoRGB","color32","getColor32","componentToHex","hexToRGB","hexToColor","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","blendNormal","blendAverage","blendSubtract","blendNegation","blendLinearDodge","blendLinearBurn","blendLinearLight","blendVividLight","blendPinLight","blendHardMix","blendReflect","blendGlow","blendPhoenix","LinkedList","entity","arcade","ninja","chipmunk","matter","CHIPMUNK","MATTERJS","P2","Matter","startSystem","system","enableAABB","emitters","ID","onAccess","onError","onTimeout","videoStream","isStreaming","retryLimit","retry","retryInterval","_retryID","_pending","_autoplay","_video","createVideoFromBlob","videoWidth","videoHeight","createVideoFromURL","snapshot","connectToMediaStream","stream","startMediaStream","captureAudio","removeVideoElement","setAttribute","getUserMediaTimeout","getUserMediaSuccess","getUserMediaError","mozSrcObject","createObjectURL","onloadeddata","checkStream","checkVideoProgress","change","playbackRate","setPause","setResume","playHandler","playing","ended","changeSource","grab","hasChildNodes","firstChild","removeAttribute"],"mappings":"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"} \ No newline at end of file diff --git a/build/custom/phaser-no-physics.min.js b/build/custom/phaser-no-physics.min.js index 5b9b3a69e..094620793 100644 --- a/build/custom/phaser-no-physics.min.js +++ b/build/custom/phaser-no-physics.min.js @@ -1,19 +1,19 @@ -/* Phaser v2.4.0 - http://phaser.io - @photonstorm - (c) 2015 Photon Storm Ltd. */ +/* Phaser v2.4.1 - http://phaser.io - @photonstorm - (c) 2015 Photon Storm Ltd. */ -var PIXI=function(){var a=this,b=b||{};return b.WEBGL_RENDERER=0,b.CANVAS_RENDERER=1,b.VERSION="v2.2.8",b._UID=0,"undefined"!=typeof Float32Array?(b.Float32Array=Float32Array,b.Uint16Array=Uint16Array,b.Uint32Array=Uint32Array,b.ArrayBuffer=ArrayBuffer):(b.Float32Array=Array,b.Uint16Array=Array),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.defaultRenderOptions={view:null,transparent:!1,antialias:!1,preserveDrawingBuffer:!1,resolution:1,clearBeforeRender:!0,autoResize:!1},b.DisplayObject=function(){this.position=new b.Point(0,0),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.renderable=!1,this.parent=null,this.stage=null,this.worldAlpha=1,this.worldTransform=new b.Matrix,this.worldPosition=new b.Point(0,0),this.worldScale=new b.Point(1,1),this.worldRotation=0,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,b.DisplayObject.prototype.destroy=function(){if(this.children){for(var a=this.children.length;a--;)this.children[a].destroy();this.children=[]}this.transformCallback=null,this.transformCallbackContext=null,this.hitArea=null,this.parent=null,this.stage=null,this.worldTransform=null,this.filterArea=null,this._bounds=null,this._currentBounds=null,this._mask=null,this.renderable=!1,this._destroyCachedSprite()},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;gj;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;for(var b=0;bi&&(i*=-1),0>l&&(l*=-1),q=i*e+m,o=i*d+m,r=l*g+n,p=l*f+n;else{var s=i*e+k*g+m,t=l*g+j*e+n,u=i*d+k*g+m,v=l*g+j*d+n,w=i*d+k*f+m,x=l*f+j*d+n,y=i*e+k*f+m,z=l*f+j*e+n;q=q>s?s:q,q=q>u?u:q,q=q>w?w:q,q=q>y?y:q,r=r>t?t:r,r=r>v?v:r,r=r>x?x:r,r=r>z?z:r,o=s>o?s:o,o=u>o?u:o,o=w>o?w:o,o=y>o?y:o,p=t>p?t:p,p=v>p?v:p,p=x>p?x:p,p=z>p?z:p}var A=this._bounds;return A.x=q,A.width=o-q,A.y=r,A.height=p-r,this._currentBounds=A,A},b.Sprite.prototype._renderWebGL=function(a,b){if(this.visible&&!(this.alpha<=0)&&this.renderable){var c=this.worldTransform;if(b&&(c=b),this._mask||this._filters){var d=a.spriteBatch;this._filters&&(d.flush(),a.filterManager.pushFilter(this._filterBlock)),this._mask&&(d.stop(),a.maskManager.pushMask(this.mask,a),d.start()),d.render(this);for(var e=0;e>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]},b.canUseNewCanvasBlendModes=function(){if(void 0===document)return!1;var a="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAQAAAABAQMAAADD8p2OAAAAA1BMVEX/",b="AAAACklEQVQI12NgAAAAAgAB4iG8MwAAAABJRU5ErkJggg==",c=new Image;c.src=a+"AP804Oa6"+b;var d=new Image;d.src=a+"/wCKxvRF"+b;var e=document.createElement("canvas");e.width=6,e.height=1;var f=e.getContext("2d");if(f.globalCompositeOperation="multiply",f.drawImage(c,0,0),f.drawImage(d,2,0),!f.getImageData(2,0,1,1))return!1;var g=f.getImageData(2,0,1,1).data;return 255===g[0]&&0===g[1]&&0===g[2]},b.getNextPowerOfTwo=function(a){if(a>0&&0===(a&a-1))return a;for(var b=1;a>b;)b<<=1;return b},b.isPowerOfTwo=function(a,b){return a>0&&0===(a&a-1)&&b>0&&0===(b&b-1)},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;Array.isArray(b)&&(d=b.join("\n"));var 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;"," vColor = vec4(aColor.rgb * aColor.a, aColor.a);","}"],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 float flipY;","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 * -flipY) + flipY , 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.flipY=a.getUniformLocation(c,"flipY"),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;","uniform float flipY;","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 * -flipY) + flipY , 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.flipY=a.getUniformLocation(c,"flipY"),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=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;gj;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;for(var b=0;bi&&(i*=-1),0>l&&(l*=-1),q=i*e+m,o=i*d+m,r=l*g+n,p=l*f+n;else{var s=i*e+k*g+m,t=l*g+j*e+n,u=i*d+k*g+m,v=l*g+j*d+n,w=i*d+k*f+m,x=l*f+j*d+n,y=i*e+k*f+m,z=l*f+j*e+n;q=q>s?s:q,q=q>u?u:q,q=q>w?w:q,q=q>y?y:q,r=r>t?t:r,r=r>v?v:r,r=r>x?x:r,r=r>z?z:r,o=s>o?s:o,o=u>o?u:o,o=w>o?w:o,o=y>o?y:o,p=t>p?t:p,p=v>p?v:p,p=x>p?x:p,p=z>p?z:p}var A=this._bounds;return A.x=q,A.width=o-q,A.y=r,A.height=p-r,this._currentBounds=A,A},b.Sprite.prototype._renderWebGL=function(a,b){if(this.visible&&!(this.alpha<=0)&&this.renderable){var c=this.worldTransform;if(b&&(c=b),this._mask||this._filters){var d=a.spriteBatch;this._filters&&(d.flush(),a.filterManager.pushFilter(this._filterBlock)),this._mask&&(d.stop(),a.maskManager.pushMask(this.mask,a),d.start()),d.render(this);for(var e=0;e>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]},b.canUseNewCanvasBlendModes=function(){if(void 0===document)return!1;var a="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAQAAAABAQMAAADD8p2OAAAAA1BMVEX/",b="AAAACklEQVQI12NgAAAAAgAB4iG8MwAAAABJRU5ErkJggg==",c=new Image;c.src=a+"AP804Oa6"+b;var d=new Image;d.src=a+"/wCKxvRF"+b;var e=document.createElement("canvas");e.width=6,e.height=1;var f=e.getContext("2d");if(f.globalCompositeOperation="multiply",f.drawImage(c,0,0),f.drawImage(d,2,0),!f.getImageData(2,0,1,1))return!1;var g=f.getImageData(2,0,1,1).data;return 255===g[0]&&0===g[1]&&0===g[2]},b.getNextPowerOfTwo=function(a){if(a>0&&0===(a&a-1))return a;for(var b=1;a>b;)b<<=1;return b},b.isPowerOfTwo=function(a,b){return a>0&&0===(a&a-1)&&b>0&&0===(b&b-1)},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;Array.isArray(b)&&(d=b.join("\n"));var 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;"," vColor = vec4(aColor.rgb * aColor.a, aColor.a);","}"],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 float flipY;","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 * -flipY) + flipY , 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.flipY=a.getUniformLocation(c,"flipY"),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;","uniform float flipY;","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 * -flipY) + flipY , 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.flipY=a.getUniformLocation(c,"flipY"),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.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=[]},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)void 0===d[e]&&(d[e]=b.defaultRenderOptions[e]);else d=b.defaultRenderOptions;b.defaultRenderer||(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._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&&(this.__stage=a),a.updateTransform();var b=this.gl;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,e){this.renderSession.blendModeManager.setBlendMode(b.blendModes.NORMAL),this.renderSession.drawCount=0,this.renderSession.flipY=d?-1:1,this.renderSession.projection=c,this.renderSession.offset=this.offset,this.spriteBatch.begin(this.renderSession),this.filterManager.begin(this.renderSession,d),a._renderWebGL(this.renderSession,e),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),a.mipmap&&b.isPowerOfTwo(a.width,a.height)?(c.texParameteri(c.TEXTURE_2D,c.TEXTURE_MIN_FILTER,a.scaleMode===b.scaleModes.LINEAR?c.LINEAR_MIPMAP_LINEAR:c.NEAREST_MIPMAP_NEAREST),c.generateMipmap(c.TEXTURE_2D)):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.destroy=function(){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.instances[this.glContextId]=null,b.WebGLRenderer.glContextId--},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.uniform1f(e.flipY,d.flipY),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.uniform1f(e.flipY,d.flipY),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,b){var c=a.texture,d=a.worldTransform;b&&(d=b),this.currentBatchSize>=this.size&&(this.flush(),this.currentBaseTexture=c.baseTexture);var e=c._uvs;if(e){var f,g,h,i,j=a.anchor.x,k=a.anchor.y;if(c.trim){var l=c.trim;g=l.x-j*l.width,f=g+c.crop.width,i=l.y-k*l.height,h=i+c.crop.height}else f=c.frame.width*(1-j),g=c.frame.width*-j,h=c.frame.height*(1-k),i=c.frame.height*-k;var m=4*this.currentBatchSize*this.vertSize,n=c.baseTexture.resolution,o=d.a/n,p=d.b/n,q=d.c/n,r=d.d/n,s=d.tx,t=d.ty,u=this.colors,v=this.positions;this.renderSession.roundPixels?(v[m]=o*g+q*i+s|0,v[m+1]=r*i+p*g+t|0,v[m+5]=o*f+q*i+s|0,v[m+6]=r*i+p*f+t|0,v[m+10]=o*f+q*h+s|0,v[m+11]=r*h+p*f+t|0,v[m+15]=o*g+q*h+s|0,v[m+16]=r*h+p*g+t|0):(v[m]=o*g+q*i+s,v[m+1]=r*i+p*g+t,v[m+5]=o*f+q*i+s,v[m+6]=r*i+p*f+t,v[m+10]=o*f+q*h+s,v[m+11]=r*h+p*f+t,v[m+15]=o*g+q*h+s,v[m+16]=r*h+p*g+t),v[m+2]=e.x0,v[m+3]=e.y0,v[m+7]=e.x1,v[m+8]=e.y1,v[m+12]=e.x2,v[m+13]=e.y2,v[m+17]=e.x3,v[m+18]=e.y3;var w=a.tint;u[m+4]=u[m+9]=u[m+14]=u[m+19]=(w>>16)+(65280&w)+((255&w)<<16)+(255*a.worldAlpha<<24),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,e=c.baseTexture.width,f=c.baseTexture.height;a.tilePosition.x%=e*a.tileScaleOffset.x,a.tilePosition.y%=f*a.tileScaleOffset.y;var g=a.tilePosition.x/(e*a.tileScaleOffset.x),h=a.tilePosition.y/(f*a.tileScaleOffset.y),i=a.width/e/(a.tileScale.x*a.tileScaleOffset.x),j=a.height/f/(a.tileScale.y*a.tileScaleOffset.y);d.x0=0-g,d.y0=0-h,d.x1=1*i-g,d.y1=0-h,d.x2=1*i-g,d.y2=1*j-h,d.x3=0-g,d.y3=1*j-h;var k=a.tint,l=(k>>16)+(65280&k)+((255&k)<<16)+(255*a.worldAlpha<<24),m=this.positions,n=this.colors,o=a.width,p=a.height,q=a.anchor.x,r=a.anchor.y,s=o*(1-q),t=o*-q,u=p*(1-r),v=p*-r,w=4*this.currentBatchSize*this.vertSize,x=c.baseTexture.resolution,y=a.worldTransform,z=y.a/x,A=y.b/x,B=y.c/x,C=y.d/x,D=y.tx,E=y.ty;m[w++]=z*t+B*v+D,m[w++]=C*v+A*t+E,m[w++]=d.x0,m[w++]=d.y0,n[w++]=l,m[w++]=z*s+B*v+D,m[w++]=C*v+A*s+E,m[w++]=d.x1,m[w++]=d.y1,n[w++]=l,m[w++]=z*s+B*u+D,m[w++]=C*u+A*s+E,m[w++]=d.x2,m[w++]=d.y2,n[w++]=l,m[w++]=z*t+B*u+D,m[w++]=C*u+A*t+E,m[w++]=d.x3,m[w++]=d.y3,n[w++]=l,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,4,c.UNSIGNED_BYTE,!0,d,16)}if(this.currentBatchSize>.5*this.size)c.bufferSubData(c.ARRAY_BUFFER,0,this.vertices);else{var e=this.positions.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.tilingTexture?i.tilingTexture.baseTexture: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;jB?B:A,c.beginPath(),c.moveTo(w,x+A),c.lineTo(w,x+z-A),c.quadraticCurveTo(w,x+z,w+A,x+z),c.lineTo(w+y-A,x+z),c.quadraticCurveTo(w+y,x+z,w+y,x+z-A),c.lineTo(w+y,x+A),c.quadraticCurveTo(w+y,x,w+y-A,x),c.lineTo(w+A,x),c.quadraticCurveTo(w,x,w,x+A),c.closePath(),(f.fillColor||0===f.fillColor)&&(c.globalAlpha=f.fillAlpha*d,c.fillStyle="#"+("00000"+(0|h).toString(16)).substr(-6),c.fill()),f.lineWidth&&(c.globalAlpha=f.lineAlpha*d,c.strokeStyle="#"+("00000"+(0|i).toString(16)).substr(-6),c.stroke())}}},b.CanvasGraphics.renderGraphicsMask=function(a,c){var d=a.graphicsData.length;if(0!==d){c.beginPath();for(var e=0;d>e;e++){var f=a.graphicsData[e],g=f.shape;if(f.type===b.Graphics.POLY){var h=g.points;c.moveTo(h[0],h[1]);for(var i=1;iz?z:y,c.moveTo(u,v+y),c.lineTo(u,v+x-y),c.quadraticCurveTo(u,v+x,u+y,v+x),c.lineTo(u+w-y,v+x),c.quadraticCurveTo(u+w,v+x,u+w,v+x-y),c.lineTo(u+w,v+y),c.quadraticCurveTo(u+w,v,u+w-y,v),c.lineTo(u+y,v),c.quadraticCurveTo(u,v,u,v+y),c.closePath()}}}},b.CanvasGraphics.updateGraphicsTint=function(a){if(16777215!==a.tint)for(var b=(a.tint>>16&255)/255,c=(a.tint>>8&255)/255,d=(255&a.tint)/255,e=0;e>16&255)/255*b*255<<16)+((g>>8&255)/255*c*255<<8)+(255&g)/255*d*255,f._lineTint=((h>>16&255)/255*b*255<<16)+((h>>8&255)/255*c*255<<8)+(255&h)/255*d*255}},b.BaseTextureCache={},b.BaseTextureCacheIdGenerator=0,b.BaseTexture=function(a,c){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.mipmap=!1,this._dirty=[!0,!0,!0,!0],a&&((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()),this.imageUrl=null,this._powerOf2=!1)},b.BaseTexture.prototype.constructor=b.BaseTexture,b.BaseTexture.prototype.forceLoaded=function(a,b){this.hasLoaded=!0,this.width=a,this.height=b,this.dirty()},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++),0===a.width&&(a.width=1),0===a.height&&(a.height=1);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.TextureSilentFail=!1,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.isTiling=!1,this.requiresUpdate=!1,this.requiresReTint=!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))},b.Texture.prototype.constructor=b.Texture,b.Texture.prototype.onBaseTextureLoaded=function(){var a=this.baseTexture;this.noFrame&&(this.frame=new b.Rectangle(0,0,a.width,a.height)),this.setFrame(this.frame)},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)){if(!b.TextureSilentFail)throw new Error("Texture Error: frame does not fit inside the base Texture dimensions "+this);return void(this.valid=!1)}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.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.resolution,this.height*this.resolution)),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.height,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.tempMatrix=new Phaser.Matrix,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=a,this.height=c,this.frame.width=this.crop.width=a*this.resolution,this.frame.height=this.crop.height=c*this.resolution,d&&(this.baseTexture.width=this.width*this.resolution,this.baseTexture.height=this.height*this.resolution),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.height))},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&&0!==a.alpha){var d=a.worldTransform;d.identity(),d.translate(0,2*this.projection.y),b&&d.append(b),d.scale(1,-1);for(var e=0;ea;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,b}.call(this);(function(){function a(a,b){this._scaleFactor=a,this._deltaMode=b,this.originalEvent=null}var b=this,c=c||{VERSION:"2.4.0",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,CIRCLE:21,RECTANGLE:22,LINE:23,MATRIX:24,POINT:25,ROUNDEDRECTANGLE:26,CREATURE:27,VIDEO:28,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:PIXI||{}};if(Math.trunc||(Math.trunc=function(a){return 0>a?Math.ceil(a):Math.floor(a)}),Function.prototype.bind||(Function.prototype.bind=function(){var a=Array.prototype.slice;return function(b){function c(){var f=e.concat(a.call(arguments));d.apply(this instanceof c?this:b,f)}var d=this,e=a.call(arguments,1);if("function"!=typeof d)throw new TypeError;return c.prototype=function f(a){return a&&(f.prototype=a),this instanceof f?void 0:new f}(d.prototype),c}}()),Array.isArray||(Array.isArray=function(a){return"[object Array]"==Object.prototype.toString.call(a)}),Array.prototype.forEach||(Array.prototype.forEach=function(a){"use strict";if(void 0===this||null===this)throw new TypeError;var b=Object(this),c=b.length>>>0;if("function"!=typeof a)throw new TypeError;for(var d=arguments.length>=2?arguments[1]:void 0,e=0;c>e;e++)e in b&&a.call(d,b[e],e,b)}),"function"!=typeof window.Uint32Array&&"object"!=typeof window.Uint32Array){var d=function(a){var b=new Array;window[a]=function(a){if("number"==typeof a){Array.call(this,a),this.length=a;for(var b=0;bf&&(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 void 0===a&&(a=50),a>0&&100*Math.random()<=a},randomChoice:function(a,b){return Math.random()<.5?a:b},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(void 0===b)var b=0;if(void 0===c)var c=" ";if(void 0===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},mixinPrototype:function(a,b,c){void 0===c&&(c=!1);for(var d=Object.keys(b),e=0;e0&&(this._radius=.5*d),this.type=c.CIRCLE},c.Circle.prototype={circumference:function(){return 2*Math.PI*this._radius},random:function(a){void 0===a&&(a=new c.Point);var b=2*Math.PI*Math.random(),d=Math.random()+Math.random(),e=d>1?2-d:d,f=e*Math.cos(b),g=e*Math.sin(b);return a.x=this.x+f*this.radius,a.y=this.y+g*this.radius,a},getBounds:function(){return new c.Rectangle(this.x-this.radius,this.y-this.radius,this.diameter,this.diameter)},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 void 0===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 void 0===d&&(d=!1),void 0===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.Ellipse=function(a,b,d,e){a=a||0,b=b||0,d=d||0,e=e||0,this.x=a,this.y=b,this.width=d,this.height=e,this.type=c.ELLIPSE},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 void 0===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)},random:function(a){void 0===a&&(a=new c.Point);var b=Math.random()*Math.PI*2,d=Math.random();return a.x=Math.sqrt(d)*Math.cos(b),a.y=Math.sqrt(d)*Math.sin(b),a.x=this.x+a.x*this.width/2,a.y=this.y+a.y*this.height/2,a},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},PIXI.Ellipse=c.Ellipse,c.Line=function(a,b,d,e){a=a||0,b=b||0,d=d||0,e=e||0,this.start=new c.Point(a,b),this.end=new c.Point(d,e),this.type=c.LINE},c.Line.prototype={setTo:function(a,b,c,d){return this.start.setTo(a,b),this.end.setTo(c,d),this},fromSprite:function(a,b,c){return void 0===c&&(c=!1),c?this.setTo(a.center.x,a.center.y,b.center.x,b.center.y):this.setTo(a.x,a.y,b.x,b.y)},fromAngle:function(a,b,c,d){return this.start.setTo(a,b),this.end.setTo(a+Math.cos(c)*d,b+Math.sin(c)*d),this},rotate:function(a,b){var c=this.start.x,d=this.start.y;return this.start.rotate(this.end.x,this.end.y,a,b,this.length),this.end.rotate(c,d,a,b,this.length),this},intersects:function(a,b,d){return c.Line.intersectsPoints(this.start,this.end,a.start,a.end,b,d)},reflect:function(a){return c.Line.reflect(this,a)},pointOnLine:function(a,b){return(a-this.start.x)*(this.end.y-this.start.y)===(this.end.x-this.start.x)*(b-this.start.y)},pointOnSegment:function(a,b){var c=Math.min(this.start.x,this.end.x),d=Math.max(this.start.x,this.end.x),e=Math.min(this.start.y,this.end.y),f=Math.max(this.start.y,this.end.y);return this.pointOnLine(a,b)&&a>=c&&d>=a&&b>=e&&f>=b},random:function(a){void 0===a&&(a=new c.Point);var b=Math.random();return a.x=this.start.x+b*(this.end.x-this.start.x),a.y=this.start.y+b*(this.end.y-this.start.y),a},coordinatesOnLine:function(a,b){void 0===a&&(a=1),void 0===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 void 0===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)}}),Object.defineProperty(c.Line.prototype,"normalX",{get:function(){return Math.cos(this.angle-1.5707963267948966)}}),Object.defineProperty(c.Line.prototype,"normalY",{get:function(){return Math.sin(this.angle-1.5707963267948966)}}),Object.defineProperty(c.Line.prototype,"normalAngle",{get:function(){return c.Math.wrap(this.angle-1.5707963267948966,-Math.PI,Math.PI)}}),c.Line.intersectsPoints=function(a,b,d,e,f,g){void 0===f&&(f=!0),void 0===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.Line.reflect=function(a,b){return 2*b.normalAngle-3.141592653589793-a.angle},c.Matrix=function(a,b,d,e,f,g){a=a||1,b=b||0,d=d||0,e=e||1,f=f||0,g=g||0,this.a=a,this.b=b,this.c=d,this.d=e,this.tx=f,this.ty=g,this.type=c.MATRIX},c.Matrix.prototype={fromArray:function(a){return this.setTo(a[0],a[1],a[3],a[4],a[2],a[5])},setTo:function(a,b,c,d,e,f){return this.a=a,this.b=b,this.c=c,this.d=d,this.tx=e,this.ty=f,this},clone:function(a){return void 0===a||null===a?a=new c.Matrix(this.a,this.b,this.c,this.d,this.tx,this.ty):(a.a=this.a,a.b=this.b,a.c=this.c,a.d=this.d,a.tx=this.tx,a.ty=this.ty),a},copyTo:function(a){return a.copyFrom(this),a},copyFrom:function(a){return this.a=a.a,this.b=a.b,this.c=a.c,this.d=a.d,this.tx=a.tx,this.ty=a.ty,this},toArray:function(a,b){return void 0===b&&(b=new PIXI.Float32Array(9)),a?(b[0]=this.a,b[1]=this.b,b[2]=0,b[3]=this.c,b[4]=this.d,b[5]=0,b[6]=this.tx,b[7]=this.ty,b[8]=1):(b[0]=this.a,b[1]=this.c,b[2]=this.tx,b[3]=this.b,b[4]=this.d,b[5]=this.ty,b[6]=0,b[7]=0,b[8]=1),b},apply:function(a,b){return void 0===b&&(b=new c.Point),b.x=this.a*a.x+this.c*a.y+this.tx,b.y=this.b*a.x+this.d*a.y+this.ty,b},applyInverse:function(a,b){void 0===b&&(b=new c.Point);var d=1/(this.a*this.d+this.c*-this.b),e=a.x,f=a.y;return b.x=this.d*d*e+-this.c*d*f+(this.ty*this.c-this.tx*this.d)*d,b.y=this.a*d*f+-this.b*d*e+(-this.ty*this.a+this.tx*this.b)*d,b},translate:function(a,b){return this.tx+=a,this.ty+=b,this},scale:function(a,b){return this.a*=a,this.d*=b,this.c*=a,this.b*=b,this.tx*=a,this.ty*=b,this},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},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},identity:function(){return this.setTo(1,0,0,1,0,0)}},c.identityMatrix=new c.Matrix,PIXI.Matrix=c.Matrix,PIXI.identityMatrix=c.identityMatrix,c.Point=function(a,b){a=a||0,b=b||0,this.x=a,this.y=b,this.type=c.POINT},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 void 0===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 void 0===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)},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 void 0===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 void 0===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 void 0===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 void 0===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.negative=function(a,b){return void 0===b&&(b=new c.Point),b.setTo(-a.x,-a.y)},c.Point.multiplyAdd=function(a,b,d,e){return void 0===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 void 0===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 void 0===b&&(b=new c.Point),b.setTo(-a.y,a.x)},c.Point.rperp=function(a,b){return void 0===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){void 0===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){void 0===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 void 0===b&&(b=new c.Point),b.setTo(-1*a.y,a.x)},c.Point.normalize=function(a,b){void 0===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){void 0===f&&(f=!1),void 0===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.x=b+g*Math.cos(h),a.y=d+g*Math.sin(h),a},c.Point.centroid=function(a,b){if(void 0===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.Polygon=function(){this.area=0,this._points=[],arguments.length>0&&this.setTo.apply(this,arguments),this.closed=!0,this.type=c.POLYGON},c.Polygon.prototype={toNumberArray:function(a){void 0===a&&(a=[]);for(var b=0;b=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,c=0,d=a.length;d>c;c++){if("number"==typeof a[c]){var e=new PIXI.Point(a[c],a[c+1]);c++}else var e=new PIXI.Point(a[c].x,a[c].y);this._points.push(e),e.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.Polygon=c.Polygon,c.Rectangle=function(a,b,d,e){a=a||0,b=b||0,d=d||0,e=e||0,this.x=a,this.y=b,this.width=d,this.height=e,this.type=c.RECTANGLE},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 void 0===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)},ceil:function(){this.x=Math.ceil(this.x),this.y=Math.ceil(this.y)},ceilAll:function(){this.x=Math.ceil(this.x),this.y=Math.ceil(this.y),this.width=Math.ceil(this.width),this.height=Math.ceil(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)},resize:function(a,b){return this.width=a,this.height=b,this},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){return c.Rectangle.intersects(this,a)},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)},random:function(a){return void 0===a&&(a=new c.Point),a.x=this.randomX,a.y=this.randomY,a},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,"bottomLeft",{get:function(){return new c.Point(this.x,this.bottom)},set:function(a){this.x=a.x,this.bottom=a.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 void 0===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 void 0===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 void 0===f&&(f=0),!(b>a.right+f||ca.bottom+f||ed&&(d=a.x),a.xf&&(f=a.y),a.y=c&&a<=c+this.width){var d=this.y;if(b>=d&&b<=d+this.height)return!0}return!1}},c.RoundedRectangle.prototype.constructor=c.RoundedRectangle,PIXI.RoundedRectangle=c.RoundedRectangle,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.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.displayObject=null,this.scale=null,this.totalInView=0,this._targetPosition=new c.Point,this._edge=0,this._position=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={preUpdate:function(){this.totalInView=0},follow:function(a,b){void 0===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),this.target.parent&&this._targetPosition.multiply(this.target.parent.worldTransform.a,this.target.parent.worldTransform.d),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.copyFrom(this.game.world.bounds)},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.Create=function(a){this.game=a,this.bmd=a.make.bitmapData(),this.canvas=this.bmd.canvas,this.ctx=this.bmd.context,this.palettes=[{0:"#000",1:"#9D9D9D",2:"#FFF",3:"#BE2633",4:"#E06F8B",5:"#493C2B",6:"#A46422",7:"#EB8931",8:"#F7E26B",9:"#2F484E",A:"#44891A",B:"#A3CE27",C:"#1B2632",D:"#005784",E:"#31A2F2",F:"#B2DCEF"},{0:"#000",1:"#191028",2:"#46af45",3:"#a1d685",4:"#453e78",5:"#7664fe",6:"#833129",7:"#9ec2e8",8:"#dc534b",9:"#e18d79",A:"#d6b97b",B:"#e9d8a1",C:"#216c4b",D:"#d365c8",E:"#afaab9",F:"#f5f4eb"},{0:"#000",1:"#2234d1",2:"#0c7e45",3:"#44aacc",4:"#8a3622",5:"#5c2e78",6:"#aa5c3d",7:"#b5b5b5",8:"#5e606e",9:"#4c81fb",A:"#6cd947",B:"#7be2f9",C:"#eb8a60",D:"#e23d69",E:"#ffd93f",F:"#fff"},{0:"#000",1:"#fff",2:"#8b4131",3:"#7bbdc5",4:"#8b41ac",5:"#6aac41",6:"#3931a4",7:"#d5de73",8:"#945a20",9:"#5a4100",A:"#bd736a",B:"#525252",C:"#838383",D:"#acee8b",E:"#7b73de",F:"#acacac"},{0:"#000",1:"#191028",2:"#46af45",3:"#a1d685",4:"#453e78",5:"#7664fe",6:"#833129",7:"#9ec2e8",8:"#dc534b",9:"#e18d79",A:"#d6b97b",B:"#e9d8a1",C:"#216c4b",D:"#d365c8",E:"#afaab9",F:"#fff"}]},c.Create.PALETTE_ARNE=0,c.Create.PALETTE_JMP=1,c.Create.PALETTE_CGA=2,c.Create.PALETTE_C64=3,c.Create.PALETTE_JAPANESE_MACHINE=4,c.Create.prototype={texture:function(a,b,c,d,e){void 0===c&&(c=8),void 0===d&&(d=c),void 0===e&&(e=0);var f=b[0].length*c,g=b.length*d;this.bmd.resize(f,g),this.bmd.clear();for(var h=0;hg;g+=e)this.ctx.fillRect(0,g,b,1);for(var h=0;b>h;h+=d)this.ctx.fillRect(h,0,1,c);return this.bmd.generateTexture(a)}},c.Create.prototype.constructor=c.Create,c.State=function(){this.game=null,this.key="",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={init:function(){},preload:function(){},loadUpdate:function(){},loadRender:function(){},create:function(){},update:function(){},preRender:function(){},render:function(){},resize:function(){},paused:function(){},resumed: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.onStateChange=new c.Signal,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),null!==this._pendingState&&"string"!=typeof this._pendingState&&this.add("default",this._pendingState,!0)},add:function(a,b,d){void 0===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.onPreRenderCallback=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){void 0===b&&(b=!0),void 0===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){void 0===a&&(a=!0),void 0===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){var a=this.current;if(this.clearCurrentState(),this.setCurrentState(this._pendingState),this.onStateChange.dispatch(this.current,a),this.current!==this._pendingState)return;this._pendingState=null,this.onPreloadCallback?(this.game.load.reset(!0),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||this.states[a].create||this.states[a].update||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,this.states[a].key=a},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&&this.game.physics.reset(),this.current=a,this._created=!1,this.onInitCallback.apply(this.callbackContext,this._args),a===this._pendingState&&(this._args=[]),this.game._kickstart=!0},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(a){this._created&&this.onPreRenderCallback&&this.onPreRenderCallback.call(this.callbackContext,this.game,a)},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.context.restore()):this.onRenderCallback.call(this.callbackContext,this.game)):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,this.current=""}},c.StateManager.prototype.constructor=c.StateManager,Object.defineProperty(c.StateManager.prototype,"created",{get:function(){return this._created}}),c.Signal=function(){},c.Signal.prototype={_bindings:null,_prevParams:null,memorize:!1,_shouldPropagate:!0,active:!0,_boundDispatch:!0,validateListener:function(a,b){if("function"!=typeof a)throw new Error("Phaser.Signal: listener is a required param of {fn}() and should be a Function.".replace("{fn}",b))},_registerListener:function(a,b,d,e,f){var g,h=this._indexOfListener(a,d);if(-1!==h){if(g=this._bindings[h],g.isOnce()!==b)throw new Error("You cannot add"+(b?"":"Once")+"() then add"+(b?"Once":"")+"() the same listener without removing the relationship first.")}else g=new c.SignalBinding(this,a,b,d,e,f),this._addBinding(g);return this.memorize&&this._prevParams&&g.execute(this._prevParams),g},_addBinding:function(a){this._bindings||(this._bindings=[]);var b=this._bindings.length;do b--;while(this._bindings[b]&&a._priority<=this._bindings[b]._priority);this._bindings.splice(b+1,0,a)},_indexOfListener:function(a,b){if(!this._bindings)return-1;void 0===b&&(b=null);for(var c,d=this._bindings.length;d--;)if(c=this._bindings[d],c._listener===a&&c.context===b)return d;return-1},has:function(a,b){return-1!==this._indexOfListener(a,b)},add:function(a,b,c){this.validateListener(a,"add");var d=[];if(arguments.length>3)for(var e=3;e3)for(var e=3;ea||a>=this.children.length?-1:this.getChildAt(a)},c.Group.prototype.create=function(a,b,c,d,e){void 0===e&&(e=!0);var f=new this.classType(this.game,a,b,c,d);return f.exists=e,f.visible=e,f.alive=e,this.addChild(f),f.z=this.children.length,this.enableBody&&this.game.physics.enable(f,this.physicsBodyType,this.enableBodyDebug),f.events&&f.events.onAddedToGroup$dispatch(f,this),null===this.cursor&&(this.cursor=f),f},c.Group.prototype.createMultiple=function(a,b,c,d){void 0===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 void 0===a&&(a=0),a>this.children.length-1&&(a=0),this.cursor?(this.cursorIndex=a,this.cursor=this.children[this.cursorIndex],this.cursor):void 0},c.Group.prototype.next=function(){return this.cursor?(this.cursorIndex>=this.children.length-1?this.cursorIndex=0:this.cursorIndex++,this.cursor=this.children[this.cursorIndex],this.cursor):void 0},c.Group.prototype.previous=function(){return this.cursor?(0===this.cursorIndex?this.cursorIndex=this.children.length-1:this.cursorIndex--,this.cursor=this.children[this.cursorIndex],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);return-1!==d?(b.parent&&(b.parent instanceof c.Group?b.parent.remove(b):b.parent.removeChild(b)),this.remove(a),this.addAt(b,d),a):void 0},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(void 0===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 void 0===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 void 0===g&&(g=!1),b=b.split("."),void 0===d&&(d=!1),void 0===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){void 0===c&&(c=!1),void 0===d&&(d=!1),void 0===f&&(f=!1),a=a.split("."),e=e||0;for(var g=0;g2){c=[];for(var d=2;d2){e=[];for(var f=2;f2){d=[null];for(var e=2;e2){d=[null];for(var e=2;e2){d=[null];for(var e=2;eb[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;for(var h=0,i=0;i0?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(void 0===b&&(b=!1),void 0===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.removeFromHash(a),this.updateZ(),this.cursor===a&&this.next(),b&&d&&d.destroy(!0),!0},c.Group.prototype.moveAll=function(a,b){if(void 0===b&&(b=!1),this.children.length>0&&a instanceof c.Group){do a.add(this.children[0],b);while(this.children.length>0);this.hash=[],this.cursor=null}return a},c.Group.prototype.removeAll=function(a,b){if(void 0===a&&(a=!1),void 0===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]);this.removeFromHash(c),a&&c&&c.destroy(!0)}while(this.children.length>0);this.hash=[],this.cursor=null}},c.Group.prototype.removeBetween=function(a,b,c,d){if(void 0===b&&(b=this.children.length-1),void 0===c&&(c=!1),void 0===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]);this.removeFromHash(f),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||(void 0===a&&(a=!0),void 0===b&&(b=!1),this.onDestroy.dispatch(this,a,b),this.removeAll(a),this.cursor=null,this.filters=null,this.pendingDestroy=!1,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)}}),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,this.game.state.onStateChange.add(this.stateChange,this)},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.stateChange=function(){this.x=0,this.y=0,this.camera.reset()},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.x=a,this.y=b,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,this.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();(f||g)&&(this.onResize&&this.onResize.call(this.onResizeContext,this,e),this.updateLayout(),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,Object.defineProperty(c.ScaleManager.prototype,"boundingParent",{get:function(){if(this.parentIsWindow||this.isFullScreen&&!this._createdFullScreenTarget)return null;var a=this.game.canvas&&this.game.canvas.parentNode;return a||null}}),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,"isGamePortrait",{get:function(){return this.height>this.width}}),Object.defineProperty(c.ScaleManager.prototype,"isGameLandscape",{get:function(){return this.width>this.height}}),c.Game=function(a,b,d,e,f,g,h,i){return this.id=c.GAMES.push(this)-1,this.config=null,this.physicsConfig=i,this.parent="",this.width=800,this.height=600,this.resolution=1,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.plugins=null,this.rnd=null,this.device=c.Device,this.camera=null,this.canvas=null,this.context=null,this.debug=null,this.particles=null,this.create=null,this.lockRender=!1,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.currentUpdateID=0,this.updatesThisFrame=1,this._deltaTime=0,this._lastCount=0,this._spiraling=0,this._kickstart=!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)),this.device.whenReady(this.boot,this),this},c.Game.prototype={parseConfig:function(a){this.config=a,void 0===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.resolution&&(this.resolution=a.resolution),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||(this.onPause=new c.Signal,this.onResume=new c.Signal,this.onBlur=new c.Signal,this.onFocus=new c.Signal,this.isBooted=!0,this.math=c.Math,this.scale=new c.ScaleManager(this,this._width,this._height),this.stage=new c.Stage(this),this.setUpRenderer(),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.create=new c.Create(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.debug={preUpdate:function(){},update:function(){},reset:function(){}},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._kickstart=!0,window.focus&&(!window.PhaserGlobal||window.PhaserGlobal&&!window.PhaserGlobal.stopFocus)&&window.focus(),this.raf.start())},showDebugHeader:function(){if(!window.PhaserGlobal||!window.PhaserGlobal.hideBanner){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: #9854d8","background: #6c2ca7","color: #ffffff; background: #450f78;","background: #6c2ca7","background: #9854d8","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:this.resolution,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:this.resolution,antialias:this.antialias,preserveDrawingBuffer:this.preserveDrawingBuffer}),this.context=null,this.canvas.addEventListener("webglcontextlost",this.contextLost.bind(this),!1),this.canvas.addEventListener("webglcontextrestored",this.contextRestored.bind(this),!1);this.renderType!==c.HEADLESS&&(this.stage.smoothed=this.antialias,c.Canvas.addToDOM(this.canvas,this.parent,!1),c.Canvas.setTouchAction(this.canvas))},contextLost:function(a){a.preventDefault(),this.renderer.contextLost=!0},contextRestored:function(){this.renderer.initContext(),this.cache.clearGLTextures(),this.renderer.contextLost=!1},update:function(a){if(this.time.update(a),this._kickstart)return this.updateLogic(1/this.time.desiredFps),this.stage.updateTransform(),this.updateRender(this.time.slowMotion*this.time.desiredFps),void(this._kickstart=!1);if(this._spiraling>1&&!this.forceSingleUpdate)this.time.time>this._nextFpsNotification&&(this._nextFpsNotification=this.time.time+1e4,this.fpsProblemNotifier.dispatch()),this._deltaTime=0,this._spiraling=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);var c=0;for(this.updatesThisFrame=Math.floor(this._deltaTime/b),this.forceSingleUpdate&&(this.updatesThisFrame=Math.min(1,this.updatesThisFrame));this._deltaTime>=b&&(this._deltaTime-=b,this.currentUpdateID=c,this.updateLogic(1/this.time.desiredFps),this.stage.updateTransform(),c++,!this.forceSingleUpdate||1!==c););c>this._lastCount?this._spiraling++:c=c.Input.MAX_POINTERS)return console.warn("Phaser.Input.addPointer: Maximum limit of "+c.Input.MAX_POINTERS+" pointers reached."),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&&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 a-b},getPointer:function(a){void 0===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._pollCounterthis.game.time.time},justReleased:function(a){return a=a||250,this.isUp&&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,this.altKey=!1,this.shiftKey=!1,this.ctrlKey=!1},destroy:function(){this.onDown.dispose(),this.onUp.dispose(),this.onFloat.dispose(),this.parent=null,this.game=null}},c.DeviceButton.prototype.constructor=c.DeviceButton,Object.defineProperty(c.DeviceButton.prototype,"duration",{get:function(){return this.isUp?-1:this.game.time.time-this.timeDown}}),c.Pointer=function(a,b){this.game=a,this.id=b,this.type=c.POINTER,this.exists=!0,this.identifier=0,this.pointerId=null,this.target=null,this.button=null,this.leftButton=new c.DeviceButton(this,c.Pointer.LEFT_BUTTON),this.middleButton=new c.DeviceButton(this,c.Pointer.MIDDLE_BUTTON),this.rightButton=new c.DeviceButton(this,c.Pointer.RIGHT_BUTTON),this.backButton=new c.DeviceButton(this,c.Pointer.BACK_BUTTON),this.forwardButton=new c.DeviceButton(this,c.Pointer.FORWARD_BUTTON),this.eraserButton=new c.DeviceButton(this,c.Pointer.ERASER_BUTTON),this._holdSent=!1,this._history=[],this._nextDrop=0,this._stateReset=!1,this.withinGame=!1,this.clientX=-1,this.clientY=-1,this.pageX=-1,this.pageY=-1,this.screenX=-1,this.screenY=-1,this.rawMovementX=0,this.rawMovementY=0,this.movementX=0,this.movementY=0,this.x=-1,this.y=-1,this.isMouse=0===b,this.isDown=!1,this.isUp=!0,this.timeDown=0,this.timeUp=0,this.previousTapTime=0,this.totalTouches=0,this.msSinceLastClick=Number.MAX_VALUE,this.targetObject=null,this.active=!1,this.dirty=!1,this.position=new c.Point,this.positionDown=new c.Point,this.positionUp=new c.Point,this.circle=new c.Circle(0,0,44),this._clickTrampolines=null,this._trampolineTargetObject=null},c.Pointer.NO_BUTTON=0,c.Pointer.LEFT_BUTTON=1,c.Pointer.RIGHT_BUTTON=2,c.Pointer.MIDDLE_BUTTON=4,c.Pointer.BACK_BUTTON=8,c.Pointer.FORWARD_BUTTON=16,c.Pointer.ERASER_BUTTON=32,c.Pointer.prototype={resetButtons:function(){this.isDown=!1,this.isUp=!0,this.isMouse&&(this.leftButton.reset(),this.middleButton.reset(),this.rightButton.reset(),this.backButton.reset(),this.forwardButton.reset(),this.eraserButton.reset())},updateButtons:function(a){this.button=a.button;var b=a.buttons;void 0!==b&&(c.Pointer.LEFT_BUTTON&b?this.leftButton.start(a):this.leftButton.stop(a),c.Pointer.RIGHT_BUTTON&b?this.rightButton.start(a):this.rightButton.stop(a),c.Pointer.MIDDLE_BUTTON&b?this.middleButton.start(a):this.middleButton.stop(a),c.Pointer.BACK_BUTTON&b?this.backButton.start(a):this.backButton.stop(a),c.Pointer.FORWARD_BUTTON&b?this.forwardButton.start(a):this.forwardButton.stop(a),c.Pointer.ERASER_BUTTON&b?this.eraserButton.start(a):this.eraserButton.stop(a),a.ctrlKey&&this.leftButton.isDown&&this.rightButton.start(a),this.isUp=!0,this.isDown=!1,(this.leftButton.isDown||this.rightButton.isDown||this.middleButton.isDown||this.backButton.isDown||this.forwardButton.isDown||this.eraserButton.isDown)&&(this.isUp=!1,this.isDown=!0))},start:function(a){return a.pointerId&&(this.pointerId=a.pointerId),this.identifier=a.identifier,this.target=a.target,this.isMouse?this.updateButtons(a):(this.isDown=!0,this.isUp=!1),this._history=[],this.active=!0,this.withinGame=!0,this.dirty=!1,this._clickTrampolines=null,this._trampolineTargetObject=null,this.msSinceLastClick=this.game.time.time-this.timeDown,this.timeDown=this.game.time.time,this._holdSent=!1,this.move(a,!0),this.positionDown.setTo(this.x,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.totalActivePointers)&&(this.game.input.x=this.x,this.game.input.y=this.y,this.game.input.position.setTo(this.x,this.y),this.game.input.onDown.dispatch(this,a),this.game.input.resetSpeed(this.x,this.y)),this._stateReset=!1,this.totalTouches++,null!==this.targetObject&&this.targetObject._touchedHandler(this),this},update:function(){this.active&&(this.dirty&&(this.game.input.interactiveItems.total>0&&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.totalActivePointers)&&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(void 0===b&&(b=!1),void 0!==a.button&&(this.button=a.button),b&&this.updateButtons(a),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.totalActivePointers)&&(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.renderOrderID,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.renderOrderID,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&&this.withinGame?void a.preventDefault():(this.isMouse?this.updateButtons(a):(this.isDown=!1,this.isUp=!0),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.totalActivePointers)&&(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.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&&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;fd;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}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 void 0===c&&(c=!0),0===this.sprite.scale.x||0===this.sprite.scale.y||this.priorityIDa||this.priorityID===a&&this.sprite.renderOrderIDb;b++)if(this._pointerData[b].isOver)return!0}return!1},pointerOut:function(a){if(this.enabled){if(void 0!==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)?(void 0===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)?(void 0===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&&this._pointerData[a.id].isOver){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.snapPoint.set(this.sprite.cameraOffset.x,this.sprite.cameraOffset.y))):(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,this.snapPoint.set(this.sprite.x,this.sprite.y))),this.sprite.events.onDragUpdate.dispatch(this.sprite,a,b,c,this.snapPoint),!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){var b=this.sprite.x,c=this.sprite.y;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 d=this.sprite.getBounds();this.sprite.x=this.globalToLocalX(a.x)+(this.sprite.x-d.centerX),this.sprite.y=this.globalToLocalY(a.y)+(this.sprite.y-d.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.dragStartPoint.set(b,c),this.sprite.events.onDragStart$dispatch(this.sprite,a,b,c)},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){void 0===a&&(a=!0),void 0===b&&(b=!0),this.allowHorizontalDrag=a,this.allowVerticalDrag=b},enableSnap:function(a,b,c,d,e,f){void 0===c&&(c=!0),void 0===d&&(d=!1),void 0===e&&(e=0),void 0===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.leftthis.boundsRect.right&&(this.sprite.x=this.boundsRect.right-(this.sprite.width-this.sprite.offsetX)),this.sprite.topthis.boundsRect.bottom&&(this.sprite.y=this.boundsRect.bottom-(this.sprite.height-this.sprite.offsetY)))},checkBoundsSprite:function(){this.sprite.fixedToCamera&&this.boundsSprite.fixedToCamera?(this.sprite.cameraOffset.xthis.boundsSprite.cameraOffset.x+this.boundsSprite.width&&(this.sprite.cameraOffset.x=this.boundsSprite.cameraOffset.x+this.boundsSprite.width-this.sprite.width),this.sprite.cameraOffset.ythis.boundsSprite.cameraOffset.y+this.boundsSprite.height&&(this.sprite.cameraOffset.y=this.boundsSprite.cameraOffset.y+this.boundsSprite.height-this.sprite.height)):(this.sprite.leftthis.boundsSprite.right&&(this.sprite.x=this.boundsSprite.right-(this.sprite.width-this.sprite.offsetX)),this.sprite.topthis.boundsSprite.bottom&&(this.sprite.y=this.boundsSprite.bottom-(this.sprite.height-this.sprite.offsetY)))}},c.InputHandler.prototype.constructor=c.InputHandler,c.Gamepad=function(a){this.game=a,this._gamepadIndexMap={},this._rawPads=[],this._active=!1,this.enabled=!0,this._gamepadSupportAvailable=!!navigator.webkitGetGamepads||!!navigator.webkitGamepads||-1!=navigator.userAgent.indexOf("Firefox/")||!!navigator.getGamepads,this._prevRawGamepadTypes=[],this._prevTimestamps=[],this.callbackContext=this,this.onConnectCallback=null,this.onDisconnectCallback=null,this.onDownCallback=null,this.onUpCallback=null,this.onAxisCallback=null,this.onFloatCallback=null,this._ongamepadconnected=null,this._gamepaddisconnected=null,this._gamepads=[new c.SinglePad(a,this),new c.SinglePad(a,this),new c.SinglePad(a,this),new c.SinglePad(a,this)]},c.Gamepad.prototype={addCallbacks:function(a,b){"undefined"!=typeof b&&(this.onConnectCallback="function"==typeof b.onConnect?b.onConnect:this.onConnectCallback,this.onDisconnectCallback="function"==typeof b.onDisconnect?b.onDisconnect:this.onDisconnectCallback,this.onDownCallback="function"==typeof b.onDown?b.onDown:this.onDownCallback,this.onUpCallback="function"==typeof b.onUp?b.onUp:this.onUpCallback,this.onAxisCallback="function"==typeof b.onAxis?b.onAxis:this.onAxisCallback,this.onFloatCallback="function"==typeof b.onFloat?b.onFloat:this.onFloatCallback,this.callbackContext=a)},start:function(){if(!this._active){this._active=!0;var a=this;this._onGamepadConnected=function(b){return a.onGamepadConnected(b)},this._onGamepadDisconnected=function(b){return a.onGamepadDisconnected(b)},window.addEventListener("gamepadconnected",this._onGamepadConnected,!1),window.addEventListener("gamepaddisconnected",this._onGamepadDisconnected,!1)}},onGamepadConnected:function(a){var b=a.gamepad;this._rawPads.push(b),this._gamepads[b.index].connect(b)},onGamepadDisconnected:function(a){var b=a.gamepad;for(var c in this._rawPads)this._rawPads[c].index===b.index&&this._rawPads.splice(c,1);this._gamepads[b.index].disconnect()},update:function(){this._pollGamepads(),this.pad1.pollStatus(),this.pad2.pollStatus(),this.pad3.pollStatus(),this.pad4.pollStatus()},_pollGamepads:function(){if(navigator.getGamepads)var a=navigator.getGamepads();else if(navigator.webkitGetGamepads)var a=navigator.webkitGetGamepads();else if(navigator.webkitGamepads)var a=navigator.webkitGamepads();if(a){this._rawPads=[];for(var b=!1,c=0;c0&&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.maxHealth&&(this.health=this.maxHealth)),this}},c.Component.InCamera=function(){},c.Component.InCamera.prototype={inCamera:{get:function(){return this.game.world.camera.view.intersects(this._bounds)}}},c.Component.InputEnabled=function(){},c.Component.InputEnabled.prototype={input:null,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()}}},c.Component.InWorld=function(){},c.Component.InWorld.preUpdate=function(){if((this.autoCull||this.checkWorldBounds)&&(this._bounds.copyFrom(this.getBounds()),this._bounds.x+=this.game.camera.view.x,this._bounds.y+=this.game.camera.view.y,this.autoCull&&(this.game.world.camera.view.intersects(this._bounds)?(this.renderable=!0,this.game.world.camera.totalInView++):this.renderable=!1),this.checkWorldBounds))if(this._outOfBoundsFired&&this.game.world.bounds.intersects(this._bounds))this._outOfBoundsFired=!1,this.events.onEnterBounds$dispatch(this);else if(!this._outOfBoundsFired&&!this.game.world.bounds.intersects(this._bounds)&&(this._outOfBoundsFired=!0,this.events.onOutOfBounds$dispatch(this),this.outOfBoundsKill))return this.kill(),!1;return!0},c.Component.InWorld.prototype={checkWorldBounds:!1,outOfBoundsKill:!1,_outOfBoundsFired:!1,inWorld:{get:function(){return this.game.world.bounds.intersects(this.getBounds())}}},c.Component.LifeSpan=function(){},c.Component.LifeSpan.preUpdate=function(){return this.lifespan>0&&(this.lifespan-=this.game.time.physicsElapsedMS,this.lifespan<=0)?(this.kill(),!1):!0},c.Component.LifeSpan.prototype={alive:!0,lifespan:0,revive:function(a){return void 0===a&&(a=1),this.alive=!0,this.exists=!0,this.visible=!0,"number"==typeof this.health&&(this.health=a),this.events&&this.events.onRevived$dispatch(this),this},kill:function(){return this.alive=!1,this.exists=!1,this.visible=!1,this.events&&this.events.onKilled$dispatch(this),this}},c.Component.LoadTexture=function(){},c.Component.LoadTexture.prototype={customRender:!1,_frame:null,loadTexture:function(a,b,d){b=b||0,(d||void 0===d)&&this.animations&&this.animations.stop(),this.key=a,this.customRender=!1;var e=this.game.cache,f=!0,g=!this.texture.baseTexture.scaleMode;if(c.RenderTexture&&a instanceof c.RenderTexture)this.key=a.key,this.setTexture(a);else if(c.BitmapData&&a instanceof c.BitmapData)this.customRender=!0,this.setTexture(a.texture),e.hasFrameData(a.key,c.Cache.BITMAPDATA)&&(f=!this.animations.loadFrameData(e.getFrameData(a.key,c.Cache.BITMAPDATA),b));else if(c.Video&&a instanceof c.Video){this.customRender=!0;var h=a.texture.valid;this.setTexture(a.texture),this.setFrame(a.texture.frame.clone()),a.onChangeSource.add(this.resizeFrame,this),this.texture.valid=h}else if(a instanceof PIXI.Texture)this.setTexture(a);else{var i=e.getImage(a,!0);this.key=i.key,this.setTexture(new PIXI.Texture(i.base)),f=!this.animations.loadFrameData(i.frameData,b)}f&&(this._frame=c.Rectangle.clone(this.texture.frame)),g||(this.texture.baseTexture.scaleMode=1)},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.requiresReTint=!0,this.texture._updateUvs(),this.tilingTexture&&(this.refreshTexture=!0)},resizeFrame:function(a,b,c){this.texture.frame.resize(b,c),this.texture.setFrame(this.texture.frame)},resetFrame:function(){this._frame&&this.setFrame(this._frame)},frame:{get:function(){return this.animations.frame},set:function(a){this.animations.frame=a}},frameName:{get:function(){return this.animations.frameName},set:function(a){this.animations.frameName=a}}},c.Component.Overlap=function(){},c.Component.Overlap.prototype={overlap:function(a){return c.Rectangle.intersects(this.getBounds(),a.getBounds())}},c.Component.PhysicsBody=function(){},c.Component.PhysicsBody.preUpdate=function(){return this.fresh&&this.exists?(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.previousPosition.set(this.world.x,this.world.y),this.previousRotation=this.rotation,this.body&&this.body.preUpdate(),this.fresh=!1,!1):(this.previousPosition.set(this.world.x,this.world.y),this.previousRotation=this.rotation,this._exists&&this.parent.exists?!0:(this.renderOrderID=-1,!1))},c.Component.PhysicsBody.postUpdate=function(){this.exists&&this.body&&this.body.postUpdate()},c.Component.PhysicsBody.prototype={body:null,x:{get:function(){return this.position.x},set:function(a){this.position.x=a,this.body&&!this.body.dirty&&(this.body._reset=!0)}},y:{get:function(){return this.position.y},set:function(a){this.position.y=a,this.body&&!this.body.dirty&&(this.body._reset=!0)}}},c.Component.Reset=function(){},c.Component.Reset.prototype.reset=function(a,b,c){return void 0===c&&(c=1),this.world.set(a,b),this.position.set(a,b),this.fresh=!0,this.exists=!0,this.visible=!0,this.renderable=!0,this.components.InWorld&&(this._outOfBoundsFired=!1),this.components.LifeSpan&&(this.alive=!0,this.health=c),this.components.PhysicsBody&&this.body&&this.body.reset(a,b,!1,!1),this},c.Component.ScaleMinMax=function(){},c.Component.ScaleMinMax.prototype={transformCallback:this.checkTransform,transformCallbackContext:this,scaleMin:null,scaleMax:null,checkTransform:function(a){this.scaleMin&&(a.athis.scaleMax.x&&(a.a=this.scaleMax.x),a.d>this.scaleMax.y&&(a.d=this.scaleMax.y))},setScaleMinMax:function(a,b,d,e){void 0===b?b=d=e=a:void 0===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)}},c.Component.Smoothed=function(){},c.Component.Smoothed.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)}}},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 void 0===f&&(f=this.world),f.add(new c.Image(this.game,a,b,d,e))},sprite:function(a,b,c,d,e){return void 0===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 void 0===a&&(a=null),void 0===b&&(b="group"),void 0===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 void 0===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 void 0===g&&(g=this.world),g.add(new c.Rope(this.game,a,b,d,e,f))},text:function(a,b,d,e,f){return void 0===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 void 0===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 void 0===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 void 0===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){(void 0===d||""===d)&&(d=this.game.rnd.uuid()),void 0===e&&(e=!1);var f=new c.RenderTexture(this.game,a,b,d);return e&&this.game.cache.addRenderTexture(d,f),f},video:function(a,b){return new c.Video(this.game,a,b)},bitmapData:function(a,b,d,e){void 0===e&&(e=!1),(void 0===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,this.game.tweens)},group:function(a,b,d,e,f){return new c.Group(this.game,a,b,d,e,f)},spriteBatch:function(a,b,d){return void 0===b&&(b="group"),void 0===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,g){return new c.BitmapText(this.game,a,b,d,e,f,g)},tilemap:function(a,b,d,e,f){return new c.Tilemap(this.game,a,b,d,e,f)},renderTexture:function(a,b,d,e){(void 0===d||""===d)&&(d=this.game.rnd.uuid()),void 0===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){void 0===e&&(e=!1),(void 0===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.Sprite=function(a,b,d,e,f){b=b||0,d=d||0,e=e||null,f=f||null,this.type=c.SPRITE,this.physicsType=c.SPRITE,PIXI.Sprite.call(this,PIXI.TextureCache.__default),c.Component.Core.init.call(this,a,b,d,e,f)},c.Sprite.prototype=Object.create(PIXI.Sprite.prototype),c.Sprite.prototype.constructor=c.Sprite,c.Component.Core.install.call(c.Sprite.prototype,["Angle","Animation","AutoCull","Bounds","BringToTop","Crop","Delta","Destroy","FixedToCamera","Health","InCamera","InputEnabled","InWorld","LifeSpan","LoadTexture","Overlap","PhysicsBody","Reset","ScaleMinMax","Smoothed"]),c.Sprite.prototype.preUpdatePhysics=c.Component.PhysicsBody.preUpdate,c.Sprite.prototype.preUpdateLifeSpan=c.Component.LifeSpan.preUpdate,c.Sprite.prototype.preUpdateInWorld=c.Component.InWorld.preUpdate,c.Sprite.prototype.preUpdateCore=c.Component.Core.preUpdate,c.Sprite.prototype.preUpdate=function(){return this.preUpdatePhysics()&&this.preUpdateLifeSpan()&&this.preUpdateInWorld()?this.preUpdateCore():!1},c.Image=function(a,b,d,e,f){b=b||0,d=d||0,e=e||null,f=f||null,this.type=c.IMAGE,PIXI.Sprite.call(this,PIXI.TextureCache.__default),c.Component.Core.init.call(this,a,b,d,e,f)},c.Image.prototype=Object.create(PIXI.Sprite.prototype),c.Image.prototype.constructor=c.Image,c.Component.Core.install.call(c.Image.prototype,["Angle","Animation","AutoCull","Bounds","BringToTop","Crop","Destroy","FixedToCamera","InputEnabled","LifeSpan","LoadTexture","Overlap","Reset","Smoothed"]),c.Image.prototype.preUpdateInWorld=c.Component.InWorld.preUpdate,c.Image.prototype.preUpdateCore=c.Component.Core.preUpdate,c.Image.prototype.preUpdate=function(){return this.preUpdateInWorld()?this.preUpdateCore():!1},c.TileSprite=function(a,b,d,e,f,g,h){b=b||0,d=d||0,e=e||256,f=f||256,g=g||null,h=h||null,this.type=c.TILESPRITE,this.physicsType=c.SPRITE,this._scroll=new c.Point;var i=a.cache.getImage("__default",!0);PIXI.TilingSprite.call(this,new PIXI.Texture(i.base),e,f),c.Component.Core.init.call(this,a,b,d,g,h)},c.TileSprite.prototype=Object.create(PIXI.TilingSprite.prototype),c.TileSprite.prototype.constructor=c.TileSprite,c.Component.Core.install.call(c.TileSprite.prototype,["Angle","Animation","AutoCull","Bounds","BringToTop","Destroy","FixedToCamera","Health","InCamera","InputEnabled","InWorld","LifeSpan","LoadTexture","Overlap","PhysicsBody","Reset","Smoothed"]),c.TileSprite.prototype.preUpdatePhysics=c.Component.PhysicsBody.preUpdate,c.TileSprite.prototype.preUpdateLifeSpan=c.Component.LifeSpan.preUpdate,c.TileSprite.prototype.preUpdateInWorld=c.Component.InWorld.preUpdate,c.TileSprite.prototype.preUpdateCore=c.Component.Core.preUpdate,c.TileSprite.prototype.preUpdate=function(){return 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.preUpdatePhysics()&&this.preUpdateLifeSpan()&&this.preUpdateInWorld()?this.preUpdateCore():!1},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.destroy=function(a){c.Component.Destroy.prototype.destroy.call(this,a),PIXI.TilingSprite.prototype.destroy.call(this)},c.TileSprite.prototype.reset=function(a,b){return c.Component.Reset.prototype.reset.call(this,a,b),this.tilePosition.x=0,this.tilePosition.y=0,this},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.type=c.ROPE,this._scroll=new c.Point,PIXI.Rope.call(this,PIXI.TextureCache.__default,this.points),c.Component.Core.init.call(this,a,b,d,e,f)},c.Rope.prototype=Object.create(PIXI.Rope.prototype),c.Rope.prototype.constructor=c.Rope,c.Component.Core.install.call(c.Rope.prototype,["Angle","Animation","AutoCull","Bounds","BringToTop","Crop","Delta","Destroy","FixedToCamera","InputEnabled","InWorld","LifeSpan","LoadTexture","Overlap","PhysicsBody","Reset","ScaleMinMax","Smoothed"]),c.Rope.prototype.preUpdatePhysics=c.Component.PhysicsBody.preUpdate,c.Rope.prototype.preUpdateLifeSpan=c.Component.LifeSpan.preUpdate,c.Rope.prototype.preUpdateInWorld=c.Component.InWorld.preUpdate,c.Rope.prototype.preUpdateCore=c.Component.Core.preUpdate,c.Rope.prototype.preUpdate=function(){return 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.preUpdatePhysics()&&this.preUpdateLifeSpan()&&this.preUpdateInWorld()?this.preUpdateCore():!1},c.Rope.prototype.update=function(){this._hasUpdateAnimation&&this.updateAnimation.call(this)},c.Rope.prototype.reset=function(a,b){return c.Component.Reset.prototype.reset.call(this,a,b),this.tilePosition.x=0,this.tilePosition.y=0,this},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=Math.abs(a);var f=this.width-a;c.drawImage(e,0,0,a,d,f,0,a,d),c.drawImage(e,a,0,f,d,0,0,f,d)}else{var f=this.width-a;c.drawImage(e,f,0,a,d,0,0,a,d),c.drawImage(e,0,0,f,d,a,0,f,d)}return this.clear(),this.copy(this._swapCanvas)},moveV:function(a){var b=this._swapCanvas,c=b.getContext("2d"),d=this.width,e=this.canvas;if(c.clearRect(0,0,this.width,this.height),0>a){a=Math.abs(a);var f=this.height-a;c.drawImage(e,0,0,d,a,0,f,d,a),c.drawImage(e,0,a,d,f,0,0,d,f)}else{var f=this.height-a;c.drawImage(e,0,f,d,a,0,0,d,a),c.drawImage(e,0,0,d,f,0,a,d,f) -}return this.clear(),this.copy(this._swapCanvas)},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){void 0===c&&(c=0),void 0===d&&(d=0),void 0===e&&(e=this.width),void 0===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((void 0===a||null===a)&&(a=!1),(void 0===b||null===b)&&(b=!1),(void 0===d||null===d)&&(d=!1),a||b||d){void 0===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){void 0===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 void 0===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((void 0===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,(void 0===g||null===g)&&(g=a.x),(void 0===h||null===h)&&(h=a.y),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(void 0===b||null===b)&&(b=0),(void 0===d||null===d)&&(d=0),e&&(this._size.x=e),f&&(this._size.y=f),(void 0===g||null===g)&&(g=b),(void 0===h||null===h)&&(h=d),(void 0===i||null===i)&&(i=this._size.x),(void 0===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),void 0===q&&(q=null),void 0===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)},drawGroup:function(a,b,c){return a.total>0&&a.forEachExists(this.copy,this,null,null,null,null,null,null,null,null,null,null,null,null,null,null,b,c),this},shadow:function(a,b,c,d){void 0===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 void 0===d||null===d?this.draw(b).blendSourceAtop():this.draw(b,d.x,d.y,d.width,d.height).blendSourceAtop(),void 0===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 void 0===e&&(e=255),void 0===f&&(f=!1),void 0===g&&(g=b),void 0===h&&(h=c),void 0===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},text:function(a,b,c,d,e,f){void 0===b&&(b=0),void 0===c&&(c=0),void 0===d&&(d="14px Courier"),void 0===e&&(e="rgb(255,255,255)"),void 0===f&&(f=!0);var g=this.context.font;this.context.font=d,f&&(this.context.fillStyle="rgb(0,0,0)",this.context.fillText(a,b+1,c+1)),this.context.fillStyle=e,this.context.fillText(a,b,c),this.context.font=g},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(void 0===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,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,PIXI.Graphics.prototype.lineStyle=function(a,b,c){return this.lineWidth=a||0,this.lineColor=b||0,this.lineAlpha=void 0===c?1:c,this.currentPath&&(this.currentPath.shape.points.length?this.drawShape(new PIXI.Polygon(this.currentPath.shape.points.slice(-2))):(this.currentPath.lineWidth=this.lineWidth,this.currentPath.lineColor=this.lineColor,this.currentPath.lineAlpha=this.lineAlpha)),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||this.moveTo(0,0),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){if(d===e)return this;void 0===f&&(f=!1),!f&&d>=e?e+=2*Math.PI:f&&e>=d&&(d+=2*Math.PI);var g=f?-1*(d-e):e-d,h=40*Math.ceil(Math.abs(g)/(2*Math.PI));if(0===g)return this;var i=a+Math.cos(d)*c,j=b+Math.sin(d)*c;f&&this.filling?this.moveTo(a,b):this.moveTo(i,j);for(var k=this.currentPath.shape.points,l=g/(2*h),m=2*l,n=Math.cos(l),o=Math.sin(l),p=h-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);k.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){(a instanceof c.Polygon||a instanceof PIXI.Polygon)&&(a=a.points);var b=a;if(!Array.isArray(b)){b=new Array(arguments.length);for(var d=0;dp?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._currentBounds=this._bounds}return this._currentBounds},PIXI.Graphics.prototype.containsPoint=function(a){this.worldTransform.applyInverse(a,tempPoint);for(var b=this.graphicsData,c=0;ch?h:a,b=h+j>b?h+j:b,d=d>i?i:d,e=i+k>e?i+k:e;else if(n===PIXI.Graphics.CIRC)h=f.x,i=f.y,j=f.radius+o/2,k=f.radius+o/2,a=a>h-j?h-j:a,b=h+j>b?h+j:b,d=d>i-k?i-k:d,e=i+k>e?i+k:e;else if(n===PIXI.Graphics.ELIP)h=f.x,i=f.y,j=f.width+o/2,k=f.height+o/2,a=a>h-j?h-j:a,b=h+j>b?h+j:b,d=d>i-k?i-k:d,e=i+k>e?i+k:e;else{g=f.points;for(var p=0;ph-o?h-o:a,b=h+o>b?h+o:b,d=d>i-o?i-o:d,e=i+o>e?i+o:e}}else a=0,b=0,d=0,e=0;var q=this.boundsPadding;this._localBounds.x=a-q,this._localBounds.width=b-a+2*q,this._localBounds.y=d-q,this._localBounds.height=e-d+2*q},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,a instanceof c.Polygon&&(a=a.clone(),a.flatten());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},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.GraphicsData=function(a,b,c,d,e,f,g){this.lineWidth=a,this.lineColor=b,this.lineAlpha=c,this._lineTint=b,this.fillColor=d,this.fillAlpha=e,this._fillTint=d,this.fill=f,this.shape=g,this.type=g.type},PIXI.GraphicsData.prototype.constructor=PIXI.GraphicsData,PIXI.GraphicsData.prototype.clone=function(){return new GraphicsData(this.lineWidth,this.lineColor,this.lineAlpha,this.fillColor,this.fillAlpha,this.fill,this.shape)},c.Graphics=function(a,b,d){void 0===b&&(b=0),void 0===d&&(d=0),this.type=c.GRAPHICS,this.physicsType=c.SPRITE,PIXI.Graphics.call(this),c.Component.Core.init.call(this,a,b,d,"",null)},c.Graphics.prototype=Object.create(PIXI.Graphics.prototype),c.Graphics.prototype.constructor=c.Graphics,c.Component.Core.install.call(c.Graphics.prototype,["Angle","AutoCull","Bounds","Destroy","FixedToCamera","InputEnabled","InWorld","LifeSpan","PhysicsBody","Reset"]),c.Graphics.prototype.preUpdatePhysics=c.Component.PhysicsBody.preUpdate,c.Graphics.prototype.preUpdateLifeSpan=c.Component.LifeSpan.preUpdate,c.Graphics.prototype.preUpdateInWorld=c.Component.InWorld.preUpdate,c.Graphics.prototype.preUpdateCore=c.Component.Core.preUpdate,c.Graphics.prototype.preUpdate=function(){return this.preUpdatePhysics()&&this.preUpdateLifeSpan()&&this.preUpdateInWorld()?this.preUpdateCore():!1},c.Graphics.prototype.destroy=function(a){this.clear(),c.Component.Destroy.prototype.destroy.call(this,a)},c.Graphics.prototype.drawTriangle=function(a,b){void 0===b&&(b=!1);var d=new c.Polygon(a);if(b){var e=new c.Point(this.game.camera.x-a[0].x,this.game.camera.y-a[0].y),f=new c.Point(a[1].x-a[0].x,a[1].y-a[0].y),g=new c.Point(a[1].x-a[2].x,a[1].y-a[2].y),h=g.cross(f);e.dot(h)>0&&this.drawPolygon(d)}else this.drawPolygon(d)},c.Graphics.prototype.drawTriangles=function(a,b,d){void 0===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;e0&&(j+=c[k-1]),h=j+l}else for(var k=0;kq&&Math.abs(q)>o&&(q=-o),0!==q){var m=q*(b.length-1);p+=m}this.canvas.height=p*this._res,this.context.scale(this._res,this._res),navigator.isCocoonJS&&this.context.clearRect(0,0,this.canvas.width,this.canvas.height),this.style.backgroundColor&&(this.context.fillStyle=this.style.backgroundColor,this.context.fillRect(0,0,this.canvas.width,this.canvas.height)),this.context.fillStyle=this.style.fill,this.context.font=this.style.font,this.context.strokeStyle=this.style.stroke,this.context.textBaseline="alphabetic",this.context.lineWidth=this.style.strokeThickness,this.context.lineCap="round",this.context.lineJoin="round";var r,s;for(this._charCount=0,g=0;g0&&(s+=q*g),"right"===this.style.align?r+=e-d[g]:"center"===this.style.align&&(r+=(e-d[g])/2),this.autoRound&&(r=Math.round(r),s=Math.round(s)),this.colors.length>0||this.strokeColors.length>0?this.updateLine(b[g],r,s):(this.style.stroke&&this.style.strokeThickness&&(this.updateShadow(this.style.shadowStroke),0===c?this.context.strokeText(b[g],r,s):this.renderTabLine(b[g],r,s,!1)),this.style.fill&&(this.updateShadow(this.style.shadowFill),0===c?this.context.fillText(b[g],r,s):this.renderTabLine(b[g],r,s,!0)));this.updateTexture()},c.Text.prototype.renderTabLine=function(a,b,c,d){var e=a.split(/(?:\t)/),f=this.style.tabs,g=0;if(Array.isArray(f))for(var h=0,i=0;i0&&(h+=f[i-1]),g=b+h,d?this.context.fillText(e[i],g,c):this.context.strokeText(e[i],g,c);else for(var i=0;ie?(g>0&&(b+="\n"),b+=f[g]+" ",e=this.style.wordWrapWidth-h):(e-=i,b+=f[g]+" ")}dd&&(this.style.wordWrapWidth=d)),this.updateTexture(),this},c.Text.prototype.updateTexture=function(){var a=this.texture.baseTexture,b=this.texture.crop,c=this.texture.frame,d=this.canvas.width,e=this.canvas.height;if(a.width=d,a.height=e,b.width=d,b.height=e,c.width=d,c.height=e,this.texture.width=d,this.texture.height=e,this._width=d,this._height=e,this.textBounds){var f=this.textBounds.x,g=this.textBounds.y;"right"===this.style.boundsAlignH?f=this.textBounds.width-this.canvas.width:"center"===this.style.boundsAlignH&&(f=this.textBounds.halfWidth-this.canvas.width/2),"bottom"===this.style.boundsAlignV?g=this.textBounds.height-this.canvas.height:"middle"===this.style.boundsAlignV&&(g=this.textBounds.halfHeight-this.canvas.height/2),this.pivot.x=-f,this.pivot.y=-g}this.renderable=0!==d&&0!==e,this.texture.baseTexture.dirty()},c.Text.prototype._renderWebGL=function(a){this.dirty&&(this.updateText(),this.dirty=!1),PIXI.Sprite.prototype._renderWebGL.call(this,a)},c.Text.prototype._renderCanvas=function(a){this.dirty&&(this.updateText(),this.dirty=!1),PIXI.Sprite.prototype._renderCanvas.call(this,a)},c.Text.prototype.determineFontProperties=function(a){var b=c.Text.fontPropertiesCache[a];if(!b){b={};var d=c.Text.fontPropertiesCanvas,e=c.Text.fontPropertiesContext;e.font=a;var f=Math.ceil(e.measureText("|MÉq").width),g=Math.ceil(e.measureText("|MÉq").width),h=2*g;if(g=1.4*g|0,d.width=f,d.height=h,e.fillStyle="#f00",e.fillRect(0,0,f,h),e.font=a,e.textBaseline="alphabetic",e.fillStyle="#000",e.fillText("|MÉq",0,g),!e.getImageData(0,0,f,h))return b.ascent=g,b.descent=g+6,b.fontSize=b.ascent+b.descent,c.Text.fontPropertiesCache[a]=b,b;var i,j,k=e.getImageData(0,0,f,h).data,l=k.length,m=4*f,n=0,o=!1;for(i=0;g>i;i++){for(j=0;m>j;j+=4)if(255!==k[n+j]){o=!0;break}if(o)break;n+=m}for(b.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}b.descent=i-g,b.descent+=6,b.fontSize=b.ascent+b.descent,c.Text.fontPropertiesCache[a]=b}return b},c.Text.prototype.getBounds=function(a){return this.dirty&&(this.updateText(),this.dirty=!1),PIXI.Sprite.prototype.getBounds.call(this,a)},Object.defineProperty(c.Text.prototype,"text",{get:function(){return this._text},set:function(a){a!==this._text&&(this._text=a.toString()||"",this.dirty=!0,this.parent&&this.updateTransform())}}),Object.defineProperty(c.Text.prototype,"cssFont",{get:function(){return this.componentsToFont(this._fontComponents)},set:function(a){a=a||"bold 20pt Arial",this._fontComponents=this.fontToComponents(a),this.updateFont(this._fontComponents)}}),Object.defineProperty(c.Text.prototype,"font",{get:function(){return this._fontComponents.fontFamily},set:function(a){a=a||"Arial",a=a.trim(),/^(?:inherit|serif|sans-serif|cursive|fantasy|monospace)$/.exec(a)||/['",]/.exec(a)||(a="'"+a+"'"),this._fontComponents.fontFamily=a,this.updateFont(this._fontComponents)}}),Object.defineProperty(c.Text.prototype,"fontSize",{get:function(){var a=this._fontComponents.fontSize;return a&&/(?:^0$|px$)/.exec(a)?parseInt(a,10):a},set:function(a){a=a||"0","number"==typeof a&&(a+="px"),this._fontComponents.fontSize=a,this.updateFont(this._fontComponents)}}),Object.defineProperty(c.Text.prototype,"fontWeight",{get:function(){return this._fontComponents.fontWeight||"normal"},set:function(a){a=a||"normal",this._fontComponents.fontWeight=a,this.updateFont(this._fontComponents)}}),Object.defineProperty(c.Text.prototype,"fontStyle",{get:function(){return this._fontComponents.fontStyle||"normal"},set:function(a){a=a||"normal",this._fontComponents.fontStyle=a,this.updateFont(this._fontComponents)}}),Object.defineProperty(c.Text.prototype,"fontVariant",{get:function(){return this._fontComponents.fontVariant||"normal"},set:function(a){a=a||"normal",this._fontComponents.fontVariant=a,this.updateFont(this._fontComponents)}}),Object.defineProperty(c.Text.prototype,"fill",{get:function(){return this.style.fill},set:function(a){a!==this.style.fill&&(this.style.fill=a,this.dirty=!0)}}),Object.defineProperty(c.Text.prototype,"align",{get:function(){return this.style.align},set:function(a){a!==this.style.align&&(this.style.align=a,this.dirty=!0)}}),Object.defineProperty(c.Text.prototype,"resolution",{get:function(){return this._res},set:function(a){a!==this._res&&(this._res=a,this.dirty=!0)}}),Object.defineProperty(c.Text.prototype,"tabs",{get:function(){return this.style.tabs},set:function(a){a!==this.style.tabs&&(this.style.tabs=a,this.dirty=!0)}}),Object.defineProperty(c.Text.prototype,"boundsAlignH",{get:function(){return this.style.boundsAlignH},set:function(a){a!==this.style.boundsAlignH&&(this.style.boundsAlignH=a,this.dirty=!0)}}),Object.defineProperty(c.Text.prototype,"boundsAlignV",{get:function(){return this.style.boundsAlignV},set:function(a){a!==this.style.boundsAlignV&&(this.style.boundsAlignV=a,this.dirty=!0)}}),Object.defineProperty(c.Text.prototype,"stroke",{get:function(){return this.style.stroke},set:function(a){a!==this.style.stroke&&(this.style.stroke=a,this.dirty=!0)}}),Object.defineProperty(c.Text.prototype,"strokeThickness",{get:function(){return this.style.strokeThickness},set:function(a){a!==this.style.strokeThickness&&(this.style.strokeThickness=a,this.dirty=!0)}}),Object.defineProperty(c.Text.prototype,"wordWrap",{get:function(){return this.style.wordWrap},set:function(a){a!==this.style.wordWrap&&(this.style.wordWrap=a,this.dirty=!0)}}),Object.defineProperty(c.Text.prototype,"wordWrapWidth",{get:function(){return this.style.wordWrapWidth},set:function(a){a!==this.style.wordWrapWidth&&(this.style.wordWrapWidth=a,this.dirty=!0)}}),Object.defineProperty(c.Text.prototype,"lineSpacing",{get:function(){return this._lineSpacing},set:function(a){a!==this._lineSpacing&&(this._lineSpacing=parseFloat(a),this.dirty=!0,this.parent&&this.updateTransform())}}),Object.defineProperty(c.Text.prototype,"shadowOffsetX",{get:function(){return this.style.shadowOffsetX},set:function(a){a!==this.style.shadowOffsetX&&(this.style.shadowOffsetX=a,this.dirty=!0)}}),Object.defineProperty(c.Text.prototype,"shadowOffsetY",{get:function(){return this.style.shadowOffsetY},set:function(a){a!==this.style.shadowOffsetY&&(this.style.shadowOffsetY=a,this.dirty=!0)}}),Object.defineProperty(c.Text.prototype,"shadowColor",{get:function(){return this.style.shadowColor},set:function(a){a!==this.style.shadowColor&&(this.style.shadowColor=a,this.dirty=!0)}}),Object.defineProperty(c.Text.prototype,"shadowBlur",{get:function(){return this.style.shadowBlur},set:function(a){a!==this.style.shadowBlur&&(this.style.shadowBlur=a,this.dirty=!0)}}),Object.defineProperty(c.Text.prototype,"shadowStroke",{get:function(){return this.style.shadowStroke},set:function(a){a!==this.style.shadowStroke&&(this.style.shadowStroke=a,this.dirty=!0)}}),Object.defineProperty(c.Text.prototype,"shadowFill",{get:function(){return this.style.shadowFill},set:function(a){a!==this.style.shadowFill&&(this.style.shadowFill=a,this.dirty=!0)}}),Object.defineProperty(c.Text.prototype,"width",{get:function(){return this.dirty&&(this.updateText(),this.dirty=!1),this.scale.x*this.texture.frame.width},set:function(a){this.scale.x=a/this.texture.frame.width,this._width=a}}),Object.defineProperty(c.Text.prototype,"height",{get:function(){return this.dirty&&(this.updateText(),this.dirty=!1),this.scale.y*this.texture.frame.height},set:function(a){this.scale.y=a/this.texture.frame.height,this._height=a}}),c.Text.fontPropertiesCache={},c.Text.fontPropertiesCanvas=document.createElement("canvas"),c.Text.fontPropertiesContext=c.Text.fontPropertiesCanvas.getContext("2d"),c.BitmapText=function(a,b,d,e,f,g,h){b=b||0,d=d||0,e=e||"",f=f||"",g=g||32,h=h||"left",PIXI.DisplayObjectContainer.call(this),this.type=c.BITMAPTEXT,this.physicsType=c.SPRITE,this.textWidth=0,this.textHeight=0,this.anchor=new c.Point,this._prevAnchor=new c.Point,this._glyphs=[],this._maxWidth=0,this._text=f,this._data=a.cache.getBitmapFont(e),this._font=e,this._fontSize=g,this._align=h,this._tint=16777215,this.updateText(),this.dirty=!1,c.Component.Core.init.call(this,a,b,d,"",null)},c.BitmapText.prototype=Object.create(PIXI.DisplayObjectContainer.prototype),c.BitmapText.prototype.constructor=c.BitmapText,c.Component.Core.install.call(c.BitmapText.prototype,["Angle","AutoCull","Bounds","Destroy","FixedToCamera","InputEnabled","InWorld","LifeSpan","PhysicsBody","Reset"]),c.BitmapText.prototype.preUpdatePhysics=c.Component.PhysicsBody.preUpdate,c.BitmapText.prototype.preUpdateLifeSpan=c.Component.LifeSpan.preUpdate,c.BitmapText.prototype.preUpdateInWorld=c.Component.InWorld.preUpdate,c.BitmapText.prototype.preUpdateCore=c.Component.Core.preUpdate,c.BitmapText.prototype.preUpdate=function(){return this.preUpdatePhysics()&&this.preUpdateLifeSpan()&&this.preUpdateInWorld()?this.preUpdateCore():!1},c.BitmapText.prototype.postUpdate=function(){c.Component.PhysicsBody.postUpdate.call(this),c.Component.FixedToCamera.postUpdate.call(this),this.body&&this.body.type===c.Physics.ARCADE&&(this.textWidth!==this.body.sourceWidth||this.textHeight!==this.body.sourceHeight)&&this.body.setSize(this.textWidth,this.textHeight)},c.BitmapText.prototype.setText=function(a){this.text=a},c.BitmapText.prototype.scanLine=function(a,b,c){for(var d=0,e=0,f=-1,g=null,h=this._maxWidth>0?this._maxWidth:null,i=[],j=0;j=h&&f>-1)return{width:e,text:c.substr(0,j-(j-f)),end:k,chars:i};e+=m.xAdvance*b,i.push(d+m.xOffset*b),d+=m.xAdvance*b,g=l}}return{width:e,text:c,end:k,chars:i}},c.BitmapText.prototype.updateText=function(){var a=this._data.font;if(a){var b=this.text,c=this._fontSize/a.size,d=[],e=0;this.textWidth=0;do{var f=this.scanLine(a,c,b);f.y=e,d.push(f),f.width>this.textWidth&&(this.textWidth=f.width),e+=a.lineHeight*c,b=b.substr(f.text.length+1)}while(f.end===!1);this.textHeight=e;for(var g=0,h=0,i=this.textWidth*this.anchor.x,j=this.textHeight*this.anchor.y,k=0;k0&&(this._fontSize=a,this.updateText())}}),Object.defineProperty(c.BitmapText.prototype,"text",{get:function(){return this._text},set:function(a){a!==this._text&&(this._text=a.toString()||"",this.updateText())}}),Object.defineProperty(c.BitmapText.prototype,"maxWidth",{get:function(){return this._maxWidth},set:function(a){a!==this._maxWidth&&(this._maxWidth=a,this.updateText())}}),c.RetroFont=function(a,b,d,e,f,g,h,i,j,k){if(!a.cache.checkImageKey(b))return!1;(void 0===g||null===g)&&(g=a.cache.getImage(b).width/d),this.characterWidth=d,this.characterHeight=e,this.characterSpacingX=h||0,this.characterSpacingY=i||0,this.characterPerRow=g,this.offsetX=j||0,this.offsetY=k||0,this.align="left",this.multiLine=!1,this.autoUpperCase=!0,this.customSpacingX=0,this.customSpacingY=0,this.fixedWidth=0,this.fontSet=a.cache.getImage(b),this._text="",this.grabData=[],this.frameData=new c.FrameData;for(var l=this.offsetX,m=this.offsetY,n=0,o=0;o?@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){void 0===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 this.fixedWidth>0?this.resize(this.fixedWidth,this.characterHeight,!0):this.resize(this._text.length*(this.characterWidth+this.customSpacingX),this.characterHeight,!0),a=0,this.align===c.RetroFont.ALIGN_RIGHT?a=this.width-this._text.length*(this.characterWidth+this.customSpacingX):this.align===c.RetroFont.ALIGN_CENTER&&(a=this.width/2-this._text.length*(this.characterWidth+this.customSpacingX)/2,a+=this.customSpacingX/2),0>a&&(a=0),this.pasteLine(this._text,a,0,this.customSpacingX);this.requiresReTint=!0},c.RetroFont.prototype.pasteLine=function(a,b,c,d){for(var e=0;e=0&&(this.stamp.frame=this.grabData[a.charCodeAt(e)],this.renderXY(this.stamp,b,c,!1),b+=this.characterWidth+d,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;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()}}),PIXI.Strip=function(a){PIXI.DisplayObjectContainer.call(this),this.texture=a,this.uvs=new PIXI.Float32Array([0,1,1,1,1,0,0,1]),this.vertices=new PIXI.Float32Array([0,0,100,0,100,100,0,100]),this.colors=new PIXI.Float32Array([1,1,1,1]),this.indices=new PIXI.Uint16Array([0,1,2,3]),this.dirty=!0,this.blendMode=PIXI.blendModes.NORMAL,this.canvasPadding=0,this.drawMode=PIXI.Strip.DrawModes.TRIANGLE_STRIP},PIXI.Strip.prototype=Object.create(PIXI.DisplayObjectContainer.prototype),PIXI.Strip.prototype.constructor=PIXI.Strip,PIXI.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())},PIXI.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.vertices,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)},PIXI.Strip.prototype._renderStrip=function(a){var b=a.gl,c=a.projection,d=a.offset,e=a.shaderManager.stripShader,f=this.drawMode===PIXI.Strip.DrawModes.TRIANGLE_STRIP?b.TRIANGLE_STRIP:b.TRIANGLES;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.vertices,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.vertices),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(f,this.indices.length,b.UNSIGNED_SHORT,0)},PIXI.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),this.drawMode===PIXI.Strip.DrawModes.TRIANGLE_STRIP?this._renderCanvasTriangleStrip(b):this._renderCanvasTriangles(b)},PIXI.Strip.prototype._renderCanvasTriangleStrip=function(a){var b=this.vertices,c=this.uvs,d=b.length/2;this.count++;for(var e=0;d-2>e;e++){var f=2*e;this._renderCanvasDrawTriangle(a,b,c,f,f+2,f+4)}},PIXI.Strip.prototype._renderCanvasTriangles=function(a){var b=this.vertices,c=this.uvs,d=this.indices,e=d.length;this.count++;for(var f=0;e>f;f+=3){var g=2*d[f],h=2*d[f+1],i=2*d[f+2];this._renderCanvasDrawTriangle(a,b,c,g,h,i)}},PIXI.Strip.prototype._renderCanvasDrawTriangle=function(a,b,c,d,e,f){var g=this.texture.baseTexture.source,h=this.texture.width,i=this.texture.height,j=b[d],k=b[e],l=b[f],m=b[d+1],n=b[e+1],o=b[f+1],p=c[d]*h,q=c[e]*h,r=c[f]*h,s=c[d+1]*i,t=c[e+1]*i,u=c[f+1]*i;if(this.canvasPadding>0){var v=this.canvasPadding/this.worldTransform.a,w=this.canvasPadding/this.worldTransform.d,x=(j+k+l)/3,y=(m+n+o)/3,z=j-x,A=m-y,B=Math.sqrt(z*z+A*A);j=x+z/B*(B+v),m=y+A/B*(B+w),z=k-x,A=n-y,B=Math.sqrt(z*z+A*A),k=x+z/B*(B+v),n=y+A/B*(B+w),z=l-x,A=o-y,B=Math.sqrt(z*z+A*A),l=x+z/B*(B+v),o=y+A/B*(B+w)}a.save(),a.beginPath(),a.moveTo(j,m),a.lineTo(k,n),a.lineTo(l,o),a.closePath(),a.clip();var C=p*t+s*r+q*u-t*r-s*q-p*u,D=j*t+s*l+k*u-t*l-s*k-j*u,E=p*k+j*r+q*l-k*r-j*q-p*l,F=p*t*l+s*k*r+j*q*u-j*t*r-s*q*l-p*k*u,G=m*t+s*o+n*u-t*o-s*n-m*u,H=p*n+m*r+q*o-n*r-m*q-p*o,I=p*t*o+s*n*r+m*q*u-m*t*r-s*q*o-p*n*u;a.transform(D/C,G/C,E/C,H/C,F/C,I/C),a.drawImage(g,0,0),a.restore()},PIXI.Strip.prototype.renderStripFlat=function(a){var b=this.context,c=a.vertices,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()},PIXI.Strip.prototype.onTextureUpdate=function(){this.updateFrame=!0},PIXI.Strip.prototype.getBounds=function(a){for(var b=a||this.worldTransform,c=b.a,d=b.b,e=b.c,f=b.d,g=b.tx,h=b.ty,i=-1/0,j=-1/0,k=1/0,l=1/0,m=this.vertices,n=0,o=m.length;o>n;n+=2){var p=m[n],q=m[n+1],r=c*p+e*q+g,s=f*q+d*p+h;k=k>r?r:k,l=l>s?s:l,i=r>i?r:i,j=s>j?s:j}if(k===-1/0||1/0===j)return PIXI.EmptyRectangle;var t=this._bounds;return t.x=k,t.width=i-k,t.y=l,t.height=j-l,this._currentBounds=t,t},PIXI.Strip.DrawModes={TRIANGLE_STRIP:0,TRIANGLES:1},PIXI.Rope=function(a,b){PIXI.Strip.call(this,a),this.points=b,this.vertices=new PIXI.Float32Array(4*b.length),this.uvs=new PIXI.Float32Array(4*b.length),this.colors=new PIXI.Float32Array(2*b.length),this.indices=new PIXI.Uint16Array(2*b.length),this.refresh()},PIXI.Rope.prototype=Object.create(PIXI.Strip.prototype),PIXI.Rope.prototype.constructor=PIXI.Rope,PIXI.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}},PIXI.Rope.prototype.updateTransform=function(){var a=this.points;if(!(a.length<1)){var b,c=a[0],d={x:0,y:0};this.count-=.2;for(var e,f,g,h,i,j=this.vertices,k=a.length,l=0;k>l;l++)e=a[l],f=4*l,b=l1&&(g=1),h=Math.sqrt(d.x*d.x+d.y*d.y),i=this.texture.height/2,d.x/=h,d.y/=h,d.x*=i,d.y*=i,j[f]=e.x+d.x,j[f+1]=e.y+d.y,j[f+2]=e.x-d.x,j[f+3]=e.y-d.y,c=e;PIXI.DisplayObjectContainer.prototype.updateTransform.call(this)}},PIXI.Rope.prototype.setTexture=function(a){this.texture=a},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.type=c.ROPE,this._scroll=new c.Point,PIXI.Rope.call(this,PIXI.TextureCache.__default,this.points),c.Component.Core.init.call(this,a,b,d,e,f)},c.Rope.prototype=Object.create(PIXI.Rope.prototype),c.Rope.prototype.constructor=c.Rope,c.Component.Core.install.call(c.Rope.prototype,["Angle","Animation","AutoCull","Bounds","BringToTop","Crop","Delta","Destroy","FixedToCamera","InputEnabled","InWorld","LifeSpan","LoadTexture","Overlap","PhysicsBody","Reset","ScaleMinMax","Smoothed"]),c.Rope.prototype.preUpdatePhysics=c.Component.PhysicsBody.preUpdate,c.Rope.prototype.preUpdateLifeSpan=c.Component.LifeSpan.preUpdate,c.Rope.prototype.preUpdateInWorld=c.Component.InWorld.preUpdate,c.Rope.prototype.preUpdateCore=c.Component.Core.preUpdate,c.Rope.prototype.preUpdate=function(){return 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.preUpdatePhysics()&&this.preUpdateLifeSpan()&&this.preUpdateInWorld()?this.preUpdateCore():!1},c.Rope.prototype.update=function(){this._hasUpdateAnimation&&this.updateAnimation.call(this)},c.Rope.prototype.reset=function(a,b){return c.Component.Reset.prototype.reset.call(this,a,b),this.tilePosition.x=0,this.tilePosition.y=0,this},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;kn?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},PIXI.TilingSprite.prototype.destroy=function(){PIXI.Sprite.prototype.destroy.call(this),this.tileScale=null,this.tileScaleOffset=null,this.tilePosition=null,this.tilingTexture&&(this.tilingTexture.destroy(!0),this.tilingTexture=null)},Object.defineProperty(PIXI.TilingSprite.prototype,"width",{get:function(){return this._width},set:function(a){this._width=a}}),Object.defineProperty(PIXI.TilingSprite.prototype,"height",{get:function(){return this._height},set:function(a){this._height=a}}),c.TileSprite=function(a,b,d,e,f,g,h){b=b||0,d=d||0,e=e||256,f=f||256,g=g||null,h=h||null,this.type=c.TILESPRITE,this.physicsType=c.SPRITE,this._scroll=new c.Point;var i=a.cache.getImage("__default",!0);PIXI.TilingSprite.call(this,new PIXI.Texture(i.base),e,f),c.Component.Core.init.call(this,a,b,d,g,h)},c.TileSprite.prototype=Object.create(PIXI.TilingSprite.prototype),c.TileSprite.prototype.constructor=c.TileSprite,c.Component.Core.install.call(c.TileSprite.prototype,["Angle","Animation","AutoCull","Bounds","BringToTop","Destroy","FixedToCamera","Health","InCamera","InputEnabled","InWorld","LifeSpan","LoadTexture","Overlap","PhysicsBody","Reset","Smoothed"]),c.TileSprite.prototype.preUpdatePhysics=c.Component.PhysicsBody.preUpdate,c.TileSprite.prototype.preUpdateLifeSpan=c.Component.LifeSpan.preUpdate,c.TileSprite.prototype.preUpdateInWorld=c.Component.InWorld.preUpdate,c.TileSprite.prototype.preUpdateCore=c.Component.Core.preUpdate,c.TileSprite.prototype.preUpdate=function(){return 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.preUpdatePhysics()&&this.preUpdateLifeSpan()&&this.preUpdateInWorld()?this.preUpdateCore():!1},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.destroy=function(a){c.Component.Destroy.prototype.destroy.call(this,a),PIXI.TilingSprite.prototype.destroy.call(this)},c.TileSprite.prototype.reset=function(a,b){return c.Component.Reset.prototype.reset.call(this,a,b),this.tilePosition.x=0,this.tilePosition.y=0,this},c.Device=function(){this.deviceReadyAt=0,this.initialized=!1,this.desktop=!1,this.iOS=!1,this.cocoonJS=!1,this.cocoonJSApp=!1,this.cordova=!1,this.node=!1,this.nodeWebkit=!1,this.electron=!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.canvasBitBltShift=null,this.webGL=!1,this.file=!1,this.fileSystem=!1,this.localStorage=!1,this.worker=!1,this.css3D=!1,this.pointerLock=!1,this.typedArray=!1,this.vibration=!1,this.getUserMedia=!0,this.quirksMode=!1,this.touch=!1,this.mspointer=!1,this.wheelEvent=null,this.arora=!1,this.chrome=!1,this.chromeVersion=0,this.epiphany=!1,this.firefox=!1,this.firefoxVersion=0,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.oggVideo=!1,this.h264Video=!1,this.mp4Video=!1,this.webmVideo=!1,this.vp9Video=!1,this.hlsVideo=!1,this.iPhone=!1,this.iPhone4=!1,this.iPad=!1,this.pixelRatio=0,this.littleEndian=!1,this.LITTLE_ENDIAN=!1,this.support32bit=!1,this.fullscreen=!1,this.requestFullscreen="",this.cancelFullscreen="",this.fullscreenKeyboard=!1},c.Device=new c.Device,c.Device.onInitialized=new c.Signal,c.Device.whenReady=function(a,b,c){var d=this._readyCheck;if(this.deviceReadyAt||!d)a.call(b,this);else if(d._monitor||c)d._queue=d._queue||[],d._queue.push([a,b]);else{d._monitor=d.bind(this),d._queue=d._queue||[],d._queue.push([a,b]);var e="undefined"!=typeof window.cordova,f=navigator.isCocoonJS;"complete"===document.readyState||"interactive"===document.readyState?window.setTimeout(d._monitor,0):e&&!f?document.addEventListener("deviceready",d._monitor,!1):(document.addEventListener("DOMContentLoaded",d._monitor,!1),window.addEventListener("load",d._monitor,!1))}},c.Device._readyCheck=function(){var a=this._readyCheck;if(document.body){if(!this.deviceReadyAt){this.deviceReadyAt=Date.now(),document.removeEventListener("deviceready",a._monitor),document.removeEventListener("DOMContentLoaded",a._monitor),window.removeEventListener("load",a._monitor),this._initialize(),this.initialized=!0,this.onInitialized.dispatch(this);for(var b;b=a._queue.shift();){var c=b[0],d=b[1];c.call(d,this)}this._readyCheck=null,this._initialize=null,this.onInitialized=null}}else window.setTimeout(a._monitor,20)},c.Device._initialize=function(){function a(){var a=navigator.userAgent;/Playstation Vita/.test(a)?l.vita=!0:/Kindle/.test(a)||/\bKF[A-Z][A-Z]+/.test(a)||/Silk.*Mobile Safari/.test(a)?l.kindle=!0:/Android/.test(a)?l.android=!0:/CrOS/.test(a)?l.chromeOS=!0:/iP[ao]d|iPhone/i.test(a)?l.iOS=!0:/Linux/.test(a)?l.linux=!0:/Mac OS/.test(a)?l.macOS=!0:/Windows/.test(a)&&(l.windows=!0),(/Windows Phone/i.test(a)||/IEMobile/i.test(a))&&(l.android=!1,l.iOS=!1,l.macOS=!1,l.windows=!0,l.windowsPhone=!0);var b=/Silk/.test(a);(l.windows||l.macOS||l.linux&&!b||l.chromeOS)&&(l.desktop=!0),(l.windowsPhone||/Windows NT/i.test(a)&&/Touch/i.test(a))&&(l.desktop=!1)}function b(){l.canvas=!!window.CanvasRenderingContext2D||l.cocoonJS;try{l.localStorage=!!localStorage.getItem}catch(a){l.localStorage=!1}l.file=!!(window.File&&window.FileReader&&window.FileList&&window.Blob),l.fileSystem=!!window.requestFileSystem,l.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}}(),l.webGL=!!l.webGL,l.worker=!!window.Worker,l.pointerLock="pointerLockElement"in document||"mozPointerLockElement"in document||"webkitPointerLockElement"in document,l.quirksMode="CSS1Compat"===document.compatMode?!1:!0,navigator.getUserMedia=navigator.getUserMedia||navigator.webkitGetUserMedia||navigator.mozGetUserMedia||navigator.msGetUserMedia||navigator.oGetUserMedia,window.URL=window.URL||window.webkitURL||window.mozURL||window.msURL,l.getUserMedia=l.getUserMedia&&!!navigator.getUserMedia&&!!window.URL,l.firefox&&l.firefoxVersion<21&&(l.getUserMedia=!1),!l.iOS&&(l.ie||l.firefox||l.chrome)&&(l.canvasBitBltShift=!0),(l.safari||l.mobileSafari)&&(l.canvasBitBltShift=!1)}function c(){("ontouchstart"in document.documentElement||window.navigator.maxTouchPoints&&window.navigator.maxTouchPoints>=1)&&(l.touch=!0),(window.navigator.msPointerEnabled||window.navigator.pointerEnabled)&&(l.mspointer=!0),l.cocoonJS||("onwheel"in window||l.ie&&"WheelEvent"in window?l.wheelEvent="wheel":"onmousewheel"in window?l.wheelEvent="mousewheel":l.firefox&&"MouseScrollEvent"in window&&(l.wheelEvent="DOMMouseScroll"))}function d(){for(var a=["requestFullscreen","requestFullScreen","webkitRequestFullscreen","webkitRequestFullScreen","msRequestFullscreen","msRequestFullScreen","mozRequestFullScreen","mozRequestFullscreen"],b=document.createElement("div"),c=0;c0&&"none"!==a}var l=this;a(),g(),f(),e(),k(),h(),b(),d(),c()},c.Device.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},c.Device.canPlayVideo=function(a){return"webm"===a&&(this.webmVideo||this.vp9Video)?!0:"mp4"===a&&(this.mp4Video||this.h264Video)?!0:"ogg"===a&&this.oggVideo?!0:"mpeg"===a&&this.hlsVideo?!0:!1},c.Device.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.isAndroidStockBrowser=function(){var a=window.navigator.userAgent.match(/Android.*AppleWebKit\/([\d.]+)/);return a&&a[1]<537},c.DOM={getOffset:function(a,b){b=b||new c.Point;var d=a.getBoundingClientRect(),e=c.DOM.scrollY,f=c.DOM.scrollX,g=document.documentElement.clientTop,h=document.documentElement.clientLeft;return b.x=d.left+f-h,b.y=d.top+e-g,b},getBounds:function(a,b){return void 0===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.visualBounds:1===a.nodeType?this.getBounds(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},inLayoutViewport:function(a,b){var c=this.getBounds(a,b);return!!c&&c.bottom>=0&&c.right>=0&&c.top<=this.layoutBounds.width&&c.left<=this.layoutBounds.height},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.visualBounds.height>this.visualBounds.width?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.visualBounds.height>this.visualBounds.width?d:e},visualBounds:new c.Rectangle,layoutBounds:new c.Rectangle,documentBounds:new c.Rectangle},c.Device.whenReady(function(a){var b=window&&"pageXOffset"in window?function(){return window.pageXOffset}:function(){return document.documentElement.scrollLeft},d=window&&"pageYOffset"in window?function(){return window.pageYOffset}:function(){return document.documentElement.scrollTop};Object.defineProperty(c.DOM,"scrollX",{get:b}),Object.defineProperty(c.DOM,"scrollY",{get:d}),Object.defineProperty(c.DOM.visualBounds,"x",{get:b}),Object.defineProperty(c.DOM.visualBounds,"y",{get:d}),Object.defineProperty(c.DOM.layoutBounds,"x",{value:0}),Object.defineProperty(c.DOM.layoutBounds,"y",{value:0});var e=a.desktop&&document.documentElement.clientWidth<=window.innerWidth&&document.documentElement.clientHeight<=window.innerHeight;if(e){var f=function(){return Math.max(window.innerWidth,document.documentElement.clientWidth)},g=function(){return Math.max(window.innerHeight,document.documentElement.clientHeight)};Object.defineProperty(c.DOM.visualBounds,"width",{get:f}),Object.defineProperty(c.DOM.visualBounds,"height",{get:g}),Object.defineProperty(c.DOM.layoutBounds,"width",{get:f}),Object.defineProperty(c.DOM.layoutBounds,"height",{get:g})}else Object.defineProperty(c.DOM.visualBounds,"width",{get:function(){return window.innerWidth}}),Object.defineProperty(c.DOM.visualBounds,"height",{get:function(){return window.innerHeight}}),Object.defineProperty(c.DOM.layoutBounds,"width",{get:function(){var a=document.documentElement.clientWidth,b=window.innerWidth;return b>a?b:a}}),Object.defineProperty(c.DOM.layoutBounds,"height",{get:function(){var a=document.documentElement.clientHeight,b=window.innerHeight;return b>a?b:a}});Object.defineProperty(c.DOM.documentBounds,"x",{value:0}),Object.defineProperty(c.DOM.documentBounds,"y",{value:0}),Object.defineProperty(c.DOM.documentBounds,"width",{get:function(){var a=document.documentElement;return Math.max(a.clientWidth,a.offsetWidth,a.scrollWidth)}}),Object.defineProperty(c.DOM.documentBounds,"height",{get:function(){var a=document.documentElement;return Math.max(a.clientHeight,a.offsetHeight,a.scrollHeight)}})},null,!0),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 void 0===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){var c=["i","mozI","oI","webkitI","msI"];for(var d in c){var e=c[d]+"mageSmoothingEnabled";if(e in a)return a[e]=b,a}return 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.RequestAnimationFrame=function(a,b){void 0===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 void 0===c&&(c=1e-4),a>b-c},fuzzyCeil:function(a,b){return void 0===b&&(b=1e-4),Math.ceil(a-b)},fuzzyFloor:function(a,b){return void 0===b&&(b=1e-4),Math.floor(a+b)},average:function(){for(var a=0,b=0;b=0?a:a+2*Math.PI},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},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)},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)},roundAwayFromZero:function(a){return a>0?Math.ceil(a):Math.floor(a)},sinCosGenerator:function(a,b,c,d){void 0===b&&(b=1),void 0===c&&(c=1),void 0===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}},distance:function(a,b,c,d){var e=a-c,f=b-d;return Math.sqrt(e*e+f*f)},distanceSq:function(a,b,c,d){var e=a-c,f=b-d;return e*e+f*f},distancePow:function(a,b,c,d,e){return void 0===e&&(e=2),Math.sqrt(Math.pow(c-a,e)+Math.pow(d-b,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 void 0===c&&(c=0),a>b||c>b?1:c>a||c>a?0:(a-c)/b}};var j=Math.PI/180,k=180/Math.PI;c.Math.degToRad=function(a){return a*j},c.Math.radToDeg=function(a){return a*k},c.RandomDataGenerator=function(a){void 0===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){if(this.s0=this.hash(" "),this.s1=this.hash(this.s0),this.s2=this.hash(this.s1),this.c=1,a)for(var b=0;b>>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)+.5)]},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){void 0===c&&(c=!1),(void 0===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){void 0===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.easeMap={Power0:c.Easing.Power0,Power1:c.Easing.Power1,Power2:c.Easing.Power2,Power3:c.Easing.Power3,Power4:c.Easing.Power4,Linear:c.Easing.Linear.None,Quad:c.Easing.Quadratic.Out,Cubic:c.Easing.Cubic.Out,Quart:c.Easing.Quartic.Out,Quint:c.Easing.Quintic.Out,Sine:c.Easing.Sinusoidal.Out,Expo:c.Easing.Exponential.Out,Circ:c.Easing.Circular.Out,Elastic:c.Easing.Elastic.Out,Back:c.Easing.Back.Out,Bounce:c.Easing.Bounce.Out,"Quad.easeIn":c.Easing.Quadratic.In,"Cubic.easeIn":c.Easing.Cubic.In,"Quart.easeIn":c.Easing.Quartic.In,"Quint.easeIn":c.Easing.Quintic.In,"Sine.easeIn":c.Easing.Sinusoidal.In,"Expo.easeIn":c.Easing.Exponential.In,"Circ.easeIn":c.Easing.Circular.In,"Elastic.easeIn":c.Easing.Elastic.In,"Back.easeIn":c.Easing.Back.In,"Bounce.easeIn":c.Easing.Bounce.In,"Quad.easeOut":c.Easing.Quadratic.Out,"Cubic.easeOut":c.Easing.Cubic.Out,"Quart.easeOut":c.Easing.Quartic.Out,"Quint.easeOut":c.Easing.Quintic.Out,"Sine.easeOut":c.Easing.Sinusoidal.Out,"Expo.easeOut":c.Easing.Exponential.Out,"Circ.easeOut":c.Easing.Circular.Out,"Elastic.easeOut":c.Easing.Elastic.Out,"Back.easeOut":c.Easing.Back.Out,"Bounce.easeOut":c.Easing.Bounce.Out,"Quad.easeInOut":c.Easing.Quadratic.InOut,"Cubic.easeInOut":c.Easing.Cubic.InOut,"Quart.easeInOut":c.Easing.Quartic.InOut,"Quint.easeInOut":c.Easing.Quintic.InOut,"Sine.easeInOut":c.Easing.Sinusoidal.InOut,"Expo.easeInOut":c.Easing.Exponential.InOut,"Circ.easeInOut":c.Easing.Circular.InOut,"Elastic.easeInOut":c.Easing.Elastic.InOut,"Back.easeInOut":c.Easing.Back.InOut,"Bounce.easeInOut":c.Easing.Bounce.InOut},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;ad;d++)this.removeFrom(a[d]);else if(a.type===c.GROUP&&b)for(var d=0,e=a.children.length;e>d;d++)this.removeFrom(a.children[d]);else{for(d=0,e=this._tweens.length;e>d;d++)a===this._tweens[d].target&&this.remove(this._tweens[d]);for(d=0,e=this._add.length;e>d;d++)a===this._add[d].target&&this.remove(this._add[d])}},add:function(a){a._manager=this,this._add.push(a)},create:function(a){return new c.Tween(a,this.game,this)},remove:function(a){var b=this._tweens.indexOf(a);-1!==b?this._tweens[b].pendingDelete=!0:(b=this._add.indexOf(a),-1!==b&&(this._add[b].pendingDelete=!0))},update:function(){var a=this._add.length,b=this._tweens.length;if(0===b&&0===a)return!1;for(var c=0;b>c;)this._tweens[c].update(this.game.time.time)?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.target===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.game=b,this.target=a,this.manager=d,this.timeline=[],this.reverse=!1,this.timeScale=1,this.repeatCounter=0,this.pendingDelete=!1,this.onStart=new c.Signal,this.onLoop=new c.Signal,this.onRepeat=new c.Signal,this.onChildComplete=new c.Signal,this.onComplete=new c.Signal,this.isRunning=!1,this.current=0,this.properties={},this.chainedTween=null,this.isPaused=!1,this._onUpdateCallback=null,this._onUpdateCallbackContext=null,this._pausedTime=0,this._codePaused=!1,this._hasStarted=!1},c.Tween.prototype={to:function(a,b,d,e,f,g,h){return(void 0===b||0>=b)&&(b=1e3),(void 0===d||null===d)&&(d=c.Easing.Default),void 0===e&&(e=!1),void 0===f&&(f=0),void 0===g&&(g=0),void 0===h&&(h=!1),"string"==typeof d&&this.manager.easeMap[d]&&(d=this.manager.easeMap[d]),this.isRunning?(console.warn("Phaser.Tween.to cannot be called after Tween.start"),this):(this.timeline.push(new c.TweenData(this).to(a,b,d,f,g,h)),e&&this.start(),this)},from:function(a,b,d,e,f,g,h){return void 0===b&&(b=1e3),(void 0===d||null===d)&&(d=c.Easing.Default),void 0===e&&(e=!1),void 0===f&&(f=0),void 0===g&&(g=0),void 0===h&&(h=!1),"string"==typeof d&&this.manager.easeMap[d]&&(d=this.manager.easeMap[d]),this.isRunning?(console.warn("Phaser.Tween.from cannot be called after Tween.start"),this):(this.timeline.push(new c.TweenData(this).from(a,b,d,f,g,h)),e&&this.start(),this)},start:function(a){if(void 0===a&&(a=0),null===this.game||null===this.target||0===this.timeline.length||this.isRunning)return this;for(var b=0;ba||a>this.timeline.length-1)&&(a=0),this.current=a,this.timeline[this.current].start(),this},stop:function(a){return void 0===a&&(a=!1),this.isRunning=!1,this._onUpdateCallback=null,this._onUpdateCallbackContext=null,a&&(this.onComplete.dispatch(this.target,this),this.chainedTween&&this.chainedTween.start()),this.manager.remove(this),this},updateTweenData:function(a,b,c){if(0===this.timeline.length)return this;if(void 0===c&&(c=0),-1===c)for(var d=0;d0?arguments[a-1].chainedTween=arguments[a]:this.chainedTween=arguments[a];return this},loop:function(a){return void 0===a&&(a=!0),a?this.repeatAll(-1):this.repeatCounter=0,this},onUpdateCallback:function(a,b){return this._onUpdateCallback=a,this._onUpdateCallbackContext=b,this},pause:function(){this.isPaused=!0,this._codePaused=!0,this._pausedTime=this.game.time.time},_pause:function(){this._codePaused||(this.isPaused=!0,this._pausedTime=this.game.time.time)},resume:function(){if(this.isPaused){this.isPaused=!1,this._codePaused=!1;for(var a=0;a0?(this.repeatCounter--,this.timeline[this.current].start(),this.onRepeat.dispatch(this.target,this),!0):(this.isRunning=!1,this.onComplete.dispatch(this.target,this),this.chainedTween&&this.chainedTween.start(),!1):(this.onChildComplete.dispatch(this.target,this),this.timeline[this.current].start(),!0)}},generateData:function(a,b){if(null===this.game||null===this.target)return null;void 0===a&&(a=60),void 0===b&&(b=[]);for(var c=0;c0?!1:!0,this.isFrom)for(var a in this.vStartCache)this.vStart[a]=this.vEndCache[a],this.vEnd[a]=this.vStartCache[a],this.parent.target[a]=this.vStart[a];return this.value=0,this.yoyoCounter=0,this},loadValues:function(){for(var a in this.parent.properties){if(this.vStart[a]=this.parent.properties[a],Array.isArray(this.vEnd[a])){if(0===this.vEnd[a].length)continue;0===this.percent&&(this.vEnd[a]=[this.vStart[a]].concat(this.vEnd[a]))}"undefined"!=typeof this.vEnd[a]?("string"==typeof this.vEnd[a]&&(this.vEnd[a]=this.vStart[a]+parseFloat(this.vEnd[a],10)),this.parent.properties[a]=this.vEnd[a]):this.vEnd[a]=this.vStart[a],this.vStartCache[a]=this.vStart[a],this.vEndCache[a]=this.vEnd[a]}return this},update:function(a){if(this.isRunning){if(a=this.startTime))return c.TweenData.PENDING;this.isRunning=!0}this.parent.reverse?(this.dt-=this.game.time.elapsedMS*this.parent.timeScale,this.dt=Math.max(this.dt,0)):(this.dt+=this.game.time.elapsedMS*this.parent.timeScale,this.dt=Math.min(this.dt,this.duration)),this.percent=this.dt/this.duration,this.value=this.easingFunction(this.percent);for(var b in this.vEnd){var d=this.vStart[b],e=this.vEnd[b];this.parent.target[b]=Array.isArray(e)?this.interpolationFunction.call(this.interpolationContext,e,this.value):d+(e-d)*this.value}return!this.parent.reverse&&1===this.percent||this.parent.reverse&&0===this.percent?this.repeat():c.TweenData.RUNNING},generateData:function(a){this.dt=this.parent.reverse?this.duration:0;var b=[],c=!1,d=1/a*1e3;do{this.parent.reverse?(this.dt-=d,this.dt=Math.max(this.dt,0)):(this.dt+=d,this.dt=Math.min(this.dt,this.duration)),this.percent=this.dt/this.duration,this.value=this.easingFunction(this.percent);var e={};for(var f in this.vEnd){var g=this.vStart[f],h=this.vEnd[f];e[f]=Array.isArray(h)?this.interpolationFunction(h,this.value):g+(h-g)*this.value}b.push(e),(!this.parent.reverse&&1===this.percent||this.parent.reverse&&0===this.percent)&&(c=!0)}while(!c);if(this.yoyo){var i=b.slice();i.reverse(),b=b.concat(i)}return b},repeat:function(){if(this.yoyo){if(this.inReverse&&0===this.repeatCounter)return c.TweenData.COMPLETE;this.inReverse=!this.inReverse}else if(0===this.repeatCounter)return c.TweenData.COMPLETE;if(this.inReverse)for(var a in this.vStartCache)this.vStart[a]=this.vEndCache[a],this.vEnd[a]=this.vStartCache[a];else{for(var a in this.vStartCache)this.vStart[a]=this.vStartCache[a],this.vEnd[a]=this.vEndCache[a];this.repeatCounter>0&&this.repeatCounter--}return this.startTime=this.game.time.time,this.yoyo&&this.inReverse?this.startTime+=this.yoyoDelay:this.inReverse||(this.startTime+=this.repeatDelay),this.dt=this.parent.reverse?this.duration:0,c.TweenData.LOOPED}},c.TweenData.prototype.constructor=c.TweenData,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 0===a?0:1===a?1:1-Math.cos(a*Math.PI/2)},Out:function(a){return 0===a?0:1===a?1:Math.sin(a*Math.PI/2)},InOut:function(a){return 0===a?0:1===a?1:.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.Easing.Power0=c.Easing.Linear.None,c.Easing.Power1=c.Easing.Quadratic.Out,c.Easing.Power2=c.Easing.Cubic.Out,c.Easing.Power3=c.Easing.Quartic.Out,c.Easing.Power4=c.Easing.Quintic.Out,c.Time=function(a){this.game=a,this.time=0,this.prevTime=0,this.now=0,this.elapsed=0,this.elapsedMS=0,this.physicsElapsed=0,this.physicsElapsedMS=0,this.desiredFps=60,this.suggestedFps=null,this.slowMotion=1,this.advancedTiming=!1,this.frames=0,this.fps=0,this.fpsMin=1e3,this.fpsMax=0,this.msMin=1e3,this.msMax=0,this.pauseDuration=0,this.timeToCall=0,this.timeExpected=0,this.events=new c.Timer(this.game,!1),this._frameCount=0,this._elapsedAccumulator=0,this._started=0,this._timeLastSecond=0,this._pauseStarted=0,this._justResumed=!1,this._timers=[]},c.Time.prototype={boot:function(){this._started=Date.now(),this.time=Date.now(),this.events.start()},add:function(a){return this._timers.push(a),a},create:function(a){void 0===a&&(a=!0);var b=new c.Timer(this.game,a);return this._timers.push(b),b},removeAll:function(){for(var a=0;aa;)this._timers[a].update(this.time)?a++:(this._timers.splice(a,1),b--)},updateAdvancedTiming:function(){this._frameCount++,this._elapsedAccumulator+=this.elapsed,this._frameCount>=2*this.desiredFps&&(this.suggestedFps=5*Math.floor(200/(this._elapsedAccumulator/this._frameCount)),this._frameCount=0,this._elapsedAccumulator=0),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)},gamePaused:function(){this._pauseStarted=Date.now(),this.events.pause();for(var a=this._timers.length;a--;)this._timers[a]._pause()},gameResumed:function(){this.time=Date.now(),this.pauseDuration=this.time-this._pauseStarted,this.events.resume();for(var a=this._timers.length;a--;)this._timers[a]._resume()},totalElapsedSeconds:function(){return.001*(this.time-this._started)},elapsedSince:function(a){return this.time-a},elapsedSecondsSince:function(a){return.001*(this.time-a)},reset:function(){this._started=this.time,this.removeAll()}},c.Time.prototype.constructor=c.Time,c.Timer=function(a,b){void 0===b&&(b=!0),this.game=a,this.running=!1,this.autoDestroy=b,this.expired=!1,this.elapsed=0,this.events=[],this.onComplete=new c.Signal,this.nextTick=0,this.timeCap=1e3,this.paused=!1,this._codePaused=!1,this._started=0,this._pauseStarted=0,this._pauseTotal=0,this._now=Date.now(),this._len=0,this._marked=0,this._i=0,this._diff=0,this._newTick=0},c.Timer.MINUTE=6e4,c.Timer.SECOND=1e3,c.Timer.HALF=500,c.Timer.QUARTER=250,c.Timer.prototype={create:function(a,b,d,e,f,g){a=Math.round(a);var h=a;h+=0===this._now?this.game.time.time:this._now;var i=new c.TimerEvent(this,a,h,d,b,e,f,g);return this.events.push(i),this.order(),this.expired=!1,i},add:function(a,b,c){return this.create(a,!1,0,b,c,Array.prototype.splice.call(arguments,3))},repeat:function(a,b,c,d){return this.create(a,!1,b,c,d,Array.prototype.splice.call(arguments,4))},loop:function(a,b,c){return this.create(a,!0,0,b,c,Array.prototype.splice.call(arguments,3))},start:function(a){if(!this.running){this._started=this.game.time.time+(a||0),this.running=!0;for(var b=0;b0&&(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.events[this._i].pendingDelete;)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},destroy:function(){this.onComplete.removeAll(),this.running=!1,this.events=[],this._len=0,this._i=0}},Object.defineProperty(c.Timer.prototype,"next",{get:function(){return this.nextTick}}),Object.defineProperty(c.Timer.prototype,"duration",{get:function(){return this.running&&this.nextTick>this._now?this.nextTick-this._now:0}}),Object.defineProperty(c.Timer.prototype,"length",{get:function(){return this.events.length}}),Object.defineProperty(c.Timer.prototype,"ms",{get:function(){return this.running?this._now-this._started-this._pauseTotal:0}}),Object.defineProperty(c.Timer.prototype,"seconds",{get:function(){return this.running?.001*this.ms:0}}),c.Timer.prototype.constructor=c.Timer,c.TimerEvent=function(a,b,c,d,e,f,g,h){this.timer=a,this.delay=b,this.tick=c,this.repeatCount=d-1,this.loop=e,this.callback=f,this.callbackContext=g,this.args=h,this.pendingDelete=!1},c.TimerEvent.prototype.constructor=c.TimerEvent,c.AnimationManager=function(a){this.sprite=a,this.game=a.game,this.currentFrame=null,this.currentAnim=null,this.updateIfVisible=!0,this.isLoaded=!1,this._frameData=null,this._anims={},this._outputFrames=[]},c.AnimationManager.prototype={loadFrameData:function(a,b){if(void 0===a)return!1;if(this.isLoaded)for(var c in this._anims)this._anims[c].updateFrameData(a);return this._frameData=a,void 0===b||null===b?this.frame=0:"string"==typeof b?this.frameName=b:this.frame=b,this.isLoaded=!0,!0},copyFrameData:function(a,b){if(this._frameData=a.clone(),this.isLoaded)for(var c in this._anims)this._anims[c].updateFrameData(this._frameData);return void 0===b||null===b?this.frame=0:"string"==typeof b?this.frameName=b:this.frame=b,this.isLoaded=!0,!0},add:function(a,b,d,e,f){return b=b||[],d=d||60,void 0===e&&(e=!1),void 0===f&&(f=b&&"number"==typeof b[0]?!0:!1),this._outputFrames=[],this._frameData.getFrameIndexes(b,f,this._outputFrames),this._anims[a]=new c.Animation(this.game,this.sprite,a,this._frameData,this._outputFrames,d,e),this.currentAnim=this._anims[a],this.sprite.tilingTexture&&(this.sprite.refreshTexture=!0),this._anims[a]},validateFrames:function(a,b){void 0===b&&(b=!0);for(var c=0;cthis._frameData.total)return!1}else if(this._frameData.checkFrameName(a[c])===!1)return!1;return!0},play:function(a,b,c,d){return this._anims[a]?this.currentAnim===this._anims[a]?this.currentAnim.isPlaying===!1?(this.currentAnim.paused=!1,this.currentAnim.play(b,c,d)):this.currentAnim:(this.currentAnim&&this.currentAnim.isPlaying&&this.currentAnim.stop(),this.currentAnim=this._anims[a],this.currentAnim.paused=!1,this.currentFrame=this.currentAnim.currentFrame,this.currentAnim.play(b,c,d)):void 0},stop:function(a,b){void 0===b&&(b=!1),"string"==typeof a?this._anims[a]&&(this.currentAnim=this._anims[a],this.currentAnim.stop(b)):this.currentAnim&&this.currentAnim.stop(b)},update:function(){return this.updateIfVisible&&!this.sprite.visible?!1:this.currentAnim&&this.currentAnim.update()?(this.currentFrame=this.currentAnim.currentFrame,!0):!1},next:function(a){this.currentAnim&&(this.currentAnim.next(a),this.currentFrame=this.currentAnim.currentFrame)},previous:function(a){this.currentAnim&&(this.currentAnim.previous(a),this.currentFrame=this.currentAnim.currentFrame)},getAnimation:function(a){return"string"==typeof a&&this._anims[a]?this._anims[a]:null},refreshFrame:function(){this.sprite.setTexture(PIXI.TextureCache[this.currentFrame.uuid])},destroy:function(){var a=null;for(var a in this._anims)this._anims.hasOwnProperty(a)&&this._anims[a].destroy();this._anims={},this._outputFrames=[],this._frameData=null,this.currentAnim=null,this.currentFrame=null,this.sprite=null,this.game=null}},c.AnimationManager.prototype.constructor=c.AnimationManager,Object.defineProperty(c.AnimationManager.prototype,"frameData",{get:function(){return this._frameData}}),Object.defineProperty(c.AnimationManager.prototype,"frameTotal",{get:function(){return this._frameData.total}}),Object.defineProperty(c.AnimationManager.prototype,"paused",{get:function(){return this.currentAnim.isPaused},set:function(a){this.currentAnim.paused=a}}),Object.defineProperty(c.AnimationManager.prototype,"name",{get:function(){return this.currentAnim?this.currentAnim.name:void 0}}),Object.defineProperty(c.AnimationManager.prototype,"frame",{get:function(){return this.currentFrame?this.currentFrame.index:void 0},set:function(a){"number"==typeof a&&this._frameData&&null!==this._frameData.getFrame(a)&&(this.currentFrame=this._frameData.getFrame(a),this.currentFrame&&this.sprite.setFrame(this.currentFrame))}}),Object.defineProperty(c.AnimationManager.prototype,"frameName",{get:function(){return this.currentFrame?this.currentFrame.name:void 0},set:function(a){"string"==typeof a&&this._frameData&&null!==this._frameData.getFrameByName(a)?(this.currentFrame=this._frameData.getFrameByName(a),this.currentFrame&&(this._frameIndex=this.currentFrame.index,this.sprite.setFrame(this.currentFrame))):console.warn("Cannot set frameName: "+a)}}),c.Animation=function(a,b,d,e,f,g,h){void 0===h&&(h=!1),this.game=a,this._parent=b,this._frameData=e,this.name=d,this._frames=[],this._frames=this._frames.concat(f),this.delay=1e3/g,this.loop=h,this.loopCount=0,this.killOnComplete=!1,this.isFinished=!1,this.isPlaying=!1,this.isPaused=!1,this._pauseStartTime=0,this._frameIndex=0,this._frameDiff=0,this._frameSkip=1,this.currentFrame=this._frameData.getFrame(this._frames[this._frameIndex]),this.onStart=new c.Signal,this.onUpdate=null,this.onComplete=new c.Signal,this.onLoop=new c.Signal,this.game.onPause.add(this.onPause,this),this.game.onResume.add(this.onResume,this)},c.Animation.prototype={play:function(a,b,c){return"number"==typeof a&&(this.delay=1e3/a),"boolean"==typeof b&&(this.loop=b),"undefined"!=typeof c&&(this.killOnComplete=c),this.isPlaying=!0,this.isFinished=!1,this.paused=!1,this.loopCount=0,this._timeLastFrame=this.game.time.time,this._timeNextFrame=this.game.time.time+this.delay,this._frameIndex=0,this.updateCurrentFrame(!1,!0),this._parent.events.onAnimationStart$dispatch(this._parent,this),this.onStart.dispatch(this._parent,this),this._parent.animations.currentAnim=this,this._parent.animations.currentFrame=this.currentFrame,this},restart:function(){this.isPlaying=!0,this.isFinished=!1,this.paused=!1,this.loopCount=0,this._timeLastFrame=this.game.time.time,this._timeNextFrame=this.game.time.time+this.delay,this._frameIndex=0,this.currentFrame=this._frameData.getFrame(this._frames[this._frameIndex]),this._parent.setFrame(this.currentFrame),this._parent.animations.currentAnim=this,this._parent.animations.currentFrame=this.currentFrame,this.onStart.dispatch(this._parent,this)},setFrame:function(a,b){var c;if(void 0===b&&(b=!1),"string"==typeof a)for(var d=0;d=this._timeNextFrame?(this._frameSkip=1,this._frameDiff=this.game.time.time-this._timeNextFrame,this._timeLastFrame=this.game.time.time,this._frameDiff>this.delay&&(this._frameSkip=Math.floor(this._frameDiff/this.delay),this._frameDiff-=this._frameSkip*this.delay),this._timeNextFrame=this.game.time.time+(this.delay-this._frameDiff),this._frameIndex+=this._frameSkip,this._frameIndex>=this._frames.length?this.loop?(this._frameIndex%=this._frames.length,this.currentFrame=this._frameData.getFrame(this._frames[this._frameIndex]),this.currentFrame&&this._parent.setFrame(this.currentFrame),this.loopCount++,this._parent.events.onAnimationLoop$dispatch(this._parent,this),this.onLoop.dispatch(this._parent,this),this.onUpdate?(this.onUpdate.dispatch(this,this.currentFrame),!!this._frameData):!0):(this.complete(),!1):this.updateCurrentFrame(!0)):!1},updateCurrentFrame:function(a,b){if(void 0===b&&(b=!1),!this._frameData)return!1;var c=this.currentFrame.index;return this.currentFrame=this._frameData.getFrame(this._frames[this._frameIndex]),this.currentFrame&&(b||!b&&c!==this.currentFrame.index)&&this._parent.setFrame(this.currentFrame),this.onUpdate&&a?(this.onUpdate.dispatch(this,this.currentFrame),!!this._frameData):!0},next:function(a){void 0===a&&(a=1);var b=this._frameIndex+a;b>=this._frames.length&&(this.loop?b%=this._frames.length:b=this._frames.length-1),b!==this._frameIndex&&(this._frameIndex=b,this.updateCurrentFrame(!0))},previous:function(a){void 0===a&&(a=1);var b=this._frameIndex-a;0>b&&(this.loop?b=this._frames.length+b:b++),b!==this._frameIndex&&(this._frameIndex=b,this.updateCurrentFrame(!0))},updateFrameData:function(a){this._frameData=a,this.currentFrame=this._frameData?this._frameData.getFrame(this._frames[this._frameIndex%this._frames.length]):null},destroy:function(){this._frameData&&(this.game.onPause.remove(this.onPause,this),this.game.onResume.remove(this.onResume,this),this.game=null,this._parent=null,this._frames=null,this._frameData=null,this.currentFrame=null,this.isPlaying=!1,this.onStart.dispose(),this.onLoop.dispose(),this.onComplete.dispose(),this.onUpdate&&this.onUpdate.dispose())},complete:function(){this._frameIndex=this._frames.length-1,this.currentFrame=this._frameData.getFrame(this._frames[this._frameIndex]),this.isPlaying=!1,this.isFinished=!0,this.paused=!1,this._parent.events.onAnimationComplete$dispatch(this._parent,this),this.onComplete.dispatch(this._parent,this),this.killOnComplete&&this._parent.kill()}},c.Animation.prototype.constructor=c.Animation,Object.defineProperty(c.Animation.prototype,"paused",{get:function(){return this.isPaused},set:function(a){this.isPaused=a,a?this._pauseStartTime=this.game.time.time:this.isPlaying&&(this._timeNextFrame=this.game.time.time+this.delay)}}),Object.defineProperty(c.Animation.prototype,"frameTotal",{get:function(){return this._frames.length}}),Object.defineProperty(c.Animation.prototype,"frame",{get:function(){return null!==this.currentFrame?this.currentFrame.index:this._frameIndex},set:function(a){this.currentFrame=this._frameData.getFrame(this._frames[a]),null!==this.currentFrame&&(this._frameIndex=a,this._parent.setFrame(this.currentFrame),this.onUpdate&&this.onUpdate.dispatch(this,this.currentFrame))}}),Object.defineProperty(c.Animation.prototype,"speed",{get:function(){return Math.round(1e3/this.delay)},set:function(a){a>=1&&(this.delay=1e3/a)}}),Object.defineProperty(c.Animation.prototype,"enableUpdate",{get:function(){return null!==this.onUpdate},set:function(a){a&&null===this.onUpdate?this.onUpdate=new c.Signal:a||null===this.onUpdate||(this.onUpdate.dispose(),this.onUpdate=null)}}),c.Animation.generateFrameNames=function(a,b,d,e,f){void 0===e&&(e="");var g=[],h="";if(d>b)for(var i=b;d>=i;i++)h="number"==typeof f?c.Utils.pad(i.toString(),f,"0",1):i.toString(),h=a+h+e,g.push(h);else for(var i=b;i>=d;i--)h="number"==typeof f?c.Utils.pad(i.toString(),f,"0",1):i.toString(),h=a+h+e,g.push(h);return g},c.Frame=function(a,b,d,e,f,g){this.index=a,this.x=b,this.y=d,this.width=e,this.height=f,this.name=g,this.centerX=Math.floor(e/2),this.centerY=Math.floor(f/2),this.distance=c.Math.distance(0,0,e,f),this.rotated=!1,this.rotationDirection="cw",this.trimmed=!1,this.sourceSizeW=e,this.sourceSizeH=f,this.spriteSourceSizeX=0,this.spriteSourceSizeY=0,this.spriteSourceSizeW=0,this.spriteSourceSizeH=0,this.right=this.x+this.width,this.bottom=this.y+this.height -},c.Frame.prototype={resize:function(a,b){this.width=a,this.height=b,this.centerX=Math.floor(a/2),this.centerY=Math.floor(b/2),this.distance=c.Math.distance(0,0,a,b),this.sourceSizeW=a,this.sourceSizeH=b,this.right=this.x+a,this.bottom=this.y+b},setTrim:function(a,b,c,d,e,f,g){this.trimmed=a,a&&(this.sourceSizeW=b,this.sourceSizeH=c,this.centerX=Math.floor(b/2),this.centerY=Math.floor(c/2),this.spriteSourceSizeX=d,this.spriteSourceSizeY=e,this.spriteSourceSizeW=f,this.spriteSourceSizeH=g)},clone:function(){var a=new c.Frame(this.index,this.x,this.y,this.width,this.height,this.name);for(var b in this)this.hasOwnProperty(b)&&(a[b]=this[b]);return a},getRect:function(a){return void 0===a?a=new c.Rectangle(this.x,this.y,this.width,this.height):a.setTo(this.x,this.y,this.width,this.height),a}},c.Frame.prototype.constructor=c.Frame,c.FrameData=function(){this._frames=[],this._frameNames=[]},c.FrameData.prototype={addFrame:function(a){return a.index=this._frames.length,this._frames.push(a),""!==a.name&&(this._frameNames[a.name]=a.index),a},getFrame:function(a){return a>=this._frames.length&&(a=0),this._frames[a]},getFrameByName:function(a){return"number"==typeof this._frameNames[a]?this._frames[this._frameNames[a]]:null},checkFrameName:function(a){return null==this._frameNames[a]?!1:!0},clone:function(){for(var a=new c.FrameData,b=0;b=d;d++)c.push(this._frames[d]);return c},getFrames:function(a,b,c){if(void 0===b&&(b=!0),void 0===c&&(c=[]),void 0===a||0===a.length)for(var d=0;d=d&&(d=Math.floor(-j/Math.min(-1,d))),0>=e&&(e=Math.floor(-k/Math.min(-1,e)));var l=Math.floor((j-g)/(d+h)),m=Math.floor((k-g)/(e+h)),n=l*m;if(-1!==f&&(n=f),0===j||0===k||d>j||e>k||0===n)return console.warn("Phaser.AnimationParser.spriteSheet: '"+b+"'s width/height zero or width/height < given frameWidth/frameHeight"),null;for(var o=new c.FrameData,p=g,q=g,r=0;n>r;r++)o.addFrame(new c.Frame(r,p,q,d,e,"")),p+=d+h,p+d>j&&(p=g,q+=e+h);return o},JSONData:function(a,b){if(!b.frames)return console.warn("Phaser.AnimationParser.JSONData: Invalid Texture Atlas JSON given, missing 'frames' array"),void console.log(b);for(var d,e=new c.FrameData,f=b.frames,g=0;g tag");for(var d,e,f,g,h,i,j,k,l,m,n,o=new c.FrameData,p=b.getElementsByTagName("SubTexture"),q=0;q-1},getAssetIndex:function(a,b){for(var c=-1,d=0;d-1?{index:c,file:this._fileList[c]}:!1},reset:function(a,b){void 0===b&&(b=!1),this.resetLocked||(a&&(this.preloadSprite=null),this.isLoading=!1,this._processingHead=0,this._fileList.length=0,this._flightQueue.length=0,this._fileLoadStarted=!1,this._totalFileCount=0,this._totalPackCount=0,this._loadedPackCount=0,this._loadedFileCount=0,b&&(this.onLoadStart.removeAll(),this.onLoadComplete.removeAll(),this.onPackComplete.removeAll(),this.onFileStart.removeAll(),this.onFileComplete.removeAll(),this.onFileError.removeAll()))},addToFileList:function(a,b,c,d,e,f){if(void 0===e&&(e=!1),void 0===b||""===b)return console.warn("Phaser.Loader: Invalid or no key given of type "+a),this;if(void 0===c||null===c){if(!f)return console.warn("Phaser.Loader: No URL given for file type: "+a+" key: "+b),this;c=b+f}var g={type:a,key:b,path:this.path,url:c,syncPoint:this._withSyncPointDepth>0,data:null,loading:!1,loaded:!1,error:!1};if(d)for(var h in d)g[h]=d[h];var i=this.getAssetIndex(a,b);if(e&&i>-1){var j=this._fileList[i];j.loading||j.loaded?(this._fileList.push(g),this._totalFileCount++):this._fileList[i]=g}else-1===i&&(this._fileList.push(g),this._totalFileCount++);return this},replaceInFileList:function(a,b,c,d){return this.addToFileList(a,b,c,d,!0)},pack:function(a,b,c,d){if(void 0===b&&(b=null),void 0===c&&(c=null),void 0===d&&(d=null),!b&&!c)return console.warn("Phaser.Loader.pack - Both url and data are null. One must be set."),this;var e={type:"packfile",key:a,url:b,path:this.path,syncPoint:!0,data:null,loading:!1,loaded:!1,error:!1,callbackContext:d};c&&("string"==typeof c&&(c=JSON.parse(c)),e.data=c||{},e.loaded=!0);for(var f=0;f=e||d&&this._loadedPackCount===this._totalPackCount)break}if(this.updateProgress(),this._processingHead>=this._fileList.length)this.finishedLoading();else if(!this._flightQueue.length){console.warn("Phaser.Loader - aborting: processing queue empty, loading may have stalled");var f=this;setTimeout(function(){f.finishedLoading(!0)},2e3)}},finishedLoading:function(a){this.hasLoaded||(this.hasLoaded=!0,this.isLoading=!1,a||this._fileLoadStarted||(this._fileLoadStarted=!0,this.onLoadStart.dispatch()),this.onLoadComplete.dispatch(),this.reset(),this.game.state.loadComplete())},asyncComplete:function(a,b){void 0===b&&(b=""),a.loaded=!0,a.error=!!b,b&&(a.errorMessage=b,console.warn("Phaser.Loader - "+a.type+"["+a.key+"]: "+b)),this.processLoadQueue()},processPack:function(a){var b=a.data[a.key];if(!b)return void console.warn("Phaser.Loader - "+a.key+": pack has data, but not for pack key");for(var d=0;d=10)||(this._warnedAboutXDomainRequest=!0,console.warn("Phaser.Loader - using XDomainRequest outside of IE 9"));var f=new window.XDomainRequest;f.open("GET",b,!0),f.responseType=c,f.timeout=3e3,e=e||this.fileError;var g=this;f.onerror=function(){try{return e.call(g,a,f)}catch(b){g.asyncComplete(a,b.message||"Exception")}},f.ontimeout=function(){try{return e.call(g,a,f)}catch(b){g.asyncComplete(a,b.message||"Exception")}},f.onprogress=function(){},f.onload=function(){try{return d.call(g,a,f) -}catch(b){g.asyncComplete(a,b.message||"Exception")}},a.requestObject=f,a.requestUrl=b,setTimeout(function(){f.send()},0)},getVideoURL:function(a){for(var b=0;b=0&&(d=d.substr(0,d.indexOf("?")));var e=d.substr((Math.max(0,d.lastIndexOf("."))||1/0)+1);c=e.toLowerCase()}if(this.game.device.canPlayVideo(c))return a[b]}return null},getAudioURL:function(a){if(this.game.sound.noAudio)return null;for(var b=0;b=0&&(d=d.substr(0,d.indexOf("?")));var e=d.substr((Math.max(0,d.lastIndexOf("."))||1/0)+1);c=e.toLowerCase()}if(this.game.device.canPlayAudio(c))return a[b]}return null},fileError:function(a,b,c){var d=a.requestUrl||this.transformUrl(a.url,a),e="error loading asset from URL "+d;!c&&b&&(c=b.status),c&&(e=e+" ("+c+")"),this.asyncComplete(a,e)},fileComplete:function(a,b){var d=!0;switch(a.type){case"packfile":var e=JSON.parse(b.responseText);a.data=e||{};break;case"image":this.cache.addImage(a.key,a.url,a.data);break;case"spritesheet":this.cache.addSpriteSheet(a.key,a.url,a.data,a.frameWidth,a.frameHeight,a.frameMax,a.margin,a.spacing);break;case"textureatlas":if(null==a.atlasURL)this.cache.addTextureAtlas(a.key,a.url,a.data,a.atlasData,a.format);else if(d=!1,a.format==c.Loader.TEXTURE_ATLAS_JSON_ARRAY||a.format==c.Loader.TEXTURE_ATLAS_JSON_HASH)this.xhrLoad(a,this.transformUrl(a.atlasURL,a),"text",this.jsonLoadComplete);else{if(a.format!=c.Loader.TEXTURE_ATLAS_XML_STARLING)throw new Error("Phaser.Loader. Invalid Texture Atlas format: "+a.format);this.xhrLoad(a,this.transformUrl(a.atlasURL,a),"text",this.xmlLoadComplete)}break;case"bitmapfont":a.atlasURL?(d=!1,this.xhrLoad(a,this.transformUrl(a.atlasURL,a),"text",function(a,b){var c;try{c=JSON.parse(b.responseText)}catch(d){}c?(a.atlasType="json",this.jsonLoadComplete(a,b)):(a.atlasType="xml",this.xmlLoadComplete(a,b))})):this.cache.addBitmapFont(a.key,a.url,a.data,a.atlasData,a.atlasType,a.xSpacing,a.ySpacing);break;case"video":if(a.asBlob)try{a.data=new Blob([new Uint8Array(b.response)])}catch(f){throw new Error("Phaser.Loader. Unable to parse video file as Blob: "+a.key)}this.cache.addVideo(a.key,a.url,a.data,a.asBlob);break;case"audio":this.game.sound.usingWebAudio?(a.data=b.response,this.cache.addSound(a.key,a.url,a.data,!0,!1),a.autoDecode&&this.game.sound.decode(a.key)):this.cache.addSound(a.key,a.url,a.data,!1,!0);break;case"text":a.data=b.responseText,this.cache.addText(a.key,a.url,a.data);break;case"shader":a.data=b.responseText,this.cache.addShader(a.key,a.url,a.data);break;case"physics":var e=JSON.parse(b.responseText);this.cache.addPhysicsData(a.key,a.url,e,a.format);break;case"script":a.data=document.createElement("script"),a.data.language="javascript",a.data.type="text/javascript",a.data.defer=!1,a.data.text=b.responseText,document.head.appendChild(a.data),a.callback&&(a.data=a.callback.call(a.callbackContext,a.key,b.responseText));break;case"binary":a.data=a.callback?a.callback.call(a.callbackContext,a.key,b.response):b.response,this.cache.addBinary(a.key,a.data)}d&&this.asyncComplete(a)},jsonLoadComplete:function(a,b){var c=JSON.parse(b.responseText);"tilemap"===a.type?this.cache.addTilemap(a.key,a.url,c,a.format):"bitmapfont"===a.type?this.cache.addBitmapFont(a.key,a.url,a.data,c,a.atlasType,a.xSpacing,a.ySpacing):"json"===a.type?this.cache.addJSON(a.key,a.url,c):this.cache.addTextureAtlas(a.key,a.url,a.data,c,a.format),this.asyncComplete(a)},csvLoadComplete:function(a,b){var c=b.responseText;this.cache.addTilemap(a.key,a.url,c,a.format),this.asyncComplete(a)},xmlLoadComplete:function(a,b){var c=b.responseText,d=this.parseXml(c);if(!d){var e=b.responseType||b.contentType;return console.warn("Phaser.Loader - "+a.key+": invalid XML ("+e+")"),void this.asyncComplete(a,"invalid XML")}"bitmapfont"===a.type?this.cache.addBitmapFont(a.key,a.url,a.data,d,a.atlasType,a.xSpacing,a.ySpacing):"textureatlas"===a.type?this.cache.addTextureAtlas(a.key,a.url,a.data,d,a.format):"xml"===a.type&&this.cache.addXML(a.key,a.url,d),this.asyncComplete(a)},parseXml:function(a){var b;try{if(window.DOMParser){var c=new DOMParser;b=c.parseFromString(a,"text/xml")}else b=new ActiveXObject("Microsoft.XMLDOM"),b.async="false",b.loadXML(a)}catch(d){b=null}return b&&b.documentElement&&!b.getElementsByTagName("parsererror").length?b:null},updateProgress:function(){this.preloadSprite&&(0===this.preloadSprite.direction?this.preloadSprite.rect.width=Math.floor(this.preloadSprite.width/100*this.progress):this.preloadSprite.rect.height=Math.floor(this.preloadSprite.height/100*this.progress),this.preloadSprite.sprite?this.preloadSprite.sprite.updateCrop():this.preloadSprite=null)},totalLoadedFiles:function(){return this._loadedFileCount},totalQueuedFiles:function(){return this._totalFileCount-this._loadedFileCount},totalLoadedPacks:function(){return this._totalPackCount},totalQueuedPacks:function(){return this._totalPackCount-this._loadedPackCount}},Object.defineProperty(c.Loader.prototype,"progressFloat",{get:function(){var a=this._loadedFileCount/this._totalFileCount*100;return c.Math.clamp(a||0,0,100)}}),Object.defineProperty(c.Loader.prototype,"progress",{get:function(){return Math.round(this.progressFloat)}}),c.Loader.prototype.constructor=c.Loader,c.LoaderParser={bitmapFont:function(a,b,c,d){return this.xmlBitmapFont(a,b,c,d)},xmlBitmapFont:function(a,b,c,d){var e={},f=a.getElementsByTagName("info")[0],g=a.getElementsByTagName("common")[0];e.font=f.getAttribute("face"),e.size=parseInt(f.getAttribute("size"),10),e.lineHeight=parseInt(g.getAttribute("lineHeight"),10)+d,e.chars={};for(var h=a.getElementsByTagName("char"),i=0;i=this.durationMS&&(this.usingWebAudio?this.loop?(this.onLoop.dispatch(this),""===this.currentMarker?(this.currentTime=0,this.startTime=this.game.time.time):(this.onMarkerComplete.dispatch(this.currentMarker,this),this.play(this.currentMarker,0,this.volume,!0,!0))):""!==this.currentMarker&&this.stop():this.loop?(this.onLoop.dispatch(this),this.play(this.currentMarker,0,this.volume,!0,!0)):this.stop()))},loopFull:function(a){this.play(null,0,a,!0)},play:function(a,b,c,d,e){if((void 0===a||a===!1||null===a)&&(a=""),void 0===e&&(e=!0),this.isPlaying&&!this.allowMultiple&&!e&&!this.override)return this;if(this._sound&&this.isPlaying&&!this.allowMultiple&&(this.override||e))if(this.usingWebAudio)if(this._sound.disconnect(this.externalNode?this.externalNode:this.gainNode),void 0===this._sound.stop)this._sound.noteOff(0);else try{this._sound.stop(0)}catch(f){}else this.usingAudioTag&&(this._sound.pause(),this._sound.currentTime=0);if(""===a&&Object.keys(this.markers).length>0)return this;if(""!==a){if(this.currentMarker=a,!this.markers[a])return this;this.position=this.markers[a].start,this.volume=this.markers[a].volume,this.loop=this.markers[a].loop,this.duration=this.markers[a].duration,this.durationMS=this.markers[a].durationMS,"undefined"!=typeof c&&(this.volume=c),"undefined"!=typeof d&&(this.loop=d),this._tempMarker=a,this._tempPosition=this.position,this._tempVolume=this.volume,this._tempLoop=this.loop}else b=b||0,void 0===c&&(c=this._volume),void 0===d&&(d=this.loop),this.position=b,this.volume=c,this.loop=d,this.duration=0,this.durationMS=0,this._tempMarker=a,this._tempPosition=b,this._tempVolume=c,this._tempLoop=d;return this.usingWebAudio?this.game.cache.isSoundDecoded(this.key)?(this._sound=this.context.createBufferSource(),this._sound.connect(this.externalNode?this.externalNode:this.gainNode),this._buffer=this.game.cache.getSoundData(this.key),this._sound.buffer=this._buffer,this.loop&&""===a&&(this._sound.loop=!0),this.loop||""!==a||(this._sound.onended=this.onEndedHandler.bind(this)),this.totalDuration=this._sound.buffer.duration,0===this.duration&&(this.duration=this.totalDuration,this.durationMS=Math.ceil(1e3*this.totalDuration)),void 0===this._sound.start?this._sound.noteGrainOn(0,this.position,this.duration):this.loop&&""===a?this._sound.start(0,0):this._sound.start(0,this.position,this.duration),this.isPlaying=!0,this.startTime=this.game.time.time,this.currentTime=0,this.stopTime=this.startTime+this.durationMS,this.onPlay.dispatch(this)):(this.pendingPlayback=!0,this.game.cache.getSound(this.key)&&this.game.cache.getSound(this.key).isDecoding===!1&&this.game.sound.decode(this.key,this)):this.game.cache.getSound(this.key)&&this.game.cache.getSound(this.key).locked?(this.game.cache.reloadSound(this.key),this.pendingPlayback=!0):this._sound&&(this.game.device.cocoonJS||4===this._sound.readyState)?(this._sound.play(),this.totalDuration=this._sound.duration,0===this.duration&&(this.duration=this.totalDuration,this.durationMS=1e3*this.totalDuration),this._sound.currentTime=this.position,this._sound.muted=this._muted,this._sound.volume=this._muted?0:this._volume,this.isPlaying=!0,this.startTime=this.game.time.time,this.currentTime=0,this.stopTime=this.startTime+this.durationMS,this.onPlay.dispatch(this)):this.pendingPlayback=!0,this},restart:function(a,b,c,d){a=a||"",b=b||0,c=c||1,void 0===d&&(d=!1),this.play(a,b,c,d,!0)},pause:function(){this.isPlaying&&this._sound&&(this.paused=!0,this.pausedPosition=this.currentTime,this.pausedTime=this.game.time.time,this.onPause.dispatch(this),this.stop())},resume:function(){if(this.paused&&this._sound){if(this.usingWebAudio){var a=this.position+this.pausedPosition/1e3;this._sound=this.context.createBufferSource(),this._sound.buffer=this._buffer,this._sound.connect(this.externalNode?this.externalNode:this.gainNode),this.loop&&(this._sound.loop=!0),this.loop||""!==this.currentMarker||(this._sound.onended=this.onEndedHandler.bind(this));var b=this.duration-this.pausedPosition/1e3;void 0===this._sound.start?this._sound.noteGrainOn(0,a,b):this.loop&&this.game.device.chrome?42===this.game.device.chromeVersion?this._sound.start(0):this._sound.start(0,a):this._sound.start(0,a,b)}else this._sound.play();this.isPlaying=!0,this.paused=!1,this.startTime+=this.game.time.time-this.pausedTime,this.onResume.dispatch(this)}},stop:function(){if(this.isPlaying&&this._sound)if(this.usingWebAudio)if(this._sound.disconnect(this.externalNode?this.externalNode:this.gainNode),void 0===this._sound.stop)this._sound.noteOff(0);else try{this._sound.stop(0)}catch(a){}else this.usingAudioTag&&(this._sound.pause(),this._sound.currentTime=0);this.pendingPlayback=!1,this.isPlaying=!1;var b=this.currentMarker;""!==this.currentMarker&&this.onMarkerComplete.dispatch(this.currentMarker,this),this.currentMarker="",null!==this.fadeTween&&this.fadeTween.stop(),this.paused||this.onStop.dispatch(this,b)},fadeIn:function(a,b,c){void 0===b&&(b=!1),void 0===c&&(c=this.currentMarker),this.paused||(this.play(c,0,0,b),this.fadeTo(a,1))},fadeOut:function(a){this.fadeTo(a,0)},fadeTo:function(a,b){if(this.isPlaying&&!this.paused&&b!==this.volume){if(void 0===a&&(a=1e3),void 0===b)return void console.warn("Phaser.Sound.fadeTo: No Volume Specified.");this.fadeTween=this.game.add.tween(this).to({volume:b},a,c.Easing.Linear.None,!0),this.fadeTween.onComplete.add(this.fadeComplete,this)}},fadeComplete:function(){this.onFadeComplete.dispatch(this,this.volume),0===this.volume&&this.stop()},destroy:function(a){void 0===a&&(a=!0),this.stop(),a?this.game.sound.remove(this):(this.markers={},this.context=null,this._buffer=null,this.externalNode=null,this.onDecoded.dispose(),this.onPlay.dispose(),this.onPause.dispose(),this.onResume.dispose(),this.onLoop.dispose(),this.onStop.dispose(),this.onMute.dispose(),this.onMarkerComplete.dispose())}},c.Sound.prototype.constructor=c.Sound,Object.defineProperty(c.Sound.prototype,"isDecoding",{get:function(){return this.game.cache.getSound(this.key).isDecoding}}),Object.defineProperty(c.Sound.prototype,"isDecoded",{get:function(){return this.game.cache.isSoundDecoded(this.key)}}),Object.defineProperty(c.Sound.prototype,"mute",{get:function(){return this._muted||this.game.sound.mute},set:function(a){a=a||!1,a!==this._muted&&(a?(this._muted=!0,this._muteVolume=this._tempVolume,this.usingWebAudio?this.gainNode.gain.value=0:this.usingAudioTag&&this._sound&&(this._sound.volume=0)):(this._muted=!1,this.usingWebAudio?this.gainNode.gain.value=this._muteVolume:this.usingAudioTag&&this._sound&&(this._sound.volume=this._muteVolume)),this.onMute.dispatch(this))}}),Object.defineProperty(c.Sound.prototype,"volume",{get:function(){return this._volume},set:function(a){return this.game.device.firefox&&this.usingAudioTag&&(a=this.game.math.clamp(a,0,1)),this._muted?void(this._muteVolume=a):(this._tempVolume=a,this._volume=a,void(this.usingWebAudio?this.gainNode.gain.value=a:this.usingAudioTag&&this._sound&&(this._sound.volume=a)))}}),c.SoundManager=function(a){this.game=a,this.onSoundDecode=new c.Signal,this.onVolumeChange=new c.Signal,this.onMute=new c.Signal,this.onUnMute=new c.Signal,this.context=null,this.usingWebAudio=!1,this.usingAudioTag=!1,this.noAudio=!1,this.connectToMaster=!0,this.touchLocked=!1,this.channels=32,this._codeMuted=!1,this._muted=!1,this._unlockSource=null,this._volume=1,this._sounds=[],this._watchList=new c.ArraySet,this._watching=!1,this._watchCallback=null,this._watchContext=null},c.SoundManager.prototype={boot:function(){if(this.game.device.iOS&&this.game.device.webAudio===!1&&(this.channels=1),window.PhaserGlobal){if(window.PhaserGlobal.disableAudio===!0)return this.noAudio=!0,void(this.touchLocked=!1);if(window.PhaserGlobal.disableWebAudio===!0)return this.usingAudioTag=!0,void(this.touchLocked=!1)}if(window.PhaserGlobal&&window.PhaserGlobal.audioContext)this.context=window.PhaserGlobal.audioContext;else if(window.AudioContext)try{this.context=new window.AudioContext}catch(a){this.context=null,this.usingWebAudio=!1,this.touchLocked=!1}else if(window.webkitAudioContext)try{this.context=new window.webkitAudioContext}catch(a){this.context=null,this.usingWebAudio=!1,this.touchLocked=!1}if(null===this.context){if(void 0===window.Audio)return void(this.noAudio=!0);this.usingAudioTag=!0}else this.usingWebAudio=!0,this.masterGain=void 0===this.context.createGain?this.context.createGainNode():this.context.createGain(),this.masterGain.gain.value=1,this.masterGain.connect(this.context.destination);this.noAudio||(!this.game.device.cocoonJS&&this.game.device.iOS||window.PhaserGlobal&&window.PhaserGlobal.fakeiOSTouchLock)&&this.setTouchLock()},setTouchLock:function(){this.game.input.touch.addTouchLockCallback(this.unlock,this),this.touchLocked=!0},unlock:function(){if(this.noAudio||!this.touchLocked||null!==this._unlockSource)return!0;if(this.usingAudioTag)this.touchLocked=!1,this._unlockSource=null;else if(this.usingWebAudio){var a=this.context.createBuffer(1,1,22050);this._unlockSource=this.context.createBufferSource(),this._unlockSource.buffer=a,this._unlockSource.connect(this.context.destination),void 0===this._unlockSource.start?this._unlockSource.noteOn(0):this._unlockSource.start(0)}return!0},stopAll:function(){if(!this.noAudio)for(var a=0;aa?a=0:a>1&&(a=1),this._volume!==a){if(this._volume=a,this.usingWebAudio)this.masterGain.gain.value=a;else for(var b=0;b-1},reset:function(){this.list.length=0},remove:function(a){var b=this.list.indexOf(a);return b>-1?(this.list.splice(b,1),a):void 0},setAll:function(a,b){for(var c=this.list.length;c--;)this.list[c]&&(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)},removeAll:function(a){void 0===a&&(a=!1);for(var b=this.list.length;b--;)if(this.list[b]){var c=this.remove(this.list[b]);a&&c.destroy()}this.position=0,this.list=[]}},Object.defineProperty(c.ArraySet.prototype,"total",{get:function(){return this.list.length}}),Object.defineProperty(c.ArraySet.prototype,"first",{get:function(){return this.position=0,this.list.length>0?this.list[0]:null}}),Object.defineProperty(c.ArraySet.prototype,"next",{get:function(){return this.position0;b--){var c=Math.floor(Math.random()*(b+1)),d=a[b];a[b]=a[c],a[c]=d}return a},transposeMatrix:function(a){for(var b=a.length,c=a[0].length,d=new Array(c),e=0;c>e;e++){d[e]=new Array(b);for(var f=b-1;f>-1;f--)d[e][f]=a[f][e]}return d},rotateMatrix:function(a,b){if("string"!=typeof b&&(b=(b%360+360)%360),90===b||-270===b||"rotateLeft"===b)a=c.ArrayUtils.transposeMatrix(a),a=a.reverse();else if(-90===b||270===b||"rotateRight"===b)a=a.reverse(),a=c.ArrayUtils.transposeMatrix(a);else if(180===Math.abs(b)||"rotate180"===b){for(var d=0;d=e-a?e:d},rotate:function(a){var b=a.shift();return a.push(b),b},numberArray:function(a,b){for(var c=[],d=a;b>=d;d++)c.push(d);return c},numberArrayStep:function(a,b,d){a=+a||0;var e=typeof b;"number"!==e&&"string"!==e||!d||d[b]!==a||(b=d=null),d=null==d?1:+d||0,null===b?(b=a,a=0):b=+b||0;for(var f=-1,g=Math.max(c.Math.roundAwayFromZero((b-a)/(d||1)),0),h=new Array(g);++f>>0:(a<<24|b<<16|d<<8|e)>>>0},unpackPixel:function(a,b,d,e){return(void 0===b||null===b)&&(b=c.Color.createColor()),(void 0===d||null===d)&&(d=!1),(void 0===e||null===e)&&(e=!1),c.Device.LITTLE_ENDIAN?(b.a=(4278190080&a)>>>24,b.b=(16711680&a)>>>16,b.g=(65280&a)>>>8,b.r=255&a):(b.r=(4278190080&a)>>>24,b.g=(16711680&a)>>>16,b.b=(65280&a)>>>8,b.a=255&a),b.color=a,b.rgba="rgba("+b.r+","+b.g+","+b.b+","+b.a/255+")",d&&c.Color.RGBtoHSL(b.r,b.g,b.b,b),e&&c.Color.RGBtoHSV(b.r,b.g,b.b,b),b},fromRGBA:function(a,b){return b||(b=c.Color.createColor()),b.r=(4278190080&a)>>>24,b.g=(16711680&a)>>>16,b.b=(65280&a)>>>8,b.a=255&a,b.rgba="rgba("+b.r+","+b.g+","+b.b+","+b.a+")",b},toRGBA:function(a,b,c,d){return a<<24|b<<16|c<<8|d},RGBtoHSL:function(a,b,d,e){e||(e=c.Color.createColor(a,b,d,1)),a/=255,b/=255,d/=255;var f=Math.min(a,b,d),g=Math.max(a,b,d);if(e.h=0,e.s=0,e.l=(g+f)/2,g!==f){var h=g-f;e.s=e.l>.5?h/(2-g-f):h/(g+f),g===a?e.h=(b-d)/h+(d>b?6:0):g===b?e.h=(d-a)/h+2:g===d&&(e.h=(a-b)/h+4),e.h/=6}return e},HSLtoRGB:function(a,b,d,e){if(e?(e.r=d,e.g=d,e.b=d):e=c.Color.createColor(d,d,d),0!==b){var f=.5>d?d*(1+b):d+b-d*b,g=2*d-f;e.r=c.Color.hueToColor(g,f,a+1/3),e.g=c.Color.hueToColor(g,f,a),e.b=c.Color.hueToColor(g,f,a-1/3)}return e.r=Math.floor(255*e.r|0),e.g=Math.floor(255*e.g|0),e.b=Math.floor(255*e.b|0),c.Color.updateColor(e),e},RGBtoHSV:function(a,b,d,e){e||(e=c.Color.createColor(a,b,d,255)),a/=255,b/=255,d/=255;var f=Math.min(a,b,d),g=Math.max(a,b,d),h=g-f;return e.h=0,e.s=0===g?0:h/g,e.v=g,g!==f&&(g===a?e.h=(b-d)/h+(d>b?6:0):g===b?e.h=(d-a)/h+2:g===d&&(e.h=(a-b)/h+4),e.h/=6),e},HSVtoRGB:function(a,b,d,e){void 0===e&&(e=c.Color.createColor(0,0,0,1,a,b,0,d));var f,g,h,i=Math.floor(6*a),j=6*a-i,k=d*(1-b),l=d*(1-j*b),m=d*(1-(1-j)*b);switch(i%6){case 0:f=d,g=m,h=k;break;case 1:f=l,g=d,h=k;break;case 2:f=k,g=d,h=m;break;case 3:f=k,g=l,h=d;break;case 4:f=m,g=k,h=d;break;case 5:f=d,g=k,h=l}return e.r=Math.floor(255*f),e.g=Math.floor(255*g),e.b=Math.floor(255*h),c.Color.updateColor(e),e},hueToColor:function(a,b,c){return 0>c&&(c+=1),c>1&&(c-=1),1/6>c?a+6*(b-a)*c:.5>c?b:2/3>c?a+(b-a)*(2/3-c)*6:a},createColor:function(a,b,d,e,f,g,h,i){var j={r:a||0,g:b||0,b:d||0,a:e||1,h:f||0,s:g||0,l:h||0,v:i||0,color:0,color32:0,rgba:""};return c.Color.updateColor(j)},updateColor:function(a){return a.rgba="rgba("+a.r.toString()+","+a.g.toString()+","+a.b.toString()+","+a.a.toString()+")",a.color=c.Color.getColor(a.r,a.g,a.b),a.color32=c.Color.getColor32(a.a,a.r,a.g,a.b),a},getColor32:function(a,b,c,d){return a<<24|b<<16|c<<8|d},getColor:function(a,b,c){return a<<16|b<<8|c},RGBtoString:function(a,b,d,e,f){return void 0===e&&(e=255),void 0===f&&(f="#"),"#"===f?"#"+((1<<24)+(a<<16)+(b<<8)+d).toString(16).slice(1):"0x"+c.Color.componentToHex(e)+c.Color.componentToHex(a)+c.Color.componentToHex(b)+c.Color.componentToHex(d)},hexToRGB:function(a){var b=c.Color.hexToColor(a);return b?c.Color.getColor32(b.a,b.r,b.g,b.b):void 0},hexToColor:function(a,b){a=a.replace(/^(?:#|0x)?([a-f\d])([a-f\d])([a-f\d])$/i,function(a,b,c,d){return b+b+c+c+d+d});var d=/^(?:#|0x)?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i.exec(a);if(d){var e=parseInt(d[1],16),f=parseInt(d[2],16),g=parseInt(d[3],16);b?(b.r=e,b.g=f,b.b=g):b=c.Color.createColor(e,f,g)}return b},webToColor:function(a,b){b||(b=c.Color.createColor());var d=/^rgba?\(\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d+)\s*(?:,\s*(\d+(?:\.\d+)?))?\s*\)$/.exec(a);return d&&(b.r=parseInt(d[1],10),b.g=parseInt(d[2],10),b.b=parseInt(d[3],10),b.a=void 0!==d[4]?parseFloat(d[4]):1,c.Color.updateColor(b)),b},valueToColor:function(a,b){if(b||(b=c.Color.createColor()),"string"==typeof a)return 0===a.indexOf("rgb")?c.Color.webToColor(a,b):(b.a=1,c.Color.hexToColor(a,b));if("number"==typeof a){var d=c.Color.getRGB(a);return b.r=d.r,b.g=d.g,b.b=d.b,b.a=d.a/255,b}return b},componentToHex:function(a){var b=a.toString(16);return 1==b.length?"0"+b:b},HSVColorWheel:function(a,b){void 0===a&&(a=1),void 0===b&&(b=1);for(var d=[],e=0;359>=e;e++)d.push(c.Color.HSVtoRGB(e/359,a,b));return d},HSLColorWheel:function(a,b){void 0===a&&(a=.5),void 0===b&&(b=.5);for(var d=[],e=0;359>=e;e++)d.push(c.Color.HSLtoRGB(e/359,a,b));return d},interpolateColor:function(a,b,d,e,f){void 0===f&&(f=255);var g=c.Color.getRGB(a),h=c.Color.getRGB(b),i=(h.red-g.red)*e/d+g.red,j=(h.green-g.green)*e/d+g.green,k=(h.blue-g.blue)*e/d+g.blue;return c.Color.getColor32(f,i,j,k)},interpolateColorWithRGB:function(a,b,d,e,f,g){var h=c.Color.getRGB(a),i=(b-h.red)*g/f+h.red,j=(d-h.green)*g/f+h.green,k=(e-h.blue)*g/f+h.blue;return c.Color.getColor(i,j,k)},interpolateRGB:function(a,b,d,e,f,g,h,i){var j=(e-a)*i/h+a,k=(f-b)*i/h+b,l=(g-d)*i/h+d;return c.Color.getColor(j,k,l)},getRandomColor:function(a,b,d){if(void 0===a&&(a=0),void 0===b&&(b=255),void 0===d&&(d=255),b>255||a>b)return c.Color.getColor(255,255,255);var e=a+Math.round(Math.random()*(b-a)),f=a+Math.round(Math.random()*(b-a)),g=a+Math.round(Math.random()*(b-a));return c.Color.getColor32(d,e,f,g)},getRGB:function(a){return a>16777215?{alpha:a>>>24,red:a>>16&255,green:a>>8&255,blue:255&a,a:a>>>24,r:a>>16&255,g:a>>8&255,b:255&a}:{alpha:255,red:a>>16&255,green:a>>8&255,blue:255&a,a:255,r:a>>16&255,g:a>>8&255,b:255&a}},getWebRGB:function(a){if("object"==typeof a)return"rgba("+a.r.toString()+","+a.g.toString()+","+a.b.toString()+","+(a.a/255).toString()+")";var b=c.Color.getRGB(a);return"rgba("+b.r.toString()+","+b.g.toString()+","+b.b.toString()+","+(b.a/255).toString()+")"},getAlpha:function(a){return a>>>24},getAlphaFloat:function(a){return(a>>>24)/255},getRed:function(a){return a>>16&255},getGreen:function(a){return a>>8&255},getBlue:function(a){return 255&a},blendNormal:function(a){return a},blendLighten:function(a,b){return b>a?b:a},blendDarken:function(a,b){return b>a?a:b},blendMultiply:function(a,b){return a*b/255},blendAverage:function(a,b){return(a+b)/2},blendAdd:function(a,b){return Math.min(255,a+b)},blendSubtract:function(a,b){return Math.max(0,a+b-255)},blendDifference:function(a,b){return Math.abs(a-b)},blendNegation:function(a,b){return 255-Math.abs(255-a-b)},blendScreen:function(a,b){return 255-((255-a)*(255-b)>>8)},blendExclusion:function(a,b){return a+b-2*a*b/255},blendOverlay:function(a,b){return 128>b?2*a*b/255:255-2*(255-a)*(255-b)/255},blendSoftLight:function(a,b){return 128>b?2*((a>>1)+64)*(b/255):255-2*(255-((a>>1)+64))*(255-b)/255},blendHardLight:function(a,b){return c.Color.blendOverlay(b,a)},blendColorDodge:function(a,b){return 255===b?b:Math.min(255,(a<<8)/(255-b))},blendColorBurn:function(a,b){return 0===b?b:Math.max(0,255-(255-a<<8)/b)},blendLinearDodge:function(a,b){return c.Color.blendAdd(a,b)},blendLinearBurn:function(a,b){return c.Color.blendSubtract(a,b)},blendLinearLight:function(a,b){return 128>b?c.Color.blendLinearBurn(a,2*b):c.Color.blendLinearDodge(a,2*(b-128))},blendVividLight:function(a,b){return 128>b?c.Color.blendColorBurn(a,2*b):c.Color.blendColorDodge(a,2*(b-128))},blendPinLight:function(a,b){return 128>b?c.Color.blendDarken(a,2*b):c.Color.blendLighten(a,2*(b-128))},blendHardMix:function(a,b){return c.Color.blendVividLight(a,b)<128?0:255},blendReflect:function(a,b){return 255===b?b:Math.min(255,a*a/(255-b))},blendGlow:function(a,b){return c.Color.blendReflect(b,a)},blendPhoenix:function(a,b){return Math.min(a,b)-Math.max(a,b)+255}},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.Physics=function(a,b){b=b||{},this.game=a,this.config=b,this.arcade=null,this.p2=null,this.ninja=null,this.box2d=null,this.chipmunk=null,this.matter=null,this.parseConfig()},c.Physics.ARCADE=0,c.Physics.P2JS=1,c.Physics.NINJA=2,c.Physics.BOX2D=3,c.Physics.CHIPMUNK=4,c.Physics.MATTERJS=5,c.Physics.prototype={parseConfig:function(){this.config.hasOwnProperty("arcade")&&this.config.arcade!==!0||!c.Physics.hasOwnProperty("Arcade")||(this.arcade=new c.Physics.Arcade(this.game)),this.config.hasOwnProperty("ninja")&&this.config.ninja===!0&&c.Physics.hasOwnProperty("Ninja")&&(this.ninja=new c.Physics.Ninja(this.game)),this.config.hasOwnProperty("p2")&&this.config.p2===!0&&c.Physics.hasOwnProperty("P2")&&(this.p2=new c.Physics.P2(this.game,this.config)),this.config.hasOwnProperty("box2d")&&this.config.box2d===!0&&c.Physics.hasOwnProperty("BOX2D")&&(this.box2d=new c.Physics.BOX2D(this.game,this.config)),this.config.hasOwnProperty("matter")&&this.config.matter===!0&&c.Physics.hasOwnProperty("Matter")&&(this.matter=new c.Physics.Matter(this.game,this.config))},startSystem:function(a){a===c.Physics.ARCADE?this.arcade=new c.Physics.Arcade(this.game):a===c.Physics.P2JS?null===this.p2?this.p2=new c.Physics.P2(this.game,this.config):this.p2.reset():a===c.Physics.NINJA?this.ninja=new c.Physics.Ninja(this.game):a===c.Physics.BOX2D?null===this.box2d?this.box2d=new c.Physics.Box2D(this.game,this.config):this.box2d.reset():a===c.Physics.MATTERJS&&(null===this.matter?this.matter=new c.Physics.Matter(this.game,this.config):this.matter.reset())},enable:function(a,b,d){void 0===b&&(b=c.Physics.ARCADE),void 0===d&&(d=!1),b===c.Physics.ARCADE?this.arcade.enable(a):b===c.Physics.P2JS&&this.p2?this.p2.enable(a,d):b===c.Physics.NINJA&&this.ninja?this.ninja.enableAABB(a):b===c.Physics.BOX2D&&this.box2d?this.box2d.enable(a):b===c.Physics.MATTERJS&&this.matter&&this.matter.enable(a)},preUpdate:function(){this.p2&&this.p2.preUpdate(),this.box2d&&this.box2d.preUpdate(),this.matter&&this.matter.preUpdate()},update:function(){this.p2&&this.p2.update(),this.box2d&&this.box2d.update(),this.matter&&this.matter.update()},setBoundsToWorld:function(){this.arcade&&this.arcade.setBoundsToWorld(),this.ninja&&this.ninja.setBoundsToWorld(),this.p2&&this.p2.setBoundsToWorld(),this.box2d&&this.box2d.setBoundsToWorld(),this.matter&&this.matter.setBoundsToWorld()},clear:function(){this.p2&&this.p2.clear(),this.box2d&&this.box2d.clear(),this.matter&&this.matter.clear()},reset:function(){this.p2&&this.p2.reset(),this.box2d&&this.box2d.reset(),this.matter&&this.matter.reset()},destroy:function(){this.p2&&this.p2.destroy(),this.box2d&&this.box2d.destroy(),this.matter&&this.matter.destroy(),this.arcade=null,this.ninja=null,this.p2=null,this.box2d=null,this.matter=null}},c.Physics.prototype.constructor=c.Physics,c.Particles=function(a){this.game=a,this.emitters={},this.ID=0},c.Particles.prototype={add:function(a){return this.emitters[a.name]=a,a},remove:function(a){delete this.emitters[a.name]},update:function(){for(var a in this.emitters)this.emitters[a].exists&&this.emitters[a].update()}},c.Particles.prototype.constructor=c.Particles,c.Video=function(a,b,d){if(void 0===b&&(b=null),void 0===d&&(d=null),this.game=a,this.key=b,this.width=0,this.height=0,this.type=c.VIDEO,this.disableTextureUpload=!1,this.touchLocked=!1,this.onPlay=new c.Signal,this.onChangeSource=new c.Signal,this.onComplete=new c.Signal,this.onAccess=new c.Signal,this.onError=new c.Signal,this.onTimeout=new c.Signal,this.timeout=15e3,this._timeOutID=null,this.video=null,this.videoStream=null,this.isStreaming=!1,this.retryLimit=20,this.retry=0,this.retryInterval=500,this._retryID=null,this._codeMuted=!1,this._muted=!1,this._codePaused=!1,this._paused=!1,this._pending=!1,this._autoplay=!1,b&&this.game.cache.checkVideoKey(b)){var e=this.game.cache.getVideo(b);e.isBlob?this.createVideoFromBlob(e.data):this.video=e.data,this.width=this.video.videoWidth,this.height=this.video.videoHeight}else d&&this.createVideoFromURL(d,!1);this.video&&!d?(this.baseTexture=new PIXI.BaseTexture(this.video),this.baseTexture.forceLoaded(this.width,this.height)):(this.baseTexture=new PIXI.BaseTexture(PIXI.TextureCache.__default.baseTexture.source),this.baseTexture.forceLoaded(this.width,this.height)),this.texture=new PIXI.Texture(this.baseTexture),this.textureFrame=new c.Frame(0,0,0,this.width,this.height,"video"),this.texture.setFrame(this.textureFrame),this.texture.valid=!1,null!==b&&this.video&&(this.texture.valid=this.video.canplay),this.snapshot=null,c.BitmapData&&(this.snapshot=new c.BitmapData(this.game,"",this.width,this.height)),!this.game.device.cocoonJS&&(this.game.device.iOS||this.game.device.android)||window.PhaserGlobal&&window.PhaserGlobal.fakeiOSTouchLock?this.setTouchLock():e&&(e.locked=!1)},c.Video.prototype={connectToMediaStream:function(a,b){return a&&b&&(this.video=a,this.videoStream=b,this.isStreaming=!0,this.baseTexture.source=this.video,this.updateTexture(null,this.video.videoWidth,this.video.videoHeight),this.onAccess.dispatch(this)),this},startMediaStream:function(a,b,c){if(void 0===a&&(a=!1),void 0===b&&(b=null),void 0===c&&(c=null),!this.game.device.getUserMedia)return this.onError.dispatch(this,"No getUserMedia"),!1;null!==this.videoStream&&this.videoStream.stop(),this.removeVideoElement(),this.video=document.createElement("video"),this.video.setAttribute("autoplay","autoplay"),null!==b&&(this.video.width=b),null!==c&&(this.video.height=c),this._timeOutID=window.setTimeout(this.getUserMediaTimeout.bind(this),this.timeout);try{navigator.getUserMedia({audio:a,video:!0},this.getUserMediaSuccess.bind(this),this.getUserMediaError.bind(this))}catch(d){this.getUserMediaError(d)}return this},getUserMediaTimeout:function(){clearTimeout(this._timeOutID),this.onTimeout.dispatch(this)},getUserMediaError:function(a){clearTimeout(this._timeOutID),this.onError.dispatch(this,a)},getUserMediaSuccess:function(a){clearTimeout(this._timeOutID),this.videoStream=a,void 0!==this.video.mozSrcObject?this.video.mozSrcObject=a:this.video.src=window.URL&&window.URL.createObjectURL(a)||a;var b=this;this.video.onloadeddata=function(){function a(){if(c>0)if(b.video.videoWidth>0){var d=b.video.videoWidth,e=b.video.videoHeight;isNaN(b.video.videoHeight)&&(e=d/(4/3)),b.video.play(),b.isStreaming=!0,b.baseTexture.source=b.video,b.updateTexture(null,d,e),b.onAccess.dispatch(b)}else window.setTimeout(a,500);else console.warn("Unable to connect to video stream. Webcam error?");c--}var c=10;a()}},createVideoFromBlob:function(a){var b=this;return this.video=document.createElement("video"),this.video.controls=!1,this.video.setAttribute("autoplay","autoplay"),this.video.addEventListener("loadeddata",function(a){b.updateTexture(a)},!0),this.video.src=window.URL.createObjectURL(a),this.video.canplay=!0,this},createVideoFromURL:function(a,b){return void 0===b&&(b=!1),this.texture&&(this.texture.valid=!1),this.video=document.createElement("video"),this.video.controls=!1,b&&this.video.setAttribute("autoplay","autoplay"),this.video.src=a,this.video.canplay=!0,this.video.load(),this.retry=this.retryLimit,this._retryID=window.setTimeout(this.checkVideoProgress.bind(this),this.retryInterval),this.key=a,this},updateTexture:function(a,b,c){var d=!1;(void 0===b||null===b)&&(b=this.video.videoWidth,d=!0),(void 0===c||null===c)&&(c=this.video.videoHeight),this.width=b,this.height=c,this.baseTexture.source!==this.video&&(this.baseTexture.source=this.video),this.baseTexture.forceLoaded(b,c),this.texture.frame.resize(b,c),this.texture.width=b,this.texture.height=c,this.texture.valid=!0,this.snapshot&&this.snapshot.resize(b,c),d&&null!==this.key&&(this.onChangeSource.dispatch(this,b,c),this._autoplay&&(this.video.play(),this.onPlay.dispatch(this,this.loop,this.playbackRate)))},complete:function(){this.onComplete.dispatch(this)},play:function(a,b){return void 0===a&&(a=!1),void 0===b&&(b=1),this.game.sound.onMute&&(this.game.sound.onMute.add(this.setMute,this),this.game.sound.onUnMute.add(this.unsetMute,this),this.game.sound.mute&&this.setMute()),this.game.onPause.add(this.setPause,this),this.game.onResume.add(this.setResume,this),this.video.addEventListener("ended",this.complete.bind(this),!0),this.video.loop=a?"loop":"",this.video.playbackRate=b,this.touchLocked?this._pending=!0:(this._pending=!1,null!==this.key&&(4!==this.video.readyState?(this.retry=this.retryLimit,this._retryID=window.setTimeout(this.checkVideoProgress.bind(this),this.retryInterval)):this.video.addEventListener("playing",this.playHandler.bind(this),!0)),this.video.play(),this.onPlay.dispatch(this,a,b)),this},playHandler:function(){this.video.removeEventListener("playing",this.playHandler.bind(this)),this.updateTexture()},stop:function(){return this.game.sound.onMute&&(this.game.sound.onMute.remove(this.setMute,this),this.game.sound.onUnMute.remove(this.unsetMute,this)),this.game.onPause.remove(this.setPause,this),this.game.onResume.remove(this.setResume,this),this.isStreaming?(this.video.mozSrcObject?(this.video.mozSrcObject.stop(),this.video.src=null):(this.video.src="",this.videoStream.stop()),this.videoStream=null,this.isStreaming=!1):(this.video.removeEventListener("ended",this.complete.bind(this)),this.touchLocked?this._pending=!1:this.video.pause()),this},add:function(a){if(Array.isArray(a))for(var b=0;b0?this._retryID=window.setTimeout(this.checkVideoProgress.bind(this),this.retryInterval):console.warn("Phaser.Video: Unable to start downloading video in time",this.isStreaming))},setTouchLock:function(){this.game.input.touch.addTouchLockCallback(this.unlock,this),this.touchLocked=!0},unlock:function(){if(this.touchLocked=!1,this.video.play(),this.onPlay.dispatch(this,this.loop,this.playbackRate),this.key){var a=this.game.cache.getVideo(this.key);a&&!a.isBlob&&(a.locked=!1)}return!0},grab:function(a,b,c){return void 0===a&&(a=!1),void 0===b&&(b=1),void 0===c&&(c=null),null===this.snapshot?void console.warn("Video.grab cannot run because Phaser.BitmapData is unavailable"):(a&&this.snapshot.cls(),this.snapshot.copy(this.video,0,0,this.width,this.height,0,0,this.width,this.height,0,0,0,1,1,b,c),this.snapshot)},removeVideoElement:function(){if(this.video){for(this.video.parentNode&&this.video.parentNode.removeChild(this.video);this.video.hasChildNodes();)this.video.removeChild(this.video.firstChild);this.video.removeAttribute("autoplay"),this.video.removeAttribute("src"),this.video=null}},destroy:function(){this.stop(),this.removeVideoElement(),this.touchLocked&&this.game.input.touch.removeTouchLockCallback(this.unlock,this),this._retryID&&window.clearTimeout(this._retryID)}},Object.defineProperty(c.Video.prototype,"currentTime",{get:function(){return this.video?this.video.currentTime:0},set:function(a){this.video.currentTime=a}}),Object.defineProperty(c.Video.prototype,"duration",{get:function(){return this.video?this.video.duration:0}}),Object.defineProperty(c.Video.prototype,"progress",{get:function(){return this.video?this.video.currentTime/this.video.duration:0}}),Object.defineProperty(c.Video.prototype,"mute",{get:function(){return this._muted},set:function(a){if(a=a||null){if(this._muted)return;this._codeMuted=!0,this.setMute()}else{if(!this._muted)return;this._codeMuted=!1,this.unsetMute()}}}),Object.defineProperty(c.Video.prototype,"paused",{get:function(){return this._paused},set:function(a){if(a=a||null,!this.touchLocked)if(a){if(this._paused)return;this._codePaused=!0,this.setPause()}else{if(!this._paused)return;this._codePaused=!1,this.setResume()}}}),Object.defineProperty(c.Video.prototype,"volume",{get:function(){return this.video?this.video.volume:1},set:function(a){0>a?a=0:a>1&&(a=1),this.video&&(this.video.volume=a)}}),Object.defineProperty(c.Video.prototype,"playbackRate",{get:function(){return this.video?this.video.playbackRate:1},set:function(a){this.video&&(this.video.playbackRate=a)}}),Object.defineProperty(c.Video.prototype,"loop",{get:function(){return this.video?this.video.loop:!1},set:function(a){a&&this.video?this.video.loop="loop":this.video&&(this.video.loop="")}}),Object.defineProperty(c.Video.prototype,"playing",{get:function(){return!(this.video.paused&&this.video.ended)}}),c.Video.prototype.constructor=c.Video,void 0===PIXI.blendModes&&(PIXI.blendModes=c.blendModes),void 0===PIXI.scaleModes&&(PIXI.scaleModes=c.scaleModes),void 0===PIXI.Texture.emptyTexture&&(PIXI.Texture.emptyTexture=new PIXI.Texture(new PIXI.BaseTexture)),void 0===PIXI.DisplayObject._tempMatrix&&(PIXI.DisplayObject._tempMatrix=new PIXI.Matrix),void 0===PIXI.RenderTexture.tempMatrix&&(PIXI.RenderTexture.tempMatrix=new PIXI.Matrix),void 0===PIXI.Graphics.POLY&&(PIXI.Graphics.POLY=c.POLYGON,PIXI.Graphics.RECT=c.RECTANGLE,PIXI.Graphics.CIRC=c.CIRCLE,PIXI.Graphics.ELIP=c.ELLIPSE,PIXI.Graphics.RREC=c.ROUNDEDRECTANGLE),PIXI.TextureSilentFail=!0,"undefined"!=typeof exports?("undefined"!=typeof module&&module.exports&&(exports=module.exports=c),exports.Phaser=c):"undefined"!=typeof define&&define.amd?define("Phaser",function(){return b.Phaser=c}()):b.Phaser=c}).call(this); +a.bindFramebuffer(a.FRAMEBUFFER,i.frameBuffer),a.activeTexture(a.TEXTURE0),a.bindTexture(a.TEXTURE_2D,h.texture),this.applyFilterPass(k,d,d.width,d.height);var l=h;h=i,i=l}a.enable(a.BLEND),e=h,this.texturePool.push(i)}var m=c.filterPasses[c.filterPasses.length-1];this.offsetX-=d.x,this.offsetY-=d.y;var n=this.width,o=this.height,p=0,q=0,r=this.buffer;if(0===this.filterStack.length)a.colorMask(!0,!0,!0,!0);else{var s=this.filterStack[this.filterStack.length-1];d=s._filterArea,n=d.width,o=d.height,p=d.x,q=d.y,r=s._glFilterTexture.frameBuffer}f.x=n/2,f.y=-o/2,g.x=p,g.y=q,d=c._filterArea;var t=d.x-p,u=d.y-q;a.bindBuffer(a.ARRAY_BUFFER,this.vertexBuffer),this.vertexArray[0]=t,this.vertexArray[1]=u+d.height,this.vertexArray[2]=t+d.width,this.vertexArray[3]=u+d.height,this.vertexArray[4]=t,this.vertexArray[5]=u,this.vertexArray[6]=t+d.width,this.vertexArray[7]=u,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),a.viewport(0,0,n*this.renderSession.resolution,o*this.renderSession.resolution),a.bindFramebuffer(a.FRAMEBUFFER,r),a.activeTexture(a.TEXTURE0),a.bindTexture(a.TEXTURE_2D,e.texture),this.applyFilterPass(m,d,n,o),this.texturePool.push(e),c._glFilterTexture=null},b.WebGLFilterManager.prototype.applyFilterPass=function(a,c,d,e){var f=this.gl,g=a.shaders[f.id];g||(g=new b.PixiShader(f),g.fragmentSrc=a.fragmentSrc,g.uniforms=a.uniforms,g.init(),a.shaders[f.id]=g),this.renderSession.shaderManager.setShader(g),f.uniform2f(g.projectionVector,d/2,-e/2),f.uniform2f(g.offsetVector,0,0),a.uniforms.dimensions&&(a.uniforms.dimensions.value[0]=this.width,a.uniforms.dimensions.value[1]=this.height,a.uniforms.dimensions.value[2]=this.vertexArray[0],a.uniforms.dimensions.value[3]=this.vertexArray[5]),g.syncUniforms(),f.bindBuffer(f.ARRAY_BUFFER,this.vertexBuffer),f.vertexAttribPointer(g.aVertexPosition,2,f.FLOAT,!1,0,0),f.bindBuffer(f.ARRAY_BUFFER,this.uvBuffer),f.vertexAttribPointer(g.aTextureCoord,2,f.FLOAT,!1,0,0),f.bindBuffer(f.ARRAY_BUFFER,this.colorBuffer),f.vertexAttribPointer(g.colorAttribute,2,f.FLOAT,!1,0,0),f.bindBuffer(f.ELEMENT_ARRAY_BUFFER,this.indexBuffer),f.drawElements(f.TRIANGLES,6,f.UNSIGNED_SHORT,0),this.renderSession.drawCount++},b.WebGLFilterManager.prototype.initShaderBuffers=function(){var a=this.gl;this.vertexBuffer=a.createBuffer(),this.uvBuffer=a.createBuffer(),this.colorBuffer=a.createBuffer(),this.indexBuffer=a.createBuffer(),this.vertexArray=new b.Float32Array([0,0,1,0,0,1,1,1]),a.bindBuffer(a.ARRAY_BUFFER,this.vertexBuffer),a.bufferData(a.ARRAY_BUFFER,this.vertexArray,a.STATIC_DRAW),this.uvArray=new b.Float32Array([0,0,1,0,0,1,1,1]),a.bindBuffer(a.ARRAY_BUFFER,this.uvBuffer),a.bufferData(a.ARRAY_BUFFER,this.uvArray,a.STATIC_DRAW),this.colorArray=new b.Float32Array([1,16777215,1,16777215,1,16777215,1,16777215]),a.bindBuffer(a.ARRAY_BUFFER,this.colorBuffer),a.bufferData(a.ARRAY_BUFFER,this.colorArray,a.STATIC_DRAW),a.bindBuffer(a.ELEMENT_ARRAY_BUFFER,this.indexBuffer),a.bufferData(a.ELEMENT_ARRAY_BUFFER,new Uint16Array([0,1,2,1,3,2]),a.STATIC_DRAW)},b.WebGLFilterManager.prototype.destroy=function(){var a=this.gl;this.filterStack=null,this.offsetX=0,this.offsetY=0;for(var b=0;bB?B:A,c.beginPath(),c.moveTo(w,x+A),c.lineTo(w,x+z-A),c.quadraticCurveTo(w,x+z,w+A,x+z),c.lineTo(w+y-A,x+z),c.quadraticCurveTo(w+y,x+z,w+y,x+z-A),c.lineTo(w+y,x+A),c.quadraticCurveTo(w+y,x,w+y-A,x),c.lineTo(w+A,x),c.quadraticCurveTo(w,x,w,x+A),c.closePath(),(f.fillColor||0===f.fillColor)&&(c.globalAlpha=f.fillAlpha*d,c.fillStyle="#"+("00000"+(0|h).toString(16)).substr(-6),c.fill()),f.lineWidth&&(c.globalAlpha=f.lineAlpha*d,c.strokeStyle="#"+("00000"+(0|i).toString(16)).substr(-6),c.stroke())}}},b.CanvasGraphics.renderGraphicsMask=function(a,c){var d=a.graphicsData.length;if(0!==d){c.beginPath();for(var e=0;d>e;e++){var f=a.graphicsData[e],g=f.shape;if(f.type===b.Graphics.POLY){var h=g.points;c.moveTo(h[0],h[1]);for(var i=1;iz?z:y,c.moveTo(u,v+y),c.lineTo(u,v+x-y),c.quadraticCurveTo(u,v+x,u+y,v+x),c.lineTo(u+w-y,v+x),c.quadraticCurveTo(u+w,v+x,u+w,v+x-y),c.lineTo(u+w,v+y),c.quadraticCurveTo(u+w,v,u+w-y,v),c.lineTo(u+y,v),c.quadraticCurveTo(u,v,u,v+y),c.closePath()}}}},b.CanvasGraphics.updateGraphicsTint=function(a){if(16777215!==a.tint)for(var b=(a.tint>>16&255)/255,c=(a.tint>>8&255)/255,d=(255&a.tint)/255,e=0;e>16&255)/255*b*255<<16)+((g>>8&255)/255*c*255<<8)+(255&g)/255*d*255,f._lineTint=((h>>16&255)/255*b*255<<16)+((h>>8&255)/255*c*255<<8)+(255&h)/255*d*255}},b.BaseTextureCache={},b.BaseTextureCacheIdGenerator=0,b.BaseTexture=function(a,c){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.mipmap=!1,this._dirty=[!0,!0,!0,!0],a&&((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()),this.imageUrl=null,this._powerOf2=!1)},b.BaseTexture.prototype.constructor=b.BaseTexture,b.BaseTexture.prototype.forceLoaded=function(a,b){this.hasLoaded=!0,this.width=a,this.height=b,this.dirty()},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++),0===a.width&&(a.width=1),0===a.height&&(a.height=1);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.TextureSilentFail=!1,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.isTiling=!1,this.requiresUpdate=!1,this.requiresReTint=!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))},b.Texture.prototype.constructor=b.Texture,b.Texture.prototype.onBaseTextureLoaded=function(){var a=this.baseTexture;this.noFrame&&(this.frame=new b.Rectangle(0,0,a.width,a.height)),this.setFrame(this.frame)},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)){if(!b.TextureSilentFail)throw new Error("Texture Error: frame does not fit inside the base Texture dimensions "+this);return void(this.valid=!1)}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.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.resolution,this.height*this.resolution)),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.height,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.tempMatrix=new Phaser.Matrix,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=a,this.height=c,this.frame.width=this.crop.width=a*this.resolution,this.frame.height=this.crop.height=c*this.resolution,d&&(this.baseTexture.width=this.width*this.resolution,this.baseTexture.height=this.height*this.resolution),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.height))},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&&0!==a.alpha){var d=a.worldTransform;d.identity(),d.translate(0,2*this.projection.y),b&&d.append(b),d.scale(1,-1);for(var e=0;ea;a++)this.shaders[a].dirty=!0},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.vertices=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.canvasPadding=0,this.drawMode=b.Strip.DrawModes.TRIANGLE_STRIP},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.vertices,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 c=a.gl,d=a.projection,e=a.offset,f=a.shaderManager.stripShader,g=this.drawMode===b.Strip.DrawModes.TRIANGLE_STRIP?c.TRIANGLE_STRIP:c.TRIANGLES;a.blendModeManager.setBlendMode(this.blendMode),c.uniformMatrix3fv(f.translationMatrix,!1,this.worldTransform.toArray(!0)),c.uniform2f(f.projectionVector,d.x,-d.y),c.uniform2f(f.offsetVector,-e.x,-e.y),c.uniform1f(f.alpha,this.worldAlpha),this.dirty?(this.dirty=!1,c.bindBuffer(c.ARRAY_BUFFER,this._vertexBuffer),c.bufferData(c.ARRAY_BUFFER,this.vertices,c.STATIC_DRAW),c.vertexAttribPointer(f.aVertexPosition,2,c.FLOAT,!1,0,0),c.bindBuffer(c.ARRAY_BUFFER,this._uvBuffer),c.bufferData(c.ARRAY_BUFFER,this.uvs,c.STATIC_DRAW),c.vertexAttribPointer(f.aTextureCoord,2,c.FLOAT,!1,0,0),c.activeTexture(c.TEXTURE0),this.texture.baseTexture._dirty[c.id]?a.renderer.updateTexture(this.texture.baseTexture):c.bindTexture(c.TEXTURE_2D,this.texture.baseTexture._glTextures[c.id]),c.bindBuffer(c.ELEMENT_ARRAY_BUFFER,this._indexBuffer),c.bufferData(c.ELEMENT_ARRAY_BUFFER,this.indices,c.STATIC_DRAW)):(c.bindBuffer(c.ARRAY_BUFFER,this._vertexBuffer),c.bufferSubData(c.ARRAY_BUFFER,0,this.vertices),c.vertexAttribPointer(f.aVertexPosition,2,c.FLOAT,!1,0,0),c.bindBuffer(c.ARRAY_BUFFER,this._uvBuffer),c.vertexAttribPointer(f.aTextureCoord,2,c.FLOAT,!1,0,0),c.activeTexture(c.TEXTURE0),this.texture.baseTexture._dirty[c.id]?a.renderer.updateTexture(this.texture.baseTexture):c.bindTexture(c.TEXTURE_2D,this.texture.baseTexture._glTextures[c.id]),c.bindBuffer(c.ELEMENT_ARRAY_BUFFER,this._indexBuffer)),c.drawElements(g,this.indices.length,c.UNSIGNED_SHORT,0)},b.Strip.prototype._renderCanvas=function(a){var c=a.context,d=this.worldTransform;a.roundPixels?c.setTransform(d.a,d.b,d.c,d.d,0|d.tx,0|d.ty):c.setTransform(d.a,d.b,d.c,d.d,d.tx,d.ty),this.drawMode===b.Strip.DrawModes.TRIANGLE_STRIP?this._renderCanvasTriangleStrip(c):this._renderCanvasTriangles(c)},b.Strip.prototype._renderCanvasTriangleStrip=function(a){var b=this.vertices,c=this.uvs,d=b.length/2;this.count++;for(var e=0;d-2>e;e++){var f=2*e;this._renderCanvasDrawTriangle(a,b,c,f,f+2,f+4)}},b.Strip.prototype._renderCanvasTriangles=function(a){var b=this.vertices,c=this.uvs,d=this.indices,e=d.length;this.count++;for(var f=0;e>f;f+=3){var g=2*d[f],h=2*d[f+1],i=2*d[f+2];this._renderCanvasDrawTriangle(a,b,c,g,h,i)}},b.Strip.prototype._renderCanvasDrawTriangle=function(a,b,c,d,e,f){var g=this.texture.baseTexture.source,h=this.texture.width,i=this.texture.height,j=b[d],k=b[e],l=b[f],m=b[d+1],n=b[e+1],o=b[f+1],p=c[d]*h,q=c[e]*h,r=c[f]*h,s=c[d+1]*i,t=c[e+1]*i,u=c[f+1]*i;if(this.canvasPadding>0){var v=this.canvasPadding/this.worldTransform.a,w=this.canvasPadding/this.worldTransform.d,x=(j+k+l)/3,y=(m+n+o)/3,z=j-x,A=m-y,B=Math.sqrt(z*z+A*A);j=x+z/B*(B+v),m=y+A/B*(B+w),z=k-x,A=n-y,B=Math.sqrt(z*z+A*A),k=x+z/B*(B+v),n=y+A/B*(B+w),z=l-x,A=o-y,B=Math.sqrt(z*z+A*A),l=x+z/B*(B+v),o=y+A/B*(B+w)}a.save(),a.beginPath(),a.moveTo(j,m),a.lineTo(k,n),a.lineTo(l,o),a.closePath(),a.clip();var C=p*t+s*r+q*u-t*r-s*q-p*u,D=j*t+s*l+k*u-t*l-s*k-j*u,E=p*k+j*r+q*l-k*r-j*q-p*l,F=p*t*l+s*k*r+j*q*u-j*t*r-s*q*l-p*k*u,G=m*t+s*o+n*u-t*o-s*n-m*u,H=p*n+m*r+q*o-n*r-m*q-p*o,I=p*t*o+s*n*r+m*q*u-m*t*r-s*q*o-p*n*u;a.transform(D/C,G/C,E/C,H/C,F/C,I/C),a.drawImage(g,0,0),a.restore()},b.Strip.prototype.renderStripFlat=function(a){var b=this.context,c=a.vertices,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.Strip.prototype.getBounds=function(a){for(var c=a||this.worldTransform,d=c.a,e=c.b,f=c.c,g=c.d,h=c.tx,i=c.ty,j=-1/0,k=-1/0,l=1/0,m=1/0,n=this.vertices,o=0,p=n.length;p>o;o+=2){var q=n[o],r=n[o+1],s=d*q+f*r+h,t=g*r+e*q+i;l=l>s?s:l,m=m>t?t:m,j=s>j?s:j,k=t>k?t:k}if(l===-1/0||1/0===k)return b.EmptyRectangle;var u=this._bounds;return u.x=l,u.width=j-l,u.y=m,u.height=k-m,this._currentBounds=u,u},b.Strip.DrawModes={TRIANGLE_STRIP:0,TRIANGLES:1},b.Rope=function(a,c){b.Strip.call(this,a),this.points=c,this.vertices=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.vertices,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||128,this._height=d||128,this.tileScale=new b.Point(1,1),this.tileScaleOffset=new b.Point(1,1),this.tilePosition=new b.Point,this.renderable=!0,this.tint=16777215,this.textureDebug=!1,this.blendMode=b.blendModes.NORMAL,this.canvasBuffer=null,this.tilingTexture=null,this.tilePattern=null,this.refreshTexture=!0,this.frameWidth=0,this.frameHeight=0 +},b.TilingSprite.prototype=Object.create(b.Sprite.prototype),b.TilingSprite.prototype.constructor=b.TilingSprite,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){if(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.refreshTexture){if(this.generateTilingTexture(!0),!this.tilingTexture)return;this.tilingTexture.needsUpdate&&(a.renderer.updateTexture(this.tilingTexture.baseTexture),this.tilingTexture.needsUpdate=!1)}a.spriteBatch.renderTilingSprite(this);for(var b=0;bn?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.destroy=function(){b.Sprite.prototype.destroy.call(this),this.tileScale=null,this.tileScaleOffset=null,this.tilePosition=null,this.tilingTexture&&(this.tilingTexture.destroy(!0),this.tilingTexture=null)},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}}),"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,b}).call(this),function(){function a(a,b){this._scaleFactor=a,this._deltaMode=b,this.originalEvent=null}var b=this,c=c||{VERSION:"2.4.1",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,CIRCLE:21,RECTANGLE:22,LINE:23,MATRIX:24,POINT:25,ROUNDEDRECTANGLE:26,CREATURE:27,VIDEO:28,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:PIXI||{}};if(Math.trunc||(Math.trunc=function(a){return 0>a?Math.ceil(a):Math.floor(a)}),Function.prototype.bind||(Function.prototype.bind=function(){var a=Array.prototype.slice;return function(b){function c(){var f=e.concat(a.call(arguments));d.apply(this instanceof c?this:b,f)}var d=this,e=a.call(arguments,1);if("function"!=typeof d)throw new TypeError;return c.prototype=function f(a){return a&&(f.prototype=a),this instanceof f?void 0:new f}(d.prototype),c}}()),Array.isArray||(Array.isArray=function(a){return"[object Array]"==Object.prototype.toString.call(a)}),Array.prototype.forEach||(Array.prototype.forEach=function(a){"use strict";if(void 0===this||null===this)throw new TypeError;var b=Object(this),c=b.length>>>0;if("function"!=typeof a)throw new TypeError;for(var d=arguments.length>=2?arguments[1]:void 0,e=0;c>e;e++)e in b&&a.call(d,b[e],e,b)}),"function"!=typeof window.Uint32Array&&"object"!=typeof window.Uint32Array){var d=function(a){var b=new Array;window[a]=function(a){if("number"==typeof a){Array.call(this,a),this.length=a;for(var b=0;bf&&(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 void 0===a&&(a=50),a>0&&100*Math.random()<=a},randomChoice:function(a,b){return Math.random()<.5?a:b},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(void 0===b)var b=0;if(void 0===c)var c=" ";if(void 0===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},mixinPrototype:function(a,b,c){void 0===c&&(c=!1);for(var d=Object.keys(b),e=0;e0&&(this._radius=.5*d),this.type=c.CIRCLE},c.Circle.prototype={circumference:function(){return 2*Math.PI*this._radius},random:function(a){void 0===a&&(a=new c.Point);var b=2*Math.PI*Math.random(),d=Math.random()+Math.random(),e=d>1?2-d:d,f=e*Math.cos(b),g=e*Math.sin(b);return a.x=this.x+f*this.radius,a.y=this.y+g*this.radius,a},getBounds:function(){return new c.Rectangle(this.x-this.radius,this.y-this.radius,this.diameter,this.diameter)},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 void 0===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 void 0===d&&(d=!1),void 0===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.Ellipse=function(a,b,d,e){a=a||0,b=b||0,d=d||0,e=e||0,this.x=a,this.y=b,this.width=d,this.height=e,this.type=c.ELLIPSE},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 void 0===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)},random:function(a){void 0===a&&(a=new c.Point);var b=Math.random()*Math.PI*2,d=Math.random();return a.x=Math.sqrt(d)*Math.cos(b),a.y=Math.sqrt(d)*Math.sin(b),a.x=this.x+a.x*this.width/2,a.y=this.y+a.y*this.height/2,a},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},PIXI.Ellipse=c.Ellipse,c.Line=function(a,b,d,e){a=a||0,b=b||0,d=d||0,e=e||0,this.start=new c.Point(a,b),this.end=new c.Point(d,e),this.type=c.LINE},c.Line.prototype={setTo:function(a,b,c,d){return this.start.setTo(a,b),this.end.setTo(c,d),this},fromSprite:function(a,b,c){return void 0===c&&(c=!1),c?this.setTo(a.center.x,a.center.y,b.center.x,b.center.y):this.setTo(a.x,a.y,b.x,b.y)},fromAngle:function(a,b,c,d){return this.start.setTo(a,b),this.end.setTo(a+Math.cos(c)*d,b+Math.sin(c)*d),this},rotate:function(a,b){var c=this.start.x,d=this.start.y;return this.start.rotate(this.end.x,this.end.y,a,b,this.length),this.end.rotate(c,d,a,b,this.length),this},intersects:function(a,b,d){return c.Line.intersectsPoints(this.start,this.end,a.start,a.end,b,d)},reflect:function(a){return c.Line.reflect(this,a)},pointOnLine:function(a,b){return(a-this.start.x)*(this.end.y-this.start.y)===(this.end.x-this.start.x)*(b-this.start.y)},pointOnSegment:function(a,b){var c=Math.min(this.start.x,this.end.x),d=Math.max(this.start.x,this.end.x),e=Math.min(this.start.y,this.end.y),f=Math.max(this.start.y,this.end.y);return this.pointOnLine(a,b)&&a>=c&&d>=a&&b>=e&&f>=b},random:function(a){void 0===a&&(a=new c.Point);var b=Math.random();return a.x=this.start.x+b*(this.end.x-this.start.x),a.y=this.start.y+b*(this.end.y-this.start.y),a},coordinatesOnLine:function(a,b){void 0===a&&(a=1),void 0===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 void 0===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)}}),Object.defineProperty(c.Line.prototype,"normalX",{get:function(){return Math.cos(this.angle-1.5707963267948966)}}),Object.defineProperty(c.Line.prototype,"normalY",{get:function(){return Math.sin(this.angle-1.5707963267948966)}}),Object.defineProperty(c.Line.prototype,"normalAngle",{get:function(){return c.Math.wrap(this.angle-1.5707963267948966,-Math.PI,Math.PI)}}),c.Line.intersectsPoints=function(a,b,d,e,f,g){void 0===f&&(f=!0),void 0===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.Line.reflect=function(a,b){return 2*b.normalAngle-3.141592653589793-a.angle},c.Matrix=function(a,b,d,e,f,g){a=a||1,b=b||0,d=d||0,e=e||1,f=f||0,g=g||0,this.a=a,this.b=b,this.c=d,this.d=e,this.tx=f,this.ty=g,this.type=c.MATRIX},c.Matrix.prototype={fromArray:function(a){return this.setTo(a[0],a[1],a[3],a[4],a[2],a[5])},setTo:function(a,b,c,d,e,f){return this.a=a,this.b=b,this.c=c,this.d=d,this.tx=e,this.ty=f,this},clone:function(a){return void 0===a||null===a?a=new c.Matrix(this.a,this.b,this.c,this.d,this.tx,this.ty):(a.a=this.a,a.b=this.b,a.c=this.c,a.d=this.d,a.tx=this.tx,a.ty=this.ty),a},copyTo:function(a){return a.copyFrom(this),a},copyFrom:function(a){return this.a=a.a,this.b=a.b,this.c=a.c,this.d=a.d,this.tx=a.tx,this.ty=a.ty,this},toArray:function(a,b){return void 0===b&&(b=new PIXI.Float32Array(9)),a?(b[0]=this.a,b[1]=this.b,b[2]=0,b[3]=this.c,b[4]=this.d,b[5]=0,b[6]=this.tx,b[7]=this.ty,b[8]=1):(b[0]=this.a,b[1]=this.c,b[2]=this.tx,b[3]=this.b,b[4]=this.d,b[5]=this.ty,b[6]=0,b[7]=0,b[8]=1),b},apply:function(a,b){return void 0===b&&(b=new c.Point),b.x=this.a*a.x+this.c*a.y+this.tx,b.y=this.b*a.x+this.d*a.y+this.ty,b},applyInverse:function(a,b){void 0===b&&(b=new c.Point);var d=1/(this.a*this.d+this.c*-this.b),e=a.x,f=a.y;return b.x=this.d*d*e+-this.c*d*f+(this.ty*this.c-this.tx*this.d)*d,b.y=this.a*d*f+-this.b*d*e+(-this.ty*this.a+this.tx*this.b)*d,b},translate:function(a,b){return this.tx+=a,this.ty+=b,this},scale:function(a,b){return this.a*=a,this.d*=b,this.c*=a,this.b*=b,this.tx*=a,this.ty*=b,this},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},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},identity:function(){return this.setTo(1,0,0,1,0,0)}},c.identityMatrix=new c.Matrix,PIXI.Matrix=c.Matrix,PIXI.identityMatrix=c.identityMatrix,c.Point=function(a,b){a=a||0,b=b||0,this.x=a,this.y=b,this.type=c.POINT},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 void 0===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 void 0===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)},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 void 0===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 void 0===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 void 0===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 void 0===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.negative=function(a,b){return void 0===b&&(b=new c.Point),b.setTo(-a.x,-a.y)},c.Point.multiplyAdd=function(a,b,d,e){return void 0===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 void 0===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 void 0===b&&(b=new c.Point),b.setTo(-a.y,a.x)},c.Point.rperp=function(a,b){return void 0===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){void 0===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){void 0===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 void 0===b&&(b=new c.Point),b.setTo(-1*a.y,a.x)},c.Point.normalize=function(a,b){void 0===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){void 0===f&&(f=!1),void 0===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.x=b+g*Math.cos(h),a.y=d+g*Math.sin(h),a},c.Point.centroid=function(a,b){if(void 0===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.Polygon=function(){this.area=0,this._points=[],arguments.length>0&&this.setTo.apply(this,arguments),this.closed=!0,this.type=c.POLYGON},c.Polygon.prototype={toNumberArray:function(a){void 0===a&&(a=[]);for(var b=0;b=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,c=0,d=a.length;d>c;c++){if("number"==typeof a[c]){var e=new PIXI.Point(a[c],a[c+1]);c++}else var e=new PIXI.Point(a[c].x,a[c].y);this._points.push(e),e.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.Polygon=c.Polygon,c.Rectangle=function(a,b,d,e){a=a||0,b=b||0,d=d||0,e=e||0,this.x=a,this.y=b,this.width=d,this.height=e,this.type=c.RECTANGLE},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 void 0===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)},ceil:function(){this.x=Math.ceil(this.x),this.y=Math.ceil(this.y)},ceilAll:function(){this.x=Math.ceil(this.x),this.y=Math.ceil(this.y),this.width=Math.ceil(this.width),this.height=Math.ceil(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)},resize:function(a,b){return this.width=a,this.height=b,this},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){return c.Rectangle.intersects(this,a)},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)},random:function(a){return void 0===a&&(a=new c.Point),a.x=this.randomX,a.y=this.randomY,a},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,"bottomLeft",{get:function(){return new c.Point(this.x,this.bottom)},set:function(a){this.x=a.x,this.bottom=a.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 void 0===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 void 0===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 void 0===f&&(f=0),!(b>a.right+f||ca.bottom+f||ed&&(d=a.x),a.xf&&(f=a.y),a.y=c&&a<=c+this.width){var d=this.y;if(b>=d&&b<=d+this.height)return!0}return!1}},c.RoundedRectangle.prototype.constructor=c.RoundedRectangle,PIXI.RoundedRectangle=c.RoundedRectangle,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.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.displayObject=null,this.scale=null,this.totalInView=0,this._targetPosition=new c.Point,this._edge=0,this._position=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={preUpdate:function(){this.totalInView=0},follow:function(a,b){void 0===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),this.target.parent&&this._targetPosition.multiply(this.target.parent.worldTransform.a,this.target.parent.worldTransform.d),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.copyFrom(this.game.world.bounds)},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.Create=function(a){this.game=a,this.bmd=a.make.bitmapData(),this.canvas=this.bmd.canvas,this.ctx=this.bmd.context,this.palettes=[{0:"#000",1:"#9D9D9D",2:"#FFF",3:"#BE2633",4:"#E06F8B",5:"#493C2B",6:"#A46422",7:"#EB8931",8:"#F7E26B",9:"#2F484E",A:"#44891A",B:"#A3CE27",C:"#1B2632",D:"#005784",E:"#31A2F2",F:"#B2DCEF"},{0:"#000",1:"#191028",2:"#46af45",3:"#a1d685",4:"#453e78",5:"#7664fe",6:"#833129",7:"#9ec2e8",8:"#dc534b",9:"#e18d79",A:"#d6b97b",B:"#e9d8a1",C:"#216c4b",D:"#d365c8",E:"#afaab9",F:"#f5f4eb"},{0:"#000",1:"#2234d1",2:"#0c7e45",3:"#44aacc",4:"#8a3622",5:"#5c2e78",6:"#aa5c3d",7:"#b5b5b5",8:"#5e606e",9:"#4c81fb",A:"#6cd947",B:"#7be2f9",C:"#eb8a60",D:"#e23d69",E:"#ffd93f",F:"#fff"},{0:"#000",1:"#fff",2:"#8b4131",3:"#7bbdc5",4:"#8b41ac",5:"#6aac41",6:"#3931a4",7:"#d5de73",8:"#945a20",9:"#5a4100",A:"#bd736a",B:"#525252",C:"#838383",D:"#acee8b",E:"#7b73de",F:"#acacac"},{0:"#000",1:"#191028",2:"#46af45",3:"#a1d685",4:"#453e78",5:"#7664fe",6:"#833129",7:"#9ec2e8",8:"#dc534b",9:"#e18d79",A:"#d6b97b",B:"#e9d8a1",C:"#216c4b",D:"#d365c8",E:"#afaab9",F:"#fff"}]},c.Create.PALETTE_ARNE=0,c.Create.PALETTE_JMP=1,c.Create.PALETTE_CGA=2,c.Create.PALETTE_C64=3,c.Create.PALETTE_JAPANESE_MACHINE=4,c.Create.prototype={texture:function(a,b,c,d,e){void 0===c&&(c=8),void 0===d&&(d=c),void 0===e&&(e=0);var f=b[0].length*c,g=b.length*d;this.bmd.resize(f,g),this.bmd.clear();for(var h=0;hg;g+=e)this.ctx.fillRect(0,g,b,1);for(var h=0;b>h;h+=d)this.ctx.fillRect(h,0,1,c);return this.bmd.generateTexture(a)}},c.Create.prototype.constructor=c.Create,c.State=function(){this.game=null,this.key="",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={init:function(){},preload:function(){},loadUpdate:function(){},loadRender:function(){},create:function(){},update:function(){},preRender:function(){},render:function(){},resize:function(){},paused:function(){},resumed: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.onStateChange=new c.Signal,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),null!==this._pendingState&&"string"!=typeof this._pendingState&&this.add("default",this._pendingState,!0)},add:function(a,b,d){void 0===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.onPreRenderCallback=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){void 0===b&&(b=!0),void 0===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){void 0===a&&(a=!0),void 0===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){var a=this.current;if(this.clearCurrentState(),this.setCurrentState(this._pendingState),this.onStateChange.dispatch(this.current,a),this.current!==this._pendingState)return;this._pendingState=null,this.onPreloadCallback?(this.game.load.reset(!0),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||this.states[a].create||this.states[a].update||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,this.states[a].key=a},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&&this.game.physics.reset(),this.current=a,this._created=!1,this.onInitCallback.apply(this.callbackContext,this._args),a===this._pendingState&&(this._args=[]),this.game._kickstart=!0},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(a){this._created&&this.onPreRenderCallback&&this.onPreRenderCallback.call(this.callbackContext,this.game,a)},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.context.restore()):this.onRenderCallback.call(this.callbackContext,this.game)):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,this.current=""}},c.StateManager.prototype.constructor=c.StateManager,Object.defineProperty(c.StateManager.prototype,"created",{get:function(){return this._created}}),c.Signal=function(){},c.Signal.prototype={_bindings:null,_prevParams:null,memorize:!1,_shouldPropagate:!0,active:!0,_boundDispatch:!0,validateListener:function(a,b){if("function"!=typeof a)throw new Error("Phaser.Signal: listener is a required param of {fn}() and should be a Function.".replace("{fn}",b))},_registerListener:function(a,b,d,e,f){var g,h=this._indexOfListener(a,d);if(-1!==h){if(g=this._bindings[h],g.isOnce()!==b)throw new Error("You cannot add"+(b?"":"Once")+"() then add"+(b?"Once":"")+"() the same listener without removing the relationship first.")}else g=new c.SignalBinding(this,a,b,d,e,f),this._addBinding(g);return this.memorize&&this._prevParams&&g.execute(this._prevParams),g},_addBinding:function(a){this._bindings||(this._bindings=[]);var b=this._bindings.length;do b--;while(this._bindings[b]&&a._priority<=this._bindings[b]._priority);this._bindings.splice(b+1,0,a)},_indexOfListener:function(a,b){if(!this._bindings)return-1;void 0===b&&(b=null);for(var c,d=this._bindings.length;d--;)if(c=this._bindings[d],c._listener===a&&c.context===b)return d;return-1},has:function(a,b){return-1!==this._indexOfListener(a,b)},add:function(a,b,c){this.validateListener(a,"add");var d=[];if(arguments.length>3)for(var e=3;e3)for(var e=3;ea||a>=this.children.length?-1:this.getChildAt(a)},c.Group.prototype.create=function(a,b,c,d,e){void 0===e&&(e=!0);var f=new this.classType(this.game,a,b,c,d);return f.exists=e,f.visible=e,f.alive=e,this.addChild(f),f.z=this.children.length,this.enableBody&&this.game.physics.enable(f,this.physicsBodyType,this.enableBodyDebug),f.events&&f.events.onAddedToGroup$dispatch(f,this),null===this.cursor&&(this.cursor=f),f},c.Group.prototype.createMultiple=function(a,b,c,d){void 0===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 void 0===a&&(a=0),a>this.children.length-1&&(a=0),this.cursor?(this.cursorIndex=a,this.cursor=this.children[this.cursorIndex],this.cursor):void 0},c.Group.prototype.next=function(){return this.cursor?(this.cursorIndex>=this.children.length-1?this.cursorIndex=0:this.cursorIndex++,this.cursor=this.children[this.cursorIndex],this.cursor):void 0},c.Group.prototype.previous=function(){return this.cursor?(0===this.cursorIndex?this.cursorIndex=this.children.length-1:this.cursorIndex--,this.cursor=this.children[this.cursorIndex],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);return-1!==d?(b.parent&&(b.parent instanceof c.Group?b.parent.remove(b):b.parent.removeChild(b)),this.remove(a),this.addAt(b,d),a):void 0},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(void 0===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 void 0===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 void 0===g&&(g=!1),b=b.split("."),void 0===d&&(d=!1),void 0===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){void 0===c&&(c=!1),void 0===d&&(d=!1),void 0===f&&(f=!1),a=a.split("."),e=e||0;for(var g=0;g2){c=[];for(var d=2;d2){e=[];for(var f=2;f2){d=[null];for(var e=2;e2){d=[null];for(var e=2;e2){d=[null];for(var e=2;eb[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;for(var h=0,i=0;i0?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(void 0===b&&(b=!1),void 0===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.removeFromHash(a),this.updateZ(),this.cursor===a&&this.next(),b&&d&&d.destroy(!0),!0},c.Group.prototype.moveAll=function(a,b){if(void 0===b&&(b=!1),this.children.length>0&&a instanceof c.Group){do a.add(this.children[0],b);while(this.children.length>0);this.hash=[],this.cursor=null}return a},c.Group.prototype.removeAll=function(a,b){if(void 0===a&&(a=!1),void 0===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]);this.removeFromHash(c),a&&c&&c.destroy(!0)}while(this.children.length>0);this.hash=[],this.cursor=null}},c.Group.prototype.removeBetween=function(a,b,c,d){if(void 0===b&&(b=this.children.length-1),void 0===c&&(c=!1),void 0===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]);this.removeFromHash(f),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||(void 0===a&&(a=!0),void 0===b&&(b=!1),this.onDestroy.dispatch(this,a,b),this.removeAll(a),this.cursor=null,this.filters=null,this.pendingDestroy=!1,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)}}),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,this.game.state.onStateChange.add(this.stateChange,this)},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.stateChange=function(){this.x=0,this.y=0,this.camera.reset()},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.x=a,this.y=b,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,this.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();(f||g)&&(this.onResize&&this.onResize.call(this.onResizeContext,this,e),this.updateLayout(),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,Object.defineProperty(c.ScaleManager.prototype,"boundingParent",{get:function(){if(this.parentIsWindow||this.isFullScreen&&!this._createdFullScreenTarget)return null;var a=this.game.canvas&&this.game.canvas.parentNode;return a||null}}),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,"isGamePortrait",{get:function(){return this.height>this.width}}),Object.defineProperty(c.ScaleManager.prototype,"isGameLandscape",{get:function(){return this.width>this.height}}),c.Game=function(a,b,d,e,f,g,h,i){return this.id=c.GAMES.push(this)-1,this.config=null,this.physicsConfig=i,this.parent="",this.width=800,this.height=600,this.resolution=1,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.plugins=null,this.rnd=null,this.device=c.Device,this.camera=null,this.canvas=null,this.context=null,this.debug=null,this.particles=null,this.create=null,this.lockRender=!1,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.currentUpdateID=0,this.updatesThisFrame=1,this._deltaTime=0,this._lastCount=0,this._spiraling=0,this._kickstart=!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)),this.device.whenReady(this.boot,this),this},c.Game.prototype={parseConfig:function(a){this.config=a,void 0===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.resolution&&(this.resolution=a.resolution),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||(this.onPause=new c.Signal,this.onResume=new c.Signal,this.onBlur=new c.Signal,this.onFocus=new c.Signal,this.isBooted=!0,this.math=c.Math,this.scale=new c.ScaleManager(this,this._width,this._height),this.stage=new c.Stage(this),this.setUpRenderer(),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.create=new c.Create(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.debug={preUpdate:function(){},update:function(){},reset:function(){}},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._kickstart=!0,window.focus&&(!window.PhaserGlobal||window.PhaserGlobal&&!window.PhaserGlobal.stopFocus)&&window.focus(),this.raf.start())},showDebugHeader:function(){if(!window.PhaserGlobal||!window.PhaserGlobal.hideBanner){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: #9854d8","background: #6c2ca7","color: #ffffff; background: #450f78;","background: #6c2ca7","background: #9854d8","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:this.resolution,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:this.resolution,antialias:this.antialias,preserveDrawingBuffer:this.preserveDrawingBuffer}),this.context=null,this.canvas.addEventListener("webglcontextlost",this.contextLost.bind(this),!1),this.canvas.addEventListener("webglcontextrestored",this.contextRestored.bind(this),!1);this.renderType!==c.HEADLESS&&(this.stage.smoothed=this.antialias,c.Canvas.addToDOM(this.canvas,this.parent,!1),c.Canvas.setTouchAction(this.canvas))},contextLost:function(a){a.preventDefault(),this.renderer.contextLost=!0},contextRestored:function(){this.renderer.initContext(),this.cache.clearGLTextures(),this.renderer.contextLost=!1},update:function(a){if(this.time.update(a),this._kickstart)return this.updateLogic(1/this.time.desiredFps),this.stage.updateTransform(),this.updateRender(this.time.slowMotion*this.time.desiredFps),void(this._kickstart=!1);if(this._spiraling>1&&!this.forceSingleUpdate)this.time.time>this._nextFpsNotification&&(this._nextFpsNotification=this.time.time+1e4,this.fpsProblemNotifier.dispatch()),this._deltaTime=0,this._spiraling=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);var c=0;for(this.updatesThisFrame=Math.floor(this._deltaTime/b),this.forceSingleUpdate&&(this.updatesThisFrame=Math.min(1,this.updatesThisFrame));this._deltaTime>=b&&(this._deltaTime-=b,this.currentUpdateID=c,this.updateLogic(1/this.time.desiredFps),this.stage.updateTransform(),c++,!this.forceSingleUpdate||1!==c););c>this._lastCount?this._spiraling++:c=c.Input.MAX_POINTERS)return console.warn("Phaser.Input.addPointer: Maximum limit of "+c.Input.MAX_POINTERS+" pointers reached."),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&&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 a-b},getPointer:function(a){void 0===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._pollCounterthis.game.time.time},justReleased:function(a){return a=a||250,this.isUp&&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,this.altKey=!1,this.shiftKey=!1,this.ctrlKey=!1},destroy:function(){this.onDown.dispose(),this.onUp.dispose(),this.onFloat.dispose(),this.parent=null,this.game=null}},c.DeviceButton.prototype.constructor=c.DeviceButton,Object.defineProperty(c.DeviceButton.prototype,"duration",{get:function(){return this.isUp?-1:this.game.time.time-this.timeDown}}),c.Pointer=function(a,b){this.game=a,this.id=b,this.type=c.POINTER,this.exists=!0,this.identifier=0,this.pointerId=null,this.target=null,this.button=null,this.leftButton=new c.DeviceButton(this,c.Pointer.LEFT_BUTTON),this.middleButton=new c.DeviceButton(this,c.Pointer.MIDDLE_BUTTON),this.rightButton=new c.DeviceButton(this,c.Pointer.RIGHT_BUTTON),this.backButton=new c.DeviceButton(this,c.Pointer.BACK_BUTTON),this.forwardButton=new c.DeviceButton(this,c.Pointer.FORWARD_BUTTON),this.eraserButton=new c.DeviceButton(this,c.Pointer.ERASER_BUTTON),this._holdSent=!1,this._history=[],this._nextDrop=0,this._stateReset=!1,this.withinGame=!1,this.clientX=-1,this.clientY=-1,this.pageX=-1,this.pageY=-1,this.screenX=-1,this.screenY=-1,this.rawMovementX=0,this.rawMovementY=0,this.movementX=0,this.movementY=0,this.x=-1,this.y=-1,this.isMouse=0===b,this.isDown=!1,this.isUp=!0,this.timeDown=0,this.timeUp=0,this.previousTapTime=0,this.totalTouches=0,this.msSinceLastClick=Number.MAX_VALUE,this.targetObject=null,this.active=!1,this.dirty=!1,this.position=new c.Point,this.positionDown=new c.Point,this.positionUp=new c.Point,this.circle=new c.Circle(0,0,44),this._clickTrampolines=null,this._trampolineTargetObject=null},c.Pointer.NO_BUTTON=0,c.Pointer.LEFT_BUTTON=1,c.Pointer.RIGHT_BUTTON=2,c.Pointer.MIDDLE_BUTTON=4,c.Pointer.BACK_BUTTON=8,c.Pointer.FORWARD_BUTTON=16,c.Pointer.ERASER_BUTTON=32,c.Pointer.prototype={resetButtons:function(){this.isDown=!1,this.isUp=!0,this.isMouse&&(this.leftButton.reset(),this.middleButton.reset(),this.rightButton.reset(),this.backButton.reset(),this.forwardButton.reset(),this.eraserButton.reset())},updateButtons:function(a){this.button=a.button;var b=a.buttons;void 0!==b&&(c.Pointer.LEFT_BUTTON&b?this.leftButton.start(a):this.leftButton.stop(a),c.Pointer.RIGHT_BUTTON&b?this.rightButton.start(a):this.rightButton.stop(a),c.Pointer.MIDDLE_BUTTON&b?this.middleButton.start(a):this.middleButton.stop(a),c.Pointer.BACK_BUTTON&b?this.backButton.start(a):this.backButton.stop(a),c.Pointer.FORWARD_BUTTON&b?this.forwardButton.start(a):this.forwardButton.stop(a),c.Pointer.ERASER_BUTTON&b?this.eraserButton.start(a):this.eraserButton.stop(a),a.ctrlKey&&this.leftButton.isDown&&this.rightButton.start(a),this.isUp=!0,this.isDown=!1,(this.leftButton.isDown||this.rightButton.isDown||this.middleButton.isDown||this.backButton.isDown||this.forwardButton.isDown||this.eraserButton.isDown)&&(this.isUp=!1,this.isDown=!0))},start:function(a){return a.pointerId&&(this.pointerId=a.pointerId),this.identifier=a.identifier,this.target=a.target,this.isMouse?this.updateButtons(a):(this.isDown=!0,this.isUp=!1),this._history=[],this.active=!0,this.withinGame=!0,this.dirty=!1,this._clickTrampolines=null,this._trampolineTargetObject=null,this.msSinceLastClick=this.game.time.time-this.timeDown,this.timeDown=this.game.time.time,this._holdSent=!1,this.move(a,!0),this.positionDown.setTo(this.x,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.totalActivePointers)&&(this.game.input.x=this.x,this.game.input.y=this.y,this.game.input.position.setTo(this.x,this.y),this.game.input.onDown.dispatch(this,a),this.game.input.resetSpeed(this.x,this.y)),this._stateReset=!1,this.totalTouches++,null!==this.targetObject&&this.targetObject._touchedHandler(this),this +},update:function(){this.active&&(this.dirty&&(this.game.input.interactiveItems.total>0&&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.totalActivePointers)&&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(void 0===b&&(b=!1),void 0!==a.button&&(this.button=a.button),b&&this.updateButtons(a),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.totalActivePointers)&&(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.renderOrderID,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.renderOrderID,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&&this.withinGame?void a.preventDefault():(this.isMouse?this.updateButtons(a):(this.isDown=!1,this.isUp=!0),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.totalActivePointers)&&(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.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&&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;fd;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}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 void 0===c&&(c=!0),0===this.sprite.scale.x||0===this.sprite.scale.y||this.priorityIDa||this.priorityID===a&&this.sprite.renderOrderIDb;b++)if(this._pointerData[b].isOver)return!0}return!1},pointerOut:function(a){if(this.enabled){if(void 0!==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)?(void 0===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)?(void 0===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&&this._pointerData[a.id].isOver){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.snapPoint.set(this.sprite.cameraOffset.x,this.sprite.cameraOffset.y))):(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,this.snapPoint.set(this.sprite.x,this.sprite.y))),this.sprite.events.onDragUpdate.dispatch(this.sprite,a,b,c,this.snapPoint),!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){var b=this.sprite.x,c=this.sprite.y;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 d=this.sprite.getBounds();this.sprite.x=this.globalToLocalX(a.x)+(this.sprite.x-d.centerX),this.sprite.y=this.globalToLocalY(a.y)+(this.sprite.y-d.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.dragStartPoint.set(b,c),this.sprite.events.onDragStart$dispatch(this.sprite,a,b,c)},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){void 0===a&&(a=!0),void 0===b&&(b=!0),this.allowHorizontalDrag=a,this.allowVerticalDrag=b},enableSnap:function(a,b,c,d,e,f){void 0===c&&(c=!0),void 0===d&&(d=!1),void 0===e&&(e=0),void 0===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.leftthis.boundsRect.right&&(this.sprite.x=this.boundsRect.right-(this.sprite.width-this.sprite.offsetX)),this.sprite.topthis.boundsRect.bottom&&(this.sprite.y=this.boundsRect.bottom-(this.sprite.height-this.sprite.offsetY)))},checkBoundsSprite:function(){this.sprite.fixedToCamera&&this.boundsSprite.fixedToCamera?(this.sprite.cameraOffset.xthis.boundsSprite.cameraOffset.x+this.boundsSprite.width&&(this.sprite.cameraOffset.x=this.boundsSprite.cameraOffset.x+this.boundsSprite.width-this.sprite.width),this.sprite.cameraOffset.ythis.boundsSprite.cameraOffset.y+this.boundsSprite.height&&(this.sprite.cameraOffset.y=this.boundsSprite.cameraOffset.y+this.boundsSprite.height-this.sprite.height)):(this.sprite.leftthis.boundsSprite.right&&(this.sprite.x=this.boundsSprite.right-(this.sprite.width-this.sprite.offsetX)),this.sprite.topthis.boundsSprite.bottom&&(this.sprite.y=this.boundsSprite.bottom-(this.sprite.height-this.sprite.offsetY)))}},c.InputHandler.prototype.constructor=c.InputHandler,c.Gamepad=function(a){this.game=a,this._gamepadIndexMap={},this._rawPads=[],this._active=!1,this.enabled=!0,this._gamepadSupportAvailable=!!navigator.webkitGetGamepads||!!navigator.webkitGamepads||-1!=navigator.userAgent.indexOf("Firefox/")||!!navigator.getGamepads,this._prevRawGamepadTypes=[],this._prevTimestamps=[],this.callbackContext=this,this.onConnectCallback=null,this.onDisconnectCallback=null,this.onDownCallback=null,this.onUpCallback=null,this.onAxisCallback=null,this.onFloatCallback=null,this._ongamepadconnected=null,this._gamepaddisconnected=null,this._gamepads=[new c.SinglePad(a,this),new c.SinglePad(a,this),new c.SinglePad(a,this),new c.SinglePad(a,this)]},c.Gamepad.prototype={addCallbacks:function(a,b){"undefined"!=typeof b&&(this.onConnectCallback="function"==typeof b.onConnect?b.onConnect:this.onConnectCallback,this.onDisconnectCallback="function"==typeof b.onDisconnect?b.onDisconnect:this.onDisconnectCallback,this.onDownCallback="function"==typeof b.onDown?b.onDown:this.onDownCallback,this.onUpCallback="function"==typeof b.onUp?b.onUp:this.onUpCallback,this.onAxisCallback="function"==typeof b.onAxis?b.onAxis:this.onAxisCallback,this.onFloatCallback="function"==typeof b.onFloat?b.onFloat:this.onFloatCallback,this.callbackContext=a)},start:function(){if(!this._active){this._active=!0;var a=this;this._onGamepadConnected=function(b){return a.onGamepadConnected(b)},this._onGamepadDisconnected=function(b){return a.onGamepadDisconnected(b)},window.addEventListener("gamepadconnected",this._onGamepadConnected,!1),window.addEventListener("gamepaddisconnected",this._onGamepadDisconnected,!1)}},onGamepadConnected:function(a){var b=a.gamepad;this._rawPads.push(b),this._gamepads[b.index].connect(b)},onGamepadDisconnected:function(a){var b=a.gamepad;for(var c in this._rawPads)this._rawPads[c].index===b.index&&this._rawPads.splice(c,1);this._gamepads[b.index].disconnect()},update:function(){this._pollGamepads(),this.pad1.pollStatus(),this.pad2.pollStatus(),this.pad3.pollStatus(),this.pad4.pollStatus()},_pollGamepads:function(){if(navigator.getGamepads)var a=navigator.getGamepads();else if(navigator.webkitGetGamepads)var a=navigator.webkitGetGamepads();else if(navigator.webkitGamepads)var a=navigator.webkitGamepads();if(a){this._rawPads=[];for(var b=!1,c=0;c0&&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.maxHealth&&(this.health=this.maxHealth)),this}},c.Component.InCamera=function(){},c.Component.InCamera.prototype={inCamera:{get:function(){return this.game.world.camera.view.intersects(this._bounds)}}},c.Component.InputEnabled=function(){},c.Component.InputEnabled.prototype={input:null,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()}}},c.Component.InWorld=function(){},c.Component.InWorld.preUpdate=function(){if((this.autoCull||this.checkWorldBounds)&&(this._bounds.copyFrom(this.getBounds()),this._bounds.x+=this.game.camera.view.x,this._bounds.y+=this.game.camera.view.y,this.autoCull&&(this.game.world.camera.view.intersects(this._bounds)?(this.renderable=!0,this.game.world.camera.totalInView++):this.renderable=!1),this.checkWorldBounds))if(this._outOfBoundsFired&&this.game.world.bounds.intersects(this._bounds))this._outOfBoundsFired=!1,this.events.onEnterBounds$dispatch(this);else if(!this._outOfBoundsFired&&!this.game.world.bounds.intersects(this._bounds)&&(this._outOfBoundsFired=!0,this.events.onOutOfBounds$dispatch(this),this.outOfBoundsKill))return this.kill(),!1;return!0},c.Component.InWorld.prototype={checkWorldBounds:!1,outOfBoundsKill:!1,_outOfBoundsFired:!1,inWorld:{get:function(){return this.game.world.bounds.intersects(this.getBounds())}}},c.Component.LifeSpan=function(){},c.Component.LifeSpan.preUpdate=function(){return this.lifespan>0&&(this.lifespan-=this.game.time.physicsElapsedMS,this.lifespan<=0)?(this.kill(),!1):!0},c.Component.LifeSpan.prototype={alive:!0,lifespan:0,revive:function(a){return void 0===a&&(a=1),this.alive=!0,this.exists=!0,this.visible=!0,"number"==typeof this.health&&(this.health=a),this.events&&this.events.onRevived$dispatch(this),this},kill:function(){return this.alive=!1,this.exists=!1,this.visible=!1,this.events&&this.events.onKilled$dispatch(this),this}},c.Component.LoadTexture=function(){},c.Component.LoadTexture.prototype={customRender:!1,_frame:null,loadTexture:function(a,b,d){b=b||0,(d||void 0===d)&&this.animations&&this.animations.stop(),this.key=a,this.customRender=!1;var e=this.game.cache,f=!0,g=!this.texture.baseTexture.scaleMode;if(c.RenderTexture&&a instanceof c.RenderTexture)this.key=a.key,this.setTexture(a);else if(c.BitmapData&&a instanceof c.BitmapData)this.customRender=!0,this.setTexture(a.texture),e.hasFrameData(a.key,c.Cache.BITMAPDATA)&&(f=!this.animations.loadFrameData(e.getFrameData(a.key,c.Cache.BITMAPDATA),b));else if(c.Video&&a instanceof c.Video){this.customRender=!0;var h=a.texture.valid;this.setTexture(a.texture),this.setFrame(a.texture.frame.clone()),a.onChangeSource.add(this.resizeFrame,this),this.texture.valid=h}else if(a instanceof PIXI.Texture)this.setTexture(a);else{var i=e.getImage(a,!0);this.key=i.key,this.setTexture(new PIXI.Texture(i.base)),f=!this.animations.loadFrameData(i.frameData,b)}f&&(this._frame=c.Rectangle.clone(this.texture.frame)),g||(this.texture.baseTexture.scaleMode=1)},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.requiresReTint=!0,this.texture._updateUvs(),this.tilingTexture&&(this.refreshTexture=!0)},resizeFrame:function(a,b,c){this.texture.frame.resize(b,c),this.texture.setFrame(this.texture.frame)},resetFrame:function(){this._frame&&this.setFrame(this._frame)},frame:{get:function(){return this.animations.frame},set:function(a){this.animations.frame=a}},frameName:{get:function(){return this.animations.frameName},set:function(a){this.animations.frameName=a}}},c.Component.Overlap=function(){},c.Component.Overlap.prototype={overlap:function(a){return c.Rectangle.intersects(this.getBounds(),a.getBounds())}},c.Component.PhysicsBody=function(){},c.Component.PhysicsBody.preUpdate=function(){return this.fresh&&this.exists?(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.previousPosition.set(this.world.x,this.world.y),this.previousRotation=this.rotation,this.body&&this.body.preUpdate(),this.fresh=!1,!1):(this.previousPosition.set(this.world.x,this.world.y),this.previousRotation=this.rotation,this._exists&&this.parent.exists?!0:(this.renderOrderID=-1,!1))},c.Component.PhysicsBody.postUpdate=function(){this.exists&&this.body&&this.body.postUpdate()},c.Component.PhysicsBody.prototype={body:null,x:{get:function(){return this.position.x},set:function(a){this.position.x=a,this.body&&!this.body.dirty&&(this.body._reset=!0)}},y:{get:function(){return this.position.y},set:function(a){this.position.y=a,this.body&&!this.body.dirty&&(this.body._reset=!0)}}},c.Component.Reset=function(){},c.Component.Reset.prototype.reset=function(a,b,c){return void 0===c&&(c=1),this.world.set(a,b),this.position.set(a,b),this.fresh=!0,this.exists=!0,this.visible=!0,this.renderable=!0,this.components.InWorld&&(this._outOfBoundsFired=!1),this.components.LifeSpan&&(this.alive=!0,this.health=c),this.components.PhysicsBody&&this.body&&this.body.reset(a,b,!1,!1),this},c.Component.ScaleMinMax=function(){},c.Component.ScaleMinMax.prototype={transformCallback:this.checkTransform,transformCallbackContext:this,scaleMin:null,scaleMax:null,checkTransform:function(a){this.scaleMin&&(a.athis.scaleMax.x&&(a.a=this.scaleMax.x),a.d>this.scaleMax.y&&(a.d=this.scaleMax.y))},setScaleMinMax:function(a,b,d,e){void 0===b?b=d=e=a:void 0===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)}},c.Component.Smoothed=function(){},c.Component.Smoothed.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)}}},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 void 0===f&&(f=this.world),f.add(new c.Image(this.game,a,b,d,e))},sprite:function(a,b,c,d,e){return void 0===e&&(e=this.world),e.create(a,b,c,d)},creature:function(a,b,d,e,f){void 0===f&&(f=this.world);var g=new c.Creature(this.game,a,b,d,e);return f.add(g),g},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 void 0===a&&(a=null),void 0===b&&(b="group"),void 0===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 void 0===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 void 0===g&&(g=this.world),g.add(new c.Rope(this.game,a,b,d,e,f))},text:function(a,b,d,e,f){return void 0===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 void 0===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 void 0===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 void 0===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){(void 0===d||""===d)&&(d=this.game.rnd.uuid()),void 0===e&&(e=!1);var f=new c.RenderTexture(this.game,a,b,d);return e&&this.game.cache.addRenderTexture(d,f),f},video:function(a,b){return new c.Video(this.game,a,b)},bitmapData:function(a,b,d,e){void 0===e&&(e=!1),(void 0===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,this.game.tweens)},group:function(a,b,d,e,f){return new c.Group(this.game,a,b,d,e,f)},spriteBatch:function(a,b,d){return void 0===b&&(b="group"),void 0===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,g){return new c.BitmapText(this.game,a,b,d,e,f,g)},tilemap:function(a,b,d,e,f){return new c.Tilemap(this.game,a,b,d,e,f)},renderTexture:function(a,b,d,e){(void 0===d||""===d)&&(d=this.game.rnd.uuid()),void 0===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){void 0===e&&(e=!1),(void 0===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.Sprite=function(a,b,d,e,f){b=b||0,d=d||0,e=e||null,f=f||null,this.type=c.SPRITE,this.physicsType=c.SPRITE,PIXI.Sprite.call(this,PIXI.TextureCache.__default),c.Component.Core.init.call(this,a,b,d,e,f)},c.Sprite.prototype=Object.create(PIXI.Sprite.prototype),c.Sprite.prototype.constructor=c.Sprite,c.Component.Core.install.call(c.Sprite.prototype,["Angle","Animation","AutoCull","Bounds","BringToTop","Crop","Delta","Destroy","FixedToCamera","Health","InCamera","InputEnabled","InWorld","LifeSpan","LoadTexture","Overlap","PhysicsBody","Reset","ScaleMinMax","Smoothed"]),c.Sprite.prototype.preUpdatePhysics=c.Component.PhysicsBody.preUpdate,c.Sprite.prototype.preUpdateLifeSpan=c.Component.LifeSpan.preUpdate,c.Sprite.prototype.preUpdateInWorld=c.Component.InWorld.preUpdate,c.Sprite.prototype.preUpdateCore=c.Component.Core.preUpdate,c.Sprite.prototype.preUpdate=function(){return this.preUpdatePhysics()&&this.preUpdateLifeSpan()&&this.preUpdateInWorld()?this.preUpdateCore():!1 +},c.Image=function(a,b,d,e,f){b=b||0,d=d||0,e=e||null,f=f||null,this.type=c.IMAGE,PIXI.Sprite.call(this,PIXI.TextureCache.__default),c.Component.Core.init.call(this,a,b,d,e,f)},c.Image.prototype=Object.create(PIXI.Sprite.prototype),c.Image.prototype.constructor=c.Image,c.Component.Core.install.call(c.Image.prototype,["Angle","Animation","AutoCull","Bounds","BringToTop","Crop","Destroy","FixedToCamera","InputEnabled","LifeSpan","LoadTexture","Overlap","Reset","Smoothed"]),c.Image.prototype.preUpdateInWorld=c.Component.InWorld.preUpdate,c.Image.prototype.preUpdateCore=c.Component.Core.preUpdate,c.Image.prototype.preUpdate=function(){return this.preUpdateInWorld()?this.preUpdateCore():!1},c.TileSprite=function(a,b,d,e,f,g,h){b=b||0,d=d||0,e=e||256,f=f||256,g=g||null,h=h||null,this.type=c.TILESPRITE,this.physicsType=c.SPRITE,this._scroll=new c.Point;var i=a.cache.getImage("__default",!0);PIXI.TilingSprite.call(this,new PIXI.Texture(i.base),e,f),c.Component.Core.init.call(this,a,b,d,g,h)},c.TileSprite.prototype=Object.create(PIXI.TilingSprite.prototype),c.TileSprite.prototype.constructor=c.TileSprite,c.Component.Core.install.call(c.TileSprite.prototype,["Angle","Animation","AutoCull","Bounds","BringToTop","Destroy","FixedToCamera","Health","InCamera","InputEnabled","InWorld","LifeSpan","LoadTexture","Overlap","PhysicsBody","Reset","Smoothed"]),c.TileSprite.prototype.preUpdatePhysics=c.Component.PhysicsBody.preUpdate,c.TileSprite.prototype.preUpdateLifeSpan=c.Component.LifeSpan.preUpdate,c.TileSprite.prototype.preUpdateInWorld=c.Component.InWorld.preUpdate,c.TileSprite.prototype.preUpdateCore=c.Component.Core.preUpdate,c.TileSprite.prototype.preUpdate=function(){return 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.preUpdatePhysics()&&this.preUpdateLifeSpan()&&this.preUpdateInWorld()?this.preUpdateCore():!1},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.destroy=function(a){c.Component.Destroy.prototype.destroy.call(this,a),PIXI.TilingSprite.prototype.destroy.call(this)},c.TileSprite.prototype.reset=function(a,b){return c.Component.Reset.prototype.reset.call(this,a,b),this.tilePosition.x=0,this.tilePosition.y=0,this},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.type=c.ROPE,this._scroll=new c.Point,PIXI.Rope.call(this,PIXI.TextureCache.__default,this.points),c.Component.Core.init.call(this,a,b,d,e,f)},c.Rope.prototype=Object.create(PIXI.Rope.prototype),c.Rope.prototype.constructor=c.Rope,c.Component.Core.install.call(c.Rope.prototype,["Angle","Animation","AutoCull","Bounds","BringToTop","Crop","Delta","Destroy","FixedToCamera","InputEnabled","InWorld","LifeSpan","LoadTexture","Overlap","PhysicsBody","Reset","ScaleMinMax","Smoothed"]),c.Rope.prototype.preUpdatePhysics=c.Component.PhysicsBody.preUpdate,c.Rope.prototype.preUpdateLifeSpan=c.Component.LifeSpan.preUpdate,c.Rope.prototype.preUpdateInWorld=c.Component.InWorld.preUpdate,c.Rope.prototype.preUpdateCore=c.Component.Core.preUpdate,c.Rope.prototype.preUpdate=function(){return 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.preUpdatePhysics()&&this.preUpdateLifeSpan()&&this.preUpdateInWorld()?this.preUpdateCore():!1},c.Rope.prototype.update=function(){this._hasUpdateAnimation&&this.updateAnimation.call(this)},c.Rope.prototype.reset=function(a,b){return c.Component.Reset.prototype.reset.call(this,a,b),this.tilePosition.x=0,this.tilePosition.y=0,this},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=Math.abs(a);var f=this.width-a;c.drawImage(e,0,0,a,d,f,0,a,d),c.drawImage(e,a,0,f,d,0,0,f,d)}else{var f=this.width-a;c.drawImage(e,f,0,a,d,0,0,a,d),c.drawImage(e,0,0,f,d,a,0,f,d)}return this.clear(),this.copy(this._swapCanvas)},moveV:function(a){var b=this._swapCanvas,c=b.getContext("2d"),d=this.width,e=this.canvas;if(c.clearRect(0,0,this.width,this.height),0>a){a=Math.abs(a);var f=this.height-a;c.drawImage(e,0,0,d,a,0,f,d,a),c.drawImage(e,0,a,d,f,0,0,d,f)}else{var f=this.height-a;c.drawImage(e,0,f,d,a,0,0,d,a),c.drawImage(e,0,0,d,f,0,a,d,f)}return this.clear(),this.copy(this._swapCanvas)},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){void 0===c&&(c=0),void 0===d&&(d=0),void 0===e&&(e=this.width),void 0===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((void 0===a||null===a)&&(a=!1),(void 0===b||null===b)&&(b=!1),(void 0===d||null===d)&&(d=!1),a||b||d){void 0===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){void 0===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 void 0===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((void 0===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,(void 0===g||null===g)&&(g=a.x),(void 0===h||null===h)&&(h=a.y),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(void 0===b||null===b)&&(b=0),(void 0===d||null===d)&&(d=0),e&&(this._size.x=e),f&&(this._size.y=f),(void 0===g||null===g)&&(g=b),(void 0===h||null===h)&&(h=d),(void 0===i||null===i)&&(i=this._size.x),(void 0===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),void 0===q&&(q=null),void 0===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)},drawGroup:function(a,b,c){return a.total>0&&a.forEachExists(this.copy,this,null,null,null,null,null,null,null,null,null,null,null,null,null,null,b,c),this},shadow:function(a,b,c,d){void 0===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 void 0===d||null===d?this.draw(b).blendSourceAtop():this.draw(b,d.x,d.y,d.width,d.height).blendSourceAtop(),void 0===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 void 0===e&&(e=255),void 0===f&&(f=!1),void 0===g&&(g=b),void 0===h&&(h=c),void 0===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},text:function(a,b,c,d,e,f){void 0===b&&(b=0),void 0===c&&(c=0),void 0===d&&(d="14px Courier"),void 0===e&&(e="rgb(255,255,255)"),void 0===f&&(f=!0);var g=this.context.font;this.context.font=d,f&&(this.context.fillStyle="rgb(0,0,0)",this.context.fillText(a,b+1,c+1)),this.context.fillStyle=e,this.context.fillText(a,b,c),this.context.font=g},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(void 0===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,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,PIXI.Graphics.prototype.lineStyle=function(a,b,c){return this.lineWidth=a||0,this.lineColor=b||0,this.lineAlpha=void 0===c?1:c,this.currentPath&&(this.currentPath.shape.points.length?this.drawShape(new PIXI.Polygon(this.currentPath.shape.points.slice(-2))):(this.currentPath.lineWidth=this.lineWidth,this.currentPath.lineColor=this.lineColor,this.currentPath.lineAlpha=this.lineAlpha)),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||this.moveTo(0,0),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){if(d===e)return this;void 0===f&&(f=!1),!f&&d>=e?e+=2*Math.PI:f&&e>=d&&(d+=2*Math.PI);var g=f?-1*(d-e):e-d,h=40*Math.ceil(Math.abs(g)/(2*Math.PI));if(0===g)return this;var i=a+Math.cos(d)*c,j=b+Math.sin(d)*c;f&&this.filling?this.moveTo(a,b):this.moveTo(i,j);for(var k=this.currentPath.shape.points,l=g/(2*h),m=2*l,n=Math.cos(l),o=Math.sin(l),p=h-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);k.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){(a instanceof c.Polygon||a instanceof PIXI.Polygon)&&(a=a.points);var b=a;if(!Array.isArray(b)){b=new Array(arguments.length);for(var d=0;dp?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._currentBounds=this._bounds}return this._currentBounds},PIXI.Graphics.prototype.containsPoint=function(a){this.worldTransform.applyInverse(a,tempPoint);for(var b=this.graphicsData,c=0;ch?h:a,b=h+j>b?h+j:b,d=d>i?i:d,e=i+k>e?i+k:e;else if(n===PIXI.Graphics.CIRC)h=f.x,i=f.y,j=f.radius+o/2,k=f.radius+o/2,a=a>h-j?h-j:a,b=h+j>b?h+j:b,d=d>i-k?i-k:d,e=i+k>e?i+k:e;else if(n===PIXI.Graphics.ELIP)h=f.x,i=f.y,j=f.width+o/2,k=f.height+o/2,a=a>h-j?h-j:a,b=h+j>b?h+j:b,d=d>i-k?i-k:d,e=i+k>e?i+k:e;else{g=f.points;for(var p=0;ph-o?h-o:a,b=h+o>b?h+o:b,d=d>i-o?i-o:d,e=i+o>e?i+o:e}}else a=0,b=0,d=0,e=0;var q=this.boundsPadding;this._localBounds.x=a-q,this._localBounds.width=b-a+2*q,this._localBounds.y=d-q,this._localBounds.height=e-d+2*q},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,a instanceof c.Polygon&&(a=a.clone(),a.flatten());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},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.GraphicsData=function(a,b,c,d,e,f,g){this.lineWidth=a,this.lineColor=b,this.lineAlpha=c,this._lineTint=b,this.fillColor=d,this.fillAlpha=e,this._fillTint=d,this.fill=f,this.shape=g,this.type=g.type},PIXI.GraphicsData.prototype.constructor=PIXI.GraphicsData,PIXI.GraphicsData.prototype.clone=function(){return new GraphicsData(this.lineWidth,this.lineColor,this.lineAlpha,this.fillColor,this.fillAlpha,this.fill,this.shape)},c.Graphics=function(a,b,d){void 0===b&&(b=0),void 0===d&&(d=0),this.type=c.GRAPHICS,this.physicsType=c.SPRITE,PIXI.Graphics.call(this),c.Component.Core.init.call(this,a,b,d,"",null)},c.Graphics.prototype=Object.create(PIXI.Graphics.prototype),c.Graphics.prototype.constructor=c.Graphics,c.Component.Core.install.call(c.Graphics.prototype,["Angle","AutoCull","Bounds","Destroy","FixedToCamera","InputEnabled","InWorld","LifeSpan","PhysicsBody","Reset"]),c.Graphics.prototype.preUpdatePhysics=c.Component.PhysicsBody.preUpdate,c.Graphics.prototype.preUpdateLifeSpan=c.Component.LifeSpan.preUpdate,c.Graphics.prototype.preUpdateInWorld=c.Component.InWorld.preUpdate,c.Graphics.prototype.preUpdateCore=c.Component.Core.preUpdate,c.Graphics.prototype.preUpdate=function(){return this.preUpdatePhysics()&&this.preUpdateLifeSpan()&&this.preUpdateInWorld()?this.preUpdateCore():!1},c.Graphics.prototype.destroy=function(a){this.clear(),c.Component.Destroy.prototype.destroy.call(this,a)},c.Graphics.prototype.drawTriangle=function(a,b){void 0===b&&(b=!1);var d=new c.Polygon(a);if(b){var e=new c.Point(this.game.camera.x-a[0].x,this.game.camera.y-a[0].y),f=new c.Point(a[1].x-a[0].x,a[1].y-a[0].y),g=new c.Point(a[1].x-a[2].x,a[1].y-a[2].y),h=g.cross(f);e.dot(h)>0&&this.drawPolygon(d)}else this.drawPolygon(d)},c.Graphics.prototype.drawTriangles=function(a,b,d){void 0===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;e0&&(j+=c[k-1]),h=j+l}else for(var k=0;kq&&Math.abs(q)>o&&(q=-o),0!==q){var m=q*(b.length-1);p+=m}this.canvas.height=p*this._res,this.context.scale(this._res,this._res),navigator.isCocoonJS&&this.context.clearRect(0,0,this.canvas.width,this.canvas.height),this.style.backgroundColor&&(this.context.fillStyle=this.style.backgroundColor,this.context.fillRect(0,0,this.canvas.width,this.canvas.height)),this.context.fillStyle=this.style.fill,this.context.font=this.style.font,this.context.strokeStyle=this.style.stroke,this.context.textBaseline="alphabetic",this.context.lineWidth=this.style.strokeThickness,this.context.lineCap="round",this.context.lineJoin="round";var r,s;for(this._charCount=0,g=0;g0&&(s+=q*g),"right"===this.style.align?r+=e-d[g]:"center"===this.style.align&&(r+=(e-d[g])/2),this.autoRound&&(r=Math.round(r),s=Math.round(s)),this.colors.length>0||this.strokeColors.length>0?this.updateLine(b[g],r,s):(this.style.stroke&&this.style.strokeThickness&&(this.updateShadow(this.style.shadowStroke),0===c?this.context.strokeText(b[g],r,s):this.renderTabLine(b[g],r,s,!1)),this.style.fill&&(this.updateShadow(this.style.shadowFill),0===c?this.context.fillText(b[g],r,s):this.renderTabLine(b[g],r,s,!0)));this.updateTexture()},c.Text.prototype.renderTabLine=function(a,b,c,d){var e=a.split(/(?:\t)/),f=this.style.tabs,g=0;if(Array.isArray(f))for(var h=0,i=0;i0&&(h+=f[i-1]),g=b+h,d?this.context.fillText(e[i],g,c):this.context.strokeText(e[i],g,c);else for(var i=0;ie?(g>0&&(b+="\n"),b+=f[g]+" ",e=this.style.wordWrapWidth-h):(e-=i,b+=f[g]+" ")}dd&&(this.style.wordWrapWidth=d)),this.updateTexture(),this},c.Text.prototype.updateTexture=function(){var a=this.texture.baseTexture,b=this.texture.crop,c=this.texture.frame,d=this.canvas.width,e=this.canvas.height;if(a.width=d,a.height=e,b.width=d,b.height=e,c.width=d,c.height=e,this.texture.width=d,this.texture.height=e,this._width=d,this._height=e,this.textBounds){var f=this.textBounds.x,g=this.textBounds.y;"right"===this.style.boundsAlignH?f=this.textBounds.width-this.canvas.width:"center"===this.style.boundsAlignH&&(f=this.textBounds.halfWidth-this.canvas.width/2),"bottom"===this.style.boundsAlignV?g=this.textBounds.height-this.canvas.height:"middle"===this.style.boundsAlignV&&(g=this.textBounds.halfHeight-this.canvas.height/2),this.pivot.x=-f,this.pivot.y=-g}this.renderable=0!==d&&0!==e,this.texture.baseTexture.dirty()},c.Text.prototype._renderWebGL=function(a){this.dirty&&(this.updateText(),this.dirty=!1),PIXI.Sprite.prototype._renderWebGL.call(this,a)},c.Text.prototype._renderCanvas=function(a){this.dirty&&(this.updateText(),this.dirty=!1),PIXI.Sprite.prototype._renderCanvas.call(this,a)},c.Text.prototype.determineFontProperties=function(a){var b=c.Text.fontPropertiesCache[a];if(!b){b={};var d=c.Text.fontPropertiesCanvas,e=c.Text.fontPropertiesContext;e.font=a;var f=Math.ceil(e.measureText("|MÉq").width),g=Math.ceil(e.measureText("|MÉq").width),h=2*g;if(g=1.4*g|0,d.width=f,d.height=h,e.fillStyle="#f00",e.fillRect(0,0,f,h),e.font=a,e.textBaseline="alphabetic",e.fillStyle="#000",e.fillText("|MÉq",0,g),!e.getImageData(0,0,f,h))return b.ascent=g,b.descent=g+6,b.fontSize=b.ascent+b.descent,c.Text.fontPropertiesCache[a]=b,b;var i,j,k=e.getImageData(0,0,f,h).data,l=k.length,m=4*f,n=0,o=!1;for(i=0;g>i;i++){for(j=0;m>j;j+=4)if(255!==k[n+j]){o=!0;break}if(o)break;n+=m}for(b.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}b.descent=i-g,b.descent+=6,b.fontSize=b.ascent+b.descent,c.Text.fontPropertiesCache[a]=b}return b},c.Text.prototype.getBounds=function(a){return this.dirty&&(this.updateText(),this.dirty=!1),PIXI.Sprite.prototype.getBounds.call(this,a)},Object.defineProperty(c.Text.prototype,"text",{get:function(){return this._text},set:function(a){a!==this._text&&(this._text=a.toString()||"",this.dirty=!0,this.parent&&this.updateTransform())}}),Object.defineProperty(c.Text.prototype,"cssFont",{get:function(){return this.componentsToFont(this._fontComponents)},set:function(a){a=a||"bold 20pt Arial",this._fontComponents=this.fontToComponents(a),this.updateFont(this._fontComponents)}}),Object.defineProperty(c.Text.prototype,"font",{get:function(){return this._fontComponents.fontFamily},set:function(a){a=a||"Arial",a=a.trim(),/^(?:inherit|serif|sans-serif|cursive|fantasy|monospace)$/.exec(a)||/['",]/.exec(a)||(a="'"+a+"'"),this._fontComponents.fontFamily=a,this.updateFont(this._fontComponents)}}),Object.defineProperty(c.Text.prototype,"fontSize",{get:function(){var a=this._fontComponents.fontSize;return a&&/(?:^0$|px$)/.exec(a)?parseInt(a,10):a},set:function(a){a=a||"0","number"==typeof a&&(a+="px"),this._fontComponents.fontSize=a,this.updateFont(this._fontComponents)}}),Object.defineProperty(c.Text.prototype,"fontWeight",{get:function(){return this._fontComponents.fontWeight||"normal"},set:function(a){a=a||"normal",this._fontComponents.fontWeight=a,this.updateFont(this._fontComponents)}}),Object.defineProperty(c.Text.prototype,"fontStyle",{get:function(){return this._fontComponents.fontStyle||"normal"},set:function(a){a=a||"normal",this._fontComponents.fontStyle=a,this.updateFont(this._fontComponents)}}),Object.defineProperty(c.Text.prototype,"fontVariant",{get:function(){return this._fontComponents.fontVariant||"normal"},set:function(a){a=a||"normal",this._fontComponents.fontVariant=a,this.updateFont(this._fontComponents)}}),Object.defineProperty(c.Text.prototype,"fill",{get:function(){return this.style.fill},set:function(a){a!==this.style.fill&&(this.style.fill=a,this.dirty=!0)}}),Object.defineProperty(c.Text.prototype,"align",{get:function(){return this.style.align},set:function(a){a!==this.style.align&&(this.style.align=a,this.dirty=!0)}}),Object.defineProperty(c.Text.prototype,"resolution",{get:function(){return this._res},set:function(a){a!==this._res&&(this._res=a,this.dirty=!0)}}),Object.defineProperty(c.Text.prototype,"tabs",{get:function(){return this.style.tabs},set:function(a){a!==this.style.tabs&&(this.style.tabs=a,this.dirty=!0)}}),Object.defineProperty(c.Text.prototype,"boundsAlignH",{get:function(){return this.style.boundsAlignH},set:function(a){a!==this.style.boundsAlignH&&(this.style.boundsAlignH=a,this.dirty=!0)}}),Object.defineProperty(c.Text.prototype,"boundsAlignV",{get:function(){return this.style.boundsAlignV},set:function(a){a!==this.style.boundsAlignV&&(this.style.boundsAlignV=a,this.dirty=!0)}}),Object.defineProperty(c.Text.prototype,"stroke",{get:function(){return this.style.stroke},set:function(a){a!==this.style.stroke&&(this.style.stroke=a,this.dirty=!0)}}),Object.defineProperty(c.Text.prototype,"strokeThickness",{get:function(){return this.style.strokeThickness},set:function(a){a!==this.style.strokeThickness&&(this.style.strokeThickness=a,this.dirty=!0)}}),Object.defineProperty(c.Text.prototype,"wordWrap",{get:function(){return this.style.wordWrap},set:function(a){a!==this.style.wordWrap&&(this.style.wordWrap=a,this.dirty=!0)}}),Object.defineProperty(c.Text.prototype,"wordWrapWidth",{get:function(){return this.style.wordWrapWidth},set:function(a){a!==this.style.wordWrapWidth&&(this.style.wordWrapWidth=a,this.dirty=!0)}}),Object.defineProperty(c.Text.prototype,"lineSpacing",{get:function(){return this._lineSpacing},set:function(a){a!==this._lineSpacing&&(this._lineSpacing=parseFloat(a),this.dirty=!0,this.parent&&this.updateTransform())}}),Object.defineProperty(c.Text.prototype,"shadowOffsetX",{get:function(){return this.style.shadowOffsetX},set:function(a){a!==this.style.shadowOffsetX&&(this.style.shadowOffsetX=a,this.dirty=!0)}}),Object.defineProperty(c.Text.prototype,"shadowOffsetY",{get:function(){return this.style.shadowOffsetY},set:function(a){a!==this.style.shadowOffsetY&&(this.style.shadowOffsetY=a,this.dirty=!0)}}),Object.defineProperty(c.Text.prototype,"shadowColor",{get:function(){return this.style.shadowColor},set:function(a){a!==this.style.shadowColor&&(this.style.shadowColor=a,this.dirty=!0)}}),Object.defineProperty(c.Text.prototype,"shadowBlur",{get:function(){return this.style.shadowBlur},set:function(a){a!==this.style.shadowBlur&&(this.style.shadowBlur=a,this.dirty=!0)}}),Object.defineProperty(c.Text.prototype,"shadowStroke",{get:function(){return this.style.shadowStroke},set:function(a){a!==this.style.shadowStroke&&(this.style.shadowStroke=a,this.dirty=!0)}}),Object.defineProperty(c.Text.prototype,"shadowFill",{get:function(){return this.style.shadowFill},set:function(a){a!==this.style.shadowFill&&(this.style.shadowFill=a,this.dirty=!0)}}),Object.defineProperty(c.Text.prototype,"width",{get:function(){return this.dirty&&(this.updateText(),this.dirty=!1),this.scale.x*this.texture.frame.width},set:function(a){this.scale.x=a/this.texture.frame.width,this._width=a}}),Object.defineProperty(c.Text.prototype,"height",{get:function(){return this.dirty&&(this.updateText(),this.dirty=!1),this.scale.y*this.texture.frame.height},set:function(a){this.scale.y=a/this.texture.frame.height,this._height=a}}),c.Text.fontPropertiesCache={},c.Text.fontPropertiesCanvas=document.createElement("canvas"),c.Text.fontPropertiesContext=c.Text.fontPropertiesCanvas.getContext("2d"),c.BitmapText=function(a,b,d,e,f,g,h){b=b||0,d=d||0,e=e||"",f=f||"",g=g||32,h=h||"left",PIXI.DisplayObjectContainer.call(this),this.type=c.BITMAPTEXT,this.physicsType=c.SPRITE,this.textWidth=0,this.textHeight=0,this.anchor=new c.Point,this._prevAnchor=new c.Point,this._glyphs=[],this._maxWidth=0,this._text=f,this._data=a.cache.getBitmapFont(e),this._font=e,this._fontSize=g,this._align=h,this._tint=16777215,this.updateText(),this.dirty=!1,c.Component.Core.init.call(this,a,b,d,"",null)},c.BitmapText.prototype=Object.create(PIXI.DisplayObjectContainer.prototype),c.BitmapText.prototype.constructor=c.BitmapText,c.Component.Core.install.call(c.BitmapText.prototype,["Angle","AutoCull","Bounds","Destroy","FixedToCamera","InputEnabled","InWorld","LifeSpan","PhysicsBody","Reset"]),c.BitmapText.prototype.preUpdatePhysics=c.Component.PhysicsBody.preUpdate,c.BitmapText.prototype.preUpdateLifeSpan=c.Component.LifeSpan.preUpdate,c.BitmapText.prototype.preUpdateInWorld=c.Component.InWorld.preUpdate,c.BitmapText.prototype.preUpdateCore=c.Component.Core.preUpdate,c.BitmapText.prototype.preUpdate=function(){return this.preUpdatePhysics()&&this.preUpdateLifeSpan()&&this.preUpdateInWorld()?this.preUpdateCore():!1},c.BitmapText.prototype.postUpdate=function(){c.Component.PhysicsBody.postUpdate.call(this),c.Component.FixedToCamera.postUpdate.call(this),this.body&&this.body.type===c.Physics.ARCADE&&(this.textWidth!==this.body.sourceWidth||this.textHeight!==this.body.sourceHeight)&&this.body.setSize(this.textWidth,this.textHeight)},c.BitmapText.prototype.setText=function(a){this.text=a},c.BitmapText.prototype.scanLine=function(a,b,c){for(var d=0,e=0,f=-1,g=null,h=this._maxWidth>0?this._maxWidth:null,i=[],j=0;j=h&&f>-1)return{width:e,text:c.substr(0,j-(j-f)),end:k,chars:i};e+=m.xAdvance*b,i.push(d+m.xOffset*b),d+=m.xAdvance*b,g=l}}return{width:e,text:c,end:k,chars:i}},c.BitmapText.prototype.updateText=function(){var a=this._data.font;if(a){var b=this.text,c=this._fontSize/a.size,d=[],e=0;this.textWidth=0;do{var f=this.scanLine(a,c,b);f.y=e,d.push(f),f.width>this.textWidth&&(this.textWidth=f.width),e+=a.lineHeight*c,b=b.substr(f.text.length+1)}while(f.end===!1);this.textHeight=e;for(var g=0,h=0,i=this.textWidth*this.anchor.x,j=this.textHeight*this.anchor.y,k=0;k0&&(this._fontSize=a,this.updateText())}}),Object.defineProperty(c.BitmapText.prototype,"text",{get:function(){return this._text},set:function(a){a!==this._text&&(this._text=a.toString()||"",this.updateText())}}),Object.defineProperty(c.BitmapText.prototype,"maxWidth",{get:function(){return this._maxWidth},set:function(a){a!==this._maxWidth&&(this._maxWidth=a,this.updateText())}}),c.RetroFont=function(a,b,d,e,f,g,h,i,j,k){if(!a.cache.checkImageKey(b))return!1;(void 0===g||null===g)&&(g=a.cache.getImage(b).width/d),this.characterWidth=d,this.characterHeight=e,this.characterSpacingX=h||0,this.characterSpacingY=i||0,this.characterPerRow=g,this.offsetX=j||0,this.offsetY=k||0,this.align="left",this.multiLine=!1,this.autoUpperCase=!0,this.customSpacingX=0,this.customSpacingY=0,this.fixedWidth=0,this.fontSet=a.cache.getImage(b),this._text="",this.grabData=[],this.frameData=new c.FrameData;for(var l=this.offsetX,m=this.offsetY,n=0,o=0;o?@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){void 0===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 this.fixedWidth>0?this.resize(this.fixedWidth,this.characterHeight,!0):this.resize(this._text.length*(this.characterWidth+this.customSpacingX),this.characterHeight,!0),a=0,this.align===c.RetroFont.ALIGN_RIGHT?a=this.width-this._text.length*(this.characterWidth+this.customSpacingX):this.align===c.RetroFont.ALIGN_CENTER&&(a=this.width/2-this._text.length*(this.characterWidth+this.customSpacingX)/2,a+=this.customSpacingX/2),0>a&&(a=0),this.pasteLine(this._text,a,0,this.customSpacingX);this.requiresReTint=!0},c.RetroFont.prototype.pasteLine=function(a,b,c,d){for(var e=0;e=0&&(this.stamp.frame=this.grabData[a.charCodeAt(e)],this.renderXY(this.stamp,b,c,!1),b+=this.characterWidth+d,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;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.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.type=c.ROPE,this._scroll=new c.Point,PIXI.Rope.call(this,PIXI.TextureCache.__default,this.points),c.Component.Core.init.call(this,a,b,d,e,f)},c.Rope.prototype=Object.create(PIXI.Rope.prototype),c.Rope.prototype.constructor=c.Rope,c.Component.Core.install.call(c.Rope.prototype,["Angle","Animation","AutoCull","Bounds","BringToTop","Crop","Delta","Destroy","FixedToCamera","InputEnabled","InWorld","LifeSpan","LoadTexture","Overlap","PhysicsBody","Reset","ScaleMinMax","Smoothed"]),c.Rope.prototype.preUpdatePhysics=c.Component.PhysicsBody.preUpdate,c.Rope.prototype.preUpdateLifeSpan=c.Component.LifeSpan.preUpdate,c.Rope.prototype.preUpdateInWorld=c.Component.InWorld.preUpdate,c.Rope.prototype.preUpdateCore=c.Component.Core.preUpdate,c.Rope.prototype.preUpdate=function(){return 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.preUpdatePhysics()&&this.preUpdateLifeSpan()&&this.preUpdateInWorld()?this.preUpdateCore():!1 +},c.Rope.prototype.update=function(){this._hasUpdateAnimation&&this.updateAnimation.call(this)},c.Rope.prototype.reset=function(a,b){return c.Component.Reset.prototype.reset.call(this,a,b),this.tilePosition.x=0,this.tilePosition.y=0,this},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;k=1)&&(l.touch=!0),(window.navigator.msPointerEnabled||window.navigator.pointerEnabled)&&(l.mspointer=!0),l.cocoonJS||("onwheel"in window||l.ie&&"WheelEvent"in window?l.wheelEvent="wheel":"onmousewheel"in window?l.wheelEvent="mousewheel":l.firefox&&"MouseScrollEvent"in window&&(l.wheelEvent="DOMMouseScroll"))}function d(){for(var a=["requestFullscreen","requestFullScreen","webkitRequestFullscreen","webkitRequestFullScreen","msRequestFullscreen","msRequestFullScreen","mozRequestFullScreen","mozRequestFullscreen"],b=document.createElement("div"),c=0;c0&&"none"!==a}var l=this;a(),g(),f(),e(),k(),h(),b(),d(),c()},c.Device.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},c.Device.canPlayVideo=function(a){return"webm"===a&&(this.webmVideo||this.vp9Video)?!0:"mp4"===a&&(this.mp4Video||this.h264Video)?!0:"ogg"===a&&this.oggVideo?!0:"mpeg"===a&&this.hlsVideo?!0:!1},c.Device.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.isAndroidStockBrowser=function(){var a=window.navigator.userAgent.match(/Android.*AppleWebKit\/([\d.]+)/);return a&&a[1]<537},c.DOM={getOffset:function(a,b){b=b||new c.Point;var d=a.getBoundingClientRect(),e=c.DOM.scrollY,f=c.DOM.scrollX,g=document.documentElement.clientTop,h=document.documentElement.clientLeft;return b.x=d.left+f-h,b.y=d.top+e-g,b},getBounds:function(a,b){return void 0===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.visualBounds:1===a.nodeType?this.getBounds(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},inLayoutViewport:function(a,b){var c=this.getBounds(a,b);return!!c&&c.bottom>=0&&c.right>=0&&c.top<=this.layoutBounds.width&&c.left<=this.layoutBounds.height},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.visualBounds.height>this.visualBounds.width?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.visualBounds.height>this.visualBounds.width?d:e},visualBounds:new c.Rectangle,layoutBounds:new c.Rectangle,documentBounds:new c.Rectangle},c.Device.whenReady(function(a){var b=window&&"pageXOffset"in window?function(){return window.pageXOffset}:function(){return document.documentElement.scrollLeft},d=window&&"pageYOffset"in window?function(){return window.pageYOffset}:function(){return document.documentElement.scrollTop};Object.defineProperty(c.DOM,"scrollX",{get:b}),Object.defineProperty(c.DOM,"scrollY",{get:d}),Object.defineProperty(c.DOM.visualBounds,"x",{get:b}),Object.defineProperty(c.DOM.visualBounds,"y",{get:d}),Object.defineProperty(c.DOM.layoutBounds,"x",{value:0}),Object.defineProperty(c.DOM.layoutBounds,"y",{value:0});var e=a.desktop&&document.documentElement.clientWidth<=window.innerWidth&&document.documentElement.clientHeight<=window.innerHeight;if(e){var f=function(){return Math.max(window.innerWidth,document.documentElement.clientWidth)},g=function(){return Math.max(window.innerHeight,document.documentElement.clientHeight)};Object.defineProperty(c.DOM.visualBounds,"width",{get:f}),Object.defineProperty(c.DOM.visualBounds,"height",{get:g}),Object.defineProperty(c.DOM.layoutBounds,"width",{get:f}),Object.defineProperty(c.DOM.layoutBounds,"height",{get:g})}else Object.defineProperty(c.DOM.visualBounds,"width",{get:function(){return window.innerWidth}}),Object.defineProperty(c.DOM.visualBounds,"height",{get:function(){return window.innerHeight}}),Object.defineProperty(c.DOM.layoutBounds,"width",{get:function(){var a=document.documentElement.clientWidth,b=window.innerWidth;return b>a?b:a}}),Object.defineProperty(c.DOM.layoutBounds,"height",{get:function(){var a=document.documentElement.clientHeight,b=window.innerHeight;return b>a?b:a}});Object.defineProperty(c.DOM.documentBounds,"x",{value:0}),Object.defineProperty(c.DOM.documentBounds,"y",{value:0}),Object.defineProperty(c.DOM.documentBounds,"width",{get:function(){var a=document.documentElement;return Math.max(a.clientWidth,a.offsetWidth,a.scrollWidth)}}),Object.defineProperty(c.DOM.documentBounds,"height",{get:function(){var a=document.documentElement;return Math.max(a.clientHeight,a.offsetHeight,a.scrollHeight)}})},null,!0),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 void 0===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){var c=["i","mozI","oI","webkitI","msI"];for(var d in c){var e=c[d]+"mageSmoothingEnabled";if(e in a)return a[e]=b,a}return 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.RequestAnimationFrame=function(a,b){void 0===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 void 0===c&&(c=1e-4),a>b-c},fuzzyCeil:function(a,b){return void 0===b&&(b=1e-4),Math.ceil(a-b)},fuzzyFloor:function(a,b){return void 0===b&&(b=1e-4),Math.floor(a+b)},average:function(){for(var a=0,b=0;b=0?a:a+2*Math.PI},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},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)},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)},roundAwayFromZero:function(a){return a>0?Math.ceil(a):Math.floor(a)},sinCosGenerator:function(a,b,c,d){void 0===b&&(b=1),void 0===c&&(c=1),void 0===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}},distance:function(a,b,c,d){var e=a-c,f=b-d;return Math.sqrt(e*e+f*f)},distanceSq:function(a,b,c,d){var e=a-c,f=b-d;return e*e+f*f},distancePow:function(a,b,c,d,e){return void 0===e&&(e=2),Math.sqrt(Math.pow(c-a,e)+Math.pow(d-b,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 void 0===c&&(c=0),a>b||c>b?1:c>a||c>a?0:(a-c)/b}};var j=Math.PI/180,k=180/Math.PI;c.Math.degToRad=function(a){return a*j},c.Math.radToDeg=function(a){return a*k},c.RandomDataGenerator=function(a){void 0===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){if(this.s0=this.hash(" "),this.s1=this.hash(this.s0),this.s2=this.hash(this.s1),this.c=1,a)for(var b=0;b>>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)+.5)]},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){void 0===c&&(c=!1),(void 0===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){void 0===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.easeMap={Power0:c.Easing.Power0,Power1:c.Easing.Power1,Power2:c.Easing.Power2,Power3:c.Easing.Power3,Power4:c.Easing.Power4,Linear:c.Easing.Linear.None,Quad:c.Easing.Quadratic.Out,Cubic:c.Easing.Cubic.Out,Quart:c.Easing.Quartic.Out,Quint:c.Easing.Quintic.Out,Sine:c.Easing.Sinusoidal.Out,Expo:c.Easing.Exponential.Out,Circ:c.Easing.Circular.Out,Elastic:c.Easing.Elastic.Out,Back:c.Easing.Back.Out,Bounce:c.Easing.Bounce.Out,"Quad.easeIn":c.Easing.Quadratic.In,"Cubic.easeIn":c.Easing.Cubic.In,"Quart.easeIn":c.Easing.Quartic.In,"Quint.easeIn":c.Easing.Quintic.In,"Sine.easeIn":c.Easing.Sinusoidal.In,"Expo.easeIn":c.Easing.Exponential.In,"Circ.easeIn":c.Easing.Circular.In,"Elastic.easeIn":c.Easing.Elastic.In,"Back.easeIn":c.Easing.Back.In,"Bounce.easeIn":c.Easing.Bounce.In,"Quad.easeOut":c.Easing.Quadratic.Out,"Cubic.easeOut":c.Easing.Cubic.Out,"Quart.easeOut":c.Easing.Quartic.Out,"Quint.easeOut":c.Easing.Quintic.Out,"Sine.easeOut":c.Easing.Sinusoidal.Out,"Expo.easeOut":c.Easing.Exponential.Out,"Circ.easeOut":c.Easing.Circular.Out,"Elastic.easeOut":c.Easing.Elastic.Out,"Back.easeOut":c.Easing.Back.Out,"Bounce.easeOut":c.Easing.Bounce.Out,"Quad.easeInOut":c.Easing.Quadratic.InOut,"Cubic.easeInOut":c.Easing.Cubic.InOut,"Quart.easeInOut":c.Easing.Quartic.InOut,"Quint.easeInOut":c.Easing.Quintic.InOut,"Sine.easeInOut":c.Easing.Sinusoidal.InOut,"Expo.easeInOut":c.Easing.Exponential.InOut,"Circ.easeInOut":c.Easing.Circular.InOut,"Elastic.easeInOut":c.Easing.Elastic.InOut,"Back.easeInOut":c.Easing.Back.InOut,"Bounce.easeInOut":c.Easing.Bounce.InOut},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;ad;d++)this.removeFrom(a[d]);else if(a.type===c.GROUP&&b)for(var d=0,e=a.children.length;e>d;d++)this.removeFrom(a.children[d]);else{for(d=0,e=this._tweens.length;e>d;d++)a===this._tweens[d].target&&this.remove(this._tweens[d]);for(d=0,e=this._add.length;e>d;d++)a===this._add[d].target&&this.remove(this._add[d])}},add:function(a){a._manager=this,this._add.push(a) +},create:function(a){return new c.Tween(a,this.game,this)},remove:function(a){var b=this._tweens.indexOf(a);-1!==b?this._tweens[b].pendingDelete=!0:(b=this._add.indexOf(a),-1!==b&&(this._add[b].pendingDelete=!0))},update:function(){var a=this._add.length,b=this._tweens.length;if(0===b&&0===a)return!1;for(var c=0;b>c;)this._tweens[c].update(this.game.time.time)?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.target===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.game=b,this.target=a,this.manager=d,this.timeline=[],this.reverse=!1,this.timeScale=1,this.repeatCounter=0,this.pendingDelete=!1,this.onStart=new c.Signal,this.onLoop=new c.Signal,this.onRepeat=new c.Signal,this.onChildComplete=new c.Signal,this.onComplete=new c.Signal,this.isRunning=!1,this.current=0,this.properties={},this.chainedTween=null,this.isPaused=!1,this._onUpdateCallback=null,this._onUpdateCallbackContext=null,this._pausedTime=0,this._codePaused=!1,this._hasStarted=!1},c.Tween.prototype={to:function(a,b,d,e,f,g,h){return(void 0===b||0>=b)&&(b=1e3),(void 0===d||null===d)&&(d=c.Easing.Default),void 0===e&&(e=!1),void 0===f&&(f=0),void 0===g&&(g=0),void 0===h&&(h=!1),"string"==typeof d&&this.manager.easeMap[d]&&(d=this.manager.easeMap[d]),this.isRunning?(console.warn("Phaser.Tween.to cannot be called after Tween.start"),this):(this.timeline.push(new c.TweenData(this).to(a,b,d,f,g,h)),e&&this.start(),this)},from:function(a,b,d,e,f,g,h){return void 0===b&&(b=1e3),(void 0===d||null===d)&&(d=c.Easing.Default),void 0===e&&(e=!1),void 0===f&&(f=0),void 0===g&&(g=0),void 0===h&&(h=!1),"string"==typeof d&&this.manager.easeMap[d]&&(d=this.manager.easeMap[d]),this.isRunning?(console.warn("Phaser.Tween.from cannot be called after Tween.start"),this):(this.timeline.push(new c.TweenData(this).from(a,b,d,f,g,h)),e&&this.start(),this)},start:function(a){if(void 0===a&&(a=0),null===this.game||null===this.target||0===this.timeline.length||this.isRunning)return this;for(var b=0;ba||a>this.timeline.length-1)&&(a=0),this.current=a,this.timeline[this.current].start(),this},stop:function(a){return void 0===a&&(a=!1),this.isRunning=!1,this._onUpdateCallback=null,this._onUpdateCallbackContext=null,a&&(this.onComplete.dispatch(this.target,this),this.chainedTween&&this.chainedTween.start()),this.manager.remove(this),this},updateTweenData:function(a,b,c){if(0===this.timeline.length)return this;if(void 0===c&&(c=0),-1===c)for(var d=0;d0?arguments[a-1].chainedTween=arguments[a]:this.chainedTween=arguments[a];return this},loop:function(a){return void 0===a&&(a=!0),a?this.repeatAll(-1):this.repeatCounter=0,this},onUpdateCallback:function(a,b){return this._onUpdateCallback=a,this._onUpdateCallbackContext=b,this},pause:function(){this.isPaused=!0,this._codePaused=!0,this._pausedTime=this.game.time.time},_pause:function(){this._codePaused||(this.isPaused=!0,this._pausedTime=this.game.time.time)},resume:function(){if(this.isPaused){this.isPaused=!1,this._codePaused=!1;for(var a=0;a0?(this.repeatCounter--,this.timeline[this.current].start(),this.onRepeat.dispatch(this.target,this),!0):(this.isRunning=!1,this.onComplete.dispatch(this.target,this),this.chainedTween&&this.chainedTween.start(),!1):(this.onChildComplete.dispatch(this.target,this),this.timeline[this.current].start(),!0)}},generateData:function(a,b){if(null===this.game||null===this.target)return null;void 0===a&&(a=60),void 0===b&&(b=[]);for(var c=0;c0?!1:!0,this.isFrom)for(var a in this.vStartCache)this.vStart[a]=this.vEndCache[a],this.vEnd[a]=this.vStartCache[a],this.parent.target[a]=this.vStart[a];return this.value=0,this.yoyoCounter=0,this},loadValues:function(){for(var a in this.parent.properties){if(this.vStart[a]=this.parent.properties[a],Array.isArray(this.vEnd[a])){if(0===this.vEnd[a].length)continue;0===this.percent&&(this.vEnd[a]=[this.vStart[a]].concat(this.vEnd[a]))}"undefined"!=typeof this.vEnd[a]?("string"==typeof this.vEnd[a]&&(this.vEnd[a]=this.vStart[a]+parseFloat(this.vEnd[a],10)),this.parent.properties[a]=this.vEnd[a]):this.vEnd[a]=this.vStart[a],this.vStartCache[a]=this.vStart[a],this.vEndCache[a]=this.vEnd[a]}return this},update:function(a){if(this.isRunning){if(a=this.startTime))return c.TweenData.PENDING;this.isRunning=!0}this.parent.reverse?(this.dt-=this.game.time.elapsedMS*this.parent.timeScale,this.dt=Math.max(this.dt,0)):(this.dt+=this.game.time.elapsedMS*this.parent.timeScale,this.dt=Math.min(this.dt,this.duration)),this.percent=this.dt/this.duration,this.value=this.easingFunction(this.percent);for(var b in this.vEnd){var d=this.vStart[b],e=this.vEnd[b];this.parent.target[b]=Array.isArray(e)?this.interpolationFunction.call(this.interpolationContext,e,this.value):d+(e-d)*this.value}return!this.parent.reverse&&1===this.percent||this.parent.reverse&&0===this.percent?this.repeat():c.TweenData.RUNNING},generateData:function(a){this.dt=this.parent.reverse?this.duration:0;var b=[],c=!1,d=1/a*1e3;do{this.parent.reverse?(this.dt-=d,this.dt=Math.max(this.dt,0)):(this.dt+=d,this.dt=Math.min(this.dt,this.duration)),this.percent=this.dt/this.duration,this.value=this.easingFunction(this.percent);var e={};for(var f in this.vEnd){var g=this.vStart[f],h=this.vEnd[f];e[f]=Array.isArray(h)?this.interpolationFunction(h,this.value):g+(h-g)*this.value}b.push(e),(!this.parent.reverse&&1===this.percent||this.parent.reverse&&0===this.percent)&&(c=!0)}while(!c);if(this.yoyo){var i=b.slice();i.reverse(),b=b.concat(i)}return b},repeat:function(){if(this.yoyo){if(this.inReverse&&0===this.repeatCounter)return c.TweenData.COMPLETE;this.inReverse=!this.inReverse}else if(0===this.repeatCounter)return c.TweenData.COMPLETE;if(this.inReverse)for(var a in this.vStartCache)this.vStart[a]=this.vEndCache[a],this.vEnd[a]=this.vStartCache[a];else{for(var a in this.vStartCache)this.vStart[a]=this.vStartCache[a],this.vEnd[a]=this.vEndCache[a];this.repeatCounter>0&&this.repeatCounter--}return this.startTime=this.game.time.time,this.yoyo&&this.inReverse?this.startTime+=this.yoyoDelay:this.inReverse||(this.startTime+=this.repeatDelay),this.dt=this.parent.reverse?this.duration:0,c.TweenData.LOOPED}},c.TweenData.prototype.constructor=c.TweenData,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 0===a?0:1===a?1:1-Math.cos(a*Math.PI/2)},Out:function(a){return 0===a?0:1===a?1:Math.sin(a*Math.PI/2)},InOut:function(a){return 0===a?0:1===a?1:.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.Easing.Power0=c.Easing.Linear.None,c.Easing.Power1=c.Easing.Quadratic.Out,c.Easing.Power2=c.Easing.Cubic.Out,c.Easing.Power3=c.Easing.Quartic.Out,c.Easing.Power4=c.Easing.Quintic.Out,c.Time=function(a){this.game=a,this.time=0,this.prevTime=0,this.now=0,this.elapsed=0,this.elapsedMS=0,this.physicsElapsed=0,this.physicsElapsedMS=0,this.desiredFps=60,this.suggestedFps=null,this.slowMotion=1,this.advancedTiming=!1,this.frames=0,this.fps=0,this.fpsMin=1e3,this.fpsMax=0,this.msMin=1e3,this.msMax=0,this.pauseDuration=0,this.timeToCall=0,this.timeExpected=0,this.events=new c.Timer(this.game,!1),this._frameCount=0,this._elapsedAccumulator=0,this._started=0,this._timeLastSecond=0,this._pauseStarted=0,this._justResumed=!1,this._timers=[]},c.Time.prototype={boot:function(){this._started=Date.now(),this.time=Date.now(),this.events.start()},add:function(a){return this._timers.push(a),a},create:function(a){void 0===a&&(a=!0);var b=new c.Timer(this.game,a);return this._timers.push(b),b},removeAll:function(){for(var a=0;aa;)this._timers[a].update(this.time)?a++:(this._timers.splice(a,1),b--)},updateAdvancedTiming:function(){this._frameCount++,this._elapsedAccumulator+=this.elapsed,this._frameCount>=2*this.desiredFps&&(this.suggestedFps=5*Math.floor(200/(this._elapsedAccumulator/this._frameCount)),this._frameCount=0,this._elapsedAccumulator=0),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)},gamePaused:function(){this._pauseStarted=Date.now(),this.events.pause();for(var a=this._timers.length;a--;)this._timers[a]._pause()},gameResumed:function(){this.time=Date.now(),this.pauseDuration=this.time-this._pauseStarted,this.events.resume();for(var a=this._timers.length;a--;)this._timers[a]._resume()},totalElapsedSeconds:function(){return.001*(this.time-this._started)},elapsedSince:function(a){return this.time-a},elapsedSecondsSince:function(a){return.001*(this.time-a)},reset:function(){this._started=this.time,this.removeAll()}},c.Time.prototype.constructor=c.Time,c.Timer=function(a,b){void 0===b&&(b=!0),this.game=a,this.running=!1,this.autoDestroy=b,this.expired=!1,this.elapsed=0,this.events=[],this.onComplete=new c.Signal,this.nextTick=0,this.timeCap=1e3,this.paused=!1,this._codePaused=!1,this._started=0,this._pauseStarted=0,this._pauseTotal=0,this._now=Date.now(),this._len=0,this._marked=0,this._i=0,this._diff=0,this._newTick=0},c.Timer.MINUTE=6e4,c.Timer.SECOND=1e3,c.Timer.HALF=500,c.Timer.QUARTER=250,c.Timer.prototype={create:function(a,b,d,e,f,g){a=Math.round(a);var h=a;h+=0===this._now?this.game.time.time:this._now;var i=new c.TimerEvent(this,a,h,d,b,e,f,g);return this.events.push(i),this.order(),this.expired=!1,i},add:function(a,b,c){return this.create(a,!1,0,b,c,Array.prototype.splice.call(arguments,3))},repeat:function(a,b,c,d){return this.create(a,!1,b,c,d,Array.prototype.splice.call(arguments,4))},loop:function(a,b,c){return this.create(a,!0,0,b,c,Array.prototype.splice.call(arguments,3))},start:function(a){if(!this.running){this._started=this.game.time.time+(a||0),this.running=!0;for(var b=0;b0&&(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.events[this._i].pendingDelete;)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},destroy:function(){this.onComplete.removeAll(),this.running=!1,this.events=[],this._len=0,this._i=0}},Object.defineProperty(c.Timer.prototype,"next",{get:function(){return this.nextTick}}),Object.defineProperty(c.Timer.prototype,"duration",{get:function(){return this.running&&this.nextTick>this._now?this.nextTick-this._now:0}}),Object.defineProperty(c.Timer.prototype,"length",{get:function(){return this.events.length}}),Object.defineProperty(c.Timer.prototype,"ms",{get:function(){return this.running?this._now-this._started-this._pauseTotal:0}}),Object.defineProperty(c.Timer.prototype,"seconds",{get:function(){return this.running?.001*this.ms:0}}),c.Timer.prototype.constructor=c.Timer,c.TimerEvent=function(a,b,c,d,e,f,g,h){this.timer=a,this.delay=b,this.tick=c,this.repeatCount=d-1,this.loop=e,this.callback=f,this.callbackContext=g,this.args=h,this.pendingDelete=!1},c.TimerEvent.prototype.constructor=c.TimerEvent,c.AnimationManager=function(a){this.sprite=a,this.game=a.game,this.currentFrame=null,this.currentAnim=null,this.updateIfVisible=!0,this.isLoaded=!1,this._frameData=null,this._anims={},this._outputFrames=[]},c.AnimationManager.prototype={loadFrameData:function(a,b){if(void 0===a)return!1;if(this.isLoaded)for(var c in this._anims)this._anims[c].updateFrameData(a);return this._frameData=a,void 0===b||null===b?this.frame=0:"string"==typeof b?this.frameName=b:this.frame=b,this.isLoaded=!0,!0},copyFrameData:function(a,b){if(this._frameData=a.clone(),this.isLoaded)for(var c in this._anims)this._anims[c].updateFrameData(this._frameData);return void 0===b||null===b?this.frame=0:"string"==typeof b?this.frameName=b:this.frame=b,this.isLoaded=!0,!0},add:function(a,b,d,e,f){return b=b||[],d=d||60,void 0===e&&(e=!1),void 0===f&&(f=b&&"number"==typeof b[0]?!0:!1),this._outputFrames=[],this._frameData.getFrameIndexes(b,f,this._outputFrames),this._anims[a]=new c.Animation(this.game,this.sprite,a,this._frameData,this._outputFrames,d,e),this.currentAnim=this._anims[a],this.sprite.tilingTexture&&(this.sprite.refreshTexture=!0),this._anims[a]},validateFrames:function(a,b){void 0===b&&(b=!0);for(var c=0;cthis._frameData.total)return!1}else if(this._frameData.checkFrameName(a[c])===!1)return!1;return!0},play:function(a,b,c,d){return this._anims[a]?this.currentAnim===this._anims[a]?this.currentAnim.isPlaying===!1?(this.currentAnim.paused=!1,this.currentAnim.play(b,c,d)):this.currentAnim:(this.currentAnim&&this.currentAnim.isPlaying&&this.currentAnim.stop(),this.currentAnim=this._anims[a],this.currentAnim.paused=!1,this.currentFrame=this.currentAnim.currentFrame,this.currentAnim.play(b,c,d)):void 0},stop:function(a,b){void 0===b&&(b=!1),"string"==typeof a?this._anims[a]&&(this.currentAnim=this._anims[a],this.currentAnim.stop(b)):this.currentAnim&&this.currentAnim.stop(b)},update:function(){return this.updateIfVisible&&!this.sprite.visible?!1:this.currentAnim&&this.currentAnim.update()?(this.currentFrame=this.currentAnim.currentFrame,!0):!1},next:function(a){this.currentAnim&&(this.currentAnim.next(a),this.currentFrame=this.currentAnim.currentFrame)},previous:function(a){this.currentAnim&&(this.currentAnim.previous(a),this.currentFrame=this.currentAnim.currentFrame)},getAnimation:function(a){return"string"==typeof a&&this._anims[a]?this._anims[a]:null},refreshFrame:function(){this.sprite.setTexture(PIXI.TextureCache[this.currentFrame.uuid])},destroy:function(){var a=null;for(var a in this._anims)this._anims.hasOwnProperty(a)&&this._anims[a].destroy();this._anims={},this._outputFrames=[],this._frameData=null,this.currentAnim=null,this.currentFrame=null,this.sprite=null,this.game=null}},c.AnimationManager.prototype.constructor=c.AnimationManager,Object.defineProperty(c.AnimationManager.prototype,"frameData",{get:function(){return this._frameData}}),Object.defineProperty(c.AnimationManager.prototype,"frameTotal",{get:function(){return this._frameData.total}}),Object.defineProperty(c.AnimationManager.prototype,"paused",{get:function(){return this.currentAnim.isPaused},set:function(a){this.currentAnim.paused=a}}),Object.defineProperty(c.AnimationManager.prototype,"name",{get:function(){return this.currentAnim?this.currentAnim.name:void 0}}),Object.defineProperty(c.AnimationManager.prototype,"frame",{get:function(){return this.currentFrame?this.currentFrame.index:void 0},set:function(a){"number"==typeof a&&this._frameData&&null!==this._frameData.getFrame(a)&&(this.currentFrame=this._frameData.getFrame(a),this.currentFrame&&this.sprite.setFrame(this.currentFrame))}}),Object.defineProperty(c.AnimationManager.prototype,"frameName",{get:function(){return this.currentFrame?this.currentFrame.name:void 0},set:function(a){"string"==typeof a&&this._frameData&&null!==this._frameData.getFrameByName(a)?(this.currentFrame=this._frameData.getFrameByName(a),this.currentFrame&&(this._frameIndex=this.currentFrame.index,this.sprite.setFrame(this.currentFrame))):console.warn("Cannot set frameName: "+a)}}),c.Animation=function(a,b,d,e,f,g,h){void 0===h&&(h=!1),this.game=a,this._parent=b,this._frameData=e,this.name=d,this._frames=[],this._frames=this._frames.concat(f),this.delay=1e3/g,this.loop=h,this.loopCount=0,this.killOnComplete=!1,this.isFinished=!1,this.isPlaying=!1,this.isPaused=!1,this._pauseStartTime=0,this._frameIndex=0,this._frameDiff=0,this._frameSkip=1,this.currentFrame=this._frameData.getFrame(this._frames[this._frameIndex]),this.onStart=new c.Signal,this.onUpdate=null,this.onComplete=new c.Signal,this.onLoop=new c.Signal,this.game.onPause.add(this.onPause,this),this.game.onResume.add(this.onResume,this)},c.Animation.prototype={play:function(a,b,c){return"number"==typeof a&&(this.delay=1e3/a),"boolean"==typeof b&&(this.loop=b),"undefined"!=typeof c&&(this.killOnComplete=c),this.isPlaying=!0,this.isFinished=!1,this.paused=!1,this.loopCount=0,this._timeLastFrame=this.game.time.time,this._timeNextFrame=this.game.time.time+this.delay,this._frameIndex=0,this.updateCurrentFrame(!1,!0),this._parent.events.onAnimationStart$dispatch(this._parent,this),this.onStart.dispatch(this._parent,this),this._parent.animations.currentAnim=this,this._parent.animations.currentFrame=this.currentFrame,this},restart:function(){this.isPlaying=!0,this.isFinished=!1,this.paused=!1,this.loopCount=0,this._timeLastFrame=this.game.time.time,this._timeNextFrame=this.game.time.time+this.delay,this._frameIndex=0,this.currentFrame=this._frameData.getFrame(this._frames[this._frameIndex]),this._parent.setFrame(this.currentFrame),this._parent.animations.currentAnim=this,this._parent.animations.currentFrame=this.currentFrame,this.onStart.dispatch(this._parent,this)},setFrame:function(a,b){var c;if(void 0===b&&(b=!1),"string"==typeof a)for(var d=0;d=this._timeNextFrame?(this._frameSkip=1,this._frameDiff=this.game.time.time-this._timeNextFrame,this._timeLastFrame=this.game.time.time,this._frameDiff>this.delay&&(this._frameSkip=Math.floor(this._frameDiff/this.delay),this._frameDiff-=this._frameSkip*this.delay),this._timeNextFrame=this.game.time.time+(this.delay-this._frameDiff),this._frameIndex+=this._frameSkip,this._frameIndex>=this._frames.length?this.loop?(this._frameIndex%=this._frames.length,this.currentFrame=this._frameData.getFrame(this._frames[this._frameIndex]),this.currentFrame&&this._parent.setFrame(this.currentFrame),this.loopCount++,this._parent.events.onAnimationLoop$dispatch(this._parent,this),this.onLoop.dispatch(this._parent,this),this.onUpdate?(this.onUpdate.dispatch(this,this.currentFrame),!!this._frameData):!0):(this.complete(),!1):this.updateCurrentFrame(!0)):!1},updateCurrentFrame:function(a,b){if(void 0===b&&(b=!1),!this._frameData)return!1;var c=this.currentFrame.index;return this.currentFrame=this._frameData.getFrame(this._frames[this._frameIndex]),this.currentFrame&&(b||!b&&c!==this.currentFrame.index)&&this._parent.setFrame(this.currentFrame),this.onUpdate&&a?(this.onUpdate.dispatch(this,this.currentFrame),!!this._frameData):!0},next:function(a){void 0===a&&(a=1);var b=this._frameIndex+a;b>=this._frames.length&&(this.loop?b%=this._frames.length:b=this._frames.length-1),b!==this._frameIndex&&(this._frameIndex=b,this.updateCurrentFrame(!0))},previous:function(a){void 0===a&&(a=1);var b=this._frameIndex-a;0>b&&(this.loop?b=this._frames.length+b:b++),b!==this._frameIndex&&(this._frameIndex=b,this.updateCurrentFrame(!0))},updateFrameData:function(a){this._frameData=a,this.currentFrame=this._frameData?this._frameData.getFrame(this._frames[this._frameIndex%this._frames.length]):null},destroy:function(){this._frameData&&(this.game.onPause.remove(this.onPause,this),this.game.onResume.remove(this.onResume,this),this.game=null,this._parent=null,this._frames=null,this._frameData=null,this.currentFrame=null,this.isPlaying=!1,this.onStart.dispose(),this.onLoop.dispose(),this.onComplete.dispose(),this.onUpdate&&this.onUpdate.dispose())},complete:function(){this._frameIndex=this._frames.length-1,this.currentFrame=this._frameData.getFrame(this._frames[this._frameIndex]),this.isPlaying=!1,this.isFinished=!0,this.paused=!1,this._parent.events.onAnimationComplete$dispatch(this._parent,this),this.onComplete.dispatch(this._parent,this),this.killOnComplete&&this._parent.kill()}},c.Animation.prototype.constructor=c.Animation,Object.defineProperty(c.Animation.prototype,"paused",{get:function(){return this.isPaused},set:function(a){this.isPaused=a,a?this._pauseStartTime=this.game.time.time:this.isPlaying&&(this._timeNextFrame=this.game.time.time+this.delay)}}),Object.defineProperty(c.Animation.prototype,"frameTotal",{get:function(){return this._frames.length}}),Object.defineProperty(c.Animation.prototype,"frame",{get:function(){return null!==this.currentFrame?this.currentFrame.index:this._frameIndex},set:function(a){this.currentFrame=this._frameData.getFrame(this._frames[a]),null!==this.currentFrame&&(this._frameIndex=a,this._parent.setFrame(this.currentFrame),this.onUpdate&&this.onUpdate.dispatch(this,this.currentFrame))}}),Object.defineProperty(c.Animation.prototype,"speed",{get:function(){return Math.round(1e3/this.delay)},set:function(a){a>=1&&(this.delay=1e3/a)}}),Object.defineProperty(c.Animation.prototype,"enableUpdate",{get:function(){return null!==this.onUpdate},set:function(a){a&&null===this.onUpdate?this.onUpdate=new c.Signal:a||null===this.onUpdate||(this.onUpdate.dispose(),this.onUpdate=null)}}),c.Animation.generateFrameNames=function(a,b,d,e,f){void 0===e&&(e="");var g=[],h="";if(d>b)for(var i=b;d>=i;i++)h="number"==typeof f?c.Utils.pad(i.toString(),f,"0",1):i.toString(),h=a+h+e,g.push(h);else for(var i=b;i>=d;i--)h="number"==typeof f?c.Utils.pad(i.toString(),f,"0",1):i.toString(),h=a+h+e,g.push(h);return g},c.Frame=function(a,b,d,e,f,g){this.index=a,this.x=b,this.y=d,this.width=e,this.height=f,this.name=g,this.centerX=Math.floor(e/2),this.centerY=Math.floor(f/2),this.distance=c.Math.distance(0,0,e,f),this.rotated=!1,this.rotationDirection="cw",this.trimmed=!1,this.sourceSizeW=e,this.sourceSizeH=f,this.spriteSourceSizeX=0,this.spriteSourceSizeY=0,this.spriteSourceSizeW=0,this.spriteSourceSizeH=0,this.right=this.x+this.width,this.bottom=this.y+this.height},c.Frame.prototype={resize:function(a,b){this.width=a,this.height=b,this.centerX=Math.floor(a/2),this.centerY=Math.floor(b/2),this.distance=c.Math.distance(0,0,a,b),this.sourceSizeW=a,this.sourceSizeH=b,this.right=this.x+a,this.bottom=this.y+b +},setTrim:function(a,b,c,d,e,f,g){this.trimmed=a,a&&(this.sourceSizeW=b,this.sourceSizeH=c,this.centerX=Math.floor(b/2),this.centerY=Math.floor(c/2),this.spriteSourceSizeX=d,this.spriteSourceSizeY=e,this.spriteSourceSizeW=f,this.spriteSourceSizeH=g)},clone:function(){var a=new c.Frame(this.index,this.x,this.y,this.width,this.height,this.name);for(var b in this)this.hasOwnProperty(b)&&(a[b]=this[b]);return a},getRect:function(a){return void 0===a?a=new c.Rectangle(this.x,this.y,this.width,this.height):a.setTo(this.x,this.y,this.width,this.height),a}},c.Frame.prototype.constructor=c.Frame,c.FrameData=function(){this._frames=[],this._frameNames=[]},c.FrameData.prototype={addFrame:function(a){return a.index=this._frames.length,this._frames.push(a),""!==a.name&&(this._frameNames[a.name]=a.index),a},getFrame:function(a){return a>=this._frames.length&&(a=0),this._frames[a]},getFrameByName:function(a){return"number"==typeof this._frameNames[a]?this._frames[this._frameNames[a]]:null},checkFrameName:function(a){return null==this._frameNames[a]?!1:!0},clone:function(){for(var a=new c.FrameData,b=0;b=d;d++)c.push(this._frames[d]);return c},getFrames:function(a,b,c){if(void 0===b&&(b=!0),void 0===c&&(c=[]),void 0===a||0===a.length)for(var d=0;d=d&&(d=Math.floor(-j/Math.min(-1,d))),0>=e&&(e=Math.floor(-k/Math.min(-1,e)));var l=Math.floor((j-g)/(d+h)),m=Math.floor((k-g)/(e+h)),n=l*m;if(-1!==f&&(n=f),0===j||0===k||d>j||e>k||0===n)return console.warn("Phaser.AnimationParser.spriteSheet: '"+b+"'s width/height zero or width/height < given frameWidth/frameHeight"),null;for(var o=new c.FrameData,p=g,q=g,r=0;n>r;r++)o.addFrame(new c.Frame(r,p,q,d,e,"")),p+=d+h,p+d>j&&(p=g,q+=e+h);return o},JSONData:function(a,b){if(!b.frames)return console.warn("Phaser.AnimationParser.JSONData: Invalid Texture Atlas JSON given, missing 'frames' array"),void console.log(b);for(var d,e=new c.FrameData,f=b.frames,g=0;g tag");for(var d,e,f,g,h,i,j,k,l,m,n,o=new c.FrameData,p=b.getElementsByTagName("SubTexture"),q=0;q-1},getAssetIndex:function(a,b){for(var c=-1,d=0;d-1?{index:c,file:this._fileList[c]}:!1},reset:function(a,b){void 0===b&&(b=!1),this.resetLocked||(a&&(this.preloadSprite=null),this.isLoading=!1,this._processingHead=0,this._fileList.length=0,this._flightQueue.length=0,this._fileLoadStarted=!1,this._totalFileCount=0,this._totalPackCount=0,this._loadedPackCount=0,this._loadedFileCount=0,b&&(this.onLoadStart.removeAll(),this.onLoadComplete.removeAll(),this.onPackComplete.removeAll(),this.onFileStart.removeAll(),this.onFileComplete.removeAll(),this.onFileError.removeAll()))},addToFileList:function(a,b,c,d,e,f){if(void 0===e&&(e=!1),void 0===b||""===b)return console.warn("Phaser.Loader: Invalid or no key given of type "+a),this;if(void 0===c||null===c){if(!f)return console.warn("Phaser.Loader: No URL given for file type: "+a+" key: "+b),this;c=b+f}var g={type:a,key:b,path:this.path,url:c,syncPoint:this._withSyncPointDepth>0,data:null,loading:!1,loaded:!1,error:!1};if(d)for(var h in d)g[h]=d[h];var i=this.getAssetIndex(a,b);if(e&&i>-1){var j=this._fileList[i];j.loading||j.loaded?(this._fileList.push(g),this._totalFileCount++):this._fileList[i]=g}else-1===i&&(this._fileList.push(g),this._totalFileCount++);return this},replaceInFileList:function(a,b,c,d){return this.addToFileList(a,b,c,d,!0)},pack:function(a,b,c,d){if(void 0===b&&(b=null),void 0===c&&(c=null),void 0===d&&(d=null),!b&&!c)return console.warn("Phaser.Loader.pack - Both url and data are null. One must be set."),this;var e={type:"packfile",key:a,url:b,path:this.path,syncPoint:!0,data:null,loading:!1,loaded:!1,error:!1,callbackContext:d};c&&("string"==typeof c&&(c=JSON.parse(c)),e.data=c||{},e.loaded=!0);for(var f=0;f=e||d&&this._loadedPackCount===this._totalPackCount)break}if(this.updateProgress(),this._processingHead>=this._fileList.length)this.finishedLoading();else if(!this._flightQueue.length){console.warn("Phaser.Loader - aborting: processing queue empty, loading may have stalled");var f=this;setTimeout(function(){f.finishedLoading(!0)},2e3)}},finishedLoading:function(a){this.hasLoaded||(this.hasLoaded=!0,this.isLoading=!1,a||this._fileLoadStarted||(this._fileLoadStarted=!0,this.onLoadStart.dispatch()),this.onLoadComplete.dispatch(),this.reset(),this.game.state.loadComplete())},asyncComplete:function(a,b){void 0===b&&(b=""),a.loaded=!0,a.error=!!b,b&&(a.errorMessage=b,console.warn("Phaser.Loader - "+a.type+"["+a.key+"]: "+b)),this.processLoadQueue()},processPack:function(a){var b=a.data[a.key];if(!b)return void console.warn("Phaser.Loader - "+a.key+": pack has data, but not for pack key");for(var d=0;d=10)||(this._warnedAboutXDomainRequest=!0,console.warn("Phaser.Loader - using XDomainRequest outside of IE 9"));var f=new window.XDomainRequest;f.open("GET",b,!0),f.responseType=c,f.timeout=3e3,e=e||this.fileError;var g=this;f.onerror=function(){try{return e.call(g,a,f)}catch(b){g.asyncComplete(a,b.message||"Exception")}},f.ontimeout=function(){try{return e.call(g,a,f)}catch(b){g.asyncComplete(a,b.message||"Exception")}},f.onprogress=function(){},f.onload=function(){try{return d.call(g,a,f)}catch(b){g.asyncComplete(a,b.message||"Exception")}},a.requestObject=f,a.requestUrl=b,setTimeout(function(){f.send()},0)},getVideoURL:function(a){for(var b=0;b=0&&(d=d.substr(0,d.indexOf("?")));var e=d.substr((Math.max(0,d.lastIndexOf("."))||1/0)+1);c=e.toLowerCase()}if(this.game.device.canPlayVideo(c))return a[b]}return null},getAudioURL:function(a){if(this.game.sound.noAudio)return null;for(var b=0;b=0&&(d=d.substr(0,d.indexOf("?")));var e=d.substr((Math.max(0,d.lastIndexOf("."))||1/0)+1);c=e.toLowerCase()}if(this.game.device.canPlayAudio(c))return a[b]}return null},fileError:function(a,b,c){var d=a.requestUrl||this.transformUrl(a.url,a),e="error loading asset from URL "+d;!c&&b&&(c=b.status),c&&(e=e+" ("+c+")"),this.asyncComplete(a,e)},fileComplete:function(a,b){var d=!0;switch(a.type){case"packfile":var e=JSON.parse(b.responseText);a.data=e||{};break;case"image":this.cache.addImage(a.key,a.url,a.data);break;case"spritesheet":this.cache.addSpriteSheet(a.key,a.url,a.data,a.frameWidth,a.frameHeight,a.frameMax,a.margin,a.spacing);break;case"textureatlas":if(null==a.atlasURL)this.cache.addTextureAtlas(a.key,a.url,a.data,a.atlasData,a.format);else if(d=!1,a.format==c.Loader.TEXTURE_ATLAS_JSON_ARRAY||a.format==c.Loader.TEXTURE_ATLAS_JSON_HASH)this.xhrLoad(a,this.transformUrl(a.atlasURL,a),"text",this.jsonLoadComplete);else{if(a.format!=c.Loader.TEXTURE_ATLAS_XML_STARLING)throw new Error("Phaser.Loader. Invalid Texture Atlas format: "+a.format);this.xhrLoad(a,this.transformUrl(a.atlasURL,a),"text",this.xmlLoadComplete)}break;case"bitmapfont":a.atlasURL?(d=!1,this.xhrLoad(a,this.transformUrl(a.atlasURL,a),"text",function(a,b){var c;try{c=JSON.parse(b.responseText)}catch(d){}c?(a.atlasType="json",this.jsonLoadComplete(a,b)):(a.atlasType="xml",this.xmlLoadComplete(a,b))})):this.cache.addBitmapFont(a.key,a.url,a.data,a.atlasData,a.atlasType,a.xSpacing,a.ySpacing);break;case"video":if(a.asBlob)try{a.data=new Blob([new Uint8Array(b.response)])}catch(f){throw new Error("Phaser.Loader. Unable to parse video file as Blob: "+a.key)}this.cache.addVideo(a.key,a.url,a.data,a.asBlob);break;case"audio":this.game.sound.usingWebAudio?(a.data=b.response,this.cache.addSound(a.key,a.url,a.data,!0,!1),a.autoDecode&&this.game.sound.decode(a.key)):this.cache.addSound(a.key,a.url,a.data,!1,!0);break;case"text":a.data=b.responseText,this.cache.addText(a.key,a.url,a.data);break;case"shader":a.data=b.responseText,this.cache.addShader(a.key,a.url,a.data);break;case"physics":var e=JSON.parse(b.responseText);this.cache.addPhysicsData(a.key,a.url,e,a.format);break;case"script":a.data=document.createElement("script"),a.data.language="javascript",a.data.type="text/javascript",a.data.defer=!1,a.data.text=b.responseText,document.head.appendChild(a.data),a.callback&&(a.data=a.callback.call(a.callbackContext,a.key,b.responseText));break;case"binary":a.data=a.callback?a.callback.call(a.callbackContext,a.key,b.response):b.response,this.cache.addBinary(a.key,a.data)}d&&this.asyncComplete(a)},jsonLoadComplete:function(a,b){var c=JSON.parse(b.responseText);"tilemap"===a.type?this.cache.addTilemap(a.key,a.url,c,a.format):"bitmapfont"===a.type?this.cache.addBitmapFont(a.key,a.url,a.data,c,a.atlasType,a.xSpacing,a.ySpacing):"json"===a.type?this.cache.addJSON(a.key,a.url,c):this.cache.addTextureAtlas(a.key,a.url,a.data,c,a.format),this.asyncComplete(a)},csvLoadComplete:function(a,b){var c=b.responseText;this.cache.addTilemap(a.key,a.url,c,a.format),this.asyncComplete(a)},xmlLoadComplete:function(a,b){var c=b.responseText,d=this.parseXml(c);if(!d){var e=b.responseType||b.contentType;return console.warn("Phaser.Loader - "+a.key+": invalid XML ("+e+")"),void this.asyncComplete(a,"invalid XML")}"bitmapfont"===a.type?this.cache.addBitmapFont(a.key,a.url,a.data,d,a.atlasType,a.xSpacing,a.ySpacing):"textureatlas"===a.type?this.cache.addTextureAtlas(a.key,a.url,a.data,d,a.format):"xml"===a.type&&this.cache.addXML(a.key,a.url,d),this.asyncComplete(a)},parseXml:function(a){var b;try{if(window.DOMParser){var c=new DOMParser;b=c.parseFromString(a,"text/xml")}else b=new ActiveXObject("Microsoft.XMLDOM"),b.async="false",b.loadXML(a)}catch(d){b=null}return b&&b.documentElement&&!b.getElementsByTagName("parsererror").length?b:null},updateProgress:function(){this.preloadSprite&&(0===this.preloadSprite.direction?this.preloadSprite.rect.width=Math.floor(this.preloadSprite.width/100*this.progress):this.preloadSprite.rect.height=Math.floor(this.preloadSprite.height/100*this.progress),this.preloadSprite.sprite?this.preloadSprite.sprite.updateCrop():this.preloadSprite=null)},totalLoadedFiles:function(){return this._loadedFileCount},totalQueuedFiles:function(){return this._totalFileCount-this._loadedFileCount},totalLoadedPacks:function(){return this._totalPackCount},totalQueuedPacks:function(){return this._totalPackCount-this._loadedPackCount}},Object.defineProperty(c.Loader.prototype,"progressFloat",{get:function(){var a=this._loadedFileCount/this._totalFileCount*100;return c.Math.clamp(a||0,0,100)}}),Object.defineProperty(c.Loader.prototype,"progress",{get:function(){return Math.round(this.progressFloat)}}),c.Loader.prototype.constructor=c.Loader,c.LoaderParser={bitmapFont:function(a,b,c,d){return this.xmlBitmapFont(a,b,c,d)},xmlBitmapFont:function(a,b,c,d){var e={},f=a.getElementsByTagName("info")[0],g=a.getElementsByTagName("common")[0];e.font=f.getAttribute("face"),e.size=parseInt(f.getAttribute("size"),10),e.lineHeight=parseInt(g.getAttribute("lineHeight"),10)+d,e.chars={};for(var h=a.getElementsByTagName("char"),i=0;i=this.durationMS&&(this.usingWebAudio?this.loop?(this.onLoop.dispatch(this),""===this.currentMarker?(this.currentTime=0,this.startTime=this.game.time.time):(this.onMarkerComplete.dispatch(this.currentMarker,this),this.play(this.currentMarker,0,this.volume,!0,!0))):""!==this.currentMarker&&this.stop():this.loop?(this.onLoop.dispatch(this),this.play(this.currentMarker,0,this.volume,!0,!0)):this.stop()))},loopFull:function(a){this.play(null,0,a,!0)},play:function(a,b,c,d,e){if((void 0===a||a===!1||null===a)&&(a=""),void 0===e&&(e=!0),this.isPlaying&&!this.allowMultiple&&!e&&!this.override)return this;if(this._sound&&this.isPlaying&&!this.allowMultiple&&(this.override||e))if(this.usingWebAudio)if(this._sound.disconnect(this.externalNode?this.externalNode:this.gainNode),void 0===this._sound.stop)this._sound.noteOff(0);else try{this._sound.stop(0)}catch(f){}else this.usingAudioTag&&(this._sound.pause(),this._sound.currentTime=0);if(""===a&&Object.keys(this.markers).length>0)return this;if(""!==a){if(this.currentMarker=a,!this.markers[a])return this;this.position=this.markers[a].start,this.volume=this.markers[a].volume,this.loop=this.markers[a].loop,this.duration=this.markers[a].duration,this.durationMS=this.markers[a].durationMS,"undefined"!=typeof c&&(this.volume=c),"undefined"!=typeof d&&(this.loop=d),this._tempMarker=a,this._tempPosition=this.position,this._tempVolume=this.volume,this._tempLoop=this.loop}else b=b||0,void 0===c&&(c=this._volume),void 0===d&&(d=this.loop),this.position=b,this.volume=c,this.loop=d,this.duration=0,this.durationMS=0,this._tempMarker=a,this._tempPosition=b,this._tempVolume=c,this._tempLoop=d;return this.usingWebAudio?this.game.cache.isSoundDecoded(this.key)?(this._sound=this.context.createBufferSource(),this._sound.connect(this.externalNode?this.externalNode:this.gainNode),this._buffer=this.game.cache.getSoundData(this.key),this._sound.buffer=this._buffer,this.loop&&""===a&&(this._sound.loop=!0),this.loop||""!==a||(this._sound.onended=this.onEndedHandler.bind(this)),this.totalDuration=this._sound.buffer.duration,0===this.duration&&(this.duration=this.totalDuration,this.durationMS=Math.ceil(1e3*this.totalDuration)),void 0===this._sound.start?this._sound.noteGrainOn(0,this.position,this.duration):this.loop&&""===a?this._sound.start(0,0):this._sound.start(0,this.position,this.duration),this.isPlaying=!0,this.startTime=this.game.time.time,this.currentTime=0,this.stopTime=this.startTime+this.durationMS,this.onPlay.dispatch(this)):(this.pendingPlayback=!0,this.game.cache.getSound(this.key)&&this.game.cache.getSound(this.key).isDecoding===!1&&this.game.sound.decode(this.key,this)):this.game.cache.getSound(this.key)&&this.game.cache.getSound(this.key).locked?(this.game.cache.reloadSound(this.key),this.pendingPlayback=!0):this._sound&&(this.game.device.cocoonJS||4===this._sound.readyState)?(this._sound.play(),this.totalDuration=this._sound.duration,0===this.duration&&(this.duration=this.totalDuration,this.durationMS=1e3*this.totalDuration),this._sound.currentTime=this.position,this._sound.muted=this._muted,this._sound.volume=this._muted?0:this._volume,this.isPlaying=!0,this.startTime=this.game.time.time,this.currentTime=0,this.stopTime=this.startTime+this.durationMS,this.onPlay.dispatch(this)):this.pendingPlayback=!0,this},restart:function(a,b,c,d){a=a||"",b=b||0,c=c||1,void 0===d&&(d=!1),this.play(a,b,c,d,!0)},pause:function(){this.isPlaying&&this._sound&&(this.paused=!0,this.pausedPosition=this.currentTime,this.pausedTime=this.game.time.time,this.onPause.dispatch(this),this.stop())},resume:function(){if(this.paused&&this._sound){if(this.usingWebAudio){var a=this.position+this.pausedPosition/1e3;this._sound=this.context.createBufferSource(),this._sound.buffer=this._buffer,this._sound.connect(this.externalNode?this.externalNode:this.gainNode),this.loop&&(this._sound.loop=!0),this.loop||""!==this.currentMarker||(this._sound.onended=this.onEndedHandler.bind(this));var b=this.duration-this.pausedPosition/1e3;void 0===this._sound.start?this._sound.noteGrainOn(0,a,b):this.loop&&this.game.device.chrome?42===this.game.device.chromeVersion?this._sound.start(0):this._sound.start(0,a):this._sound.start(0,a,b)}else this._sound.play();this.isPlaying=!0,this.paused=!1,this.startTime+=this.game.time.time-this.pausedTime,this.onResume.dispatch(this)}},stop:function(){if(this.isPlaying&&this._sound)if(this.usingWebAudio)if(this._sound.disconnect(this.externalNode?this.externalNode:this.gainNode),void 0===this._sound.stop)this._sound.noteOff(0);else try{this._sound.stop(0)}catch(a){}else this.usingAudioTag&&(this._sound.pause(),this._sound.currentTime=0);this.pendingPlayback=!1,this.isPlaying=!1;var b=this.currentMarker;""!==this.currentMarker&&this.onMarkerComplete.dispatch(this.currentMarker,this),this.currentMarker="",null!==this.fadeTween&&this.fadeTween.stop(),this.paused||this.onStop.dispatch(this,b)},fadeIn:function(a,b,c){void 0===b&&(b=!1),void 0===c&&(c=this.currentMarker),this.paused||(this.play(c,0,0,b),this.fadeTo(a,1))},fadeOut:function(a){this.fadeTo(a,0)},fadeTo:function(a,b){if(this.isPlaying&&!this.paused&&b!==this.volume){if(void 0===a&&(a=1e3),void 0===b)return void console.warn("Phaser.Sound.fadeTo: No Volume Specified.");this.fadeTween=this.game.add.tween(this).to({volume:b},a,c.Easing.Linear.None,!0),this.fadeTween.onComplete.add(this.fadeComplete,this)}},fadeComplete:function(){this.onFadeComplete.dispatch(this,this.volume),0===this.volume&&this.stop()},destroy:function(a){void 0===a&&(a=!0),this.stop(),a?this.game.sound.remove(this):(this.markers={},this.context=null,this._buffer=null,this.externalNode=null,this.onDecoded.dispose(),this.onPlay.dispose(),this.onPause.dispose(),this.onResume.dispose(),this.onLoop.dispose(),this.onStop.dispose(),this.onMute.dispose(),this.onMarkerComplete.dispose())}},c.Sound.prototype.constructor=c.Sound,Object.defineProperty(c.Sound.prototype,"isDecoding",{get:function(){return this.game.cache.getSound(this.key).isDecoding}}),Object.defineProperty(c.Sound.prototype,"isDecoded",{get:function(){return this.game.cache.isSoundDecoded(this.key)}}),Object.defineProperty(c.Sound.prototype,"mute",{get:function(){return this._muted||this.game.sound.mute},set:function(a){a=a||!1,a!==this._muted&&(a?(this._muted=!0,this._muteVolume=this._tempVolume,this.usingWebAudio?this.gainNode.gain.value=0:this.usingAudioTag&&this._sound&&(this._sound.volume=0)):(this._muted=!1,this.usingWebAudio?this.gainNode.gain.value=this._muteVolume:this.usingAudioTag&&this._sound&&(this._sound.volume=this._muteVolume)),this.onMute.dispatch(this))}}),Object.defineProperty(c.Sound.prototype,"volume",{get:function(){return this._volume},set:function(a){return this.game.device.firefox&&this.usingAudioTag&&(a=this.game.math.clamp(a,0,1)),this._muted?void(this._muteVolume=a):(this._tempVolume=a,this._volume=a,void(this.usingWebAudio?this.gainNode.gain.value=a:this.usingAudioTag&&this._sound&&(this._sound.volume=a)))}}),c.SoundManager=function(a){this.game=a,this.onSoundDecode=new c.Signal,this.onVolumeChange=new c.Signal,this.onMute=new c.Signal,this.onUnMute=new c.Signal,this.context=null,this.usingWebAudio=!1,this.usingAudioTag=!1,this.noAudio=!1,this.connectToMaster=!0,this.touchLocked=!1,this.channels=32,this._codeMuted=!1,this._muted=!1,this._unlockSource=null,this._volume=1,this._sounds=[],this._watchList=new c.ArraySet,this._watching=!1,this._watchCallback=null,this._watchContext=null},c.SoundManager.prototype={boot:function(){if(this.game.device.iOS&&this.game.device.webAudio===!1&&(this.channels=1),window.PhaserGlobal){if(window.PhaserGlobal.disableAudio===!0)return this.noAudio=!0,void(this.touchLocked=!1);if(window.PhaserGlobal.disableWebAudio===!0)return this.usingAudioTag=!0,void(this.touchLocked=!1)}if(window.PhaserGlobal&&window.PhaserGlobal.audioContext)this.context=window.PhaserGlobal.audioContext;else if(window.AudioContext)try{this.context=new window.AudioContext}catch(a){this.context=null,this.usingWebAudio=!1,this.touchLocked=!1}else if(window.webkitAudioContext)try{this.context=new window.webkitAudioContext}catch(a){this.context=null,this.usingWebAudio=!1,this.touchLocked=!1}if(null===this.context){if(void 0===window.Audio)return void(this.noAudio=!0);this.usingAudioTag=!0}else this.usingWebAudio=!0,this.masterGain=void 0===this.context.createGain?this.context.createGainNode():this.context.createGain(),this.masterGain.gain.value=1,this.masterGain.connect(this.context.destination);this.noAudio||(!this.game.device.cocoonJS&&this.game.device.iOS||window.PhaserGlobal&&window.PhaserGlobal.fakeiOSTouchLock)&&this.setTouchLock()},setTouchLock:function(){this.game.input.touch.addTouchLockCallback(this.unlock,this),this.touchLocked=!0},unlock:function(){if(this.noAudio||!this.touchLocked||null!==this._unlockSource)return!0;if(this.usingAudioTag)this.touchLocked=!1,this._unlockSource=null;else if(this.usingWebAudio){var a=this.context.createBuffer(1,1,22050);this._unlockSource=this.context.createBufferSource(),this._unlockSource.buffer=a,this._unlockSource.connect(this.context.destination),void 0===this._unlockSource.start?this._unlockSource.noteOn(0):this._unlockSource.start(0)}return!0},stopAll:function(){if(!this.noAudio)for(var a=0;aa?a=0:a>1&&(a=1),this._volume!==a){if(this._volume=a,this.usingWebAudio)this.masterGain.gain.value=a;else for(var b=0;b-1},reset:function(){this.list.length=0},remove:function(a){var b=this.list.indexOf(a);return b>-1?(this.list.splice(b,1),a):void 0},setAll:function(a,b){for(var c=this.list.length;c--;)this.list[c]&&(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)},removeAll:function(a){void 0===a&&(a=!1);for(var b=this.list.length;b--;)if(this.list[b]){var c=this.remove(this.list[b]);a&&c.destroy()}this.position=0,this.list=[]}},Object.defineProperty(c.ArraySet.prototype,"total",{get:function(){return this.list.length}}),Object.defineProperty(c.ArraySet.prototype,"first",{get:function(){return this.position=0,this.list.length>0?this.list[0]:null}}),Object.defineProperty(c.ArraySet.prototype,"next",{get:function(){return this.position0;b--){var c=Math.floor(Math.random()*(b+1)),d=a[b];a[b]=a[c],a[c]=d}return a},transposeMatrix:function(a){for(var b=a.length,c=a[0].length,d=new Array(c),e=0;c>e;e++){d[e]=new Array(b);for(var f=b-1;f>-1;f--)d[e][f]=a[f][e]}return d},rotateMatrix:function(a,b){if("string"!=typeof b&&(b=(b%360+360)%360),90===b||-270===b||"rotateLeft"===b)a=c.ArrayUtils.transposeMatrix(a),a=a.reverse();else if(-90===b||270===b||"rotateRight"===b)a=a.reverse(),a=c.ArrayUtils.transposeMatrix(a);else if(180===Math.abs(b)||"rotate180"===b){for(var d=0;d=e-a?e:d},rotate:function(a){var b=a.shift();return a.push(b),b},numberArray:function(a,b){for(var c=[],d=a;b>=d;d++)c.push(d);return c},numberArrayStep:function(a,b,d){a=+a||0;var e=typeof b;"number"!==e&&"string"!==e||!d||d[b]!==a||(b=d=null),d=null==d?1:+d||0,null===b?(b=a,a=0):b=+b||0;for(var f=-1,g=Math.max(c.Math.roundAwayFromZero((b-a)/(d||1)),0),h=new Array(g);++f>>0:(a<<24|b<<16|d<<8|e)>>>0},unpackPixel:function(a,b,d,e){return(void 0===b||null===b)&&(b=c.Color.createColor()),(void 0===d||null===d)&&(d=!1),(void 0===e||null===e)&&(e=!1),c.Device.LITTLE_ENDIAN?(b.a=(4278190080&a)>>>24,b.b=(16711680&a)>>>16,b.g=(65280&a)>>>8,b.r=255&a):(b.r=(4278190080&a)>>>24,b.g=(16711680&a)>>>16,b.b=(65280&a)>>>8,b.a=255&a),b.color=a,b.rgba="rgba("+b.r+","+b.g+","+b.b+","+b.a/255+")",d&&c.Color.RGBtoHSL(b.r,b.g,b.b,b),e&&c.Color.RGBtoHSV(b.r,b.g,b.b,b),b},fromRGBA:function(a,b){return b||(b=c.Color.createColor()),b.r=(4278190080&a)>>>24,b.g=(16711680&a)>>>16,b.b=(65280&a)>>>8,b.a=255&a,b.rgba="rgba("+b.r+","+b.g+","+b.b+","+b.a+")",b},toRGBA:function(a,b,c,d){return a<<24|b<<16|c<<8|d},RGBtoHSL:function(a,b,d,e){e||(e=c.Color.createColor(a,b,d,1)),a/=255,b/=255,d/=255;var f=Math.min(a,b,d),g=Math.max(a,b,d);if(e.h=0,e.s=0,e.l=(g+f)/2,g!==f){var h=g-f;e.s=e.l>.5?h/(2-g-f):h/(g+f),g===a?e.h=(b-d)/h+(d>b?6:0):g===b?e.h=(d-a)/h+2:g===d&&(e.h=(a-b)/h+4),e.h/=6}return e},HSLtoRGB:function(a,b,d,e){if(e?(e.r=d,e.g=d,e.b=d):e=c.Color.createColor(d,d,d),0!==b){var f=.5>d?d*(1+b):d+b-d*b,g=2*d-f;e.r=c.Color.hueToColor(g,f,a+1/3),e.g=c.Color.hueToColor(g,f,a),e.b=c.Color.hueToColor(g,f,a-1/3)}return e.r=Math.floor(255*e.r|0),e.g=Math.floor(255*e.g|0),e.b=Math.floor(255*e.b|0),c.Color.updateColor(e),e},RGBtoHSV:function(a,b,d,e){e||(e=c.Color.createColor(a,b,d,255)),a/=255,b/=255,d/=255;var f=Math.min(a,b,d),g=Math.max(a,b,d),h=g-f;return e.h=0,e.s=0===g?0:h/g,e.v=g,g!==f&&(g===a?e.h=(b-d)/h+(d>b?6:0):g===b?e.h=(d-a)/h+2:g===d&&(e.h=(a-b)/h+4),e.h/=6),e},HSVtoRGB:function(a,b,d,e){void 0===e&&(e=c.Color.createColor(0,0,0,1,a,b,0,d));var f,g,h,i=Math.floor(6*a),j=6*a-i,k=d*(1-b),l=d*(1-j*b),m=d*(1-(1-j)*b);switch(i%6){case 0:f=d,g=m,h=k;break;case 1:f=l,g=d,h=k;break;case 2:f=k,g=d,h=m;break;case 3:f=k,g=l,h=d;break;case 4:f=m,g=k,h=d;break;case 5:f=d,g=k,h=l}return e.r=Math.floor(255*f),e.g=Math.floor(255*g),e.b=Math.floor(255*h),c.Color.updateColor(e),e},hueToColor:function(a,b,c){return 0>c&&(c+=1),c>1&&(c-=1),1/6>c?a+6*(b-a)*c:.5>c?b:2/3>c?a+(b-a)*(2/3-c)*6:a},createColor:function(a,b,d,e,f,g,h,i){var j={r:a||0,g:b||0,b:d||0,a:e||1,h:f||0,s:g||0,l:h||0,v:i||0,color:0,color32:0,rgba:""};return c.Color.updateColor(j)},updateColor:function(a){return a.rgba="rgba("+a.r.toString()+","+a.g.toString()+","+a.b.toString()+","+a.a.toString()+")",a.color=c.Color.getColor(a.r,a.g,a.b),a.color32=c.Color.getColor32(a.a,a.r,a.g,a.b),a},getColor32:function(a,b,c,d){return a<<24|b<<16|c<<8|d},getColor:function(a,b,c){return a<<16|b<<8|c},RGBtoString:function(a,b,d,e,f){return void 0===e&&(e=255),void 0===f&&(f="#"),"#"===f?"#"+((1<<24)+(a<<16)+(b<<8)+d).toString(16).slice(1):"0x"+c.Color.componentToHex(e)+c.Color.componentToHex(a)+c.Color.componentToHex(b)+c.Color.componentToHex(d)},hexToRGB:function(a){var b=c.Color.hexToColor(a);return b?c.Color.getColor32(b.a,b.r,b.g,b.b):void 0},hexToColor:function(a,b){a=a.replace(/^(?:#|0x)?([a-f\d])([a-f\d])([a-f\d])$/i,function(a,b,c,d){return b+b+c+c+d+d});var d=/^(?:#|0x)?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i.exec(a);if(d){var e=parseInt(d[1],16),f=parseInt(d[2],16),g=parseInt(d[3],16);b?(b.r=e,b.g=f,b.b=g):b=c.Color.createColor(e,f,g)}return b},webToColor:function(a,b){b||(b=c.Color.createColor());var d=/^rgba?\(\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d+)\s*(?:,\s*(\d+(?:\.\d+)?))?\s*\)$/.exec(a);return d&&(b.r=parseInt(d[1],10),b.g=parseInt(d[2],10),b.b=parseInt(d[3],10),b.a=void 0!==d[4]?parseFloat(d[4]):1,c.Color.updateColor(b)),b},valueToColor:function(a,b){if(b||(b=c.Color.createColor()),"string"==typeof a)return 0===a.indexOf("rgb")?c.Color.webToColor(a,b):(b.a=1,c.Color.hexToColor(a,b));if("number"==typeof a){var d=c.Color.getRGB(a);return b.r=d.r,b.g=d.g,b.b=d.b,b.a=d.a/255,b}return b},componentToHex:function(a){var b=a.toString(16);return 1==b.length?"0"+b:b},HSVColorWheel:function(a,b){void 0===a&&(a=1),void 0===b&&(b=1);for(var d=[],e=0;359>=e;e++)d.push(c.Color.HSVtoRGB(e/359,a,b));return d},HSLColorWheel:function(a,b){void 0===a&&(a=.5),void 0===b&&(b=.5);for(var d=[],e=0;359>=e;e++)d.push(c.Color.HSLtoRGB(e/359,a,b));return d},interpolateColor:function(a,b,d,e,f){void 0===f&&(f=255);var g=c.Color.getRGB(a),h=c.Color.getRGB(b),i=(h.red-g.red)*e/d+g.red,j=(h.green-g.green)*e/d+g.green,k=(h.blue-g.blue)*e/d+g.blue;return c.Color.getColor32(f,i,j,k)},interpolateColorWithRGB:function(a,b,d,e,f,g){var h=c.Color.getRGB(a),i=(b-h.red)*g/f+h.red,j=(d-h.green)*g/f+h.green,k=(e-h.blue)*g/f+h.blue;return c.Color.getColor(i,j,k)},interpolateRGB:function(a,b,d,e,f,g,h,i){var j=(e-a)*i/h+a,k=(f-b)*i/h+b,l=(g-d)*i/h+d;return c.Color.getColor(j,k,l)},getRandomColor:function(a,b,d){if(void 0===a&&(a=0),void 0===b&&(b=255),void 0===d&&(d=255),b>255||a>b)return c.Color.getColor(255,255,255);var e=a+Math.round(Math.random()*(b-a)),f=a+Math.round(Math.random()*(b-a)),g=a+Math.round(Math.random()*(b-a));return c.Color.getColor32(d,e,f,g)},getRGB:function(a){return a>16777215?{alpha:a>>>24,red:a>>16&255,green:a>>8&255,blue:255&a,a:a>>>24,r:a>>16&255,g:a>>8&255,b:255&a}:{alpha:255,red:a>>16&255,green:a>>8&255,blue:255&a,a:255,r:a>>16&255,g:a>>8&255,b:255&a}},getWebRGB:function(a){if("object"==typeof a)return"rgba("+a.r.toString()+","+a.g.toString()+","+a.b.toString()+","+(a.a/255).toString()+")";var b=c.Color.getRGB(a);return"rgba("+b.r.toString()+","+b.g.toString()+","+b.b.toString()+","+(b.a/255).toString()+")"},getAlpha:function(a){return a>>>24},getAlphaFloat:function(a){return(a>>>24)/255},getRed:function(a){return a>>16&255},getGreen:function(a){return a>>8&255},getBlue:function(a){return 255&a},blendNormal:function(a){return a},blendLighten:function(a,b){return b>a?b:a},blendDarken:function(a,b){return b>a?a:b},blendMultiply:function(a,b){return a*b/255},blendAverage:function(a,b){return(a+b)/2},blendAdd:function(a,b){return Math.min(255,a+b)},blendSubtract:function(a,b){return Math.max(0,a+b-255)},blendDifference:function(a,b){return Math.abs(a-b)},blendNegation:function(a,b){return 255-Math.abs(255-a-b)},blendScreen:function(a,b){return 255-((255-a)*(255-b)>>8)},blendExclusion:function(a,b){return a+b-2*a*b/255},blendOverlay:function(a,b){return 128>b?2*a*b/255:255-2*(255-a)*(255-b)/255},blendSoftLight:function(a,b){return 128>b?2*((a>>1)+64)*(b/255):255-2*(255-((a>>1)+64))*(255-b)/255},blendHardLight:function(a,b){return c.Color.blendOverlay(b,a)},blendColorDodge:function(a,b){return 255===b?b:Math.min(255,(a<<8)/(255-b))},blendColorBurn:function(a,b){return 0===b?b:Math.max(0,255-(255-a<<8)/b)},blendLinearDodge:function(a,b){return c.Color.blendAdd(a,b)},blendLinearBurn:function(a,b){return c.Color.blendSubtract(a,b)},blendLinearLight:function(a,b){return 128>b?c.Color.blendLinearBurn(a,2*b):c.Color.blendLinearDodge(a,2*(b-128))},blendVividLight:function(a,b){return 128>b?c.Color.blendColorBurn(a,2*b):c.Color.blendColorDodge(a,2*(b-128))},blendPinLight:function(a,b){return 128>b?c.Color.blendDarken(a,2*b):c.Color.blendLighten(a,2*(b-128))},blendHardMix:function(a,b){return c.Color.blendVividLight(a,b)<128?0:255},blendReflect:function(a,b){return 255===b?b:Math.min(255,a*a/(255-b))},blendGlow:function(a,b){return c.Color.blendReflect(b,a)},blendPhoenix:function(a,b){return Math.min(a,b)-Math.max(a,b)+255}},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.Physics=function(a,b){b=b||{},this.game=a,this.config=b,this.arcade=null,this.p2=null,this.ninja=null,this.box2d=null,this.chipmunk=null,this.matter=null,this.parseConfig()},c.Physics.ARCADE=0,c.Physics.P2JS=1,c.Physics.NINJA=2,c.Physics.BOX2D=3,c.Physics.CHIPMUNK=4,c.Physics.MATTERJS=5,c.Physics.prototype={parseConfig:function(){this.config.hasOwnProperty("arcade")&&this.config.arcade!==!0||!c.Physics.hasOwnProperty("Arcade")||(this.arcade=new c.Physics.Arcade(this.game)),this.config.hasOwnProperty("ninja")&&this.config.ninja===!0&&c.Physics.hasOwnProperty("Ninja")&&(this.ninja=new c.Physics.Ninja(this.game)),this.config.hasOwnProperty("p2")&&this.config.p2===!0&&c.Physics.hasOwnProperty("P2")&&(this.p2=new c.Physics.P2(this.game,this.config)),this.config.hasOwnProperty("box2d")&&this.config.box2d===!0&&c.Physics.hasOwnProperty("BOX2D")&&(this.box2d=new c.Physics.BOX2D(this.game,this.config)),this.config.hasOwnProperty("matter")&&this.config.matter===!0&&c.Physics.hasOwnProperty("Matter")&&(this.matter=new c.Physics.Matter(this.game,this.config))},startSystem:function(a){a===c.Physics.ARCADE?this.arcade=new c.Physics.Arcade(this.game):a===c.Physics.P2JS?null===this.p2?this.p2=new c.Physics.P2(this.game,this.config):this.p2.reset():a===c.Physics.NINJA?this.ninja=new c.Physics.Ninja(this.game):a===c.Physics.BOX2D?null===this.box2d?this.box2d=new c.Physics.Box2D(this.game,this.config):this.box2d.reset():a===c.Physics.MATTERJS&&(null===this.matter?this.matter=new c.Physics.Matter(this.game,this.config):this.matter.reset())},enable:function(a,b,d){void 0===b&&(b=c.Physics.ARCADE),void 0===d&&(d=!1),b===c.Physics.ARCADE?this.arcade.enable(a):b===c.Physics.P2JS&&this.p2?this.p2.enable(a,d):b===c.Physics.NINJA&&this.ninja?this.ninja.enableAABB(a):b===c.Physics.BOX2D&&this.box2d?this.box2d.enable(a):b===c.Physics.MATTERJS&&this.matter&&this.matter.enable(a)},preUpdate:function(){this.p2&&this.p2.preUpdate(),this.box2d&&this.box2d.preUpdate(),this.matter&&this.matter.preUpdate()},update:function(){this.p2&&this.p2.update(),this.box2d&&this.box2d.update(),this.matter&&this.matter.update()},setBoundsToWorld:function(){this.arcade&&this.arcade.setBoundsToWorld(),this.ninja&&this.ninja.setBoundsToWorld(),this.p2&&this.p2.setBoundsToWorld(),this.box2d&&this.box2d.setBoundsToWorld(),this.matter&&this.matter.setBoundsToWorld()},clear:function(){this.p2&&this.p2.clear(),this.box2d&&this.box2d.clear(),this.matter&&this.matter.clear()},reset:function(){this.p2&&this.p2.reset(),this.box2d&&this.box2d.reset(),this.matter&&this.matter.reset()},destroy:function(){this.p2&&this.p2.destroy(),this.box2d&&this.box2d.destroy(),this.matter&&this.matter.destroy(),this.arcade=null,this.ninja=null,this.p2=null,this.box2d=null,this.matter=null}},c.Physics.prototype.constructor=c.Physics,c.Particles=function(a){this.game=a,this.emitters={},this.ID=0},c.Particles.prototype={add:function(a){return this.emitters[a.name]=a,a},remove:function(a){delete this.emitters[a.name]},update:function(){for(var a in this.emitters)this.emitters[a].exists&&this.emitters[a].update()}},c.Particles.prototype.constructor=c.Particles,c.Video=function(a,b,d){if(void 0===b&&(b=null),void 0===d&&(d=null),this.game=a,this.key=b,this.width=0,this.height=0,this.type=c.VIDEO,this.disableTextureUpload=!1,this.touchLocked=!1,this.onPlay=new c.Signal,this.onChangeSource=new c.Signal,this.onComplete=new c.Signal,this.onAccess=new c.Signal,this.onError=new c.Signal,this.onTimeout=new c.Signal,this.timeout=15e3,this._timeOutID=null,this.video=null,this.videoStream=null,this.isStreaming=!1,this.retryLimit=20,this.retry=0,this.retryInterval=500,this._retryID=null,this._codeMuted=!1,this._muted=!1,this._codePaused=!1,this._paused=!1,this._pending=!1,this._autoplay=!1,b&&this.game.cache.checkVideoKey(b)){var e=this.game.cache.getVideo(b);e.isBlob?this.createVideoFromBlob(e.data):this.video=e.data,this.width=this.video.videoWidth,this.height=this.video.videoHeight}else d&&this.createVideoFromURL(d,!1);this.video&&!d?(this.baseTexture=new PIXI.BaseTexture(this.video),this.baseTexture.forceLoaded(this.width,this.height)):(this.baseTexture=new PIXI.BaseTexture(PIXI.TextureCache.__default.baseTexture.source),this.baseTexture.forceLoaded(this.width,this.height)),this.texture=new PIXI.Texture(this.baseTexture),this.textureFrame=new c.Frame(0,0,0,this.width,this.height,"video"),this.texture.setFrame(this.textureFrame),this.texture.valid=!1,null!==b&&this.video&&(this.texture.valid=this.video.canplay),this.snapshot=null,c.BitmapData&&(this.snapshot=new c.BitmapData(this.game,"",this.width,this.height)),!this.game.device.cocoonJS&&(this.game.device.iOS||this.game.device.android)||window.PhaserGlobal&&window.PhaserGlobal.fakeiOSTouchLock?this.setTouchLock():e&&(e.locked=!1)},c.Video.prototype={connectToMediaStream:function(a,b){return a&&b&&(this.video=a,this.videoStream=b,this.isStreaming=!0,this.baseTexture.source=this.video,this.updateTexture(null,this.video.videoWidth,this.video.videoHeight),this.onAccess.dispatch(this)),this},startMediaStream:function(a,b,c){if(void 0===a&&(a=!1),void 0===b&&(b=null),void 0===c&&(c=null),!this.game.device.getUserMedia)return this.onError.dispatch(this,"No getUserMedia"),!1;null!==this.videoStream&&this.videoStream.stop(),this.removeVideoElement(),this.video=document.createElement("video"),this.video.setAttribute("autoplay","autoplay"),null!==b&&(this.video.width=b),null!==c&&(this.video.height=c),this._timeOutID=window.setTimeout(this.getUserMediaTimeout.bind(this),this.timeout);try{navigator.getUserMedia({audio:a,video:!0},this.getUserMediaSuccess.bind(this),this.getUserMediaError.bind(this))}catch(d){this.getUserMediaError(d)}return this},getUserMediaTimeout:function(){clearTimeout(this._timeOutID),this.onTimeout.dispatch(this)},getUserMediaError:function(a){clearTimeout(this._timeOutID),this.onError.dispatch(this,a)},getUserMediaSuccess:function(a){clearTimeout(this._timeOutID),this.videoStream=a,void 0!==this.video.mozSrcObject?this.video.mozSrcObject=a:this.video.src=window.URL&&window.URL.createObjectURL(a)||a;var b=this;this.video.onloadeddata=function(){function a(){if(c>0)if(b.video.videoWidth>0){var d=b.video.videoWidth,e=b.video.videoHeight;isNaN(b.video.videoHeight)&&(e=d/(4/3)),b.video.play(),b.isStreaming=!0,b.baseTexture.source=b.video,b.updateTexture(null,d,e),b.onAccess.dispatch(b)}else window.setTimeout(a,500);else console.warn("Unable to connect to video stream. Webcam error?");c--}var c=10;a()}},createVideoFromBlob:function(a){var b=this;return this.video=document.createElement("video"),this.video.controls=!1,this.video.setAttribute("autoplay","autoplay"),this.video.addEventListener("loadeddata",function(a){b.updateTexture(a)},!0),this.video.src=window.URL.createObjectURL(a),this.video.canplay=!0,this},createVideoFromURL:function(a,b){return void 0===b&&(b=!1),this.texture&&(this.texture.valid=!1),this.video=document.createElement("video"),this.video.controls=!1,b&&this.video.setAttribute("autoplay","autoplay"),this.video.src=a,this.video.canplay=!0,this.video.load(),this.retry=this.retryLimit,this._retryID=window.setTimeout(this.checkVideoProgress.bind(this),this.retryInterval),this.key=a,this},updateTexture:function(a,b,c){var d=!1;(void 0===b||null===b)&&(b=this.video.videoWidth,d=!0),(void 0===c||null===c)&&(c=this.video.videoHeight),this.width=b,this.height=c,this.baseTexture.source!==this.video&&(this.baseTexture.source=this.video),this.baseTexture.forceLoaded(b,c),this.texture.frame.resize(b,c),this.texture.width=b,this.texture.height=c,this.texture.valid=!0,this.snapshot&&this.snapshot.resize(b,c),d&&null!==this.key&&(this.onChangeSource.dispatch(this,b,c),this._autoplay&&(this.video.play(),this.onPlay.dispatch(this,this.loop,this.playbackRate)))},complete:function(){this.onComplete.dispatch(this)},play:function(a,b){return void 0===a&&(a=!1),void 0===b&&(b=1),this.game.sound.onMute&&(this.game.sound.onMute.add(this.setMute,this),this.game.sound.onUnMute.add(this.unsetMute,this),this.game.sound.mute&&this.setMute()),this.game.onPause.add(this.setPause,this),this.game.onResume.add(this.setResume,this),this.video.addEventListener("ended",this.complete.bind(this),!0),this.video.loop=a?"loop":"",this.video.playbackRate=b,this.touchLocked?this._pending=!0:(this._pending=!1,null!==this.key&&(4!==this.video.readyState?(this.retry=this.retryLimit,this._retryID=window.setTimeout(this.checkVideoProgress.bind(this),this.retryInterval)):this.video.addEventListener("playing",this.playHandler.bind(this),!0)),this.video.play(),this.onPlay.dispatch(this,a,b)),this},playHandler:function(){this.video.removeEventListener("playing",this.playHandler.bind(this)),this.updateTexture()},stop:function(){return this.game.sound.onMute&&(this.game.sound.onMute.remove(this.setMute,this),this.game.sound.onUnMute.remove(this.unsetMute,this)),this.game.onPause.remove(this.setPause,this),this.game.onResume.remove(this.setResume,this),this.isStreaming?(this.video.mozSrcObject?(this.video.mozSrcObject.stop(),this.video.src=null):(this.video.src="",this.videoStream.stop()),this.videoStream=null,this.isStreaming=!1):(this.video.removeEventListener("ended",this.complete.bind(this)),this.touchLocked?this._pending=!1:this.video.pause()),this},add:function(a){if(Array.isArray(a))for(var b=0;b0?this._retryID=window.setTimeout(this.checkVideoProgress.bind(this),this.retryInterval):console.warn("Phaser.Video: Unable to start downloading video in time",this.isStreaming))},setTouchLock:function(){this.game.input.touch.addTouchLockCallback(this.unlock,this),this.touchLocked=!0},unlock:function(){if(this.touchLocked=!1,this.video.play(),this.onPlay.dispatch(this,this.loop,this.playbackRate),this.key){var a=this.game.cache.getVideo(this.key);a&&!a.isBlob&&(a.locked=!1)}return!0},grab:function(a,b,c){return void 0===a&&(a=!1),void 0===b&&(b=1),void 0===c&&(c=null),null===this.snapshot?void console.warn("Video.grab cannot run because Phaser.BitmapData is unavailable"):(a&&this.snapshot.cls(),this.snapshot.copy(this.video,0,0,this.width,this.height,0,0,this.width,this.height,0,0,0,1,1,b,c),this.snapshot)},removeVideoElement:function(){if(this.video){for(this.video.parentNode&&this.video.parentNode.removeChild(this.video);this.video.hasChildNodes();)this.video.removeChild(this.video.firstChild);this.video.removeAttribute("autoplay"),this.video.removeAttribute("src"),this.video=null}},destroy:function(){this.stop(),this.removeVideoElement(),this.touchLocked&&this.game.input.touch.removeTouchLockCallback(this.unlock,this),this._retryID&&window.clearTimeout(this._retryID)}},Object.defineProperty(c.Video.prototype,"currentTime",{get:function(){return this.video?this.video.currentTime:0},set:function(a){this.video.currentTime=a}}),Object.defineProperty(c.Video.prototype,"duration",{get:function(){return this.video?this.video.duration:0}}),Object.defineProperty(c.Video.prototype,"progress",{get:function(){return this.video?this.video.currentTime/this.video.duration:0}}),Object.defineProperty(c.Video.prototype,"mute",{get:function(){return this._muted},set:function(a){if(a=a||null){if(this._muted)return;this._codeMuted=!0,this.setMute()}else{if(!this._muted)return;this._codeMuted=!1,this.unsetMute()}}}),Object.defineProperty(c.Video.prototype,"paused",{get:function(){return this._paused},set:function(a){if(a=a||null,!this.touchLocked)if(a){if(this._paused)return;this._codePaused=!0,this.setPause()}else{if(!this._paused)return;this._codePaused=!1,this.setResume()}}}),Object.defineProperty(c.Video.prototype,"volume",{get:function(){return this.video?this.video.volume:1},set:function(a){0>a?a=0:a>1&&(a=1),this.video&&(this.video.volume=a)}}),Object.defineProperty(c.Video.prototype,"playbackRate",{get:function(){return this.video?this.video.playbackRate:1},set:function(a){this.video&&(this.video.playbackRate=a)}}),Object.defineProperty(c.Video.prototype,"loop",{get:function(){return this.video?this.video.loop:!1},set:function(a){a&&this.video?this.video.loop="loop":this.video&&(this.video.loop="")}}),Object.defineProperty(c.Video.prototype,"playing",{get:function(){return!(this.video.paused&&this.video.ended)}}),c.Video.prototype.constructor=c.Video,void 0===PIXI.blendModes&&(PIXI.blendModes=c.blendModes),void 0===PIXI.scaleModes&&(PIXI.scaleModes=c.scaleModes),void 0===PIXI.Texture.emptyTexture&&(PIXI.Texture.emptyTexture=new PIXI.Texture(new PIXI.BaseTexture)),void 0===PIXI.DisplayObject._tempMatrix&&(PIXI.DisplayObject._tempMatrix=new PIXI.Matrix),void 0===PIXI.RenderTexture.tempMatrix&&(PIXI.RenderTexture.tempMatrix=new PIXI.Matrix),void 0===PIXI.Graphics.POLY&&(PIXI.Graphics.POLY=c.POLYGON,PIXI.Graphics.RECT=c.RECTANGLE,PIXI.Graphics.CIRC=c.CIRCLE,PIXI.Graphics.ELIP=c.ELLIPSE,PIXI.Graphics.RREC=c.ROUNDEDRECTANGLE),PIXI.TextureSilentFail=!0,"undefined"!=typeof exports?("undefined"!=typeof module&&module.exports&&(exports=module.exports=c),exports.Phaser=c):"undefined"!=typeof define&&define.amd?define("Phaser",function(){return b.Phaser=c}()):b.Phaser=c}.call(this); //# sourceMappingURL=phaser-no-physics.map \ No newline at end of file diff --git a/build/phaser.js b/build/phaser.js index b0db78b8b..8090c86fc 100644 --- a/build/phaser.js +++ b/build/phaser.js @@ -7,7 +7,7 @@ * * Phaser - http://phaser.io * -* v2.4.0 "Katar" - Built: Wed Jul 22 2015 15:30:10 +* v2.4.1 "Ionin Spring" - Built: Thu Jul 23 2015 16:01:33 * * By Richard Davey http://www.photonstorm.com @photonstorm * @@ -28,11 +28,13624 @@ * -- Albert Einstein */ +/** + * The MIT License (MIT) + * + * Copyright (c) 2015 p2.js authors + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + * THE SOFTWARE. + */ +!function(e){if("object"==typeof exports)module.exports=e();else if("function"==typeof define&&false)define(e);else{var f;"undefined"!=typeof window?f=window:"undefined"!=typeof global?f=global:"undefined"!=typeof self&&(f=self),f.p2=e()}}(function(){var define,module,exports;return (function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require=="function"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);throw new Error("Cannot find module '"+o+"'")}var f=n[o]={exports:{}};t[o][0].call(f.exports,function(e){var n=t[o][1][e];return s(n?n:e)},f,f.exports,e,t,n,r)}return n[o].exports}var i=typeof require=="function"&&require;for(var o=0;o=0 && s<=1 && t>=0 && t<=1); +}; + + +},{"./Scalar":4}],2:[function(_dereq_,module,exports){ +module.exports = Point; + +/** + * Point related functions + * @class Point + */ +function Point(){}; + +/** + * Get the area of a triangle spanned by the three given points. Note that the area will be negative if the points are not given in counter-clockwise order. + * @static + * @method area + * @param {Array} a + * @param {Array} b + * @param {Array} c + * @return {Number} + */ +Point.area = function(a,b,c){ + return (((b[0] - a[0])*(c[1] - a[1]))-((c[0] - a[0])*(b[1] - a[1]))); +}; + +Point.left = function(a,b,c){ + return Point.area(a,b,c) > 0; +}; + +Point.leftOn = function(a,b,c) { + return Point.area(a, b, c) >= 0; +}; + +Point.right = function(a,b,c) { + return Point.area(a, b, c) < 0; +}; + +Point.rightOn = function(a,b,c) { + return Point.area(a, b, c) <= 0; +}; + +var tmpPoint1 = [], + tmpPoint2 = []; + +/** + * Check if three points are collinear + * @method collinear + * @param {Array} a + * @param {Array} b + * @param {Array} c + * @param {Number} [thresholdAngle=0] Threshold angle to use when comparing the vectors. The function will return true if the angle between the resulting vectors is less than this value. Use zero for max precision. + * @return {Boolean} + */ +Point.collinear = function(a,b,c,thresholdAngle) { + if(!thresholdAngle) + return Point.area(a, b, c) == 0; + else { + var ab = tmpPoint1, + bc = tmpPoint2; + + ab[0] = b[0]-a[0]; + ab[1] = b[1]-a[1]; + bc[0] = c[0]-b[0]; + bc[1] = c[1]-b[1]; + + var dot = ab[0]*bc[0] + ab[1]*bc[1], + magA = Math.sqrt(ab[0]*ab[0] + ab[1]*ab[1]), + magB = Math.sqrt(bc[0]*bc[0] + bc[1]*bc[1]), + angle = Math.acos(dot/(magA*magB)); + return angle < thresholdAngle; + } +}; + +Point.sqdist = function(a,b){ + var dx = b[0] - a[0]; + var dy = b[1] - a[1]; + return dx * dx + dy * dy; +}; + +},{}],3:[function(_dereq_,module,exports){ +var Line = _dereq_("./Line") +, Point = _dereq_("./Point") +, Scalar = _dereq_("./Scalar") + +module.exports = Polygon; + +/** + * Polygon class. + * @class Polygon + * @constructor + */ +function Polygon(){ + + /** + * Vertices that this polygon consists of. An array of array of numbers, example: [[0,0],[1,0],..] + * @property vertices + * @type {Array} + */ + this.vertices = []; +} + +/** + * Get a vertex at position i. It does not matter if i is out of bounds, this function will just cycle. + * @method at + * @param {Number} i + * @return {Array} + */ +Polygon.prototype.at = function(i){ + var v = this.vertices, + s = v.length; + return v[i < 0 ? i % s + s : i % s]; +}; + +/** + * Get first vertex + * @method first + * @return {Array} + */ +Polygon.prototype.first = function(){ + return this.vertices[0]; +}; + +/** + * Get last vertex + * @method last + * @return {Array} + */ +Polygon.prototype.last = function(){ + return this.vertices[this.vertices.length-1]; +}; + +/** + * Clear the polygon data + * @method clear + * @return {Array} + */ +Polygon.prototype.clear = function(){ + this.vertices.length = 0; +}; + +/** + * Append points "from" to "to"-1 from an other polygon "poly" onto this one. + * @method append + * @param {Polygon} poly The polygon to get points from. + * @param {Number} from The vertex index in "poly". + * @param {Number} to The end vertex index in "poly". Note that this vertex is NOT included when appending. + * @return {Array} + */ +Polygon.prototype.append = function(poly,from,to){ + if(typeof(from) == "undefined") throw new Error("From is not given!"); + if(typeof(to) == "undefined") throw new Error("To is not given!"); + + if(to-1 < from) throw new Error("lol1"); + if(to > poly.vertices.length) throw new Error("lol2"); + if(from < 0) throw new Error("lol3"); + + for(var i=from; i v[br][0])) { + br = i; + } + } + + // reverse poly if clockwise + if (!Point.left(this.at(br - 1), this.at(br), this.at(br + 1))) { + this.reverse(); + } +}; + +/** + * Reverse the vertices in the polygon + * @method reverse + */ +Polygon.prototype.reverse = function(){ + var tmp = []; + for(var i=0, N=this.vertices.length; i!==N; i++){ + tmp.push(this.vertices.pop()); + } + this.vertices = tmp; +}; + +/** + * Check if a point in the polygon is a reflex point + * @method isReflex + * @param {Number} i + * @return {Boolean} + */ +Polygon.prototype.isReflex = function(i){ + return Point.right(this.at(i - 1), this.at(i), this.at(i + 1)); +}; + +var tmpLine1=[], + tmpLine2=[]; + +/** + * Check if two vertices in the polygon can see each other + * @method canSee + * @param {Number} a Vertex index 1 + * @param {Number} b Vertex index 2 + * @return {Boolean} + */ +Polygon.prototype.canSee = function(a,b) { + var p, dist, l1=tmpLine1, l2=tmpLine2; + + if (Point.leftOn(this.at(a + 1), this.at(a), this.at(b)) && Point.rightOn(this.at(a - 1), this.at(a), this.at(b))) { + return false; + } + dist = Point.sqdist(this.at(a), this.at(b)); + for (var i = 0; i !== this.vertices.length; ++i) { // for each edge + if ((i + 1) % this.vertices.length === a || i === a) // ignore incident edges + continue; + if (Point.leftOn(this.at(a), this.at(b), this.at(i + 1)) && Point.rightOn(this.at(a), this.at(b), this.at(i))) { // if diag intersects an edge + l1[0] = this.at(a); + l1[1] = this.at(b); + l2[0] = this.at(i); + l2[1] = this.at(i + 1); + p = Line.lineInt(l1,l2); + if (Point.sqdist(this.at(a), p) < dist) { // if edge is blocking visibility to b + return false; + } + } + } + + return true; +}; + +/** + * Copy the polygon from vertex i to vertex j. + * @method copy + * @param {Number} i + * @param {Number} j + * @param {Polygon} [targetPoly] Optional target polygon to save in. + * @return {Polygon} The resulting copy. + */ +Polygon.prototype.copy = function(i,j,targetPoly){ + var p = targetPoly || new Polygon(); + p.clear(); + if (i < j) { + // Insert all vertices from i to j + for(var k=i; k<=j; k++) + p.vertices.push(this.vertices[k]); + + } else { + + // Insert vertices 0 to j + for(var k=0; k<=j; k++) + p.vertices.push(this.vertices[k]); + + // Insert vertices i to end + for(var k=i; k 0) + return this.slice(edges); + else + return [this]; +}; + +/** + * Slices the polygon given one or more cut edges. If given one, this function will return two polygons (false on failure). If many, an array of polygons. + * @method slice + * @param {Array} cutEdges A list of edges, as returned by .getCutEdges() + * @return {Array} + */ +Polygon.prototype.slice = function(cutEdges){ + if(cutEdges.length == 0) return [this]; + if(cutEdges instanceof Array && cutEdges.length && cutEdges[0] instanceof Array && cutEdges[0].length==2 && cutEdges[0][0] instanceof Array){ + + var polys = [this]; + + for(var i=0; i maxlevel){ + console.warn("quickDecomp: max level ("+maxlevel+") reached."); + return result; + } + + for (var i = 0; i < this.vertices.length; ++i) { + if (poly.isReflex(i)) { + reflexVertices.push(poly.vertices[i]); + upperDist = lowerDist = Number.MAX_VALUE; + + + for (var j = 0; j < this.vertices.length; ++j) { + if (Point.left(poly.at(i - 1), poly.at(i), poly.at(j)) + && Point.rightOn(poly.at(i - 1), poly.at(i), poly.at(j - 1))) { // if line intersects with an edge + p = getIntersectionPoint(poly.at(i - 1), poly.at(i), poly.at(j), poly.at(j - 1)); // find the point of intersection + if (Point.right(poly.at(i + 1), poly.at(i), p)) { // make sure it's inside the poly + d = Point.sqdist(poly.vertices[i], p); + if (d < lowerDist) { // keep only the closest intersection + lowerDist = d; + lowerInt = p; + lowerIndex = j; + } + } + } + if (Point.left(poly.at(i + 1), poly.at(i), poly.at(j + 1)) + && Point.rightOn(poly.at(i + 1), poly.at(i), poly.at(j))) { + p = getIntersectionPoint(poly.at(i + 1), poly.at(i), poly.at(j), poly.at(j + 1)); + if (Point.left(poly.at(i - 1), poly.at(i), p)) { + d = Point.sqdist(poly.vertices[i], p); + if (d < upperDist) { + upperDist = d; + upperInt = p; + upperIndex = j; + } + } + } + } + + // if there are no vertices to connect to, choose a point in the middle + if (lowerIndex == (upperIndex + 1) % this.vertices.length) { + //console.log("Case 1: Vertex("+i+"), lowerIndex("+lowerIndex+"), upperIndex("+upperIndex+"), poly.size("+this.vertices.length+")"); + p[0] = (lowerInt[0] + upperInt[0]) / 2; + p[1] = (lowerInt[1] + upperInt[1]) / 2; + steinerPoints.push(p); + + if (i < upperIndex) { + //lowerPoly.insert(lowerPoly.end(), poly.begin() + i, poly.begin() + upperIndex + 1); + lowerPoly.append(poly, i, upperIndex+1); + lowerPoly.vertices.push(p); + upperPoly.vertices.push(p); + if (lowerIndex != 0){ + //upperPoly.insert(upperPoly.end(), poly.begin() + lowerIndex, poly.end()); + upperPoly.append(poly,lowerIndex,poly.vertices.length); + } + //upperPoly.insert(upperPoly.end(), poly.begin(), poly.begin() + i + 1); + upperPoly.append(poly,0,i+1); + } else { + if (i != 0){ + //lowerPoly.insert(lowerPoly.end(), poly.begin() + i, poly.end()); + lowerPoly.append(poly,i,poly.vertices.length); + } + //lowerPoly.insert(lowerPoly.end(), poly.begin(), poly.begin() + upperIndex + 1); + lowerPoly.append(poly,0,upperIndex+1); + lowerPoly.vertices.push(p); + upperPoly.vertices.push(p); + //upperPoly.insert(upperPoly.end(), poly.begin() + lowerIndex, poly.begin() + i + 1); + upperPoly.append(poly,lowerIndex,i+1); + } + } else { + // connect to the closest point within the triangle + //console.log("Case 2: Vertex("+i+"), closestIndex("+closestIndex+"), poly.size("+this.vertices.length+")\n"); + + if (lowerIndex > upperIndex) { + upperIndex += this.vertices.length; + } + closestDist = Number.MAX_VALUE; + + if(upperIndex < lowerIndex){ + return result; + } + + for (var j = lowerIndex; j <= upperIndex; ++j) { + if (Point.leftOn(poly.at(i - 1), poly.at(i), poly.at(j)) + && Point.rightOn(poly.at(i + 1), poly.at(i), poly.at(j))) { + d = Point.sqdist(poly.at(i), poly.at(j)); + if (d < closestDist) { + closestDist = d; + closestIndex = j % this.vertices.length; + } + } + } + + if (i < closestIndex) { + lowerPoly.append(poly,i,closestIndex+1); + if (closestIndex != 0){ + upperPoly.append(poly,closestIndex,v.length); + } + upperPoly.append(poly,0,i+1); + } else { + if (i != 0){ + lowerPoly.append(poly,i,v.length); + } + lowerPoly.append(poly,0,closestIndex+1); + upperPoly.append(poly,closestIndex,i+1); + } + } + + // solve smallest poly first + if (lowerPoly.vertices.length < upperPoly.vertices.length) { + lowerPoly.quickDecomp(result,reflexVertices,steinerPoints,delta,maxlevel,level); + upperPoly.quickDecomp(result,reflexVertices,steinerPoints,delta,maxlevel,level); + } else { + upperPoly.quickDecomp(result,reflexVertices,steinerPoints,delta,maxlevel,level); + lowerPoly.quickDecomp(result,reflexVertices,steinerPoints,delta,maxlevel,level); + } + + return result; + } + } + result.push(this); + + return result; +}; + +/** + * Remove collinear points in the polygon. + * @method removeCollinearPoints + * @param {Number} [precision] The threshold angle to use when determining whether two edges are collinear. Use zero for finest precision. + * @return {Number} The number of points removed + */ +Polygon.prototype.removeCollinearPoints = function(precision){ + var num = 0; + for(var i=this.vertices.length-1; this.vertices.length>3 && i>=0; --i){ + if(Point.collinear(this.at(i-1),this.at(i),this.at(i+1),precision)){ + // Remove the middle point + this.vertices.splice(i%this.vertices.length,1); + i--; // Jump one point forward. Otherwise we may get a chain removal + num++; + } + } + return num; +}; + +},{"./Line":1,"./Point":2,"./Scalar":4}],4:[function(_dereq_,module,exports){ +module.exports = Scalar; + +/** + * Scalar functions + * @class Scalar + */ +function Scalar(){} + +/** + * Check if two scalars are equal + * @static + * @method eq + * @param {Number} a + * @param {Number} b + * @param {Number} [precision] + * @return {Boolean} + */ +Scalar.eq = function(a,b,precision){ + precision = precision || 0; + return Math.abs(a-b) < precision; +}; + +},{}],5:[function(_dereq_,module,exports){ +module.exports = { + Polygon : _dereq_("./Polygon"), + Point : _dereq_("./Point"), +}; + +},{"./Point":2,"./Polygon":3}],6:[function(_dereq_,module,exports){ +module.exports={ + "name": "p2", + "version": "0.7.0", + "description": "A JavaScript 2D physics engine.", + "author": "Stefan Hedman (http://steffe.se)", + "keywords": [ + "p2.js", + "p2", + "physics", + "engine", + "2d" + ], + "main": "./src/p2.js", + "engines": { + "node": "*" + }, + "repository": { + "type": "git", + "url": "https://github.com/schteppe/p2.js.git" + }, + "bugs": { + "url": "https://github.com/schteppe/p2.js/issues" + }, + "licenses": [ + { + "type": "MIT" + } + ], + "devDependencies": { + "grunt": "^0.4.5", + "grunt-contrib-jshint": "^0.11.2", + "grunt-contrib-nodeunit": "^0.4.1", + "grunt-contrib-uglify": "~0.4.0", + "grunt-contrib-watch": "~0.5.0", + "grunt-browserify": "~2.0.1", + "grunt-contrib-concat": "^0.4.0" + }, + "dependencies": { + "poly-decomp": "0.1.0" + } +} + +},{}],7:[function(_dereq_,module,exports){ +var vec2 = _dereq_('../math/vec2') +, Utils = _dereq_('../utils/Utils'); + +module.exports = AABB; + +/** + * Axis aligned bounding box class. + * @class AABB + * @constructor + * @param {Object} [options] + * @param {Array} [options.upperBound] + * @param {Array} [options.lowerBound] + */ +function AABB(options){ + + /** + * The lower bound of the bounding box. + * @property lowerBound + * @type {Array} + */ + this.lowerBound = vec2.create(); + if(options && options.lowerBound){ + vec2.copy(this.lowerBound, options.lowerBound); + } + + /** + * The upper bound of the bounding box. + * @property upperBound + * @type {Array} + */ + this.upperBound = vec2.create(); + if(options && options.upperBound){ + vec2.copy(this.upperBound, options.upperBound); + } +} + +var tmp = vec2.create(); + +/** + * Set the AABB bounds from a set of points, transformed by the given position and angle. + * @method setFromPoints + * @param {Array} points An array of vec2's. + * @param {Array} position + * @param {number} angle + * @param {number} skinSize Some margin to be added to the AABB. + */ +AABB.prototype.setFromPoints = function(points, position, angle, skinSize){ + var l = this.lowerBound, + u = this.upperBound; + + if(typeof(angle) !== "number"){ + angle = 0; + } + + // Set to the first point + if(angle !== 0){ + vec2.rotate(l, points[0], angle); + } else { + vec2.copy(l, points[0]); + } + vec2.copy(u, l); + + // Compute cosines and sines just once + var cosAngle = Math.cos(angle), + sinAngle = Math.sin(angle); + for(var i = 1; i u[j]){ + u[j] = p[j]; + } + if(p[j] < l[j]){ + l[j] = p[j]; + } + } + } + + // Add offset + if(position){ + vec2.add(this.lowerBound, this.lowerBound, position); + vec2.add(this.upperBound, this.upperBound, position); + } + + if(skinSize){ + this.lowerBound[0] -= skinSize; + this.lowerBound[1] -= skinSize; + this.upperBound[0] += skinSize; + this.upperBound[1] += skinSize; + } +}; + +/** + * Copy bounds from an AABB to this AABB + * @method copy + * @param {AABB} aabb + */ +AABB.prototype.copy = function(aabb){ + vec2.copy(this.lowerBound, aabb.lowerBound); + vec2.copy(this.upperBound, aabb.upperBound); +}; + +/** + * Extend this AABB so that it covers the given AABB too. + * @method extend + * @param {AABB} aabb + */ +AABB.prototype.extend = function(aabb){ + // Loop over x and y + var i = 2; + while(i--){ + // Extend lower bound + var l = aabb.lowerBound[i]; + if(this.lowerBound[i] > l){ + this.lowerBound[i] = l; + } + + // Upper + var u = aabb.upperBound[i]; + if(this.upperBound[i] < u){ + this.upperBound[i] = u; + } + } +}; + +/** + * Returns true if the given AABB overlaps this AABB. + * @method overlaps + * @param {AABB} aabb + * @return {Boolean} + */ +AABB.prototype.overlaps = function(aabb){ + var l1 = this.lowerBound, + u1 = this.upperBound, + l2 = aabb.lowerBound, + u2 = aabb.upperBound; + + // l2 u2 + // |---------| + // |--------| + // l1 u1 + + return ((l2[0] <= u1[0] && u1[0] <= u2[0]) || (l1[0] <= u2[0] && u2[0] <= u1[0])) && + ((l2[1] <= u1[1] && u1[1] <= u2[1]) || (l1[1] <= u2[1] && u2[1] <= u1[1])); +}; + +/** + * @method containsPoint + * @param {Array} point + * @return {boolean} + */ +AABB.prototype.containsPoint = function(point){ + var l = this.lowerBound, + u = this.upperBound; + return l[0] <= point[0] && point[0] <= u[0] && l[1] <= point[1] && point[1] <= u[1]; +}; + +/** + * Check if the AABB is hit by a ray. + * @method overlapsRay + * @param {Ray} ray + * @return {number} -1 if no hit, a number between 0 and 1 if hit. + */ +AABB.prototype.overlapsRay = function(ray){ + var t = 0; + + // ray.direction is unit direction vector of ray + var dirFracX = 1 / ray.direction[0]; + var dirFracY = 1 / ray.direction[1]; + + // this.lowerBound is the corner of AABB with minimal coordinates - left bottom, rt is maximal corner + var t1 = (this.lowerBound[0] - ray.from[0]) * dirFracX; + var t2 = (this.upperBound[0] - ray.from[0]) * dirFracX; + var t3 = (this.lowerBound[1] - ray.from[1]) * dirFracY; + var t4 = (this.upperBound[1] - ray.from[1]) * dirFracY; + + var tmin = Math.max(Math.max(Math.min(t1, t2), Math.min(t3, t4))); + var tmax = Math.min(Math.min(Math.max(t1, t2), Math.max(t3, t4))); + + // if tmax < 0, ray (line) is intersecting AABB, but whole AABB is behing us + if (tmax < 0){ + //t = tmax; + return -1; + } + + // if tmin > tmax, ray doesn't intersect AABB + if (tmin > tmax){ + //t = tmax; + return -1; + } + + return tmin; +}; +},{"../math/vec2":30,"../utils/Utils":57}],8:[function(_dereq_,module,exports){ +var vec2 = _dereq_('../math/vec2'); +var Body = _dereq_('../objects/Body'); + +module.exports = Broadphase; + +/** + * Base class for broadphase implementations. + * @class Broadphase + * @constructor + */ +function Broadphase(type){ + + this.type = type; + + /** + * The resulting overlapping pairs. Will be filled with results during .getCollisionPairs(). + * @property result + * @type {Array} + */ + this.result = []; + + /** + * The world to search for collision pairs in. To change it, use .setWorld() + * @property world + * @type {World} + * @readOnly + */ + this.world = null; + + /** + * The bounding volume type to use in the broadphase algorithms. Should be set to Broadphase.AABB or Broadphase.BOUNDING_CIRCLE. + * @property {Number} boundingVolumeType + */ + this.boundingVolumeType = Broadphase.AABB; +} + +/** + * Axis aligned bounding box type. + * @static + * @property {Number} AABB + */ +Broadphase.AABB = 1; + +/** + * Bounding circle type. + * @static + * @property {Number} BOUNDING_CIRCLE + */ +Broadphase.BOUNDING_CIRCLE = 2; + +/** + * Set the world that we are searching for collision pairs in. + * @method setWorld + * @param {World} world + */ +Broadphase.prototype.setWorld = function(world){ + this.world = world; +}; + +/** + * Get all potential intersecting body pairs. + * @method getCollisionPairs + * @param {World} world The world to search in. + * @return {Array} An array of the bodies, ordered in pairs. Example: A result of [a,b,c,d] means that the potential pairs are: (a,b), (c,d). + */ +Broadphase.prototype.getCollisionPairs = function(world){}; + +var dist = vec2.create(); + +/** + * Check whether the bounding radius of two bodies overlap. + * @method boundingRadiusCheck + * @param {Body} bodyA + * @param {Body} bodyB + * @return {Boolean} + */ +Broadphase.boundingRadiusCheck = function(bodyA, bodyB){ + vec2.sub(dist, bodyA.position, bodyB.position); + var d2 = vec2.squaredLength(dist), + r = bodyA.boundingRadius + bodyB.boundingRadius; + return d2 <= r*r; +}; + +/** + * Check whether the bounding radius of two bodies overlap. + * @method boundingRadiusCheck + * @param {Body} bodyA + * @param {Body} bodyB + * @return {Boolean} + */ +Broadphase.aabbCheck = function(bodyA, bodyB){ + return bodyA.getAABB().overlaps(bodyB.getAABB()); +}; + +/** + * Check whether the bounding radius of two bodies overlap. + * @method boundingRadiusCheck + * @param {Body} bodyA + * @param {Body} bodyB + * @return {Boolean} + */ +Broadphase.prototype.boundingVolumeCheck = function(bodyA, bodyB){ + var result; + + switch(this.boundingVolumeType){ + case Broadphase.BOUNDING_CIRCLE: + result = Broadphase.boundingRadiusCheck(bodyA,bodyB); + break; + case Broadphase.AABB: + result = Broadphase.aabbCheck(bodyA,bodyB); + break; + default: + throw new Error('Bounding volume type not recognized: '+this.boundingVolumeType); + } + return result; +}; + +/** + * Check whether two bodies are allowed to collide at all. + * @method canCollide + * @param {Body} bodyA + * @param {Body} bodyB + * @return {Boolean} + */ +Broadphase.canCollide = function(bodyA, bodyB){ + var KINEMATIC = Body.KINEMATIC; + var STATIC = Body.STATIC; + + // Cannot collide static bodies + if(bodyA.type === STATIC && bodyB.type === STATIC){ + return false; + } + + // Cannot collide static vs kinematic bodies + if( (bodyA.type === KINEMATIC && bodyB.type === STATIC) || + (bodyA.type === STATIC && bodyB.type === KINEMATIC)){ + return false; + } + + // Cannot collide kinematic vs kinematic + if(bodyA.type === KINEMATIC && bodyB.type === KINEMATIC){ + return false; + } + + // Cannot collide both sleeping bodies + if(bodyA.sleepState === Body.SLEEPING && bodyB.sleepState === Body.SLEEPING){ + return false; + } + + // Cannot collide if one is static and the other is sleeping + if( (bodyA.sleepState === Body.SLEEPING && bodyB.type === STATIC) || + (bodyB.sleepState === Body.SLEEPING && bodyA.type === STATIC)){ + return false; + } + + return true; +}; + +Broadphase.NAIVE = 1; +Broadphase.SAP = 2; + +},{"../math/vec2":30,"../objects/Body":31}],9:[function(_dereq_,module,exports){ +var Circle = _dereq_('../shapes/Circle'), + Plane = _dereq_('../shapes/Plane'), + Shape = _dereq_('../shapes/Shape'), + Particle = _dereq_('../shapes/Particle'), + Broadphase = _dereq_('../collision/Broadphase'), + vec2 = _dereq_('../math/vec2'); + +module.exports = NaiveBroadphase; + +/** + * Naive broadphase implementation. Does N^2 tests. + * + * @class NaiveBroadphase + * @constructor + * @extends Broadphase + */ +function NaiveBroadphase(){ + Broadphase.call(this, Broadphase.NAIVE); +} +NaiveBroadphase.prototype = new Broadphase(); +NaiveBroadphase.prototype.constructor = NaiveBroadphase; + +/** + * Get the colliding pairs + * @method getCollisionPairs + * @param {World} world + * @return {Array} + */ +NaiveBroadphase.prototype.getCollisionPairs = function(world){ + var bodies = world.bodies, + result = this.result; + + result.length = 0; + + for(var i=0, Ncolliding=bodies.length; i!==Ncolliding; i++){ + var bi = bodies[i]; + + for(var j=0; j pos0 && pos < pos1){ + // We got contact! + + if(justTest){ + return true; + } + + var c = this.createContactEquation(circleBody,lineBody,circleShape,lineShape); + + vec2.scale(c.normalA, orthoDist, -1); + vec2.normalize(c.normalA, c.normalA); + + vec2.scale( c.contactPointA, c.normalA, circleRadius); + add(c.contactPointA, c.contactPointA, circleOffset); + sub(c.contactPointA, c.contactPointA, circleBody.position); + + sub(c.contactPointB, projectedPoint, lineOffset); + add(c.contactPointB, c.contactPointB, lineOffset); + sub(c.contactPointB, c.contactPointB, lineBody.position); + + this.contactEquations.push(c); + + if(this.enableFriction){ + this.frictionEquations.push(this.createFrictionFromContact(c)); + } + + return 1; + } + } + + // Add corner + verts[0] = worldVertex0; + verts[1] = worldVertex1; + + for(var i=0; i 0){ + for(var i=0; i Math.pow(r,2)){ + return 0; + } + + if(justTest){ + return true; + } + + var c = this.createContactEquation(bodyA,bodyB,shapeA,shapeB); + sub(c.normalA, offsetB, offsetA); + vec2.normalize(c.normalA,c.normalA); + + vec2.scale( c.contactPointA, c.normalA, radiusA); + vec2.scale( c.contactPointB, c.normalA, -radiusB); + + add(c.contactPointA, c.contactPointA, offsetA); + sub(c.contactPointA, c.contactPointA, bodyA.position); + + add(c.contactPointB, c.contactPointB, offsetB); + sub(c.contactPointB, c.contactPointB, bodyB.position); + + this.contactEquations.push(c); + + if(this.enableFriction){ + this.frictionEquations.push(this.createFrictionFromContact(c)); + } + return 1; +}; + +/** + * Plane/Convex Narrowphase + * @method planeConvex + * @param {Body} planeBody + * @param {Plane} planeShape + * @param {Array} planeOffset + * @param {Number} planeAngle + * @param {Body} convexBody + * @param {Convex} convexShape + * @param {Array} convexOffset + * @param {Number} convexAngle + * @param {Boolean} justTest + */ +Narrowphase.prototype[Shape.PLANE | Shape.CONVEX] = +Narrowphase.prototype[Shape.PLANE | Shape.BOX] = +Narrowphase.prototype.planeConvex = function( + planeBody, + planeShape, + planeOffset, + planeAngle, + convexBody, + convexShape, + convexOffset, + convexAngle, + justTest +){ + var worldVertex = tmp1, + worldNormal = tmp2, + dist = tmp3; + + var numReported = 0; + vec2.rotate(worldNormal, yAxis, planeAngle); + + for(var i=0; i!==convexShape.vertices.length; i++){ + var v = convexShape.vertices[i]; + vec2.rotate(worldVertex, v, convexAngle); + add(worldVertex, worldVertex, convexOffset); + + sub(dist, worldVertex, planeOffset); + + if(dot(dist,worldNormal) <= 0){ + + if(justTest){ + return true; + } + + // Found vertex + numReported++; + + var c = this.createContactEquation(planeBody,convexBody,planeShape,convexShape); + + sub(dist, worldVertex, planeOffset); + + vec2.copy(c.normalA, worldNormal); + + var d = dot(dist, c.normalA); + vec2.scale(dist, c.normalA, d); + + // rj is from convex center to contact + sub(c.contactPointB, worldVertex, convexBody.position); + + + // ri is from plane center to contact + sub( c.contactPointA, worldVertex, dist); + sub( c.contactPointA, c.contactPointA, planeBody.position); + + this.contactEquations.push(c); + + if(!this.enableFrictionReduction){ + if(this.enableFriction){ + this.frictionEquations.push(this.createFrictionFromContact(c)); + } + } + } + } + + if(this.enableFrictionReduction){ + if(this.enableFriction && numReported){ + this.frictionEquations.push(this.createFrictionFromAverage(numReported)); + } + } + + return numReported; +}; + +/** + * Narrowphase for particle vs plane + * @method particlePlane + * @param {Body} particleBody + * @param {Particle} particleShape + * @param {Array} particleOffset + * @param {Number} particleAngle + * @param {Body} planeBody + * @param {Plane} planeShape + * @param {Array} planeOffset + * @param {Number} planeAngle + * @param {Boolean} justTest + */ +Narrowphase.prototype[Shape.PARTICLE | Shape.PLANE] = +Narrowphase.prototype.particlePlane = function( + particleBody, + particleShape, + particleOffset, + particleAngle, + planeBody, + planeShape, + planeOffset, + planeAngle, + justTest +){ + var dist = tmp1, + worldNormal = tmp2; + + planeAngle = planeAngle || 0; + + sub(dist, particleOffset, planeOffset); + vec2.rotate(worldNormal, yAxis, planeAngle); + + var d = dot(dist, worldNormal); + + if(d > 0){ + return 0; + } + if(justTest){ + return true; + } + + var c = this.createContactEquation(planeBody,particleBody,planeShape,particleShape); + + vec2.copy(c.normalA, worldNormal); + vec2.scale( dist, c.normalA, d ); + // dist is now the distance vector in the normal direction + + // ri is the particle position projected down onto the plane, from the plane center + sub( c.contactPointA, particleOffset, dist); + sub( c.contactPointA, c.contactPointA, planeBody.position); + + // rj is from the body center to the particle center + sub( c.contactPointB, particleOffset, particleBody.position ); + + this.contactEquations.push(c); + + if(this.enableFriction){ + this.frictionEquations.push(this.createFrictionFromContact(c)); + } + return 1; +}; + +/** + * Circle/Particle Narrowphase + * @method circleParticle + * @param {Body} circleBody + * @param {Circle} circleShape + * @param {Array} circleOffset + * @param {Number} circleAngle + * @param {Body} particleBody + * @param {Particle} particleShape + * @param {Array} particleOffset + * @param {Number} particleAngle + * @param {Boolean} justTest + */ +Narrowphase.prototype[Shape.CIRCLE | Shape.PARTICLE] = +Narrowphase.prototype.circleParticle = function( + circleBody, + circleShape, + circleOffset, + circleAngle, + particleBody, + particleShape, + particleOffset, + particleAngle, + justTest +){ + var dist = tmp1; + + sub(dist, particleOffset, circleOffset); + if(vec2.squaredLength(dist) > Math.pow(circleShape.radius, 2)){ + return 0; + } + if(justTest){ + return true; + } + + var c = this.createContactEquation(circleBody,particleBody,circleShape,particleShape); + vec2.copy(c.normalA, dist); + vec2.normalize(c.normalA,c.normalA); + + // Vector from circle to contact point is the normal times the circle radius + vec2.scale(c.contactPointA, c.normalA, circleShape.radius); + add(c.contactPointA, c.contactPointA, circleOffset); + sub(c.contactPointA, c.contactPointA, circleBody.position); + + // Vector from particle center to contact point is zero + sub(c.contactPointB, particleOffset, particleBody.position); + + this.contactEquations.push(c); + + if(this.enableFriction){ + this.frictionEquations.push(this.createFrictionFromContact(c)); + } + + return 1; +}; + +var planeCapsule_tmpCircle = new Circle({ radius: 1 }), + planeCapsule_tmp1 = vec2.create(), + planeCapsule_tmp2 = vec2.create(), + planeCapsule_tmp3 = vec2.create(); + +/** + * @method planeCapsule + * @param {Body} planeBody + * @param {Circle} planeShape + * @param {Array} planeOffset + * @param {Number} planeAngle + * @param {Body} capsuleBody + * @param {Particle} capsuleShape + * @param {Array} capsuleOffset + * @param {Number} capsuleAngle + * @param {Boolean} justTest + */ +Narrowphase.prototype[Shape.PLANE | Shape.CAPSULE] = +Narrowphase.prototype.planeCapsule = function( + planeBody, + planeShape, + planeOffset, + planeAngle, + capsuleBody, + capsuleShape, + capsuleOffset, + capsuleAngle, + justTest +){ + var end1 = planeCapsule_tmp1, + end2 = planeCapsule_tmp2, + circle = planeCapsule_tmpCircle, + dst = planeCapsule_tmp3; + + // Compute world end positions + vec2.set(end1, -capsuleShape.length/2, 0); + vec2.rotate(end1,end1,capsuleAngle); + add(end1,end1,capsuleOffset); + + vec2.set(end2, capsuleShape.length/2, 0); + vec2.rotate(end2,end2,capsuleAngle); + add(end2,end2,capsuleOffset); + + circle.radius = capsuleShape.radius; + + var enableFrictionBefore; + + // Temporarily turn off friction + if(this.enableFrictionReduction){ + enableFrictionBefore = this.enableFriction; + this.enableFriction = false; + } + + // Do Narrowphase as two circles + var numContacts1 = this.circlePlane(capsuleBody,circle,end1,0, planeBody,planeShape,planeOffset,planeAngle, justTest), + numContacts2 = this.circlePlane(capsuleBody,circle,end2,0, planeBody,planeShape,planeOffset,planeAngle, justTest); + + // Restore friction + if(this.enableFrictionReduction){ + this.enableFriction = enableFrictionBefore; + } + + if(justTest){ + return numContacts1 || numContacts2; + } else { + var numTotal = numContacts1 + numContacts2; + if(this.enableFrictionReduction){ + if(numTotal){ + this.frictionEquations.push(this.createFrictionFromAverage(numTotal)); + } + } + return numTotal; + } +}; + +/** + * Creates ContactEquations and FrictionEquations for a collision. + * @method circlePlane + * @param {Body} bi The first body that should be connected to the equations. + * @param {Circle} si The circle shape participating in the collision. + * @param {Array} xi Extra offset to take into account for the Shape, in addition to the one in circleBody.position. Will *not* be rotated by circleBody.angle (maybe it should, for sake of homogenity?). Set to null if none. + * @param {Body} bj The second body that should be connected to the equations. + * @param {Plane} sj The Plane shape that is participating + * @param {Array} xj Extra offset for the plane shape. + * @param {Number} aj Extra angle to apply to the plane + */ +Narrowphase.prototype[Shape.CIRCLE | Shape.PLANE] = +Narrowphase.prototype.circlePlane = function( bi,si,xi,ai, bj,sj,xj,aj, justTest ){ + var circleBody = bi, + circleShape = si, + circleOffset = xi, // Offset from body center, rotated! + planeBody = bj, + shapeB = sj, + planeOffset = xj, + planeAngle = aj; + + planeAngle = planeAngle || 0; + + // Vector from plane to circle + var planeToCircle = tmp1, + worldNormal = tmp2, + temp = tmp3; + + sub(planeToCircle, circleOffset, planeOffset); + + // World plane normal + vec2.rotate(worldNormal, yAxis, planeAngle); + + // Normal direction distance + var d = dot(worldNormal, planeToCircle); + + if(d > circleShape.radius){ + return 0; // No overlap. Abort. + } + + if(justTest){ + return true; + } + + // Create contact + var contact = this.createContactEquation(planeBody,circleBody,sj,si); + + // ni is the plane world normal + vec2.copy(contact.normalA, worldNormal); + + // rj is the vector from circle center to the contact point + vec2.scale(contact.contactPointB, contact.normalA, -circleShape.radius); + add(contact.contactPointB, contact.contactPointB, circleOffset); + sub(contact.contactPointB, contact.contactPointB, circleBody.position); + + // ri is the distance from plane center to contact. + vec2.scale(temp, contact.normalA, d); + sub(contact.contactPointA, planeToCircle, temp ); // Subtract normal distance vector from the distance vector + add(contact.contactPointA, contact.contactPointA, planeOffset); + sub(contact.contactPointA, contact.contactPointA, planeBody.position); + + this.contactEquations.push(contact); + + if(this.enableFriction){ + this.frictionEquations.push( this.createFrictionFromContact(contact) ); + } + + return 1; +}; + +/** + * Convex/convex Narrowphase.See this article for more info. + * @method convexConvex + * @param {Body} bi + * @param {Convex} si + * @param {Array} xi + * @param {Number} ai + * @param {Body} bj + * @param {Convex} sj + * @param {Array} xj + * @param {Number} aj + */ +Narrowphase.prototype[Shape.CONVEX] = +Narrowphase.prototype[Shape.CONVEX | Shape.BOX] = +Narrowphase.prototype[Shape.BOX] = +Narrowphase.prototype.convexConvex = function( bi,si,xi,ai, bj,sj,xj,aj, justTest, precision ){ + var sepAxis = tmp1, + worldPoint = tmp2, + worldPoint0 = tmp3, + worldPoint1 = tmp4, + worldEdge = tmp5, + projected = tmp6, + penetrationVec = tmp7, + dist = tmp8, + worldNormal = tmp9, + numContacts = 0, + precision = typeof(precision) === 'number' ? precision : 0; + + var found = Narrowphase.findSeparatingAxis(si,xi,ai,sj,xj,aj,sepAxis); + if(!found){ + return 0; + } + + // Make sure the separating axis is directed from shape i to shape j + sub(dist,xj,xi); + if(dot(sepAxis,dist) > 0){ + vec2.scale(sepAxis,sepAxis,-1); + } + + // Find edges with normals closest to the separating axis + var closestEdge1 = Narrowphase.getClosestEdge(si,ai,sepAxis,true), // Flipped axis + closestEdge2 = Narrowphase.getClosestEdge(sj,aj,sepAxis); + + if(closestEdge1 === -1 || closestEdge2 === -1){ + return 0; + } + + // Loop over the shapes + for(var k=0; k<2; k++){ + + var closestEdgeA = closestEdge1, + closestEdgeB = closestEdge2, + shapeA = si, shapeB = sj, + offsetA = xi, offsetB = xj, + angleA = ai, angleB = aj, + bodyA = bi, bodyB = bj; + + if(k === 0){ + // Swap! + var tmp; + tmp = closestEdgeA; + closestEdgeA = closestEdgeB; + closestEdgeB = tmp; + + tmp = shapeA; + shapeA = shapeB; + shapeB = tmp; + + tmp = offsetA; + offsetA = offsetB; + offsetB = tmp; + + tmp = angleA; + angleA = angleB; + angleB = tmp; + + tmp = bodyA; + bodyA = bodyB; + bodyB = tmp; + } + + // Loop over 2 points in convex B + for(var j=closestEdgeB; j= 3){ + + if(justTest){ + return true; + } + + // worldPoint was on the "inside" side of each of the 3 checked edges. + // Project it to the center edge and use the projection direction as normal + + // Create contact + var c = this.createContactEquation(bodyA,bodyB,shapeA,shapeB); + numContacts++; + + // Get center edge from body A + var v0 = shapeA.vertices[(closestEdgeA) % shapeA.vertices.length], + v1 = shapeA.vertices[(closestEdgeA+1) % shapeA.vertices.length]; + + // Construct the edge + vec2.rotate(worldPoint0, v0, angleA); + vec2.rotate(worldPoint1, v1, angleA); + add(worldPoint0, worldPoint0, offsetA); + add(worldPoint1, worldPoint1, offsetA); + + sub(worldEdge, worldPoint1, worldPoint0); + + vec2.rotate90cw(c.normalA, worldEdge); // Normal points out of convex A + vec2.normalize(c.normalA,c.normalA); + + sub(dist, worldPoint, worldPoint0); // From edge point to the penetrating point + var d = dot(c.normalA,dist); // Penetration + vec2.scale(penetrationVec, c.normalA, d); // Vector penetration + + sub(c.contactPointA, worldPoint, offsetA); + sub(c.contactPointA, c.contactPointA, penetrationVec); + add(c.contactPointA, c.contactPointA, offsetA); + sub(c.contactPointA, c.contactPointA, bodyA.position); + + sub(c.contactPointB, worldPoint, offsetB); + add(c.contactPointB, c.contactPointB, offsetB); + sub(c.contactPointB, c.contactPointB, bodyB.position); + + this.contactEquations.push(c); + + // Todo reduce to 1 friction equation if we have 2 contact points + if(!this.enableFrictionReduction){ + if(this.enableFriction){ + this.frictionEquations.push(this.createFrictionFromContact(c)); + } + } + } + } + } + + if(this.enableFrictionReduction){ + if(this.enableFriction && numContacts){ + this.frictionEquations.push(this.createFrictionFromAverage(numContacts)); + } + } + + return numContacts; +}; + +// .projectConvex is called by other functions, need local tmp vectors +var pcoa_tmp1 = vec2.fromValues(0,0); + +/** + * Project a Convex onto a world-oriented axis + * @method projectConvexOntoAxis + * @static + * @param {Convex} convexShape + * @param {Array} convexOffset + * @param {Number} convexAngle + * @param {Array} worldAxis + * @param {Array} result + */ +Narrowphase.projectConvexOntoAxis = function(convexShape, convexOffset, convexAngle, worldAxis, result){ + var max=null, + min=null, + v, + value, + localAxis = pcoa_tmp1; + + // Convert the axis to local coords of the body + vec2.rotate(localAxis, worldAxis, -convexAngle); + + // Get projected position of all vertices + for(var i=0; i max){ + max = value; + } + if(min === null || value < min){ + min = value; + } + } + + if(min > max){ + var t = min; + min = max; + max = t; + } + + // Project the position of the body onto the axis - need to add this to the result + var offset = dot(convexOffset, worldAxis); + + vec2.set( result, min + offset, max + offset); +}; + +// .findSeparatingAxis is called by other functions, need local tmp vectors +var fsa_tmp1 = vec2.fromValues(0,0) +, fsa_tmp2 = vec2.fromValues(0,0) +, fsa_tmp3 = vec2.fromValues(0,0) +, fsa_tmp4 = vec2.fromValues(0,0) +, fsa_tmp5 = vec2.fromValues(0,0) +, fsa_tmp6 = vec2.fromValues(0,0); + +/** + * Find a separating axis between the shapes, that maximizes the separating distance between them. + * @method findSeparatingAxis + * @static + * @param {Convex} c1 + * @param {Array} offset1 + * @param {Number} angle1 + * @param {Convex} c2 + * @param {Array} offset2 + * @param {Number} angle2 + * @param {Array} sepAxis The resulting axis + * @return {Boolean} Whether the axis could be found. + */ +Narrowphase.findSeparatingAxis = function(c1,offset1,angle1,c2,offset2,angle2,sepAxis){ + var maxDist = null, + overlap = false, + found = false, + edge = fsa_tmp1, + worldPoint0 = fsa_tmp2, + worldPoint1 = fsa_tmp3, + normal = fsa_tmp4, + span1 = fsa_tmp5, + span2 = fsa_tmp6; + + if(c1 instanceof Box && c2 instanceof Box){ + + for(var j=0; j!==2; j++){ + var c = c1, + angle = angle1; + if(j===1){ + c = c2; + angle = angle2; + } + + for(var i=0; i!==2; i++){ + + // Get the world edge + if(i === 0){ + vec2.set(normal, 0, 1); + } else if(i === 1) { + vec2.set(normal, 1, 0); + } + if(angle !== 0){ + vec2.rotate(normal, normal, angle); + } + + // Project hulls onto that normal + Narrowphase.projectConvexOntoAxis(c1,offset1,angle1,normal,span1); + Narrowphase.projectConvexOntoAxis(c2,offset2,angle2,normal,span2); + + // Order by span position + var a=span1, + b=span2, + swapped = false; + if(span1[0] > span2[0]){ + b=span1; + a=span2; + swapped = true; + } + + // Get separating distance + var dist = b[0] - a[1]; + overlap = (dist <= 0); + + if(maxDist===null || dist > maxDist){ + vec2.copy(sepAxis, normal); + maxDist = dist; + found = overlap; + } + } + } + + } else { + + for(var j=0; j!==2; j++){ + var c = c1, + angle = angle1; + if(j===1){ + c = c2; + angle = angle2; + } + + for(var i=0; i!==c.vertices.length; i++){ + // Get the world edge + vec2.rotate(worldPoint0, c.vertices[i], angle); + vec2.rotate(worldPoint1, c.vertices[(i+1)%c.vertices.length], angle); + + sub(edge, worldPoint1, worldPoint0); + + // Get normal - just rotate 90 degrees since vertices are given in CCW + vec2.rotate90cw(normal, edge); + vec2.normalize(normal,normal); + + // Project hulls onto that normal + Narrowphase.projectConvexOntoAxis(c1,offset1,angle1,normal,span1); + Narrowphase.projectConvexOntoAxis(c2,offset2,angle2,normal,span2); + + // Order by span position + var a=span1, + b=span2, + swapped = false; + if(span1[0] > span2[0]){ + b=span1; + a=span2; + swapped = true; + } + + // Get separating distance + var dist = b[0] - a[1]; + overlap = (dist <= 0); + + if(maxDist===null || dist > maxDist){ + vec2.copy(sepAxis, normal); + maxDist = dist; + found = overlap; + } + } + } + } + + + /* + // Needs to be tested some more + for(var j=0; j!==2; j++){ + var c = c1, + angle = angle1; + if(j===1){ + c = c2; + angle = angle2; + } + + for(var i=0; i!==c.axes.length; i++){ + + var normal = c.axes[i]; + + // Project hulls onto that normal + Narrowphase.projectConvexOntoAxis(c1, offset1, angle1, normal, span1); + Narrowphase.projectConvexOntoAxis(c2, offset2, angle2, normal, span2); + + // Order by span position + var a=span1, + b=span2, + swapped = false; + if(span1[0] > span2[0]){ + b=span1; + a=span2; + swapped = true; + } + + // Get separating distance + var dist = b[0] - a[1]; + overlap = (dist <= Narrowphase.convexPrecision); + + if(maxDist===null || dist > maxDist){ + vec2.copy(sepAxis, normal); + maxDist = dist; + found = overlap; + } + } + } + */ + + return found; +}; + +// .getClosestEdge is called by other functions, need local tmp vectors +var gce_tmp1 = vec2.fromValues(0,0) +, gce_tmp2 = vec2.fromValues(0,0) +, gce_tmp3 = vec2.fromValues(0,0); + +/** + * Get the edge that has a normal closest to an axis. + * @method getClosestEdge + * @static + * @param {Convex} c + * @param {Number} angle + * @param {Array} axis + * @param {Boolean} flip + * @return {Number} Index of the edge that is closest. This index and the next spans the resulting edge. Returns -1 if failed. + */ +Narrowphase.getClosestEdge = function(c,angle,axis,flip){ + var localAxis = gce_tmp1, + edge = gce_tmp2, + normal = gce_tmp3; + + // Convert the axis to local coords of the body + vec2.rotate(localAxis, axis, -angle); + if(flip){ + vec2.scale(localAxis,localAxis,-1); + } + + var closestEdge = -1, + N = c.vertices.length, + maxDot = -1; + for(var i=0; i!==N; i++){ + // Get the edge + sub(edge, c.vertices[(i+1)%N], c.vertices[i%N]); + + // Get normal - just rotate 90 degrees since vertices are given in CCW + vec2.rotate90cw(normal, edge); + vec2.normalize(normal,normal); + + var d = dot(normal,localAxis); + if(closestEdge === -1 || d > maxDot){ + closestEdge = i % N; + maxDot = d; + } + } + + return closestEdge; +}; + +var circleHeightfield_candidate = vec2.create(), + circleHeightfield_dist = vec2.create(), + circleHeightfield_v0 = vec2.create(), + circleHeightfield_v1 = vec2.create(), + circleHeightfield_minCandidate = vec2.create(), + circleHeightfield_worldNormal = vec2.create(), + circleHeightfield_minCandidateNormal = vec2.create(); + +/** + * @method circleHeightfield + * @param {Body} bi + * @param {Circle} si + * @param {Array} xi + * @param {Body} bj + * @param {Heightfield} sj + * @param {Array} xj + * @param {Number} aj + */ +Narrowphase.prototype[Shape.CIRCLE | Shape.HEIGHTFIELD] = +Narrowphase.prototype.circleHeightfield = function( circleBody,circleShape,circlePos,circleAngle, + hfBody,hfShape,hfPos,hfAngle, justTest, radius ){ + var data = hfShape.heights, + radius = radius || circleShape.radius, + w = hfShape.elementWidth, + dist = circleHeightfield_dist, + candidate = circleHeightfield_candidate, + minCandidate = circleHeightfield_minCandidate, + minCandidateNormal = circleHeightfield_minCandidateNormal, + worldNormal = circleHeightfield_worldNormal, + v0 = circleHeightfield_v0, + v1 = circleHeightfield_v1; + + // Get the index of the points to test against + var idxA = Math.floor( (circlePos[0] - radius - hfPos[0]) / w ), + idxB = Math.ceil( (circlePos[0] + radius - hfPos[0]) / w ); + + /*if(idxB < 0 || idxA >= data.length) + return justTest ? false : 0;*/ + + if(idxA < 0){ + idxA = 0; + } + if(idxB >= data.length){ + idxB = data.length-1; + } + + // Get max and min + var max = data[idxA], + min = data[idxB]; + for(var i=idxA; i max){ + max = data[i]; + } + } + + if(circlePos[1]-radius > max){ + return justTest ? false : 0; + } + + /* + if(circlePos[1]+radius < min){ + // Below the minimum point... We can just guess. + // TODO + } + */ + + // 1. Check so center of circle is not inside the field. If it is, this wont work... + // 2. For each edge + // 2. 1. Get point on circle that is closest to the edge (scale normal with -radius) + // 2. 2. Check if point is inside. + + var found = false; + + // Check all edges first + for(var i=idxA; i= v0[0] && candidate[0] < v1[0] && d <= 0){ + + if(justTest){ + return true; + } + + found = true; + + // Store the candidate point, projected to the edge + vec2.scale(dist,worldNormal,-d); + vec2.add(minCandidate,candidate,dist); + vec2.copy(minCandidateNormal,worldNormal); + + var c = this.createContactEquation(hfBody,circleBody,hfShape,circleShape); + + // Normal is out of the heightfield + vec2.copy(c.normalA, minCandidateNormal); + + // Vector from circle to heightfield + vec2.scale(c.contactPointB, c.normalA, -radius); + add(c.contactPointB, c.contactPointB, circlePos); + sub(c.contactPointB, c.contactPointB, circleBody.position); + + vec2.copy(c.contactPointA, minCandidate); + vec2.sub(c.contactPointA, c.contactPointA, hfBody.position); + + this.contactEquations.push(c); + + if(this.enableFriction){ + this.frictionEquations.push( this.createFrictionFromContact(c) ); + } + } + } + + // Check all vertices + found = false; + if(radius > 0){ + for(var i=idxA; i<=idxB; i++){ + + // Get point + vec2.set(v0, i*w, data[i]); + vec2.add(v0,v0,hfPos); + + vec2.sub(dist, circlePos, v0); + + if(vec2.squaredLength(dist) < Math.pow(radius, 2)){ + + if(justTest){ + return true; + } + + found = true; + + var c = this.createContactEquation(hfBody,circleBody,hfShape,circleShape); + + // Construct normal - out of heightfield + vec2.copy(c.normalA, dist); + vec2.normalize(c.normalA,c.normalA); + + vec2.scale(c.contactPointB, c.normalA, -radius); + add(c.contactPointB, c.contactPointB, circlePos); + sub(c.contactPointB, c.contactPointB, circleBody.position); + + sub(c.contactPointA, v0, hfPos); + add(c.contactPointA, c.contactPointA, hfPos); + sub(c.contactPointA, c.contactPointA, hfBody.position); + + this.contactEquations.push(c); + + if(this.enableFriction){ + this.frictionEquations.push(this.createFrictionFromContact(c)); + } + } + } + } + + if(found){ + return 1; + } + + return 0; + +}; + +var convexHeightfield_v0 = vec2.create(), + convexHeightfield_v1 = vec2.create(), + convexHeightfield_tilePos = vec2.create(), + convexHeightfield_tempConvexShape = new Convex({ vertices: [vec2.create(),vec2.create(),vec2.create(),vec2.create()] }); +/** + * @method circleHeightfield + * @param {Body} bi + * @param {Circle} si + * @param {Array} xi + * @param {Body} bj + * @param {Heightfield} sj + * @param {Array} xj + * @param {Number} aj + */ +Narrowphase.prototype[Shape.BOX | Shape.HEIGHTFIELD] = +Narrowphase.prototype[Shape.CONVEX | Shape.HEIGHTFIELD] = +Narrowphase.prototype.convexHeightfield = function( convexBody,convexShape,convexPos,convexAngle, + hfBody,hfShape,hfPos,hfAngle, justTest ){ + var data = hfShape.heights, + w = hfShape.elementWidth, + v0 = convexHeightfield_v0, + v1 = convexHeightfield_v1, + tilePos = convexHeightfield_tilePos, + tileConvex = convexHeightfield_tempConvexShape; + + // Get the index of the points to test against + var idxA = Math.floor( (convexBody.aabb.lowerBound[0] - hfPos[0]) / w ), + idxB = Math.ceil( (convexBody.aabb.upperBound[0] - hfPos[0]) / w ); + + if(idxA < 0){ + idxA = 0; + } + if(idxB >= data.length){ + idxB = data.length-1; + } + + // Get max and min + var max = data[idxA], + min = data[idxB]; + for(var i=idxA; i max){ + max = data[i]; + } + } + + if(convexBody.aabb.lowerBound[1] > max){ + return justTest ? false : 0; + } + + var found = false; + var numContacts = 0; + + // Loop over all edges + // TODO: If possible, construct a convex from several data points (need o check if the points make a convex shape) + for(var i=idxA; i= 0 || aabb.containsPoint(this.from)){ + this.intersectBody(result, body); + } + } +}; + +var intersectBody_worldPosition = vec2.create(); + +/** + * Shoot a ray at a body, get back information about the hit. + * @method intersectBody + * @private + * @param {Body} body + */ +Ray.prototype.intersectBody = function (result, body) { + var checkCollisionResponse = this.checkCollisionResponse; + + if(checkCollisionResponse && !body.collisionResponse){ + return; + } + + var worldPosition = intersectBody_worldPosition; + + for (var i = 0, N = body.shapes.length; i < N; i++) { + var shape = body.shapes[i]; + + if(checkCollisionResponse && !shape.collisionResponse){ + continue; // Skip + } + + if((this.collisionGroup & shape.collisionMask) === 0 || (shape.collisionGroup & this.collisionMask) === 0){ + continue; + } + + // Get world angle and position of the shape + vec2.rotate(worldPosition, shape.position, body.angle); + vec2.add(worldPosition, worldPosition, body.position); + var worldAngle = shape.angle + body.angle; + + this.intersectShape( + result, + shape, + worldAngle, + worldPosition, + body + ); + + if(result.shouldStop(this)){ + break; + } + } +}; + +/** + * @method intersectShape + * @private + * @param {Shape} shape + * @param {number} angle + * @param {array} position + * @param {Body} body + */ +Ray.prototype.intersectShape = function(result, shape, angle, position, body){ + var from = this.from; + + // Checking radius + var distance = distanceFromIntersectionSquared(from, this.direction, position); + if (distance > shape.boundingRadius * shape.boundingRadius) { + return; + } + + this._currentBody = body; + this._currentShape = shape; + + shape.raycast(result, this, position, angle); + + this._currentBody = this._currentShape = null; +}; + +/** + * Get the AABB of the ray. + * @method getAABB + * @param {AABB} aabb + */ +Ray.prototype.getAABB = function(result){ + var to = this.to; + var from = this.from; + vec2.set( + result.lowerBound, + Math.min(to[0], from[0]), + Math.min(to[1], from[1]) + ); + vec2.set( + result.upperBound, + Math.max(to[0], from[0]), + Math.max(to[1], from[1]) + ); +}; + +var hitPointWorld = vec2.create(); + +/** + * @method reportIntersection + * @private + * @param {number} fraction + * @param {array} normal + * @param {number} [faceIndex=-1] + * @return {boolean} True if the intersections should continue + */ +Ray.prototype.reportIntersection = function(result, fraction, normal, faceIndex){ + var from = this.from; + var to = this.to; + var shape = this._currentShape; + var body = this._currentBody; + + // Skip back faces? + if(this.skipBackfaces && vec2.dot(normal, this.direction) > 0){ + return; + } + + switch(this.mode){ + + case Ray.ALL: + result.set( + normal, + shape, + body, + fraction, + faceIndex + ); + this.callback(result); + break; + + case Ray.CLOSEST: + + // Store if closer than current closest + if(fraction < result.fraction || !result.hasHit()){ + result.set( + normal, + shape, + body, + fraction, + faceIndex + ); + } + break; + + case Ray.ANY: + + // Report and stop. + result.set( + normal, + shape, + body, + fraction, + faceIndex + ); + break; + } +}; + +var v0 = vec2.create(), + intersect = vec2.create(); +function distanceFromIntersectionSquared(from, direction, position) { + + // v0 is vector from from to position + vec2.sub(v0, position, from); + var dot = vec2.dot(v0, direction); + + // intersect = direction * dot + from + vec2.scale(intersect, direction, dot); + vec2.add(intersect, intersect, from); + + return vec2.squaredDistance(position, intersect); +} + + +},{"../collision/AABB":7,"../collision/RaycastResult":12,"../math/vec2":30,"../shapes/Shape":45}],12:[function(_dereq_,module,exports){ +var vec2 = _dereq_('../math/vec2'); +var Ray = _dereq_('../collision/Ray'); + +module.exports = RaycastResult; + +/** + * Storage for Ray casting hit data. + * @class RaycastResult + * @constructor + */ +function RaycastResult(){ + + /** + * The normal of the hit, oriented in world space. + * @property {array} normal + */ + this.normal = vec2.create(); + + /** + * The hit shape, or null. + * @property {Shape} shape + */ + this.shape = null; + + /** + * The hit body, or null. + * @property {Body} body + */ + this.body = null; + + /** + * The index of the hit triangle, if the hit shape was indexable. + * @property {number} faceIndex + * @default -1 + */ + this.faceIndex = -1; + + /** + * Distance to the hit, as a fraction. 0 is at the "from" point, 1 is at the "to" point. Will be set to -1 if there was no hit yet. + * @property {number} fraction + * @default -1 + */ + this.fraction = -1; + + /** + * If the ray should stop traversing. + * @readonly + * @property {Boolean} isStopped + */ + this.isStopped = false; +} + +/** + * Reset all result data. Must be done before re-using the result object. + * @method reset + */ +RaycastResult.prototype.reset = function () { + vec2.set(this.normal, 0, 0); + this.shape = null; + this.body = null; + this.faceIndex = -1; + this.fraction = -1; + this.isStopped = false; +}; + +/** + * Get the distance to the hit point. + * @method getHitDistance + * @param {Ray} ray + */ +RaycastResult.prototype.getHitDistance = function (ray) { + return vec2.distance(ray.from, ray.to) * this.fraction; +}; + +/** + * Returns true if the ray hit something since the last reset(). + * @method hasHit + */ +RaycastResult.prototype.hasHit = function () { + return this.fraction !== -1; +}; + +/** + * Get world hit point. + * @method getHitPoint + * @param {array} out + * @param {Ray} ray + */ +RaycastResult.prototype.getHitPoint = function (out, ray) { + vec2.lerp(out, ray.from, ray.to, this.fraction); +}; + +/** + * Can be called while iterating over hits to stop searching for hit points. + * @method stop + */ +RaycastResult.prototype.stop = function(){ + this.isStopped = true; +}; + +/** + * @method shouldStop + * @private + * @param {Ray} ray + * @return {boolean} + */ +RaycastResult.prototype.shouldStop = function(ray){ + return this.isStopped || (this.fraction !== -1 && ray.mode === Ray.ANY); +}; + +/** + * @method set + * @private + * @param {array} normal + * @param {Shape} shape + * @param {Body} body + * @param {number} fraction + */ +RaycastResult.prototype.set = function( + normal, + shape, + body, + fraction, + faceIndex +){ + vec2.copy(this.normal, normal); + this.shape = shape; + this.body = body; + this.fraction = fraction; + this.faceIndex = faceIndex; +}; +},{"../collision/Ray":11,"../math/vec2":30}],13:[function(_dereq_,module,exports){ +var Utils = _dereq_('../utils/Utils') +, Broadphase = _dereq_('../collision/Broadphase'); + +module.exports = SAPBroadphase; + +/** + * Sweep and prune broadphase along one axis. + * + * @class SAPBroadphase + * @constructor + * @extends Broadphase + */ +function SAPBroadphase(){ + Broadphase.call(this,Broadphase.SAP); + + /** + * List of bodies currently in the broadphase. + * @property axisList + * @type {Array} + */ + this.axisList = []; + + /** + * The axis to sort along. 0 means x-axis and 1 y-axis. If your bodies are more spread out over the X axis, set axisIndex to 0, and you will gain some performance. + * @property axisIndex + * @type {Number} + */ + this.axisIndex = 0; + + var that = this; + this._addBodyHandler = function(e){ + that.axisList.push(e.body); + }; + + this._removeBodyHandler = function(e){ + // Remove from list + var idx = that.axisList.indexOf(e.body); + if(idx !== -1){ + that.axisList.splice(idx,1); + } + }; +} +SAPBroadphase.prototype = new Broadphase(); +SAPBroadphase.prototype.constructor = SAPBroadphase; + +/** + * Change the world + * @method setWorld + * @param {World} world + */ +SAPBroadphase.prototype.setWorld = function(world){ + // Clear the old axis array + this.axisList.length = 0; + + // Add all bodies from the new world + Utils.appendArray(this.axisList, world.bodies); + + // Remove old handlers, if any + world + .off("addBody",this._addBodyHandler) + .off("removeBody",this._removeBodyHandler); + + // Add handlers to update the list of bodies. + world.on("addBody",this._addBodyHandler).on("removeBody",this._removeBodyHandler); + + this.world = world; +}; + +/** + * Sorts bodies along an axis. + * @method sortAxisList + * @param {Array} a + * @param {number} axisIndex + * @return {Array} + */ +SAPBroadphase.sortAxisList = function(a, axisIndex){ + axisIndex = axisIndex|0; + for(var i=1,l=a.length; i=0;j--) { + if(a[j].aabb.lowerBound[axisIndex] <= v.aabb.lowerBound[axisIndex]){ + break; + } + a[j+1] = a[j]; + } + a[j+1] = v; + } + return a; +}; + +SAPBroadphase.prototype.sortList = function(){ + var bodies = this.axisList, + axisIndex = this.axisIndex; + + // Sort the lists + SAPBroadphase.sortAxisList(bodies, axisIndex); +}; + +/** + * Get the colliding pairs + * @method getCollisionPairs + * @param {World} world + * @return {Array} + */ +SAPBroadphase.prototype.getCollisionPairs = function(world){ + var bodies = this.axisList, + result = this.result, + axisIndex = this.axisIndex; + + result.length = 0; + + // Update all AABBs if needed + var l = bodies.length; + while(l--){ + var b = bodies[l]; + if(b.aabbNeedsUpdate){ + b.updateAABB(); + } + } + + // Sort the lists + this.sortList(); + + // Look through the X list + for(var i=0, N=bodies.length|0; i!==N; i++){ + var bi = bodies[i]; + + for(var j=i+1; j G = [-n -rixn n rjxn] + + var r = vec2.create(); + var ri = vec2.create(); // worldAnchorA + var rj = vec2.create(); // worldAnchorB + var that = this; + normal.computeGq = function(){ + var bodyA = this.bodyA, + bodyB = this.bodyB, + xi = bodyA.position, + xj = bodyB.position; + + // Transform local anchors to world + vec2.rotate(ri, localAnchorA, bodyA.angle); + vec2.rotate(rj, localAnchorB, bodyB.angle); + + vec2.add(r, xj, rj); + vec2.sub(r, r, ri); + vec2.sub(r, r, xi); + + //vec2.sub(r, bodyB.position, bodyA.position); + return vec2.length(r) - that.distance; + }; + + // Make the contact constraint bilateral + this.setMaxForce(maxForce); + + /** + * If the upper limit is enabled or not. + * @property {Boolean} upperLimitEnabled + */ + this.upperLimitEnabled = false; + + /** + * The upper constraint limit. + * @property {number} upperLimit + */ + this.upperLimit = 1; + + /** + * If the lower limit is enabled or not. + * @property {Boolean} lowerLimitEnabled + */ + this.lowerLimitEnabled = false; + + /** + * The lower constraint limit. + * @property {number} lowerLimit + */ + this.lowerLimit = 0; + + /** + * Current constraint position. This is equal to the current distance between the world anchor points. + * @property {number} position + */ + this.position = 0; +} +DistanceConstraint.prototype = new Constraint(); +DistanceConstraint.prototype.constructor = DistanceConstraint; + +/** + * Update the constraint equations. Should be done if any of the bodies changed position, before solving. + * @method update + */ +var n = vec2.create(); +var ri = vec2.create(); // worldAnchorA +var rj = vec2.create(); // worldAnchorB +DistanceConstraint.prototype.update = function(){ + var normal = this.equations[0], + bodyA = this.bodyA, + bodyB = this.bodyB, + distance = this.distance, + xi = bodyA.position, + xj = bodyB.position, + normalEquation = this.equations[0], + G = normal.G; + + // Transform local anchors to world + vec2.rotate(ri, this.localAnchorA, bodyA.angle); + vec2.rotate(rj, this.localAnchorB, bodyB.angle); + + // Get world anchor points and normal + vec2.add(n, xj, rj); + vec2.sub(n, n, ri); + vec2.sub(n, n, xi); + this.position = vec2.length(n); + + var violating = false; + if(this.upperLimitEnabled){ + if(this.position > this.upperLimit){ + normalEquation.maxForce = 0; + normalEquation.minForce = -this.maxForce; + this.distance = this.upperLimit; + violating = true; + } + } + + if(this.lowerLimitEnabled){ + if(this.position < this.lowerLimit){ + normalEquation.maxForce = this.maxForce; + normalEquation.minForce = 0; + this.distance = this.lowerLimit; + violating = true; + } + } + + if((this.lowerLimitEnabled || this.upperLimitEnabled) && !violating){ + // No constraint needed. + normalEquation.enabled = false; + return; + } + + normalEquation.enabled = true; + + vec2.normalize(n,n); + + // Caluclate cross products + var rixn = vec2.crossLength(ri, n), + rjxn = vec2.crossLength(rj, n); + + // G = [-n -rixn n rjxn] + G[0] = -n[0]; + G[1] = -n[1]; + G[2] = -rixn; + G[3] = n[0]; + G[4] = n[1]; + G[5] = rjxn; +}; + +/** + * Set the max force to be used + * @method setMaxForce + * @param {Number} maxForce + */ +DistanceConstraint.prototype.setMaxForce = function(maxForce){ + var normal = this.equations[0]; + normal.minForce = -maxForce; + normal.maxForce = maxForce; +}; + +/** + * Get the max force + * @method getMaxForce + * @return {Number} + */ +DistanceConstraint.prototype.getMaxForce = function(){ + var normal = this.equations[0]; + return normal.maxForce; +}; + +},{"../equations/Equation":22,"../math/vec2":30,"../utils/Utils":57,"./Constraint":14}],16:[function(_dereq_,module,exports){ +var Constraint = _dereq_('./Constraint') +, Equation = _dereq_('../equations/Equation') +, AngleLockEquation = _dereq_('../equations/AngleLockEquation') +, vec2 = _dereq_('../math/vec2'); + +module.exports = GearConstraint; + +/** + * Constrains the angle of two bodies to each other to be equal. If a gear ratio is not one, the angle of bodyA must be a multiple of the angle of bodyB. + * @class GearConstraint + * @constructor + * @author schteppe + * @param {Body} bodyA + * @param {Body} bodyB + * @param {Object} [options] + * @param {Number} [options.angle=0] Relative angle between the bodies. Will be set to the current angle between the bodies (the gear ratio is accounted for). + * @param {Number} [options.ratio=1] Gear ratio. + * @param {Number} [options.maxTorque] Maximum torque to apply. + * @extends Constraint + * + * @example + * var constraint = new GearConstraint(bodyA, bodyB); + * world.addConstraint(constraint); + * + * @example + * var constraint = new GearConstraint(bodyA, bodyB, { + * ratio: 2, + * maxTorque: 1000 + * }); + * world.addConstraint(constraint); + */ +function GearConstraint(bodyA, bodyB, options){ + options = options || {}; + + Constraint.call(this, bodyA, bodyB, Constraint.GEAR, options); + + /** + * The gear ratio. + * @property ratio + * @type {Number} + */ + this.ratio = options.ratio !== undefined ? options.ratio : 1; + + /** + * The relative angle + * @property angle + * @type {Number} + */ + this.angle = options.angle !== undefined ? options.angle : bodyB.angle - this.ratio * bodyA.angle; + + // Send same parameters to the equation + options.angle = this.angle; + options.ratio = this.ratio; + + this.equations = [ + new AngleLockEquation(bodyA,bodyB,options), + ]; + + // Set max torque + if(options.maxTorque !== undefined){ + this.setMaxTorque(options.maxTorque); + } +} +GearConstraint.prototype = new Constraint(); +GearConstraint.prototype.constructor = GearConstraint; + +GearConstraint.prototype.update = function(){ + var eq = this.equations[0]; + if(eq.ratio !== this.ratio){ + eq.setRatio(this.ratio); + } + eq.angle = this.angle; +}; + +/** + * Set the max torque for the constraint. + * @method setMaxTorque + * @param {Number} torque + */ +GearConstraint.prototype.setMaxTorque = function(torque){ + this.equations[0].setMaxTorque(torque); +}; + +/** + * Get the max torque for the constraint. + * @method getMaxTorque + * @return {Number} + */ +GearConstraint.prototype.getMaxTorque = function(torque){ + return this.equations[0].maxForce; +}; +},{"../equations/AngleLockEquation":20,"../equations/Equation":22,"../math/vec2":30,"./Constraint":14}],17:[function(_dereq_,module,exports){ +var Constraint = _dereq_('./Constraint') +, vec2 = _dereq_('../math/vec2') +, Equation = _dereq_('../equations/Equation'); + +module.exports = LockConstraint; + +/** + * Locks the relative position and rotation between two bodies. + * + * @class LockConstraint + * @constructor + * @author schteppe + * @param {Body} bodyA + * @param {Body} bodyB + * @param {Object} [options] + * @param {Array} [options.localOffsetB] The offset of bodyB in bodyA's frame. If not given the offset is computed from current positions. + * @param {number} [options.localAngleB] The angle of bodyB in bodyA's frame. If not given, the angle is computed from current angles. + * @param {number} [options.maxForce] + * @extends Constraint + * + * @example + * // Locks the relative position and rotation between bodyA and bodyB + * var constraint = new LockConstraint(bodyA, bodyB); + * world.addConstraint(constraint); + */ +function LockConstraint(bodyA, bodyB, options){ + options = options || {}; + + Constraint.call(this,bodyA,bodyB,Constraint.LOCK,options); + + var maxForce = ( typeof(options.maxForce)==="undefined" ? Number.MAX_VALUE : options.maxForce ); + + var localAngleB = options.localAngleB || 0; + + // Use 3 equations: + // gx = (xj - xi - l) * xhat = 0 + // gy = (xj - xi - l) * yhat = 0 + // gr = (xi - xj + r) * that = 0 + // + // ...where: + // l is the localOffsetB vector rotated to world in bodyA frame + // r is the same vector but reversed and rotated from bodyB frame + // xhat, yhat are world axis vectors + // that is the tangent of r + // + // For the first two constraints, we get + // G*W = (vj - vi - ldot ) * xhat + // = (vj - vi - wi x l) * xhat + // + // Since (wi x l) * xhat = (l x xhat) * wi, we get + // G*W = [ -1 0 (-l x xhat) 1 0 0] * [vi wi vj wj] + // + // The last constraint gives + // GW = (vi - vj + wj x r) * that + // = [ that 0 -that (r x t) ] + + var x = new Equation(bodyA,bodyB,-maxForce,maxForce), + y = new Equation(bodyA,bodyB,-maxForce,maxForce), + rot = new Equation(bodyA,bodyB,-maxForce,maxForce); + + var l = vec2.create(), + g = vec2.create(), + that = this; + x.computeGq = function(){ + vec2.rotate(l, that.localOffsetB, bodyA.angle); + vec2.sub(g, bodyB.position, bodyA.position); + vec2.sub(g, g, l); + return g[0]; + }; + y.computeGq = function(){ + vec2.rotate(l, that.localOffsetB, bodyA.angle); + vec2.sub(g, bodyB.position, bodyA.position); + vec2.sub(g, g, l); + return g[1]; + }; + var r = vec2.create(), + t = vec2.create(); + rot.computeGq = function(){ + vec2.rotate(r, that.localOffsetB, bodyB.angle - that.localAngleB); + vec2.scale(r,r,-1); + vec2.sub(g,bodyA.position,bodyB.position); + vec2.add(g,g,r); + vec2.rotate(t,r,-Math.PI/2); + vec2.normalize(t,t); + return vec2.dot(g,t); + }; + + /** + * The offset of bodyB in bodyA's frame. + * @property {Array} localOffsetB + */ + this.localOffsetB = vec2.create(); + if(options.localOffsetB){ + vec2.copy(this.localOffsetB, options.localOffsetB); + } else { + // Construct from current positions + vec2.sub(this.localOffsetB, bodyB.position, bodyA.position); + vec2.rotate(this.localOffsetB, this.localOffsetB, -bodyA.angle); + } + + /** + * The offset angle of bodyB in bodyA's frame. + * @property {Number} localAngleB + */ + this.localAngleB = 0; + if(typeof(options.localAngleB) === 'number'){ + this.localAngleB = options.localAngleB; + } else { + // Construct + this.localAngleB = bodyB.angle - bodyA.angle; + } + + this.equations.push(x, y, rot); + this.setMaxForce(maxForce); +} +LockConstraint.prototype = new Constraint(); +LockConstraint.prototype.constructor = LockConstraint; + +/** + * Set the maximum force to be applied. + * @method setMaxForce + * @param {Number} force + */ +LockConstraint.prototype.setMaxForce = function(force){ + var eqs = this.equations; + for(var i=0; ithis tutorial. Also called "slider constraint". + * + * @class PrismaticConstraint + * @constructor + * @extends Constraint + * @author schteppe + * @param {Body} bodyA + * @param {Body} bodyB + * @param {Object} [options] + * @param {Number} [options.maxForce] Max force to be applied by the constraint + * @param {Array} [options.localAnchorA] Body A's anchor point, defined in its own local frame. + * @param {Array} [options.localAnchorB] Body B's anchor point, defined in its own local frame. + * @param {Array} [options.localAxisA] An axis, defined in body A frame, that body B's anchor point may slide along. + * @param {Boolean} [options.disableRotationalLock] If set to true, bodyB will be free to rotate around its anchor point. + * @param {Number} [options.upperLimit] + * @param {Number} [options.lowerLimit] + * @todo Ability to create using only a point and a worldAxis + */ +function PrismaticConstraint(bodyA, bodyB, options){ + options = options || {}; + Constraint.call(this,bodyA,bodyB,Constraint.PRISMATIC,options); + + // Get anchors + var localAnchorA = vec2.fromValues(0,0), + localAxisA = vec2.fromValues(1,0), + localAnchorB = vec2.fromValues(0,0); + if(options.localAnchorA){ vec2.copy(localAnchorA, options.localAnchorA); } + if(options.localAxisA){ vec2.copy(localAxisA, options.localAxisA); } + if(options.localAnchorB){ vec2.copy(localAnchorB, options.localAnchorB); } + + /** + * @property localAnchorA + * @type {Array} + */ + this.localAnchorA = localAnchorA; + + /** + * @property localAnchorB + * @type {Array} + */ + this.localAnchorB = localAnchorB; + + /** + * @property localAxisA + * @type {Array} + */ + this.localAxisA = localAxisA; + + /* + + The constraint violation for the common axis point is + + g = ( xj + rj - xi - ri ) * t := gg*t + + where r are body-local anchor points, and t is a tangent to the constraint axis defined in body i frame. + + gdot = ( vj + wj x rj - vi - wi x ri ) * t + ( xj + rj - xi - ri ) * ( wi x t ) + + Note the use of the chain rule. Now we identify the jacobian + + G*W = [ -t -ri x t + t x gg t rj x t ] * [vi wi vj wj] + + The rotational part is just a rotation lock. + + */ + + var maxForce = this.maxForce = typeof(options.maxForce)!=="undefined" ? options.maxForce : Number.MAX_VALUE; + + // Translational part + var trans = new Equation(bodyA,bodyB,-maxForce,maxForce); + var ri = new vec2.create(), + rj = new vec2.create(), + gg = new vec2.create(), + t = new vec2.create(); + trans.computeGq = function(){ + // g = ( xj + rj - xi - ri ) * t + return vec2.dot(gg,t); + }; + trans.updateJacobian = function(){ + var G = this.G, + xi = bodyA.position, + xj = bodyB.position; + vec2.rotate(ri,localAnchorA,bodyA.angle); + vec2.rotate(rj,localAnchorB,bodyB.angle); + vec2.add(gg,xj,rj); + vec2.sub(gg,gg,xi); + vec2.sub(gg,gg,ri); + vec2.rotate(t,localAxisA,bodyA.angle+Math.PI/2); + + G[0] = -t[0]; + G[1] = -t[1]; + G[2] = -vec2.crossLength(ri,t) + vec2.crossLength(t,gg); + G[3] = t[0]; + G[4] = t[1]; + G[5] = vec2.crossLength(rj,t); + }; + this.equations.push(trans); + + // Rotational part + if(!options.disableRotationalLock){ + var rot = new RotationalLockEquation(bodyA,bodyB,-maxForce,maxForce); + this.equations.push(rot); + } + + /** + * The position of anchor A relative to anchor B, along the constraint axis. + * @property position + * @type {Number} + */ + this.position = 0; + + // Is this one used at all? + this.velocity = 0; + + /** + * Set to true to enable lower limit. + * @property lowerLimitEnabled + * @type {Boolean} + */ + this.lowerLimitEnabled = typeof(options.lowerLimit)!=="undefined" ? true : false; + + /** + * Set to true to enable upper limit. + * @property upperLimitEnabled + * @type {Boolean} + */ + this.upperLimitEnabled = typeof(options.upperLimit)!=="undefined" ? true : false; + + /** + * Lower constraint limit. The constraint position is forced to be larger than this value. + * @property lowerLimit + * @type {Number} + */ + this.lowerLimit = typeof(options.lowerLimit)!=="undefined" ? options.lowerLimit : 0; + + /** + * Upper constraint limit. The constraint position is forced to be smaller than this value. + * @property upperLimit + * @type {Number} + */ + this.upperLimit = typeof(options.upperLimit)!=="undefined" ? options.upperLimit : 1; + + // Equations used for limits + this.upperLimitEquation = new ContactEquation(bodyA,bodyB); + this.lowerLimitEquation = new ContactEquation(bodyA,bodyB); + + // Set max/min forces + this.upperLimitEquation.minForce = this.lowerLimitEquation.minForce = 0; + this.upperLimitEquation.maxForce = this.lowerLimitEquation.maxForce = maxForce; + + /** + * Equation used for the motor. + * @property motorEquation + * @type {Equation} + */ + this.motorEquation = new Equation(bodyA,bodyB); + + /** + * The current motor state. Enable or disable the motor using .enableMotor + * @property motorEnabled + * @type {Boolean} + */ + this.motorEnabled = false; + + /** + * Set the target speed for the motor. + * @property motorSpeed + * @type {Number} + */ + this.motorSpeed = 0; + + var that = this; + var motorEquation = this.motorEquation; + var old = motorEquation.computeGW; + motorEquation.computeGq = function(){ return 0; }; + motorEquation.computeGW = function(){ + var G = this.G, + bi = this.bodyA, + bj = this.bodyB, + vi = bi.velocity, + vj = bj.velocity, + wi = bi.angularVelocity, + wj = bj.angularVelocity; + return this.gmult(G,vi,wi,vj,wj) + that.motorSpeed; + }; +} + +PrismaticConstraint.prototype = new Constraint(); +PrismaticConstraint.prototype.constructor = PrismaticConstraint; + +var worldAxisA = vec2.create(), + worldAnchorA = vec2.create(), + worldAnchorB = vec2.create(), + orientedAnchorA = vec2.create(), + orientedAnchorB = vec2.create(), + tmp = vec2.create(); + +/** + * Update the constraint equations. Should be done if any of the bodies changed position, before solving. + * @method update + */ +PrismaticConstraint.prototype.update = function(){ + var eqs = this.equations, + trans = eqs[0], + upperLimit = this.upperLimit, + lowerLimit = this.lowerLimit, + upperLimitEquation = this.upperLimitEquation, + lowerLimitEquation = this.lowerLimitEquation, + bodyA = this.bodyA, + bodyB = this.bodyB, + localAxisA = this.localAxisA, + localAnchorA = this.localAnchorA, + localAnchorB = this.localAnchorB; + + trans.updateJacobian(); + + // Transform local things to world + vec2.rotate(worldAxisA, localAxisA, bodyA.angle); + vec2.rotate(orientedAnchorA, localAnchorA, bodyA.angle); + vec2.add(worldAnchorA, orientedAnchorA, bodyA.position); + vec2.rotate(orientedAnchorB, localAnchorB, bodyB.angle); + vec2.add(worldAnchorB, orientedAnchorB, bodyB.position); + + var relPosition = this.position = vec2.dot(worldAnchorB,worldAxisA) - vec2.dot(worldAnchorA,worldAxisA); + + // Motor + if(this.motorEnabled){ + // G = [ a a x ri -a -a x rj ] + var G = this.motorEquation.G; + G[0] = worldAxisA[0]; + G[1] = worldAxisA[1]; + G[2] = vec2.crossLength(worldAxisA,orientedAnchorB); + G[3] = -worldAxisA[0]; + G[4] = -worldAxisA[1]; + G[5] = -vec2.crossLength(worldAxisA,orientedAnchorA); + } + + /* + Limits strategy: + Add contact equation, with normal along the constraint axis. + min/maxForce is set so the constraint is repulsive in the correct direction. + Some offset is added to either equation.contactPointA or .contactPointB to get the correct upper/lower limit. + + ^ + | + upperLimit x + | ------ + anchorB x<---| B | + | | | + ------ | ------ + | | | + | A |-->x anchorA + ------ | + x lowerLimit + | + axis + */ + + + if(this.upperLimitEnabled && relPosition > upperLimit){ + // Update contact constraint normal, etc + vec2.scale(upperLimitEquation.normalA, worldAxisA, -1); + vec2.sub(upperLimitEquation.contactPointA, worldAnchorA, bodyA.position); + vec2.sub(upperLimitEquation.contactPointB, worldAnchorB, bodyB.position); + vec2.scale(tmp,worldAxisA,upperLimit); + vec2.add(upperLimitEquation.contactPointA,upperLimitEquation.contactPointA,tmp); + if(eqs.indexOf(upperLimitEquation) === -1){ + eqs.push(upperLimitEquation); + } + } else { + var idx = eqs.indexOf(upperLimitEquation); + if(idx !== -1){ + eqs.splice(idx,1); + } + } + + if(this.lowerLimitEnabled && relPosition < lowerLimit){ + // Update contact constraint normal, etc + vec2.scale(lowerLimitEquation.normalA, worldAxisA, 1); + vec2.sub(lowerLimitEquation.contactPointA, worldAnchorA, bodyA.position); + vec2.sub(lowerLimitEquation.contactPointB, worldAnchorB, bodyB.position); + vec2.scale(tmp,worldAxisA,lowerLimit); + vec2.sub(lowerLimitEquation.contactPointB,lowerLimitEquation.contactPointB,tmp); + if(eqs.indexOf(lowerLimitEquation) === -1){ + eqs.push(lowerLimitEquation); + } + } else { + var idx = eqs.indexOf(lowerLimitEquation); + if(idx !== -1){ + eqs.splice(idx,1); + } + } +}; + +/** + * Enable the motor + * @method enableMotor + */ +PrismaticConstraint.prototype.enableMotor = function(){ + if(this.motorEnabled){ + return; + } + this.equations.push(this.motorEquation); + this.motorEnabled = true; +}; + +/** + * Disable the rotational motor + * @method disableMotor + */ +PrismaticConstraint.prototype.disableMotor = function(){ + if(!this.motorEnabled){ + return; + } + var i = this.equations.indexOf(this.motorEquation); + this.equations.splice(i,1); + this.motorEnabled = false; +}; + +/** + * Set the constraint limits. + * @method setLimits + * @param {number} lower Lower limit. + * @param {number} upper Upper limit. + */ +PrismaticConstraint.prototype.setLimits = function (lower, upper) { + if(typeof(lower) === 'number'){ + this.lowerLimit = lower; + this.lowerLimitEnabled = true; + } else { + this.lowerLimit = lower; + this.lowerLimitEnabled = false; + } + + if(typeof(upper) === 'number'){ + this.upperLimit = upper; + this.upperLimitEnabled = true; + } else { + this.upperLimit = upper; + this.upperLimitEnabled = false; + } +}; + + +},{"../equations/ContactEquation":21,"../equations/Equation":22,"../equations/RotationalLockEquation":24,"../math/vec2":30,"./Constraint":14}],19:[function(_dereq_,module,exports){ +var Constraint = _dereq_('./Constraint') +, Equation = _dereq_('../equations/Equation') +, RotationalVelocityEquation = _dereq_('../equations/RotationalVelocityEquation') +, RotationalLockEquation = _dereq_('../equations/RotationalLockEquation') +, vec2 = _dereq_('../math/vec2'); + +module.exports = RevoluteConstraint; + +var worldPivotA = vec2.create(), + worldPivotB = vec2.create(), + xAxis = vec2.fromValues(1,0), + yAxis = vec2.fromValues(0,1), + g = vec2.create(); + +/** + * Connects two bodies at given offset points, letting them rotate relative to each other around this point. + * @class RevoluteConstraint + * @constructor + * @author schteppe + * @param {Body} bodyA + * @param {Body} bodyB + * @param {Object} [options] + * @param {Array} [options.worldPivot] A pivot point given in world coordinates. If specified, localPivotA and localPivotB are automatically computed from this value. + * @param {Array} [options.localPivotA] The point relative to the center of mass of bodyA which bodyA is constrained to. + * @param {Array} [options.localPivotB] See localPivotA. + * @param {Number} [options.maxForce] The maximum force that should be applied to constrain the bodies. + * @extends Constraint + * + * @example + * // This will create a revolute constraint between two bodies with pivot point in between them. + * var bodyA = new Body({ mass: 1, position: [-1, 0] }); + * var bodyB = new Body({ mass: 1, position: [1, 0] }); + * var constraint = new RevoluteConstraint(bodyA, bodyB, { + * worldPivot: [0, 0] + * }); + * world.addConstraint(constraint); + * + * // Using body-local pivot points, the constraint could have been constructed like this: + * var constraint = new RevoluteConstraint(bodyA, bodyB, { + * localPivotA: [1, 0], + * localPivotB: [-1, 0] + * }); + */ +function RevoluteConstraint(bodyA, bodyB, options){ + options = options || {}; + Constraint.call(this,bodyA,bodyB,Constraint.REVOLUTE,options); + + var maxForce = this.maxForce = typeof(options.maxForce) !== "undefined" ? options.maxForce : Number.MAX_VALUE; + + /** + * @property {Array} pivotA + */ + this.pivotA = vec2.create(); + + /** + * @property {Array} pivotB + */ + this.pivotB = vec2.create(); + + if(options.worldPivot){ + // Compute pivotA and pivotB + vec2.sub(this.pivotA, options.worldPivot, bodyA.position); + vec2.sub(this.pivotB, options.worldPivot, bodyB.position); + // Rotate to local coordinate system + vec2.rotate(this.pivotA, this.pivotA, -bodyA.angle); + vec2.rotate(this.pivotB, this.pivotB, -bodyB.angle); + } else { + // Get pivotA and pivotB + vec2.copy(this.pivotA, options.localPivotA); + vec2.copy(this.pivotB, options.localPivotB); + } + + // Equations to be fed to the solver + var eqs = this.equations = [ + new Equation(bodyA,bodyB,-maxForce,maxForce), + new Equation(bodyA,bodyB,-maxForce,maxForce), + ]; + + var x = eqs[0]; + var y = eqs[1]; + var that = this; + + x.computeGq = function(){ + vec2.rotate(worldPivotA, that.pivotA, bodyA.angle); + vec2.rotate(worldPivotB, that.pivotB, bodyB.angle); + vec2.add(g, bodyB.position, worldPivotB); + vec2.sub(g, g, bodyA.position); + vec2.sub(g, g, worldPivotA); + return vec2.dot(g,xAxis); + }; + + y.computeGq = function(){ + vec2.rotate(worldPivotA, that.pivotA, bodyA.angle); + vec2.rotate(worldPivotB, that.pivotB, bodyB.angle); + vec2.add(g, bodyB.position, worldPivotB); + vec2.sub(g, g, bodyA.position); + vec2.sub(g, g, worldPivotA); + return vec2.dot(g,yAxis); + }; + + y.minForce = x.minForce = -maxForce; + y.maxForce = x.maxForce = maxForce; + + this.motorEquation = new RotationalVelocityEquation(bodyA,bodyB); + + /** + * Indicates whether the motor is enabled. Use .enableMotor() to enable the constraint motor. + * @property {Boolean} motorEnabled + * @readOnly + */ + this.motorEnabled = false; + + /** + * The constraint position. + * @property angle + * @type {Number} + * @readOnly + */ + this.angle = 0; + + /** + * Set to true to enable lower limit + * @property lowerLimitEnabled + * @type {Boolean} + */ + this.lowerLimitEnabled = false; + + /** + * Set to true to enable upper limit + * @property upperLimitEnabled + * @type {Boolean} + */ + this.upperLimitEnabled = false; + + /** + * The lower limit on the constraint angle. + * @property lowerLimit + * @type {Boolean} + */ + this.lowerLimit = 0; + + /** + * The upper limit on the constraint angle. + * @property upperLimit + * @type {Boolean} + */ + this.upperLimit = 0; + + this.upperLimitEquation = new RotationalLockEquation(bodyA,bodyB); + this.lowerLimitEquation = new RotationalLockEquation(bodyA,bodyB); + this.upperLimitEquation.minForce = 0; + this.lowerLimitEquation.maxForce = 0; +} +RevoluteConstraint.prototype = new Constraint(); +RevoluteConstraint.prototype.constructor = RevoluteConstraint; + +/** + * Set the constraint angle limits. + * @method setLimits + * @param {number} lower Lower angle limit. + * @param {number} upper Upper angle limit. + */ +RevoluteConstraint.prototype.setLimits = function (lower, upper) { + if(typeof(lower) === 'number'){ + this.lowerLimit = lower; + this.lowerLimitEnabled = true; + } else { + this.lowerLimit = lower; + this.lowerLimitEnabled = false; + } + + if(typeof(upper) === 'number'){ + this.upperLimit = upper; + this.upperLimitEnabled = true; + } else { + this.upperLimit = upper; + this.upperLimitEnabled = false; + } +}; + +RevoluteConstraint.prototype.update = function(){ + var bodyA = this.bodyA, + bodyB = this.bodyB, + pivotA = this.pivotA, + pivotB = this.pivotB, + eqs = this.equations, + normal = eqs[0], + tangent= eqs[1], + x = eqs[0], + y = eqs[1], + upperLimit = this.upperLimit, + lowerLimit = this.lowerLimit, + upperLimitEquation = this.upperLimitEquation, + lowerLimitEquation = this.lowerLimitEquation; + + var relAngle = this.angle = bodyB.angle - bodyA.angle; + + if(this.upperLimitEnabled && relAngle > upperLimit){ + upperLimitEquation.angle = upperLimit; + if(eqs.indexOf(upperLimitEquation) === -1){ + eqs.push(upperLimitEquation); + } + } else { + var idx = eqs.indexOf(upperLimitEquation); + if(idx !== -1){ + eqs.splice(idx,1); + } + } + + if(this.lowerLimitEnabled && relAngle < lowerLimit){ + lowerLimitEquation.angle = lowerLimit; + if(eqs.indexOf(lowerLimitEquation) === -1){ + eqs.push(lowerLimitEquation); + } + } else { + var idx = eqs.indexOf(lowerLimitEquation); + if(idx !== -1){ + eqs.splice(idx,1); + } + } + + /* + + The constraint violation is + + g = xj + rj - xi - ri + + ...where xi and xj are the body positions and ri and rj world-oriented offset vectors. Differentiate: + + gdot = vj + wj x rj - vi - wi x ri + + We split this into x and y directions. (let x and y be unit vectors along the respective axes) + + gdot * x = ( vj + wj x rj - vi - wi x ri ) * x + = ( vj*x + (wj x rj)*x -vi*x -(wi x ri)*x + = ( vj*x + (rj x x)*wj -vi*x -(ri x x)*wi + = [ -x -(ri x x) x (rj x x)] * [vi wi vj wj] + = G*W + + ...and similar for y. We have then identified the jacobian entries for x and y directions: + + Gx = [ x (rj x x) -x -(ri x x)] + Gy = [ y (rj x y) -y -(ri x y)] + + */ + + vec2.rotate(worldPivotA, pivotA, bodyA.angle); + vec2.rotate(worldPivotB, pivotB, bodyB.angle); + + // todo: these are a bit sparse. We could save some computations on making custom eq.computeGW functions, etc + + x.G[0] = -1; + x.G[1] = 0; + x.G[2] = -vec2.crossLength(worldPivotA,xAxis); + x.G[3] = 1; + x.G[4] = 0; + x.G[5] = vec2.crossLength(worldPivotB,xAxis); + + y.G[0] = 0; + y.G[1] = -1; + y.G[2] = -vec2.crossLength(worldPivotA,yAxis); + y.G[3] = 0; + y.G[4] = 1; + y.G[5] = vec2.crossLength(worldPivotB,yAxis); +}; + +/** + * Enable the rotational motor + * @method enableMotor + */ +RevoluteConstraint.prototype.enableMotor = function(){ + if(this.motorEnabled){ + return; + } + this.equations.push(this.motorEquation); + this.motorEnabled = true; +}; + +/** + * Disable the rotational motor + * @method disableMotor + */ +RevoluteConstraint.prototype.disableMotor = function(){ + if(!this.motorEnabled){ + return; + } + var i = this.equations.indexOf(this.motorEquation); + this.equations.splice(i,1); + this.motorEnabled = false; +}; + +/** + * Check if the motor is enabled. + * @method motorIsEnabled + * @deprecated use property motorEnabled instead. + * @return {Boolean} + */ +RevoluteConstraint.prototype.motorIsEnabled = function(){ + return !!this.motorEnabled; +}; + +/** + * Set the speed of the rotational constraint motor + * @method setMotorSpeed + * @param {Number} speed + */ +RevoluteConstraint.prototype.setMotorSpeed = function(speed){ + if(!this.motorEnabled){ + return; + } + var i = this.equations.indexOf(this.motorEquation); + this.equations[i].relativeVelocity = speed; +}; + +/** + * Get the speed of the rotational constraint motor + * @method getMotorSpeed + * @return {Number} The current speed, or false if the motor is not enabled. + */ +RevoluteConstraint.prototype.getMotorSpeed = function(){ + if(!this.motorEnabled){ + return false; + } + return this.motorEquation.relativeVelocity; +}; + +},{"../equations/Equation":22,"../equations/RotationalLockEquation":24,"../equations/RotationalVelocityEquation":25,"../math/vec2":30,"./Constraint":14}],20:[function(_dereq_,module,exports){ +var Equation = _dereq_("./Equation"), + vec2 = _dereq_('../math/vec2'); + +module.exports = AngleLockEquation; + +/** + * Locks the relative angle between two bodies. The constraint tries to keep the dot product between two vectors, local in each body, to zero. The local angle in body i is a parameter. + * + * @class AngleLockEquation + * @constructor + * @extends Equation + * @param {Body} bodyA + * @param {Body} bodyB + * @param {Object} [options] + * @param {Number} [options.angle] Angle to add to the local vector in body A. + * @param {Number} [options.ratio] Gear ratio + */ +function AngleLockEquation(bodyA, bodyB, options){ + options = options || {}; + Equation.call(this,bodyA,bodyB,-Number.MAX_VALUE,Number.MAX_VALUE); + this.angle = options.angle || 0; + + /** + * The gear ratio. + * @property {Number} ratio + * @private + * @see setRatio + */ + this.ratio = typeof(options.ratio)==="number" ? options.ratio : 1; + + this.setRatio(this.ratio); +} +AngleLockEquation.prototype = new Equation(); +AngleLockEquation.prototype.constructor = AngleLockEquation; + +AngleLockEquation.prototype.computeGq = function(){ + return this.ratio * this.bodyA.angle - this.bodyB.angle + this.angle; +}; + +/** + * Set the gear ratio for this equation + * @method setRatio + * @param {Number} ratio + */ +AngleLockEquation.prototype.setRatio = function(ratio){ + var G = this.G; + G[2] = ratio; + G[5] = -1; + this.ratio = ratio; +}; + +/** + * Set the max force for the equation. + * @method setMaxTorque + * @param {Number} torque + */ +AngleLockEquation.prototype.setMaxTorque = function(torque){ + this.maxForce = torque; + this.minForce = -torque; +}; + +},{"../math/vec2":30,"./Equation":22}],21:[function(_dereq_,module,exports){ +var Equation = _dereq_("./Equation"), + vec2 = _dereq_('../math/vec2'); + +module.exports = ContactEquation; + +/** + * Non-penetration constraint equation. Tries to make the contactPointA and contactPointB vectors coincide, while keeping the applied force repulsive. + * + * @class ContactEquation + * @constructor + * @extends Equation + * @param {Body} bodyA + * @param {Body} bodyB + */ +function ContactEquation(bodyA, bodyB){ + Equation.call(this, bodyA, bodyB, 0, Number.MAX_VALUE); + + /** + * Vector from body i center of mass to the contact point. + * @property contactPointA + * @type {Array} + */ + this.contactPointA = vec2.create(); + this.penetrationVec = vec2.create(); + + /** + * World-oriented vector from body A center of mass to the contact point. + * @property contactPointB + * @type {Array} + */ + this.contactPointB = vec2.create(); + + /** + * The normal vector, pointing out of body i + * @property normalA + * @type {Array} + */ + this.normalA = vec2.create(); + + /** + * The restitution to use (0=no bounciness, 1=max bounciness). + * @property restitution + * @type {Number} + */ + this.restitution = 0; + + /** + * This property is set to true if this is the first impact between the bodies (not persistant contact). + * @property firstImpact + * @type {Boolean} + * @readOnly + */ + this.firstImpact = false; + + /** + * The shape in body i that triggered this contact. + * @property shapeA + * @type {Shape} + */ + this.shapeA = null; + + /** + * The shape in body j that triggered this contact. + * @property shapeB + * @type {Shape} + */ + this.shapeB = null; +} +ContactEquation.prototype = new Equation(); +ContactEquation.prototype.constructor = ContactEquation; +ContactEquation.prototype.computeB = function(a,b,h){ + var bi = this.bodyA, + bj = this.bodyB, + ri = this.contactPointA, + rj = this.contactPointB, + xi = bi.position, + xj = bj.position; + + var penetrationVec = this.penetrationVec, + n = this.normalA, + G = this.G; + + // Caluclate cross products + var rixn = vec2.crossLength(ri,n), + rjxn = vec2.crossLength(rj,n); + + // G = [-n -rixn n rjxn] + G[0] = -n[0]; + G[1] = -n[1]; + G[2] = -rixn; + G[3] = n[0]; + G[4] = n[1]; + G[5] = rjxn; + + // Calculate q = xj+rj -(xi+ri) i.e. the penetration vector + vec2.add(penetrationVec,xj,rj); + vec2.sub(penetrationVec,penetrationVec,xi); + vec2.sub(penetrationVec,penetrationVec,ri); + + // Compute iteration + var GW, Gq; + if(this.firstImpact && this.restitution !== 0){ + Gq = 0; + GW = (1/b)*(1+this.restitution) * this.computeGW(); + } else { + Gq = vec2.dot(n,penetrationVec) + this.offset; + GW = this.computeGW(); + } + + var GiMf = this.computeGiMf(); + var B = - Gq * a - GW * b - h*GiMf; + + return B; +}; + +},{"../math/vec2":30,"./Equation":22}],22:[function(_dereq_,module,exports){ +module.exports = Equation; + +var vec2 = _dereq_('../math/vec2'), + Utils = _dereq_('../utils/Utils'), + Body = _dereq_('../objects/Body'); + +/** + * Base class for constraint equations. + * @class Equation + * @constructor + * @param {Body} bodyA First body participating in the equation + * @param {Body} bodyB Second body participating in the equation + * @param {number} minForce Minimum force to apply. Default: -Number.MAX_VALUE + * @param {number} maxForce Maximum force to apply. Default: Number.MAX_VALUE + */ +function Equation(bodyA, bodyB, minForce, maxForce){ + + /** + * Minimum force to apply when solving. + * @property minForce + * @type {Number} + */ + this.minForce = typeof(minForce)==="undefined" ? -Number.MAX_VALUE : minForce; + + /** + * Max force to apply when solving. + * @property maxForce + * @type {Number} + */ + this.maxForce = typeof(maxForce)==="undefined" ? Number.MAX_VALUE : maxForce; + + /** + * First body participating in the constraint + * @property bodyA + * @type {Body} + */ + this.bodyA = bodyA; + + /** + * Second body participating in the constraint + * @property bodyB + * @type {Body} + */ + this.bodyB = bodyB; + + /** + * The stiffness of this equation. Typically chosen to a large number (~1e7), but can be chosen somewhat freely to get a stable simulation. + * @property stiffness + * @type {Number} + */ + this.stiffness = Equation.DEFAULT_STIFFNESS; + + /** + * The number of time steps needed to stabilize the constraint equation. Typically between 3 and 5 time steps. + * @property relaxation + * @type {Number} + */ + this.relaxation = Equation.DEFAULT_RELAXATION; + + /** + * The Jacobian entry of this equation. 6 numbers, 3 per body (x,y,angle). + * @property G + * @type {Array} + */ + this.G = new Utils.ARRAY_TYPE(6); + for(var i=0; i<6; i++){ + this.G[i]=0; + } + + this.offset = 0; + + this.a = 0; + this.b = 0; + this.epsilon = 0; + this.timeStep = 1/60; + + /** + * Indicates if stiffness or relaxation was changed. + * @property {Boolean} needsUpdate + */ + this.needsUpdate = true; + + /** + * The resulting constraint multiplier from the last solve. This is mostly equivalent to the force produced by the constraint. + * @property multiplier + * @type {Number} + */ + this.multiplier = 0; + + /** + * Relative velocity. + * @property {Number} relativeVelocity + */ + this.relativeVelocity = 0; + + /** + * Whether this equation is enabled or not. If true, it will be added to the solver. + * @property {Boolean} enabled + */ + this.enabled = true; +} +Equation.prototype.constructor = Equation; + +/** + * The default stiffness when creating a new Equation. + * @static + * @property {Number} DEFAULT_STIFFNESS + * @default 1e6 + */ +Equation.DEFAULT_STIFFNESS = 1e6; + +/** + * The default relaxation when creating a new Equation. + * @static + * @property {Number} DEFAULT_RELAXATION + * @default 4 + */ +Equation.DEFAULT_RELAXATION = 4; + +/** + * Compute SPOOK parameters .a, .b and .epsilon according to the current parameters. See equations 9, 10 and 11 in the SPOOK notes. + * @method update + */ +Equation.prototype.update = function(){ + var k = this.stiffness, + d = this.relaxation, + h = this.timeStep; + + this.a = 4.0 / (h * (1 + 4 * d)); + this.b = (4.0 * d) / (1 + 4 * d); + this.epsilon = 4.0 / (h * h * k * (1 + 4 * d)); + + this.needsUpdate = false; +}; + +/** + * Multiply a jacobian entry with corresponding positions or velocities + * @method gmult + * @return {Number} + */ +Equation.prototype.gmult = function(G,vi,wi,vj,wj){ + return G[0] * vi[0] + + G[1] * vi[1] + + G[2] * wi + + G[3] * vj[0] + + G[4] * vj[1] + + G[5] * wj; +}; + +/** + * Computes the RHS of the SPOOK equation + * @method computeB + * @return {Number} + */ +Equation.prototype.computeB = function(a,b,h){ + var GW = this.computeGW(); + var Gq = this.computeGq(); + var GiMf = this.computeGiMf(); + return - Gq * a - GW * b - GiMf*h; +}; + +/** + * Computes G\*q, where q are the generalized body coordinates + * @method computeGq + * @return {Number} + */ +var qi = vec2.create(), + qj = vec2.create(); +Equation.prototype.computeGq = function(){ + var G = this.G, + bi = this.bodyA, + bj = this.bodyB, + xi = bi.position, + xj = bj.position, + ai = bi.angle, + aj = bj.angle; + + return this.gmult(G, qi, ai, qj, aj) + this.offset; +}; + +/** + * Computes G\*W, where W are the body velocities + * @method computeGW + * @return {Number} + */ +Equation.prototype.computeGW = function(){ + var G = this.G, + bi = this.bodyA, + bj = this.bodyB, + vi = bi.velocity, + vj = bj.velocity, + wi = bi.angularVelocity, + wj = bj.angularVelocity; + return this.gmult(G,vi,wi,vj,wj) + this.relativeVelocity; +}; + +/** + * Computes G\*Wlambda, where W are the body velocities + * @method computeGWlambda + * @return {Number} + */ +Equation.prototype.computeGWlambda = function(){ + var G = this.G, + bi = this.bodyA, + bj = this.bodyB, + vi = bi.vlambda, + vj = bj.vlambda, + wi = bi.wlambda, + wj = bj.wlambda; + return this.gmult(G,vi,wi,vj,wj); +}; + +/** + * Computes G\*inv(M)\*f, where M is the mass matrix with diagonal blocks for each body, and f are the forces on the bodies. + * @method computeGiMf + * @return {Number} + */ +var iMfi = vec2.create(), + iMfj = vec2.create(); +Equation.prototype.computeGiMf = function(){ + var bi = this.bodyA, + bj = this.bodyB, + fi = bi.force, + ti = bi.angularForce, + fj = bj.force, + tj = bj.angularForce, + invMassi = bi.invMassSolve, + invMassj = bj.invMassSolve, + invIi = bi.invInertiaSolve, + invIj = bj.invInertiaSolve, + G = this.G; + + vec2.scale(iMfi, fi, invMassi); + vec2.multiply(iMfi, bi.massMultiplier, iMfi); + vec2.scale(iMfj, fj,invMassj); + vec2.multiply(iMfj, bj.massMultiplier, iMfj); + + return this.gmult(G,iMfi,ti*invIi,iMfj,tj*invIj); +}; + +/** + * Computes G\*inv(M)\*G' + * @method computeGiMGt + * @return {Number} + */ +Equation.prototype.computeGiMGt = function(){ + var bi = this.bodyA, + bj = this.bodyB, + invMassi = bi.invMassSolve, + invMassj = bj.invMassSolve, + invIi = bi.invInertiaSolve, + invIj = bj.invInertiaSolve, + G = this.G; + + return G[0] * G[0] * invMassi * bi.massMultiplier[0] + + G[1] * G[1] * invMassi * bi.massMultiplier[1] + + G[2] * G[2] * invIi + + G[3] * G[3] * invMassj * bj.massMultiplier[0] + + G[4] * G[4] * invMassj * bj.massMultiplier[1] + + G[5] * G[5] * invIj; +}; + +var addToWlambda_temp = vec2.create(), + addToWlambda_Gi = vec2.create(), + addToWlambda_Gj = vec2.create(), + addToWlambda_ri = vec2.create(), + addToWlambda_rj = vec2.create(), + addToWlambda_Mdiag = vec2.create(); + +/** + * Add constraint velocity to the bodies. + * @method addToWlambda + * @param {Number} deltalambda + */ +Equation.prototype.addToWlambda = function(deltalambda){ + var bi = this.bodyA, + bj = this.bodyB, + temp = addToWlambda_temp, + Gi = addToWlambda_Gi, + Gj = addToWlambda_Gj, + ri = addToWlambda_ri, + rj = addToWlambda_rj, + invMassi = bi.invMassSolve, + invMassj = bj.invMassSolve, + invIi = bi.invInertiaSolve, + invIj = bj.invInertiaSolve, + Mdiag = addToWlambda_Mdiag, + G = this.G; + + Gi[0] = G[0]; + Gi[1] = G[1]; + Gj[0] = G[3]; + Gj[1] = G[4]; + + // Add to linear velocity + // v_lambda += inv(M) * delta_lamba * G + vec2.scale(temp, Gi, invMassi*deltalambda); + vec2.multiply(temp, temp, bi.massMultiplier); + vec2.add( bi.vlambda, bi.vlambda, temp); + // This impulse is in the offset frame + // Also add contribution to angular + //bi.wlambda -= vec2.crossLength(temp,ri); + bi.wlambda += invIi * G[2] * deltalambda; + + + vec2.scale(temp, Gj, invMassj*deltalambda); + vec2.multiply(temp, temp, bj.massMultiplier); + vec2.add( bj.vlambda, bj.vlambda, temp); + //bj.wlambda -= vec2.crossLength(temp,rj); + bj.wlambda += invIj * G[5] * deltalambda; +}; + +/** + * Compute the denominator part of the SPOOK equation: C = G\*inv(M)\*G' + eps + * @method computeInvC + * @param {Number} eps + * @return {Number} + */ +Equation.prototype.computeInvC = function(eps){ + return 1.0 / (this.computeGiMGt() + eps); +}; + +},{"../math/vec2":30,"../objects/Body":31,"../utils/Utils":57}],23:[function(_dereq_,module,exports){ +var vec2 = _dereq_('../math/vec2') +, Equation = _dereq_('./Equation') +, Utils = _dereq_('../utils/Utils'); + +module.exports = FrictionEquation; + +/** + * Constrains the slipping in a contact along a tangent + * + * @class FrictionEquation + * @constructor + * @param {Body} bodyA + * @param {Body} bodyB + * @param {Number} slipForce + * @extends Equation + */ +function FrictionEquation(bodyA, bodyB, slipForce){ + Equation.call(this, bodyA, bodyB, -slipForce, slipForce); + + /** + * Relative vector from center of body A to the contact point, world oriented. + * @property contactPointA + * @type {Array} + */ + this.contactPointA = vec2.create(); + + /** + * Relative vector from center of body B to the contact point, world oriented. + * @property contactPointB + * @type {Array} + */ + this.contactPointB = vec2.create(); + + /** + * Tangent vector that the friction force will act along. World oriented. + * @property t + * @type {Array} + */ + this.t = vec2.create(); + + /** + * ContactEquations connected to this friction equation. The contact equations can be used to rescale the max force for the friction. If more than one contact equation is given, then the max force can be set to the average. + * @property contactEquations + * @type {ContactEquation} + */ + this.contactEquations = []; + + /** + * The shape in body i that triggered this friction. + * @property shapeA + * @type {Shape} + * @todo Needed? The shape can be looked up via contactEquation.shapeA... + */ + this.shapeA = null; + + /** + * The shape in body j that triggered this friction. + * @property shapeB + * @type {Shape} + * @todo Needed? The shape can be looked up via contactEquation.shapeB... + */ + this.shapeB = null; + + /** + * The friction coefficient to use. + * @property frictionCoefficient + * @type {Number} + */ + this.frictionCoefficient = 0.3; +} +FrictionEquation.prototype = new Equation(); +FrictionEquation.prototype.constructor = FrictionEquation; + +/** + * Set the slipping condition for the constraint. The friction force cannot be + * larger than this value. + * @method setSlipForce + * @param {Number} slipForce + */ +FrictionEquation.prototype.setSlipForce = function(slipForce){ + this.maxForce = slipForce; + this.minForce = -slipForce; +}; + +/** + * Get the max force for the constraint. + * @method getSlipForce + * @return {Number} + */ +FrictionEquation.prototype.getSlipForce = function(){ + return this.maxForce; +}; + +FrictionEquation.prototype.computeB = function(a,b,h){ + var bi = this.bodyA, + bj = this.bodyB, + ri = this.contactPointA, + rj = this.contactPointB, + t = this.t, + G = this.G; + + // G = [-t -rixt t rjxt] + // And remember, this is a pure velocity constraint, g is always zero! + G[0] = -t[0]; + G[1] = -t[1]; + G[2] = -vec2.crossLength(ri,t); + G[3] = t[0]; + G[4] = t[1]; + G[5] = vec2.crossLength(rj,t); + + var GW = this.computeGW(), + GiMf = this.computeGiMf(); + + var B = /* - g * a */ - GW * b - h*GiMf; + + return B; +}; + +},{"../math/vec2":30,"../utils/Utils":57,"./Equation":22}],24:[function(_dereq_,module,exports){ +var Equation = _dereq_("./Equation"), + vec2 = _dereq_('../math/vec2'); + +module.exports = RotationalLockEquation; + +/** + * Locks the relative angle between two bodies. The constraint tries to keep the dot product between two vectors, local in each body, to zero. The local angle in body i is a parameter. + * + * @class RotationalLockEquation + * @constructor + * @extends Equation + * @param {Body} bodyA + * @param {Body} bodyB + * @param {Object} [options] + * @param {Number} [options.angle] Angle to add to the local vector in bodyA. + */ +function RotationalLockEquation(bodyA, bodyB, options){ + options = options || {}; + Equation.call(this, bodyA, bodyB, -Number.MAX_VALUE, Number.MAX_VALUE); + + /** + * @property {number} angle + */ + this.angle = options.angle || 0; + + var G = this.G; + G[2] = 1; + G[5] = -1; +} +RotationalLockEquation.prototype = new Equation(); +RotationalLockEquation.prototype.constructor = RotationalLockEquation; + +var worldVectorA = vec2.create(), + worldVectorB = vec2.create(), + xAxis = vec2.fromValues(1,0), + yAxis = vec2.fromValues(0,1); +RotationalLockEquation.prototype.computeGq = function(){ + vec2.rotate(worldVectorA,xAxis,this.bodyA.angle+this.angle); + vec2.rotate(worldVectorB,yAxis,this.bodyB.angle); + return vec2.dot(worldVectorA,worldVectorB); +}; + +},{"../math/vec2":30,"./Equation":22}],25:[function(_dereq_,module,exports){ +var Equation = _dereq_("./Equation"), + vec2 = _dereq_('../math/vec2'); + +module.exports = RotationalVelocityEquation; + +/** + * Syncs rotational velocity of two bodies, or sets a relative velocity (motor). + * + * @class RotationalVelocityEquation + * @constructor + * @extends Equation + * @param {Body} bodyA + * @param {Body} bodyB + */ +function RotationalVelocityEquation(bodyA, bodyB){ + Equation.call(this, bodyA, bodyB, -Number.MAX_VALUE, Number.MAX_VALUE); + this.relativeVelocity = 1; + this.ratio = 1; +} +RotationalVelocityEquation.prototype = new Equation(); +RotationalVelocityEquation.prototype.constructor = RotationalVelocityEquation; +RotationalVelocityEquation.prototype.computeB = function(a,b,h){ + var G = this.G; + G[2] = -1; + G[5] = this.ratio; + + var GiMf = this.computeGiMf(); + var GW = this.computeGW(); + var B = - GW * b - h*GiMf; + + return B; +}; + +},{"../math/vec2":30,"./Equation":22}],26:[function(_dereq_,module,exports){ +/** + * Base class for objects that dispatches events. + * @class EventEmitter + * @constructor + */ +var EventEmitter = function () {}; + +module.exports = EventEmitter; + +EventEmitter.prototype = { + constructor: EventEmitter, + + /** + * Add an event listener + * @method on + * @param {String} type + * @param {Function} listener + * @return {EventEmitter} The self object, for chainability. + */ + on: function ( type, listener, context ) { + listener.context = context || this; + if ( this._listeners === undefined ){ + this._listeners = {}; + } + var listeners = this._listeners; + if ( listeners[ type ] === undefined ) { + listeners[ type ] = []; + } + if ( listeners[ type ].indexOf( listener ) === - 1 ) { + listeners[ type ].push( listener ); + } + return this; + }, + + /** + * Check if an event listener is added + * @method has + * @param {String} type + * @param {Function} listener + * @return {Boolean} + */ + has: function ( type, listener ) { + if ( this._listeners === undefined ){ + return false; + } + var listeners = this._listeners; + if(listener){ + if ( listeners[ type ] !== undefined && listeners[ type ].indexOf( listener ) !== - 1 ) { + return true; + } + } else { + if ( listeners[ type ] !== undefined ) { + return true; + } + } + + return false; + }, + + /** + * Remove an event listener + * @method off + * @param {String} type + * @param {Function} listener + * @return {EventEmitter} The self object, for chainability. + */ + off: function ( type, listener ) { + if ( this._listeners === undefined ){ + return this; + } + var listeners = this._listeners; + var index = listeners[ type ].indexOf( listener ); + if ( index !== - 1 ) { + listeners[ type ].splice( index, 1 ); + } + return this; + }, + + /** + * Emit an event. + * @method emit + * @param {Object} event + * @param {String} event.type + * @return {EventEmitter} The self object, for chainability. + */ + emit: function ( event ) { + if ( this._listeners === undefined ){ + return this; + } + var listeners = this._listeners; + var listenerArray = listeners[ event.type ]; + if ( listenerArray !== undefined ) { + event.target = this; + for ( var i = 0, l = listenerArray.length; i < l; i ++ ) { + var listener = listenerArray[ i ]; + listener.call( listener.context, event ); + } + } + return this; + } +}; + +},{}],27:[function(_dereq_,module,exports){ +var Material = _dereq_('./Material'); +var Equation = _dereq_('../equations/Equation'); + +module.exports = ContactMaterial; + +/** + * Defines what happens when two materials meet, such as what friction coefficient to use. You can also set other things such as restitution, surface velocity and constraint parameters. + * @class ContactMaterial + * @constructor + * @param {Material} materialA + * @param {Material} materialB + * @param {Object} [options] + * @param {Number} [options.friction=0.3] Friction coefficient. + * @param {Number} [options.restitution=0] Restitution coefficient aka "bounciness". + * @param {Number} [options.stiffness] ContactEquation stiffness. + * @param {Number} [options.relaxation] ContactEquation relaxation. + * @param {Number} [options.frictionStiffness] FrictionEquation stiffness. + * @param {Number} [options.frictionRelaxation] FrictionEquation relaxation. + * @param {Number} [options.surfaceVelocity=0] Surface velocity. + * @author schteppe + */ +function ContactMaterial(materialA, materialB, options){ + options = options || {}; + + if(!(materialA instanceof Material) || !(materialB instanceof Material)){ + throw new Error("First two arguments must be Material instances."); + } + + /** + * The contact material identifier + * @property id + * @type {Number} + */ + this.id = ContactMaterial.idCounter++; + + /** + * First material participating in the contact material + * @property materialA + * @type {Material} + */ + this.materialA = materialA; + + /** + * Second material participating in the contact material + * @property materialB + * @type {Material} + */ + this.materialB = materialB; + + /** + * Friction to use in the contact of these two materials + * @property friction + * @type {Number} + */ + this.friction = typeof(options.friction) !== "undefined" ? Number(options.friction) : 0.3; + + /** + * Restitution to use in the contact of these two materials + * @property restitution + * @type {Number} + */ + this.restitution = typeof(options.restitution) !== "undefined" ? Number(options.restitution) : 0.0; + + /** + * Stiffness of the resulting ContactEquation that this ContactMaterial generate + * @property stiffness + * @type {Number} + */ + this.stiffness = typeof(options.stiffness) !== "undefined" ? Number(options.stiffness) : Equation.DEFAULT_STIFFNESS; + + /** + * Relaxation of the resulting ContactEquation that this ContactMaterial generate + * @property relaxation + * @type {Number} + */ + this.relaxation = typeof(options.relaxation) !== "undefined" ? Number(options.relaxation) : Equation.DEFAULT_RELAXATION; + + /** + * Stiffness of the resulting FrictionEquation that this ContactMaterial generate + * @property frictionStiffness + * @type {Number} + */ + this.frictionStiffness = typeof(options.frictionStiffness) !== "undefined" ? Number(options.frictionStiffness) : Equation.DEFAULT_STIFFNESS; + + /** + * Relaxation of the resulting FrictionEquation that this ContactMaterial generate + * @property frictionRelaxation + * @type {Number} + */ + this.frictionRelaxation = typeof(options.frictionRelaxation) !== "undefined" ? Number(options.frictionRelaxation) : Equation.DEFAULT_RELAXATION; + + /** + * Will add surface velocity to this material. If bodyA rests on top if bodyB, and the surface velocity is positive, bodyA will slide to the right. + * @property {Number} surfaceVelocity + */ + this.surfaceVelocity = typeof(options.surfaceVelocity) !== "undefined" ? Number(options.surfaceVelocity) : 0; + + /** + * Offset to be set on ContactEquations. A positive value will make the bodies penetrate more into each other. Can be useful in scenes where contacts need to be more persistent, for example when stacking. Aka "cure for nervous contacts". + * @property contactSkinSize + * @type {Number} + */ + this.contactSkinSize = 0.005; +} + +ContactMaterial.idCounter = 0; + +},{"../equations/Equation":22,"./Material":28}],28:[function(_dereq_,module,exports){ +module.exports = Material; + +/** + * Defines a physics material. + * @class Material + * @constructor + * @param {number} id Material identifier + * @author schteppe + */ +function Material(id){ + /** + * The material identifier + * @property id + * @type {Number} + */ + this.id = id || Material.idCounter++; +} + +Material.idCounter = 0; + +},{}],29:[function(_dereq_,module,exports){ + + /* + PolyK library + url: http://polyk.ivank.net + Released under MIT licence. + + Copyright (c) 2012 Ivan Kuckir + + Permission is hereby granted, free of charge, to any person + obtaining a copy of this software and associated documentation + files (the "Software"), to deal in the Software without + restriction, including without limitation the rights to use, + copy, modify, merge, publish, distribute, sublicense, and/or sell + copies of the Software, and to permit persons to whom the + Software is furnished to do so, subject to the following + conditions: + + The above copyright notice and this permission notice shall be + included in all copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES + OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT + HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, + WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR + OTHER DEALINGS IN THE SOFTWARE. + */ + + var PolyK = {}; + + /* + Is Polygon self-intersecting? + + O(n^2) + */ + /* + PolyK.IsSimple = function(p) + { + var n = p.length>>1; + if(n<4) return true; + var a1 = new PolyK._P(), a2 = new PolyK._P(); + var b1 = new PolyK._P(), b2 = new PolyK._P(); + var c = new PolyK._P(); + + for(var i=0; i>1; + if(n<3) return []; + var tgs = []; + var avl = []; + for(var i=0; i 3) + { + var i0 = avl[(i+0)%al]; + var i1 = avl[(i+1)%al]; + var i2 = avl[(i+2)%al]; + + var ax = p[2*i0], ay = p[2*i0+1]; + var bx = p[2*i1], by = p[2*i1+1]; + var cx = p[2*i2], cy = p[2*i2+1]; + + var earFound = false; + if(PolyK._convex(ax, ay, bx, by, cx, cy)) + { + earFound = true; + for(var j=0; j 3*al) break; // no convex angles :( + } + tgs.push(avl[0], avl[1], avl[2]); + return tgs; + } + /* + PolyK.ContainsPoint = function(p, px, py) + { + var n = p.length>>1; + var ax, ay, bx = p[2*n-2]-px, by = p[2*n-1]-py; + var depth = 0; + for(var i=0; i=0 && by>=0) continue; // both "up" or both "donw" + if(ax< 0 && bx< 0) continue; + + var lx = ax + (bx-ax)*(-ay)/(by-ay); + if(lx>0) depth++; + } + return (depth & 1) == 1; + } + + PolyK.Slice = function(p, ax, ay, bx, by) + { + if(PolyK.ContainsPoint(p, ax, ay) || PolyK.ContainsPoint(p, bx, by)) return [p.slice(0)]; + + var a = new PolyK._P(ax, ay); + var b = new PolyK._P(bx, by); + var iscs = []; // intersections + var ps = []; // points + for(var i=0; i 0) + { + var n = ps.length; + var i0 = iscs[0]; + var i1 = iscs[1]; + var ind0 = ps.indexOf(i0); + var ind1 = ps.indexOf(i1); + var solved = false; + + if(PolyK._firstWithFlag(ps, ind0) == ind1) solved = true; + else + { + i0 = iscs[1]; + i1 = iscs[0]; + ind0 = ps.indexOf(i0); + ind1 = ps.indexOf(i1); + if(PolyK._firstWithFlag(ps, ind0) == ind1) solved = true; + } + if(solved) + { + dir--; + var pgn = PolyK._getPoints(ps, ind0, ind1); + pgs.push(pgn); + ps = PolyK._getPoints(ps, ind1, ind0); + i0.flag = i1.flag = false; + iscs.splice(0,2); + if(iscs.length == 0) pgs.push(ps); + } + else { dir++; iscs.reverse(); } + if(dir>1) break; + } + var result = []; + for(var i=0; i>1, isc); + } + b1.x = b2.x; b1.y = b2.y; + b2.x = p[0]; b2.y = p[1]; + PolyK._pointLineDist(a1, b1, b2, l>>1, isc); + + var idst = 1/isc.dist; + isc.norm.x = (x-isc.point.x)*idst; + isc.norm.y = (y-isc.point.y)*idst; + return isc; + } + + PolyK._pointLineDist = function(p, a, b, edge, isc) + { + var x = p.x, y = p.y, x1 = a.x, y1 = a.y, x2 = b.x, y2 = b.y; + + var A = x - x1; + var B = y - y1; + var C = x2 - x1; + var D = y2 - y1; + + var dot = A * C + B * D; + var len_sq = C * C + D * D; + var param = dot / len_sq; + + var xx, yy; + + if (param < 0 || (x1 == x2 && y1 == y2)) { + xx = x1; + yy = y1; + } + else if (param > 1) { + xx = x2; + yy = y2; + } + else { + xx = x1 + param * C; + yy = y1 + param * D; + } + + var dx = x - xx; + var dy = y - yy; + var dst = Math.sqrt(dx * dx + dy * dy); + if(dst= 0) && (v >= 0) && (u + v < 1); + } + /* + PolyK._RayLineIntersection = function(a1, a2, b1, b2, c) + { + var dax = (a1.x-a2.x), dbx = (b1.x-b2.x); + var day = (a1.y-a2.y), dby = (b1.y-b2.y); + + var Den = dax*dby - day*dbx; + if (Den == 0) return null; // parallel + + var A = (a1.x * a2.y - a1.y * a2.x); + var B = (b1.x * b2.y - b1.y * b2.x); + + var I = c; + var iDen = 1/Den; + I.x = ( A*dbx - dax*B ) * iDen; + I.y = ( A*dby - day*B ) * iDen; + + if(!PolyK._InRect(I, b1, b2)) return null; + if((day>0 && I.y>a1.y) || (day<0 && I.y0 && I.x>a1.x) || (dax<0 && I.x=Math.min(b.y, c.y) && a.y<=Math.max(b.y, c.y)); + if (b.y == c.y) return (a.x>=Math.min(b.x, c.x) && a.x<=Math.max(b.x, c.x)); + + if(a.x >= Math.min(b.x, c.x) && a.x <= Math.max(b.x, c.x) + && a.y >= Math.min(b.y, c.y) && a.y <= Math.max(b.y, c.y)) + return true; + return false; + } + */ + PolyK._convex = function(ax, ay, bx, by, cx, cy) + { + return (ay-by)*(cx-bx) + (bx-ax)*(cy-by) >= 0; + } + /* + PolyK._P = function(x,y) + { + this.x = x; + this.y = y; + this.flag = false; + } + PolyK._P.prototype.toString = function() + { + return "Point ["+this.x+", "+this.y+"]"; + } + PolyK._P.dist = function(a,b) + { + var dx = b.x-a.x; + var dy = b.y-a.y; + return Math.sqrt(dx*dx + dy*dy); + } + + PolyK._tp = []; + for(var i=0; i<10; i++) PolyK._tp.push(new PolyK._P(0,0)); + */ + +module.exports = PolyK; + +},{}],30:[function(_dereq_,module,exports){ +/* Copyright (c) 2013, Brandon Jones, Colin MacKenzie IV. All rights reserved. + +Redistribution and use in source and binary forms, with or without modification, +are permitted provided that the following conditions are met: + + * Redistributions of source code must retain the above copyright notice, this + list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following disclaimer in the documentation + and/or other materials provided with the distribution. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND +ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR +ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON +ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ + +/** + * The vec2 object from glMatrix, with some extensions and some removed methods. See http://glmatrix.net. + * @class vec2 + */ + +var vec2 = module.exports = {}; + +var Utils = _dereq_('../utils/Utils'); + +/** + * Make a cross product and only return the z component + * @method crossLength + * @static + * @param {Array} a + * @param {Array} b + * @return {Number} + */ +vec2.crossLength = function(a,b){ + return a[0] * b[1] - a[1] * b[0]; +}; + +/** + * Cross product between a vector and the Z component of a vector + * @method crossVZ + * @static + * @param {Array} out + * @param {Array} vec + * @param {Number} zcomp + * @return {Number} + */ +vec2.crossVZ = function(out, vec, zcomp){ + vec2.rotate(out,vec,-Math.PI/2);// Rotate according to the right hand rule + vec2.scale(out,out,zcomp); // Scale with z + return out; +}; + +/** + * Cross product between a vector and the Z component of a vector + * @method crossZV + * @static + * @param {Array} out + * @param {Number} zcomp + * @param {Array} vec + * @return {Number} + */ +vec2.crossZV = function(out, zcomp, vec){ + vec2.rotate(out,vec,Math.PI/2); // Rotate according to the right hand rule + vec2.scale(out,out,zcomp); // Scale with z + return out; +}; + +/** + * Rotate a vector by an angle + * @method rotate + * @static + * @param {Array} out + * @param {Array} a + * @param {Number} angle + */ +vec2.rotate = function(out,a,angle){ + if(angle !== 0){ + var c = Math.cos(angle), + s = Math.sin(angle), + x = a[0], + y = a[1]; + out[0] = c*x -s*y; + out[1] = s*x +c*y; + } else { + out[0] = a[0]; + out[1] = a[1]; + } +}; + +/** + * Rotate a vector 90 degrees clockwise + * @method rotate90cw + * @static + * @param {Array} out + * @param {Array} a + * @param {Number} angle + */ +vec2.rotate90cw = function(out, a) { + var x = a[0]; + var y = a[1]; + out[0] = y; + out[1] = -x; +}; + +/** + * Transform a point position to local frame. + * @method toLocalFrame + * @param {Array} out + * @param {Array} worldPoint + * @param {Array} framePosition + * @param {Number} frameAngle + */ +vec2.toLocalFrame = function(out, worldPoint, framePosition, frameAngle){ + vec2.copy(out, worldPoint); + vec2.sub(out, out, framePosition); + vec2.rotate(out, out, -frameAngle); +}; + +/** + * Transform a point position to global frame. + * @method toGlobalFrame + * @param {Array} out + * @param {Array} localPoint + * @param {Array} framePosition + * @param {Number} frameAngle + */ +vec2.toGlobalFrame = function(out, localPoint, framePosition, frameAngle){ + vec2.copy(out, localPoint); + vec2.rotate(out, out, frameAngle); + vec2.add(out, out, framePosition); +}; + +/** + * Transform a vector to local frame. + * @method vectorToLocalFrame + * @param {Array} out + * @param {Array} worldVector + * @param {Number} frameAngle + */ +vec2.vectorToLocalFrame = function(out, worldVector, frameAngle){ + vec2.rotate(out, worldVector, -frameAngle); +}; + +/** + * Transform a point position to global frame. + * @method toGlobalFrame + * @param {Array} out + * @param {Array} localVector + * @param {Number} frameAngle + */ +vec2.vectorToGlobalFrame = function(out, localVector, frameAngle){ + vec2.rotate(out, localVector, frameAngle); +}; + +/** + * Compute centroid of a triangle spanned by vectors a,b,c. See http://easycalculation.com/analytical/learn-centroid.php + * @method centroid + * @static + * @param {Array} out + * @param {Array} a + * @param {Array} b + * @param {Array} c + * @return {Array} The out object + */ +vec2.centroid = function(out, a, b, c){ + vec2.add(out, a, b); + vec2.add(out, out, c); + vec2.scale(out, out, 1/3); + return out; +}; + +/** + * Creates a new, empty vec2 + * @static + * @method create + * @return {Array} a new 2D vector + */ +vec2.create = function() { + var out = new Utils.ARRAY_TYPE(2); + out[0] = 0; + out[1] = 0; + return out; +}; + +/** + * Creates a new vec2 initialized with values from an existing vector + * @static + * @method clone + * @param {Array} a vector to clone + * @return {Array} a new 2D vector + */ +vec2.clone = function(a) { + var out = new Utils.ARRAY_TYPE(2); + out[0] = a[0]; + out[1] = a[1]; + return out; +}; + +/** + * Creates a new vec2 initialized with the given values + * @static + * @method fromValues + * @param {Number} x X component + * @param {Number} y Y component + * @return {Array} a new 2D vector + */ +vec2.fromValues = function(x, y) { + var out = new Utils.ARRAY_TYPE(2); + out[0] = x; + out[1] = y; + return out; +}; + +/** + * Copy the values from one vec2 to another + * @static + * @method copy + * @param {Array} out the receiving vector + * @param {Array} a the source vector + * @return {Array} out + */ +vec2.copy = function(out, a) { + out[0] = a[0]; + out[1] = a[1]; + return out; +}; + +/** + * Set the components of a vec2 to the given values + * @static + * @method set + * @param {Array} out the receiving vector + * @param {Number} x X component + * @param {Number} y Y component + * @return {Array} out + */ +vec2.set = function(out, x, y) { + out[0] = x; + out[1] = y; + return out; +}; + +/** + * Adds two vec2's + * @static + * @method add + * @param {Array} out the receiving vector + * @param {Array} a the first operand + * @param {Array} b the second operand + * @return {Array} out + */ +vec2.add = function(out, a, b) { + out[0] = a[0] + b[0]; + out[1] = a[1] + b[1]; + return out; +}; + +/** + * Subtracts two vec2's + * @static + * @method subtract + * @param {Array} out the receiving vector + * @param {Array} a the first operand + * @param {Array} b the second operand + * @return {Array} out + */ +vec2.subtract = function(out, a, b) { + out[0] = a[0] - b[0]; + out[1] = a[1] - b[1]; + return out; +}; + +/** + * Alias for vec2.subtract + * @static + * @method sub + */ +vec2.sub = vec2.subtract; + +/** + * Multiplies two vec2's + * @static + * @method multiply + * @param {Array} out the receiving vector + * @param {Array} a the first operand + * @param {Array} b the second operand + * @return {Array} out + */ +vec2.multiply = function(out, a, b) { + out[0] = a[0] * b[0]; + out[1] = a[1] * b[1]; + return out; +}; + +/** + * Alias for vec2.multiply + * @static + * @method mul + */ +vec2.mul = vec2.multiply; + +/** + * Divides two vec2's + * @static + * @method divide + * @param {Array} out the receiving vector + * @param {Array} a the first operand + * @param {Array} b the second operand + * @return {Array} out + */ +vec2.divide = function(out, a, b) { + out[0] = a[0] / b[0]; + out[1] = a[1] / b[1]; + return out; +}; + +/** + * Alias for vec2.divide + * @static + * @method div + */ +vec2.div = vec2.divide; + +/** + * Scales a vec2 by a scalar number + * @static + * @method scale + * @param {Array} out the receiving vector + * @param {Array} a the vector to scale + * @param {Number} b amount to scale the vector by + * @return {Array} out + */ +vec2.scale = function(out, a, b) { + out[0] = a[0] * b; + out[1] = a[1] * b; + return out; +}; + +/** + * Calculates the euclidian distance between two vec2's + * @static + * @method distance + * @param {Array} a the first operand + * @param {Array} b the second operand + * @return {Number} distance between a and b + */ +vec2.distance = function(a, b) { + var x = b[0] - a[0], + y = b[1] - a[1]; + return Math.sqrt(x*x + y*y); +}; + +/** + * Alias for vec2.distance + * @static + * @method dist + */ +vec2.dist = vec2.distance; + +/** + * Calculates the squared euclidian distance between two vec2's + * @static + * @method squaredDistance + * @param {Array} a the first operand + * @param {Array} b the second operand + * @return {Number} squared distance between a and b + */ +vec2.squaredDistance = function(a, b) { + var x = b[0] - a[0], + y = b[1] - a[1]; + return x*x + y*y; +}; + +/** + * Alias for vec2.squaredDistance + * @static + * @method sqrDist + */ +vec2.sqrDist = vec2.squaredDistance; + +/** + * Calculates the length of a vec2 + * @static + * @method length + * @param {Array} a vector to calculate length of + * @return {Number} length of a + */ +vec2.length = function (a) { + var x = a[0], + y = a[1]; + return Math.sqrt(x*x + y*y); +}; + +/** + * Alias for vec2.length + * @method len + * @static + */ +vec2.len = vec2.length; + +/** + * Calculates the squared length of a vec2 + * @static + * @method squaredLength + * @param {Array} a vector to calculate squared length of + * @return {Number} squared length of a + */ +vec2.squaredLength = function (a) { + var x = a[0], + y = a[1]; + return x*x + y*y; +}; + +/** + * Alias for vec2.squaredLength + * @static + * @method sqrLen + */ +vec2.sqrLen = vec2.squaredLength; + +/** + * Negates the components of a vec2 + * @static + * @method negate + * @param {Array} out the receiving vector + * @param {Array} a vector to negate + * @return {Array} out + */ +vec2.negate = function(out, a) { + out[0] = -a[0]; + out[1] = -a[1]; + return out; +}; + +/** + * Normalize a vec2 + * @static + * @method normalize + * @param {Array} out the receiving vector + * @param {Array} a vector to normalize + * @return {Array} out + */ +vec2.normalize = function(out, a) { + var x = a[0], + y = a[1]; + var len = x*x + y*y; + if (len > 0) { + //TODO: evaluate use of glm_invsqrt here? + len = 1 / Math.sqrt(len); + out[0] = a[0] * len; + out[1] = a[1] * len; + } + return out; +}; + +/** + * Calculates the dot product of two vec2's + * @static + * @method dot + * @param {Array} a the first operand + * @param {Array} b the second operand + * @return {Number} dot product of a and b + */ +vec2.dot = function (a, b) { + return a[0] * b[0] + a[1] * b[1]; +}; + +/** + * Returns a string representation of a vector + * @static + * @method str + * @param {Array} vec vector to represent as a string + * @return {String} string representation of the vector + */ +vec2.str = function (a) { + return 'vec2(' + a[0] + ', ' + a[1] + ')'; +}; + +/** + * Linearly interpolate/mix two vectors. + * @static + * @method lerp + * @param {Array} out + * @param {Array} a First vector + * @param {Array} b Second vector + * @param {number} t Lerp factor + */ +vec2.lerp = function (out, a, b, t) { + var ax = a[0], + ay = a[1]; + out[0] = ax + t * (b[0] - ax); + out[1] = ay + t * (b[1] - ay); + return out; +}; + +/** + * Reflect a vector along a normal. + * @static + * @method reflect + * @param {Array} out + * @param {Array} vector + * @param {Array} normal + */ +vec2.reflect = function(out, vector, normal){ + var dot = vector[0] * normal[0] + vector[1] * normal[1]; + out[0] = vector[0] - 2 * normal[0] * dot; + out[1] = vector[1] - 2 * normal[1] * dot; +}; + +/** + * Get the intersection point between two line segments. + * @static + * @method getLineSegmentsIntersection + * @param {Array} out + * @param {Array} p0 + * @param {Array} p1 + * @param {Array} p2 + * @param {Array} p3 + * @return {boolean} True if there was an intersection, otherwise false. + */ +vec2.getLineSegmentsIntersection = function(out, p0, p1, p2, p3) { + var t = vec2.getLineSegmentsIntersectionFraction(p0, p1, p2, p3); + if(t < 0){ + return false; + } else { + out[0] = p0[0] + (t * (p1[0] - p0[0])); + out[1] = p0[1] + (t * (p1[1] - p0[1])); + return true; + } +}; + +/** + * Get the intersection fraction between two line segments. If successful, the intersection is at p0 + t * (p1 - p0) + * @static + * @method getLineSegmentsIntersectionFraction + * @param {Array} p0 + * @param {Array} p1 + * @param {Array} p2 + * @param {Array} p3 + * @return {number} A number between 0 and 1 if there was an intersection, otherwise -1. + */ +vec2.getLineSegmentsIntersectionFraction = function(p0, p1, p2, p3) { + var s1_x = p1[0] - p0[0]; + var s1_y = p1[1] - p0[1]; + var s2_x = p3[0] - p2[0]; + var s2_y = p3[1] - p2[1]; + + var s, t; + s = (-s1_y * (p0[0] - p2[0]) + s1_x * (p0[1] - p2[1])) / (-s2_x * s1_y + s1_x * s2_y); + t = ( s2_x * (p0[1] - p2[1]) - s2_y * (p0[0] - p2[0])) / (-s2_x * s1_y + s1_x * s2_y); + if (s >= 0 && s <= 1 && t >= 0 && t <= 1) { // Collision detected + return t; + } + return -1; // No collision +}; + +},{"../utils/Utils":57}],31:[function(_dereq_,module,exports){ +var vec2 = _dereq_('../math/vec2') +, decomp = _dereq_('poly-decomp') +, Convex = _dereq_('../shapes/Convex') +, RaycastResult = _dereq_('../collision/RaycastResult') +, Ray = _dereq_('../collision/Ray') +, AABB = _dereq_('../collision/AABB') +, EventEmitter = _dereq_('../events/EventEmitter'); + +module.exports = Body; + +/** + * A rigid body. Has got a center of mass, position, velocity and a number of + * shapes that are used for collisions. + * + * @class Body + * @constructor + * @extends EventEmitter + * @param {Array} [options.force] + * @param {Array} [options.position] + * @param {Array} [options.velocity] + * @param {Boolean} [options.allowSleep] + * @param {Boolean} [options.collisionResponse] + * @param {Number} [options.angle=0] + * @param {Number} [options.angularForce=0] + * @param {Number} [options.angularVelocity=0] + * @param {Number} [options.ccdIterations=10] + * @param {Number} [options.ccdSpeedThreshold=-1] + * @param {Number} [options.fixedRotation=false] + * @param {Number} [options.gravityScale] + * @param {Number} [options.id] + * @param {Number} [options.mass=0] A number >= 0. If zero, the .type will be set to Body.STATIC. + * @param {Number} [options.sleepSpeedLimit] + * @param {Number} [options.sleepTimeLimit] + * @param {Object} [options] + * + * @example + * + * // Create a typical dynamic body + * var body = new Body({ + * mass: 1, + * position: [0, 0], + * angle: 0, + * velocity: [0, 0], + * angularVelocity: 0 + * }); + * + * // Add a circular shape to the body + * body.addShape(new Circle({ radius: 1 })); + * + * // Add the body to the world + * world.addBody(body); + */ +function Body(options){ + options = options || {}; + + EventEmitter.call(this); + + /** + * The body identifyer + * @property id + * @type {Number} + */ + this.id = options.id || ++Body._idCounter; + + /** + * The world that this body is added to. This property is set to NULL if the body is not added to any world. + * @property world + * @type {World} + */ + this.world = null; + + /** + * The shapes of the body. + * + * @property shapes + * @type {Array} + */ + this.shapes = []; + + /** + * The mass of the body. + * @property mass + * @type {number} + */ + this.mass = options.mass || 0; + + /** + * The inverse mass of the body. + * @property invMass + * @type {number} + */ + this.invMass = 0; + + /** + * The inertia of the body around the Z axis. + * @property inertia + * @type {number} + */ + this.inertia = 0; + + /** + * The inverse inertia of the body. + * @property invInertia + * @type {number} + */ + this.invInertia = 0; + + this.invMassSolve = 0; + this.invInertiaSolve = 0; + + /** + * Set to true if you want to fix the rotation of the body. + * @property fixedRotation + * @type {Boolean} + */ + this.fixedRotation = !!options.fixedRotation; + + /** + * Set to true if you want to fix the body movement along the X axis. The body will still be able to move along Y. + * @property {Boolean} fixedX + */ + this.fixedX = !!options.fixedX; + + /** + * Set to true if you want to fix the body movement along the Y axis. The body will still be able to move along X. + * @property {Boolean} fixedY + */ + this.fixedY = !!options.fixedY; + + /** + * @private + * @property {array} massMultiplier + */ + this.massMultiplier = vec2.create(); + + /** + * The position of the body + * @property position + * @type {Array} + */ + this.position = vec2.fromValues(0,0); + if(options.position){ + vec2.copy(this.position, options.position); + } + + /** + * The interpolated position of the body. Use this for rendering. + * @property interpolatedPosition + * @type {Array} + */ + this.interpolatedPosition = vec2.fromValues(0,0); + + /** + * The interpolated angle of the body. Use this for rendering. + * @property interpolatedAngle + * @type {Number} + */ + this.interpolatedAngle = 0; + + /** + * The previous position of the body. + * @property previousPosition + * @type {Array} + */ + this.previousPosition = vec2.fromValues(0,0); + + /** + * The previous angle of the body. + * @property previousAngle + * @type {Number} + */ + this.previousAngle = 0; + + /** + * The current velocity of the body. + * @property velocity + * @type {Array} + */ + this.velocity = vec2.fromValues(0,0); + if(options.velocity){ + vec2.copy(this.velocity, options.velocity); + } + + /** + * Constraint velocity that was added to the body during the last step. + * @property vlambda + * @type {Array} + */ + this.vlambda = vec2.fromValues(0,0); + + /** + * Angular constraint velocity that was added to the body during last step. + * @property wlambda + * @type {Array} + */ + this.wlambda = 0; + + /** + * The angle of the body, in radians. + * @property angle + * @type {number} + * @example + * // The angle property is not normalized to the interval 0 to 2*pi, it can be any value. + * // If you need a value between 0 and 2*pi, use the following function to normalize it. + * function normalizeAngle(angle){ + * angle = angle % (2*Math.PI); + * if(angle < 0){ + * angle += (2*Math.PI); + * } + * return angle; + * } + */ + this.angle = options.angle || 0; + + /** + * The angular velocity of the body, in radians per second. + * @property angularVelocity + * @type {number} + */ + this.angularVelocity = options.angularVelocity || 0; + + /** + * The force acting on the body. Since the body force (and {{#crossLink "Body/angularForce:property"}}{{/crossLink}}) will be zeroed after each step, so you need to set the force before each step. + * @property force + * @type {Array} + * + * @example + * // This produces a forcefield of 1 Newton in the positive x direction. + * for(var i=0; i radius){ + radius = offset + r; + } + } + + this.boundingRadius = radius; +}; + +/** + * Add a shape to the body. You can pass a local transform when adding a shape, + * so that the shape gets an offset and angle relative to the body center of mass. + * Will automatically update the mass properties and bounding radius. + * + * @method addShape + * @param {Shape} shape + * @param {Array} [offset] Local body offset of the shape. + * @param {Number} [angle] Local body angle. + * + * @example + * var body = new Body(), + * shape = new Circle({ radius: 1 }); + * + * // Add the shape to the body, positioned in the center + * body.addShape(shape); + * + * // Add another shape to the body, positioned 1 unit length from the body center of mass along the local x-axis. + * body.addShape(shape,[1,0]); + * + * // Add another shape to the body, positioned 1 unit length from the body center of mass along the local y-axis, and rotated 90 degrees CCW. + * body.addShape(shape,[0,1],Math.PI/2); + */ +Body.prototype.addShape = function(shape, offset, angle){ + if(shape.body){ + throw new Error('A shape can only be added to one body.'); + } + shape.body = this; + + // Copy the offset vector + if(offset){ + vec2.copy(shape.position, offset); + } else { + vec2.set(shape.position, 0, 0); + } + + shape.angle = angle || 0; + + this.shapes.push(shape); + this.updateMassProperties(); + this.updateBoundingRadius(); + + this.aabbNeedsUpdate = true; +}; + +/** + * Remove a shape + * @method removeShape + * @param {Shape} shape + * @return {Boolean} True if the shape was found and removed, else false. + */ +Body.prototype.removeShape = function(shape){ + var idx = this.shapes.indexOf(shape); + + if(idx !== -1){ + this.shapes.splice(idx,1); + this.aabbNeedsUpdate = true; + shape.body = null; + return true; + } else { + return false; + } +}; + +/** + * Updates .inertia, .invMass, .invInertia for this Body. Should be called when + * changing the structure or mass of the Body. + * + * @method updateMassProperties + * + * @example + * body.mass += 1; + * body.updateMassProperties(); + */ +Body.prototype.updateMassProperties = function(){ + if(this.type === Body.STATIC || this.type === Body.KINEMATIC){ + + this.mass = Number.MAX_VALUE; + this.invMass = 0; + this.inertia = Number.MAX_VALUE; + this.invInertia = 0; + + } else { + + var shapes = this.shapes, + N = shapes.length, + m = this.mass / N, + I = 0; + + if(!this.fixedRotation){ + for(var i=0; i0 ? 1/I : 0; + + } else { + this.inertia = Number.MAX_VALUE; + this.invInertia = 0; + } + + // Inverse mass properties are easy + this.invMass = 1 / this.mass; + + vec2.set( + this.massMultiplier, + this.fixedX ? 0 : 1, + this.fixedY ? 0 : 1 + ); + } +}; + +var Body_applyForce_r = vec2.create(); + +/** + * Apply force to a point relative to the center of mass of the body. This could for example be a point on the RigidBody surface. Applying force this way will add to Body.force and Body.angularForce. If relativePoint is zero, the force will be applied directly on the center of mass, and the torque produced will be zero. + * @method applyForce + * @param {Array} force The force to add. + * @param {Array} [relativePoint] A world point to apply the force on. + */ +Body.prototype.applyForce = function(force, relativePoint){ + + // Add linear force + vec2.add(this.force, this.force, force); + + if(relativePoint){ + + // Compute produced rotational force + var rotForce = vec2.crossLength(relativePoint,force); + + // Add rotational force + this.angularForce += rotForce; + } +}; + +/** + * Apply force to a body-local point. + * @method applyForceLocal + * @param {Array} localForce The force vector to add, oriented in local body space. + * @param {Array} localPoint A point relative to the body in world space. If not given, it is set to zero and all of the impulse will be excerted on the center of mass. + */ +var Body_applyForce_forceWorld = vec2.create(); +var Body_applyForce_pointWorld = vec2.create(); +var Body_applyForce_pointLocal = vec2.create(); +Body.prototype.applyForceLocal = function(localForce, localPoint){ + localPoint = localPoint || Body_applyForce_pointLocal; + var worldForce = Body_applyForce_forceWorld; + var worldPoint = Body_applyForce_pointWorld; + this.vectorToWorldFrame(worldForce, localForce); + this.vectorToWorldFrame(worldPoint, localPoint); + this.applyForce(worldForce, worldPoint); +}; + +/** + * Apply impulse to a point relative to the body. This could for example be a point on the Body surface. An impulse is a force added to a body during a short period of time (impulse = force * time). Impulses will be added to Body.velocity and Body.angularVelocity. + * @method applyImpulse + * @param {Array} impulse The impulse vector to add, oriented in world space. + * @param {Array} [relativePoint] A point relative to the body in world space. If not given, it is set to zero and all of the impulse will be excerted on the center of mass. + */ +var Body_applyImpulse_velo = vec2.create(); +Body.prototype.applyImpulse = function(impulseVector, relativePoint){ + if(this.type !== Body.DYNAMIC){ + return; + } + + // Compute produced central impulse velocity + var velo = Body_applyImpulse_velo; + vec2.scale(velo, impulseVector, this.invMass); + vec2.multiply(velo, this.massMultiplier, velo); + + // Add linear impulse + vec2.add(this.velocity, velo, this.velocity); + + if(relativePoint){ + // Compute produced rotational impulse velocity + var rotVelo = vec2.crossLength(relativePoint, impulseVector); + rotVelo *= this.invInertia; + + // Add rotational Impulse + this.angularVelocity += rotVelo; + } +}; + +/** + * Apply impulse to a point relative to the body. This could for example be a point on the Body surface. An impulse is a force added to a body during a short period of time (impulse = force * time). Impulses will be added to Body.velocity and Body.angularVelocity. + * @method applyImpulseLocal + * @param {Array} impulse The impulse vector to add, oriented in world space. + * @param {Array} [relativePoint] A point relative to the body in world space. If not given, it is set to zero and all of the impulse will be excerted on the center of mass. + */ +var Body_applyImpulse_impulseWorld = vec2.create(); +var Body_applyImpulse_pointWorld = vec2.create(); +var Body_applyImpulse_pointLocal = vec2.create(); +Body.prototype.applyImpulseLocal = function(localImpulse, localPoint){ + localPoint = localPoint || Body_applyImpulse_pointLocal; + var worldImpulse = Body_applyImpulse_impulseWorld; + var worldPoint = Body_applyImpulse_pointWorld; + this.vectorToWorldFrame(worldImpulse, localImpulse); + this.vectorToWorldFrame(worldPoint, localPoint); + this.applyImpulse(worldImpulse, worldPoint); +}; + +/** + * Transform a world point to local body frame. + * @method toLocalFrame + * @param {Array} out The vector to store the result in + * @param {Array} worldPoint The input world point + */ +Body.prototype.toLocalFrame = function(out, worldPoint){ + vec2.toLocalFrame(out, worldPoint, this.position, this.angle); +}; + +/** + * Transform a local point to world frame. + * @method toWorldFrame + * @param {Array} out The vector to store the result in + * @param {Array} localPoint The input local point + */ +Body.prototype.toWorldFrame = function(out, localPoint){ + vec2.toGlobalFrame(out, localPoint, this.position, this.angle); +}; + +/** + * Transform a world point to local body frame. + * @method vectorToLocalFrame + * @param {Array} out The vector to store the result in + * @param {Array} worldVector The input world vector + */ +Body.prototype.vectorToLocalFrame = function(out, worldVector){ + vec2.vectorToLocalFrame(out, worldVector, this.angle); +}; + +/** + * Transform a local point to world frame. + * @method vectorToWorldFrame + * @param {Array} out The vector to store the result in + * @param {Array} localVector The input local vector + */ +Body.prototype.vectorToWorldFrame = function(out, localVector){ + vec2.vectorToGlobalFrame(out, localVector, this.angle); +}; + +/** + * Reads a polygon shape path, and assembles convex shapes from that and puts them at proper offset points. + * @method fromPolygon + * @param {Array} path An array of 2d vectors, e.g. [[0,0],[0,1],...] that resembles a concave or convex polygon. The shape must be simple and without holes. + * @param {Object} [options] + * @param {Boolean} [options.optimalDecomp=false] Set to true if you need optimal decomposition. Warning: very slow for polygons with more than 10 vertices. + * @param {Boolean} [options.skipSimpleCheck=false] Set to true if you already know that the path is not intersecting itself. + * @param {Boolean|Number} [options.removeCollinearPoints=false] Set to a number (angle threshold value) to remove collinear points, or false to keep all points. + * @return {Boolean} True on success, else false. + */ +Body.prototype.fromPolygon = function(path,options){ + options = options || {}; + + // Remove all shapes + for(var i=this.shapes.length; i>=0; --i){ + this.removeShape(this.shapes[i]); + } + + var p = new decomp.Polygon(); + p.vertices = path; + + // Make it counter-clockwise + p.makeCCW(); + + if(typeof(options.removeCollinearPoints) === "number"){ + p.removeCollinearPoints(options.removeCollinearPoints); + } + + // Check if any line segment intersects the path itself + if(typeof(options.skipSimpleCheck) === "undefined"){ + if(!p.isSimple()){ + return false; + } + } + + // Save this path for later + this.concavePath = p.vertices.slice(0); + for(var i=0; ithis for details. + * @method applyDamping + * @param {number} dt Current time step + */ +Body.prototype.applyDamping = function(dt){ + if(this.type === Body.DYNAMIC){ // Only for dynamic bodies + var v = this.velocity; + vec2.scale(v, v, Math.pow(1.0 - this.damping,dt)); + this.angularVelocity *= Math.pow(1.0 - this.angularDamping,dt); + } +}; + +/** + * Wake the body up. Normally you should not need this, as the body is automatically awoken at events such as collisions. + * Sets the sleepState to {{#crossLink "Body/AWAKE:property"}}Body.AWAKE{{/crossLink}} and emits the wakeUp event if the body wasn't awake before. + * @method wakeUp + */ +Body.prototype.wakeUp = function(){ + var s = this.sleepState; + this.sleepState = Body.AWAKE; + this.idleTime = 0; + if(s !== Body.AWAKE){ + this.emit(Body.wakeUpEvent); + } +}; + +/** + * Force body sleep + * @method sleep + */ +Body.prototype.sleep = function(){ + this.sleepState = Body.SLEEPING; + this.angularVelocity = 0; + this.angularForce = 0; + vec2.set(this.velocity,0,0); + vec2.set(this.force,0,0); + this.emit(Body.sleepEvent); +}; + +/** + * Called every timestep to update internal sleep timer and change sleep state if needed. + * @method sleepTick + * @param {number} time The world time in seconds + * @param {boolean} dontSleep + * @param {number} dt + */ +Body.prototype.sleepTick = function(time, dontSleep, dt){ + if(!this.allowSleep || this.type === Body.SLEEPING){ + return; + } + + this.wantsToSleep = false; + + var sleepState = this.sleepState, + speedSquared = vec2.squaredLength(this.velocity) + Math.pow(this.angularVelocity,2), + speedLimitSquared = Math.pow(this.sleepSpeedLimit,2); + + // Add to idle time + if(speedSquared >= speedLimitSquared){ + this.idleTime = 0; + this.sleepState = Body.AWAKE; + } else { + this.idleTime += dt; + this.sleepState = Body.SLEEPY; + } + if(this.idleTime > this.sleepTimeLimit){ + if(!dontSleep){ + this.sleep(); + } else { + this.wantsToSleep = true; + } + } +}; + +/** + * Check if the body is overlapping another body. Note that this method only works if the body was added to a World and if at least one step was taken. + * @method overlaps + * @param {Body} body + * @return {boolean} + */ +Body.prototype.overlaps = function(body){ + return this.world.overlapKeeper.bodiesAreOverlapping(this, body); +}; + +var integrate_fhMinv = vec2.create(); +var integrate_velodt = vec2.create(); + +/** + * Move the body forward in time given its current velocity. + * @method integrate + * @param {Number} dt + */ +Body.prototype.integrate = function(dt){ + var minv = this.invMass, + f = this.force, + pos = this.position, + velo = this.velocity; + + // Save old position + vec2.copy(this.previousPosition, this.position); + this.previousAngle = this.angle; + + // Velocity update + if(!this.fixedRotation){ + this.angularVelocity += this.angularForce * this.invInertia * dt; + } + vec2.scale(integrate_fhMinv, f, dt * minv); + vec2.multiply(integrate_fhMinv, this.massMultiplier, integrate_fhMinv); + vec2.add(velo, integrate_fhMinv, velo); + + // CCD + if(!this.integrateToTimeOfImpact(dt)){ + + // Regular position update + vec2.scale(integrate_velodt, velo, dt); + vec2.add(pos, pos, integrate_velodt); + if(!this.fixedRotation){ + this.angle += this.angularVelocity * dt; + } + } + + this.aabbNeedsUpdate = true; +}; + +var result = new RaycastResult(); +var ray = new Ray({ + mode: Ray.ALL +}); +var direction = vec2.create(); +var end = vec2.create(); +var startToEnd = vec2.create(); +var rememberPosition = vec2.create(); +Body.prototype.integrateToTimeOfImpact = function(dt){ + + if(this.ccdSpeedThreshold < 0 || vec2.squaredLength(this.velocity) < Math.pow(this.ccdSpeedThreshold, 2)){ + return false; + } + + vec2.normalize(direction, this.velocity); + + vec2.scale(end, this.velocity, dt); + vec2.add(end, end, this.position); + + vec2.sub(startToEnd, end, this.position); + var startToEndAngle = this.angularVelocity * dt; + var len = vec2.length(startToEnd); + + var timeOfImpact = 1; + + var hit; + var that = this; + result.reset(); + ray.callback = function (result) { + if(result.body === that){ + return; + } + hit = result.body; + result.getHitPoint(end, ray); + vec2.sub(startToEnd, end, that.position); + timeOfImpact = vec2.length(startToEnd) / len; + result.stop(); + }; + vec2.copy(ray.from, this.position); + vec2.copy(ray.to, end); + ray.update(); + this.world.raycast(result, ray); + + if(!hit){ + return false; + } + + var rememberAngle = this.angle; + vec2.copy(rememberPosition, this.position); + + // Got a start and end point. Approximate time of impact using binary search + var iter = 0; + var tmin = 0; + var tmid = 0; + var tmax = timeOfImpact; + while (tmax >= tmin && iter < this.ccdIterations) { + iter++; + + // calculate the midpoint + tmid = (tmax - tmin) / 2; + + // Move the body to that point + vec2.scale(integrate_velodt, startToEnd, timeOfImpact); + vec2.add(this.position, rememberPosition, integrate_velodt); + this.angle = rememberAngle + startToEndAngle * timeOfImpact; + this.updateAABB(); + + // check overlap + var overlaps = this.aabb.overlaps(hit.aabb) && this.world.narrowphase.bodiesOverlap(this, hit); + + if (overlaps) { + // change min to search upper interval + tmin = tmid; + } else { + // change max to search lower interval + tmax = tmid; + } + } + + timeOfImpact = tmid; + + vec2.copy(this.position, rememberPosition); + this.angle = rememberAngle; + + // move to TOI + vec2.scale(integrate_velodt, startToEnd, timeOfImpact); + vec2.add(this.position, this.position, integrate_velodt); + if(!this.fixedRotation){ + this.angle += startToEndAngle * timeOfImpact; + } + + return true; +}; + +/** + * Get velocity of a point in the body. + * @method getVelocityAtPoint + * @param {Array} result A vector to store the result in + * @param {Array} relativePoint A world oriented vector, indicating the position of the point to get the velocity from + * @return {Array} The result vector + */ +Body.prototype.getVelocityAtPoint = function(result, relativePoint){ + vec2.crossVZ(result, relativePoint, this.angularVelocity); + vec2.subtract(result, this.velocity, result); + return result; +}; + +/** + * @event sleepy + */ +Body.sleepyEvent = { + type: "sleepy" +}; + +/** + * @event sleep + */ +Body.sleepEvent = { + type: "sleep" +}; + +/** + * @event wakeup + */ +Body.wakeUpEvent = { + type: "wakeup" +}; + +/** + * Dynamic body. + * @property DYNAMIC + * @type {Number} + * @static + */ +Body.DYNAMIC = 1; + +/** + * Static body. + * @property STATIC + * @type {Number} + * @static + */ +Body.STATIC = 2; + +/** + * Kinematic body. + * @property KINEMATIC + * @type {Number} + * @static + */ +Body.KINEMATIC = 4; + +/** + * @property AWAKE + * @type {Number} + * @static + */ +Body.AWAKE = 0; + +/** + * @property SLEEPY + * @type {Number} + * @static + */ +Body.SLEEPY = 1; + +/** + * @property SLEEPING + * @type {Number} + * @static + */ +Body.SLEEPING = 2; + + +},{"../collision/AABB":7,"../collision/Ray":11,"../collision/RaycastResult":12,"../events/EventEmitter":26,"../math/vec2":30,"../shapes/Convex":40,"poly-decomp":5}],32:[function(_dereq_,module,exports){ +var vec2 = _dereq_('../math/vec2'); +var Spring = _dereq_('./Spring'); +var Utils = _dereq_('../utils/Utils'); + +module.exports = LinearSpring; + +/** + * A spring, connecting two bodies. + * + * The Spring explicitly adds force and angularForce to the bodies. + * + * @class LinearSpring + * @extends Spring + * @constructor + * @param {Body} bodyA + * @param {Body} bodyB + * @param {Object} [options] + * @param {number} [options.restLength] A number > 0. Default is the current distance between the world anchor points. + * @param {number} [options.stiffness=100] Spring constant (see Hookes Law). A number >= 0. + * @param {number} [options.damping=1] A number >= 0. Default: 1 + * @param {Array} [options.worldAnchorA] Where to hook the spring to body A, in world coordinates. Overrides the option "localAnchorA" if given. + * @param {Array} [options.worldAnchorB] + * @param {Array} [options.localAnchorA] Where to hook the spring to body A, in local body coordinates. Defaults to the body center. + * @param {Array} [options.localAnchorB] + */ +function LinearSpring(bodyA,bodyB,options){ + options = options || {}; + + Spring.call(this, bodyA, bodyB, options); + + /** + * Anchor for bodyA in local bodyA coordinates. + * @property localAnchorA + * @type {Array} + */ + this.localAnchorA = vec2.fromValues(0,0); + + /** + * Anchor for bodyB in local bodyB coordinates. + * @property localAnchorB + * @type {Array} + */ + this.localAnchorB = vec2.fromValues(0,0); + + if(options.localAnchorA){ vec2.copy(this.localAnchorA, options.localAnchorA); } + if(options.localAnchorB){ vec2.copy(this.localAnchorB, options.localAnchorB); } + if(options.worldAnchorA){ this.setWorldAnchorA(options.worldAnchorA); } + if(options.worldAnchorB){ this.setWorldAnchorB(options.worldAnchorB); } + + var worldAnchorA = vec2.create(); + var worldAnchorB = vec2.create(); + this.getWorldAnchorA(worldAnchorA); + this.getWorldAnchorB(worldAnchorB); + var worldDistance = vec2.distance(worldAnchorA, worldAnchorB); + + /** + * Rest length of the spring. + * @property restLength + * @type {number} + */ + this.restLength = typeof(options.restLength) === "number" ? options.restLength : worldDistance; +} +LinearSpring.prototype = new Spring(); +LinearSpring.prototype.constructor = LinearSpring; + +/** + * Set the anchor point on body A, using world coordinates. + * @method setWorldAnchorA + * @param {Array} worldAnchorA + */ +LinearSpring.prototype.setWorldAnchorA = function(worldAnchorA){ + this.bodyA.toLocalFrame(this.localAnchorA, worldAnchorA); +}; + +/** + * Set the anchor point on body B, using world coordinates. + * @method setWorldAnchorB + * @param {Array} worldAnchorB + */ +LinearSpring.prototype.setWorldAnchorB = function(worldAnchorB){ + this.bodyB.toLocalFrame(this.localAnchorB, worldAnchorB); +}; + +/** + * Get the anchor point on body A, in world coordinates. + * @method getWorldAnchorA + * @param {Array} result The vector to store the result in. + */ +LinearSpring.prototype.getWorldAnchorA = function(result){ + this.bodyA.toWorldFrame(result, this.localAnchorA); +}; + +/** + * Get the anchor point on body B, in world coordinates. + * @method getWorldAnchorB + * @param {Array} result The vector to store the result in. + */ +LinearSpring.prototype.getWorldAnchorB = function(result){ + this.bodyB.toWorldFrame(result, this.localAnchorB); +}; + +var applyForce_r = vec2.create(), + applyForce_r_unit = vec2.create(), + applyForce_u = vec2.create(), + applyForce_f = vec2.create(), + applyForce_worldAnchorA = vec2.create(), + applyForce_worldAnchorB = vec2.create(), + applyForce_ri = vec2.create(), + applyForce_rj = vec2.create(), + applyForce_tmp = vec2.create(); + +/** + * Apply the spring force to the connected bodies. + * @method applyForce + */ +LinearSpring.prototype.applyForce = function(){ + var k = this.stiffness, + d = this.damping, + l = this.restLength, + bodyA = this.bodyA, + bodyB = this.bodyB, + r = applyForce_r, + r_unit = applyForce_r_unit, + u = applyForce_u, + f = applyForce_f, + tmp = applyForce_tmp; + + var worldAnchorA = applyForce_worldAnchorA, + worldAnchorB = applyForce_worldAnchorB, + ri = applyForce_ri, + rj = applyForce_rj; + + // Get world anchors + this.getWorldAnchorA(worldAnchorA); + this.getWorldAnchorB(worldAnchorB); + + // Get offset points + vec2.sub(ri, worldAnchorA, bodyA.position); + vec2.sub(rj, worldAnchorB, bodyB.position); + + // Compute distance vector between world anchor points + vec2.sub(r, worldAnchorB, worldAnchorA); + var rlen = vec2.len(r); + vec2.normalize(r_unit,r); + + //console.log(rlen) + //console.log("A",vec2.str(worldAnchorA),"B",vec2.str(worldAnchorB)) + + // Compute relative velocity of the anchor points, u + vec2.sub(u, bodyB.velocity, bodyA.velocity); + vec2.crossZV(tmp, bodyB.angularVelocity, rj); + vec2.add(u, u, tmp); + vec2.crossZV(tmp, bodyA.angularVelocity, ri); + vec2.sub(u, u, tmp); + + // F = - k * ( x - L ) - D * ( u ) + vec2.scale(f, r_unit, -k*(rlen-l) - d*vec2.dot(u,r_unit)); + + // Add forces to bodies + vec2.sub( bodyA.force, bodyA.force, f); + vec2.add( bodyB.force, bodyB.force, f); + + // Angular force + var ri_x_f = vec2.crossLength(ri, f); + var rj_x_f = vec2.crossLength(rj, f); + bodyA.angularForce -= ri_x_f; + bodyB.angularForce += rj_x_f; +}; + +},{"../math/vec2":30,"../utils/Utils":57,"./Spring":34}],33:[function(_dereq_,module,exports){ +var vec2 = _dereq_('../math/vec2'); +var Spring = _dereq_('./Spring'); + +module.exports = RotationalSpring; + +/** + * A rotational spring, connecting two bodies rotation. This spring explicitly adds angularForce (torque) to the bodies. + * + * The spring can be combined with a {{#crossLink "RevoluteConstraint"}}{{/crossLink}} to make, for example, a mouse trap. + * + * @class RotationalSpring + * @extends Spring + * @constructor + * @param {Body} bodyA + * @param {Body} bodyB + * @param {Object} [options] + * @param {number} [options.restAngle] The relative angle of bodies at which the spring is at rest. If not given, it's set to the current relative angle between the bodies. + * @param {number} [options.stiffness=100] Spring constant (see Hookes Law). A number >= 0. + * @param {number} [options.damping=1] A number >= 0. + */ +function RotationalSpring(bodyA, bodyB, options){ + options = options || {}; + + Spring.call(this, bodyA, bodyB, options); + + /** + * Rest angle of the spring. + * @property restAngle + * @type {number} + */ + this.restAngle = typeof(options.restAngle) === "number" ? options.restAngle : bodyB.angle - bodyA.angle; +} +RotationalSpring.prototype = new Spring(); +RotationalSpring.prototype.constructor = RotationalSpring; + +/** + * Apply the spring force to the connected bodies. + * @method applyForce + */ +RotationalSpring.prototype.applyForce = function(){ + var k = this.stiffness, + d = this.damping, + l = this.restAngle, + bodyA = this.bodyA, + bodyB = this.bodyB, + x = bodyB.angle - bodyA.angle, + u = bodyB.angularVelocity - bodyA.angularVelocity; + + var torque = - k * (x - l) - d * u * 0; + + bodyA.angularForce -= torque; + bodyB.angularForce += torque; +}; + +},{"../math/vec2":30,"./Spring":34}],34:[function(_dereq_,module,exports){ +var vec2 = _dereq_('../math/vec2'); +var Utils = _dereq_('../utils/Utils'); + +module.exports = Spring; + +/** + * A spring, connecting two bodies. The Spring explicitly adds force and angularForce to the bodies and does therefore not put load on the constraint solver. + * + * @class Spring + * @constructor + * @param {Body} bodyA + * @param {Body} bodyB + * @param {Object} [options] + * @param {number} [options.stiffness=100] Spring constant (see Hookes Law). A number >= 0. + * @param {number} [options.damping=1] A number >= 0. Default: 1 + * @param {Array} [options.localAnchorA] Where to hook the spring to body A, in local body coordinates. Defaults to the body center. + * @param {Array} [options.localAnchorB] + * @param {Array} [options.worldAnchorA] Where to hook the spring to body A, in world coordinates. Overrides the option "localAnchorA" if given. + * @param {Array} [options.worldAnchorB] + */ +function Spring(bodyA, bodyB, options){ + options = Utils.defaults(options,{ + stiffness: 100, + damping: 1, + }); + + /** + * Stiffness of the spring. + * @property stiffness + * @type {number} + */ + this.stiffness = options.stiffness; + + /** + * Damping of the spring. + * @property damping + * @type {number} + */ + this.damping = options.damping; + + /** + * First connected body. + * @property bodyA + * @type {Body} + */ + this.bodyA = bodyA; + + /** + * Second connected body. + * @property bodyB + * @type {Body} + */ + this.bodyB = bodyB; +} + +/** + * Apply the spring force to the connected bodies. + * @method applyForce + */ +Spring.prototype.applyForce = function(){ + // To be implemented by subclasses +}; + +},{"../math/vec2":30,"../utils/Utils":57}],35:[function(_dereq_,module,exports){ +var vec2 = _dereq_('../math/vec2'); +var Utils = _dereq_('../utils/Utils'); +var Constraint = _dereq_('../constraints/Constraint'); +var FrictionEquation = _dereq_('../equations/FrictionEquation'); +var Body = _dereq_('../objects/Body'); + +module.exports = TopDownVehicle; + +/** + * @class TopDownVehicle + * @constructor + * @param {Body} chassisBody A dynamic body, already added to the world. + * @param {Object} [options] + * + * @example + * + * // Create a dynamic body for the chassis + * var chassisBody = new Body({ + * mass: 1 + * }); + * var boxShape = new Box({ width: 0.5, height: 1 }); + * chassisBody.addShape(boxShape); + * world.addBody(chassisBody); + * + * // Create the vehicle + * var vehicle = new TopDownVehicle(chassisBody); + * + * // Add one front wheel and one back wheel - we don't actually need four :) + * var frontWheel = vehicle.addWheel({ + * localPosition: [0, 0.5] // front + * }); + * frontWheel.setSideFriction(4); + * + * // Back wheel + * var backWheel = vehicle.addWheel({ + * localPosition: [0, -0.5] // back + * }); + * backWheel.setSideFriction(3); // Less side friction on back wheel makes it easier to drift + * vehicle.addToWorld(world); + * + * // Steer value zero means straight forward. Positive is left and negative right. + * frontWheel.steerValue = Math.PI / 16; + * + * // Engine force forward + * backWheel.engineForce = 10; + * backWheel.setBrakeForce(0); + */ +function TopDownVehicle(chassisBody, options){ + options = options || {}; + + /** + * @property {Body} chassisBody + */ + this.chassisBody = chassisBody; + + /** + * @property {Array} wheels + */ + this.wheels = []; + + // A dummy body to constrain the chassis to + this.groundBody = new Body({ mass: 0 }); + + this.world = null; + + var that = this; + this.preStepCallback = function(){ + that.update(); + }; +} + +/** + * @method addToWorld + * @param {World} world + */ +TopDownVehicle.prototype.addToWorld = function(world){ + this.world = world; + world.addBody(this.groundBody); + world.on('preStep', this.preStepCallback); + for (var i = 0; i < this.wheels.length; i++) { + var wheel = this.wheels[i]; + world.addConstraint(wheel); + } +}; + +/** + * @method removeFromWorld + * @param {World} world + */ +TopDownVehicle.prototype.removeFromWorld = function(){ + var world = this.world; + world.removeBody(this.groundBody); + world.off('preStep', this.preStepCallback); + for (var i = 0; i < this.wheels.length; i++) { + var wheel = this.wheels[i]; + world.removeConstraint(wheel); + } + this.world = null; +}; + +/** + * @method addWheel + * @param {object} [wheelOptions] + * @return {WheelConstraint} + */ +TopDownVehicle.prototype.addWheel = function(wheelOptions){ + var wheel = new WheelConstraint(this,wheelOptions); + this.wheels.push(wheel); + return wheel; +}; + +/** + * @method update + */ +TopDownVehicle.prototype.update = function(){ + for (var i = 0; i < this.wheels.length; i++) { + this.wheels[i].update(); + } +}; + +/** + * @class WheelConstraint + * @constructor + * @extends {Constraint} + * @param {Vehicle} vehicle + * @param {object} [options] + * @param {Array} [options.localForwardVector]The local wheel forward vector in local body space. Default is zero. + * @param {Array} [options.localPosition] The local position of the wheen in the chassis body. Default is zero - the center of the body. + * @param {Array} [options.sideFriction=5] The max friction force in the sideways direction. + */ +function WheelConstraint(vehicle, options){ + options = options || {}; + + this.vehicle = vehicle; + + this.forwardEquation = new FrictionEquation(vehicle.chassisBody, vehicle.groundBody); + + this.sideEquation = new FrictionEquation(vehicle.chassisBody, vehicle.groundBody); + + /** + * @property {number} steerValue + */ + this.steerValue = 0; + + /** + * @property {number} engineForce + */ + this.engineForce = 0; + + this.setSideFriction(options.sideFriction !== undefined ? options.sideFriction : 5); + + /** + * @property {Array} localForwardVector + */ + this.localForwardVector = vec2.fromValues(0, 1); + if(options.localForwardVector){ + vec2.copy(this.localForwardVector, options.localForwardVector); + } + + /** + * @property {Array} localPosition + */ + this.localPosition = vec2.fromValues(0, 0); + if(options.localPosition){ + vec2.copy(this.localPosition, options.localPosition); + } + + Constraint.apply(this, vehicle.chassisBody, vehicle.groundBody); + + this.equations.push( + this.forwardEquation, + this.sideEquation + ); + + this.setBrakeForce(0); +} +WheelConstraint.prototype = new Constraint(); + +/** + * @method setForwardFriction + */ +WheelConstraint.prototype.setBrakeForce = function(force){ + this.forwardEquation.setSlipForce(force); +}; + +/** + * @method setSideFriction + */ +WheelConstraint.prototype.setSideFriction = function(force){ + this.sideEquation.setSlipForce(force); +}; + +var worldVelocity = vec2.create(); +var relativePoint = vec2.create(); + +/** + * @method getSpeed + */ +WheelConstraint.prototype.getSpeed = function(){ + this.vehicle.chassisBody.vectorToWorldFrame(relativePoint, this.localForwardVector); + this.vehicle.chassisBody.getVelocityAtPoint(worldVelocity, relativePoint); + return vec2.dot(worldVelocity, relativePoint); +}; + +var tmpVec = vec2.create(); + +/** + * @method update + */ +WheelConstraint.prototype.update = function(){ + + // Directional + this.vehicle.chassisBody.vectorToWorldFrame(this.forwardEquation.t, this.localForwardVector); + vec2.rotate(this.sideEquation.t, this.localForwardVector, Math.PI / 2); + this.vehicle.chassisBody.vectorToWorldFrame(this.sideEquation.t, this.sideEquation.t); + + vec2.rotate(this.forwardEquation.t, this.forwardEquation.t, this.steerValue); + vec2.rotate(this.sideEquation.t, this.sideEquation.t, this.steerValue); + + // Attachment point + this.vehicle.chassisBody.toWorldFrame(this.forwardEquation.contactPointB, this.localPosition); + vec2.copy(this.sideEquation.contactPointB, this.forwardEquation.contactPointB); + + this.vehicle.chassisBody.vectorToWorldFrame(this.forwardEquation.contactPointA, this.localPosition); + vec2.copy(this.sideEquation.contactPointA, this.forwardEquation.contactPointA); + + // Add engine force + vec2.normalize(tmpVec, this.forwardEquation.t); + vec2.scale(tmpVec, tmpVec, this.engineForce); + + this.vehicle.chassisBody.applyForce(tmpVec, this.forwardEquation.contactPointA); +}; +},{"../constraints/Constraint":14,"../equations/FrictionEquation":23,"../math/vec2":30,"../objects/Body":31,"../utils/Utils":57}],36:[function(_dereq_,module,exports){ +// Export p2 classes +var p2 = module.exports = { + AABB : _dereq_('./collision/AABB'), + AngleLockEquation : _dereq_('./equations/AngleLockEquation'), + Body : _dereq_('./objects/Body'), + Broadphase : _dereq_('./collision/Broadphase'), + Capsule : _dereq_('./shapes/Capsule'), + Circle : _dereq_('./shapes/Circle'), + Constraint : _dereq_('./constraints/Constraint'), + ContactEquation : _dereq_('./equations/ContactEquation'), + ContactEquationPool : _dereq_('./utils/ContactEquationPool'), + ContactMaterial : _dereq_('./material/ContactMaterial'), + Convex : _dereq_('./shapes/Convex'), + DistanceConstraint : _dereq_('./constraints/DistanceConstraint'), + Equation : _dereq_('./equations/Equation'), + EventEmitter : _dereq_('./events/EventEmitter'), + FrictionEquation : _dereq_('./equations/FrictionEquation'), + FrictionEquationPool : _dereq_('./utils/FrictionEquationPool'), + GearConstraint : _dereq_('./constraints/GearConstraint'), + GSSolver : _dereq_('./solver/GSSolver'), + Heightfield : _dereq_('./shapes/Heightfield'), + Line : _dereq_('./shapes/Line'), + LockConstraint : _dereq_('./constraints/LockConstraint'), + Material : _dereq_('./material/Material'), + Narrowphase : _dereq_('./collision/Narrowphase'), + NaiveBroadphase : _dereq_('./collision/NaiveBroadphase'), + Particle : _dereq_('./shapes/Particle'), + Plane : _dereq_('./shapes/Plane'), + Pool : _dereq_('./utils/Pool'), + RevoluteConstraint : _dereq_('./constraints/RevoluteConstraint'), + PrismaticConstraint : _dereq_('./constraints/PrismaticConstraint'), + Ray : _dereq_('./collision/Ray'), + RaycastResult : _dereq_('./collision/RaycastResult'), + Box : _dereq_('./shapes/Box'), + RotationalVelocityEquation : _dereq_('./equations/RotationalVelocityEquation'), + SAPBroadphase : _dereq_('./collision/SAPBroadphase'), + Shape : _dereq_('./shapes/Shape'), + Solver : _dereq_('./solver/Solver'), + Spring : _dereq_('./objects/Spring'), + TopDownVehicle : _dereq_('./objects/TopDownVehicle'), + LinearSpring : _dereq_('./objects/LinearSpring'), + RotationalSpring : _dereq_('./objects/RotationalSpring'), + Utils : _dereq_('./utils/Utils'), + World : _dereq_('./world/World'), + vec2 : _dereq_('./math/vec2'), + version : _dereq_('../package.json').version, +}; + +Object.defineProperty(p2, 'Rectangle', { + get: function() { + console.warn('The Rectangle class has been renamed to Box.'); + return this.Box; + } +}); +},{"../package.json":6,"./collision/AABB":7,"./collision/Broadphase":8,"./collision/NaiveBroadphase":9,"./collision/Narrowphase":10,"./collision/Ray":11,"./collision/RaycastResult":12,"./collision/SAPBroadphase":13,"./constraints/Constraint":14,"./constraints/DistanceConstraint":15,"./constraints/GearConstraint":16,"./constraints/LockConstraint":17,"./constraints/PrismaticConstraint":18,"./constraints/RevoluteConstraint":19,"./equations/AngleLockEquation":20,"./equations/ContactEquation":21,"./equations/Equation":22,"./equations/FrictionEquation":23,"./equations/RotationalVelocityEquation":25,"./events/EventEmitter":26,"./material/ContactMaterial":27,"./material/Material":28,"./math/vec2":30,"./objects/Body":31,"./objects/LinearSpring":32,"./objects/RotationalSpring":33,"./objects/Spring":34,"./objects/TopDownVehicle":35,"./shapes/Box":37,"./shapes/Capsule":38,"./shapes/Circle":39,"./shapes/Convex":40,"./shapes/Heightfield":41,"./shapes/Line":42,"./shapes/Particle":43,"./shapes/Plane":44,"./shapes/Shape":45,"./solver/GSSolver":46,"./solver/Solver":47,"./utils/ContactEquationPool":48,"./utils/FrictionEquationPool":49,"./utils/Pool":55,"./utils/Utils":57,"./world/World":61}],37:[function(_dereq_,module,exports){ +var vec2 = _dereq_('../math/vec2') +, Shape = _dereq_('./Shape') +, Convex = _dereq_('./Convex'); + +module.exports = Box; + +/** + * Box shape class. + * @class Box + * @constructor + * @param {object} [options] (Note that this options object will be passed on to the {{#crossLink "Shape"}}{{/crossLink}} constructor.) + * @param {Number} [options.width=1] Total width of the box + * @param {Number} [options.height=1] Total height of the box + * @extends Convex + */ +function Box(options){ + if(typeof(arguments[0]) === 'number' && typeof(arguments[1]) === 'number'){ + options = { + width: arguments[0], + height: arguments[1] + }; + console.warn('The Rectangle has been renamed to Box and its constructor signature has changed. Please use the following format: new Box({ width: 1, height: 1, ... })'); + } + options = options || {}; + + /** + * Total width of the box + * @property width + * @type {Number} + */ + var width = this.width = options.width || 1; + + /** + * Total height of the box + * @property height + * @type {Number} + */ + var height = this.height = options.height || 1; + + var verts = [ + vec2.fromValues(-width/2, -height/2), + vec2.fromValues( width/2, -height/2), + vec2.fromValues( width/2, height/2), + vec2.fromValues(-width/2, height/2) + ]; + var axes = [ + vec2.fromValues(1, 0), + vec2.fromValues(0, 1) + ]; + + options.vertices = verts; + options.axes = axes; + options.type = Shape.BOX; + Convex.call(this, options); +} +Box.prototype = new Convex(); +Box.prototype.constructor = Box; + +/** + * Compute moment of inertia + * @method computeMomentOfInertia + * @param {Number} mass + * @return {Number} + */ +Box.prototype.computeMomentOfInertia = function(mass){ + var w = this.width, + h = this.height; + return mass * (h*h + w*w) / 12; +}; + +/** + * Update the bounding radius + * @method updateBoundingRadius + */ +Box.prototype.updateBoundingRadius = function(){ + var w = this.width, + h = this.height; + this.boundingRadius = Math.sqrt(w*w + h*h) / 2; +}; + +var corner1 = vec2.create(), + corner2 = vec2.create(), + corner3 = vec2.create(), + corner4 = vec2.create(); + +/** + * @method computeAABB + * @param {AABB} out The resulting AABB. + * @param {Array} position + * @param {Number} angle + */ +Box.prototype.computeAABB = function(out, position, angle){ + out.setFromPoints(this.vertices,position,angle,0); +}; + +Box.prototype.updateArea = function(){ + this.area = this.width * this.height; +}; + + +},{"../math/vec2":30,"./Convex":40,"./Shape":45}],38:[function(_dereq_,module,exports){ +var Shape = _dereq_('./Shape') +, vec2 = _dereq_('../math/vec2'); + +module.exports = Capsule; + +/** + * Capsule shape class. + * @class Capsule + * @constructor + * @extends Shape + * @param {object} [options] (Note that this options object will be passed on to the {{#crossLink "Shape"}}{{/crossLink}} constructor.) + * @param {Number} [options.length=1] The distance between the end points + * @param {Number} [options.radius=1] Radius of the capsule + * @example + * var capsuleShape = new Capsule({ + * length: 1, + * radius: 2 + * }); + * body.addShape(capsuleShape); + */ +function Capsule(options){ + if(typeof(arguments[0]) === 'number' && typeof(arguments[1]) === 'number'){ + options = { + length: arguments[0], + radius: arguments[1] + }; + console.warn('The Capsule constructor signature has changed. Please use the following format: new Capsule({ radius: 1, length: 1 })'); + } + options = options || {}; + + /** + * The distance between the end points. + * @property {Number} length + */ + this.length = options.length || 1; + + /** + * The radius of the capsule. + * @property {Number} radius + */ + this.radius = options.radius || 1; + + options.type = Shape.CAPSULE; + Shape.call(this, options); +} +Capsule.prototype = new Shape(); +Capsule.prototype.constructor = Capsule; + +/** + * Compute the mass moment of inertia of the Capsule. + * @method conputeMomentOfInertia + * @param {Number} mass + * @return {Number} + * @todo + */ +Capsule.prototype.computeMomentOfInertia = function(mass){ + // Approximate with rectangle + var r = this.radius, + w = this.length + r, // 2*r is too much, 0 is too little + h = r*2; + return mass * (h*h + w*w) / 12; +}; + +/** + * @method updateBoundingRadius + */ +Capsule.prototype.updateBoundingRadius = function(){ + this.boundingRadius = this.radius + this.length/2; +}; + +/** + * @method updateArea + */ +Capsule.prototype.updateArea = function(){ + this.area = Math.PI * this.radius * this.radius + this.radius * 2 * this.length; +}; + +var r = vec2.create(); + +/** + * @method computeAABB + * @param {AABB} out The resulting AABB. + * @param {Array} position + * @param {Number} angle + */ +Capsule.prototype.computeAABB = function(out, position, angle){ + var radius = this.radius; + + // Compute center position of one of the the circles, world oriented, but with local offset + vec2.set(r,this.length / 2,0); + if(angle !== 0){ + vec2.rotate(r,r,angle); + } + + // Get bounds + vec2.set(out.upperBound, Math.max(r[0]+radius, -r[0]+radius), + Math.max(r[1]+radius, -r[1]+radius)); + vec2.set(out.lowerBound, Math.min(r[0]-radius, -r[0]-radius), + Math.min(r[1]-radius, -r[1]-radius)); + + // Add offset + vec2.add(out.lowerBound, out.lowerBound, position); + vec2.add(out.upperBound, out.upperBound, position); +}; + +var intersectCapsule_hitPointWorld = vec2.create(); +var intersectCapsule_normal = vec2.create(); +var intersectCapsule_l0 = vec2.create(); +var intersectCapsule_l1 = vec2.create(); +var intersectCapsule_unit_y = vec2.fromValues(0,1); + +/** + * @method raycast + * @param {RaycastResult} result + * @param {Ray} ray + * @param {array} position + * @param {number} angle + */ +Capsule.prototype.raycast = function(result, ray, position, angle){ + var from = ray.from; + var to = ray.to; + var direction = ray.direction; + + var hitPointWorld = intersectCapsule_hitPointWorld; + var normal = intersectCapsule_normal; + var l0 = intersectCapsule_l0; + var l1 = intersectCapsule_l1; + + // The sides + var halfLen = this.length / 2; + for(var i=0; i<2; i++){ + + // get start and end of the line + var y = this.radius * (i*2-1); + vec2.set(l0, -halfLen, y); + vec2.set(l1, halfLen, y); + vec2.toGlobalFrame(l0, l0, position, angle); + vec2.toGlobalFrame(l1, l1, position, angle); + + var delta = vec2.getLineSegmentsIntersectionFraction(from, to, l0, l1); + if(delta >= 0){ + vec2.rotate(normal, intersectCapsule_unit_y, angle); + vec2.scale(normal, normal, (i*2-1)); + ray.reportIntersection(result, delta, normal, -1); + if(result.shouldStop(ray)){ + return; + } + } + } + + // Circles + var diagonalLengthSquared = Math.pow(this.radius, 2) + Math.pow(halfLen, 2); + for(var i=0; i<2; i++){ + vec2.set(l0, halfLen * (i*2-1), 0); + vec2.toGlobalFrame(l0, l0, position, angle); + + var a = Math.pow(to[0] - from[0], 2) + Math.pow(to[1] - from[1], 2); + var b = 2 * ((to[0] - from[0]) * (from[0] - l0[0]) + (to[1] - from[1]) * (from[1] - l0[1])); + var c = Math.pow(from[0] - l0[0], 2) + Math.pow(from[1] - l0[1], 2) - Math.pow(this.radius, 2); + var delta = Math.pow(b, 2) - 4 * a * c; + + if(delta < 0){ + // No intersection + continue; + + } else if(delta === 0){ + // single intersection point + vec2.lerp(hitPointWorld, from, to, delta); + + if(vec2.squaredDistance(hitPointWorld, position) > diagonalLengthSquared){ + vec2.sub(normal, hitPointWorld, l0); + vec2.normalize(normal,normal); + ray.reportIntersection(result, delta, normal, -1); + if(result.shouldStop(ray)){ + return; + } + } + + } else { + var sqrtDelta = Math.sqrt(delta); + var inv2a = 1 / (2 * a); + var d1 = (- b - sqrtDelta) * inv2a; + var d2 = (- b + sqrtDelta) * inv2a; + + if(d1 >= 0 && d1 <= 1){ + vec2.lerp(hitPointWorld, from, to, d1); + if(vec2.squaredDistance(hitPointWorld, position) > diagonalLengthSquared){ + vec2.sub(normal, hitPointWorld, l0); + vec2.normalize(normal,normal); + ray.reportIntersection(result, d1, normal, -1); + if(result.shouldStop(ray)){ + return; + } + } + } + + if(d2 >= 0 && d2 <= 1){ + vec2.lerp(hitPointWorld, from, to, d2); + if(vec2.squaredDistance(hitPointWorld, position) > diagonalLengthSquared){ + vec2.sub(normal, hitPointWorld, l0); + vec2.normalize(normal,normal); + ray.reportIntersection(result, d2, normal, -1); + if(result.shouldStop(ray)){ + return; + } + } + } + } + } +}; +},{"../math/vec2":30,"./Shape":45}],39:[function(_dereq_,module,exports){ +var Shape = _dereq_('./Shape') +, vec2 = _dereq_('../math/vec2'); + +module.exports = Circle; + +/** + * Circle shape class. + * @class Circle + * @extends Shape + * @constructor + * @param {options} [options] (Note that this options object will be passed on to the {{#crossLink "Shape"}}{{/crossLink}} constructor.) + * @param {number} [options.radius=1] The radius of this circle + * + * @example + * var circleShape = new Circle({ radius: 1 }); + * body.addShape(circleShape); + */ +function Circle(options){ + if(typeof(arguments[0]) === 'number'){ + options = { + radius: arguments[0] + }; + console.warn('The Circle constructor signature has changed. Please use the following format: new Circle({ radius: 1 })'); + } + options = options || {}; + + /** + * The radius of the circle. + * @property radius + * @type {number} + */ + this.radius = options.radius || 1; + + options.type = Shape.CIRCLE; + Shape.call(this, options); +} +Circle.prototype = new Shape(); +Circle.prototype.constructor = Circle; + +/** + * @method computeMomentOfInertia + * @param {Number} mass + * @return {Number} + */ +Circle.prototype.computeMomentOfInertia = function(mass){ + var r = this.radius; + return mass * r * r / 2; +}; + +/** + * @method updateBoundingRadius + * @return {Number} + */ +Circle.prototype.updateBoundingRadius = function(){ + this.boundingRadius = this.radius; +}; + +/** + * @method updateArea + * @return {Number} + */ +Circle.prototype.updateArea = function(){ + this.area = Math.PI * this.radius * this.radius; +}; + +/** + * @method computeAABB + * @param {AABB} out The resulting AABB. + * @param {Array} position + * @param {Number} angle + */ +Circle.prototype.computeAABB = function(out, position, angle){ + var r = this.radius; + vec2.set(out.upperBound, r, r); + vec2.set(out.lowerBound, -r, -r); + if(position){ + vec2.add(out.lowerBound, out.lowerBound, position); + vec2.add(out.upperBound, out.upperBound, position); + } +}; + +var Ray_intersectSphere_intersectionPoint = vec2.create(); +var Ray_intersectSphere_normal = vec2.create(); + +/** + * @method raycast + * @param {RaycastResult} result + * @param {Ray} ray + * @param {array} position + * @param {number} angle + */ +Circle.prototype.raycast = function(result, ray, position, angle){ + var from = ray.from, + to = ray.to, + r = this.radius; + + var a = Math.pow(to[0] - from[0], 2) + Math.pow(to[1] - from[1], 2); + var b = 2 * ((to[0] - from[0]) * (from[0] - position[0]) + (to[1] - from[1]) * (from[1] - position[1])); + var c = Math.pow(from[0] - position[0], 2) + Math.pow(from[1] - position[1], 2) - Math.pow(r, 2); + var delta = Math.pow(b, 2) - 4 * a * c; + + var intersectionPoint = Ray_intersectSphere_intersectionPoint; + var normal = Ray_intersectSphere_normal; + + if(delta < 0){ + // No intersection + return; + + } else if(delta === 0){ + // single intersection point + vec2.lerp(intersectionPoint, from, to, delta); + + vec2.sub(normal, intersectionPoint, position); + vec2.normalize(normal,normal); + + ray.reportIntersection(result, delta, normal, -1); + + } else { + var sqrtDelta = Math.sqrt(delta); + var inv2a = 1 / (2 * a); + var d1 = (- b - sqrtDelta) * inv2a; + var d2 = (- b + sqrtDelta) * inv2a; + + if(d1 >= 0 && d1 <= 1){ + vec2.lerp(intersectionPoint, from, to, d1); + + vec2.sub(normal, intersectionPoint, position); + vec2.normalize(normal,normal); + + ray.reportIntersection(result, d1, normal, -1); + + if(result.shouldStop(ray)){ + return; + } + } + + if(d2 >= 0 && d2 <= 1){ + vec2.lerp(intersectionPoint, from, to, d2); + + vec2.sub(normal, intersectionPoint, position); + vec2.normalize(normal,normal); + + ray.reportIntersection(result, d2, normal, -1); + } + } +}; +},{"../math/vec2":30,"./Shape":45}],40:[function(_dereq_,module,exports){ +var Shape = _dereq_('./Shape') +, vec2 = _dereq_('../math/vec2') +, polyk = _dereq_('../math/polyk') +, decomp = _dereq_('poly-decomp'); + +module.exports = Convex; + +/** + * Convex shape class. + * @class Convex + * @constructor + * @extends Shape + * @param {object} [options] (Note that this options object will be passed on to the {{#crossLink "Shape"}}{{/crossLink}} constructor.) + * @param {Array} [options.vertices] An array of vertices that span this shape. Vertices are given in counter-clockwise (CCW) direction. + * @param {Array} [options.axes] An array of unit length vectors, representing the symmetry axes in the convex. + * @example + * // Create a box + * var vertices = [[-1,-1], [1,-1], [1,1], [-1,1]]; + * var convexShape = new Convex({ vertices: vertices }); + * body.addShape(convexShape); + */ +function Convex(options){ + if(Array.isArray(arguments[0])){ + options = { + vertices: arguments[0], + axes: arguments[1] + }; + console.warn('The Convex constructor signature has changed. Please use the following format: new Convex({ vertices: [...], ... })'); + } + options = options || {}; + + /** + * Vertices defined in the local frame. + * @property vertices + * @type {Array} + */ + this.vertices = []; + + // Copy the verts + var vertices = options.vertices !== undefined ? options.vertices : []; + for(var i=0; i < vertices.length; i++){ + var v = vec2.create(); + vec2.copy(v, vertices[i]); + this.vertices.push(v); + } + + /** + * Axes defined in the local frame. + * @property axes + * @type {Array} + */ + this.axes = []; + + if(options.axes){ + + // Copy the axes + for(var i=0; i < options.axes.length; i++){ + var axis = vec2.create(); + vec2.copy(axis, options.axes[i]); + this.axes.push(axis); + } + + } else { + + // Construct axes from the vertex data + for(var i = 0; i < this.vertices.length; i++){ + // Get the world edge + var worldPoint0 = this.vertices[i]; + var worldPoint1 = this.vertices[(i+1) % this.vertices.length]; + + var normal = vec2.create(); + vec2.sub(normal, worldPoint1, worldPoint0); + + // Get normal - just rotate 90 degrees since vertices are given in CCW + vec2.rotate90cw(normal, normal); + vec2.normalize(normal, normal); + + this.axes.push(normal); + } + + } + + /** + * The center of mass of the Convex + * @property centerOfMass + * @type {Array} + */ + this.centerOfMass = vec2.fromValues(0,0); + + /** + * Triangulated version of this convex. The structure is Array of 3-Arrays, and each subarray contains 3 integers, referencing the vertices. + * @property triangles + * @type {Array} + */ + this.triangles = []; + + if(this.vertices.length){ + this.updateTriangles(); + this.updateCenterOfMass(); + } + + /** + * The bounding radius of the convex + * @property boundingRadius + * @type {Number} + */ + this.boundingRadius = 0; + + options.type = Shape.CONVEX; + Shape.call(this, options); + + this.updateBoundingRadius(); + this.updateArea(); + if(this.area < 0){ + throw new Error("Convex vertices must be given in conter-clockwise winding."); + } +} +Convex.prototype = new Shape(); +Convex.prototype.constructor = Convex; + +var tmpVec1 = vec2.create(); +var tmpVec2 = vec2.create(); + +/** + * Project a Convex onto a world-oriented axis + * @method projectOntoAxis + * @static + * @param {Array} offset + * @param {Array} localAxis + * @param {Array} result + */ +Convex.prototype.projectOntoLocalAxis = function(localAxis, result){ + var max=null, + min=null, + v, + value, + localAxis = tmpVec1; + + // Get projected position of all vertices + for(var i=0; i max){ + max = value; + } + if(min === null || value < min){ + min = value; + } + } + + if(min > max){ + var t = min; + min = max; + max = t; + } + + vec2.set(result, min, max); +}; + +Convex.prototype.projectOntoWorldAxis = function(localAxis, shapeOffset, shapeAngle, result){ + var worldAxis = tmpVec2; + + this.projectOntoLocalAxis(localAxis, result); + + // Project the position of the body onto the axis - need to add this to the result + if(shapeAngle !== 0){ + vec2.rotate(worldAxis, localAxis, shapeAngle); + } else { + worldAxis = localAxis; + } + var offset = vec2.dot(shapeOffset, worldAxis); + + vec2.set(result, result[0] + offset, result[1] + offset); +}; + + +/** + * Update the .triangles property + * @method updateTriangles + */ +Convex.prototype.updateTriangles = function(){ + + this.triangles.length = 0; + + // Rewrite on polyk notation, array of numbers + var polykVerts = []; + for(var i=0; i r2){ + r2 = l2; + } + } + + this.boundingRadius = Math.sqrt(r2); +}; + +/** + * Get the area of the triangle spanned by the three points a, b, c. The area is positive if the points are given in counter-clockwise order, otherwise negative. + * @static + * @method triangleArea + * @param {Array} a + * @param {Array} b + * @param {Array} c + * @return {Number} + */ +Convex.triangleArea = function(a,b,c){ + return (((b[0] - a[0])*(c[1] - a[1]))-((c[0] - a[0])*(b[1] - a[1]))) * 0.5; +}; + +/** + * Update the .area + * @method updateArea + */ +Convex.prototype.updateArea = function(){ + this.updateTriangles(); + this.area = 0; + + var triangles = this.triangles, + verts = this.vertices; + for(var i=0; i!==triangles.length; i++){ + var t = triangles[i], + a = verts[t[0]], + b = verts[t[1]], + c = verts[t[2]]; + + // Get mass for the triangle (density=1 in this case) + var m = Convex.triangleArea(a,b,c); + this.area += m; + } +}; + +/** + * @method computeAABB + * @param {AABB} out + * @param {Array} position + * @param {Number} angle + */ +Convex.prototype.computeAABB = function(out, position, angle){ + out.setFromPoints(this.vertices, position, angle, 0); +}; + +var intersectConvex_rayStart = vec2.create(); +var intersectConvex_rayEnd = vec2.create(); +var intersectConvex_normal = vec2.create(); + +/** + * @method raycast + * @param {RaycastResult} result + * @param {Ray} ray + * @param {array} position + * @param {number} angle + */ +Convex.prototype.raycast = function(result, ray, position, angle){ + var rayStart = intersectConvex_rayStart; + var rayEnd = intersectConvex_rayEnd; + var normal = intersectConvex_normal; + var vertices = this.vertices; + + // Transform to local shape space + vec2.toLocalFrame(rayStart, ray.from, position, angle); + vec2.toLocalFrame(rayEnd, ray.to, position, angle); + + var n = vertices.length; + + for (var i = 0; i < n && !result.shouldStop(ray); i++) { + var q1 = vertices[i]; + var q2 = vertices[(i+1) % n]; + var delta = vec2.getLineSegmentsIntersectionFraction(rayStart, rayEnd, q1, q2); + + if(delta >= 0){ + vec2.sub(normal, q2, q1); + vec2.rotate(normal, normal, -Math.PI / 2 + angle); + vec2.normalize(normal, normal); + ray.reportIntersection(result, delta, normal, i); + } + } +}; + +},{"../math/polyk":29,"../math/vec2":30,"./Shape":45,"poly-decomp":5}],41:[function(_dereq_,module,exports){ +var Shape = _dereq_('./Shape') +, vec2 = _dereq_('../math/vec2') +, Utils = _dereq_('../utils/Utils'); + +module.exports = Heightfield; + +/** + * Heightfield shape class. Height data is given as an array. These data points are spread out evenly with a distance "elementWidth". + * @class Heightfield + * @extends Shape + * @constructor + * @param {object} [options] (Note that this options object will be passed on to the {{#crossLink "Shape"}}{{/crossLink}} constructor.) + * @param {array} [options.heights] An array of Y values that will be used to construct the terrain. + * @param {Number} [options.minValue] Minimum value of the data points in the data array. Will be computed automatically if not given. + * @param {Number} [options.maxValue] Maximum value. + * @param {Number} [options.elementWidth=0.1] World spacing between the data points in X direction. + * + * @example + * // Generate some height data (y-values). + * var heights = []; + * for(var i = 0; i < 1000; i++){ + * var y = 0.5 * Math.cos(0.2 * i); + * heights.push(y); + * } + * + * // Create the heightfield shape + * var heightfieldShape = new Heightfield({ + * heights: heights, + * elementWidth: 1 // Distance between the data points in X direction + * }); + * var heightfieldBody = new Body(); + * heightfieldBody.addShape(heightfieldShape); + * world.addBody(heightfieldBody); + * + * @todo Should use a scale property with X and Y direction instead of just elementWidth + */ +function Heightfield(options){ + if(Array.isArray(arguments[0])){ + options = { + heights: arguments[0] + }; + + if(typeof(arguments[1]) === 'object'){ + for(var key in arguments[1]){ + options[key] = arguments[1][key]; + } + } + + console.warn('The Heightfield constructor signature has changed. Please use the following format: new Heightfield({ heights: [...], ... })'); + } + options = options || {}; + + /** + * An array of numbers, or height values, that are spread out along the x axis. + * @property {array} heights + */ + this.heights = options.heights ? options.heights.slice(0) : []; + + /** + * Max value of the heights + * @property {number} maxValue + */ + this.maxValue = options.maxValue || null; + + /** + * Max value of the heights + * @property {number} minValue + */ + this.minValue = options.minValue || null; + + /** + * The width of each element + * @property {number} elementWidth + */ + this.elementWidth = options.elementWidth || 0.1; + + if(options.maxValue === undefined || options.minValue === undefined){ + this.updateMaxMinValues(); + } + + options.type = Shape.HEIGHTFIELD; + Shape.call(this, options); +} +Heightfield.prototype = new Shape(); +Heightfield.prototype.constructor = Heightfield; + +/** + * Update the .minValue and the .maxValue + * @method updateMaxMinValues + */ +Heightfield.prototype.updateMaxMinValues = function(){ + var data = this.heights; + var maxValue = data[0]; + var minValue = data[0]; + for(var i=0; i !== data.length; i++){ + var v = data[i]; + if(v > maxValue){ + maxValue = v; + } + if(v < minValue){ + minValue = v; + } + } + this.maxValue = maxValue; + this.minValue = minValue; +}; + +/** + * @method computeMomentOfInertia + * @param {Number} mass + * @return {Number} + */ +Heightfield.prototype.computeMomentOfInertia = function(mass){ + return Number.MAX_VALUE; +}; + +Heightfield.prototype.updateBoundingRadius = function(){ + this.boundingRadius = Number.MAX_VALUE; +}; + +Heightfield.prototype.updateArea = function(){ + var data = this.heights, + area = 0; + for(var i=0; i= 0 && s <= 1 && t >= 0 && t <= 1) { // Collision detected + var intX = p0[0] + (t * s1_x); + var intY = p0[1] + (t * s1_y); + out[0] = intX; + out[1] = intY; + return t; + } + return -1; // No collision +} + +/** + * @method raycast + * @param {RayResult} result + * @param {Ray} ray + * @param {array} position + * @param {number} angle + */ +Heightfield.prototype.raycast = function(result, ray, position, angle){ + var from = ray.from; + var to = ray.to; + var direction = ray.direction; + + var hitPointWorld = intersectHeightfield_hitPointWorld; + var worldNormal = intersectHeightfield_worldNormal; + var l0 = intersectHeightfield_l0; + var l1 = intersectHeightfield_l1; + var localFrom = intersectHeightfield_localFrom; + var localTo = intersectHeightfield_localTo; + + // get local ray start and end + vec2.toLocalFrame(localFrom, from, position, angle); + vec2.toLocalFrame(localTo, to, position, angle); + + // Get the segment range + var i0 = this.getClampedSegmentIndex(localFrom); + var i1 = this.getClampedSegmentIndex(localTo); + if(i0 > i1){ + var tmp = i0; + i0 = i1; + i1 = tmp; + } + + // The segments + for(var i=0; i= 0){ + vec2.sub(worldNormal, l1, l0); + vec2.rotate(worldNormal, worldNormal, angle + Math.PI / 2); + vec2.normalize(worldNormal, worldNormal); + ray.reportIntersection(result, t, worldNormal, -1); + if(result.shouldStop(ray)){ + return; + } + } + } +}; +},{"../math/vec2":30,"../utils/Utils":57,"./Shape":45}],42:[function(_dereq_,module,exports){ +var Shape = _dereq_('./Shape') +, vec2 = _dereq_('../math/vec2'); + +module.exports = Line; + +/** + * Line shape class. The line shape is along the x direction, and stretches from [-length/2, 0] to [length/2,0]. + * @class Line + * @param {object} [options] (Note that this options object will be passed on to the {{#crossLink "Shape"}}{{/crossLink}} constructor.) + * @param {Number} [options.length=1] The total length of the line + * @extends Shape + * @constructor + */ +function Line(options){ + if(typeof(arguments[0]) === 'number'){ + options = { + length: arguments[0] + }; + console.warn('The Line constructor signature has changed. Please use the following format: new Line({ length: 1, ... })'); + } + options = options || {}; + + /** + * Length of this line + * @property {Number} length + * @default 1 + */ + this.length = options.length || 1; + + options.type = Shape.LINE; + Shape.call(this, options); +} +Line.prototype = new Shape(); +Line.prototype.constructor = Line; + +Line.prototype.computeMomentOfInertia = function(mass){ + return mass * Math.pow(this.length,2) / 12; +}; + +Line.prototype.updateBoundingRadius = function(){ + this.boundingRadius = this.length/2; +}; + +var points = [vec2.create(),vec2.create()]; + +/** + * @method computeAABB + * @param {AABB} out The resulting AABB. + * @param {Array} position + * @param {Number} angle + */ +Line.prototype.computeAABB = function(out, position, angle){ + var l2 = this.length / 2; + vec2.set(points[0], -l2, 0); + vec2.set(points[1], l2, 0); + out.setFromPoints(points,position,angle,0); +}; + +var raycast_hitPoint = vec2.create(); +var raycast_normal = vec2.create(); +var raycast_l0 = vec2.create(); +var raycast_l1 = vec2.create(); +var raycast_unit_y = vec2.fromValues(0,1); + +/** + * @method raycast + * @param {RaycastResult} result + * @param {Ray} ray + * @param {number} angle + * @param {array} position + */ +Line.prototype.raycast = function(result, ray, position, angle){ + var from = ray.from; + var to = ray.to; + + var l0 = raycast_l0; + var l1 = raycast_l1; + + // get start and end of the line + var halfLen = this.length / 2; + vec2.set(l0, -halfLen, 0); + vec2.set(l1, halfLen, 0); + vec2.toGlobalFrame(l0, l0, position, angle); + vec2.toGlobalFrame(l1, l1, position, angle); + + var fraction = vec2.getLineSegmentsIntersectionFraction(l0, l1, from, to); + if(fraction >= 0){ + var normal = raycast_normal; + vec2.rotate(normal, raycast_unit_y, angle); // todo: this should depend on which side the ray comes from + ray.reportIntersection(result, fraction, normal, -1); + } +}; +},{"../math/vec2":30,"./Shape":45}],43:[function(_dereq_,module,exports){ +var Shape = _dereq_('./Shape') +, vec2 = _dereq_('../math/vec2'); + +module.exports = Particle; + +/** + * Particle shape class. + * @class Particle + * @constructor + * @param {object} [options] (Note that this options object will be passed on to the {{#crossLink "Shape"}}{{/crossLink}} constructor.) + * @extends Shape + */ +function Particle(options){ + options = options || {}; + options.type = Shape.PARTICLE; + Shape.call(this, options); +} +Particle.prototype = new Shape(); +Particle.prototype.constructor = Particle; + +Particle.prototype.computeMomentOfInertia = function(mass){ + return 0; // Can't rotate a particle +}; + +Particle.prototype.updateBoundingRadius = function(){ + this.boundingRadius = 0; +}; + +/** + * @method computeAABB + * @param {AABB} out + * @param {Array} position + * @param {Number} angle + */ +Particle.prototype.computeAABB = function(out, position, angle){ + vec2.copy(out.lowerBound, position); + vec2.copy(out.upperBound, position); +}; + +},{"../math/vec2":30,"./Shape":45}],44:[function(_dereq_,module,exports){ +var Shape = _dereq_('./Shape') +, vec2 = _dereq_('../math/vec2') +, Utils = _dereq_('../utils/Utils'); + +module.exports = Plane; + +/** + * Plane shape class. The plane is facing in the Y direction. + * @class Plane + * @extends Shape + * @constructor + * @param {object} [options] (Note that this options object will be passed on to the {{#crossLink "Shape"}}{{/crossLink}} constructor.) + */ +function Plane(options){ + options = options || {}; + options.type = Shape.PLANE; + Shape.call(this, options); +} +Plane.prototype = new Shape(); +Plane.prototype.constructor = Plane; + +/** + * Compute moment of inertia + * @method computeMomentOfInertia + */ +Plane.prototype.computeMomentOfInertia = function(mass){ + return 0; // Plane is infinite. The inertia should therefore be infinty but by convention we set 0 here +}; + +/** + * Update the bounding radius + * @method updateBoundingRadius + */ +Plane.prototype.updateBoundingRadius = function(){ + this.boundingRadius = Number.MAX_VALUE; +}; + +/** + * @method computeAABB + * @param {AABB} out + * @param {Array} position + * @param {Number} angle + */ +Plane.prototype.computeAABB = function(out, position, angle){ + var a = angle % (2 * Math.PI); + var set = vec2.set; + var max = Number.MAX_VALUE; + var lowerBound = out.lowerBound; + var upperBound = out.upperBound; + + if(a === 0){ + // y goes from -inf to 0 + set(lowerBound, -max, -max); + set(upperBound, max, 0); + + } else if(a === Math.PI / 2){ + + // x goes from 0 to inf + set(lowerBound, 0, -max); + set(upperBound, max, max); + + } else if(a === Math.PI){ + + // y goes from 0 to inf + set(lowerBound, -max, 0); + set(upperBound, max, max); + + } else if(a === 3*Math.PI/2){ + + // x goes from -inf to 0 + set(lowerBound, -max, -max); + set(upperBound, 0, max); + + } else { + + // Set max bounds + set(lowerBound, -max, -max); + set(upperBound, max, max); + } + + vec2.add(lowerBound, lowerBound, position); + vec2.add(upperBound, upperBound, position); +}; + +Plane.prototype.updateArea = function(){ + this.area = Number.MAX_VALUE; +}; + +var intersectPlane_planePointToFrom = vec2.create(); +var intersectPlane_dir_scaled_with_t = vec2.create(); +var intersectPlane_hitPoint = vec2.create(); +var intersectPlane_normal = vec2.create(); +var intersectPlane_len = vec2.create(); + +/** + * @method raycast + * @param {RayResult} result + * @param {Ray} ray + * @param {array} position + * @param {number} angle + */ +Plane.prototype.raycast = function(result, ray, position, angle){ + var from = ray.from; + var to = ray.to; + var direction = ray.direction; + var planePointToFrom = intersectPlane_planePointToFrom; + var dir_scaled_with_t = intersectPlane_dir_scaled_with_t; + var hitPoint = intersectPlane_hitPoint; + var normal = intersectPlane_normal; + var len = intersectPlane_len; + + // Get plane normal + vec2.set(normal, 0, 1); + vec2.rotate(normal, normal, angle); + + vec2.sub(len, from, position); + var planeToFrom = vec2.dot(len, normal); + vec2.sub(len, to, position); + var planeToTo = vec2.dot(len, normal); + + if(planeToFrom * planeToTo > 0){ + // "from" and "to" are on the same side of the plane... bail out + return; + } + + if(vec2.squaredDistance(from, to) < planeToFrom * planeToFrom){ + return; + } + + var n_dot_dir = vec2.dot(normal, direction); + + vec2.sub(planePointToFrom, from, position); + var t = -vec2.dot(normal, planePointToFrom) / n_dot_dir / ray.length; + + ray.reportIntersection(result, t, normal, -1); +}; +},{"../math/vec2":30,"../utils/Utils":57,"./Shape":45}],45:[function(_dereq_,module,exports){ +module.exports = Shape; + +var vec2 = _dereq_('../math/vec2'); + +/** + * Base class for shapes. + * @class Shape + * @constructor + * @param {object} [options] + * @param {array} [options.position] + * @param {number} [options.angle=0] + * @param {number} [options.collisionGroup=1] + * @param {number} [options.collisionMask=1] + * @param {boolean} [options.sensor=false] + * @param {boolean} [options.collisionResponse=true] + * @param {object} [options.type=0] + */ +function Shape(options){ + options = options || {}; + + /** + * The body this shape is attached to. A shape can only be attached to a single body. + * @property {Body} body + */ + this.body = null; + + /** + * Body-local position of the shape. + * @property {Array} position + */ + this.position = vec2.fromValues(0,0); + if(options.position){ + vec2.copy(this.position, options.position); + } + + /** + * Body-local angle of the shape. + * @property {number} angle + */ + this.angle = options.angle || 0; + + /** + * The type of the shape. One of: + * + * * {{#crossLink "Shape/CIRCLE:property"}}Shape.CIRCLE{{/crossLink}} + * * {{#crossLink "Shape/PARTICLE:property"}}Shape.PARTICLE{{/crossLink}} + * * {{#crossLink "Shape/PLANE:property"}}Shape.PLANE{{/crossLink}} + * * {{#crossLink "Shape/CONVEX:property"}}Shape.CONVEX{{/crossLink}} + * * {{#crossLink "Shape/LINE:property"}}Shape.LINE{{/crossLink}} + * * {{#crossLink "Shape/BOX:property"}}Shape.BOX{{/crossLink}} + * * {{#crossLink "Shape/CAPSULE:property"}}Shape.CAPSULE{{/crossLink}} + * * {{#crossLink "Shape/HEIGHTFIELD:property"}}Shape.HEIGHTFIELD{{/crossLink}} + * + * @property {number} type + */ + this.type = options.type || 0; + + /** + * Shape object identifier. + * @type {Number} + * @property id + */ + this.id = Shape.idCounter++; + + /** + * Bounding circle radius of this shape + * @property boundingRadius + * @type {Number} + */ + this.boundingRadius = 0; + + /** + * Collision group that this shape belongs to (bit mask). See this tutorial. + * @property collisionGroup + * @type {Number} + * @example + * // Setup bits for each available group + * var PLAYER = Math.pow(2,0), + * ENEMY = Math.pow(2,1), + * GROUND = Math.pow(2,2) + * + * // Put shapes into their groups + * player1Shape.collisionGroup = PLAYER; + * player2Shape.collisionGroup = PLAYER; + * enemyShape .collisionGroup = ENEMY; + * groundShape .collisionGroup = GROUND; + * + * // Assign groups that each shape collide with. + * // Note that the players can collide with ground and enemies, but not with other players. + * player1Shape.collisionMask = ENEMY | GROUND; + * player2Shape.collisionMask = ENEMY | GROUND; + * enemyShape .collisionMask = PLAYER | GROUND; + * groundShape .collisionMask = PLAYER | ENEMY; + * + * @example + * // How collision check is done + * if(shapeA.collisionGroup & shapeB.collisionMask)!=0 && (shapeB.collisionGroup & shapeA.collisionMask)!=0){ + * // The shapes will collide + * } + */ + this.collisionGroup = options.collisionGroup !== undefined ? options.collisionGroup : 1; + + /** + * Whether to produce contact forces when in contact with other bodies. Note that contacts will be generated, but they will be disabled. That means that this shape will move through other body shapes, but it will still trigger contact events, etc. + * @property {Boolean} collisionResponse + */ + this.collisionResponse = options.collisionResponse !== undefined ? options.collisionResponse : true; + + /** + * Collision mask of this shape. See .collisionGroup. + * @property collisionMask + * @type {Number} + */ + this.collisionMask = options.collisionMask !== undefined ? options.collisionMask : 1; + + /** + * Material to use in collisions for this Shape. If this is set to null, the world will use default material properties instead. + * @property material + * @type {Material} + */ + this.material = options.material || null; + + /** + * Area of this shape. + * @property area + * @type {Number} + */ + this.area = 0; + + /** + * Set to true if you want this shape to be a sensor. A sensor does not generate contacts, but it still reports contact events. This is good if you want to know if a shape is overlapping another shape, without them generating contacts. + * @property {Boolean} sensor + */ + this.sensor = options.sensor !== undefined ? options.sensor : false; + + if(this.type){ + this.updateBoundingRadius(); + } + + this.updateArea(); +} + +Shape.idCounter = 0; + +/** + * @static + * @property {Number} CIRCLE + */ +Shape.CIRCLE = 1; + +/** + * @static + * @property {Number} PARTICLE + */ +Shape.PARTICLE = 2; + +/** + * @static + * @property {Number} PLANE + */ +Shape.PLANE = 4; + +/** + * @static + * @property {Number} CONVEX + */ +Shape.CONVEX = 8; + +/** + * @static + * @property {Number} LINE + */ +Shape.LINE = 16; + +/** + * @static + * @property {Number} BOX + */ +Shape.BOX = 32; + +Object.defineProperty(Shape, 'RECTANGLE', { + get: function() { + console.warn('Shape.RECTANGLE is deprecated, use Shape.BOX instead.'); + return Shape.BOX; + } +}); + +/** + * @static + * @property {Number} CAPSULE + */ +Shape.CAPSULE = 64; + +/** + * @static + * @property {Number} HEIGHTFIELD + */ +Shape.HEIGHTFIELD = 128; + +/** + * Should return the moment of inertia around the Z axis of the body given the total mass. See Wikipedia's list of moments of inertia. + * @method computeMomentOfInertia + * @param {Number} mass + * @return {Number} If the inertia is infinity or if the object simply isn't possible to rotate, return 0. + */ +Shape.prototype.computeMomentOfInertia = function(mass){}; + +/** + * Returns the bounding circle radius of this shape. + * @method updateBoundingRadius + * @return {Number} + */ +Shape.prototype.updateBoundingRadius = function(){}; + +/** + * Update the .area property of the shape. + * @method updateArea + */ +Shape.prototype.updateArea = function(){ + // To be implemented in all subclasses +}; + +/** + * Compute the world axis-aligned bounding box (AABB) of this shape. + * @method computeAABB + * @param {AABB} out The resulting AABB. + * @param {Array} position World position of the shape. + * @param {Number} angle World angle of the shape. + */ +Shape.prototype.computeAABB = function(out, position, angle){ + // To be implemented in each subclass +}; + +/** + * Perform raycasting on this shape. + * @method raycast + * @param {RayResult} result Where to store the resulting data. + * @param {Ray} ray The Ray that you want to use for raycasting. + * @param {array} position World position of the shape (the .position property will be ignored). + * @param {number} angle World angle of the shape (the .angle property will be ignored). + */ +Shape.prototype.raycast = function(result, ray, position, angle){ + // To be implemented in each subclass +}; +},{"../math/vec2":30}],46:[function(_dereq_,module,exports){ +var vec2 = _dereq_('../math/vec2') +, Solver = _dereq_('./Solver') +, Utils = _dereq_('../utils/Utils') +, FrictionEquation = _dereq_('../equations/FrictionEquation'); + +module.exports = GSSolver; + +/** + * Iterative Gauss-Seidel constraint equation solver. + * + * @class GSSolver + * @constructor + * @extends Solver + * @param {Object} [options] + * @param {Number} [options.iterations=10] + * @param {Number} [options.tolerance=0] + */ +function GSSolver(options){ + Solver.call(this,options,Solver.GS); + options = options || {}; + + /** + * The max number of iterations to do when solving. More gives better results, but is more expensive. + * @property iterations + * @type {Number} + */ + this.iterations = options.iterations || 10; + + /** + * The error tolerance, per constraint. If the total error is below this limit, the solver will stop iterating. Set to zero for as good solution as possible, but to something larger than zero to make computations faster. + * @property tolerance + * @type {Number} + * @default 1e-7 + */ + this.tolerance = options.tolerance || 1e-7; + + this.arrayStep = 30; + this.lambda = new Utils.ARRAY_TYPE(this.arrayStep); + this.Bs = new Utils.ARRAY_TYPE(this.arrayStep); + this.invCs = new Utils.ARRAY_TYPE(this.arrayStep); + + /** + * Set to true to set all right hand side terms to zero when solving. Can be handy for a few applications. + * @property useZeroRHS + * @type {Boolean} + */ + this.useZeroRHS = false; + + /** + * Number of solver iterations that are done to approximate normal forces. When these iterations are done, friction force will be computed from the contact normal forces. These friction forces will override any other friction forces set from the World for example. + * The solver will use less iterations if the solution is below the .tolerance. + * @property frictionIterations + * @type {Number} + */ + this.frictionIterations = 0; + + /** + * The number of iterations that were made during the last solve. If .tolerance is zero, this value will always be equal to .iterations, but if .tolerance is larger than zero, and the solver can quit early, then this number will be somewhere between 1 and .iterations. + * @property {Number} usedIterations + */ + this.usedIterations = 0; +} +GSSolver.prototype = new Solver(); +GSSolver.prototype.constructor = GSSolver; + +function setArrayZero(array){ + var l = array.length; + while(l--){ + array[l] = +0.0; + } +} + +/** + * Solve the system of equations + * @method solve + * @param {Number} h Time step + * @param {World} world World to solve + */ +GSSolver.prototype.solve = function(h, world){ + + this.sortEquations(); + + var iter = 0, + maxIter = this.iterations, + maxFrictionIter = this.frictionIterations, + equations = this.equations, + Neq = equations.length, + tolSquared = Math.pow(this.tolerance*Neq, 2), + bodies = world.bodies, + Nbodies = world.bodies.length, + add = vec2.add, + set = vec2.set, + useZeroRHS = this.useZeroRHS, + lambda = this.lambda; + + this.usedIterations = 0; + + if(Neq){ + for(var i=0; i!==Nbodies; i++){ + var b = bodies[i]; + + // Update solve mass + b.updateSolveMassProperties(); + } + } + + // Things that does not change during iteration can be computed once + if(lambda.length < Neq){ + lambda = this.lambda = new Utils.ARRAY_TYPE(Neq + this.arrayStep); + this.Bs = new Utils.ARRAY_TYPE(Neq + this.arrayStep); + this.invCs = new Utils.ARRAY_TYPE(Neq + this.arrayStep); + } + setArrayZero(lambda); + var invCs = this.invCs, + Bs = this.Bs, + lambda = this.lambda; + + for(var i=0; i!==equations.length; i++){ + var c = equations[i]; + if(c.timeStep !== h || c.needsUpdate){ + c.timeStep = h; + c.update(); + } + Bs[i] = c.computeB(c.a,c.b,h); + invCs[i] = c.computeInvC(c.epsilon); + } + + var q, B, c, deltalambdaTot,i,j; + + if(Neq !== 0){ + + for(i=0; i!==Nbodies; i++){ + var b = bodies[i]; + + // Reset vlambda + b.resetConstraintVelocity(); + } + + if(maxFrictionIter){ + // Iterate over contact equations to get normal forces + for(iter=0; iter!==maxFrictionIter; iter++){ + + // Accumulate the total error for each iteration. + deltalambdaTot = 0.0; + + for(j=0; j!==Neq; j++){ + c = equations[j]; + + var deltalambda = GSSolver.iterateEquation(j,c,c.epsilon,Bs,invCs,lambda,useZeroRHS,h,iter); + deltalambdaTot += Math.abs(deltalambda); + } + + this.usedIterations++; + + // If the total error is small enough - stop iterate + if(deltalambdaTot*deltalambdaTot <= tolSquared){ + break; + } + } + + GSSolver.updateMultipliers(equations, lambda, 1/h); + + // Set computed friction force + for(j=0; j!==Neq; j++){ + var eq = equations[j]; + if(eq instanceof FrictionEquation){ + var f = 0.0; + for(var k=0; k!==eq.contactEquations.length; k++){ + f += eq.contactEquations[k].multiplier; + } + f *= eq.frictionCoefficient / eq.contactEquations.length; + eq.maxForce = f; + eq.minForce = -f; + } + } + } + + // Iterate over all equations + for(iter=0; iter!==maxIter; iter++){ + + // Accumulate the total error for each iteration. + deltalambdaTot = 0.0; + + for(j=0; j!==Neq; j++){ + c = equations[j]; + + var deltalambda = GSSolver.iterateEquation(j,c,c.epsilon,Bs,invCs,lambda,useZeroRHS,h,iter); + deltalambdaTot += Math.abs(deltalambda); + } + + this.usedIterations++; + + // If the total error is small enough - stop iterate + if(deltalambdaTot*deltalambdaTot <= tolSquared){ + break; + } + } + + // Add result to velocity + for(i=0; i!==Nbodies; i++){ + bodies[i].addConstraintVelocity(); + } + + GSSolver.updateMultipliers(equations, lambda, 1/h); + } +}; + +// Sets the .multiplier property of each equation +GSSolver.updateMultipliers = function(equations, lambda, invDt){ + // Set the .multiplier property of each equation + var l = equations.length; + while(l--){ + equations[l].multiplier = lambda[l] * invDt; + } +}; + +GSSolver.iterateEquation = function(j,eq,eps,Bs,invCs,lambda,useZeroRHS,dt,iter){ + // Compute iteration + var B = Bs[j], + invC = invCs[j], + lambdaj = lambda[j], + GWlambda = eq.computeGWlambda(); + + var maxForce = eq.maxForce, + minForce = eq.minForce; + + if(useZeroRHS){ + B = 0; + } + + var deltalambda = invC * ( B - GWlambda - eps * lambdaj ); + + // Clamp if we are not within the min/max interval + var lambdaj_plus_deltalambda = lambdaj + deltalambda; + if(lambdaj_plus_deltalambda < minForce*dt){ + deltalambda = minForce*dt - lambdaj; + } else if(lambdaj_plus_deltalambda > maxForce*dt){ + deltalambda = maxForce*dt - lambdaj; + } + lambda[j] += deltalambda; + eq.addToWlambda(deltalambda); + + return deltalambda; +}; + +},{"../equations/FrictionEquation":23,"../math/vec2":30,"../utils/Utils":57,"./Solver":47}],47:[function(_dereq_,module,exports){ +var Utils = _dereq_('../utils/Utils') +, EventEmitter = _dereq_('../events/EventEmitter'); + +module.exports = Solver; + +/** + * Base class for constraint solvers. + * @class Solver + * @constructor + * @extends EventEmitter + */ +function Solver(options,type){ + options = options || {}; + + EventEmitter.call(this); + + this.type = type; + + /** + * Current equations in the solver. + * + * @property equations + * @type {Array} + */ + this.equations = []; + + /** + * Function that is used to sort all equations before each solve. + * @property equationSortFunction + * @type {function|boolean} + */ + this.equationSortFunction = options.equationSortFunction || false; +} +Solver.prototype = new EventEmitter(); +Solver.prototype.constructor = Solver; + +/** + * Method to be implemented in each subclass + * @method solve + * @param {Number} dt + * @param {World} world + */ +Solver.prototype.solve = function(dt,world){ + throw new Error("Solver.solve should be implemented by subclasses!"); +}; + +var mockWorld = {bodies:[]}; + +/** + * Solves all constraints in an island. + * @method solveIsland + * @param {Number} dt + * @param {Island} island + */ +Solver.prototype.solveIsland = function(dt,island){ + + this.removeAllEquations(); + + if(island.equations.length){ + // Add equations to solver + this.addEquations(island.equations); + mockWorld.bodies.length = 0; + island.getBodies(mockWorld.bodies); + + // Solve + if(mockWorld.bodies.length){ + this.solve(dt,mockWorld); + } + } +}; + +/** + * Sort all equations using the .equationSortFunction. Should be called by subclasses before solving. + * @method sortEquations + */ +Solver.prototype.sortEquations = function(){ + if(this.equationSortFunction){ + this.equations.sort(this.equationSortFunction); + } +}; + +/** + * Add an equation to be solved. + * + * @method addEquation + * @param {Equation} eq + */ +Solver.prototype.addEquation = function(eq){ + if(eq.enabled){ + this.equations.push(eq); + } +}; + +/** + * Add equations. Same as .addEquation, but this time the argument is an array of Equations + * + * @method addEquations + * @param {Array} eqs + */ +Solver.prototype.addEquations = function(eqs){ + //Utils.appendArray(this.equations,eqs); + for(var i=0, N=eqs.length; i!==N; i++){ + var eq = eqs[i]; + if(eq.enabled){ + this.equations.push(eq); + } + } +}; + +/** + * Remove an equation. + * + * @method removeEquation + * @param {Equation} eq + */ +Solver.prototype.removeEquation = function(eq){ + var i = this.equations.indexOf(eq); + if(i !== -1){ + this.equations.splice(i,1); + } +}; + +/** + * Remove all currently added equations. + * + * @method removeAllEquations + */ +Solver.prototype.removeAllEquations = function(){ + this.equations.length=0; +}; + +Solver.GS = 1; +Solver.ISLAND = 2; + +},{"../events/EventEmitter":26,"../utils/Utils":57}],48:[function(_dereq_,module,exports){ +var ContactEquation = _dereq_('../equations/ContactEquation'); +var Pool = _dereq_('./Pool'); + +module.exports = ContactEquationPool; + +/** + * @class + */ +function ContactEquationPool() { + Pool.apply(this, arguments); +} +ContactEquationPool.prototype = new Pool(); +ContactEquationPool.prototype.constructor = ContactEquationPool; + +/** + * @method create + * @return {ContactEquation} + */ +ContactEquationPool.prototype.create = function () { + return new ContactEquation(); +}; + +/** + * @method destroy + * @param {ContactEquation} equation + * @return {ContactEquationPool} + */ +ContactEquationPool.prototype.destroy = function (equation) { + equation.bodyA = equation.bodyB = null; + return this; +}; + +},{"../equations/ContactEquation":21,"./Pool":55}],49:[function(_dereq_,module,exports){ +var FrictionEquation = _dereq_('../equations/FrictionEquation'); +var Pool = _dereq_('./Pool'); + +module.exports = FrictionEquationPool; + +/** + * @class + */ +function FrictionEquationPool() { + Pool.apply(this, arguments); +} +FrictionEquationPool.prototype = new Pool(); +FrictionEquationPool.prototype.constructor = FrictionEquationPool; + +/** + * @method create + * @return {FrictionEquation} + */ +FrictionEquationPool.prototype.create = function () { + return new FrictionEquation(); +}; + +/** + * @method destroy + * @param {FrictionEquation} equation + * @return {FrictionEquationPool} + */ +FrictionEquationPool.prototype.destroy = function (equation) { + equation.bodyA = equation.bodyB = null; + return this; +}; + +},{"../equations/FrictionEquation":23,"./Pool":55}],50:[function(_dereq_,module,exports){ +var IslandNode = _dereq_('../world/IslandNode'); +var Pool = _dereq_('./Pool'); + +module.exports = IslandNodePool; + +/** + * @class + */ +function IslandNodePool() { + Pool.apply(this, arguments); +} +IslandNodePool.prototype = new Pool(); +IslandNodePool.prototype.constructor = IslandNodePool; + +/** + * @method create + * @return {IslandNode} + */ +IslandNodePool.prototype.create = function () { + return new IslandNode(); +}; + +/** + * @method destroy + * @param {IslandNode} node + * @return {IslandNodePool} + */ +IslandNodePool.prototype.destroy = function (node) { + node.reset(); + return this; +}; + +},{"../world/IslandNode":60,"./Pool":55}],51:[function(_dereq_,module,exports){ +var Island = _dereq_('../world/Island'); +var Pool = _dereq_('./Pool'); + +module.exports = IslandPool; + +/** + * @class + */ +function IslandPool() { + Pool.apply(this, arguments); +} +IslandPool.prototype = new Pool(); +IslandPool.prototype.constructor = IslandPool; + +/** + * @method create + * @return {Island} + */ +IslandPool.prototype.create = function () { + return new Island(); +}; + +/** + * @method destroy + * @param {Island} island + * @return {IslandPool} + */ +IslandPool.prototype.destroy = function (island) { + island.reset(); + return this; +}; + +},{"../world/Island":58,"./Pool":55}],52:[function(_dereq_,module,exports){ +var TupleDictionary = _dereq_('./TupleDictionary'); +var OverlapKeeperRecord = _dereq_('./OverlapKeeperRecord'); +var OverlapKeeperRecordPool = _dereq_('./OverlapKeeperRecordPool'); +var Utils = _dereq_('./Utils'); + +module.exports = OverlapKeeper; + +/** + * Keeps track of overlaps in the current state and the last step state. + * @class OverlapKeeper + * @constructor + */ +function OverlapKeeper() { + this.overlappingShapesLastState = new TupleDictionary(); + this.overlappingShapesCurrentState = new TupleDictionary(); + this.recordPool = new OverlapKeeperRecordPool({ size: 16 }); + this.tmpDict = new TupleDictionary(); + this.tmpArray1 = []; +} + +/** + * Ticks one step forward in time. This will move the current overlap state to the "old" overlap state, and create a new one as current. + * @method tick + */ +OverlapKeeper.prototype.tick = function() { + var last = this.overlappingShapesLastState; + var current = this.overlappingShapesCurrentState; + + // Save old objects into pool + var l = last.keys.length; + while(l--){ + var key = last.keys[l]; + var lastObject = last.getByKey(key); + var currentObject = current.getByKey(key); + if(lastObject){ + // The record is only used in the "last" dict, and will be removed. We might as well pool it. + this.recordPool.release(lastObject); + } + } + + // Clear last object + last.reset(); + + // Transfer from new object to old + last.copy(current); + + // Clear current object + current.reset(); +}; + +/** + * @method setOverlapping + * @param {Body} bodyA + * @param {Body} shapeA + * @param {Body} bodyB + * @param {Body} shapeB + */ +OverlapKeeper.prototype.setOverlapping = function(bodyA, shapeA, bodyB, shapeB) { + var last = this.overlappingShapesLastState; + var current = this.overlappingShapesCurrentState; + + // Store current contact state + if(!current.get(shapeA.id, shapeB.id)){ + var data = this.recordPool.get(); + data.set(bodyA, shapeA, bodyB, shapeB); + current.set(shapeA.id, shapeB.id, data); + } +}; + +OverlapKeeper.prototype.getNewOverlaps = function(result){ + return this.getDiff(this.overlappingShapesLastState, this.overlappingShapesCurrentState, result); +}; + +OverlapKeeper.prototype.getEndOverlaps = function(result){ + return this.getDiff(this.overlappingShapesCurrentState, this.overlappingShapesLastState, result); +}; + +/** + * Checks if two bodies are currently overlapping. + * @method bodiesAreOverlapping + * @param {Body} bodyA + * @param {Body} bodyB + * @return {boolean} + */ +OverlapKeeper.prototype.bodiesAreOverlapping = function(bodyA, bodyB){ + var current = this.overlappingShapesCurrentState; + var l = current.keys.length; + while(l--){ + var key = current.keys[l]; + var data = current.data[key]; + if((data.bodyA === bodyA && data.bodyB === bodyB) || data.bodyA === bodyB && data.bodyB === bodyA){ + return true; + } + } + return false; +}; + +OverlapKeeper.prototype.getDiff = function(dictA, dictB, result){ + var result = result || []; + var last = dictA; + var current = dictB; + + result.length = 0; + + var l = current.keys.length; + while(l--){ + var key = current.keys[l]; + var data = current.data[key]; + + if(!data){ + throw new Error('Key '+key+' had no data!'); + } + + var lastData = last.data[key]; + if(!lastData){ + // Not overlapping in last state, but in current. + result.push(data); + } + } + + return result; +}; + +OverlapKeeper.prototype.isNewOverlap = function(shapeA, shapeB){ + var idA = shapeA.id|0, + idB = shapeB.id|0; + var last = this.overlappingShapesLastState; + var current = this.overlappingShapesCurrentState; + // Not in last but in new + return !!!last.get(idA, idB) && !!current.get(idA, idB); +}; + +OverlapKeeper.prototype.getNewBodyOverlaps = function(result){ + this.tmpArray1.length = 0; + var overlaps = this.getNewOverlaps(this.tmpArray1); + return this.getBodyDiff(overlaps, result); +}; + +OverlapKeeper.prototype.getEndBodyOverlaps = function(result){ + this.tmpArray1.length = 0; + var overlaps = this.getEndOverlaps(this.tmpArray1); + return this.getBodyDiff(overlaps, result); +}; + +OverlapKeeper.prototype.getBodyDiff = function(overlaps, result){ + result = result || []; + var accumulator = this.tmpDict; + + var l = overlaps.length; + + while(l--){ + var data = overlaps[l]; + + // Since we use body id's for the accumulator, these will be a subset of the original one + accumulator.set(data.bodyA.id|0, data.bodyB.id|0, data); + } + + l = accumulator.keys.length; + while(l--){ + var data = accumulator.getByKey(accumulator.keys[l]); + if(data){ + result.push(data.bodyA, data.bodyB); + } + } + + accumulator.reset(); + + return result; +}; + +},{"./OverlapKeeperRecord":53,"./OverlapKeeperRecordPool":54,"./TupleDictionary":56,"./Utils":57}],53:[function(_dereq_,module,exports){ +module.exports = OverlapKeeperRecord; + +/** + * Overlap data container for the OverlapKeeper + * @class OverlapKeeperRecord + * @constructor + * @param {Body} bodyA + * @param {Shape} shapeA + * @param {Body} bodyB + * @param {Shape} shapeB + */ +function OverlapKeeperRecord(bodyA, shapeA, bodyB, shapeB){ + /** + * @property {Shape} shapeA + */ + this.shapeA = shapeA; + /** + * @property {Shape} shapeB + */ + this.shapeB = shapeB; + /** + * @property {Body} bodyA + */ + this.bodyA = bodyA; + /** + * @property {Body} bodyB + */ + this.bodyB = bodyB; +} + +/** + * Set the data for the record + * @method set + * @param {Body} bodyA + * @param {Shape} shapeA + * @param {Body} bodyB + * @param {Shape} shapeB + */ +OverlapKeeperRecord.prototype.set = function(bodyA, shapeA, bodyB, shapeB){ + OverlapKeeperRecord.call(this, bodyA, shapeA, bodyB, shapeB); +}; + +},{}],54:[function(_dereq_,module,exports){ +var OverlapKeeperRecord = _dereq_('./OverlapKeeperRecord'); +var Pool = _dereq_('./Pool'); + +module.exports = OverlapKeeperRecordPool; + +/** + * @class + */ +function OverlapKeeperRecordPool() { + Pool.apply(this, arguments); +} +OverlapKeeperRecordPool.prototype = new Pool(); +OverlapKeeperRecordPool.prototype.constructor = OverlapKeeperRecordPool; + +/** + * @method create + * @return {OverlapKeeperRecord} + */ +OverlapKeeperRecordPool.prototype.create = function () { + return new OverlapKeeperRecord(); +}; + +/** + * @method destroy + * @param {OverlapKeeperRecord} record + * @return {OverlapKeeperRecordPool} + */ +OverlapKeeperRecordPool.prototype.destroy = function (record) { + record.bodyA = record.bodyB = record.shapeA = record.shapeB = null; + return this; +}; + +},{"./OverlapKeeperRecord":53,"./Pool":55}],55:[function(_dereq_,module,exports){ +module.exports = Pool; + +/** + * @class Object pooling utility. + */ +function Pool(options) { + options = options || {}; + + /** + * @property {Array} objects + * @type {Array} + */ + this.objects = []; + + if(options.size !== undefined){ + this.resize(options.size); + } +} + +/** + * @method resize + * @param {number} size + * @return {Pool} Self, for chaining + */ +Pool.prototype.resize = function (size) { + var objects = this.objects; + + while (objects.length > size) { + objects.pop(); + } + + while (objects.length < size) { + objects.push(this.create()); + } + + return this; +}; + +/** + * Get an object from the pool or create a new instance. + * @method get + * @return {Object} + */ +Pool.prototype.get = function () { + var objects = this.objects; + return objects.length ? objects.pop() : this.create(); +}; + +/** + * Clean up and put the object back into the pool for later use. + * @method release + * @param {Object} object + * @return {Pool} Self for chaining + */ +Pool.prototype.release = function (object) { + this.destroy(object); + this.objects.push(object); + return this; +}; + +},{}],56:[function(_dereq_,module,exports){ +var Utils = _dereq_('./Utils'); + +module.exports = TupleDictionary; + +/** + * @class TupleDictionary + * @constructor + */ +function TupleDictionary() { + + /** + * The data storage + * @property data + * @type {Object} + */ + this.data = {}; + + /** + * Keys that are currently used. + * @property {Array} keys + */ + this.keys = []; +} + +/** + * Generate a key given two integers + * @method getKey + * @param {number} i + * @param {number} j + * @return {string} + */ +TupleDictionary.prototype.getKey = function(id1, id2) { + id1 = id1|0; + id2 = id2|0; + + if ( (id1|0) === (id2|0) ){ + return -1; + } + + // valid for values < 2^16 + return ((id1|0) > (id2|0) ? + (id1 << 16) | (id2 & 0xFFFF) : + (id2 << 16) | (id1 & 0xFFFF))|0 + ; +}; + +/** + * @method getByKey + * @param {Number} key + * @return {Object} + */ +TupleDictionary.prototype.getByKey = function(key) { + key = key|0; + return this.data[key]; +}; + +/** + * @method get + * @param {Number} i + * @param {Number} j + * @return {Number} + */ +TupleDictionary.prototype.get = function(i, j) { + return this.data[this.getKey(i, j)]; +}; + +/** + * Set a value. + * @method set + * @param {Number} i + * @param {Number} j + * @param {Number} value + */ +TupleDictionary.prototype.set = function(i, j, value) { + if(!value){ + throw new Error("No data!"); + } + + var key = this.getKey(i, j); + + // Check if key already exists + if(!this.data[key]){ + this.keys.push(key); + } + + this.data[key] = value; + + return key; +}; + +/** + * Remove all data. + * @method reset + */ +TupleDictionary.prototype.reset = function() { + var data = this.data, + keys = this.keys; + + var l = keys.length; + while(l--) { + delete data[keys[l]]; + } + + keys.length = 0; +}; + +/** + * Copy another TupleDictionary. Note that all data in this dictionary will be removed. + * @method copy + * @param {TupleDictionary} dict The TupleDictionary to copy into this one. + */ +TupleDictionary.prototype.copy = function(dict) { + this.reset(); + Utils.appendArray(this.keys, dict.keys); + var l = dict.keys.length; + while(l--){ + var key = dict.keys[l]; + this.data[key] = dict.data[key]; + } +}; + +},{"./Utils":57}],57:[function(_dereq_,module,exports){ +/* global P2_ARRAY_TYPE */ + +module.exports = Utils; + +/** + * Misc utility functions + * @class Utils + * @constructor + */ +function Utils(){} + +/** + * Append the values in array b to the array a. See this for an explanation. + * @method appendArray + * @static + * @param {Array} a + * @param {Array} b + */ +Utils.appendArray = function(a,b){ + if (b.length < 150000) { + a.push.apply(a, b); + } else { + for (var i = 0, len = b.length; i !== len; ++i) { + a.push(b[i]); + } + } +}; + +/** + * Garbage free Array.splice(). Does not allocate a new array. + * @method splice + * @static + * @param {Array} array + * @param {Number} index + * @param {Number} howmany + */ +Utils.splice = function(array,index,howmany){ + howmany = howmany || 1; + for (var i=index, len=array.length-howmany; i < len; i++){ + array[i] = array[i + howmany]; + } + array.length = len; +}; + +/** + * The array type to use for internal numeric computations throughout the library. Float32Array is used if it is available, but falls back on Array. If you want to set array type manually, inject it via the global variable P2_ARRAY_TYPE. See example below. + * @static + * @property {function} ARRAY_TYPE + * @example + * + * + */ +if(typeof P2_ARRAY_TYPE !== 'undefined') { + Utils.ARRAY_TYPE = P2_ARRAY_TYPE; +} else if (typeof Float32Array !== 'undefined'){ + Utils.ARRAY_TYPE = Float32Array; +} else { + Utils.ARRAY_TYPE = Array; +} + +/** + * Extend an object with the properties of another + * @static + * @method extend + * @param {object} a + * @param {object} b + */ +Utils.extend = function(a,b){ + for(var key in b){ + a[key] = b[key]; + } +}; + +/** + * Extend an options object with default values. + * @static + * @method defaults + * @param {object} options The options object. May be falsy: in this case, a new object is created and returned. + * @param {object} defaults An object containing default values. + * @return {object} The modified options object. + */ +Utils.defaults = function(options, defaults){ + options = options || {}; + for(var key in defaults){ + if(!(key in options)){ + options[key] = defaults[key]; + } + } + return options; +}; + +},{}],58:[function(_dereq_,module,exports){ +var Body = _dereq_('../objects/Body'); + +module.exports = Island; + +/** + * An island of bodies connected with equations. + * @class Island + * @constructor + */ +function Island(){ + + /** + * Current equations in this island. + * @property equations + * @type {Array} + */ + this.equations = []; + + /** + * Current bodies in this island. + * @property bodies + * @type {Array} + */ + this.bodies = []; +} + +/** + * Clean this island from bodies and equations. + * @method reset + */ +Island.prototype.reset = function(){ + this.equations.length = this.bodies.length = 0; +}; + +var bodyIds = []; + +/** + * Get all unique bodies in this island. + * @method getBodies + * @return {Array} An array of Body + */ +Island.prototype.getBodies = function(result){ + var bodies = result || [], + eqs = this.equations; + bodyIds.length = 0; + for(var i=0; i!==eqs.length; i++){ + var eq = eqs[i]; + if(bodyIds.indexOf(eq.bodyA.id)===-1){ + bodies.push(eq.bodyA); + bodyIds.push(eq.bodyA.id); + } + if(bodyIds.indexOf(eq.bodyB.id)===-1){ + bodies.push(eq.bodyB); + bodyIds.push(eq.bodyB.id); + } + } + return bodies; +}; + +/** + * Check if the entire island wants to sleep. + * @method wantsToSleep + * @return {Boolean} + */ +Island.prototype.wantsToSleep = function(){ + for(var i=0; i= dt && substeps < maxSubSteps) { + // Do fixed steps to catch up + this.internalStep(dt); + this.time += dt; + this.accumulator -= dt; + substeps++; + } + + var t = (this.accumulator % dt) / dt; + for(var j=0; j!==this.bodies.length; j++){ + var b = this.bodies[j]; + vec2.lerp(b.interpolatedPosition, b.previousPosition, b.position, t); + b.interpolatedAngle = b.previousAngle + t * (b.angle - b.previousAngle); + } + } +}; + +var endOverlaps = []; + +/** + * Make a fixed step. + * @method internalStep + * @param {number} dt + * @private + */ +World.prototype.internalStep = function(dt){ + this.stepping = true; + + var that = this, + Nsprings = this.springs.length, + springs = this.springs, + bodies = this.bodies, + g = this.gravity, + solver = this.solver, + Nbodies = this.bodies.length, + broadphase = this.broadphase, + np = this.narrowphase, + constraints = this.constraints, + t0, t1, + fhMinv = step_fhMinv, + velodt = step_velodt, + mg = step_mg, + scale = vec2.scale, + add = vec2.add, + rotate = vec2.rotate, + islandManager = this.islandManager; + + this.overlapKeeper.tick(); + + this.lastTimeStep = dt; + + // Update approximate friction gravity. + if(this.useWorldGravityAsFrictionGravity){ + var gravityLen = vec2.length(this.gravity); + if(!(gravityLen === 0 && this.useFrictionGravityOnZeroGravity)){ + // Nonzero gravity. Use it. + this.frictionGravity = gravityLen; + } + } + + // Add gravity to bodies + if(this.applyGravity){ + for(var i=0; i!==Nbodies; i++){ + var b = bodies[i], + fi = b.force; + if(b.type !== Body.DYNAMIC || b.sleepState === Body.SLEEPING){ + continue; + } + vec2.scale(mg,g,b.mass*b.gravityScale); // F=m*g + add(fi,fi,mg); + } + } + + // Add spring forces + if(this.applySpringForces){ + for(var i=0; i!==Nsprings; i++){ + var s = springs[i]; + s.applyForce(); + } + } + + if(this.applyDamping){ + for(var i=0; i!==Nbodies; i++){ + var b = bodies[i]; + if(b.type === Body.DYNAMIC){ + b.applyDamping(dt); + } + } + } + + // Broadphase + var result = broadphase.getCollisionPairs(this); + + // Remove ignored collision pairs + var ignoredPairs = this.disabledBodyCollisionPairs; + for(var i=ignoredPairs.length-2; i>=0; i-=2){ + for(var j=result.length-2; j>=0; j-=2){ + if( (ignoredPairs[i] === result[j] && ignoredPairs[i+1] === result[j+1]) || + (ignoredPairs[i+1] === result[j] && ignoredPairs[i] === result[j+1])){ + result.splice(j,2); + } + } + } + + // Remove constrained pairs with collideConnected == false + var Nconstraints = constraints.length; + for(i=0; i!==Nconstraints; i++){ + var c = constraints[i]; + if(!c.collideConnected){ + for(var j=result.length-2; j>=0; j-=2){ + if( (c.bodyA === result[j] && c.bodyB === result[j+1]) || + (c.bodyB === result[j] && c.bodyA === result[j+1])){ + result.splice(j,2); + } + } + } + } + + // postBroadphase event + this.postBroadphaseEvent.pairs = result; + this.emit(this.postBroadphaseEvent); + this.postBroadphaseEvent.pairs = null; + + // Narrowphase + np.reset(this); + for(var i=0, Nresults=result.length; i!==Nresults; i+=2){ + var bi = result[i], + bj = result[i+1]; + + // Loop over all shapes of body i + for(var k=0, Nshapesi=bi.shapes.length; k!==Nshapesi; k++){ + var si = bi.shapes[k], + xi = si.position, + ai = si.angle; + + // All shapes of body j + for(var l=0, Nshapesj=bj.shapes.length; l!==Nshapesj; l++){ + var sj = bj.shapes[l], + xj = sj.position, + aj = sj.angle; + + var cm = this.defaultContactMaterial; + if(si.material && sj.material){ + var tmp = this.getContactMaterial(si.material,sj.material); + if(tmp){ + cm = tmp; + } + } + + this.runNarrowphase(np,bi,si,xi,ai,bj,sj,xj,aj,cm,this.frictionGravity); + } + } + } + + // Wake up bodies + for(var i=0; i!==Nbodies; i++){ + var body = bodies[i]; + if(body._wakeUpAfterNarrowphase){ + body.wakeUp(); + body._wakeUpAfterNarrowphase = false; + } + } + + // Emit end overlap events + if(this.has('endContact')){ + this.overlapKeeper.getEndOverlaps(endOverlaps); + var e = this.endContactEvent; + var l = endOverlaps.length; + while(l--){ + var data = endOverlaps[l]; + e.shapeA = data.shapeA; + e.shapeB = data.shapeB; + e.bodyA = data.bodyA; + e.bodyB = data.bodyB; + this.emit(e); + } + endOverlaps.length = 0; + } + + var preSolveEvent = this.preSolveEvent; + preSolveEvent.contactEquations = np.contactEquations; + preSolveEvent.frictionEquations = np.frictionEquations; + this.emit(preSolveEvent); + preSolveEvent.contactEquations = preSolveEvent.frictionEquations = null; + + // update constraint equations + var Nconstraints = constraints.length; + for(i=0; i!==Nconstraints; i++){ + constraints[i].update(); + } + + if(np.contactEquations.length || np.frictionEquations.length || Nconstraints){ + if(this.islandSplit){ + // Split into islands + islandManager.equations.length = 0; + Utils.appendArray(islandManager.equations, np.contactEquations); + Utils.appendArray(islandManager.equations, np.frictionEquations); + for(i=0; i!==Nconstraints; i++){ + Utils.appendArray(islandManager.equations, constraints[i].equations); + } + islandManager.split(this); + + for(var i=0; i!==islandManager.islands.length; i++){ + var island = islandManager.islands[i]; + if(island.equations.length){ + solver.solveIsland(dt,island); + } + } + + } else { + + // Add contact equations to solver + solver.addEquations(np.contactEquations); + solver.addEquations(np.frictionEquations); + + // Add user-defined constraint equations + for(i=0; i!==Nconstraints; i++){ + solver.addEquations(constraints[i].equations); + } + + if(this.solveConstraints){ + solver.solve(dt,this); + } + + solver.removeAllEquations(); + } + } + + // Step forward + for(var i=0; i!==Nbodies; i++){ + var body = bodies[i]; + + // if(body.sleepState !== Body.SLEEPING && body.type !== Body.STATIC){ + body.integrate(dt); + // } + } + + // Reset force + for(var i=0; i!==Nbodies; i++){ + bodies[i].setZeroForce(); + } + + // Emit impact event + if(this.emitImpactEvent && this.has('impact')){ + var ev = this.impactEvent; + for(var i=0; i!==np.contactEquations.length; i++){ + var eq = np.contactEquations[i]; + if(eq.firstImpact){ + ev.bodyA = eq.bodyA; + ev.bodyB = eq.bodyB; + ev.shapeA = eq.shapeA; + ev.shapeB = eq.shapeB; + ev.contactEquation = eq; + this.emit(ev); + } + } + } + + // Sleeping update + if(this.sleepMode === World.BODY_SLEEPING){ + for(i=0; i!==Nbodies; i++){ + bodies[i].sleepTick(this.time, false, dt); + } + } else if(this.sleepMode === World.ISLAND_SLEEPING && this.islandSplit){ + + // Tell all bodies to sleep tick but dont sleep yet + for(i=0; i!==Nbodies; i++){ + bodies[i].sleepTick(this.time, true, dt); + } + + // Sleep islands + for(var i=0; i 0; + np.frictionCoefficient = cm.friction; + var reducedMass; + if(bi.type === Body.STATIC || bi.type === Body.KINEMATIC){ + reducedMass = bj.mass; + } else if(bj.type === Body.STATIC || bj.type === Body.KINEMATIC){ + reducedMass = bi.mass; + } else { + reducedMass = (bi.mass*bj.mass)/(bi.mass+bj.mass); + } + np.slipForce = cm.friction*glen*reducedMass; + np.restitution = cm.restitution; + np.surfaceVelocity = cm.surfaceVelocity; + np.frictionStiffness = cm.frictionStiffness; + np.frictionRelaxation = cm.frictionRelaxation; + np.stiffness = cm.stiffness; + np.relaxation = cm.relaxation; + np.contactSkinSize = cm.contactSkinSize; + np.enabledEquations = bi.collisionResponse && bj.collisionResponse && si.collisionResponse && sj.collisionResponse; + + var resolver = np[si.type | sj.type], + numContacts = 0; + if (resolver) { + var sensor = si.sensor || sj.sensor; + var numFrictionBefore = np.frictionEquations.length; + if (si.type < sj.type) { + numContacts = resolver.call(np, bi,si,xiw,aiw, bj,sj,xjw,ajw, sensor); + } else { + numContacts = resolver.call(np, bj,sj,xjw,ajw, bi,si,xiw,aiw, sensor); + } + var numFrictionEquations = np.frictionEquations.length - numFrictionBefore; + + if(numContacts){ + + if( bi.allowSleep && + bi.type === Body.DYNAMIC && + bi.sleepState === Body.SLEEPING && + bj.sleepState === Body.AWAKE && + bj.type !== Body.STATIC + ){ + var speedSquaredB = vec2.squaredLength(bj.velocity) + Math.pow(bj.angularVelocity,2); + var speedLimitSquaredB = Math.pow(bj.sleepSpeedLimit,2); + if(speedSquaredB >= speedLimitSquaredB*2){ + bi._wakeUpAfterNarrowphase = true; + } + } + + if( bj.allowSleep && + bj.type === Body.DYNAMIC && + bj.sleepState === Body.SLEEPING && + bi.sleepState === Body.AWAKE && + bi.type !== Body.STATIC + ){ + var speedSquaredA = vec2.squaredLength(bi.velocity) + Math.pow(bi.angularVelocity,2); + var speedLimitSquaredA = Math.pow(bi.sleepSpeedLimit,2); + if(speedSquaredA >= speedLimitSquaredA*2){ + bj._wakeUpAfterNarrowphase = true; + } + } + + this.overlapKeeper.setOverlapping(bi, si, bj, sj); + if(this.has('beginContact') && this.overlapKeeper.isNewOverlap(si, sj)){ + + // Report new shape overlap + var e = this.beginContactEvent; + e.shapeA = si; + e.shapeB = sj; + e.bodyA = bi; + e.bodyB = bj; + + // Reset contact equations + e.contactEquations.length = 0; + + if(typeof(numContacts)==="number"){ + for(var i=np.contactEquations.length-numContacts; i 1){ // Why divide by 1? + for(var i=np.frictionEquations.length-numFrictionEquations; i=0; i--){ + this.removeConstraint(cs[i]); + } + + // Remove all bodies + var bodies = this.bodies; + for(var i=bodies.length-1; i>=0; i--){ + this.removeBody(bodies[i]); + } + + // Remove all springs + var springs = this.springs; + for(var i=springs.length-1; i>=0; i--){ + this.removeSpring(springs[i]); + } + + // Remove all contact materials + var cms = this.contactMaterials; + for(var i=cms.length-1; i>=0; i--){ + this.removeContactMaterial(cms[i]); + } + + World.apply(this); +}; + +var hitTest_tmp1 = vec2.create(), + hitTest_zero = vec2.fromValues(0,0), + hitTest_tmp2 = vec2.fromValues(0,0); + +/** + * Test if a world point overlaps bodies + * @method hitTest + * @param {Array} worldPoint Point to use for intersection tests + * @param {Array} bodies A list of objects to check for intersection + * @param {Number} precision Used for matching against particles and lines. Adds some margin to these infinitesimal objects. + * @return {Array} Array of bodies that overlap the point + * @todo Should use an api similar to the raycast function + * @todo Should probably implement a .containsPoint method for all shapes. Would be more efficient + */ +World.prototype.hitTest = function(worldPoint,bodies,precision){ + precision = precision || 0; + + // Create a dummy particle body with a particle shape to test against the bodies + var pb = new Body({ position:worldPoint }), + ps = new Particle(), + px = worldPoint, + pa = 0, + x = hitTest_tmp1, + zero = hitTest_zero, + tmp = hitTest_tmp2; + pb.addShape(ps); + + var n = this.narrowphase, + result = []; + + // Check bodies + for(var i=0, N=bodies.length; i!==N; i++){ + var b = bodies[i]; + + for(var j=0, NS=b.shapes.length; j!==NS; j++){ + var s = b.shapes[j]; + + // Get shape world position + angle + vec2.rotate(x, s.position, b.angle); + vec2.add(x, x, b.position); + var a = s.angle + b.angle; + + if( (s instanceof Circle && n.circleParticle (b,s,x,a, pb,ps,px,pa, true)) || + (s instanceof Convex && n.particleConvex (pb,ps,px,pa, b,s,x,a, true)) || + (s instanceof Plane && n.particlePlane (pb,ps,px,pa, b,s,x,a, true)) || + (s instanceof Capsule && n.particleCapsule (pb,ps,px,pa, b,s,x,a, true)) || + (s instanceof Particle && vec2.squaredLength(vec2.sub(tmp,x,worldPoint)) < precision*precision) + ){ + result.push(b); + } + } + } + + return result; +}; + +/** + * Set the stiffness for all equations and contact materials. + * @method setGlobalStiffness + * @param {Number} stiffness + */ +World.prototype.setGlobalStiffness = function(stiffness){ + + // Set for all constraints + var constraints = this.constraints; + for(var i=0; i !== constraints.length; i++){ + var c = constraints[i]; + for(var j=0; j !== c.equations.length; j++){ + var eq = c.equations[j]; + eq.stiffness = stiffness; + eq.needsUpdate = true; + } + } + + // Set for all contact materials + var contactMaterials = this.contactMaterials; + for(var i=0; i !== contactMaterials.length; i++){ + var c = contactMaterials[i]; + c.stiffness = c.frictionStiffness = stiffness; + } + + // Set for default contact material + var c = this.defaultContactMaterial; + c.stiffness = c.frictionStiffness = stiffness; +}; + +/** + * Set the relaxation for all equations and contact materials. + * @method setGlobalRelaxation + * @param {Number} relaxation + */ +World.prototype.setGlobalRelaxation = function(relaxation){ + + // Set for all constraints + for(var i=0; i !== this.constraints.length; i++){ + var c = this.constraints[i]; + for(var j=0; j !== c.equations.length; j++){ + var eq = c.equations[j]; + eq.relaxation = relaxation; + eq.needsUpdate = true; + } + } + + // Set for all contact materials + for(var i=0; i !== this.contactMaterials.length; i++){ + var c = this.contactMaterials[i]; + c.relaxation = c.frictionRelaxation = relaxation; + } + + // Set for default contact material + var c = this.defaultContactMaterial; + c.relaxation = c.frictionRelaxation = relaxation; +}; + +var tmpAABB = new AABB(); +var tmpArray = []; + +/** + * Ray cast against all bodies in the world. + * @method raycast + * @param {RaycastResult} result + * @param {Ray} ray + * @return {boolean} True if any body was hit. + * + * @example + * var ray = new Ray({ + * mode: Ray.CLOSEST, // or ANY + * from: [0, 0], + * to: [10, 0], + * }); + * var result = new RaycastResult(); + * world.raycast(result, ray); + * + * // Get the hit point + * var hitPoint = vec2.create(); + * result.getHitPoint(hitPoint, ray); + * console.log('Hit point: ', hitPoint[0], hitPoint[1], ' at distance ' + result.getHitDistance(ray)); + * + * @example + * var ray = new Ray({ + * mode: Ray.ALL, + * from: [0, 0], + * to: [10, 0], + * callback: function(result){ + * + * // Print some info about the hit + * console.log('Hit body and shape: ', result.body, result.shape); + * + * // Get the hit point + * var hitPoint = vec2.create(); + * result.getHitPoint(hitPoint, ray); + * console.log('Hit point: ', hitPoint[0], hitPoint[1], ' at distance ' + result.getHitDistance(ray)); + * + * // If you are happy with the hits you got this far, you can stop the traversal here: + * result.stop(); + * } + * }); + * var result = new RaycastResult(); + * world.raycast(result, ray); + */ +World.prototype.raycast = function(result, ray){ + + // Get all bodies within the ray AABB + ray.getAABB(tmpAABB); + this.broadphase.aabbQuery(this, tmpAABB, tmpArray); + ray.intersectBodies(result, tmpArray); + tmpArray.length = 0; + + return result.hasHit(); +}; + +},{"../../package.json":6,"../collision/AABB":7,"../collision/Broadphase":8,"../collision/Narrowphase":10,"../collision/Ray":11,"../collision/SAPBroadphase":13,"../constraints/Constraint":14,"../constraints/DistanceConstraint":15,"../constraints/GearConstraint":16,"../constraints/LockConstraint":17,"../constraints/PrismaticConstraint":18,"../constraints/RevoluteConstraint":19,"../events/EventEmitter":26,"../material/ContactMaterial":27,"../material/Material":28,"../math/vec2":30,"../objects/Body":31,"../objects/LinearSpring":32,"../objects/RotationalSpring":33,"../shapes/Capsule":38,"../shapes/Circle":39,"../shapes/Convex":40,"../shapes/Line":42,"../shapes/Particle":43,"../shapes/Plane":44,"../shapes/Shape":45,"../solver/GSSolver":46,"../solver/Solver":47,"../utils/OverlapKeeper":52,"../utils/Utils":57,"./IslandManager":59}]},{},[36]) +(36) +}); /** * @author Mat Groves http://matgroves.com/ @Doormat23 */ -var PIXI = (function(){ +(function(){ var root = this; @@ -9142,6 +22755,1200 @@ PIXI.AbstractFilter.prototype.apply = function(frameBuffer) // TODO :) }; */ +/** + * @author Mat Groves http://matgroves.com/ + */ + + /** + * + * @class Strip + * @extends DisplayObjectContainer + * @constructor + * @param texture {Texture} The texture to use + * @param width {Number} the width + * @param height {Number} the height + * + */ +PIXI.Strip = function(texture) +{ + PIXI.DisplayObjectContainer.call( this ); + + + /** + * The texture of the strip + * + * @property texture + * @type Texture + */ + this.texture = texture; + + // set up the main bits.. + this.uvs = new PIXI.Float32Array([0, 1, + 1, 1, + 1, 0, + 0, 1]); + + this.vertices = new PIXI.Float32Array([0, 0, + 100, 0, + 100, 100, + 0, 100]); + + this.colors = new PIXI.Float32Array([1, 1, 1, 1]); + + this.indices = new PIXI.Uint16Array([0, 1, 2, 3]); + + /** + * Whether the strip is dirty or not + * + * @property dirty + * @type Boolean + */ + this.dirty = true; + + /** + * The blend mode to be applied to the sprite. Set to PIXI.blendModes.NORMAL to remove any blend mode. + * + * @property blendMode + * @type Number + * @default PIXI.blendModes.NORMAL; + */ + this.blendMode = PIXI.blendModes.NORMAL; + + /** + * Triangles in canvas mode are automatically antialiased, use this value to force triangles to overlap a bit with each other. + * + * @property canvasPadding + * @type Number + */ + this.canvasPadding = 0; + + this.drawMode = PIXI.Strip.DrawModes.TRIANGLE_STRIP; + +}; + +// constructor +PIXI.Strip.prototype = Object.create(PIXI.DisplayObjectContainer.prototype); +PIXI.Strip.prototype.constructor = PIXI.Strip; + +PIXI.Strip.prototype._renderWebGL = function(renderSession) +{ + // if the sprite is not visible or the alpha is 0 then no need to render this element + if(!this.visible || this.alpha <= 0)return; + // render triangle strip.. + + renderSession.spriteBatch.stop(); + + // init! init! + if(!this._vertexBuffer)this._initWebGL(renderSession); + + renderSession.shaderManager.setShader(renderSession.shaderManager.stripShader); + + this._renderStrip(renderSession); + + ///renderSession.shaderManager.activateDefaultShader(); + + renderSession.spriteBatch.start(); + + //TODO check culling +}; + +PIXI.Strip.prototype._initWebGL = function(renderSession) +{ + // build the strip! + var gl = renderSession.gl; + + this._vertexBuffer = gl.createBuffer(); + this._indexBuffer = gl.createBuffer(); + this._uvBuffer = gl.createBuffer(); + this._colorBuffer = gl.createBuffer(); + + gl.bindBuffer(gl.ARRAY_BUFFER, this._vertexBuffer); + gl.bufferData(gl.ARRAY_BUFFER, this.vertices, gl.DYNAMIC_DRAW); + + gl.bindBuffer(gl.ARRAY_BUFFER, this._uvBuffer); + gl.bufferData(gl.ARRAY_BUFFER, this.uvs, gl.STATIC_DRAW); + + gl.bindBuffer(gl.ARRAY_BUFFER, this._colorBuffer); + gl.bufferData(gl.ARRAY_BUFFER, this.colors, gl.STATIC_DRAW); + + gl.bindBuffer(gl.ELEMENT_ARRAY_BUFFER, this._indexBuffer); + gl.bufferData(gl.ELEMENT_ARRAY_BUFFER, this.indices, gl.STATIC_DRAW); +}; + +PIXI.Strip.prototype._renderStrip = function(renderSession) +{ + var gl = renderSession.gl; + var projection = renderSession.projection, + offset = renderSession.offset, + shader = renderSession.shaderManager.stripShader; + + var drawMode = this.drawMode === PIXI.Strip.DrawModes.TRIANGLE_STRIP ? gl.TRIANGLE_STRIP : gl.TRIANGLES; + + // gl.uniformMatrix4fv(shaderProgram.mvMatrixUniform, false, mat4Real); + + renderSession.blendModeManager.setBlendMode(this.blendMode); + + + // set uniforms + gl.uniformMatrix3fv(shader.translationMatrix, false, this.worldTransform.toArray(true)); + gl.uniform2f(shader.projectionVector, projection.x, -projection.y); + gl.uniform2f(shader.offsetVector, -offset.x, -offset.y); + gl.uniform1f(shader.alpha, this.worldAlpha); + + if(!this.dirty) + { + + gl.bindBuffer(gl.ARRAY_BUFFER, this._vertexBuffer); + gl.bufferSubData(gl.ARRAY_BUFFER, 0, this.vertices); + gl.vertexAttribPointer(shader.aVertexPosition, 2, gl.FLOAT, false, 0, 0); + + // update the uvs + gl.bindBuffer(gl.ARRAY_BUFFER, this._uvBuffer); + gl.vertexAttribPointer(shader.aTextureCoord, 2, gl.FLOAT, false, 0, 0); + + gl.activeTexture(gl.TEXTURE0); + + // check if a texture is dirty.. + if(this.texture.baseTexture._dirty[gl.id]) + { + renderSession.renderer.updateTexture(this.texture.baseTexture); + } + else + { + // bind the current texture + gl.bindTexture(gl.TEXTURE_2D, this.texture.baseTexture._glTextures[gl.id]); + } + + // dont need to upload! + gl.bindBuffer(gl.ELEMENT_ARRAY_BUFFER, this._indexBuffer); + + + } + else + { + + this.dirty = false; + gl.bindBuffer(gl.ARRAY_BUFFER, this._vertexBuffer); + gl.bufferData(gl.ARRAY_BUFFER, this.vertices, gl.STATIC_DRAW); + gl.vertexAttribPointer(shader.aVertexPosition, 2, gl.FLOAT, false, 0, 0); + + // update the uvs + gl.bindBuffer(gl.ARRAY_BUFFER, this._uvBuffer); + gl.bufferData(gl.ARRAY_BUFFER, this.uvs, gl.STATIC_DRAW); + gl.vertexAttribPointer(shader.aTextureCoord, 2, gl.FLOAT, false, 0, 0); + + gl.activeTexture(gl.TEXTURE0); + + // check if a texture is dirty.. + if(this.texture.baseTexture._dirty[gl.id]) + { + renderSession.renderer.updateTexture(this.texture.baseTexture); + } + else + { + gl.bindTexture(gl.TEXTURE_2D, this.texture.baseTexture._glTextures[gl.id]); + } + + // dont need to upload! + gl.bindBuffer(gl.ELEMENT_ARRAY_BUFFER, this._indexBuffer); + gl.bufferData(gl.ELEMENT_ARRAY_BUFFER, this.indices, gl.STATIC_DRAW); + + } + //console.log(gl.TRIANGLE_STRIP) + // + // + gl.drawElements(drawMode, this.indices.length, gl.UNSIGNED_SHORT, 0); + + +}; + + + +PIXI.Strip.prototype._renderCanvas = function(renderSession) +{ + var context = renderSession.context; + + var transform = this.worldTransform; + + if (renderSession.roundPixels) + { + context.setTransform(transform.a, transform.b, transform.c, transform.d, transform.tx | 0, transform.ty | 0); + } + else + { + context.setTransform(transform.a, transform.b, transform.c, transform.d, transform.tx, transform.ty); + } + + if (this.drawMode === PIXI.Strip.DrawModes.TRIANGLE_STRIP) + { + this._renderCanvasTriangleStrip(context); + } + else + { + this._renderCanvasTriangles(context); + } +}; + +PIXI.Strip.prototype._renderCanvasTriangleStrip = function(context) +{ + // draw triangles!! + var vertices = this.vertices; + var uvs = this.uvs; + + var length = vertices.length / 2; + this.count++; + + for (var i = 0; i < length - 2; i++) { + // draw some triangles! + var index = i * 2; + this._renderCanvasDrawTriangle(context, vertices, uvs, index, (index + 2), (index + 4)); + } +}; + +PIXI.Strip.prototype._renderCanvasTriangles = function(context) +{ + // draw triangles!! + var vertices = this.vertices; + var uvs = this.uvs; + var indices = this.indices; + + var length = indices.length; + this.count++; + + for (var i = 0; i < length; i += 3) { + // draw some triangles! + var index0 = indices[i] * 2, index1 = indices[i + 1] * 2, index2 = indices[i + 2] * 2; + this._renderCanvasDrawTriangle(context, vertices, uvs, index0, index1, index2); + } +}; + +PIXI.Strip.prototype._renderCanvasDrawTriangle = function(context, vertices, uvs, index0, index1, index2) +{ + var textureSource = this.texture.baseTexture.source; + var textureWidth = this.texture.width; + var textureHeight = this.texture.height; + + var x0 = vertices[index0], x1 = vertices[index1], x2 = vertices[index2]; + var y0 = vertices[index0 + 1], y1 = vertices[index1 + 1], y2 = vertices[index2 + 1]; + + var u0 = uvs[index0] * textureWidth, u1 = uvs[index1] * textureWidth, u2 = uvs[index2] * textureWidth; + var v0 = uvs[index0 + 1] * textureHeight, v1 = uvs[index1 + 1] * textureHeight, v2 = uvs[index2 + 1] * textureHeight; + + if (this.canvasPadding > 0) { + var paddingX = this.canvasPadding / this.worldTransform.a; + var paddingY = this.canvasPadding / this.worldTransform.d; + var centerX = (x0 + x1 + x2) / 3; + var centerY = (y0 + y1 + y2) / 3; + + var normX = x0 - centerX; + var normY = y0 - centerY; + + var dist = Math.sqrt(normX * normX + normY * normY); + x0 = centerX + (normX / dist) * (dist + paddingX); + y0 = centerY + (normY / dist) * (dist + paddingY); + + // + + normX = x1 - centerX; + normY = y1 - centerY; + + dist = Math.sqrt(normX * normX + normY * normY); + x1 = centerX + (normX / dist) * (dist + paddingX); + y1 = centerY + (normY / dist) * (dist + paddingY); + + normX = x2 - centerX; + normY = y2 - centerY; + + dist = Math.sqrt(normX * normX + normY * normY); + x2 = centerX + (normX / dist) * (dist + paddingX); + y2 = centerY + (normY / dist) * (dist + paddingY); + } + + context.save(); + context.beginPath(); + + + context.moveTo(x0, y0); + context.lineTo(x1, y1); + context.lineTo(x2, y2); + + context.closePath(); + + context.clip(); + + // Compute matrix transform + var delta = (u0 * v1) + (v0 * u2) + (u1 * v2) - (v1 * u2) - (v0 * u1) - (u0 * v2); + var deltaA = (x0 * v1) + (v0 * x2) + (x1 * v2) - (v1 * x2) - (v0 * x1) - (x0 * v2); + var deltaB = (u0 * x1) + (x0 * u2) + (u1 * x2) - (x1 * u2) - (x0 * u1) - (u0 * x2); + var deltaC = (u0 * v1 * x2) + (v0 * x1 * u2) + (x0 * u1 * v2) - (x0 * v1 * u2) - (v0 * u1 * x2) - (u0 * x1 * v2); + var deltaD = (y0 * v1) + (v0 * y2) + (y1 * v2) - (v1 * y2) - (v0 * y1) - (y0 * v2); + var deltaE = (u0 * y1) + (y0 * u2) + (u1 * y2) - (y1 * u2) - (y0 * u1) - (u0 * y2); + var deltaF = (u0 * v1 * y2) + (v0 * y1 * u2) + (y0 * u1 * v2) - (y0 * v1 * u2) - (v0 * u1 * y2) - (u0 * y1 * v2); + + context.transform(deltaA / delta, deltaD / delta, + deltaB / delta, deltaE / delta, + deltaC / delta, deltaF / delta); + + context.drawImage(textureSource, 0, 0); + context.restore(); +}; + + + +/** + * Renders a flat strip + * + * @method renderStripFlat + * @param strip {Strip} The Strip to render + * @private + */ +PIXI.Strip.prototype.renderStripFlat = function(strip) +{ + var context = this.context; + var vertices = strip.vertices; + + var length = vertices.length/2; + this.count++; + + context.beginPath(); + for (var i=1; i < length-2; i++) + { + // draw some triangles! + var index = i*2; + + var x0 = vertices[index], x1 = vertices[index+2], x2 = vertices[index+4]; + var y0 = vertices[index+1], y1 = vertices[index+3], y2 = vertices[index+5]; + + context.moveTo(x0, y0); + context.lineTo(x1, y1); + context.lineTo(x2, y2); + } + + context.fillStyle = '#FF0000'; + context.fill(); + context.closePath(); +}; + +/* +PIXI.Strip.prototype.setTexture = function(texture) +{ + //TODO SET THE TEXTURES + //TODO VISIBILITY + + // stop current texture + this.texture = texture; + this.width = texture.frame.width; + this.height = texture.frame.height; + this.updateFrame = true; +}; +*/ + +/** + * When the texture is updated, this event will fire to update the scale and frame + * + * @method onTextureUpdate + * @param event + * @private + */ + +PIXI.Strip.prototype.onTextureUpdate = function() +{ + this.updateFrame = true; +}; + +/** + * Returns the bounds of the mesh as a rectangle. The bounds calculation takes the worldTransform into account. + * + * @method getBounds + * @param matrix {Matrix} the transformation matrix of the sprite + * @return {Rectangle} the framing rectangle + */ +PIXI.Strip.prototype.getBounds = function(matrix) +{ + var worldTransform = matrix || this.worldTransform; + + var a = worldTransform.a; + var b = worldTransform.b; + var c = worldTransform.c; + var d = worldTransform.d; + var tx = worldTransform.tx; + var ty = worldTransform.ty; + + var maxX = -Infinity; + var maxY = -Infinity; + + var minX = Infinity; + var minY = Infinity; + + var vertices = this.vertices; + for (var i = 0, n = vertices.length; i < n; i += 2) + { + var rawX = vertices[i], rawY = vertices[i + 1]; + var x = (a * rawX) + (c * rawY) + tx; + var y = (d * rawY) + (b * rawX) + ty; + + minX = x < minX ? x : minX; + minY = y < minY ? y : minY; + + maxX = x > maxX ? x : maxX; + maxY = y > maxY ? y : maxY; + } + + if (minX === -Infinity || maxY === Infinity) + { + return PIXI.EmptyRectangle; + } + + var bounds = this._bounds; + + bounds.x = minX; + bounds.width = maxX - minX; + + bounds.y = minY; + bounds.height = maxY - minY; + + // store a reference so that if this function gets called again in the render cycle we do not have to recalculate + this._currentBounds = bounds; + + return bounds; +}; + +/** + * Different drawing buffer modes supported + * + * @property + * @type {{TRIANGLE_STRIP: number, TRIANGLES: number}} + * @static + */ +PIXI.Strip.DrawModes = { + TRIANGLE_STRIP: 0, + TRIANGLES: 1 +}; + +/** + * @author Mat Groves http://matgroves.com/ @Doormat23 + * @copyright Mat Groves, Rovanion Luckey + */ + +/** + * + * @class Rope + * @constructor + * @extends Strip + * @param {Texture} texture - The texture to use on the rope. + * @param {Array} points - An array of {PIXI.Point}. + * + */ +PIXI.Rope = function(texture, points) +{ + PIXI.Strip.call( this, texture ); + this.points = points; + + this.vertices = new PIXI.Float32Array(points.length * 4); + this.uvs = new PIXI.Float32Array(points.length * 4); + this.colors = new PIXI.Float32Array(points.length * 2); + this.indices = new PIXI.Uint16Array(points.length * 2); + + + this.refresh(); +}; + + +// constructor +PIXI.Rope.prototype = Object.create( PIXI.Strip.prototype ); +PIXI.Rope.prototype.constructor = PIXI.Rope; + +/* + * Refreshes + * + * @method refresh + */ +PIXI.Rope.prototype.refresh = function() +{ + var points = this.points; + if(points.length < 1) return; + + var uvs = this.uvs; + + var lastPoint = points[0]; + var indices = this.indices; + var colors = this.colors; + + this.count-=0.2; + + uvs[0] = 0; + uvs[1] = 0; + uvs[2] = 0; + uvs[3] = 1; + + colors[0] = 1; + colors[1] = 1; + + indices[0] = 0; + indices[1] = 1; + + var total = points.length, + point, index, amount; + + for (var i = 1; i < total; i++) + { + point = points[i]; + index = i * 4; + // time to do some smart drawing! + amount = i / (total-1); + + if(i%2) + { + uvs[index] = amount; + uvs[index+1] = 0; + + uvs[index+2] = amount; + uvs[index+3] = 1; + } + else + { + uvs[index] = amount; + uvs[index+1] = 0; + + uvs[index+2] = amount; + uvs[index+3] = 1; + } + + index = i * 2; + colors[index] = 1; + colors[index+1] = 1; + + index = i * 2; + indices[index] = index; + indices[index + 1] = index + 1; + + lastPoint = point; + } +}; + +/* + * Updates the object transform for rendering + * + * @method updateTransform + * @private + */ +PIXI.Rope.prototype.updateTransform = function() +{ + + var points = this.points; + if(points.length < 1)return; + + var lastPoint = points[0]; + var nextPoint; + var perp = {x:0, y:0}; + + this.count-=0.2; + + var vertices = this.vertices; + var total = points.length, + point, index, ratio, perpLength, num; + + for (var i = 0; i < total; i++) + { + point = points[i]; + index = i * 4; + + if(i < points.length-1) + { + nextPoint = points[i+1]; + } + else + { + nextPoint = point; + } + + perp.y = -(nextPoint.x - lastPoint.x); + perp.x = nextPoint.y - lastPoint.y; + + ratio = (1 - (i / (total-1))) * 10; + + if(ratio > 1) ratio = 1; + + perpLength = Math.sqrt(perp.x * perp.x + perp.y * perp.y); + num = this.texture.height / 2; //(20 + Math.abs(Math.sin((i + this.count) * 0.3) * 50) )* ratio; + perp.x /= perpLength; + perp.y /= perpLength; + + perp.x *= num; + perp.y *= num; + + vertices[index] = point.x + perp.x; + vertices[index+1] = point.y + perp.y; + vertices[index+2] = point.x - perp.x; + vertices[index+3] = point.y - perp.y; + + lastPoint = point; + } + + PIXI.DisplayObjectContainer.prototype.updateTransform.call( this ); +}; +/* + * Sets the texture that the Rope will use + * + * @method setTexture + * @param texture {Texture} the texture that will be used + */ +PIXI.Rope.prototype.setTexture = function(texture) +{ + // stop current texture + this.texture = texture; + //this.updateFrame = true; +}; + +/** + * @author Mat Groves http://matgroves.com/ + */ + +/** + * A tiling sprite is a fast way of rendering a tiling image + * + * @class TilingSprite + * @extends Sprite + * @constructor + * @param texture {Texture} the texture of the tiling sprite + * @param width {Number} the width of the tiling sprite + * @param height {Number} the height of the tiling sprite + */ +PIXI.TilingSprite = function(texture, width, height) +{ + PIXI.Sprite.call(this, texture); + + /** + * The width of the tiling sprite + * + * @property width + * @type Number + */ + this._width = width || 128; + + /** + * The height of the tiling sprite + * + * @property height + * @type Number + */ + this._height = height || 128; + + /** + * The scaling of the image that is being tiled + * + * @property tileScale + * @type Point + */ + this.tileScale = new PIXI.Point(1, 1); + + /** + * A point that represents the scale of the texture object + * + * @property tileScaleOffset + * @type Point + */ + this.tileScaleOffset = new PIXI.Point(1, 1); + + /** + * The offset position of the image that is being tiled + * + * @property tilePosition + * @type Point + */ + this.tilePosition = new PIXI.Point(); + + /** + * Whether this sprite is renderable or not + * + * @property renderable + * @type Boolean + * @default true + */ + this.renderable = true; + + /** + * The tint applied to the sprite. This is a hex value + * + * @property tint + * @type Number + * @default 0xFFFFFF + */ + this.tint = 0xFFFFFF; + + /** + * If enabled a green rectangle will be drawn behind the generated tiling texture, allowing you to visually + * debug the texture being used. + * + * @property textureDebug + * @type Boolean + */ + this.textureDebug = false; + + /** + * The blend mode to be applied to the sprite + * + * @property blendMode + * @type Number + * @default PIXI.blendModes.NORMAL; + */ + this.blendMode = PIXI.blendModes.NORMAL; + + /** + * The CanvasBuffer object that the tiled texture is drawn to. + * + * @property canvasBuffer + * @type PIXI.CanvasBuffer + */ + this.canvasBuffer = null; + + /** + * An internal Texture object that holds the tiling texture that was generated from TilingSprite.texture. + * + * @property tilingTexture + * @type PIXI.Texture + */ + this.tilingTexture = null; + + /** + * The Context fill pattern that is used to draw the TilingSprite in Canvas mode only (will be null in WebGL). + * + * @property tilePattern + * @type PIXI.Texture + */ + this.tilePattern = null; + + /** + * If true the TilingSprite will run generateTexture on its **next** render pass. + * This is set by the likes of Phaser.LoadTexture.setFrame. + * + * @property refreshTexture + * @type Boolean + * @default true + */ + this.refreshTexture = true; + + this.frameWidth = 0; + this.frameHeight = 0; + +}; + +PIXI.TilingSprite.prototype = Object.create(PIXI.Sprite.prototype); +PIXI.TilingSprite.prototype.constructor = PIXI.TilingSprite; + +PIXI.TilingSprite.prototype.setTexture = function(texture) +{ + if (this.texture !== texture) + { + this.texture = texture; + this.refreshTexture = true; + this.cachedTint = 0xFFFFFF; + } + +}; + +/** +* Renders the object using the WebGL renderer +* +* @method _renderWebGL +* @param renderSession {RenderSession} +* @private +*/ +PIXI.TilingSprite.prototype._renderWebGL = function(renderSession) +{ + if (this.visible === false || this.alpha === 0) + { + return; + } + + if (this._mask) + { + renderSession.spriteBatch.stop(); + renderSession.maskManager.pushMask(this.mask, renderSession); + renderSession.spriteBatch.start(); + } + + if (this._filters) + { + renderSession.spriteBatch.flush(); + renderSession.filterManager.pushFilter(this._filterBlock); + } + + if (this.refreshTexture) + { + this.generateTilingTexture(true); + + if (this.tilingTexture) + { + if (this.tilingTexture.needsUpdate) + { + renderSession.renderer.updateTexture(this.tilingTexture.baseTexture); + this.tilingTexture.needsUpdate = false; + } + } + else + { + return; + } + } + + renderSession.spriteBatch.renderTilingSprite(this); + + for (var i = 0; i < this.children.length; i++) + { + this.children[i]._renderWebGL(renderSession); + } + + renderSession.spriteBatch.stop(); + + if (this._filters) + { + renderSession.filterManager.popFilter(); + } + + if (this._mask) + { + renderSession.maskManager.popMask(this._mask, renderSession); + } + + renderSession.spriteBatch.start(); + +}; + +/** +* Renders the object using the Canvas renderer +* +* @method _renderCanvas +* @param renderSession {RenderSession} +* @private +*/ +PIXI.TilingSprite.prototype._renderCanvas = function(renderSession) +{ + if (this.visible === false || this.alpha === 0) + { + return; + } + + var context = renderSession.context; + + if (this._mask) + { + renderSession.maskManager.pushMask(this._mask, renderSession); + } + + context.globalAlpha = this.worldAlpha; + + var wt = this.worldTransform; + var resolution = renderSession.resolution; + + context.setTransform(wt.a * resolution, + wt.b * resolution, + wt.c * resolution, + wt.d * resolution, + wt.tx * resolution, + wt.ty * resolution); + + if (this.refreshTexture) + { + this.generateTilingTexture(false); + + if (this.tilingTexture) + { + this.tilePattern = context.createPattern(this.tilingTexture.baseTexture.source, 'repeat'); + } + else + { + return; + } + } + + var sessionBlendMode = renderSession.currentBlendMode; + + // Check blend mode + if (this.blendMode !== renderSession.currentBlendMode) + { + renderSession.currentBlendMode = this.blendMode; + context.globalCompositeOperation = PIXI.blendModesCanvas[renderSession.currentBlendMode]; + } + + var tilePosition = this.tilePosition; + var tileScale = this.tileScale; + + tilePosition.x %= this.tilingTexture.baseTexture.width; + tilePosition.y %= this.tilingTexture.baseTexture.height; + + // Translate + context.scale(tileScale.x, tileScale.y); + context.translate(tilePosition.x + (this.anchor.x * -this._width), tilePosition.y + (this.anchor.y * -this._height)); + + context.fillStyle = this.tilePattern; + + var tx = -tilePosition.x; + var ty = -tilePosition.y; + var tw = this._width / tileScale.x; + var th = this._height / tileScale.y; + + // Allow for pixel rounding + if (renderSession.roundPixels) + { + tx | 0; + ty | 0; + tw | 0; + th | 0; + } + + context.fillRect(tx, ty, tw, th); + + // Translate back again + context.scale(1 / tileScale.x, 1 / tileScale.y); + context.translate(-tilePosition.x + (this.anchor.x * this._width), -tilePosition.y + (this.anchor.y * this._height)); + + if (this._mask) + { + renderSession.maskManager.popMask(renderSession); + } + + for (var i = 0; i < this.children.length; i++) + { + this.children[i]._renderCanvas(renderSession); + } + + // Reset blend mode + if (sessionBlendMode !== this.blendMode) + { + renderSession.currentBlendMode = sessionBlendMode; + context.globalCompositeOperation = PIXI.blendModesCanvas[sessionBlendMode]; + } + +}; + +/** + * When the texture is updated, this event will fire to update the scale and frame + * + * @method onTextureUpdate + * @param event + * @private + */ +PIXI.TilingSprite.prototype.onTextureUpdate = function() +{ + // overriding the sprite version of this! +}; + +/** +* +* @method generateTilingTexture +* +* @param forcePowerOfTwo {Boolean} Whether we want to force the texture to be a power of two +*/ +PIXI.TilingSprite.prototype.generateTilingTexture = function(forcePowerOfTwo) +{ + if (!this.texture.baseTexture.hasLoaded) + { + return; + } + + var texture = this.texture; + var frame = texture.frame; + + var targetWidth = this._frame.sourceSizeW; + var targetHeight = this._frame.sourceSizeH; + + var dx = 0; + var dy = 0; + + if (this._frame.trimmed) + { + dx = this._frame.spriteSourceSizeX; + dy = this._frame.spriteSourceSizeY; + } + + if (forcePowerOfTwo) + { + targetWidth = PIXI.getNextPowerOfTwo(targetWidth); + targetHeight = PIXI.getNextPowerOfTwo(targetHeight); + } + + if (this.canvasBuffer) + { + this.canvasBuffer.resize(targetWidth, targetHeight); + this.tilingTexture.baseTexture.width = targetWidth; + this.tilingTexture.baseTexture.height = targetHeight; + this.tilingTexture.needsUpdate = true; + } + else + { + this.canvasBuffer = new PIXI.CanvasBuffer(targetWidth, targetHeight); + this.tilingTexture = PIXI.Texture.fromCanvas(this.canvasBuffer.canvas); + this.tilingTexture = PIXI.Texture.fromCanvas(this.canvasBuffer.canvas); + this.tilingTexture.isTiling = true; + this.tilingTexture.needsUpdate = true; + } + + if (this.textureDebug) + { + this.canvasBuffer.context.strokeStyle = '#00ff00'; + this.canvasBuffer.context.strokeRect(0, 0, targetWidth, targetHeight); + } + + // If a sprite sheet we need this: + var w = texture.crop.width; + var h = texture.crop.height; + + if (w !== targetWidth || h !== targetHeight) + { + w = targetWidth; + h = targetHeight; + } + + this.canvasBuffer.context.drawImage(texture.baseTexture.source, + texture.crop.x, + texture.crop.y, + texture.crop.width, + texture.crop.height, + dx, + dy, + w, + h); + + this.tileScaleOffset.x = frame.width / targetWidth; + this.tileScaleOffset.y = frame.height / targetHeight; + + this.refreshTexture = false; + + this.tilingTexture.baseTexture._powerOf2 = true; + +}; + +/** +* Returns the framing rectangle of the sprite as a PIXI.Rectangle object +* +* @method getBounds +* @return {Rectangle} the framing rectangle +*/ +PIXI.TilingSprite.prototype.getBounds = function() +{ + var width = this._width; + var height = this._height; + + var w0 = width * (1-this.anchor.x); + var w1 = width * -this.anchor.x; + + var h0 = height * (1-this.anchor.y); + var h1 = height * -this.anchor.y; + + var worldTransform = this.worldTransform; + + var a = worldTransform.a; + var b = worldTransform.b; + var c = worldTransform.c; + var d = worldTransform.d; + var tx = worldTransform.tx; + var ty = worldTransform.ty; + + var x1 = a * w1 + c * h1 + tx; + var y1 = d * h1 + b * w1 + ty; + + var x2 = a * w0 + c * h1 + tx; + var y2 = d * h1 + b * w0 + ty; + + var x3 = a * w0 + c * h0 + tx; + var y3 = d * h0 + b * w0 + ty; + + var x4 = a * w1 + c * h0 + tx; + var y4 = d * h0 + b * w1 + ty; + + var maxX = -Infinity; + var maxY = -Infinity; + + var minX = Infinity; + var minY = Infinity; + + minX = x1 < minX ? x1 : minX; + minX = x2 < minX ? x2 : minX; + minX = x3 < minX ? x3 : minX; + minX = x4 < minX ? x4 : minX; + + minY = y1 < minY ? y1 : minY; + minY = y2 < minY ? y2 : minY; + minY = y3 < minY ? y3 : minY; + minY = y4 < minY ? y4 : minY; + + maxX = x1 > maxX ? x1 : maxX; + maxX = x2 > maxX ? x2 : maxX; + maxX = x3 > maxX ? x3 : maxX; + maxX = x4 > maxX ? x4 : maxX; + + maxY = y1 > maxY ? y1 : maxY; + maxY = y2 > maxY ? y2 : maxY; + maxY = y3 > maxY ? y3 : maxY; + maxY = y4 > maxY ? y4 : maxY; + + var bounds = this._bounds; + + bounds.x = minX; + bounds.width = maxX - minX; + + bounds.y = minY; + bounds.height = maxY - minY; + + // store a reference so that if this function gets called again in the render cycle we do not have to recalculate + this._currentBounds = bounds; + + return bounds; +}; + +PIXI.TilingSprite.prototype.destroy = function () { + + PIXI.Sprite.prototype.destroy.call(this); + + this.tileScale = null; + this.tileScaleOffset = null; + this.tilePosition = null; + + if (this.tilingTexture) + { + this.tilingTexture.destroy(true); + this.tilingTexture = null; + } + +}; + +/** + * The width of the sprite, setting this will actually modify the scale to achieve the value set + * + * @property width + * @type Number + */ +Object.defineProperty(PIXI.TilingSprite.prototype, 'width', { + + get: function() { + return this._width; + }, + + set: function(value) { + this._width = value; + } + +}); + +/** + * The height of the TilingSprite, setting this will actually modify the scale to achieve the value set + * + * @property height + * @type Number + */ +Object.defineProperty(PIXI.TilingSprite.prototype, 'height', { + + get: function() { + return this._height; + }, + + set: function(value) { + this._height = value; + } + +}); + /** * @author Mat Groves http://matgroves.com/ @Doormat23 */ @@ -9186,7 +23993,7 @@ var Phaser = Phaser || { * @constant * @type {string} */ - VERSION: '2.4.0', + VERSION: '2.4.1', /** * An array of Phaser game instances. @@ -34618,6 +49425,39 @@ Phaser.GameObjectFactory.prototype = { }, + /** + * Create a new Creature Animation object. + * + * Creature is a custom Game Object used in conjunction with the Creature Runtime libraries by Kestrel Moon Studios. + * + * It allows you to display animated Game Objects that were created with the [Creature Automated Animation Tool](http://www.kestrelmoon.com/creature/). + * + * Note 1: You can only use Phaser.Creature objects in WebGL enabled games. They do not work in Canvas mode games. + * + * Note 2: You must use a build of Phaser that includes the CreatureMeshBone.js runtime and gl-matrix.js, or have them + * loaded before your Phaser game boots. + * + * See the Phaser custom build process for more details. + * + * @method Phaser.GameObjectFactory#creature + * @param {number} [x=0] - The x coordinate of the creature. The coordinate is relative to any parent container this creature may be in. + * @param {number} [y=0] - The y coordinate of the creature. The coordinate is relative to any parent container this creature may be in. + * @param {string|PIXI.Texture} [key] - The image used as a texture by this creature object during rendering. If a string Phaser will get for an entry in the Image Cache. Or it can be an instance of a PIXI.Texture. + * @param {Phaser.Group} [group] - Optional Group to add the object to. If not specified it will be added to the World group. + * @returns {Phaser.Creature} The newly created Sprite object. + */ + creature: function (x, y, key, mesh, group) { + + if (group === undefined) { group = this.world; } + + var obj = new Phaser.Creature(this.game, x, y, key, mesh); + + group.add(obj); + + return obj; + + }, + /** * Create a tween on a specific object. * @@ -43777,651 +58617,6 @@ Object.defineProperty(Phaser.RetroFont.prototype, "smoothed", { }); -/** - * @author Mat Groves http://matgroves.com/ - */ - - /** - * - * @class Strip - * @extends DisplayObjectContainer - * @constructor - * @param texture {Texture} The texture to use - * @param width {Number} the width - * @param height {Number} the height - * - */ -PIXI.Strip = function(texture) -{ - PIXI.DisplayObjectContainer.call( this ); - - - /** - * The texture of the strip - * - * @property texture - * @type Texture - */ - this.texture = texture; - - // set up the main bits.. - this.uvs = new PIXI.Float32Array([0, 1, - 1, 1, - 1, 0, - 0, 1]); - - this.vertices = new PIXI.Float32Array([0, 0, - 100, 0, - 100, 100, - 0, 100]); - - this.colors = new PIXI.Float32Array([1, 1, 1, 1]); - - this.indices = new PIXI.Uint16Array([0, 1, 2, 3]); - - /** - * Whether the strip is dirty or not - * - * @property dirty - * @type Boolean - */ - this.dirty = true; - - /** - * The blend mode to be applied to the sprite. Set to PIXI.blendModes.NORMAL to remove any blend mode. - * - * @property blendMode - * @type Number - * @default PIXI.blendModes.NORMAL; - */ - this.blendMode = PIXI.blendModes.NORMAL; - - /** - * Triangles in canvas mode are automatically antialiased, use this value to force triangles to overlap a bit with each other. - * - * @property canvasPadding - * @type Number - */ - this.canvasPadding = 0; - - this.drawMode = PIXI.Strip.DrawModes.TRIANGLE_STRIP; - -}; - -// constructor -PIXI.Strip.prototype = Object.create(PIXI.DisplayObjectContainer.prototype); -PIXI.Strip.prototype.constructor = PIXI.Strip; - -PIXI.Strip.prototype._renderWebGL = function(renderSession) -{ - // if the sprite is not visible or the alpha is 0 then no need to render this element - if(!this.visible || this.alpha <= 0)return; - // render triangle strip.. - - renderSession.spriteBatch.stop(); - - // init! init! - if(!this._vertexBuffer)this._initWebGL(renderSession); - - renderSession.shaderManager.setShader(renderSession.shaderManager.stripShader); - - this._renderStrip(renderSession); - - ///renderSession.shaderManager.activateDefaultShader(); - - renderSession.spriteBatch.start(); - - //TODO check culling -}; - -PIXI.Strip.prototype._initWebGL = function(renderSession) -{ - // build the strip! - var gl = renderSession.gl; - - this._vertexBuffer = gl.createBuffer(); - this._indexBuffer = gl.createBuffer(); - this._uvBuffer = gl.createBuffer(); - this._colorBuffer = gl.createBuffer(); - - gl.bindBuffer(gl.ARRAY_BUFFER, this._vertexBuffer); - gl.bufferData(gl.ARRAY_BUFFER, this.vertices, gl.DYNAMIC_DRAW); - - gl.bindBuffer(gl.ARRAY_BUFFER, this._uvBuffer); - gl.bufferData(gl.ARRAY_BUFFER, this.uvs, gl.STATIC_DRAW); - - gl.bindBuffer(gl.ARRAY_BUFFER, this._colorBuffer); - gl.bufferData(gl.ARRAY_BUFFER, this.colors, gl.STATIC_DRAW); - - gl.bindBuffer(gl.ELEMENT_ARRAY_BUFFER, this._indexBuffer); - gl.bufferData(gl.ELEMENT_ARRAY_BUFFER, this.indices, gl.STATIC_DRAW); -}; - -PIXI.Strip.prototype._renderStrip = function(renderSession) -{ - var gl = renderSession.gl; - var projection = renderSession.projection, - offset = renderSession.offset, - shader = renderSession.shaderManager.stripShader; - - var drawMode = this.drawMode === PIXI.Strip.DrawModes.TRIANGLE_STRIP ? gl.TRIANGLE_STRIP : gl.TRIANGLES; - - // gl.uniformMatrix4fv(shaderProgram.mvMatrixUniform, false, mat4Real); - - renderSession.blendModeManager.setBlendMode(this.blendMode); - - - // set uniforms - gl.uniformMatrix3fv(shader.translationMatrix, false, this.worldTransform.toArray(true)); - gl.uniform2f(shader.projectionVector, projection.x, -projection.y); - gl.uniform2f(shader.offsetVector, -offset.x, -offset.y); - gl.uniform1f(shader.alpha, this.worldAlpha); - - if(!this.dirty) - { - - gl.bindBuffer(gl.ARRAY_BUFFER, this._vertexBuffer); - gl.bufferSubData(gl.ARRAY_BUFFER, 0, this.vertices); - gl.vertexAttribPointer(shader.aVertexPosition, 2, gl.FLOAT, false, 0, 0); - - // update the uvs - gl.bindBuffer(gl.ARRAY_BUFFER, this._uvBuffer); - gl.vertexAttribPointer(shader.aTextureCoord, 2, gl.FLOAT, false, 0, 0); - - gl.activeTexture(gl.TEXTURE0); - - // check if a texture is dirty.. - if(this.texture.baseTexture._dirty[gl.id]) - { - renderSession.renderer.updateTexture(this.texture.baseTexture); - } - else - { - // bind the current texture - gl.bindTexture(gl.TEXTURE_2D, this.texture.baseTexture._glTextures[gl.id]); - } - - // dont need to upload! - gl.bindBuffer(gl.ELEMENT_ARRAY_BUFFER, this._indexBuffer); - - - } - else - { - - this.dirty = false; - gl.bindBuffer(gl.ARRAY_BUFFER, this._vertexBuffer); - gl.bufferData(gl.ARRAY_BUFFER, this.vertices, gl.STATIC_DRAW); - gl.vertexAttribPointer(shader.aVertexPosition, 2, gl.FLOAT, false, 0, 0); - - // update the uvs - gl.bindBuffer(gl.ARRAY_BUFFER, this._uvBuffer); - gl.bufferData(gl.ARRAY_BUFFER, this.uvs, gl.STATIC_DRAW); - gl.vertexAttribPointer(shader.aTextureCoord, 2, gl.FLOAT, false, 0, 0); - - gl.activeTexture(gl.TEXTURE0); - - // check if a texture is dirty.. - if(this.texture.baseTexture._dirty[gl.id]) - { - renderSession.renderer.updateTexture(this.texture.baseTexture); - } - else - { - gl.bindTexture(gl.TEXTURE_2D, this.texture.baseTexture._glTextures[gl.id]); - } - - // dont need to upload! - gl.bindBuffer(gl.ELEMENT_ARRAY_BUFFER, this._indexBuffer); - gl.bufferData(gl.ELEMENT_ARRAY_BUFFER, this.indices, gl.STATIC_DRAW); - - } - //console.log(gl.TRIANGLE_STRIP) - // - // - gl.drawElements(drawMode, this.indices.length, gl.UNSIGNED_SHORT, 0); - - -}; - - - -PIXI.Strip.prototype._renderCanvas = function(renderSession) -{ - var context = renderSession.context; - - var transform = this.worldTransform; - - if (renderSession.roundPixels) - { - context.setTransform(transform.a, transform.b, transform.c, transform.d, transform.tx | 0, transform.ty | 0); - } - else - { - context.setTransform(transform.a, transform.b, transform.c, transform.d, transform.tx, transform.ty); - } - - if (this.drawMode === PIXI.Strip.DrawModes.TRIANGLE_STRIP) - { - this._renderCanvasTriangleStrip(context); - } - else - { - this._renderCanvasTriangles(context); - } -}; - -PIXI.Strip.prototype._renderCanvasTriangleStrip = function(context) -{ - // draw triangles!! - var vertices = this.vertices; - var uvs = this.uvs; - - var length = vertices.length / 2; - this.count++; - - for (var i = 0; i < length - 2; i++) { - // draw some triangles! - var index = i * 2; - this._renderCanvasDrawTriangle(context, vertices, uvs, index, (index + 2), (index + 4)); - } -}; - -PIXI.Strip.prototype._renderCanvasTriangles = function(context) -{ - // draw triangles!! - var vertices = this.vertices; - var uvs = this.uvs; - var indices = this.indices; - - var length = indices.length; - this.count++; - - for (var i = 0; i < length; i += 3) { - // draw some triangles! - var index0 = indices[i] * 2, index1 = indices[i + 1] * 2, index2 = indices[i + 2] * 2; - this._renderCanvasDrawTriangle(context, vertices, uvs, index0, index1, index2); - } -}; - -PIXI.Strip.prototype._renderCanvasDrawTriangle = function(context, vertices, uvs, index0, index1, index2) -{ - var textureSource = this.texture.baseTexture.source; - var textureWidth = this.texture.width; - var textureHeight = this.texture.height; - - var x0 = vertices[index0], x1 = vertices[index1], x2 = vertices[index2]; - var y0 = vertices[index0 + 1], y1 = vertices[index1 + 1], y2 = vertices[index2 + 1]; - - var u0 = uvs[index0] * textureWidth, u1 = uvs[index1] * textureWidth, u2 = uvs[index2] * textureWidth; - var v0 = uvs[index0 + 1] * textureHeight, v1 = uvs[index1 + 1] * textureHeight, v2 = uvs[index2 + 1] * textureHeight; - - if (this.canvasPadding > 0) { - var paddingX = this.canvasPadding / this.worldTransform.a; - var paddingY = this.canvasPadding / this.worldTransform.d; - var centerX = (x0 + x1 + x2) / 3; - var centerY = (y0 + y1 + y2) / 3; - - var normX = x0 - centerX; - var normY = y0 - centerY; - - var dist = Math.sqrt(normX * normX + normY * normY); - x0 = centerX + (normX / dist) * (dist + paddingX); - y0 = centerY + (normY / dist) * (dist + paddingY); - - // - - normX = x1 - centerX; - normY = y1 - centerY; - - dist = Math.sqrt(normX * normX + normY * normY); - x1 = centerX + (normX / dist) * (dist + paddingX); - y1 = centerY + (normY / dist) * (dist + paddingY); - - normX = x2 - centerX; - normY = y2 - centerY; - - dist = Math.sqrt(normX * normX + normY * normY); - x2 = centerX + (normX / dist) * (dist + paddingX); - y2 = centerY + (normY / dist) * (dist + paddingY); - } - - context.save(); - context.beginPath(); - - - context.moveTo(x0, y0); - context.lineTo(x1, y1); - context.lineTo(x2, y2); - - context.closePath(); - - context.clip(); - - // Compute matrix transform - var delta = (u0 * v1) + (v0 * u2) + (u1 * v2) - (v1 * u2) - (v0 * u1) - (u0 * v2); - var deltaA = (x0 * v1) + (v0 * x2) + (x1 * v2) - (v1 * x2) - (v0 * x1) - (x0 * v2); - var deltaB = (u0 * x1) + (x0 * u2) + (u1 * x2) - (x1 * u2) - (x0 * u1) - (u0 * x2); - var deltaC = (u0 * v1 * x2) + (v0 * x1 * u2) + (x0 * u1 * v2) - (x0 * v1 * u2) - (v0 * u1 * x2) - (u0 * x1 * v2); - var deltaD = (y0 * v1) + (v0 * y2) + (y1 * v2) - (v1 * y2) - (v0 * y1) - (y0 * v2); - var deltaE = (u0 * y1) + (y0 * u2) + (u1 * y2) - (y1 * u2) - (y0 * u1) - (u0 * y2); - var deltaF = (u0 * v1 * y2) + (v0 * y1 * u2) + (y0 * u1 * v2) - (y0 * v1 * u2) - (v0 * u1 * y2) - (u0 * y1 * v2); - - context.transform(deltaA / delta, deltaD / delta, - deltaB / delta, deltaE / delta, - deltaC / delta, deltaF / delta); - - context.drawImage(textureSource, 0, 0); - context.restore(); -}; - - - -/** - * Renders a flat strip - * - * @method renderStripFlat - * @param strip {Strip} The Strip to render - * @private - */ -PIXI.Strip.prototype.renderStripFlat = function(strip) -{ - var context = this.context; - var vertices = strip.vertices; - - var length = vertices.length/2; - this.count++; - - context.beginPath(); - for (var i=1; i < length-2; i++) - { - // draw some triangles! - var index = i*2; - - var x0 = vertices[index], x1 = vertices[index+2], x2 = vertices[index+4]; - var y0 = vertices[index+1], y1 = vertices[index+3], y2 = vertices[index+5]; - - context.moveTo(x0, y0); - context.lineTo(x1, y1); - context.lineTo(x2, y2); - } - - context.fillStyle = '#FF0000'; - context.fill(); - context.closePath(); -}; - -/* -PIXI.Strip.prototype.setTexture = function(texture) -{ - //TODO SET THE TEXTURES - //TODO VISIBILITY - - // stop current texture - this.texture = texture; - this.width = texture.frame.width; - this.height = texture.frame.height; - this.updateFrame = true; -}; -*/ - -/** - * When the texture is updated, this event will fire to update the scale and frame - * - * @method onTextureUpdate - * @param event - * @private - */ - -PIXI.Strip.prototype.onTextureUpdate = function() -{ - this.updateFrame = true; -}; - -/** - * Returns the bounds of the mesh as a rectangle. The bounds calculation takes the worldTransform into account. - * - * @method getBounds - * @param matrix {Matrix} the transformation matrix of the sprite - * @return {Rectangle} the framing rectangle - */ -PIXI.Strip.prototype.getBounds = function(matrix) -{ - var worldTransform = matrix || this.worldTransform; - - var a = worldTransform.a; - var b = worldTransform.b; - var c = worldTransform.c; - var d = worldTransform.d; - var tx = worldTransform.tx; - var ty = worldTransform.ty; - - var maxX = -Infinity; - var maxY = -Infinity; - - var minX = Infinity; - var minY = Infinity; - - var vertices = this.vertices; - for (var i = 0, n = vertices.length; i < n; i += 2) - { - var rawX = vertices[i], rawY = vertices[i + 1]; - var x = (a * rawX) + (c * rawY) + tx; - var y = (d * rawY) + (b * rawX) + ty; - - minX = x < minX ? x : minX; - minY = y < minY ? y : minY; - - maxX = x > maxX ? x : maxX; - maxY = y > maxY ? y : maxY; - } - - if (minX === -Infinity || maxY === Infinity) - { - return PIXI.EmptyRectangle; - } - - var bounds = this._bounds; - - bounds.x = minX; - bounds.width = maxX - minX; - - bounds.y = minY; - bounds.height = maxY - minY; - - // store a reference so that if this function gets called again in the render cycle we do not have to recalculate - this._currentBounds = bounds; - - return bounds; -}; - -/** - * Different drawing buffer modes supported - * - * @property - * @type {{TRIANGLE_STRIP: number, TRIANGLES: number}} - * @static - */ -PIXI.Strip.DrawModes = { - TRIANGLE_STRIP: 0, - TRIANGLES: 1 -}; - -/** - * @author Mat Groves http://matgroves.com/ @Doormat23 - * @copyright Mat Groves, Rovanion Luckey - */ - -/** - * - * @class Rope - * @constructor - * @extends Strip - * @param {Texture} texture - The texture to use on the rope. - * @param {Array} points - An array of {PIXI.Point}. - * - */ -PIXI.Rope = function(texture, points) -{ - PIXI.Strip.call( this, texture ); - this.points = points; - - this.vertices = new PIXI.Float32Array(points.length * 4); - this.uvs = new PIXI.Float32Array(points.length * 4); - this.colors = new PIXI.Float32Array(points.length * 2); - this.indices = new PIXI.Uint16Array(points.length * 2); - - - this.refresh(); -}; - - -// constructor -PIXI.Rope.prototype = Object.create( PIXI.Strip.prototype ); -PIXI.Rope.prototype.constructor = PIXI.Rope; - -/* - * Refreshes - * - * @method refresh - */ -PIXI.Rope.prototype.refresh = function() -{ - var points = this.points; - if(points.length < 1) return; - - var uvs = this.uvs; - - var lastPoint = points[0]; - var indices = this.indices; - var colors = this.colors; - - this.count-=0.2; - - uvs[0] = 0; - uvs[1] = 0; - uvs[2] = 0; - uvs[3] = 1; - - colors[0] = 1; - colors[1] = 1; - - indices[0] = 0; - indices[1] = 1; - - var total = points.length, - point, index, amount; - - for (var i = 1; i < total; i++) - { - point = points[i]; - index = i * 4; - // time to do some smart drawing! - amount = i / (total-1); - - if(i%2) - { - uvs[index] = amount; - uvs[index+1] = 0; - - uvs[index+2] = amount; - uvs[index+3] = 1; - } - else - { - uvs[index] = amount; - uvs[index+1] = 0; - - uvs[index+2] = amount; - uvs[index+3] = 1; - } - - index = i * 2; - colors[index] = 1; - colors[index+1] = 1; - - index = i * 2; - indices[index] = index; - indices[index + 1] = index + 1; - - lastPoint = point; - } -}; - -/* - * Updates the object transform for rendering - * - * @method updateTransform - * @private - */ -PIXI.Rope.prototype.updateTransform = function() -{ - - var points = this.points; - if(points.length < 1)return; - - var lastPoint = points[0]; - var nextPoint; - var perp = {x:0, y:0}; - - this.count-=0.2; - - var vertices = this.vertices; - var total = points.length, - point, index, ratio, perpLength, num; - - for (var i = 0; i < total; i++) - { - point = points[i]; - index = i * 4; - - if(i < points.length-1) - { - nextPoint = points[i+1]; - } - else - { - nextPoint = point; - } - - perp.y = -(nextPoint.x - lastPoint.x); - perp.x = nextPoint.y - lastPoint.y; - - ratio = (1 - (i / (total-1))) * 10; - - if(ratio > 1) ratio = 1; - - perpLength = Math.sqrt(perp.x * perp.x + perp.y * perp.y); - num = this.texture.height / 2; //(20 + Math.abs(Math.sin((i + this.count) * 0.3) * 50) )* ratio; - perp.x /= perpLength; - perp.y /= perpLength; - - perp.x *= num; - perp.y *= num; - - vertices[index] = point.x + perp.x; - vertices[index+1] = point.y + perp.y; - vertices[index+2] = point.x - perp.x; - vertices[index+3] = point.y - perp.y; - - lastPoint = point; - } - - PIXI.DisplayObjectContainer.prototype.updateTransform.call( this ); -}; -/* - * Sets the texture that the Rope will use - * - * @method setTexture - * @param texture {Texture} the texture that will be used - */ -PIXI.Rope.prototype.setTexture = function(texture) -{ - // stop current texture - this.texture = texture; - //this.updateFrame = true; -}; - /** * @author Richard Davey * @copyright 2015 Photon Storm Ltd, Richard Davey @@ -44651,555 +58846,6 @@ Object.defineProperty(Phaser.Rope.prototype, "segments", { }); -/** - * @author Mat Groves http://matgroves.com/ - */ - -/** - * A tiling sprite is a fast way of rendering a tiling image - * - * @class TilingSprite - * @extends Sprite - * @constructor - * @param texture {Texture} the texture of the tiling sprite - * @param width {Number} the width of the tiling sprite - * @param height {Number} the height of the tiling sprite - */ -PIXI.TilingSprite = function(texture, width, height) -{ - PIXI.Sprite.call(this, texture); - - /** - * The width of the tiling sprite - * - * @property width - * @type Number - */ - this._width = width || 128; - - /** - * The height of the tiling sprite - * - * @property height - * @type Number - */ - this._height = height || 128; - - /** - * The scaling of the image that is being tiled - * - * @property tileScale - * @type Point - */ - this.tileScale = new PIXI.Point(1, 1); - - /** - * A point that represents the scale of the texture object - * - * @property tileScaleOffset - * @type Point - */ - this.tileScaleOffset = new PIXI.Point(1, 1); - - /** - * The offset position of the image that is being tiled - * - * @property tilePosition - * @type Point - */ - this.tilePosition = new PIXI.Point(); - - /** - * Whether this sprite is renderable or not - * - * @property renderable - * @type Boolean - * @default true - */ - this.renderable = true; - - /** - * The tint applied to the sprite. This is a hex value - * - * @property tint - * @type Number - * @default 0xFFFFFF - */ - this.tint = 0xFFFFFF; - - /** - * If enabled a green rectangle will be drawn behind the generated tiling texture, allowing you to visually - * debug the texture being used. - * - * @property textureDebug - * @type Boolean - */ - this.textureDebug = false; - - /** - * The blend mode to be applied to the sprite - * - * @property blendMode - * @type Number - * @default PIXI.blendModes.NORMAL; - */ - this.blendMode = PIXI.blendModes.NORMAL; - - /** - * The CanvasBuffer object that the tiled texture is drawn to. - * - * @property canvasBuffer - * @type PIXI.CanvasBuffer - */ - this.canvasBuffer = null; - - /** - * An internal Texture object that holds the tiling texture that was generated from TilingSprite.texture. - * - * @property tilingTexture - * @type PIXI.Texture - */ - this.tilingTexture = null; - - /** - * The Context fill pattern that is used to draw the TilingSprite in Canvas mode only (will be null in WebGL). - * - * @property tilePattern - * @type PIXI.Texture - */ - this.tilePattern = null; - - /** - * If true the TilingSprite will run generateTexture on its **next** render pass. - * This is set by the likes of Phaser.LoadTexture.setFrame. - * - * @property refreshTexture - * @type Boolean - * @default true - */ - this.refreshTexture = true; - - this.frameWidth = 0; - this.frameHeight = 0; - -}; - -PIXI.TilingSprite.prototype = Object.create(PIXI.Sprite.prototype); -PIXI.TilingSprite.prototype.constructor = PIXI.TilingSprite; - -PIXI.TilingSprite.prototype.setTexture = function(texture) -{ - if (this.texture !== texture) - { - this.texture = texture; - this.refreshTexture = true; - this.cachedTint = 0xFFFFFF; - } - -}; - -/** -* Renders the object using the WebGL renderer -* -* @method _renderWebGL -* @param renderSession {RenderSession} -* @private -*/ -PIXI.TilingSprite.prototype._renderWebGL = function(renderSession) -{ - if (this.visible === false || this.alpha === 0) - { - return; - } - - if (this._mask) - { - renderSession.spriteBatch.stop(); - renderSession.maskManager.pushMask(this.mask, renderSession); - renderSession.spriteBatch.start(); - } - - if (this._filters) - { - renderSession.spriteBatch.flush(); - renderSession.filterManager.pushFilter(this._filterBlock); - } - - if (this.refreshTexture) - { - this.generateTilingTexture(true); - - if (this.tilingTexture) - { - if (this.tilingTexture.needsUpdate) - { - renderSession.renderer.updateTexture(this.tilingTexture.baseTexture); - this.tilingTexture.needsUpdate = false; - } - } - else - { - return; - } - } - - renderSession.spriteBatch.renderTilingSprite(this); - - for (var i = 0; i < this.children.length; i++) - { - this.children[i]._renderWebGL(renderSession); - } - - renderSession.spriteBatch.stop(); - - if (this._filters) - { - renderSession.filterManager.popFilter(); - } - - if (this._mask) - { - renderSession.maskManager.popMask(this._mask, renderSession); - } - - renderSession.spriteBatch.start(); - -}; - -/** -* Renders the object using the Canvas renderer -* -* @method _renderCanvas -* @param renderSession {RenderSession} -* @private -*/ -PIXI.TilingSprite.prototype._renderCanvas = function(renderSession) -{ - if (this.visible === false || this.alpha === 0) - { - return; - } - - var context = renderSession.context; - - if (this._mask) - { - renderSession.maskManager.pushMask(this._mask, renderSession); - } - - context.globalAlpha = this.worldAlpha; - - var wt = this.worldTransform; - var resolution = renderSession.resolution; - - context.setTransform(wt.a * resolution, - wt.b * resolution, - wt.c * resolution, - wt.d * resolution, - wt.tx * resolution, - wt.ty * resolution); - - if (this.refreshTexture) - { - this.generateTilingTexture(false); - - if (this.tilingTexture) - { - this.tilePattern = context.createPattern(this.tilingTexture.baseTexture.source, 'repeat'); - } - else - { - return; - } - } - - var sessionBlendMode = renderSession.currentBlendMode; - - // Check blend mode - if (this.blendMode !== renderSession.currentBlendMode) - { - renderSession.currentBlendMode = this.blendMode; - context.globalCompositeOperation = PIXI.blendModesCanvas[renderSession.currentBlendMode]; - } - - var tilePosition = this.tilePosition; - var tileScale = this.tileScale; - - tilePosition.x %= this.tilingTexture.baseTexture.width; - tilePosition.y %= this.tilingTexture.baseTexture.height; - - // Translate - context.scale(tileScale.x, tileScale.y); - context.translate(tilePosition.x + (this.anchor.x * -this._width), tilePosition.y + (this.anchor.y * -this._height)); - - context.fillStyle = this.tilePattern; - - var tx = -tilePosition.x; - var ty = -tilePosition.y; - var tw = this._width / tileScale.x; - var th = this._height / tileScale.y; - - // Allow for pixel rounding - if (renderSession.roundPixels) - { - tx | 0; - ty | 0; - tw | 0; - th | 0; - } - - context.fillRect(tx, ty, tw, th); - - // Translate back again - context.scale(1 / tileScale.x, 1 / tileScale.y); - context.translate(-tilePosition.x + (this.anchor.x * this._width), -tilePosition.y + (this.anchor.y * this._height)); - - if (this._mask) - { - renderSession.maskManager.popMask(renderSession); - } - - for (var i = 0; i < this.children.length; i++) - { - this.children[i]._renderCanvas(renderSession); - } - - // Reset blend mode - if (sessionBlendMode !== this.blendMode) - { - renderSession.currentBlendMode = sessionBlendMode; - context.globalCompositeOperation = PIXI.blendModesCanvas[sessionBlendMode]; - } - -}; - -/** - * When the texture is updated, this event will fire to update the scale and frame - * - * @method onTextureUpdate - * @param event - * @private - */ -PIXI.TilingSprite.prototype.onTextureUpdate = function() -{ - // overriding the sprite version of this! -}; - -/** -* -* @method generateTilingTexture -* -* @param forcePowerOfTwo {Boolean} Whether we want to force the texture to be a power of two -*/ -PIXI.TilingSprite.prototype.generateTilingTexture = function(forcePowerOfTwo) -{ - if (!this.texture.baseTexture.hasLoaded) - { - return; - } - - var texture = this.texture; - var frame = texture.frame; - - var targetWidth = this._frame.sourceSizeW; - var targetHeight = this._frame.sourceSizeH; - - var dx = 0; - var dy = 0; - - if (this._frame.trimmed) - { - dx = this._frame.spriteSourceSizeX; - dy = this._frame.spriteSourceSizeY; - } - - if (forcePowerOfTwo) - { - targetWidth = PIXI.getNextPowerOfTwo(targetWidth); - targetHeight = PIXI.getNextPowerOfTwo(targetHeight); - } - - if (this.canvasBuffer) - { - this.canvasBuffer.resize(targetWidth, targetHeight); - this.tilingTexture.baseTexture.width = targetWidth; - this.tilingTexture.baseTexture.height = targetHeight; - this.tilingTexture.needsUpdate = true; - } - else - { - this.canvasBuffer = new PIXI.CanvasBuffer(targetWidth, targetHeight); - this.tilingTexture = PIXI.Texture.fromCanvas(this.canvasBuffer.canvas); - this.tilingTexture = PIXI.Texture.fromCanvas(this.canvasBuffer.canvas); - this.tilingTexture.isTiling = true; - this.tilingTexture.needsUpdate = true; - } - - if (this.textureDebug) - { - this.canvasBuffer.context.strokeStyle = '#00ff00'; - this.canvasBuffer.context.strokeRect(0, 0, targetWidth, targetHeight); - } - - // If a sprite sheet we need this: - var w = texture.crop.width; - var h = texture.crop.height; - - if (w !== targetWidth || h !== targetHeight) - { - w = targetWidth; - h = targetHeight; - } - - this.canvasBuffer.context.drawImage(texture.baseTexture.source, - texture.crop.x, - texture.crop.y, - texture.crop.width, - texture.crop.height, - dx, - dy, - w, - h); - - this.tileScaleOffset.x = frame.width / targetWidth; - this.tileScaleOffset.y = frame.height / targetHeight; - - this.refreshTexture = false; - - this.tilingTexture.baseTexture._powerOf2 = true; - -}; - -/** -* Returns the framing rectangle of the sprite as a PIXI.Rectangle object -* -* @method getBounds -* @return {Rectangle} the framing rectangle -*/ -PIXI.TilingSprite.prototype.getBounds = function() -{ - var width = this._width; - var height = this._height; - - var w0 = width * (1-this.anchor.x); - var w1 = width * -this.anchor.x; - - var h0 = height * (1-this.anchor.y); - var h1 = height * -this.anchor.y; - - var worldTransform = this.worldTransform; - - var a = worldTransform.a; - var b = worldTransform.b; - var c = worldTransform.c; - var d = worldTransform.d; - var tx = worldTransform.tx; - var ty = worldTransform.ty; - - var x1 = a * w1 + c * h1 + tx; - var y1 = d * h1 + b * w1 + ty; - - var x2 = a * w0 + c * h1 + tx; - var y2 = d * h1 + b * w0 + ty; - - var x3 = a * w0 + c * h0 + tx; - var y3 = d * h0 + b * w0 + ty; - - var x4 = a * w1 + c * h0 + tx; - var y4 = d * h0 + b * w1 + ty; - - var maxX = -Infinity; - var maxY = -Infinity; - - var minX = Infinity; - var minY = Infinity; - - minX = x1 < minX ? x1 : minX; - minX = x2 < minX ? x2 : minX; - minX = x3 < minX ? x3 : minX; - minX = x4 < minX ? x4 : minX; - - minY = y1 < minY ? y1 : minY; - minY = y2 < minY ? y2 : minY; - minY = y3 < minY ? y3 : minY; - minY = y4 < minY ? y4 : minY; - - maxX = x1 > maxX ? x1 : maxX; - maxX = x2 > maxX ? x2 : maxX; - maxX = x3 > maxX ? x3 : maxX; - maxX = x4 > maxX ? x4 : maxX; - - maxY = y1 > maxY ? y1 : maxY; - maxY = y2 > maxY ? y2 : maxY; - maxY = y3 > maxY ? y3 : maxY; - maxY = y4 > maxY ? y4 : maxY; - - var bounds = this._bounds; - - bounds.x = minX; - bounds.width = maxX - minX; - - bounds.y = minY; - bounds.height = maxY - minY; - - // store a reference so that if this function gets called again in the render cycle we do not have to recalculate - this._currentBounds = bounds; - - return bounds; -}; - -PIXI.TilingSprite.prototype.destroy = function () { - - PIXI.Sprite.prototype.destroy.call(this); - - this.tileScale = null; - this.tileScaleOffset = null; - this.tilePosition = null; - - if (this.tilingTexture) - { - this.tilingTexture.destroy(true); - this.tilingTexture = null; - } - -}; - -/** - * The width of the sprite, setting this will actually modify the scale to achieve the value set - * - * @property width - * @type Number - */ -Object.defineProperty(PIXI.TilingSprite.prototype, 'width', { - - get: function() { - return this._width; - }, - - set: function(value) { - this._width = value; - } - -}); - -/** - * The height of the TilingSprite, setting this will actually modify the scale to achieve the value set - * - * @property height - * @type Number - */ -Object.defineProperty(PIXI.TilingSprite.prototype, 'height', { - - get: function() { - return this._height; - }, - - set: function(value) { - this._height = value; - } - -}); - /** * @author Richard Davey * @copyright 2015 Photon Storm Ltd. @@ -56989,6 +70635,9 @@ Phaser.Cache.prototype = { /** * Gets a PIXI.Texture by key from the PIXI.TextureCache. * + * If the texture isn't found in the cache, then it searches the Phaser Image Cache and + * creates a new PIXI.Texture object which is then returned. + * * @method Phaser.Cache#getPixiTexture * @deprecated * @param {string} key - Asset key of the Texture to retrieve from the Cache. @@ -57002,19 +70651,29 @@ Phaser.Cache.prototype = { } else { - console.warn('Phaser.Cache.getPixiTexture: Invalid key: "' + key + '"'); - return null; + var base = this.getPixiBaseTexture(key); + + if (base) + { + return new PIXI.Texture(base); + } + else + { + return null; + } } }, /** - * Gets a PIXI.BaseTexture by key from the PIXI.BaseTExtureCache. + * Gets a PIXI.BaseTexture by key from the PIXI.BaseTextureCache. + * + * If the texture isn't found in the cache, then it searches the Phaser Image Cache. * * @method Phaser.Cache#getPixiBaseTexture * @deprecated * @param {string} key - Asset key of the BaseTexture to retrieve from the Cache. - * @return {PIXI.BaseTexture} The BaseTexture object. + * @return {PIXI.BaseTexture} The BaseTexture object or null if not found. */ getPixiBaseTexture: function (key) { @@ -57024,8 +70683,16 @@ Phaser.Cache.prototype = { } else { - console.warn('Phaser.Cache.getPixiBaseTexture: Invalid key: "' + key + '"'); - return null; + var img = this.getItem(key, Phaser.Cache.IMAGE, 'getPixiBaseTexture'); + + if (img !== null) + { + return img.base; + } + else + { + return null; + } } }, @@ -57068,9 +70735,9 @@ Phaser.Cache.prototype = { var out = []; - if (this._cache[cache]) + if (this._cacheMap[cache]) { - for (var key in this._cache[cache]) + for (var key in this._cacheMap[cache]) { if (key !== '__default' && key !== '__missing') { @@ -68988,13619 +82655,6 @@ Phaser.Physics.Arcade.TilemapCollision.prototype = { // Merge this with the Arcade Physics prototype Phaser.Utils.mixinPrototype(Phaser.Physics.Arcade.prototype, Phaser.Physics.Arcade.TilemapCollision.prototype); -/** - * The MIT License (MIT) - * - * Copyright (c) 2015 p2.js authors - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in - * all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN - * THE SOFTWARE. - */ -!function(e){if("object"==typeof exports)module.exports=e();else if("function"==typeof define&&false)define(e);else{var f;"undefined"!=typeof window?f=window:"undefined"!=typeof global?f=global:"undefined"!=typeof self&&(f=self),f.p2=e()}}(function(){var define,module,exports;return (function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require=="function"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);throw new Error("Cannot find module '"+o+"'")}var f=n[o]={exports:{}};t[o][0].call(f.exports,function(e){var n=t[o][1][e];return s(n?n:e)},f,f.exports,e,t,n,r)}return n[o].exports}var i=typeof require=="function"&&require;for(var o=0;o=0 && s<=1 && t>=0 && t<=1); -}; - - -},{"./Scalar":4}],2:[function(_dereq_,module,exports){ -module.exports = Point; - -/** - * Point related functions - * @class Point - */ -function Point(){}; - -/** - * Get the area of a triangle spanned by the three given points. Note that the area will be negative if the points are not given in counter-clockwise order. - * @static - * @method area - * @param {Array} a - * @param {Array} b - * @param {Array} c - * @return {Number} - */ -Point.area = function(a,b,c){ - return (((b[0] - a[0])*(c[1] - a[1]))-((c[0] - a[0])*(b[1] - a[1]))); -}; - -Point.left = function(a,b,c){ - return Point.area(a,b,c) > 0; -}; - -Point.leftOn = function(a,b,c) { - return Point.area(a, b, c) >= 0; -}; - -Point.right = function(a,b,c) { - return Point.area(a, b, c) < 0; -}; - -Point.rightOn = function(a,b,c) { - return Point.area(a, b, c) <= 0; -}; - -var tmpPoint1 = [], - tmpPoint2 = []; - -/** - * Check if three points are collinear - * @method collinear - * @param {Array} a - * @param {Array} b - * @param {Array} c - * @param {Number} [thresholdAngle=0] Threshold angle to use when comparing the vectors. The function will return true if the angle between the resulting vectors is less than this value. Use zero for max precision. - * @return {Boolean} - */ -Point.collinear = function(a,b,c,thresholdAngle) { - if(!thresholdAngle) - return Point.area(a, b, c) == 0; - else { - var ab = tmpPoint1, - bc = tmpPoint2; - - ab[0] = b[0]-a[0]; - ab[1] = b[1]-a[1]; - bc[0] = c[0]-b[0]; - bc[1] = c[1]-b[1]; - - var dot = ab[0]*bc[0] + ab[1]*bc[1], - magA = Math.sqrt(ab[0]*ab[0] + ab[1]*ab[1]), - magB = Math.sqrt(bc[0]*bc[0] + bc[1]*bc[1]), - angle = Math.acos(dot/(magA*magB)); - return angle < thresholdAngle; - } -}; - -Point.sqdist = function(a,b){ - var dx = b[0] - a[0]; - var dy = b[1] - a[1]; - return dx * dx + dy * dy; -}; - -},{}],3:[function(_dereq_,module,exports){ -var Line = _dereq_("./Line") -, Point = _dereq_("./Point") -, Scalar = _dereq_("./Scalar") - -module.exports = Polygon; - -/** - * Polygon class. - * @class Polygon - * @constructor - */ -function Polygon(){ - - /** - * Vertices that this polygon consists of. An array of array of numbers, example: [[0,0],[1,0],..] - * @property vertices - * @type {Array} - */ - this.vertices = []; -} - -/** - * Get a vertex at position i. It does not matter if i is out of bounds, this function will just cycle. - * @method at - * @param {Number} i - * @return {Array} - */ -Polygon.prototype.at = function(i){ - var v = this.vertices, - s = v.length; - return v[i < 0 ? i % s + s : i % s]; -}; - -/** - * Get first vertex - * @method first - * @return {Array} - */ -Polygon.prototype.first = function(){ - return this.vertices[0]; -}; - -/** - * Get last vertex - * @method last - * @return {Array} - */ -Polygon.prototype.last = function(){ - return this.vertices[this.vertices.length-1]; -}; - -/** - * Clear the polygon data - * @method clear - * @return {Array} - */ -Polygon.prototype.clear = function(){ - this.vertices.length = 0; -}; - -/** - * Append points "from" to "to"-1 from an other polygon "poly" onto this one. - * @method append - * @param {Polygon} poly The polygon to get points from. - * @param {Number} from The vertex index in "poly". - * @param {Number} to The end vertex index in "poly". Note that this vertex is NOT included when appending. - * @return {Array} - */ -Polygon.prototype.append = function(poly,from,to){ - if(typeof(from) == "undefined") throw new Error("From is not given!"); - if(typeof(to) == "undefined") throw new Error("To is not given!"); - - if(to-1 < from) throw new Error("lol1"); - if(to > poly.vertices.length) throw new Error("lol2"); - if(from < 0) throw new Error("lol3"); - - for(var i=from; i v[br][0])) { - br = i; - } - } - - // reverse poly if clockwise - if (!Point.left(this.at(br - 1), this.at(br), this.at(br + 1))) { - this.reverse(); - } -}; - -/** - * Reverse the vertices in the polygon - * @method reverse - */ -Polygon.prototype.reverse = function(){ - var tmp = []; - for(var i=0, N=this.vertices.length; i!==N; i++){ - tmp.push(this.vertices.pop()); - } - this.vertices = tmp; -}; - -/** - * Check if a point in the polygon is a reflex point - * @method isReflex - * @param {Number} i - * @return {Boolean} - */ -Polygon.prototype.isReflex = function(i){ - return Point.right(this.at(i - 1), this.at(i), this.at(i + 1)); -}; - -var tmpLine1=[], - tmpLine2=[]; - -/** - * Check if two vertices in the polygon can see each other - * @method canSee - * @param {Number} a Vertex index 1 - * @param {Number} b Vertex index 2 - * @return {Boolean} - */ -Polygon.prototype.canSee = function(a,b) { - var p, dist, l1=tmpLine1, l2=tmpLine2; - - if (Point.leftOn(this.at(a + 1), this.at(a), this.at(b)) && Point.rightOn(this.at(a - 1), this.at(a), this.at(b))) { - return false; - } - dist = Point.sqdist(this.at(a), this.at(b)); - for (var i = 0; i !== this.vertices.length; ++i) { // for each edge - if ((i + 1) % this.vertices.length === a || i === a) // ignore incident edges - continue; - if (Point.leftOn(this.at(a), this.at(b), this.at(i + 1)) && Point.rightOn(this.at(a), this.at(b), this.at(i))) { // if diag intersects an edge - l1[0] = this.at(a); - l1[1] = this.at(b); - l2[0] = this.at(i); - l2[1] = this.at(i + 1); - p = Line.lineInt(l1,l2); - if (Point.sqdist(this.at(a), p) < dist) { // if edge is blocking visibility to b - return false; - } - } - } - - return true; -}; - -/** - * Copy the polygon from vertex i to vertex j. - * @method copy - * @param {Number} i - * @param {Number} j - * @param {Polygon} [targetPoly] Optional target polygon to save in. - * @return {Polygon} The resulting copy. - */ -Polygon.prototype.copy = function(i,j,targetPoly){ - var p = targetPoly || new Polygon(); - p.clear(); - if (i < j) { - // Insert all vertices from i to j - for(var k=i; k<=j; k++) - p.vertices.push(this.vertices[k]); - - } else { - - // Insert vertices 0 to j - for(var k=0; k<=j; k++) - p.vertices.push(this.vertices[k]); - - // Insert vertices i to end - for(var k=i; k 0) - return this.slice(edges); - else - return [this]; -}; - -/** - * Slices the polygon given one or more cut edges. If given one, this function will return two polygons (false on failure). If many, an array of polygons. - * @method slice - * @param {Array} cutEdges A list of edges, as returned by .getCutEdges() - * @return {Array} - */ -Polygon.prototype.slice = function(cutEdges){ - if(cutEdges.length == 0) return [this]; - if(cutEdges instanceof Array && cutEdges.length && cutEdges[0] instanceof Array && cutEdges[0].length==2 && cutEdges[0][0] instanceof Array){ - - var polys = [this]; - - for(var i=0; i maxlevel){ - console.warn("quickDecomp: max level ("+maxlevel+") reached."); - return result; - } - - for (var i = 0; i < this.vertices.length; ++i) { - if (poly.isReflex(i)) { - reflexVertices.push(poly.vertices[i]); - upperDist = lowerDist = Number.MAX_VALUE; - - - for (var j = 0; j < this.vertices.length; ++j) { - if (Point.left(poly.at(i - 1), poly.at(i), poly.at(j)) - && Point.rightOn(poly.at(i - 1), poly.at(i), poly.at(j - 1))) { // if line intersects with an edge - p = getIntersectionPoint(poly.at(i - 1), poly.at(i), poly.at(j), poly.at(j - 1)); // find the point of intersection - if (Point.right(poly.at(i + 1), poly.at(i), p)) { // make sure it's inside the poly - d = Point.sqdist(poly.vertices[i], p); - if (d < lowerDist) { // keep only the closest intersection - lowerDist = d; - lowerInt = p; - lowerIndex = j; - } - } - } - if (Point.left(poly.at(i + 1), poly.at(i), poly.at(j + 1)) - && Point.rightOn(poly.at(i + 1), poly.at(i), poly.at(j))) { - p = getIntersectionPoint(poly.at(i + 1), poly.at(i), poly.at(j), poly.at(j + 1)); - if (Point.left(poly.at(i - 1), poly.at(i), p)) { - d = Point.sqdist(poly.vertices[i], p); - if (d < upperDist) { - upperDist = d; - upperInt = p; - upperIndex = j; - } - } - } - } - - // if there are no vertices to connect to, choose a point in the middle - if (lowerIndex == (upperIndex + 1) % this.vertices.length) { - //console.log("Case 1: Vertex("+i+"), lowerIndex("+lowerIndex+"), upperIndex("+upperIndex+"), poly.size("+this.vertices.length+")"); - p[0] = (lowerInt[0] + upperInt[0]) / 2; - p[1] = (lowerInt[1] + upperInt[1]) / 2; - steinerPoints.push(p); - - if (i < upperIndex) { - //lowerPoly.insert(lowerPoly.end(), poly.begin() + i, poly.begin() + upperIndex + 1); - lowerPoly.append(poly, i, upperIndex+1); - lowerPoly.vertices.push(p); - upperPoly.vertices.push(p); - if (lowerIndex != 0){ - //upperPoly.insert(upperPoly.end(), poly.begin() + lowerIndex, poly.end()); - upperPoly.append(poly,lowerIndex,poly.vertices.length); - } - //upperPoly.insert(upperPoly.end(), poly.begin(), poly.begin() + i + 1); - upperPoly.append(poly,0,i+1); - } else { - if (i != 0){ - //lowerPoly.insert(lowerPoly.end(), poly.begin() + i, poly.end()); - lowerPoly.append(poly,i,poly.vertices.length); - } - //lowerPoly.insert(lowerPoly.end(), poly.begin(), poly.begin() + upperIndex + 1); - lowerPoly.append(poly,0,upperIndex+1); - lowerPoly.vertices.push(p); - upperPoly.vertices.push(p); - //upperPoly.insert(upperPoly.end(), poly.begin() + lowerIndex, poly.begin() + i + 1); - upperPoly.append(poly,lowerIndex,i+1); - } - } else { - // connect to the closest point within the triangle - //console.log("Case 2: Vertex("+i+"), closestIndex("+closestIndex+"), poly.size("+this.vertices.length+")\n"); - - if (lowerIndex > upperIndex) { - upperIndex += this.vertices.length; - } - closestDist = Number.MAX_VALUE; - - if(upperIndex < lowerIndex){ - return result; - } - - for (var j = lowerIndex; j <= upperIndex; ++j) { - if (Point.leftOn(poly.at(i - 1), poly.at(i), poly.at(j)) - && Point.rightOn(poly.at(i + 1), poly.at(i), poly.at(j))) { - d = Point.sqdist(poly.at(i), poly.at(j)); - if (d < closestDist) { - closestDist = d; - closestIndex = j % this.vertices.length; - } - } - } - - if (i < closestIndex) { - lowerPoly.append(poly,i,closestIndex+1); - if (closestIndex != 0){ - upperPoly.append(poly,closestIndex,v.length); - } - upperPoly.append(poly,0,i+1); - } else { - if (i != 0){ - lowerPoly.append(poly,i,v.length); - } - lowerPoly.append(poly,0,closestIndex+1); - upperPoly.append(poly,closestIndex,i+1); - } - } - - // solve smallest poly first - if (lowerPoly.vertices.length < upperPoly.vertices.length) { - lowerPoly.quickDecomp(result,reflexVertices,steinerPoints,delta,maxlevel,level); - upperPoly.quickDecomp(result,reflexVertices,steinerPoints,delta,maxlevel,level); - } else { - upperPoly.quickDecomp(result,reflexVertices,steinerPoints,delta,maxlevel,level); - lowerPoly.quickDecomp(result,reflexVertices,steinerPoints,delta,maxlevel,level); - } - - return result; - } - } - result.push(this); - - return result; -}; - -/** - * Remove collinear points in the polygon. - * @method removeCollinearPoints - * @param {Number} [precision] The threshold angle to use when determining whether two edges are collinear. Use zero for finest precision. - * @return {Number} The number of points removed - */ -Polygon.prototype.removeCollinearPoints = function(precision){ - var num = 0; - for(var i=this.vertices.length-1; this.vertices.length>3 && i>=0; --i){ - if(Point.collinear(this.at(i-1),this.at(i),this.at(i+1),precision)){ - // Remove the middle point - this.vertices.splice(i%this.vertices.length,1); - i--; // Jump one point forward. Otherwise we may get a chain removal - num++; - } - } - return num; -}; - -},{"./Line":1,"./Point":2,"./Scalar":4}],4:[function(_dereq_,module,exports){ -module.exports = Scalar; - -/** - * Scalar functions - * @class Scalar - */ -function Scalar(){} - -/** - * Check if two scalars are equal - * @static - * @method eq - * @param {Number} a - * @param {Number} b - * @param {Number} [precision] - * @return {Boolean} - */ -Scalar.eq = function(a,b,precision){ - precision = precision || 0; - return Math.abs(a-b) < precision; -}; - -},{}],5:[function(_dereq_,module,exports){ -module.exports = { - Polygon : _dereq_("./Polygon"), - Point : _dereq_("./Point"), -}; - -},{"./Point":2,"./Polygon":3}],6:[function(_dereq_,module,exports){ -module.exports={ - "name": "p2", - "version": "0.7.0", - "description": "A JavaScript 2D physics engine.", - "author": "Stefan Hedman (http://steffe.se)", - "keywords": [ - "p2.js", - "p2", - "physics", - "engine", - "2d" - ], - "main": "./src/p2.js", - "engines": { - "node": "*" - }, - "repository": { - "type": "git", - "url": "https://github.com/schteppe/p2.js.git" - }, - "bugs": { - "url": "https://github.com/schteppe/p2.js/issues" - }, - "licenses": [ - { - "type": "MIT" - } - ], - "devDependencies": { - "grunt": "^0.4.5", - "grunt-contrib-jshint": "^0.11.2", - "grunt-contrib-nodeunit": "^0.4.1", - "grunt-contrib-uglify": "~0.4.0", - "grunt-contrib-watch": "~0.5.0", - "grunt-browserify": "~2.0.1", - "grunt-contrib-concat": "^0.4.0" - }, - "dependencies": { - "poly-decomp": "0.1.0" - } -} - -},{}],7:[function(_dereq_,module,exports){ -var vec2 = _dereq_('../math/vec2') -, Utils = _dereq_('../utils/Utils'); - -module.exports = AABB; - -/** - * Axis aligned bounding box class. - * @class AABB - * @constructor - * @param {Object} [options] - * @param {Array} [options.upperBound] - * @param {Array} [options.lowerBound] - */ -function AABB(options){ - - /** - * The lower bound of the bounding box. - * @property lowerBound - * @type {Array} - */ - this.lowerBound = vec2.create(); - if(options && options.lowerBound){ - vec2.copy(this.lowerBound, options.lowerBound); - } - - /** - * The upper bound of the bounding box. - * @property upperBound - * @type {Array} - */ - this.upperBound = vec2.create(); - if(options && options.upperBound){ - vec2.copy(this.upperBound, options.upperBound); - } -} - -var tmp = vec2.create(); - -/** - * Set the AABB bounds from a set of points, transformed by the given position and angle. - * @method setFromPoints - * @param {Array} points An array of vec2's. - * @param {Array} position - * @param {number} angle - * @param {number} skinSize Some margin to be added to the AABB. - */ -AABB.prototype.setFromPoints = function(points, position, angle, skinSize){ - var l = this.lowerBound, - u = this.upperBound; - - if(typeof(angle) !== "number"){ - angle = 0; - } - - // Set to the first point - if(angle !== 0){ - vec2.rotate(l, points[0], angle); - } else { - vec2.copy(l, points[0]); - } - vec2.copy(u, l); - - // Compute cosines and sines just once - var cosAngle = Math.cos(angle), - sinAngle = Math.sin(angle); - for(var i = 1; i u[j]){ - u[j] = p[j]; - } - if(p[j] < l[j]){ - l[j] = p[j]; - } - } - } - - // Add offset - if(position){ - vec2.add(this.lowerBound, this.lowerBound, position); - vec2.add(this.upperBound, this.upperBound, position); - } - - if(skinSize){ - this.lowerBound[0] -= skinSize; - this.lowerBound[1] -= skinSize; - this.upperBound[0] += skinSize; - this.upperBound[1] += skinSize; - } -}; - -/** - * Copy bounds from an AABB to this AABB - * @method copy - * @param {AABB} aabb - */ -AABB.prototype.copy = function(aabb){ - vec2.copy(this.lowerBound, aabb.lowerBound); - vec2.copy(this.upperBound, aabb.upperBound); -}; - -/** - * Extend this AABB so that it covers the given AABB too. - * @method extend - * @param {AABB} aabb - */ -AABB.prototype.extend = function(aabb){ - // Loop over x and y - var i = 2; - while(i--){ - // Extend lower bound - var l = aabb.lowerBound[i]; - if(this.lowerBound[i] > l){ - this.lowerBound[i] = l; - } - - // Upper - var u = aabb.upperBound[i]; - if(this.upperBound[i] < u){ - this.upperBound[i] = u; - } - } -}; - -/** - * Returns true if the given AABB overlaps this AABB. - * @method overlaps - * @param {AABB} aabb - * @return {Boolean} - */ -AABB.prototype.overlaps = function(aabb){ - var l1 = this.lowerBound, - u1 = this.upperBound, - l2 = aabb.lowerBound, - u2 = aabb.upperBound; - - // l2 u2 - // |---------| - // |--------| - // l1 u1 - - return ((l2[0] <= u1[0] && u1[0] <= u2[0]) || (l1[0] <= u2[0] && u2[0] <= u1[0])) && - ((l2[1] <= u1[1] && u1[1] <= u2[1]) || (l1[1] <= u2[1] && u2[1] <= u1[1])); -}; - -/** - * @method containsPoint - * @param {Array} point - * @return {boolean} - */ -AABB.prototype.containsPoint = function(point){ - var l = this.lowerBound, - u = this.upperBound; - return l[0] <= point[0] && point[0] <= u[0] && l[1] <= point[1] && point[1] <= u[1]; -}; - -/** - * Check if the AABB is hit by a ray. - * @method overlapsRay - * @param {Ray} ray - * @return {number} -1 if no hit, a number between 0 and 1 if hit. - */ -AABB.prototype.overlapsRay = function(ray){ - var t = 0; - - // ray.direction is unit direction vector of ray - var dirFracX = 1 / ray.direction[0]; - var dirFracY = 1 / ray.direction[1]; - - // this.lowerBound is the corner of AABB with minimal coordinates - left bottom, rt is maximal corner - var t1 = (this.lowerBound[0] - ray.from[0]) * dirFracX; - var t2 = (this.upperBound[0] - ray.from[0]) * dirFracX; - var t3 = (this.lowerBound[1] - ray.from[1]) * dirFracY; - var t4 = (this.upperBound[1] - ray.from[1]) * dirFracY; - - var tmin = Math.max(Math.max(Math.min(t1, t2), Math.min(t3, t4))); - var tmax = Math.min(Math.min(Math.max(t1, t2), Math.max(t3, t4))); - - // if tmax < 0, ray (line) is intersecting AABB, but whole AABB is behing us - if (tmax < 0){ - //t = tmax; - return -1; - } - - // if tmin > tmax, ray doesn't intersect AABB - if (tmin > tmax){ - //t = tmax; - return -1; - } - - return tmin; -}; -},{"../math/vec2":30,"../utils/Utils":57}],8:[function(_dereq_,module,exports){ -var vec2 = _dereq_('../math/vec2'); -var Body = _dereq_('../objects/Body'); - -module.exports = Broadphase; - -/** - * Base class for broadphase implementations. - * @class Broadphase - * @constructor - */ -function Broadphase(type){ - - this.type = type; - - /** - * The resulting overlapping pairs. Will be filled with results during .getCollisionPairs(). - * @property result - * @type {Array} - */ - this.result = []; - - /** - * The world to search for collision pairs in. To change it, use .setWorld() - * @property world - * @type {World} - * @readOnly - */ - this.world = null; - - /** - * The bounding volume type to use in the broadphase algorithms. Should be set to Broadphase.AABB or Broadphase.BOUNDING_CIRCLE. - * @property {Number} boundingVolumeType - */ - this.boundingVolumeType = Broadphase.AABB; -} - -/** - * Axis aligned bounding box type. - * @static - * @property {Number} AABB - */ -Broadphase.AABB = 1; - -/** - * Bounding circle type. - * @static - * @property {Number} BOUNDING_CIRCLE - */ -Broadphase.BOUNDING_CIRCLE = 2; - -/** - * Set the world that we are searching for collision pairs in. - * @method setWorld - * @param {World} world - */ -Broadphase.prototype.setWorld = function(world){ - this.world = world; -}; - -/** - * Get all potential intersecting body pairs. - * @method getCollisionPairs - * @param {World} world The world to search in. - * @return {Array} An array of the bodies, ordered in pairs. Example: A result of [a,b,c,d] means that the potential pairs are: (a,b), (c,d). - */ -Broadphase.prototype.getCollisionPairs = function(world){}; - -var dist = vec2.create(); - -/** - * Check whether the bounding radius of two bodies overlap. - * @method boundingRadiusCheck - * @param {Body} bodyA - * @param {Body} bodyB - * @return {Boolean} - */ -Broadphase.boundingRadiusCheck = function(bodyA, bodyB){ - vec2.sub(dist, bodyA.position, bodyB.position); - var d2 = vec2.squaredLength(dist), - r = bodyA.boundingRadius + bodyB.boundingRadius; - return d2 <= r*r; -}; - -/** - * Check whether the bounding radius of two bodies overlap. - * @method boundingRadiusCheck - * @param {Body} bodyA - * @param {Body} bodyB - * @return {Boolean} - */ -Broadphase.aabbCheck = function(bodyA, bodyB){ - return bodyA.getAABB().overlaps(bodyB.getAABB()); -}; - -/** - * Check whether the bounding radius of two bodies overlap. - * @method boundingRadiusCheck - * @param {Body} bodyA - * @param {Body} bodyB - * @return {Boolean} - */ -Broadphase.prototype.boundingVolumeCheck = function(bodyA, bodyB){ - var result; - - switch(this.boundingVolumeType){ - case Broadphase.BOUNDING_CIRCLE: - result = Broadphase.boundingRadiusCheck(bodyA,bodyB); - break; - case Broadphase.AABB: - result = Broadphase.aabbCheck(bodyA,bodyB); - break; - default: - throw new Error('Bounding volume type not recognized: '+this.boundingVolumeType); - } - return result; -}; - -/** - * Check whether two bodies are allowed to collide at all. - * @method canCollide - * @param {Body} bodyA - * @param {Body} bodyB - * @return {Boolean} - */ -Broadphase.canCollide = function(bodyA, bodyB){ - var KINEMATIC = Body.KINEMATIC; - var STATIC = Body.STATIC; - - // Cannot collide static bodies - if(bodyA.type === STATIC && bodyB.type === STATIC){ - return false; - } - - // Cannot collide static vs kinematic bodies - if( (bodyA.type === KINEMATIC && bodyB.type === STATIC) || - (bodyA.type === STATIC && bodyB.type === KINEMATIC)){ - return false; - } - - // Cannot collide kinematic vs kinematic - if(bodyA.type === KINEMATIC && bodyB.type === KINEMATIC){ - return false; - } - - // Cannot collide both sleeping bodies - if(bodyA.sleepState === Body.SLEEPING && bodyB.sleepState === Body.SLEEPING){ - return false; - } - - // Cannot collide if one is static and the other is sleeping - if( (bodyA.sleepState === Body.SLEEPING && bodyB.type === STATIC) || - (bodyB.sleepState === Body.SLEEPING && bodyA.type === STATIC)){ - return false; - } - - return true; -}; - -Broadphase.NAIVE = 1; -Broadphase.SAP = 2; - -},{"../math/vec2":30,"../objects/Body":31}],9:[function(_dereq_,module,exports){ -var Circle = _dereq_('../shapes/Circle'), - Plane = _dereq_('../shapes/Plane'), - Shape = _dereq_('../shapes/Shape'), - Particle = _dereq_('../shapes/Particle'), - Broadphase = _dereq_('../collision/Broadphase'), - vec2 = _dereq_('../math/vec2'); - -module.exports = NaiveBroadphase; - -/** - * Naive broadphase implementation. Does N^2 tests. - * - * @class NaiveBroadphase - * @constructor - * @extends Broadphase - */ -function NaiveBroadphase(){ - Broadphase.call(this, Broadphase.NAIVE); -} -NaiveBroadphase.prototype = new Broadphase(); -NaiveBroadphase.prototype.constructor = NaiveBroadphase; - -/** - * Get the colliding pairs - * @method getCollisionPairs - * @param {World} world - * @return {Array} - */ -NaiveBroadphase.prototype.getCollisionPairs = function(world){ - var bodies = world.bodies, - result = this.result; - - result.length = 0; - - for(var i=0, Ncolliding=bodies.length; i!==Ncolliding; i++){ - var bi = bodies[i]; - - for(var j=0; j pos0 && pos < pos1){ - // We got contact! - - if(justTest){ - return true; - } - - var c = this.createContactEquation(circleBody,lineBody,circleShape,lineShape); - - vec2.scale(c.normalA, orthoDist, -1); - vec2.normalize(c.normalA, c.normalA); - - vec2.scale( c.contactPointA, c.normalA, circleRadius); - add(c.contactPointA, c.contactPointA, circleOffset); - sub(c.contactPointA, c.contactPointA, circleBody.position); - - sub(c.contactPointB, projectedPoint, lineOffset); - add(c.contactPointB, c.contactPointB, lineOffset); - sub(c.contactPointB, c.contactPointB, lineBody.position); - - this.contactEquations.push(c); - - if(this.enableFriction){ - this.frictionEquations.push(this.createFrictionFromContact(c)); - } - - return 1; - } - } - - // Add corner - verts[0] = worldVertex0; - verts[1] = worldVertex1; - - for(var i=0; i 0){ - for(var i=0; i Math.pow(r,2)){ - return 0; - } - - if(justTest){ - return true; - } - - var c = this.createContactEquation(bodyA,bodyB,shapeA,shapeB); - sub(c.normalA, offsetB, offsetA); - vec2.normalize(c.normalA,c.normalA); - - vec2.scale( c.contactPointA, c.normalA, radiusA); - vec2.scale( c.contactPointB, c.normalA, -radiusB); - - add(c.contactPointA, c.contactPointA, offsetA); - sub(c.contactPointA, c.contactPointA, bodyA.position); - - add(c.contactPointB, c.contactPointB, offsetB); - sub(c.contactPointB, c.contactPointB, bodyB.position); - - this.contactEquations.push(c); - - if(this.enableFriction){ - this.frictionEquations.push(this.createFrictionFromContact(c)); - } - return 1; -}; - -/** - * Plane/Convex Narrowphase - * @method planeConvex - * @param {Body} planeBody - * @param {Plane} planeShape - * @param {Array} planeOffset - * @param {Number} planeAngle - * @param {Body} convexBody - * @param {Convex} convexShape - * @param {Array} convexOffset - * @param {Number} convexAngle - * @param {Boolean} justTest - */ -Narrowphase.prototype[Shape.PLANE | Shape.CONVEX] = -Narrowphase.prototype[Shape.PLANE | Shape.BOX] = -Narrowphase.prototype.planeConvex = function( - planeBody, - planeShape, - planeOffset, - planeAngle, - convexBody, - convexShape, - convexOffset, - convexAngle, - justTest -){ - var worldVertex = tmp1, - worldNormal = tmp2, - dist = tmp3; - - var numReported = 0; - vec2.rotate(worldNormal, yAxis, planeAngle); - - for(var i=0; i!==convexShape.vertices.length; i++){ - var v = convexShape.vertices[i]; - vec2.rotate(worldVertex, v, convexAngle); - add(worldVertex, worldVertex, convexOffset); - - sub(dist, worldVertex, planeOffset); - - if(dot(dist,worldNormal) <= 0){ - - if(justTest){ - return true; - } - - // Found vertex - numReported++; - - var c = this.createContactEquation(planeBody,convexBody,planeShape,convexShape); - - sub(dist, worldVertex, planeOffset); - - vec2.copy(c.normalA, worldNormal); - - var d = dot(dist, c.normalA); - vec2.scale(dist, c.normalA, d); - - // rj is from convex center to contact - sub(c.contactPointB, worldVertex, convexBody.position); - - - // ri is from plane center to contact - sub( c.contactPointA, worldVertex, dist); - sub( c.contactPointA, c.contactPointA, planeBody.position); - - this.contactEquations.push(c); - - if(!this.enableFrictionReduction){ - if(this.enableFriction){ - this.frictionEquations.push(this.createFrictionFromContact(c)); - } - } - } - } - - if(this.enableFrictionReduction){ - if(this.enableFriction && numReported){ - this.frictionEquations.push(this.createFrictionFromAverage(numReported)); - } - } - - return numReported; -}; - -/** - * Narrowphase for particle vs plane - * @method particlePlane - * @param {Body} particleBody - * @param {Particle} particleShape - * @param {Array} particleOffset - * @param {Number} particleAngle - * @param {Body} planeBody - * @param {Plane} planeShape - * @param {Array} planeOffset - * @param {Number} planeAngle - * @param {Boolean} justTest - */ -Narrowphase.prototype[Shape.PARTICLE | Shape.PLANE] = -Narrowphase.prototype.particlePlane = function( - particleBody, - particleShape, - particleOffset, - particleAngle, - planeBody, - planeShape, - planeOffset, - planeAngle, - justTest -){ - var dist = tmp1, - worldNormal = tmp2; - - planeAngle = planeAngle || 0; - - sub(dist, particleOffset, planeOffset); - vec2.rotate(worldNormal, yAxis, planeAngle); - - var d = dot(dist, worldNormal); - - if(d > 0){ - return 0; - } - if(justTest){ - return true; - } - - var c = this.createContactEquation(planeBody,particleBody,planeShape,particleShape); - - vec2.copy(c.normalA, worldNormal); - vec2.scale( dist, c.normalA, d ); - // dist is now the distance vector in the normal direction - - // ri is the particle position projected down onto the plane, from the plane center - sub( c.contactPointA, particleOffset, dist); - sub( c.contactPointA, c.contactPointA, planeBody.position); - - // rj is from the body center to the particle center - sub( c.contactPointB, particleOffset, particleBody.position ); - - this.contactEquations.push(c); - - if(this.enableFriction){ - this.frictionEquations.push(this.createFrictionFromContact(c)); - } - return 1; -}; - -/** - * Circle/Particle Narrowphase - * @method circleParticle - * @param {Body} circleBody - * @param {Circle} circleShape - * @param {Array} circleOffset - * @param {Number} circleAngle - * @param {Body} particleBody - * @param {Particle} particleShape - * @param {Array} particleOffset - * @param {Number} particleAngle - * @param {Boolean} justTest - */ -Narrowphase.prototype[Shape.CIRCLE | Shape.PARTICLE] = -Narrowphase.prototype.circleParticle = function( - circleBody, - circleShape, - circleOffset, - circleAngle, - particleBody, - particleShape, - particleOffset, - particleAngle, - justTest -){ - var dist = tmp1; - - sub(dist, particleOffset, circleOffset); - if(vec2.squaredLength(dist) > Math.pow(circleShape.radius, 2)){ - return 0; - } - if(justTest){ - return true; - } - - var c = this.createContactEquation(circleBody,particleBody,circleShape,particleShape); - vec2.copy(c.normalA, dist); - vec2.normalize(c.normalA,c.normalA); - - // Vector from circle to contact point is the normal times the circle radius - vec2.scale(c.contactPointA, c.normalA, circleShape.radius); - add(c.contactPointA, c.contactPointA, circleOffset); - sub(c.contactPointA, c.contactPointA, circleBody.position); - - // Vector from particle center to contact point is zero - sub(c.contactPointB, particleOffset, particleBody.position); - - this.contactEquations.push(c); - - if(this.enableFriction){ - this.frictionEquations.push(this.createFrictionFromContact(c)); - } - - return 1; -}; - -var planeCapsule_tmpCircle = new Circle({ radius: 1 }), - planeCapsule_tmp1 = vec2.create(), - planeCapsule_tmp2 = vec2.create(), - planeCapsule_tmp3 = vec2.create(); - -/** - * @method planeCapsule - * @param {Body} planeBody - * @param {Circle} planeShape - * @param {Array} planeOffset - * @param {Number} planeAngle - * @param {Body} capsuleBody - * @param {Particle} capsuleShape - * @param {Array} capsuleOffset - * @param {Number} capsuleAngle - * @param {Boolean} justTest - */ -Narrowphase.prototype[Shape.PLANE | Shape.CAPSULE] = -Narrowphase.prototype.planeCapsule = function( - planeBody, - planeShape, - planeOffset, - planeAngle, - capsuleBody, - capsuleShape, - capsuleOffset, - capsuleAngle, - justTest -){ - var end1 = planeCapsule_tmp1, - end2 = planeCapsule_tmp2, - circle = planeCapsule_tmpCircle, - dst = planeCapsule_tmp3; - - // Compute world end positions - vec2.set(end1, -capsuleShape.length/2, 0); - vec2.rotate(end1,end1,capsuleAngle); - add(end1,end1,capsuleOffset); - - vec2.set(end2, capsuleShape.length/2, 0); - vec2.rotate(end2,end2,capsuleAngle); - add(end2,end2,capsuleOffset); - - circle.radius = capsuleShape.radius; - - var enableFrictionBefore; - - // Temporarily turn off friction - if(this.enableFrictionReduction){ - enableFrictionBefore = this.enableFriction; - this.enableFriction = false; - } - - // Do Narrowphase as two circles - var numContacts1 = this.circlePlane(capsuleBody,circle,end1,0, planeBody,planeShape,planeOffset,planeAngle, justTest), - numContacts2 = this.circlePlane(capsuleBody,circle,end2,0, planeBody,planeShape,planeOffset,planeAngle, justTest); - - // Restore friction - if(this.enableFrictionReduction){ - this.enableFriction = enableFrictionBefore; - } - - if(justTest){ - return numContacts1 || numContacts2; - } else { - var numTotal = numContacts1 + numContacts2; - if(this.enableFrictionReduction){ - if(numTotal){ - this.frictionEquations.push(this.createFrictionFromAverage(numTotal)); - } - } - return numTotal; - } -}; - -/** - * Creates ContactEquations and FrictionEquations for a collision. - * @method circlePlane - * @param {Body} bi The first body that should be connected to the equations. - * @param {Circle} si The circle shape participating in the collision. - * @param {Array} xi Extra offset to take into account for the Shape, in addition to the one in circleBody.position. Will *not* be rotated by circleBody.angle (maybe it should, for sake of homogenity?). Set to null if none. - * @param {Body} bj The second body that should be connected to the equations. - * @param {Plane} sj The Plane shape that is participating - * @param {Array} xj Extra offset for the plane shape. - * @param {Number} aj Extra angle to apply to the plane - */ -Narrowphase.prototype[Shape.CIRCLE | Shape.PLANE] = -Narrowphase.prototype.circlePlane = function( bi,si,xi,ai, bj,sj,xj,aj, justTest ){ - var circleBody = bi, - circleShape = si, - circleOffset = xi, // Offset from body center, rotated! - planeBody = bj, - shapeB = sj, - planeOffset = xj, - planeAngle = aj; - - planeAngle = planeAngle || 0; - - // Vector from plane to circle - var planeToCircle = tmp1, - worldNormal = tmp2, - temp = tmp3; - - sub(planeToCircle, circleOffset, planeOffset); - - // World plane normal - vec2.rotate(worldNormal, yAxis, planeAngle); - - // Normal direction distance - var d = dot(worldNormal, planeToCircle); - - if(d > circleShape.radius){ - return 0; // No overlap. Abort. - } - - if(justTest){ - return true; - } - - // Create contact - var contact = this.createContactEquation(planeBody,circleBody,sj,si); - - // ni is the plane world normal - vec2.copy(contact.normalA, worldNormal); - - // rj is the vector from circle center to the contact point - vec2.scale(contact.contactPointB, contact.normalA, -circleShape.radius); - add(contact.contactPointB, contact.contactPointB, circleOffset); - sub(contact.contactPointB, contact.contactPointB, circleBody.position); - - // ri is the distance from plane center to contact. - vec2.scale(temp, contact.normalA, d); - sub(contact.contactPointA, planeToCircle, temp ); // Subtract normal distance vector from the distance vector - add(contact.contactPointA, contact.contactPointA, planeOffset); - sub(contact.contactPointA, contact.contactPointA, planeBody.position); - - this.contactEquations.push(contact); - - if(this.enableFriction){ - this.frictionEquations.push( this.createFrictionFromContact(contact) ); - } - - return 1; -}; - -/** - * Convex/convex Narrowphase.See this article for more info. - * @method convexConvex - * @param {Body} bi - * @param {Convex} si - * @param {Array} xi - * @param {Number} ai - * @param {Body} bj - * @param {Convex} sj - * @param {Array} xj - * @param {Number} aj - */ -Narrowphase.prototype[Shape.CONVEX] = -Narrowphase.prototype[Shape.CONVEX | Shape.BOX] = -Narrowphase.prototype[Shape.BOX] = -Narrowphase.prototype.convexConvex = function( bi,si,xi,ai, bj,sj,xj,aj, justTest, precision ){ - var sepAxis = tmp1, - worldPoint = tmp2, - worldPoint0 = tmp3, - worldPoint1 = tmp4, - worldEdge = tmp5, - projected = tmp6, - penetrationVec = tmp7, - dist = tmp8, - worldNormal = tmp9, - numContacts = 0, - precision = typeof(precision) === 'number' ? precision : 0; - - var found = Narrowphase.findSeparatingAxis(si,xi,ai,sj,xj,aj,sepAxis); - if(!found){ - return 0; - } - - // Make sure the separating axis is directed from shape i to shape j - sub(dist,xj,xi); - if(dot(sepAxis,dist) > 0){ - vec2.scale(sepAxis,sepAxis,-1); - } - - // Find edges with normals closest to the separating axis - var closestEdge1 = Narrowphase.getClosestEdge(si,ai,sepAxis,true), // Flipped axis - closestEdge2 = Narrowphase.getClosestEdge(sj,aj,sepAxis); - - if(closestEdge1 === -1 || closestEdge2 === -1){ - return 0; - } - - // Loop over the shapes - for(var k=0; k<2; k++){ - - var closestEdgeA = closestEdge1, - closestEdgeB = closestEdge2, - shapeA = si, shapeB = sj, - offsetA = xi, offsetB = xj, - angleA = ai, angleB = aj, - bodyA = bi, bodyB = bj; - - if(k === 0){ - // Swap! - var tmp; - tmp = closestEdgeA; - closestEdgeA = closestEdgeB; - closestEdgeB = tmp; - - tmp = shapeA; - shapeA = shapeB; - shapeB = tmp; - - tmp = offsetA; - offsetA = offsetB; - offsetB = tmp; - - tmp = angleA; - angleA = angleB; - angleB = tmp; - - tmp = bodyA; - bodyA = bodyB; - bodyB = tmp; - } - - // Loop over 2 points in convex B - for(var j=closestEdgeB; j= 3){ - - if(justTest){ - return true; - } - - // worldPoint was on the "inside" side of each of the 3 checked edges. - // Project it to the center edge and use the projection direction as normal - - // Create contact - var c = this.createContactEquation(bodyA,bodyB,shapeA,shapeB); - numContacts++; - - // Get center edge from body A - var v0 = shapeA.vertices[(closestEdgeA) % shapeA.vertices.length], - v1 = shapeA.vertices[(closestEdgeA+1) % shapeA.vertices.length]; - - // Construct the edge - vec2.rotate(worldPoint0, v0, angleA); - vec2.rotate(worldPoint1, v1, angleA); - add(worldPoint0, worldPoint0, offsetA); - add(worldPoint1, worldPoint1, offsetA); - - sub(worldEdge, worldPoint1, worldPoint0); - - vec2.rotate90cw(c.normalA, worldEdge); // Normal points out of convex A - vec2.normalize(c.normalA,c.normalA); - - sub(dist, worldPoint, worldPoint0); // From edge point to the penetrating point - var d = dot(c.normalA,dist); // Penetration - vec2.scale(penetrationVec, c.normalA, d); // Vector penetration - - sub(c.contactPointA, worldPoint, offsetA); - sub(c.contactPointA, c.contactPointA, penetrationVec); - add(c.contactPointA, c.contactPointA, offsetA); - sub(c.contactPointA, c.contactPointA, bodyA.position); - - sub(c.contactPointB, worldPoint, offsetB); - add(c.contactPointB, c.contactPointB, offsetB); - sub(c.contactPointB, c.contactPointB, bodyB.position); - - this.contactEquations.push(c); - - // Todo reduce to 1 friction equation if we have 2 contact points - if(!this.enableFrictionReduction){ - if(this.enableFriction){ - this.frictionEquations.push(this.createFrictionFromContact(c)); - } - } - } - } - } - - if(this.enableFrictionReduction){ - if(this.enableFriction && numContacts){ - this.frictionEquations.push(this.createFrictionFromAverage(numContacts)); - } - } - - return numContacts; -}; - -// .projectConvex is called by other functions, need local tmp vectors -var pcoa_tmp1 = vec2.fromValues(0,0); - -/** - * Project a Convex onto a world-oriented axis - * @method projectConvexOntoAxis - * @static - * @param {Convex} convexShape - * @param {Array} convexOffset - * @param {Number} convexAngle - * @param {Array} worldAxis - * @param {Array} result - */ -Narrowphase.projectConvexOntoAxis = function(convexShape, convexOffset, convexAngle, worldAxis, result){ - var max=null, - min=null, - v, - value, - localAxis = pcoa_tmp1; - - // Convert the axis to local coords of the body - vec2.rotate(localAxis, worldAxis, -convexAngle); - - // Get projected position of all vertices - for(var i=0; i max){ - max = value; - } - if(min === null || value < min){ - min = value; - } - } - - if(min > max){ - var t = min; - min = max; - max = t; - } - - // Project the position of the body onto the axis - need to add this to the result - var offset = dot(convexOffset, worldAxis); - - vec2.set( result, min + offset, max + offset); -}; - -// .findSeparatingAxis is called by other functions, need local tmp vectors -var fsa_tmp1 = vec2.fromValues(0,0) -, fsa_tmp2 = vec2.fromValues(0,0) -, fsa_tmp3 = vec2.fromValues(0,0) -, fsa_tmp4 = vec2.fromValues(0,0) -, fsa_tmp5 = vec2.fromValues(0,0) -, fsa_tmp6 = vec2.fromValues(0,0); - -/** - * Find a separating axis between the shapes, that maximizes the separating distance between them. - * @method findSeparatingAxis - * @static - * @param {Convex} c1 - * @param {Array} offset1 - * @param {Number} angle1 - * @param {Convex} c2 - * @param {Array} offset2 - * @param {Number} angle2 - * @param {Array} sepAxis The resulting axis - * @return {Boolean} Whether the axis could be found. - */ -Narrowphase.findSeparatingAxis = function(c1,offset1,angle1,c2,offset2,angle2,sepAxis){ - var maxDist = null, - overlap = false, - found = false, - edge = fsa_tmp1, - worldPoint0 = fsa_tmp2, - worldPoint1 = fsa_tmp3, - normal = fsa_tmp4, - span1 = fsa_tmp5, - span2 = fsa_tmp6; - - if(c1 instanceof Box && c2 instanceof Box){ - - for(var j=0; j!==2; j++){ - var c = c1, - angle = angle1; - if(j===1){ - c = c2; - angle = angle2; - } - - for(var i=0; i!==2; i++){ - - // Get the world edge - if(i === 0){ - vec2.set(normal, 0, 1); - } else if(i === 1) { - vec2.set(normal, 1, 0); - } - if(angle !== 0){ - vec2.rotate(normal, normal, angle); - } - - // Project hulls onto that normal - Narrowphase.projectConvexOntoAxis(c1,offset1,angle1,normal,span1); - Narrowphase.projectConvexOntoAxis(c2,offset2,angle2,normal,span2); - - // Order by span position - var a=span1, - b=span2, - swapped = false; - if(span1[0] > span2[0]){ - b=span1; - a=span2; - swapped = true; - } - - // Get separating distance - var dist = b[0] - a[1]; - overlap = (dist <= 0); - - if(maxDist===null || dist > maxDist){ - vec2.copy(sepAxis, normal); - maxDist = dist; - found = overlap; - } - } - } - - } else { - - for(var j=0; j!==2; j++){ - var c = c1, - angle = angle1; - if(j===1){ - c = c2; - angle = angle2; - } - - for(var i=0; i!==c.vertices.length; i++){ - // Get the world edge - vec2.rotate(worldPoint0, c.vertices[i], angle); - vec2.rotate(worldPoint1, c.vertices[(i+1)%c.vertices.length], angle); - - sub(edge, worldPoint1, worldPoint0); - - // Get normal - just rotate 90 degrees since vertices are given in CCW - vec2.rotate90cw(normal, edge); - vec2.normalize(normal,normal); - - // Project hulls onto that normal - Narrowphase.projectConvexOntoAxis(c1,offset1,angle1,normal,span1); - Narrowphase.projectConvexOntoAxis(c2,offset2,angle2,normal,span2); - - // Order by span position - var a=span1, - b=span2, - swapped = false; - if(span1[0] > span2[0]){ - b=span1; - a=span2; - swapped = true; - } - - // Get separating distance - var dist = b[0] - a[1]; - overlap = (dist <= 0); - - if(maxDist===null || dist > maxDist){ - vec2.copy(sepAxis, normal); - maxDist = dist; - found = overlap; - } - } - } - } - - - /* - // Needs to be tested some more - for(var j=0; j!==2; j++){ - var c = c1, - angle = angle1; - if(j===1){ - c = c2; - angle = angle2; - } - - for(var i=0; i!==c.axes.length; i++){ - - var normal = c.axes[i]; - - // Project hulls onto that normal - Narrowphase.projectConvexOntoAxis(c1, offset1, angle1, normal, span1); - Narrowphase.projectConvexOntoAxis(c2, offset2, angle2, normal, span2); - - // Order by span position - var a=span1, - b=span2, - swapped = false; - if(span1[0] > span2[0]){ - b=span1; - a=span2; - swapped = true; - } - - // Get separating distance - var dist = b[0] - a[1]; - overlap = (dist <= Narrowphase.convexPrecision); - - if(maxDist===null || dist > maxDist){ - vec2.copy(sepAxis, normal); - maxDist = dist; - found = overlap; - } - } - } - */ - - return found; -}; - -// .getClosestEdge is called by other functions, need local tmp vectors -var gce_tmp1 = vec2.fromValues(0,0) -, gce_tmp2 = vec2.fromValues(0,0) -, gce_tmp3 = vec2.fromValues(0,0); - -/** - * Get the edge that has a normal closest to an axis. - * @method getClosestEdge - * @static - * @param {Convex} c - * @param {Number} angle - * @param {Array} axis - * @param {Boolean} flip - * @return {Number} Index of the edge that is closest. This index and the next spans the resulting edge. Returns -1 if failed. - */ -Narrowphase.getClosestEdge = function(c,angle,axis,flip){ - var localAxis = gce_tmp1, - edge = gce_tmp2, - normal = gce_tmp3; - - // Convert the axis to local coords of the body - vec2.rotate(localAxis, axis, -angle); - if(flip){ - vec2.scale(localAxis,localAxis,-1); - } - - var closestEdge = -1, - N = c.vertices.length, - maxDot = -1; - for(var i=0; i!==N; i++){ - // Get the edge - sub(edge, c.vertices[(i+1)%N], c.vertices[i%N]); - - // Get normal - just rotate 90 degrees since vertices are given in CCW - vec2.rotate90cw(normal, edge); - vec2.normalize(normal,normal); - - var d = dot(normal,localAxis); - if(closestEdge === -1 || d > maxDot){ - closestEdge = i % N; - maxDot = d; - } - } - - return closestEdge; -}; - -var circleHeightfield_candidate = vec2.create(), - circleHeightfield_dist = vec2.create(), - circleHeightfield_v0 = vec2.create(), - circleHeightfield_v1 = vec2.create(), - circleHeightfield_minCandidate = vec2.create(), - circleHeightfield_worldNormal = vec2.create(), - circleHeightfield_minCandidateNormal = vec2.create(); - -/** - * @method circleHeightfield - * @param {Body} bi - * @param {Circle} si - * @param {Array} xi - * @param {Body} bj - * @param {Heightfield} sj - * @param {Array} xj - * @param {Number} aj - */ -Narrowphase.prototype[Shape.CIRCLE | Shape.HEIGHTFIELD] = -Narrowphase.prototype.circleHeightfield = function( circleBody,circleShape,circlePos,circleAngle, - hfBody,hfShape,hfPos,hfAngle, justTest, radius ){ - var data = hfShape.heights, - radius = radius || circleShape.radius, - w = hfShape.elementWidth, - dist = circleHeightfield_dist, - candidate = circleHeightfield_candidate, - minCandidate = circleHeightfield_minCandidate, - minCandidateNormal = circleHeightfield_minCandidateNormal, - worldNormal = circleHeightfield_worldNormal, - v0 = circleHeightfield_v0, - v1 = circleHeightfield_v1; - - // Get the index of the points to test against - var idxA = Math.floor( (circlePos[0] - radius - hfPos[0]) / w ), - idxB = Math.ceil( (circlePos[0] + radius - hfPos[0]) / w ); - - /*if(idxB < 0 || idxA >= data.length) - return justTest ? false : 0;*/ - - if(idxA < 0){ - idxA = 0; - } - if(idxB >= data.length){ - idxB = data.length-1; - } - - // Get max and min - var max = data[idxA], - min = data[idxB]; - for(var i=idxA; i max){ - max = data[i]; - } - } - - if(circlePos[1]-radius > max){ - return justTest ? false : 0; - } - - /* - if(circlePos[1]+radius < min){ - // Below the minimum point... We can just guess. - // TODO - } - */ - - // 1. Check so center of circle is not inside the field. If it is, this wont work... - // 2. For each edge - // 2. 1. Get point on circle that is closest to the edge (scale normal with -radius) - // 2. 2. Check if point is inside. - - var found = false; - - // Check all edges first - for(var i=idxA; i= v0[0] && candidate[0] < v1[0] && d <= 0){ - - if(justTest){ - return true; - } - - found = true; - - // Store the candidate point, projected to the edge - vec2.scale(dist,worldNormal,-d); - vec2.add(minCandidate,candidate,dist); - vec2.copy(minCandidateNormal,worldNormal); - - var c = this.createContactEquation(hfBody,circleBody,hfShape,circleShape); - - // Normal is out of the heightfield - vec2.copy(c.normalA, minCandidateNormal); - - // Vector from circle to heightfield - vec2.scale(c.contactPointB, c.normalA, -radius); - add(c.contactPointB, c.contactPointB, circlePos); - sub(c.contactPointB, c.contactPointB, circleBody.position); - - vec2.copy(c.contactPointA, minCandidate); - vec2.sub(c.contactPointA, c.contactPointA, hfBody.position); - - this.contactEquations.push(c); - - if(this.enableFriction){ - this.frictionEquations.push( this.createFrictionFromContact(c) ); - } - } - } - - // Check all vertices - found = false; - if(radius > 0){ - for(var i=idxA; i<=idxB; i++){ - - // Get point - vec2.set(v0, i*w, data[i]); - vec2.add(v0,v0,hfPos); - - vec2.sub(dist, circlePos, v0); - - if(vec2.squaredLength(dist) < Math.pow(radius, 2)){ - - if(justTest){ - return true; - } - - found = true; - - var c = this.createContactEquation(hfBody,circleBody,hfShape,circleShape); - - // Construct normal - out of heightfield - vec2.copy(c.normalA, dist); - vec2.normalize(c.normalA,c.normalA); - - vec2.scale(c.contactPointB, c.normalA, -radius); - add(c.contactPointB, c.contactPointB, circlePos); - sub(c.contactPointB, c.contactPointB, circleBody.position); - - sub(c.contactPointA, v0, hfPos); - add(c.contactPointA, c.contactPointA, hfPos); - sub(c.contactPointA, c.contactPointA, hfBody.position); - - this.contactEquations.push(c); - - if(this.enableFriction){ - this.frictionEquations.push(this.createFrictionFromContact(c)); - } - } - } - } - - if(found){ - return 1; - } - - return 0; - -}; - -var convexHeightfield_v0 = vec2.create(), - convexHeightfield_v1 = vec2.create(), - convexHeightfield_tilePos = vec2.create(), - convexHeightfield_tempConvexShape = new Convex({ vertices: [vec2.create(),vec2.create(),vec2.create(),vec2.create()] }); -/** - * @method circleHeightfield - * @param {Body} bi - * @param {Circle} si - * @param {Array} xi - * @param {Body} bj - * @param {Heightfield} sj - * @param {Array} xj - * @param {Number} aj - */ -Narrowphase.prototype[Shape.BOX | Shape.HEIGHTFIELD] = -Narrowphase.prototype[Shape.CONVEX | Shape.HEIGHTFIELD] = -Narrowphase.prototype.convexHeightfield = function( convexBody,convexShape,convexPos,convexAngle, - hfBody,hfShape,hfPos,hfAngle, justTest ){ - var data = hfShape.heights, - w = hfShape.elementWidth, - v0 = convexHeightfield_v0, - v1 = convexHeightfield_v1, - tilePos = convexHeightfield_tilePos, - tileConvex = convexHeightfield_tempConvexShape; - - // Get the index of the points to test against - var idxA = Math.floor( (convexBody.aabb.lowerBound[0] - hfPos[0]) / w ), - idxB = Math.ceil( (convexBody.aabb.upperBound[0] - hfPos[0]) / w ); - - if(idxA < 0){ - idxA = 0; - } - if(idxB >= data.length){ - idxB = data.length-1; - } - - // Get max and min - var max = data[idxA], - min = data[idxB]; - for(var i=idxA; i max){ - max = data[i]; - } - } - - if(convexBody.aabb.lowerBound[1] > max){ - return justTest ? false : 0; - } - - var found = false; - var numContacts = 0; - - // Loop over all edges - // TODO: If possible, construct a convex from several data points (need o check if the points make a convex shape) - for(var i=idxA; i= 0 || aabb.containsPoint(this.from)){ - this.intersectBody(result, body); - } - } -}; - -var intersectBody_worldPosition = vec2.create(); - -/** - * Shoot a ray at a body, get back information about the hit. - * @method intersectBody - * @private - * @param {Body} body - */ -Ray.prototype.intersectBody = function (result, body) { - var checkCollisionResponse = this.checkCollisionResponse; - - if(checkCollisionResponse && !body.collisionResponse){ - return; - } - - var worldPosition = intersectBody_worldPosition; - - for (var i = 0, N = body.shapes.length; i < N; i++) { - var shape = body.shapes[i]; - - if(checkCollisionResponse && !shape.collisionResponse){ - continue; // Skip - } - - if((this.collisionGroup & shape.collisionMask) === 0 || (shape.collisionGroup & this.collisionMask) === 0){ - continue; - } - - // Get world angle and position of the shape - vec2.rotate(worldPosition, shape.position, body.angle); - vec2.add(worldPosition, worldPosition, body.position); - var worldAngle = shape.angle + body.angle; - - this.intersectShape( - result, - shape, - worldAngle, - worldPosition, - body - ); - - if(result.shouldStop(this)){ - break; - } - } -}; - -/** - * @method intersectShape - * @private - * @param {Shape} shape - * @param {number} angle - * @param {array} position - * @param {Body} body - */ -Ray.prototype.intersectShape = function(result, shape, angle, position, body){ - var from = this.from; - - // Checking radius - var distance = distanceFromIntersectionSquared(from, this.direction, position); - if (distance > shape.boundingRadius * shape.boundingRadius) { - return; - } - - this._currentBody = body; - this._currentShape = shape; - - shape.raycast(result, this, position, angle); - - this._currentBody = this._currentShape = null; -}; - -/** - * Get the AABB of the ray. - * @method getAABB - * @param {AABB} aabb - */ -Ray.prototype.getAABB = function(result){ - var to = this.to; - var from = this.from; - vec2.set( - result.lowerBound, - Math.min(to[0], from[0]), - Math.min(to[1], from[1]) - ); - vec2.set( - result.upperBound, - Math.max(to[0], from[0]), - Math.max(to[1], from[1]) - ); -}; - -var hitPointWorld = vec2.create(); - -/** - * @method reportIntersection - * @private - * @param {number} fraction - * @param {array} normal - * @param {number} [faceIndex=-1] - * @return {boolean} True if the intersections should continue - */ -Ray.prototype.reportIntersection = function(result, fraction, normal, faceIndex){ - var from = this.from; - var to = this.to; - var shape = this._currentShape; - var body = this._currentBody; - - // Skip back faces? - if(this.skipBackfaces && vec2.dot(normal, this.direction) > 0){ - return; - } - - switch(this.mode){ - - case Ray.ALL: - result.set( - normal, - shape, - body, - fraction, - faceIndex - ); - this.callback(result); - break; - - case Ray.CLOSEST: - - // Store if closer than current closest - if(fraction < result.fraction || !result.hasHit()){ - result.set( - normal, - shape, - body, - fraction, - faceIndex - ); - } - break; - - case Ray.ANY: - - // Report and stop. - result.set( - normal, - shape, - body, - fraction, - faceIndex - ); - break; - } -}; - -var v0 = vec2.create(), - intersect = vec2.create(); -function distanceFromIntersectionSquared(from, direction, position) { - - // v0 is vector from from to position - vec2.sub(v0, position, from); - var dot = vec2.dot(v0, direction); - - // intersect = direction * dot + from - vec2.scale(intersect, direction, dot); - vec2.add(intersect, intersect, from); - - return vec2.squaredDistance(position, intersect); -} - - -},{"../collision/AABB":7,"../collision/RaycastResult":12,"../math/vec2":30,"../shapes/Shape":45}],12:[function(_dereq_,module,exports){ -var vec2 = _dereq_('../math/vec2'); -var Ray = _dereq_('../collision/Ray'); - -module.exports = RaycastResult; - -/** - * Storage for Ray casting hit data. - * @class RaycastResult - * @constructor - */ -function RaycastResult(){ - - /** - * The normal of the hit, oriented in world space. - * @property {array} normal - */ - this.normal = vec2.create(); - - /** - * The hit shape, or null. - * @property {Shape} shape - */ - this.shape = null; - - /** - * The hit body, or null. - * @property {Body} body - */ - this.body = null; - - /** - * The index of the hit triangle, if the hit shape was indexable. - * @property {number} faceIndex - * @default -1 - */ - this.faceIndex = -1; - - /** - * Distance to the hit, as a fraction. 0 is at the "from" point, 1 is at the "to" point. Will be set to -1 if there was no hit yet. - * @property {number} fraction - * @default -1 - */ - this.fraction = -1; - - /** - * If the ray should stop traversing. - * @readonly - * @property {Boolean} isStopped - */ - this.isStopped = false; -} - -/** - * Reset all result data. Must be done before re-using the result object. - * @method reset - */ -RaycastResult.prototype.reset = function () { - vec2.set(this.normal, 0, 0); - this.shape = null; - this.body = null; - this.faceIndex = -1; - this.fraction = -1; - this.isStopped = false; -}; - -/** - * Get the distance to the hit point. - * @method getHitDistance - * @param {Ray} ray - */ -RaycastResult.prototype.getHitDistance = function (ray) { - return vec2.distance(ray.from, ray.to) * this.fraction; -}; - -/** - * Returns true if the ray hit something since the last reset(). - * @method hasHit - */ -RaycastResult.prototype.hasHit = function () { - return this.fraction !== -1; -}; - -/** - * Get world hit point. - * @method getHitPoint - * @param {array} out - * @param {Ray} ray - */ -RaycastResult.prototype.getHitPoint = function (out, ray) { - vec2.lerp(out, ray.from, ray.to, this.fraction); -}; - -/** - * Can be called while iterating over hits to stop searching for hit points. - * @method stop - */ -RaycastResult.prototype.stop = function(){ - this.isStopped = true; -}; - -/** - * @method shouldStop - * @private - * @param {Ray} ray - * @return {boolean} - */ -RaycastResult.prototype.shouldStop = function(ray){ - return this.isStopped || (this.fraction !== -1 && ray.mode === Ray.ANY); -}; - -/** - * @method set - * @private - * @param {array} normal - * @param {Shape} shape - * @param {Body} body - * @param {number} fraction - */ -RaycastResult.prototype.set = function( - normal, - shape, - body, - fraction, - faceIndex -){ - vec2.copy(this.normal, normal); - this.shape = shape; - this.body = body; - this.fraction = fraction; - this.faceIndex = faceIndex; -}; -},{"../collision/Ray":11,"../math/vec2":30}],13:[function(_dereq_,module,exports){ -var Utils = _dereq_('../utils/Utils') -, Broadphase = _dereq_('../collision/Broadphase'); - -module.exports = SAPBroadphase; - -/** - * Sweep and prune broadphase along one axis. - * - * @class SAPBroadphase - * @constructor - * @extends Broadphase - */ -function SAPBroadphase(){ - Broadphase.call(this,Broadphase.SAP); - - /** - * List of bodies currently in the broadphase. - * @property axisList - * @type {Array} - */ - this.axisList = []; - - /** - * The axis to sort along. 0 means x-axis and 1 y-axis. If your bodies are more spread out over the X axis, set axisIndex to 0, and you will gain some performance. - * @property axisIndex - * @type {Number} - */ - this.axisIndex = 0; - - var that = this; - this._addBodyHandler = function(e){ - that.axisList.push(e.body); - }; - - this._removeBodyHandler = function(e){ - // Remove from list - var idx = that.axisList.indexOf(e.body); - if(idx !== -1){ - that.axisList.splice(idx,1); - } - }; -} -SAPBroadphase.prototype = new Broadphase(); -SAPBroadphase.prototype.constructor = SAPBroadphase; - -/** - * Change the world - * @method setWorld - * @param {World} world - */ -SAPBroadphase.prototype.setWorld = function(world){ - // Clear the old axis array - this.axisList.length = 0; - - // Add all bodies from the new world - Utils.appendArray(this.axisList, world.bodies); - - // Remove old handlers, if any - world - .off("addBody",this._addBodyHandler) - .off("removeBody",this._removeBodyHandler); - - // Add handlers to update the list of bodies. - world.on("addBody",this._addBodyHandler).on("removeBody",this._removeBodyHandler); - - this.world = world; -}; - -/** - * Sorts bodies along an axis. - * @method sortAxisList - * @param {Array} a - * @param {number} axisIndex - * @return {Array} - */ -SAPBroadphase.sortAxisList = function(a, axisIndex){ - axisIndex = axisIndex|0; - for(var i=1,l=a.length; i=0;j--) { - if(a[j].aabb.lowerBound[axisIndex] <= v.aabb.lowerBound[axisIndex]){ - break; - } - a[j+1] = a[j]; - } - a[j+1] = v; - } - return a; -}; - -SAPBroadphase.prototype.sortList = function(){ - var bodies = this.axisList, - axisIndex = this.axisIndex; - - // Sort the lists - SAPBroadphase.sortAxisList(bodies, axisIndex); -}; - -/** - * Get the colliding pairs - * @method getCollisionPairs - * @param {World} world - * @return {Array} - */ -SAPBroadphase.prototype.getCollisionPairs = function(world){ - var bodies = this.axisList, - result = this.result, - axisIndex = this.axisIndex; - - result.length = 0; - - // Update all AABBs if needed - var l = bodies.length; - while(l--){ - var b = bodies[l]; - if(b.aabbNeedsUpdate){ - b.updateAABB(); - } - } - - // Sort the lists - this.sortList(); - - // Look through the X list - for(var i=0, N=bodies.length|0; i!==N; i++){ - var bi = bodies[i]; - - for(var j=i+1; j G = [-n -rixn n rjxn] - - var r = vec2.create(); - var ri = vec2.create(); // worldAnchorA - var rj = vec2.create(); // worldAnchorB - var that = this; - normal.computeGq = function(){ - var bodyA = this.bodyA, - bodyB = this.bodyB, - xi = bodyA.position, - xj = bodyB.position; - - // Transform local anchors to world - vec2.rotate(ri, localAnchorA, bodyA.angle); - vec2.rotate(rj, localAnchorB, bodyB.angle); - - vec2.add(r, xj, rj); - vec2.sub(r, r, ri); - vec2.sub(r, r, xi); - - //vec2.sub(r, bodyB.position, bodyA.position); - return vec2.length(r) - that.distance; - }; - - // Make the contact constraint bilateral - this.setMaxForce(maxForce); - - /** - * If the upper limit is enabled or not. - * @property {Boolean} upperLimitEnabled - */ - this.upperLimitEnabled = false; - - /** - * The upper constraint limit. - * @property {number} upperLimit - */ - this.upperLimit = 1; - - /** - * If the lower limit is enabled or not. - * @property {Boolean} lowerLimitEnabled - */ - this.lowerLimitEnabled = false; - - /** - * The lower constraint limit. - * @property {number} lowerLimit - */ - this.lowerLimit = 0; - - /** - * Current constraint position. This is equal to the current distance between the world anchor points. - * @property {number} position - */ - this.position = 0; -} -DistanceConstraint.prototype = new Constraint(); -DistanceConstraint.prototype.constructor = DistanceConstraint; - -/** - * Update the constraint equations. Should be done if any of the bodies changed position, before solving. - * @method update - */ -var n = vec2.create(); -var ri = vec2.create(); // worldAnchorA -var rj = vec2.create(); // worldAnchorB -DistanceConstraint.prototype.update = function(){ - var normal = this.equations[0], - bodyA = this.bodyA, - bodyB = this.bodyB, - distance = this.distance, - xi = bodyA.position, - xj = bodyB.position, - normalEquation = this.equations[0], - G = normal.G; - - // Transform local anchors to world - vec2.rotate(ri, this.localAnchorA, bodyA.angle); - vec2.rotate(rj, this.localAnchorB, bodyB.angle); - - // Get world anchor points and normal - vec2.add(n, xj, rj); - vec2.sub(n, n, ri); - vec2.sub(n, n, xi); - this.position = vec2.length(n); - - var violating = false; - if(this.upperLimitEnabled){ - if(this.position > this.upperLimit){ - normalEquation.maxForce = 0; - normalEquation.minForce = -this.maxForce; - this.distance = this.upperLimit; - violating = true; - } - } - - if(this.lowerLimitEnabled){ - if(this.position < this.lowerLimit){ - normalEquation.maxForce = this.maxForce; - normalEquation.minForce = 0; - this.distance = this.lowerLimit; - violating = true; - } - } - - if((this.lowerLimitEnabled || this.upperLimitEnabled) && !violating){ - // No constraint needed. - normalEquation.enabled = false; - return; - } - - normalEquation.enabled = true; - - vec2.normalize(n,n); - - // Caluclate cross products - var rixn = vec2.crossLength(ri, n), - rjxn = vec2.crossLength(rj, n); - - // G = [-n -rixn n rjxn] - G[0] = -n[0]; - G[1] = -n[1]; - G[2] = -rixn; - G[3] = n[0]; - G[4] = n[1]; - G[5] = rjxn; -}; - -/** - * Set the max force to be used - * @method setMaxForce - * @param {Number} maxForce - */ -DistanceConstraint.prototype.setMaxForce = function(maxForce){ - var normal = this.equations[0]; - normal.minForce = -maxForce; - normal.maxForce = maxForce; -}; - -/** - * Get the max force - * @method getMaxForce - * @return {Number} - */ -DistanceConstraint.prototype.getMaxForce = function(){ - var normal = this.equations[0]; - return normal.maxForce; -}; - -},{"../equations/Equation":22,"../math/vec2":30,"../utils/Utils":57,"./Constraint":14}],16:[function(_dereq_,module,exports){ -var Constraint = _dereq_('./Constraint') -, Equation = _dereq_('../equations/Equation') -, AngleLockEquation = _dereq_('../equations/AngleLockEquation') -, vec2 = _dereq_('../math/vec2'); - -module.exports = GearConstraint; - -/** - * Constrains the angle of two bodies to each other to be equal. If a gear ratio is not one, the angle of bodyA must be a multiple of the angle of bodyB. - * @class GearConstraint - * @constructor - * @author schteppe - * @param {Body} bodyA - * @param {Body} bodyB - * @param {Object} [options] - * @param {Number} [options.angle=0] Relative angle between the bodies. Will be set to the current angle between the bodies (the gear ratio is accounted for). - * @param {Number} [options.ratio=1] Gear ratio. - * @param {Number} [options.maxTorque] Maximum torque to apply. - * @extends Constraint - * - * @example - * var constraint = new GearConstraint(bodyA, bodyB); - * world.addConstraint(constraint); - * - * @example - * var constraint = new GearConstraint(bodyA, bodyB, { - * ratio: 2, - * maxTorque: 1000 - * }); - * world.addConstraint(constraint); - */ -function GearConstraint(bodyA, bodyB, options){ - options = options || {}; - - Constraint.call(this, bodyA, bodyB, Constraint.GEAR, options); - - /** - * The gear ratio. - * @property ratio - * @type {Number} - */ - this.ratio = options.ratio !== undefined ? options.ratio : 1; - - /** - * The relative angle - * @property angle - * @type {Number} - */ - this.angle = options.angle !== undefined ? options.angle : bodyB.angle - this.ratio * bodyA.angle; - - // Send same parameters to the equation - options.angle = this.angle; - options.ratio = this.ratio; - - this.equations = [ - new AngleLockEquation(bodyA,bodyB,options), - ]; - - // Set max torque - if(options.maxTorque !== undefined){ - this.setMaxTorque(options.maxTorque); - } -} -GearConstraint.prototype = new Constraint(); -GearConstraint.prototype.constructor = GearConstraint; - -GearConstraint.prototype.update = function(){ - var eq = this.equations[0]; - if(eq.ratio !== this.ratio){ - eq.setRatio(this.ratio); - } - eq.angle = this.angle; -}; - -/** - * Set the max torque for the constraint. - * @method setMaxTorque - * @param {Number} torque - */ -GearConstraint.prototype.setMaxTorque = function(torque){ - this.equations[0].setMaxTorque(torque); -}; - -/** - * Get the max torque for the constraint. - * @method getMaxTorque - * @return {Number} - */ -GearConstraint.prototype.getMaxTorque = function(torque){ - return this.equations[0].maxForce; -}; -},{"../equations/AngleLockEquation":20,"../equations/Equation":22,"../math/vec2":30,"./Constraint":14}],17:[function(_dereq_,module,exports){ -var Constraint = _dereq_('./Constraint') -, vec2 = _dereq_('../math/vec2') -, Equation = _dereq_('../equations/Equation'); - -module.exports = LockConstraint; - -/** - * Locks the relative position and rotation between two bodies. - * - * @class LockConstraint - * @constructor - * @author schteppe - * @param {Body} bodyA - * @param {Body} bodyB - * @param {Object} [options] - * @param {Array} [options.localOffsetB] The offset of bodyB in bodyA's frame. If not given the offset is computed from current positions. - * @param {number} [options.localAngleB] The angle of bodyB in bodyA's frame. If not given, the angle is computed from current angles. - * @param {number} [options.maxForce] - * @extends Constraint - * - * @example - * // Locks the relative position and rotation between bodyA and bodyB - * var constraint = new LockConstraint(bodyA, bodyB); - * world.addConstraint(constraint); - */ -function LockConstraint(bodyA, bodyB, options){ - options = options || {}; - - Constraint.call(this,bodyA,bodyB,Constraint.LOCK,options); - - var maxForce = ( typeof(options.maxForce)==="undefined" ? Number.MAX_VALUE : options.maxForce ); - - var localAngleB = options.localAngleB || 0; - - // Use 3 equations: - // gx = (xj - xi - l) * xhat = 0 - // gy = (xj - xi - l) * yhat = 0 - // gr = (xi - xj + r) * that = 0 - // - // ...where: - // l is the localOffsetB vector rotated to world in bodyA frame - // r is the same vector but reversed and rotated from bodyB frame - // xhat, yhat are world axis vectors - // that is the tangent of r - // - // For the first two constraints, we get - // G*W = (vj - vi - ldot ) * xhat - // = (vj - vi - wi x l) * xhat - // - // Since (wi x l) * xhat = (l x xhat) * wi, we get - // G*W = [ -1 0 (-l x xhat) 1 0 0] * [vi wi vj wj] - // - // The last constraint gives - // GW = (vi - vj + wj x r) * that - // = [ that 0 -that (r x t) ] - - var x = new Equation(bodyA,bodyB,-maxForce,maxForce), - y = new Equation(bodyA,bodyB,-maxForce,maxForce), - rot = new Equation(bodyA,bodyB,-maxForce,maxForce); - - var l = vec2.create(), - g = vec2.create(), - that = this; - x.computeGq = function(){ - vec2.rotate(l, that.localOffsetB, bodyA.angle); - vec2.sub(g, bodyB.position, bodyA.position); - vec2.sub(g, g, l); - return g[0]; - }; - y.computeGq = function(){ - vec2.rotate(l, that.localOffsetB, bodyA.angle); - vec2.sub(g, bodyB.position, bodyA.position); - vec2.sub(g, g, l); - return g[1]; - }; - var r = vec2.create(), - t = vec2.create(); - rot.computeGq = function(){ - vec2.rotate(r, that.localOffsetB, bodyB.angle - that.localAngleB); - vec2.scale(r,r,-1); - vec2.sub(g,bodyA.position,bodyB.position); - vec2.add(g,g,r); - vec2.rotate(t,r,-Math.PI/2); - vec2.normalize(t,t); - return vec2.dot(g,t); - }; - - /** - * The offset of bodyB in bodyA's frame. - * @property {Array} localOffsetB - */ - this.localOffsetB = vec2.create(); - if(options.localOffsetB){ - vec2.copy(this.localOffsetB, options.localOffsetB); - } else { - // Construct from current positions - vec2.sub(this.localOffsetB, bodyB.position, bodyA.position); - vec2.rotate(this.localOffsetB, this.localOffsetB, -bodyA.angle); - } - - /** - * The offset angle of bodyB in bodyA's frame. - * @property {Number} localAngleB - */ - this.localAngleB = 0; - if(typeof(options.localAngleB) === 'number'){ - this.localAngleB = options.localAngleB; - } else { - // Construct - this.localAngleB = bodyB.angle - bodyA.angle; - } - - this.equations.push(x, y, rot); - this.setMaxForce(maxForce); -} -LockConstraint.prototype = new Constraint(); -LockConstraint.prototype.constructor = LockConstraint; - -/** - * Set the maximum force to be applied. - * @method setMaxForce - * @param {Number} force - */ -LockConstraint.prototype.setMaxForce = function(force){ - var eqs = this.equations; - for(var i=0; ithis tutorial. Also called "slider constraint". - * - * @class PrismaticConstraint - * @constructor - * @extends Constraint - * @author schteppe - * @param {Body} bodyA - * @param {Body} bodyB - * @param {Object} [options] - * @param {Number} [options.maxForce] Max force to be applied by the constraint - * @param {Array} [options.localAnchorA] Body A's anchor point, defined in its own local frame. - * @param {Array} [options.localAnchorB] Body B's anchor point, defined in its own local frame. - * @param {Array} [options.localAxisA] An axis, defined in body A frame, that body B's anchor point may slide along. - * @param {Boolean} [options.disableRotationalLock] If set to true, bodyB will be free to rotate around its anchor point. - * @param {Number} [options.upperLimit] - * @param {Number} [options.lowerLimit] - * @todo Ability to create using only a point and a worldAxis - */ -function PrismaticConstraint(bodyA, bodyB, options){ - options = options || {}; - Constraint.call(this,bodyA,bodyB,Constraint.PRISMATIC,options); - - // Get anchors - var localAnchorA = vec2.fromValues(0,0), - localAxisA = vec2.fromValues(1,0), - localAnchorB = vec2.fromValues(0,0); - if(options.localAnchorA){ vec2.copy(localAnchorA, options.localAnchorA); } - if(options.localAxisA){ vec2.copy(localAxisA, options.localAxisA); } - if(options.localAnchorB){ vec2.copy(localAnchorB, options.localAnchorB); } - - /** - * @property localAnchorA - * @type {Array} - */ - this.localAnchorA = localAnchorA; - - /** - * @property localAnchorB - * @type {Array} - */ - this.localAnchorB = localAnchorB; - - /** - * @property localAxisA - * @type {Array} - */ - this.localAxisA = localAxisA; - - /* - - The constraint violation for the common axis point is - - g = ( xj + rj - xi - ri ) * t := gg*t - - where r are body-local anchor points, and t is a tangent to the constraint axis defined in body i frame. - - gdot = ( vj + wj x rj - vi - wi x ri ) * t + ( xj + rj - xi - ri ) * ( wi x t ) - - Note the use of the chain rule. Now we identify the jacobian - - G*W = [ -t -ri x t + t x gg t rj x t ] * [vi wi vj wj] - - The rotational part is just a rotation lock. - - */ - - var maxForce = this.maxForce = typeof(options.maxForce)!=="undefined" ? options.maxForce : Number.MAX_VALUE; - - // Translational part - var trans = new Equation(bodyA,bodyB,-maxForce,maxForce); - var ri = new vec2.create(), - rj = new vec2.create(), - gg = new vec2.create(), - t = new vec2.create(); - trans.computeGq = function(){ - // g = ( xj + rj - xi - ri ) * t - return vec2.dot(gg,t); - }; - trans.updateJacobian = function(){ - var G = this.G, - xi = bodyA.position, - xj = bodyB.position; - vec2.rotate(ri,localAnchorA,bodyA.angle); - vec2.rotate(rj,localAnchorB,bodyB.angle); - vec2.add(gg,xj,rj); - vec2.sub(gg,gg,xi); - vec2.sub(gg,gg,ri); - vec2.rotate(t,localAxisA,bodyA.angle+Math.PI/2); - - G[0] = -t[0]; - G[1] = -t[1]; - G[2] = -vec2.crossLength(ri,t) + vec2.crossLength(t,gg); - G[3] = t[0]; - G[4] = t[1]; - G[5] = vec2.crossLength(rj,t); - }; - this.equations.push(trans); - - // Rotational part - if(!options.disableRotationalLock){ - var rot = new RotationalLockEquation(bodyA,bodyB,-maxForce,maxForce); - this.equations.push(rot); - } - - /** - * The position of anchor A relative to anchor B, along the constraint axis. - * @property position - * @type {Number} - */ - this.position = 0; - - // Is this one used at all? - this.velocity = 0; - - /** - * Set to true to enable lower limit. - * @property lowerLimitEnabled - * @type {Boolean} - */ - this.lowerLimitEnabled = typeof(options.lowerLimit)!=="undefined" ? true : false; - - /** - * Set to true to enable upper limit. - * @property upperLimitEnabled - * @type {Boolean} - */ - this.upperLimitEnabled = typeof(options.upperLimit)!=="undefined" ? true : false; - - /** - * Lower constraint limit. The constraint position is forced to be larger than this value. - * @property lowerLimit - * @type {Number} - */ - this.lowerLimit = typeof(options.lowerLimit)!=="undefined" ? options.lowerLimit : 0; - - /** - * Upper constraint limit. The constraint position is forced to be smaller than this value. - * @property upperLimit - * @type {Number} - */ - this.upperLimit = typeof(options.upperLimit)!=="undefined" ? options.upperLimit : 1; - - // Equations used for limits - this.upperLimitEquation = new ContactEquation(bodyA,bodyB); - this.lowerLimitEquation = new ContactEquation(bodyA,bodyB); - - // Set max/min forces - this.upperLimitEquation.minForce = this.lowerLimitEquation.minForce = 0; - this.upperLimitEquation.maxForce = this.lowerLimitEquation.maxForce = maxForce; - - /** - * Equation used for the motor. - * @property motorEquation - * @type {Equation} - */ - this.motorEquation = new Equation(bodyA,bodyB); - - /** - * The current motor state. Enable or disable the motor using .enableMotor - * @property motorEnabled - * @type {Boolean} - */ - this.motorEnabled = false; - - /** - * Set the target speed for the motor. - * @property motorSpeed - * @type {Number} - */ - this.motorSpeed = 0; - - var that = this; - var motorEquation = this.motorEquation; - var old = motorEquation.computeGW; - motorEquation.computeGq = function(){ return 0; }; - motorEquation.computeGW = function(){ - var G = this.G, - bi = this.bodyA, - bj = this.bodyB, - vi = bi.velocity, - vj = bj.velocity, - wi = bi.angularVelocity, - wj = bj.angularVelocity; - return this.gmult(G,vi,wi,vj,wj) + that.motorSpeed; - }; -} - -PrismaticConstraint.prototype = new Constraint(); -PrismaticConstraint.prototype.constructor = PrismaticConstraint; - -var worldAxisA = vec2.create(), - worldAnchorA = vec2.create(), - worldAnchorB = vec2.create(), - orientedAnchorA = vec2.create(), - orientedAnchorB = vec2.create(), - tmp = vec2.create(); - -/** - * Update the constraint equations. Should be done if any of the bodies changed position, before solving. - * @method update - */ -PrismaticConstraint.prototype.update = function(){ - var eqs = this.equations, - trans = eqs[0], - upperLimit = this.upperLimit, - lowerLimit = this.lowerLimit, - upperLimitEquation = this.upperLimitEquation, - lowerLimitEquation = this.lowerLimitEquation, - bodyA = this.bodyA, - bodyB = this.bodyB, - localAxisA = this.localAxisA, - localAnchorA = this.localAnchorA, - localAnchorB = this.localAnchorB; - - trans.updateJacobian(); - - // Transform local things to world - vec2.rotate(worldAxisA, localAxisA, bodyA.angle); - vec2.rotate(orientedAnchorA, localAnchorA, bodyA.angle); - vec2.add(worldAnchorA, orientedAnchorA, bodyA.position); - vec2.rotate(orientedAnchorB, localAnchorB, bodyB.angle); - vec2.add(worldAnchorB, orientedAnchorB, bodyB.position); - - var relPosition = this.position = vec2.dot(worldAnchorB,worldAxisA) - vec2.dot(worldAnchorA,worldAxisA); - - // Motor - if(this.motorEnabled){ - // G = [ a a x ri -a -a x rj ] - var G = this.motorEquation.G; - G[0] = worldAxisA[0]; - G[1] = worldAxisA[1]; - G[2] = vec2.crossLength(worldAxisA,orientedAnchorB); - G[3] = -worldAxisA[0]; - G[4] = -worldAxisA[1]; - G[5] = -vec2.crossLength(worldAxisA,orientedAnchorA); - } - - /* - Limits strategy: - Add contact equation, with normal along the constraint axis. - min/maxForce is set so the constraint is repulsive in the correct direction. - Some offset is added to either equation.contactPointA or .contactPointB to get the correct upper/lower limit. - - ^ - | - upperLimit x - | ------ - anchorB x<---| B | - | | | - ------ | ------ - | | | - | A |-->x anchorA - ------ | - x lowerLimit - | - axis - */ - - - if(this.upperLimitEnabled && relPosition > upperLimit){ - // Update contact constraint normal, etc - vec2.scale(upperLimitEquation.normalA, worldAxisA, -1); - vec2.sub(upperLimitEquation.contactPointA, worldAnchorA, bodyA.position); - vec2.sub(upperLimitEquation.contactPointB, worldAnchorB, bodyB.position); - vec2.scale(tmp,worldAxisA,upperLimit); - vec2.add(upperLimitEquation.contactPointA,upperLimitEquation.contactPointA,tmp); - if(eqs.indexOf(upperLimitEquation) === -1){ - eqs.push(upperLimitEquation); - } - } else { - var idx = eqs.indexOf(upperLimitEquation); - if(idx !== -1){ - eqs.splice(idx,1); - } - } - - if(this.lowerLimitEnabled && relPosition < lowerLimit){ - // Update contact constraint normal, etc - vec2.scale(lowerLimitEquation.normalA, worldAxisA, 1); - vec2.sub(lowerLimitEquation.contactPointA, worldAnchorA, bodyA.position); - vec2.sub(lowerLimitEquation.contactPointB, worldAnchorB, bodyB.position); - vec2.scale(tmp,worldAxisA,lowerLimit); - vec2.sub(lowerLimitEquation.contactPointB,lowerLimitEquation.contactPointB,tmp); - if(eqs.indexOf(lowerLimitEquation) === -1){ - eqs.push(lowerLimitEquation); - } - } else { - var idx = eqs.indexOf(lowerLimitEquation); - if(idx !== -1){ - eqs.splice(idx,1); - } - } -}; - -/** - * Enable the motor - * @method enableMotor - */ -PrismaticConstraint.prototype.enableMotor = function(){ - if(this.motorEnabled){ - return; - } - this.equations.push(this.motorEquation); - this.motorEnabled = true; -}; - -/** - * Disable the rotational motor - * @method disableMotor - */ -PrismaticConstraint.prototype.disableMotor = function(){ - if(!this.motorEnabled){ - return; - } - var i = this.equations.indexOf(this.motorEquation); - this.equations.splice(i,1); - this.motorEnabled = false; -}; - -/** - * Set the constraint limits. - * @method setLimits - * @param {number} lower Lower limit. - * @param {number} upper Upper limit. - */ -PrismaticConstraint.prototype.setLimits = function (lower, upper) { - if(typeof(lower) === 'number'){ - this.lowerLimit = lower; - this.lowerLimitEnabled = true; - } else { - this.lowerLimit = lower; - this.lowerLimitEnabled = false; - } - - if(typeof(upper) === 'number'){ - this.upperLimit = upper; - this.upperLimitEnabled = true; - } else { - this.upperLimit = upper; - this.upperLimitEnabled = false; - } -}; - - -},{"../equations/ContactEquation":21,"../equations/Equation":22,"../equations/RotationalLockEquation":24,"../math/vec2":30,"./Constraint":14}],19:[function(_dereq_,module,exports){ -var Constraint = _dereq_('./Constraint') -, Equation = _dereq_('../equations/Equation') -, RotationalVelocityEquation = _dereq_('../equations/RotationalVelocityEquation') -, RotationalLockEquation = _dereq_('../equations/RotationalLockEquation') -, vec2 = _dereq_('../math/vec2'); - -module.exports = RevoluteConstraint; - -var worldPivotA = vec2.create(), - worldPivotB = vec2.create(), - xAxis = vec2.fromValues(1,0), - yAxis = vec2.fromValues(0,1), - g = vec2.create(); - -/** - * Connects two bodies at given offset points, letting them rotate relative to each other around this point. - * @class RevoluteConstraint - * @constructor - * @author schteppe - * @param {Body} bodyA - * @param {Body} bodyB - * @param {Object} [options] - * @param {Array} [options.worldPivot] A pivot point given in world coordinates. If specified, localPivotA and localPivotB are automatically computed from this value. - * @param {Array} [options.localPivotA] The point relative to the center of mass of bodyA which bodyA is constrained to. - * @param {Array} [options.localPivotB] See localPivotA. - * @param {Number} [options.maxForce] The maximum force that should be applied to constrain the bodies. - * @extends Constraint - * - * @example - * // This will create a revolute constraint between two bodies with pivot point in between them. - * var bodyA = new Body({ mass: 1, position: [-1, 0] }); - * var bodyB = new Body({ mass: 1, position: [1, 0] }); - * var constraint = new RevoluteConstraint(bodyA, bodyB, { - * worldPivot: [0, 0] - * }); - * world.addConstraint(constraint); - * - * // Using body-local pivot points, the constraint could have been constructed like this: - * var constraint = new RevoluteConstraint(bodyA, bodyB, { - * localPivotA: [1, 0], - * localPivotB: [-1, 0] - * }); - */ -function RevoluteConstraint(bodyA, bodyB, options){ - options = options || {}; - Constraint.call(this,bodyA,bodyB,Constraint.REVOLUTE,options); - - var maxForce = this.maxForce = typeof(options.maxForce) !== "undefined" ? options.maxForce : Number.MAX_VALUE; - - /** - * @property {Array} pivotA - */ - this.pivotA = vec2.create(); - - /** - * @property {Array} pivotB - */ - this.pivotB = vec2.create(); - - if(options.worldPivot){ - // Compute pivotA and pivotB - vec2.sub(this.pivotA, options.worldPivot, bodyA.position); - vec2.sub(this.pivotB, options.worldPivot, bodyB.position); - // Rotate to local coordinate system - vec2.rotate(this.pivotA, this.pivotA, -bodyA.angle); - vec2.rotate(this.pivotB, this.pivotB, -bodyB.angle); - } else { - // Get pivotA and pivotB - vec2.copy(this.pivotA, options.localPivotA); - vec2.copy(this.pivotB, options.localPivotB); - } - - // Equations to be fed to the solver - var eqs = this.equations = [ - new Equation(bodyA,bodyB,-maxForce,maxForce), - new Equation(bodyA,bodyB,-maxForce,maxForce), - ]; - - var x = eqs[0]; - var y = eqs[1]; - var that = this; - - x.computeGq = function(){ - vec2.rotate(worldPivotA, that.pivotA, bodyA.angle); - vec2.rotate(worldPivotB, that.pivotB, bodyB.angle); - vec2.add(g, bodyB.position, worldPivotB); - vec2.sub(g, g, bodyA.position); - vec2.sub(g, g, worldPivotA); - return vec2.dot(g,xAxis); - }; - - y.computeGq = function(){ - vec2.rotate(worldPivotA, that.pivotA, bodyA.angle); - vec2.rotate(worldPivotB, that.pivotB, bodyB.angle); - vec2.add(g, bodyB.position, worldPivotB); - vec2.sub(g, g, bodyA.position); - vec2.sub(g, g, worldPivotA); - return vec2.dot(g,yAxis); - }; - - y.minForce = x.minForce = -maxForce; - y.maxForce = x.maxForce = maxForce; - - this.motorEquation = new RotationalVelocityEquation(bodyA,bodyB); - - /** - * Indicates whether the motor is enabled. Use .enableMotor() to enable the constraint motor. - * @property {Boolean} motorEnabled - * @readOnly - */ - this.motorEnabled = false; - - /** - * The constraint position. - * @property angle - * @type {Number} - * @readOnly - */ - this.angle = 0; - - /** - * Set to true to enable lower limit - * @property lowerLimitEnabled - * @type {Boolean} - */ - this.lowerLimitEnabled = false; - - /** - * Set to true to enable upper limit - * @property upperLimitEnabled - * @type {Boolean} - */ - this.upperLimitEnabled = false; - - /** - * The lower limit on the constraint angle. - * @property lowerLimit - * @type {Boolean} - */ - this.lowerLimit = 0; - - /** - * The upper limit on the constraint angle. - * @property upperLimit - * @type {Boolean} - */ - this.upperLimit = 0; - - this.upperLimitEquation = new RotationalLockEquation(bodyA,bodyB); - this.lowerLimitEquation = new RotationalLockEquation(bodyA,bodyB); - this.upperLimitEquation.minForce = 0; - this.lowerLimitEquation.maxForce = 0; -} -RevoluteConstraint.prototype = new Constraint(); -RevoluteConstraint.prototype.constructor = RevoluteConstraint; - -/** - * Set the constraint angle limits. - * @method setLimits - * @param {number} lower Lower angle limit. - * @param {number} upper Upper angle limit. - */ -RevoluteConstraint.prototype.setLimits = function (lower, upper) { - if(typeof(lower) === 'number'){ - this.lowerLimit = lower; - this.lowerLimitEnabled = true; - } else { - this.lowerLimit = lower; - this.lowerLimitEnabled = false; - } - - if(typeof(upper) === 'number'){ - this.upperLimit = upper; - this.upperLimitEnabled = true; - } else { - this.upperLimit = upper; - this.upperLimitEnabled = false; - } -}; - -RevoluteConstraint.prototype.update = function(){ - var bodyA = this.bodyA, - bodyB = this.bodyB, - pivotA = this.pivotA, - pivotB = this.pivotB, - eqs = this.equations, - normal = eqs[0], - tangent= eqs[1], - x = eqs[0], - y = eqs[1], - upperLimit = this.upperLimit, - lowerLimit = this.lowerLimit, - upperLimitEquation = this.upperLimitEquation, - lowerLimitEquation = this.lowerLimitEquation; - - var relAngle = this.angle = bodyB.angle - bodyA.angle; - - if(this.upperLimitEnabled && relAngle > upperLimit){ - upperLimitEquation.angle = upperLimit; - if(eqs.indexOf(upperLimitEquation) === -1){ - eqs.push(upperLimitEquation); - } - } else { - var idx = eqs.indexOf(upperLimitEquation); - if(idx !== -1){ - eqs.splice(idx,1); - } - } - - if(this.lowerLimitEnabled && relAngle < lowerLimit){ - lowerLimitEquation.angle = lowerLimit; - if(eqs.indexOf(lowerLimitEquation) === -1){ - eqs.push(lowerLimitEquation); - } - } else { - var idx = eqs.indexOf(lowerLimitEquation); - if(idx !== -1){ - eqs.splice(idx,1); - } - } - - /* - - The constraint violation is - - g = xj + rj - xi - ri - - ...where xi and xj are the body positions and ri and rj world-oriented offset vectors. Differentiate: - - gdot = vj + wj x rj - vi - wi x ri - - We split this into x and y directions. (let x and y be unit vectors along the respective axes) - - gdot * x = ( vj + wj x rj - vi - wi x ri ) * x - = ( vj*x + (wj x rj)*x -vi*x -(wi x ri)*x - = ( vj*x + (rj x x)*wj -vi*x -(ri x x)*wi - = [ -x -(ri x x) x (rj x x)] * [vi wi vj wj] - = G*W - - ...and similar for y. We have then identified the jacobian entries for x and y directions: - - Gx = [ x (rj x x) -x -(ri x x)] - Gy = [ y (rj x y) -y -(ri x y)] - - */ - - vec2.rotate(worldPivotA, pivotA, bodyA.angle); - vec2.rotate(worldPivotB, pivotB, bodyB.angle); - - // todo: these are a bit sparse. We could save some computations on making custom eq.computeGW functions, etc - - x.G[0] = -1; - x.G[1] = 0; - x.G[2] = -vec2.crossLength(worldPivotA,xAxis); - x.G[3] = 1; - x.G[4] = 0; - x.G[5] = vec2.crossLength(worldPivotB,xAxis); - - y.G[0] = 0; - y.G[1] = -1; - y.G[2] = -vec2.crossLength(worldPivotA,yAxis); - y.G[3] = 0; - y.G[4] = 1; - y.G[5] = vec2.crossLength(worldPivotB,yAxis); -}; - -/** - * Enable the rotational motor - * @method enableMotor - */ -RevoluteConstraint.prototype.enableMotor = function(){ - if(this.motorEnabled){ - return; - } - this.equations.push(this.motorEquation); - this.motorEnabled = true; -}; - -/** - * Disable the rotational motor - * @method disableMotor - */ -RevoluteConstraint.prototype.disableMotor = function(){ - if(!this.motorEnabled){ - return; - } - var i = this.equations.indexOf(this.motorEquation); - this.equations.splice(i,1); - this.motorEnabled = false; -}; - -/** - * Check if the motor is enabled. - * @method motorIsEnabled - * @deprecated use property motorEnabled instead. - * @return {Boolean} - */ -RevoluteConstraint.prototype.motorIsEnabled = function(){ - return !!this.motorEnabled; -}; - -/** - * Set the speed of the rotational constraint motor - * @method setMotorSpeed - * @param {Number} speed - */ -RevoluteConstraint.prototype.setMotorSpeed = function(speed){ - if(!this.motorEnabled){ - return; - } - var i = this.equations.indexOf(this.motorEquation); - this.equations[i].relativeVelocity = speed; -}; - -/** - * Get the speed of the rotational constraint motor - * @method getMotorSpeed - * @return {Number} The current speed, or false if the motor is not enabled. - */ -RevoluteConstraint.prototype.getMotorSpeed = function(){ - if(!this.motorEnabled){ - return false; - } - return this.motorEquation.relativeVelocity; -}; - -},{"../equations/Equation":22,"../equations/RotationalLockEquation":24,"../equations/RotationalVelocityEquation":25,"../math/vec2":30,"./Constraint":14}],20:[function(_dereq_,module,exports){ -var Equation = _dereq_("./Equation"), - vec2 = _dereq_('../math/vec2'); - -module.exports = AngleLockEquation; - -/** - * Locks the relative angle between two bodies. The constraint tries to keep the dot product between two vectors, local in each body, to zero. The local angle in body i is a parameter. - * - * @class AngleLockEquation - * @constructor - * @extends Equation - * @param {Body} bodyA - * @param {Body} bodyB - * @param {Object} [options] - * @param {Number} [options.angle] Angle to add to the local vector in body A. - * @param {Number} [options.ratio] Gear ratio - */ -function AngleLockEquation(bodyA, bodyB, options){ - options = options || {}; - Equation.call(this,bodyA,bodyB,-Number.MAX_VALUE,Number.MAX_VALUE); - this.angle = options.angle || 0; - - /** - * The gear ratio. - * @property {Number} ratio - * @private - * @see setRatio - */ - this.ratio = typeof(options.ratio)==="number" ? options.ratio : 1; - - this.setRatio(this.ratio); -} -AngleLockEquation.prototype = new Equation(); -AngleLockEquation.prototype.constructor = AngleLockEquation; - -AngleLockEquation.prototype.computeGq = function(){ - return this.ratio * this.bodyA.angle - this.bodyB.angle + this.angle; -}; - -/** - * Set the gear ratio for this equation - * @method setRatio - * @param {Number} ratio - */ -AngleLockEquation.prototype.setRatio = function(ratio){ - var G = this.G; - G[2] = ratio; - G[5] = -1; - this.ratio = ratio; -}; - -/** - * Set the max force for the equation. - * @method setMaxTorque - * @param {Number} torque - */ -AngleLockEquation.prototype.setMaxTorque = function(torque){ - this.maxForce = torque; - this.minForce = -torque; -}; - -},{"../math/vec2":30,"./Equation":22}],21:[function(_dereq_,module,exports){ -var Equation = _dereq_("./Equation"), - vec2 = _dereq_('../math/vec2'); - -module.exports = ContactEquation; - -/** - * Non-penetration constraint equation. Tries to make the contactPointA and contactPointB vectors coincide, while keeping the applied force repulsive. - * - * @class ContactEquation - * @constructor - * @extends Equation - * @param {Body} bodyA - * @param {Body} bodyB - */ -function ContactEquation(bodyA, bodyB){ - Equation.call(this, bodyA, bodyB, 0, Number.MAX_VALUE); - - /** - * Vector from body i center of mass to the contact point. - * @property contactPointA - * @type {Array} - */ - this.contactPointA = vec2.create(); - this.penetrationVec = vec2.create(); - - /** - * World-oriented vector from body A center of mass to the contact point. - * @property contactPointB - * @type {Array} - */ - this.contactPointB = vec2.create(); - - /** - * The normal vector, pointing out of body i - * @property normalA - * @type {Array} - */ - this.normalA = vec2.create(); - - /** - * The restitution to use (0=no bounciness, 1=max bounciness). - * @property restitution - * @type {Number} - */ - this.restitution = 0; - - /** - * This property is set to true if this is the first impact between the bodies (not persistant contact). - * @property firstImpact - * @type {Boolean} - * @readOnly - */ - this.firstImpact = false; - - /** - * The shape in body i that triggered this contact. - * @property shapeA - * @type {Shape} - */ - this.shapeA = null; - - /** - * The shape in body j that triggered this contact. - * @property shapeB - * @type {Shape} - */ - this.shapeB = null; -} -ContactEquation.prototype = new Equation(); -ContactEquation.prototype.constructor = ContactEquation; -ContactEquation.prototype.computeB = function(a,b,h){ - var bi = this.bodyA, - bj = this.bodyB, - ri = this.contactPointA, - rj = this.contactPointB, - xi = bi.position, - xj = bj.position; - - var penetrationVec = this.penetrationVec, - n = this.normalA, - G = this.G; - - // Caluclate cross products - var rixn = vec2.crossLength(ri,n), - rjxn = vec2.crossLength(rj,n); - - // G = [-n -rixn n rjxn] - G[0] = -n[0]; - G[1] = -n[1]; - G[2] = -rixn; - G[3] = n[0]; - G[4] = n[1]; - G[5] = rjxn; - - // Calculate q = xj+rj -(xi+ri) i.e. the penetration vector - vec2.add(penetrationVec,xj,rj); - vec2.sub(penetrationVec,penetrationVec,xi); - vec2.sub(penetrationVec,penetrationVec,ri); - - // Compute iteration - var GW, Gq; - if(this.firstImpact && this.restitution !== 0){ - Gq = 0; - GW = (1/b)*(1+this.restitution) * this.computeGW(); - } else { - Gq = vec2.dot(n,penetrationVec) + this.offset; - GW = this.computeGW(); - } - - var GiMf = this.computeGiMf(); - var B = - Gq * a - GW * b - h*GiMf; - - return B; -}; - -},{"../math/vec2":30,"./Equation":22}],22:[function(_dereq_,module,exports){ -module.exports = Equation; - -var vec2 = _dereq_('../math/vec2'), - Utils = _dereq_('../utils/Utils'), - Body = _dereq_('../objects/Body'); - -/** - * Base class for constraint equations. - * @class Equation - * @constructor - * @param {Body} bodyA First body participating in the equation - * @param {Body} bodyB Second body participating in the equation - * @param {number} minForce Minimum force to apply. Default: -Number.MAX_VALUE - * @param {number} maxForce Maximum force to apply. Default: Number.MAX_VALUE - */ -function Equation(bodyA, bodyB, minForce, maxForce){ - - /** - * Minimum force to apply when solving. - * @property minForce - * @type {Number} - */ - this.minForce = typeof(minForce)==="undefined" ? -Number.MAX_VALUE : minForce; - - /** - * Max force to apply when solving. - * @property maxForce - * @type {Number} - */ - this.maxForce = typeof(maxForce)==="undefined" ? Number.MAX_VALUE : maxForce; - - /** - * First body participating in the constraint - * @property bodyA - * @type {Body} - */ - this.bodyA = bodyA; - - /** - * Second body participating in the constraint - * @property bodyB - * @type {Body} - */ - this.bodyB = bodyB; - - /** - * The stiffness of this equation. Typically chosen to a large number (~1e7), but can be chosen somewhat freely to get a stable simulation. - * @property stiffness - * @type {Number} - */ - this.stiffness = Equation.DEFAULT_STIFFNESS; - - /** - * The number of time steps needed to stabilize the constraint equation. Typically between 3 and 5 time steps. - * @property relaxation - * @type {Number} - */ - this.relaxation = Equation.DEFAULT_RELAXATION; - - /** - * The Jacobian entry of this equation. 6 numbers, 3 per body (x,y,angle). - * @property G - * @type {Array} - */ - this.G = new Utils.ARRAY_TYPE(6); - for(var i=0; i<6; i++){ - this.G[i]=0; - } - - this.offset = 0; - - this.a = 0; - this.b = 0; - this.epsilon = 0; - this.timeStep = 1/60; - - /** - * Indicates if stiffness or relaxation was changed. - * @property {Boolean} needsUpdate - */ - this.needsUpdate = true; - - /** - * The resulting constraint multiplier from the last solve. This is mostly equivalent to the force produced by the constraint. - * @property multiplier - * @type {Number} - */ - this.multiplier = 0; - - /** - * Relative velocity. - * @property {Number} relativeVelocity - */ - this.relativeVelocity = 0; - - /** - * Whether this equation is enabled or not. If true, it will be added to the solver. - * @property {Boolean} enabled - */ - this.enabled = true; -} -Equation.prototype.constructor = Equation; - -/** - * The default stiffness when creating a new Equation. - * @static - * @property {Number} DEFAULT_STIFFNESS - * @default 1e6 - */ -Equation.DEFAULT_STIFFNESS = 1e6; - -/** - * The default relaxation when creating a new Equation. - * @static - * @property {Number} DEFAULT_RELAXATION - * @default 4 - */ -Equation.DEFAULT_RELAXATION = 4; - -/** - * Compute SPOOK parameters .a, .b and .epsilon according to the current parameters. See equations 9, 10 and 11 in the SPOOK notes. - * @method update - */ -Equation.prototype.update = function(){ - var k = this.stiffness, - d = this.relaxation, - h = this.timeStep; - - this.a = 4.0 / (h * (1 + 4 * d)); - this.b = (4.0 * d) / (1 + 4 * d); - this.epsilon = 4.0 / (h * h * k * (1 + 4 * d)); - - this.needsUpdate = false; -}; - -/** - * Multiply a jacobian entry with corresponding positions or velocities - * @method gmult - * @return {Number} - */ -Equation.prototype.gmult = function(G,vi,wi,vj,wj){ - return G[0] * vi[0] + - G[1] * vi[1] + - G[2] * wi + - G[3] * vj[0] + - G[4] * vj[1] + - G[5] * wj; -}; - -/** - * Computes the RHS of the SPOOK equation - * @method computeB - * @return {Number} - */ -Equation.prototype.computeB = function(a,b,h){ - var GW = this.computeGW(); - var Gq = this.computeGq(); - var GiMf = this.computeGiMf(); - return - Gq * a - GW * b - GiMf*h; -}; - -/** - * Computes G\*q, where q are the generalized body coordinates - * @method computeGq - * @return {Number} - */ -var qi = vec2.create(), - qj = vec2.create(); -Equation.prototype.computeGq = function(){ - var G = this.G, - bi = this.bodyA, - bj = this.bodyB, - xi = bi.position, - xj = bj.position, - ai = bi.angle, - aj = bj.angle; - - return this.gmult(G, qi, ai, qj, aj) + this.offset; -}; - -/** - * Computes G\*W, where W are the body velocities - * @method computeGW - * @return {Number} - */ -Equation.prototype.computeGW = function(){ - var G = this.G, - bi = this.bodyA, - bj = this.bodyB, - vi = bi.velocity, - vj = bj.velocity, - wi = bi.angularVelocity, - wj = bj.angularVelocity; - return this.gmult(G,vi,wi,vj,wj) + this.relativeVelocity; -}; - -/** - * Computes G\*Wlambda, where W are the body velocities - * @method computeGWlambda - * @return {Number} - */ -Equation.prototype.computeGWlambda = function(){ - var G = this.G, - bi = this.bodyA, - bj = this.bodyB, - vi = bi.vlambda, - vj = bj.vlambda, - wi = bi.wlambda, - wj = bj.wlambda; - return this.gmult(G,vi,wi,vj,wj); -}; - -/** - * Computes G\*inv(M)\*f, where M is the mass matrix with diagonal blocks for each body, and f are the forces on the bodies. - * @method computeGiMf - * @return {Number} - */ -var iMfi = vec2.create(), - iMfj = vec2.create(); -Equation.prototype.computeGiMf = function(){ - var bi = this.bodyA, - bj = this.bodyB, - fi = bi.force, - ti = bi.angularForce, - fj = bj.force, - tj = bj.angularForce, - invMassi = bi.invMassSolve, - invMassj = bj.invMassSolve, - invIi = bi.invInertiaSolve, - invIj = bj.invInertiaSolve, - G = this.G; - - vec2.scale(iMfi, fi, invMassi); - vec2.multiply(iMfi, bi.massMultiplier, iMfi); - vec2.scale(iMfj, fj,invMassj); - vec2.multiply(iMfj, bj.massMultiplier, iMfj); - - return this.gmult(G,iMfi,ti*invIi,iMfj,tj*invIj); -}; - -/** - * Computes G\*inv(M)\*G' - * @method computeGiMGt - * @return {Number} - */ -Equation.prototype.computeGiMGt = function(){ - var bi = this.bodyA, - bj = this.bodyB, - invMassi = bi.invMassSolve, - invMassj = bj.invMassSolve, - invIi = bi.invInertiaSolve, - invIj = bj.invInertiaSolve, - G = this.G; - - return G[0] * G[0] * invMassi * bi.massMultiplier[0] + - G[1] * G[1] * invMassi * bi.massMultiplier[1] + - G[2] * G[2] * invIi + - G[3] * G[3] * invMassj * bj.massMultiplier[0] + - G[4] * G[4] * invMassj * bj.massMultiplier[1] + - G[5] * G[5] * invIj; -}; - -var addToWlambda_temp = vec2.create(), - addToWlambda_Gi = vec2.create(), - addToWlambda_Gj = vec2.create(), - addToWlambda_ri = vec2.create(), - addToWlambda_rj = vec2.create(), - addToWlambda_Mdiag = vec2.create(); - -/** - * Add constraint velocity to the bodies. - * @method addToWlambda - * @param {Number} deltalambda - */ -Equation.prototype.addToWlambda = function(deltalambda){ - var bi = this.bodyA, - bj = this.bodyB, - temp = addToWlambda_temp, - Gi = addToWlambda_Gi, - Gj = addToWlambda_Gj, - ri = addToWlambda_ri, - rj = addToWlambda_rj, - invMassi = bi.invMassSolve, - invMassj = bj.invMassSolve, - invIi = bi.invInertiaSolve, - invIj = bj.invInertiaSolve, - Mdiag = addToWlambda_Mdiag, - G = this.G; - - Gi[0] = G[0]; - Gi[1] = G[1]; - Gj[0] = G[3]; - Gj[1] = G[4]; - - // Add to linear velocity - // v_lambda += inv(M) * delta_lamba * G - vec2.scale(temp, Gi, invMassi*deltalambda); - vec2.multiply(temp, temp, bi.massMultiplier); - vec2.add( bi.vlambda, bi.vlambda, temp); - // This impulse is in the offset frame - // Also add contribution to angular - //bi.wlambda -= vec2.crossLength(temp,ri); - bi.wlambda += invIi * G[2] * deltalambda; - - - vec2.scale(temp, Gj, invMassj*deltalambda); - vec2.multiply(temp, temp, bj.massMultiplier); - vec2.add( bj.vlambda, bj.vlambda, temp); - //bj.wlambda -= vec2.crossLength(temp,rj); - bj.wlambda += invIj * G[5] * deltalambda; -}; - -/** - * Compute the denominator part of the SPOOK equation: C = G\*inv(M)\*G' + eps - * @method computeInvC - * @param {Number} eps - * @return {Number} - */ -Equation.prototype.computeInvC = function(eps){ - return 1.0 / (this.computeGiMGt() + eps); -}; - -},{"../math/vec2":30,"../objects/Body":31,"../utils/Utils":57}],23:[function(_dereq_,module,exports){ -var vec2 = _dereq_('../math/vec2') -, Equation = _dereq_('./Equation') -, Utils = _dereq_('../utils/Utils'); - -module.exports = FrictionEquation; - -/** - * Constrains the slipping in a contact along a tangent - * - * @class FrictionEquation - * @constructor - * @param {Body} bodyA - * @param {Body} bodyB - * @param {Number} slipForce - * @extends Equation - */ -function FrictionEquation(bodyA, bodyB, slipForce){ - Equation.call(this, bodyA, bodyB, -slipForce, slipForce); - - /** - * Relative vector from center of body A to the contact point, world oriented. - * @property contactPointA - * @type {Array} - */ - this.contactPointA = vec2.create(); - - /** - * Relative vector from center of body B to the contact point, world oriented. - * @property contactPointB - * @type {Array} - */ - this.contactPointB = vec2.create(); - - /** - * Tangent vector that the friction force will act along. World oriented. - * @property t - * @type {Array} - */ - this.t = vec2.create(); - - /** - * ContactEquations connected to this friction equation. The contact equations can be used to rescale the max force for the friction. If more than one contact equation is given, then the max force can be set to the average. - * @property contactEquations - * @type {ContactEquation} - */ - this.contactEquations = []; - - /** - * The shape in body i that triggered this friction. - * @property shapeA - * @type {Shape} - * @todo Needed? The shape can be looked up via contactEquation.shapeA... - */ - this.shapeA = null; - - /** - * The shape in body j that triggered this friction. - * @property shapeB - * @type {Shape} - * @todo Needed? The shape can be looked up via contactEquation.shapeB... - */ - this.shapeB = null; - - /** - * The friction coefficient to use. - * @property frictionCoefficient - * @type {Number} - */ - this.frictionCoefficient = 0.3; -} -FrictionEquation.prototype = new Equation(); -FrictionEquation.prototype.constructor = FrictionEquation; - -/** - * Set the slipping condition for the constraint. The friction force cannot be - * larger than this value. - * @method setSlipForce - * @param {Number} slipForce - */ -FrictionEquation.prototype.setSlipForce = function(slipForce){ - this.maxForce = slipForce; - this.minForce = -slipForce; -}; - -/** - * Get the max force for the constraint. - * @method getSlipForce - * @return {Number} - */ -FrictionEquation.prototype.getSlipForce = function(){ - return this.maxForce; -}; - -FrictionEquation.prototype.computeB = function(a,b,h){ - var bi = this.bodyA, - bj = this.bodyB, - ri = this.contactPointA, - rj = this.contactPointB, - t = this.t, - G = this.G; - - // G = [-t -rixt t rjxt] - // And remember, this is a pure velocity constraint, g is always zero! - G[0] = -t[0]; - G[1] = -t[1]; - G[2] = -vec2.crossLength(ri,t); - G[3] = t[0]; - G[4] = t[1]; - G[5] = vec2.crossLength(rj,t); - - var GW = this.computeGW(), - GiMf = this.computeGiMf(); - - var B = /* - g * a */ - GW * b - h*GiMf; - - return B; -}; - -},{"../math/vec2":30,"../utils/Utils":57,"./Equation":22}],24:[function(_dereq_,module,exports){ -var Equation = _dereq_("./Equation"), - vec2 = _dereq_('../math/vec2'); - -module.exports = RotationalLockEquation; - -/** - * Locks the relative angle between two bodies. The constraint tries to keep the dot product between two vectors, local in each body, to zero. The local angle in body i is a parameter. - * - * @class RotationalLockEquation - * @constructor - * @extends Equation - * @param {Body} bodyA - * @param {Body} bodyB - * @param {Object} [options] - * @param {Number} [options.angle] Angle to add to the local vector in bodyA. - */ -function RotationalLockEquation(bodyA, bodyB, options){ - options = options || {}; - Equation.call(this, bodyA, bodyB, -Number.MAX_VALUE, Number.MAX_VALUE); - - /** - * @property {number} angle - */ - this.angle = options.angle || 0; - - var G = this.G; - G[2] = 1; - G[5] = -1; -} -RotationalLockEquation.prototype = new Equation(); -RotationalLockEquation.prototype.constructor = RotationalLockEquation; - -var worldVectorA = vec2.create(), - worldVectorB = vec2.create(), - xAxis = vec2.fromValues(1,0), - yAxis = vec2.fromValues(0,1); -RotationalLockEquation.prototype.computeGq = function(){ - vec2.rotate(worldVectorA,xAxis,this.bodyA.angle+this.angle); - vec2.rotate(worldVectorB,yAxis,this.bodyB.angle); - return vec2.dot(worldVectorA,worldVectorB); -}; - -},{"../math/vec2":30,"./Equation":22}],25:[function(_dereq_,module,exports){ -var Equation = _dereq_("./Equation"), - vec2 = _dereq_('../math/vec2'); - -module.exports = RotationalVelocityEquation; - -/** - * Syncs rotational velocity of two bodies, or sets a relative velocity (motor). - * - * @class RotationalVelocityEquation - * @constructor - * @extends Equation - * @param {Body} bodyA - * @param {Body} bodyB - */ -function RotationalVelocityEquation(bodyA, bodyB){ - Equation.call(this, bodyA, bodyB, -Number.MAX_VALUE, Number.MAX_VALUE); - this.relativeVelocity = 1; - this.ratio = 1; -} -RotationalVelocityEquation.prototype = new Equation(); -RotationalVelocityEquation.prototype.constructor = RotationalVelocityEquation; -RotationalVelocityEquation.prototype.computeB = function(a,b,h){ - var G = this.G; - G[2] = -1; - G[5] = this.ratio; - - var GiMf = this.computeGiMf(); - var GW = this.computeGW(); - var B = - GW * b - h*GiMf; - - return B; -}; - -},{"../math/vec2":30,"./Equation":22}],26:[function(_dereq_,module,exports){ -/** - * Base class for objects that dispatches events. - * @class EventEmitter - * @constructor - */ -var EventEmitter = function () {}; - -module.exports = EventEmitter; - -EventEmitter.prototype = { - constructor: EventEmitter, - - /** - * Add an event listener - * @method on - * @param {String} type - * @param {Function} listener - * @return {EventEmitter} The self object, for chainability. - */ - on: function ( type, listener, context ) { - listener.context = context || this; - if ( this._listeners === undefined ){ - this._listeners = {}; - } - var listeners = this._listeners; - if ( listeners[ type ] === undefined ) { - listeners[ type ] = []; - } - if ( listeners[ type ].indexOf( listener ) === - 1 ) { - listeners[ type ].push( listener ); - } - return this; - }, - - /** - * Check if an event listener is added - * @method has - * @param {String} type - * @param {Function} listener - * @return {Boolean} - */ - has: function ( type, listener ) { - if ( this._listeners === undefined ){ - return false; - } - var listeners = this._listeners; - if(listener){ - if ( listeners[ type ] !== undefined && listeners[ type ].indexOf( listener ) !== - 1 ) { - return true; - } - } else { - if ( listeners[ type ] !== undefined ) { - return true; - } - } - - return false; - }, - - /** - * Remove an event listener - * @method off - * @param {String} type - * @param {Function} listener - * @return {EventEmitter} The self object, for chainability. - */ - off: function ( type, listener ) { - if ( this._listeners === undefined ){ - return this; - } - var listeners = this._listeners; - var index = listeners[ type ].indexOf( listener ); - if ( index !== - 1 ) { - listeners[ type ].splice( index, 1 ); - } - return this; - }, - - /** - * Emit an event. - * @method emit - * @param {Object} event - * @param {String} event.type - * @return {EventEmitter} The self object, for chainability. - */ - emit: function ( event ) { - if ( this._listeners === undefined ){ - return this; - } - var listeners = this._listeners; - var listenerArray = listeners[ event.type ]; - if ( listenerArray !== undefined ) { - event.target = this; - for ( var i = 0, l = listenerArray.length; i < l; i ++ ) { - var listener = listenerArray[ i ]; - listener.call( listener.context, event ); - } - } - return this; - } -}; - -},{}],27:[function(_dereq_,module,exports){ -var Material = _dereq_('./Material'); -var Equation = _dereq_('../equations/Equation'); - -module.exports = ContactMaterial; - -/** - * Defines what happens when two materials meet, such as what friction coefficient to use. You can also set other things such as restitution, surface velocity and constraint parameters. - * @class ContactMaterial - * @constructor - * @param {Material} materialA - * @param {Material} materialB - * @param {Object} [options] - * @param {Number} [options.friction=0.3] Friction coefficient. - * @param {Number} [options.restitution=0] Restitution coefficient aka "bounciness". - * @param {Number} [options.stiffness] ContactEquation stiffness. - * @param {Number} [options.relaxation] ContactEquation relaxation. - * @param {Number} [options.frictionStiffness] FrictionEquation stiffness. - * @param {Number} [options.frictionRelaxation] FrictionEquation relaxation. - * @param {Number} [options.surfaceVelocity=0] Surface velocity. - * @author schteppe - */ -function ContactMaterial(materialA, materialB, options){ - options = options || {}; - - if(!(materialA instanceof Material) || !(materialB instanceof Material)){ - throw new Error("First two arguments must be Material instances."); - } - - /** - * The contact material identifier - * @property id - * @type {Number} - */ - this.id = ContactMaterial.idCounter++; - - /** - * First material participating in the contact material - * @property materialA - * @type {Material} - */ - this.materialA = materialA; - - /** - * Second material participating in the contact material - * @property materialB - * @type {Material} - */ - this.materialB = materialB; - - /** - * Friction to use in the contact of these two materials - * @property friction - * @type {Number} - */ - this.friction = typeof(options.friction) !== "undefined" ? Number(options.friction) : 0.3; - - /** - * Restitution to use in the contact of these two materials - * @property restitution - * @type {Number} - */ - this.restitution = typeof(options.restitution) !== "undefined" ? Number(options.restitution) : 0.0; - - /** - * Stiffness of the resulting ContactEquation that this ContactMaterial generate - * @property stiffness - * @type {Number} - */ - this.stiffness = typeof(options.stiffness) !== "undefined" ? Number(options.stiffness) : Equation.DEFAULT_STIFFNESS; - - /** - * Relaxation of the resulting ContactEquation that this ContactMaterial generate - * @property relaxation - * @type {Number} - */ - this.relaxation = typeof(options.relaxation) !== "undefined" ? Number(options.relaxation) : Equation.DEFAULT_RELAXATION; - - /** - * Stiffness of the resulting FrictionEquation that this ContactMaterial generate - * @property frictionStiffness - * @type {Number} - */ - this.frictionStiffness = typeof(options.frictionStiffness) !== "undefined" ? Number(options.frictionStiffness) : Equation.DEFAULT_STIFFNESS; - - /** - * Relaxation of the resulting FrictionEquation that this ContactMaterial generate - * @property frictionRelaxation - * @type {Number} - */ - this.frictionRelaxation = typeof(options.frictionRelaxation) !== "undefined" ? Number(options.frictionRelaxation) : Equation.DEFAULT_RELAXATION; - - /** - * Will add surface velocity to this material. If bodyA rests on top if bodyB, and the surface velocity is positive, bodyA will slide to the right. - * @property {Number} surfaceVelocity - */ - this.surfaceVelocity = typeof(options.surfaceVelocity) !== "undefined" ? Number(options.surfaceVelocity) : 0; - - /** - * Offset to be set on ContactEquations. A positive value will make the bodies penetrate more into each other. Can be useful in scenes where contacts need to be more persistent, for example when stacking. Aka "cure for nervous contacts". - * @property contactSkinSize - * @type {Number} - */ - this.contactSkinSize = 0.005; -} - -ContactMaterial.idCounter = 0; - -},{"../equations/Equation":22,"./Material":28}],28:[function(_dereq_,module,exports){ -module.exports = Material; - -/** - * Defines a physics material. - * @class Material - * @constructor - * @param {number} id Material identifier - * @author schteppe - */ -function Material(id){ - /** - * The material identifier - * @property id - * @type {Number} - */ - this.id = id || Material.idCounter++; -} - -Material.idCounter = 0; - -},{}],29:[function(_dereq_,module,exports){ - - /* - PolyK library - url: http://polyk.ivank.net - Released under MIT licence. - - Copyright (c) 2012 Ivan Kuckir - - Permission is hereby granted, free of charge, to any person - obtaining a copy of this software and associated documentation - files (the "Software"), to deal in the Software without - restriction, including without limitation the rights to use, - copy, modify, merge, publish, distribute, sublicense, and/or sell - copies of the Software, and to permit persons to whom the - Software is furnished to do so, subject to the following - conditions: - - The above copyright notice and this permission notice shall be - included in all copies or substantial portions of the Software. - - THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, - EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES - OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND - NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT - HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, - WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING - FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR - OTHER DEALINGS IN THE SOFTWARE. - */ - - var PolyK = {}; - - /* - Is Polygon self-intersecting? - - O(n^2) - */ - /* - PolyK.IsSimple = function(p) - { - var n = p.length>>1; - if(n<4) return true; - var a1 = new PolyK._P(), a2 = new PolyK._P(); - var b1 = new PolyK._P(), b2 = new PolyK._P(); - var c = new PolyK._P(); - - for(var i=0; i>1; - if(n<3) return []; - var tgs = []; - var avl = []; - for(var i=0; i 3) - { - var i0 = avl[(i+0)%al]; - var i1 = avl[(i+1)%al]; - var i2 = avl[(i+2)%al]; - - var ax = p[2*i0], ay = p[2*i0+1]; - var bx = p[2*i1], by = p[2*i1+1]; - var cx = p[2*i2], cy = p[2*i2+1]; - - var earFound = false; - if(PolyK._convex(ax, ay, bx, by, cx, cy)) - { - earFound = true; - for(var j=0; j 3*al) break; // no convex angles :( - } - tgs.push(avl[0], avl[1], avl[2]); - return tgs; - } - /* - PolyK.ContainsPoint = function(p, px, py) - { - var n = p.length>>1; - var ax, ay, bx = p[2*n-2]-px, by = p[2*n-1]-py; - var depth = 0; - for(var i=0; i=0 && by>=0) continue; // both "up" or both "donw" - if(ax< 0 && bx< 0) continue; - - var lx = ax + (bx-ax)*(-ay)/(by-ay); - if(lx>0) depth++; - } - return (depth & 1) == 1; - } - - PolyK.Slice = function(p, ax, ay, bx, by) - { - if(PolyK.ContainsPoint(p, ax, ay) || PolyK.ContainsPoint(p, bx, by)) return [p.slice(0)]; - - var a = new PolyK._P(ax, ay); - var b = new PolyK._P(bx, by); - var iscs = []; // intersections - var ps = []; // points - for(var i=0; i 0) - { - var n = ps.length; - var i0 = iscs[0]; - var i1 = iscs[1]; - var ind0 = ps.indexOf(i0); - var ind1 = ps.indexOf(i1); - var solved = false; - - if(PolyK._firstWithFlag(ps, ind0) == ind1) solved = true; - else - { - i0 = iscs[1]; - i1 = iscs[0]; - ind0 = ps.indexOf(i0); - ind1 = ps.indexOf(i1); - if(PolyK._firstWithFlag(ps, ind0) == ind1) solved = true; - } - if(solved) - { - dir--; - var pgn = PolyK._getPoints(ps, ind0, ind1); - pgs.push(pgn); - ps = PolyK._getPoints(ps, ind1, ind0); - i0.flag = i1.flag = false; - iscs.splice(0,2); - if(iscs.length == 0) pgs.push(ps); - } - else { dir++; iscs.reverse(); } - if(dir>1) break; - } - var result = []; - for(var i=0; i>1, isc); - } - b1.x = b2.x; b1.y = b2.y; - b2.x = p[0]; b2.y = p[1]; - PolyK._pointLineDist(a1, b1, b2, l>>1, isc); - - var idst = 1/isc.dist; - isc.norm.x = (x-isc.point.x)*idst; - isc.norm.y = (y-isc.point.y)*idst; - return isc; - } - - PolyK._pointLineDist = function(p, a, b, edge, isc) - { - var x = p.x, y = p.y, x1 = a.x, y1 = a.y, x2 = b.x, y2 = b.y; - - var A = x - x1; - var B = y - y1; - var C = x2 - x1; - var D = y2 - y1; - - var dot = A * C + B * D; - var len_sq = C * C + D * D; - var param = dot / len_sq; - - var xx, yy; - - if (param < 0 || (x1 == x2 && y1 == y2)) { - xx = x1; - yy = y1; - } - else if (param > 1) { - xx = x2; - yy = y2; - } - else { - xx = x1 + param * C; - yy = y1 + param * D; - } - - var dx = x - xx; - var dy = y - yy; - var dst = Math.sqrt(dx * dx + dy * dy); - if(dst= 0) && (v >= 0) && (u + v < 1); - } - /* - PolyK._RayLineIntersection = function(a1, a2, b1, b2, c) - { - var dax = (a1.x-a2.x), dbx = (b1.x-b2.x); - var day = (a1.y-a2.y), dby = (b1.y-b2.y); - - var Den = dax*dby - day*dbx; - if (Den == 0) return null; // parallel - - var A = (a1.x * a2.y - a1.y * a2.x); - var B = (b1.x * b2.y - b1.y * b2.x); - - var I = c; - var iDen = 1/Den; - I.x = ( A*dbx - dax*B ) * iDen; - I.y = ( A*dby - day*B ) * iDen; - - if(!PolyK._InRect(I, b1, b2)) return null; - if((day>0 && I.y>a1.y) || (day<0 && I.y0 && I.x>a1.x) || (dax<0 && I.x=Math.min(b.y, c.y) && a.y<=Math.max(b.y, c.y)); - if (b.y == c.y) return (a.x>=Math.min(b.x, c.x) && a.x<=Math.max(b.x, c.x)); - - if(a.x >= Math.min(b.x, c.x) && a.x <= Math.max(b.x, c.x) - && a.y >= Math.min(b.y, c.y) && a.y <= Math.max(b.y, c.y)) - return true; - return false; - } - */ - PolyK._convex = function(ax, ay, bx, by, cx, cy) - { - return (ay-by)*(cx-bx) + (bx-ax)*(cy-by) >= 0; - } - /* - PolyK._P = function(x,y) - { - this.x = x; - this.y = y; - this.flag = false; - } - PolyK._P.prototype.toString = function() - { - return "Point ["+this.x+", "+this.y+"]"; - } - PolyK._P.dist = function(a,b) - { - var dx = b.x-a.x; - var dy = b.y-a.y; - return Math.sqrt(dx*dx + dy*dy); - } - - PolyK._tp = []; - for(var i=0; i<10; i++) PolyK._tp.push(new PolyK._P(0,0)); - */ - -module.exports = PolyK; - -},{}],30:[function(_dereq_,module,exports){ -/* Copyright (c) 2013, Brandon Jones, Colin MacKenzie IV. All rights reserved. - -Redistribution and use in source and binary forms, with or without modification, -are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright notice, this - list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above copyright notice, - this list of conditions and the following disclaimer in the documentation - and/or other materials provided with the distribution. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND -ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED -WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE -DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR -ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES -(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; -LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON -ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ - -/** - * The vec2 object from glMatrix, with some extensions and some removed methods. See http://glmatrix.net. - * @class vec2 - */ - -var vec2 = module.exports = {}; - -var Utils = _dereq_('../utils/Utils'); - -/** - * Make a cross product and only return the z component - * @method crossLength - * @static - * @param {Array} a - * @param {Array} b - * @return {Number} - */ -vec2.crossLength = function(a,b){ - return a[0] * b[1] - a[1] * b[0]; -}; - -/** - * Cross product between a vector and the Z component of a vector - * @method crossVZ - * @static - * @param {Array} out - * @param {Array} vec - * @param {Number} zcomp - * @return {Number} - */ -vec2.crossVZ = function(out, vec, zcomp){ - vec2.rotate(out,vec,-Math.PI/2);// Rotate according to the right hand rule - vec2.scale(out,out,zcomp); // Scale with z - return out; -}; - -/** - * Cross product between a vector and the Z component of a vector - * @method crossZV - * @static - * @param {Array} out - * @param {Number} zcomp - * @param {Array} vec - * @return {Number} - */ -vec2.crossZV = function(out, zcomp, vec){ - vec2.rotate(out,vec,Math.PI/2); // Rotate according to the right hand rule - vec2.scale(out,out,zcomp); // Scale with z - return out; -}; - -/** - * Rotate a vector by an angle - * @method rotate - * @static - * @param {Array} out - * @param {Array} a - * @param {Number} angle - */ -vec2.rotate = function(out,a,angle){ - if(angle !== 0){ - var c = Math.cos(angle), - s = Math.sin(angle), - x = a[0], - y = a[1]; - out[0] = c*x -s*y; - out[1] = s*x +c*y; - } else { - out[0] = a[0]; - out[1] = a[1]; - } -}; - -/** - * Rotate a vector 90 degrees clockwise - * @method rotate90cw - * @static - * @param {Array} out - * @param {Array} a - * @param {Number} angle - */ -vec2.rotate90cw = function(out, a) { - var x = a[0]; - var y = a[1]; - out[0] = y; - out[1] = -x; -}; - -/** - * Transform a point position to local frame. - * @method toLocalFrame - * @param {Array} out - * @param {Array} worldPoint - * @param {Array} framePosition - * @param {Number} frameAngle - */ -vec2.toLocalFrame = function(out, worldPoint, framePosition, frameAngle){ - vec2.copy(out, worldPoint); - vec2.sub(out, out, framePosition); - vec2.rotate(out, out, -frameAngle); -}; - -/** - * Transform a point position to global frame. - * @method toGlobalFrame - * @param {Array} out - * @param {Array} localPoint - * @param {Array} framePosition - * @param {Number} frameAngle - */ -vec2.toGlobalFrame = function(out, localPoint, framePosition, frameAngle){ - vec2.copy(out, localPoint); - vec2.rotate(out, out, frameAngle); - vec2.add(out, out, framePosition); -}; - -/** - * Transform a vector to local frame. - * @method vectorToLocalFrame - * @param {Array} out - * @param {Array} worldVector - * @param {Number} frameAngle - */ -vec2.vectorToLocalFrame = function(out, worldVector, frameAngle){ - vec2.rotate(out, worldVector, -frameAngle); -}; - -/** - * Transform a point position to global frame. - * @method toGlobalFrame - * @param {Array} out - * @param {Array} localVector - * @param {Number} frameAngle - */ -vec2.vectorToGlobalFrame = function(out, localVector, frameAngle){ - vec2.rotate(out, localVector, frameAngle); -}; - -/** - * Compute centroid of a triangle spanned by vectors a,b,c. See http://easycalculation.com/analytical/learn-centroid.php - * @method centroid - * @static - * @param {Array} out - * @param {Array} a - * @param {Array} b - * @param {Array} c - * @return {Array} The out object - */ -vec2.centroid = function(out, a, b, c){ - vec2.add(out, a, b); - vec2.add(out, out, c); - vec2.scale(out, out, 1/3); - return out; -}; - -/** - * Creates a new, empty vec2 - * @static - * @method create - * @return {Array} a new 2D vector - */ -vec2.create = function() { - var out = new Utils.ARRAY_TYPE(2); - out[0] = 0; - out[1] = 0; - return out; -}; - -/** - * Creates a new vec2 initialized with values from an existing vector - * @static - * @method clone - * @param {Array} a vector to clone - * @return {Array} a new 2D vector - */ -vec2.clone = function(a) { - var out = new Utils.ARRAY_TYPE(2); - out[0] = a[0]; - out[1] = a[1]; - return out; -}; - -/** - * Creates a new vec2 initialized with the given values - * @static - * @method fromValues - * @param {Number} x X component - * @param {Number} y Y component - * @return {Array} a new 2D vector - */ -vec2.fromValues = function(x, y) { - var out = new Utils.ARRAY_TYPE(2); - out[0] = x; - out[1] = y; - return out; -}; - -/** - * Copy the values from one vec2 to another - * @static - * @method copy - * @param {Array} out the receiving vector - * @param {Array} a the source vector - * @return {Array} out - */ -vec2.copy = function(out, a) { - out[0] = a[0]; - out[1] = a[1]; - return out; -}; - -/** - * Set the components of a vec2 to the given values - * @static - * @method set - * @param {Array} out the receiving vector - * @param {Number} x X component - * @param {Number} y Y component - * @return {Array} out - */ -vec2.set = function(out, x, y) { - out[0] = x; - out[1] = y; - return out; -}; - -/** - * Adds two vec2's - * @static - * @method add - * @param {Array} out the receiving vector - * @param {Array} a the first operand - * @param {Array} b the second operand - * @return {Array} out - */ -vec2.add = function(out, a, b) { - out[0] = a[0] + b[0]; - out[1] = a[1] + b[1]; - return out; -}; - -/** - * Subtracts two vec2's - * @static - * @method subtract - * @param {Array} out the receiving vector - * @param {Array} a the first operand - * @param {Array} b the second operand - * @return {Array} out - */ -vec2.subtract = function(out, a, b) { - out[0] = a[0] - b[0]; - out[1] = a[1] - b[1]; - return out; -}; - -/** - * Alias for vec2.subtract - * @static - * @method sub - */ -vec2.sub = vec2.subtract; - -/** - * Multiplies two vec2's - * @static - * @method multiply - * @param {Array} out the receiving vector - * @param {Array} a the first operand - * @param {Array} b the second operand - * @return {Array} out - */ -vec2.multiply = function(out, a, b) { - out[0] = a[0] * b[0]; - out[1] = a[1] * b[1]; - return out; -}; - -/** - * Alias for vec2.multiply - * @static - * @method mul - */ -vec2.mul = vec2.multiply; - -/** - * Divides two vec2's - * @static - * @method divide - * @param {Array} out the receiving vector - * @param {Array} a the first operand - * @param {Array} b the second operand - * @return {Array} out - */ -vec2.divide = function(out, a, b) { - out[0] = a[0] / b[0]; - out[1] = a[1] / b[1]; - return out; -}; - -/** - * Alias for vec2.divide - * @static - * @method div - */ -vec2.div = vec2.divide; - -/** - * Scales a vec2 by a scalar number - * @static - * @method scale - * @param {Array} out the receiving vector - * @param {Array} a the vector to scale - * @param {Number} b amount to scale the vector by - * @return {Array} out - */ -vec2.scale = function(out, a, b) { - out[0] = a[0] * b; - out[1] = a[1] * b; - return out; -}; - -/** - * Calculates the euclidian distance between two vec2's - * @static - * @method distance - * @param {Array} a the first operand - * @param {Array} b the second operand - * @return {Number} distance between a and b - */ -vec2.distance = function(a, b) { - var x = b[0] - a[0], - y = b[1] - a[1]; - return Math.sqrt(x*x + y*y); -}; - -/** - * Alias for vec2.distance - * @static - * @method dist - */ -vec2.dist = vec2.distance; - -/** - * Calculates the squared euclidian distance between two vec2's - * @static - * @method squaredDistance - * @param {Array} a the first operand - * @param {Array} b the second operand - * @return {Number} squared distance between a and b - */ -vec2.squaredDistance = function(a, b) { - var x = b[0] - a[0], - y = b[1] - a[1]; - return x*x + y*y; -}; - -/** - * Alias for vec2.squaredDistance - * @static - * @method sqrDist - */ -vec2.sqrDist = vec2.squaredDistance; - -/** - * Calculates the length of a vec2 - * @static - * @method length - * @param {Array} a vector to calculate length of - * @return {Number} length of a - */ -vec2.length = function (a) { - var x = a[0], - y = a[1]; - return Math.sqrt(x*x + y*y); -}; - -/** - * Alias for vec2.length - * @method len - * @static - */ -vec2.len = vec2.length; - -/** - * Calculates the squared length of a vec2 - * @static - * @method squaredLength - * @param {Array} a vector to calculate squared length of - * @return {Number} squared length of a - */ -vec2.squaredLength = function (a) { - var x = a[0], - y = a[1]; - return x*x + y*y; -}; - -/** - * Alias for vec2.squaredLength - * @static - * @method sqrLen - */ -vec2.sqrLen = vec2.squaredLength; - -/** - * Negates the components of a vec2 - * @static - * @method negate - * @param {Array} out the receiving vector - * @param {Array} a vector to negate - * @return {Array} out - */ -vec2.negate = function(out, a) { - out[0] = -a[0]; - out[1] = -a[1]; - return out; -}; - -/** - * Normalize a vec2 - * @static - * @method normalize - * @param {Array} out the receiving vector - * @param {Array} a vector to normalize - * @return {Array} out - */ -vec2.normalize = function(out, a) { - var x = a[0], - y = a[1]; - var len = x*x + y*y; - if (len > 0) { - //TODO: evaluate use of glm_invsqrt here? - len = 1 / Math.sqrt(len); - out[0] = a[0] * len; - out[1] = a[1] * len; - } - return out; -}; - -/** - * Calculates the dot product of two vec2's - * @static - * @method dot - * @param {Array} a the first operand - * @param {Array} b the second operand - * @return {Number} dot product of a and b - */ -vec2.dot = function (a, b) { - return a[0] * b[0] + a[1] * b[1]; -}; - -/** - * Returns a string representation of a vector - * @static - * @method str - * @param {Array} vec vector to represent as a string - * @return {String} string representation of the vector - */ -vec2.str = function (a) { - return 'vec2(' + a[0] + ', ' + a[1] + ')'; -}; - -/** - * Linearly interpolate/mix two vectors. - * @static - * @method lerp - * @param {Array} out - * @param {Array} a First vector - * @param {Array} b Second vector - * @param {number} t Lerp factor - */ -vec2.lerp = function (out, a, b, t) { - var ax = a[0], - ay = a[1]; - out[0] = ax + t * (b[0] - ax); - out[1] = ay + t * (b[1] - ay); - return out; -}; - -/** - * Reflect a vector along a normal. - * @static - * @method reflect - * @param {Array} out - * @param {Array} vector - * @param {Array} normal - */ -vec2.reflect = function(out, vector, normal){ - var dot = vector[0] * normal[0] + vector[1] * normal[1]; - out[0] = vector[0] - 2 * normal[0] * dot; - out[1] = vector[1] - 2 * normal[1] * dot; -}; - -/** - * Get the intersection point between two line segments. - * @static - * @method getLineSegmentsIntersection - * @param {Array} out - * @param {Array} p0 - * @param {Array} p1 - * @param {Array} p2 - * @param {Array} p3 - * @return {boolean} True if there was an intersection, otherwise false. - */ -vec2.getLineSegmentsIntersection = function(out, p0, p1, p2, p3) { - var t = vec2.getLineSegmentsIntersectionFraction(p0, p1, p2, p3); - if(t < 0){ - return false; - } else { - out[0] = p0[0] + (t * (p1[0] - p0[0])); - out[1] = p0[1] + (t * (p1[1] - p0[1])); - return true; - } -}; - -/** - * Get the intersection fraction between two line segments. If successful, the intersection is at p0 + t * (p1 - p0) - * @static - * @method getLineSegmentsIntersectionFraction - * @param {Array} p0 - * @param {Array} p1 - * @param {Array} p2 - * @param {Array} p3 - * @return {number} A number between 0 and 1 if there was an intersection, otherwise -1. - */ -vec2.getLineSegmentsIntersectionFraction = function(p0, p1, p2, p3) { - var s1_x = p1[0] - p0[0]; - var s1_y = p1[1] - p0[1]; - var s2_x = p3[0] - p2[0]; - var s2_y = p3[1] - p2[1]; - - var s, t; - s = (-s1_y * (p0[0] - p2[0]) + s1_x * (p0[1] - p2[1])) / (-s2_x * s1_y + s1_x * s2_y); - t = ( s2_x * (p0[1] - p2[1]) - s2_y * (p0[0] - p2[0])) / (-s2_x * s1_y + s1_x * s2_y); - if (s >= 0 && s <= 1 && t >= 0 && t <= 1) { // Collision detected - return t; - } - return -1; // No collision -}; - -},{"../utils/Utils":57}],31:[function(_dereq_,module,exports){ -var vec2 = _dereq_('../math/vec2') -, decomp = _dereq_('poly-decomp') -, Convex = _dereq_('../shapes/Convex') -, RaycastResult = _dereq_('../collision/RaycastResult') -, Ray = _dereq_('../collision/Ray') -, AABB = _dereq_('../collision/AABB') -, EventEmitter = _dereq_('../events/EventEmitter'); - -module.exports = Body; - -/** - * A rigid body. Has got a center of mass, position, velocity and a number of - * shapes that are used for collisions. - * - * @class Body - * @constructor - * @extends EventEmitter - * @param {Array} [options.force] - * @param {Array} [options.position] - * @param {Array} [options.velocity] - * @param {Boolean} [options.allowSleep] - * @param {Boolean} [options.collisionResponse] - * @param {Number} [options.angle=0] - * @param {Number} [options.angularForce=0] - * @param {Number} [options.angularVelocity=0] - * @param {Number} [options.ccdIterations=10] - * @param {Number} [options.ccdSpeedThreshold=-1] - * @param {Number} [options.fixedRotation=false] - * @param {Number} [options.gravityScale] - * @param {Number} [options.id] - * @param {Number} [options.mass=0] A number >= 0. If zero, the .type will be set to Body.STATIC. - * @param {Number} [options.sleepSpeedLimit] - * @param {Number} [options.sleepTimeLimit] - * @param {Object} [options] - * - * @example - * - * // Create a typical dynamic body - * var body = new Body({ - * mass: 1, - * position: [0, 0], - * angle: 0, - * velocity: [0, 0], - * angularVelocity: 0 - * }); - * - * // Add a circular shape to the body - * body.addShape(new Circle({ radius: 1 })); - * - * // Add the body to the world - * world.addBody(body); - */ -function Body(options){ - options = options || {}; - - EventEmitter.call(this); - - /** - * The body identifyer - * @property id - * @type {Number} - */ - this.id = options.id || ++Body._idCounter; - - /** - * The world that this body is added to. This property is set to NULL if the body is not added to any world. - * @property world - * @type {World} - */ - this.world = null; - - /** - * The shapes of the body. - * - * @property shapes - * @type {Array} - */ - this.shapes = []; - - /** - * The mass of the body. - * @property mass - * @type {number} - */ - this.mass = options.mass || 0; - - /** - * The inverse mass of the body. - * @property invMass - * @type {number} - */ - this.invMass = 0; - - /** - * The inertia of the body around the Z axis. - * @property inertia - * @type {number} - */ - this.inertia = 0; - - /** - * The inverse inertia of the body. - * @property invInertia - * @type {number} - */ - this.invInertia = 0; - - this.invMassSolve = 0; - this.invInertiaSolve = 0; - - /** - * Set to true if you want to fix the rotation of the body. - * @property fixedRotation - * @type {Boolean} - */ - this.fixedRotation = !!options.fixedRotation; - - /** - * Set to true if you want to fix the body movement along the X axis. The body will still be able to move along Y. - * @property {Boolean} fixedX - */ - this.fixedX = !!options.fixedX; - - /** - * Set to true if you want to fix the body movement along the Y axis. The body will still be able to move along X. - * @property {Boolean} fixedY - */ - this.fixedY = !!options.fixedY; - - /** - * @private - * @property {array} massMultiplier - */ - this.massMultiplier = vec2.create(); - - /** - * The position of the body - * @property position - * @type {Array} - */ - this.position = vec2.fromValues(0,0); - if(options.position){ - vec2.copy(this.position, options.position); - } - - /** - * The interpolated position of the body. Use this for rendering. - * @property interpolatedPosition - * @type {Array} - */ - this.interpolatedPosition = vec2.fromValues(0,0); - - /** - * The interpolated angle of the body. Use this for rendering. - * @property interpolatedAngle - * @type {Number} - */ - this.interpolatedAngle = 0; - - /** - * The previous position of the body. - * @property previousPosition - * @type {Array} - */ - this.previousPosition = vec2.fromValues(0,0); - - /** - * The previous angle of the body. - * @property previousAngle - * @type {Number} - */ - this.previousAngle = 0; - - /** - * The current velocity of the body. - * @property velocity - * @type {Array} - */ - this.velocity = vec2.fromValues(0,0); - if(options.velocity){ - vec2.copy(this.velocity, options.velocity); - } - - /** - * Constraint velocity that was added to the body during the last step. - * @property vlambda - * @type {Array} - */ - this.vlambda = vec2.fromValues(0,0); - - /** - * Angular constraint velocity that was added to the body during last step. - * @property wlambda - * @type {Array} - */ - this.wlambda = 0; - - /** - * The angle of the body, in radians. - * @property angle - * @type {number} - * @example - * // The angle property is not normalized to the interval 0 to 2*pi, it can be any value. - * // If you need a value between 0 and 2*pi, use the following function to normalize it. - * function normalizeAngle(angle){ - * angle = angle % (2*Math.PI); - * if(angle < 0){ - * angle += (2*Math.PI); - * } - * return angle; - * } - */ - this.angle = options.angle || 0; - - /** - * The angular velocity of the body, in radians per second. - * @property angularVelocity - * @type {number} - */ - this.angularVelocity = options.angularVelocity || 0; - - /** - * The force acting on the body. Since the body force (and {{#crossLink "Body/angularForce:property"}}{{/crossLink}}) will be zeroed after each step, so you need to set the force before each step. - * @property force - * @type {Array} - * - * @example - * // This produces a forcefield of 1 Newton in the positive x direction. - * for(var i=0; i radius){ - radius = offset + r; - } - } - - this.boundingRadius = radius; -}; - -/** - * Add a shape to the body. You can pass a local transform when adding a shape, - * so that the shape gets an offset and angle relative to the body center of mass. - * Will automatically update the mass properties and bounding radius. - * - * @method addShape - * @param {Shape} shape - * @param {Array} [offset] Local body offset of the shape. - * @param {Number} [angle] Local body angle. - * - * @example - * var body = new Body(), - * shape = new Circle({ radius: 1 }); - * - * // Add the shape to the body, positioned in the center - * body.addShape(shape); - * - * // Add another shape to the body, positioned 1 unit length from the body center of mass along the local x-axis. - * body.addShape(shape,[1,0]); - * - * // Add another shape to the body, positioned 1 unit length from the body center of mass along the local y-axis, and rotated 90 degrees CCW. - * body.addShape(shape,[0,1],Math.PI/2); - */ -Body.prototype.addShape = function(shape, offset, angle){ - if(shape.body){ - throw new Error('A shape can only be added to one body.'); - } - shape.body = this; - - // Copy the offset vector - if(offset){ - vec2.copy(shape.position, offset); - } else { - vec2.set(shape.position, 0, 0); - } - - shape.angle = angle || 0; - - this.shapes.push(shape); - this.updateMassProperties(); - this.updateBoundingRadius(); - - this.aabbNeedsUpdate = true; -}; - -/** - * Remove a shape - * @method removeShape - * @param {Shape} shape - * @return {Boolean} True if the shape was found and removed, else false. - */ -Body.prototype.removeShape = function(shape){ - var idx = this.shapes.indexOf(shape); - - if(idx !== -1){ - this.shapes.splice(idx,1); - this.aabbNeedsUpdate = true; - shape.body = null; - return true; - } else { - return false; - } -}; - -/** - * Updates .inertia, .invMass, .invInertia for this Body. Should be called when - * changing the structure or mass of the Body. - * - * @method updateMassProperties - * - * @example - * body.mass += 1; - * body.updateMassProperties(); - */ -Body.prototype.updateMassProperties = function(){ - if(this.type === Body.STATIC || this.type === Body.KINEMATIC){ - - this.mass = Number.MAX_VALUE; - this.invMass = 0; - this.inertia = Number.MAX_VALUE; - this.invInertia = 0; - - } else { - - var shapes = this.shapes, - N = shapes.length, - m = this.mass / N, - I = 0; - - if(!this.fixedRotation){ - for(var i=0; i0 ? 1/I : 0; - - } else { - this.inertia = Number.MAX_VALUE; - this.invInertia = 0; - } - - // Inverse mass properties are easy - this.invMass = 1 / this.mass; - - vec2.set( - this.massMultiplier, - this.fixedX ? 0 : 1, - this.fixedY ? 0 : 1 - ); - } -}; - -var Body_applyForce_r = vec2.create(); - -/** - * Apply force to a point relative to the center of mass of the body. This could for example be a point on the RigidBody surface. Applying force this way will add to Body.force and Body.angularForce. If relativePoint is zero, the force will be applied directly on the center of mass, and the torque produced will be zero. - * @method applyForce - * @param {Array} force The force to add. - * @param {Array} [relativePoint] A world point to apply the force on. - */ -Body.prototype.applyForce = function(force, relativePoint){ - - // Add linear force - vec2.add(this.force, this.force, force); - - if(relativePoint){ - - // Compute produced rotational force - var rotForce = vec2.crossLength(relativePoint,force); - - // Add rotational force - this.angularForce += rotForce; - } -}; - -/** - * Apply force to a body-local point. - * @method applyForceLocal - * @param {Array} localForce The force vector to add, oriented in local body space. - * @param {Array} localPoint A point relative to the body in world space. If not given, it is set to zero and all of the impulse will be excerted on the center of mass. - */ -var Body_applyForce_forceWorld = vec2.create(); -var Body_applyForce_pointWorld = vec2.create(); -var Body_applyForce_pointLocal = vec2.create(); -Body.prototype.applyForceLocal = function(localForce, localPoint){ - localPoint = localPoint || Body_applyForce_pointLocal; - var worldForce = Body_applyForce_forceWorld; - var worldPoint = Body_applyForce_pointWorld; - this.vectorToWorldFrame(worldForce, localForce); - this.vectorToWorldFrame(worldPoint, localPoint); - this.applyForce(worldForce, worldPoint); -}; - -/** - * Apply impulse to a point relative to the body. This could for example be a point on the Body surface. An impulse is a force added to a body during a short period of time (impulse = force * time). Impulses will be added to Body.velocity and Body.angularVelocity. - * @method applyImpulse - * @param {Array} impulse The impulse vector to add, oriented in world space. - * @param {Array} [relativePoint] A point relative to the body in world space. If not given, it is set to zero and all of the impulse will be excerted on the center of mass. - */ -var Body_applyImpulse_velo = vec2.create(); -Body.prototype.applyImpulse = function(impulseVector, relativePoint){ - if(this.type !== Body.DYNAMIC){ - return; - } - - // Compute produced central impulse velocity - var velo = Body_applyImpulse_velo; - vec2.scale(velo, impulseVector, this.invMass); - vec2.multiply(velo, this.massMultiplier, velo); - - // Add linear impulse - vec2.add(this.velocity, velo, this.velocity); - - if(relativePoint){ - // Compute produced rotational impulse velocity - var rotVelo = vec2.crossLength(relativePoint, impulseVector); - rotVelo *= this.invInertia; - - // Add rotational Impulse - this.angularVelocity += rotVelo; - } -}; - -/** - * Apply impulse to a point relative to the body. This could for example be a point on the Body surface. An impulse is a force added to a body during a short period of time (impulse = force * time). Impulses will be added to Body.velocity and Body.angularVelocity. - * @method applyImpulseLocal - * @param {Array} impulse The impulse vector to add, oriented in world space. - * @param {Array} [relativePoint] A point relative to the body in world space. If not given, it is set to zero and all of the impulse will be excerted on the center of mass. - */ -var Body_applyImpulse_impulseWorld = vec2.create(); -var Body_applyImpulse_pointWorld = vec2.create(); -var Body_applyImpulse_pointLocal = vec2.create(); -Body.prototype.applyImpulseLocal = function(localImpulse, localPoint){ - localPoint = localPoint || Body_applyImpulse_pointLocal; - var worldImpulse = Body_applyImpulse_impulseWorld; - var worldPoint = Body_applyImpulse_pointWorld; - this.vectorToWorldFrame(worldImpulse, localImpulse); - this.vectorToWorldFrame(worldPoint, localPoint); - this.applyImpulse(worldImpulse, worldPoint); -}; - -/** - * Transform a world point to local body frame. - * @method toLocalFrame - * @param {Array} out The vector to store the result in - * @param {Array} worldPoint The input world point - */ -Body.prototype.toLocalFrame = function(out, worldPoint){ - vec2.toLocalFrame(out, worldPoint, this.position, this.angle); -}; - -/** - * Transform a local point to world frame. - * @method toWorldFrame - * @param {Array} out The vector to store the result in - * @param {Array} localPoint The input local point - */ -Body.prototype.toWorldFrame = function(out, localPoint){ - vec2.toGlobalFrame(out, localPoint, this.position, this.angle); -}; - -/** - * Transform a world point to local body frame. - * @method vectorToLocalFrame - * @param {Array} out The vector to store the result in - * @param {Array} worldVector The input world vector - */ -Body.prototype.vectorToLocalFrame = function(out, worldVector){ - vec2.vectorToLocalFrame(out, worldVector, this.angle); -}; - -/** - * Transform a local point to world frame. - * @method vectorToWorldFrame - * @param {Array} out The vector to store the result in - * @param {Array} localVector The input local vector - */ -Body.prototype.vectorToWorldFrame = function(out, localVector){ - vec2.vectorToGlobalFrame(out, localVector, this.angle); -}; - -/** - * Reads a polygon shape path, and assembles convex shapes from that and puts them at proper offset points. - * @method fromPolygon - * @param {Array} path An array of 2d vectors, e.g. [[0,0],[0,1],...] that resembles a concave or convex polygon. The shape must be simple and without holes. - * @param {Object} [options] - * @param {Boolean} [options.optimalDecomp=false] Set to true if you need optimal decomposition. Warning: very slow for polygons with more than 10 vertices. - * @param {Boolean} [options.skipSimpleCheck=false] Set to true if you already know that the path is not intersecting itself. - * @param {Boolean|Number} [options.removeCollinearPoints=false] Set to a number (angle threshold value) to remove collinear points, or false to keep all points. - * @return {Boolean} True on success, else false. - */ -Body.prototype.fromPolygon = function(path,options){ - options = options || {}; - - // Remove all shapes - for(var i=this.shapes.length; i>=0; --i){ - this.removeShape(this.shapes[i]); - } - - var p = new decomp.Polygon(); - p.vertices = path; - - // Make it counter-clockwise - p.makeCCW(); - - if(typeof(options.removeCollinearPoints) === "number"){ - p.removeCollinearPoints(options.removeCollinearPoints); - } - - // Check if any line segment intersects the path itself - if(typeof(options.skipSimpleCheck) === "undefined"){ - if(!p.isSimple()){ - return false; - } - } - - // Save this path for later - this.concavePath = p.vertices.slice(0); - for(var i=0; ithis for details. - * @method applyDamping - * @param {number} dt Current time step - */ -Body.prototype.applyDamping = function(dt){ - if(this.type === Body.DYNAMIC){ // Only for dynamic bodies - var v = this.velocity; - vec2.scale(v, v, Math.pow(1.0 - this.damping,dt)); - this.angularVelocity *= Math.pow(1.0 - this.angularDamping,dt); - } -}; - -/** - * Wake the body up. Normally you should not need this, as the body is automatically awoken at events such as collisions. - * Sets the sleepState to {{#crossLink "Body/AWAKE:property"}}Body.AWAKE{{/crossLink}} and emits the wakeUp event if the body wasn't awake before. - * @method wakeUp - */ -Body.prototype.wakeUp = function(){ - var s = this.sleepState; - this.sleepState = Body.AWAKE; - this.idleTime = 0; - if(s !== Body.AWAKE){ - this.emit(Body.wakeUpEvent); - } -}; - -/** - * Force body sleep - * @method sleep - */ -Body.prototype.sleep = function(){ - this.sleepState = Body.SLEEPING; - this.angularVelocity = 0; - this.angularForce = 0; - vec2.set(this.velocity,0,0); - vec2.set(this.force,0,0); - this.emit(Body.sleepEvent); -}; - -/** - * Called every timestep to update internal sleep timer and change sleep state if needed. - * @method sleepTick - * @param {number} time The world time in seconds - * @param {boolean} dontSleep - * @param {number} dt - */ -Body.prototype.sleepTick = function(time, dontSleep, dt){ - if(!this.allowSleep || this.type === Body.SLEEPING){ - return; - } - - this.wantsToSleep = false; - - var sleepState = this.sleepState, - speedSquared = vec2.squaredLength(this.velocity) + Math.pow(this.angularVelocity,2), - speedLimitSquared = Math.pow(this.sleepSpeedLimit,2); - - // Add to idle time - if(speedSquared >= speedLimitSquared){ - this.idleTime = 0; - this.sleepState = Body.AWAKE; - } else { - this.idleTime += dt; - this.sleepState = Body.SLEEPY; - } - if(this.idleTime > this.sleepTimeLimit){ - if(!dontSleep){ - this.sleep(); - } else { - this.wantsToSleep = true; - } - } -}; - -/** - * Check if the body is overlapping another body. Note that this method only works if the body was added to a World and if at least one step was taken. - * @method overlaps - * @param {Body} body - * @return {boolean} - */ -Body.prototype.overlaps = function(body){ - return this.world.overlapKeeper.bodiesAreOverlapping(this, body); -}; - -var integrate_fhMinv = vec2.create(); -var integrate_velodt = vec2.create(); - -/** - * Move the body forward in time given its current velocity. - * @method integrate - * @param {Number} dt - */ -Body.prototype.integrate = function(dt){ - var minv = this.invMass, - f = this.force, - pos = this.position, - velo = this.velocity; - - // Save old position - vec2.copy(this.previousPosition, this.position); - this.previousAngle = this.angle; - - // Velocity update - if(!this.fixedRotation){ - this.angularVelocity += this.angularForce * this.invInertia * dt; - } - vec2.scale(integrate_fhMinv, f, dt * minv); - vec2.multiply(integrate_fhMinv, this.massMultiplier, integrate_fhMinv); - vec2.add(velo, integrate_fhMinv, velo); - - // CCD - if(!this.integrateToTimeOfImpact(dt)){ - - // Regular position update - vec2.scale(integrate_velodt, velo, dt); - vec2.add(pos, pos, integrate_velodt); - if(!this.fixedRotation){ - this.angle += this.angularVelocity * dt; - } - } - - this.aabbNeedsUpdate = true; -}; - -var result = new RaycastResult(); -var ray = new Ray({ - mode: Ray.ALL -}); -var direction = vec2.create(); -var end = vec2.create(); -var startToEnd = vec2.create(); -var rememberPosition = vec2.create(); -Body.prototype.integrateToTimeOfImpact = function(dt){ - - if(this.ccdSpeedThreshold < 0 || vec2.squaredLength(this.velocity) < Math.pow(this.ccdSpeedThreshold, 2)){ - return false; - } - - vec2.normalize(direction, this.velocity); - - vec2.scale(end, this.velocity, dt); - vec2.add(end, end, this.position); - - vec2.sub(startToEnd, end, this.position); - var startToEndAngle = this.angularVelocity * dt; - var len = vec2.length(startToEnd); - - var timeOfImpact = 1; - - var hit; - var that = this; - result.reset(); - ray.callback = function (result) { - if(result.body === that){ - return; - } - hit = result.body; - result.getHitPoint(end, ray); - vec2.sub(startToEnd, end, that.position); - timeOfImpact = vec2.length(startToEnd) / len; - result.stop(); - }; - vec2.copy(ray.from, this.position); - vec2.copy(ray.to, end); - ray.update(); - this.world.raycast(result, ray); - - if(!hit){ - return false; - } - - var rememberAngle = this.angle; - vec2.copy(rememberPosition, this.position); - - // Got a start and end point. Approximate time of impact using binary search - var iter = 0; - var tmin = 0; - var tmid = 0; - var tmax = timeOfImpact; - while (tmax >= tmin && iter < this.ccdIterations) { - iter++; - - // calculate the midpoint - tmid = (tmax - tmin) / 2; - - // Move the body to that point - vec2.scale(integrate_velodt, startToEnd, timeOfImpact); - vec2.add(this.position, rememberPosition, integrate_velodt); - this.angle = rememberAngle + startToEndAngle * timeOfImpact; - this.updateAABB(); - - // check overlap - var overlaps = this.aabb.overlaps(hit.aabb) && this.world.narrowphase.bodiesOverlap(this, hit); - - if (overlaps) { - // change min to search upper interval - tmin = tmid; - } else { - // change max to search lower interval - tmax = tmid; - } - } - - timeOfImpact = tmid; - - vec2.copy(this.position, rememberPosition); - this.angle = rememberAngle; - - // move to TOI - vec2.scale(integrate_velodt, startToEnd, timeOfImpact); - vec2.add(this.position, this.position, integrate_velodt); - if(!this.fixedRotation){ - this.angle += startToEndAngle * timeOfImpact; - } - - return true; -}; - -/** - * Get velocity of a point in the body. - * @method getVelocityAtPoint - * @param {Array} result A vector to store the result in - * @param {Array} relativePoint A world oriented vector, indicating the position of the point to get the velocity from - * @return {Array} The result vector - */ -Body.prototype.getVelocityAtPoint = function(result, relativePoint){ - vec2.crossVZ(result, relativePoint, this.angularVelocity); - vec2.subtract(result, this.velocity, result); - return result; -}; - -/** - * @event sleepy - */ -Body.sleepyEvent = { - type: "sleepy" -}; - -/** - * @event sleep - */ -Body.sleepEvent = { - type: "sleep" -}; - -/** - * @event wakeup - */ -Body.wakeUpEvent = { - type: "wakeup" -}; - -/** - * Dynamic body. - * @property DYNAMIC - * @type {Number} - * @static - */ -Body.DYNAMIC = 1; - -/** - * Static body. - * @property STATIC - * @type {Number} - * @static - */ -Body.STATIC = 2; - -/** - * Kinematic body. - * @property KINEMATIC - * @type {Number} - * @static - */ -Body.KINEMATIC = 4; - -/** - * @property AWAKE - * @type {Number} - * @static - */ -Body.AWAKE = 0; - -/** - * @property SLEEPY - * @type {Number} - * @static - */ -Body.SLEEPY = 1; - -/** - * @property SLEEPING - * @type {Number} - * @static - */ -Body.SLEEPING = 2; - - -},{"../collision/AABB":7,"../collision/Ray":11,"../collision/RaycastResult":12,"../events/EventEmitter":26,"../math/vec2":30,"../shapes/Convex":40,"poly-decomp":5}],32:[function(_dereq_,module,exports){ -var vec2 = _dereq_('../math/vec2'); -var Spring = _dereq_('./Spring'); -var Utils = _dereq_('../utils/Utils'); - -module.exports = LinearSpring; - -/** - * A spring, connecting two bodies. - * - * The Spring explicitly adds force and angularForce to the bodies. - * - * @class LinearSpring - * @extends Spring - * @constructor - * @param {Body} bodyA - * @param {Body} bodyB - * @param {Object} [options] - * @param {number} [options.restLength] A number > 0. Default is the current distance between the world anchor points. - * @param {number} [options.stiffness=100] Spring constant (see Hookes Law). A number >= 0. - * @param {number} [options.damping=1] A number >= 0. Default: 1 - * @param {Array} [options.worldAnchorA] Where to hook the spring to body A, in world coordinates. Overrides the option "localAnchorA" if given. - * @param {Array} [options.worldAnchorB] - * @param {Array} [options.localAnchorA] Where to hook the spring to body A, in local body coordinates. Defaults to the body center. - * @param {Array} [options.localAnchorB] - */ -function LinearSpring(bodyA,bodyB,options){ - options = options || {}; - - Spring.call(this, bodyA, bodyB, options); - - /** - * Anchor for bodyA in local bodyA coordinates. - * @property localAnchorA - * @type {Array} - */ - this.localAnchorA = vec2.fromValues(0,0); - - /** - * Anchor for bodyB in local bodyB coordinates. - * @property localAnchorB - * @type {Array} - */ - this.localAnchorB = vec2.fromValues(0,0); - - if(options.localAnchorA){ vec2.copy(this.localAnchorA, options.localAnchorA); } - if(options.localAnchorB){ vec2.copy(this.localAnchorB, options.localAnchorB); } - if(options.worldAnchorA){ this.setWorldAnchorA(options.worldAnchorA); } - if(options.worldAnchorB){ this.setWorldAnchorB(options.worldAnchorB); } - - var worldAnchorA = vec2.create(); - var worldAnchorB = vec2.create(); - this.getWorldAnchorA(worldAnchorA); - this.getWorldAnchorB(worldAnchorB); - var worldDistance = vec2.distance(worldAnchorA, worldAnchorB); - - /** - * Rest length of the spring. - * @property restLength - * @type {number} - */ - this.restLength = typeof(options.restLength) === "number" ? options.restLength : worldDistance; -} -LinearSpring.prototype = new Spring(); -LinearSpring.prototype.constructor = LinearSpring; - -/** - * Set the anchor point on body A, using world coordinates. - * @method setWorldAnchorA - * @param {Array} worldAnchorA - */ -LinearSpring.prototype.setWorldAnchorA = function(worldAnchorA){ - this.bodyA.toLocalFrame(this.localAnchorA, worldAnchorA); -}; - -/** - * Set the anchor point on body B, using world coordinates. - * @method setWorldAnchorB - * @param {Array} worldAnchorB - */ -LinearSpring.prototype.setWorldAnchorB = function(worldAnchorB){ - this.bodyB.toLocalFrame(this.localAnchorB, worldAnchorB); -}; - -/** - * Get the anchor point on body A, in world coordinates. - * @method getWorldAnchorA - * @param {Array} result The vector to store the result in. - */ -LinearSpring.prototype.getWorldAnchorA = function(result){ - this.bodyA.toWorldFrame(result, this.localAnchorA); -}; - -/** - * Get the anchor point on body B, in world coordinates. - * @method getWorldAnchorB - * @param {Array} result The vector to store the result in. - */ -LinearSpring.prototype.getWorldAnchorB = function(result){ - this.bodyB.toWorldFrame(result, this.localAnchorB); -}; - -var applyForce_r = vec2.create(), - applyForce_r_unit = vec2.create(), - applyForce_u = vec2.create(), - applyForce_f = vec2.create(), - applyForce_worldAnchorA = vec2.create(), - applyForce_worldAnchorB = vec2.create(), - applyForce_ri = vec2.create(), - applyForce_rj = vec2.create(), - applyForce_tmp = vec2.create(); - -/** - * Apply the spring force to the connected bodies. - * @method applyForce - */ -LinearSpring.prototype.applyForce = function(){ - var k = this.stiffness, - d = this.damping, - l = this.restLength, - bodyA = this.bodyA, - bodyB = this.bodyB, - r = applyForce_r, - r_unit = applyForce_r_unit, - u = applyForce_u, - f = applyForce_f, - tmp = applyForce_tmp; - - var worldAnchorA = applyForce_worldAnchorA, - worldAnchorB = applyForce_worldAnchorB, - ri = applyForce_ri, - rj = applyForce_rj; - - // Get world anchors - this.getWorldAnchorA(worldAnchorA); - this.getWorldAnchorB(worldAnchorB); - - // Get offset points - vec2.sub(ri, worldAnchorA, bodyA.position); - vec2.sub(rj, worldAnchorB, bodyB.position); - - // Compute distance vector between world anchor points - vec2.sub(r, worldAnchorB, worldAnchorA); - var rlen = vec2.len(r); - vec2.normalize(r_unit,r); - - //console.log(rlen) - //console.log("A",vec2.str(worldAnchorA),"B",vec2.str(worldAnchorB)) - - // Compute relative velocity of the anchor points, u - vec2.sub(u, bodyB.velocity, bodyA.velocity); - vec2.crossZV(tmp, bodyB.angularVelocity, rj); - vec2.add(u, u, tmp); - vec2.crossZV(tmp, bodyA.angularVelocity, ri); - vec2.sub(u, u, tmp); - - // F = - k * ( x - L ) - D * ( u ) - vec2.scale(f, r_unit, -k*(rlen-l) - d*vec2.dot(u,r_unit)); - - // Add forces to bodies - vec2.sub( bodyA.force, bodyA.force, f); - vec2.add( bodyB.force, bodyB.force, f); - - // Angular force - var ri_x_f = vec2.crossLength(ri, f); - var rj_x_f = vec2.crossLength(rj, f); - bodyA.angularForce -= ri_x_f; - bodyB.angularForce += rj_x_f; -}; - -},{"../math/vec2":30,"../utils/Utils":57,"./Spring":34}],33:[function(_dereq_,module,exports){ -var vec2 = _dereq_('../math/vec2'); -var Spring = _dereq_('./Spring'); - -module.exports = RotationalSpring; - -/** - * A rotational spring, connecting two bodies rotation. This spring explicitly adds angularForce (torque) to the bodies. - * - * The spring can be combined with a {{#crossLink "RevoluteConstraint"}}{{/crossLink}} to make, for example, a mouse trap. - * - * @class RotationalSpring - * @extends Spring - * @constructor - * @param {Body} bodyA - * @param {Body} bodyB - * @param {Object} [options] - * @param {number} [options.restAngle] The relative angle of bodies at which the spring is at rest. If not given, it's set to the current relative angle between the bodies. - * @param {number} [options.stiffness=100] Spring constant (see Hookes Law). A number >= 0. - * @param {number} [options.damping=1] A number >= 0. - */ -function RotationalSpring(bodyA, bodyB, options){ - options = options || {}; - - Spring.call(this, bodyA, bodyB, options); - - /** - * Rest angle of the spring. - * @property restAngle - * @type {number} - */ - this.restAngle = typeof(options.restAngle) === "number" ? options.restAngle : bodyB.angle - bodyA.angle; -} -RotationalSpring.prototype = new Spring(); -RotationalSpring.prototype.constructor = RotationalSpring; - -/** - * Apply the spring force to the connected bodies. - * @method applyForce - */ -RotationalSpring.prototype.applyForce = function(){ - var k = this.stiffness, - d = this.damping, - l = this.restAngle, - bodyA = this.bodyA, - bodyB = this.bodyB, - x = bodyB.angle - bodyA.angle, - u = bodyB.angularVelocity - bodyA.angularVelocity; - - var torque = - k * (x - l) - d * u * 0; - - bodyA.angularForce -= torque; - bodyB.angularForce += torque; -}; - -},{"../math/vec2":30,"./Spring":34}],34:[function(_dereq_,module,exports){ -var vec2 = _dereq_('../math/vec2'); -var Utils = _dereq_('../utils/Utils'); - -module.exports = Spring; - -/** - * A spring, connecting two bodies. The Spring explicitly adds force and angularForce to the bodies and does therefore not put load on the constraint solver. - * - * @class Spring - * @constructor - * @param {Body} bodyA - * @param {Body} bodyB - * @param {Object} [options] - * @param {number} [options.stiffness=100] Spring constant (see Hookes Law). A number >= 0. - * @param {number} [options.damping=1] A number >= 0. Default: 1 - * @param {Array} [options.localAnchorA] Where to hook the spring to body A, in local body coordinates. Defaults to the body center. - * @param {Array} [options.localAnchorB] - * @param {Array} [options.worldAnchorA] Where to hook the spring to body A, in world coordinates. Overrides the option "localAnchorA" if given. - * @param {Array} [options.worldAnchorB] - */ -function Spring(bodyA, bodyB, options){ - options = Utils.defaults(options,{ - stiffness: 100, - damping: 1, - }); - - /** - * Stiffness of the spring. - * @property stiffness - * @type {number} - */ - this.stiffness = options.stiffness; - - /** - * Damping of the spring. - * @property damping - * @type {number} - */ - this.damping = options.damping; - - /** - * First connected body. - * @property bodyA - * @type {Body} - */ - this.bodyA = bodyA; - - /** - * Second connected body. - * @property bodyB - * @type {Body} - */ - this.bodyB = bodyB; -} - -/** - * Apply the spring force to the connected bodies. - * @method applyForce - */ -Spring.prototype.applyForce = function(){ - // To be implemented by subclasses -}; - -},{"../math/vec2":30,"../utils/Utils":57}],35:[function(_dereq_,module,exports){ -var vec2 = _dereq_('../math/vec2'); -var Utils = _dereq_('../utils/Utils'); -var Constraint = _dereq_('../constraints/Constraint'); -var FrictionEquation = _dereq_('../equations/FrictionEquation'); -var Body = _dereq_('../objects/Body'); - -module.exports = TopDownVehicle; - -/** - * @class TopDownVehicle - * @constructor - * @param {Body} chassisBody A dynamic body, already added to the world. - * @param {Object} [options] - * - * @example - * - * // Create a dynamic body for the chassis - * var chassisBody = new Body({ - * mass: 1 - * }); - * var boxShape = new Box({ width: 0.5, height: 1 }); - * chassisBody.addShape(boxShape); - * world.addBody(chassisBody); - * - * // Create the vehicle - * var vehicle = new TopDownVehicle(chassisBody); - * - * // Add one front wheel and one back wheel - we don't actually need four :) - * var frontWheel = vehicle.addWheel({ - * localPosition: [0, 0.5] // front - * }); - * frontWheel.setSideFriction(4); - * - * // Back wheel - * var backWheel = vehicle.addWheel({ - * localPosition: [0, -0.5] // back - * }); - * backWheel.setSideFriction(3); // Less side friction on back wheel makes it easier to drift - * vehicle.addToWorld(world); - * - * // Steer value zero means straight forward. Positive is left and negative right. - * frontWheel.steerValue = Math.PI / 16; - * - * // Engine force forward - * backWheel.engineForce = 10; - * backWheel.setBrakeForce(0); - */ -function TopDownVehicle(chassisBody, options){ - options = options || {}; - - /** - * @property {Body} chassisBody - */ - this.chassisBody = chassisBody; - - /** - * @property {Array} wheels - */ - this.wheels = []; - - // A dummy body to constrain the chassis to - this.groundBody = new Body({ mass: 0 }); - - this.world = null; - - var that = this; - this.preStepCallback = function(){ - that.update(); - }; -} - -/** - * @method addToWorld - * @param {World} world - */ -TopDownVehicle.prototype.addToWorld = function(world){ - this.world = world; - world.addBody(this.groundBody); - world.on('preStep', this.preStepCallback); - for (var i = 0; i < this.wheels.length; i++) { - var wheel = this.wheels[i]; - world.addConstraint(wheel); - } -}; - -/** - * @method removeFromWorld - * @param {World} world - */ -TopDownVehicle.prototype.removeFromWorld = function(){ - var world = this.world; - world.removeBody(this.groundBody); - world.off('preStep', this.preStepCallback); - for (var i = 0; i < this.wheels.length; i++) { - var wheel = this.wheels[i]; - world.removeConstraint(wheel); - } - this.world = null; -}; - -/** - * @method addWheel - * @param {object} [wheelOptions] - * @return {WheelConstraint} - */ -TopDownVehicle.prototype.addWheel = function(wheelOptions){ - var wheel = new WheelConstraint(this,wheelOptions); - this.wheels.push(wheel); - return wheel; -}; - -/** - * @method update - */ -TopDownVehicle.prototype.update = function(){ - for (var i = 0; i < this.wheels.length; i++) { - this.wheels[i].update(); - } -}; - -/** - * @class WheelConstraint - * @constructor - * @extends {Constraint} - * @param {Vehicle} vehicle - * @param {object} [options] - * @param {Array} [options.localForwardVector]The local wheel forward vector in local body space. Default is zero. - * @param {Array} [options.localPosition] The local position of the wheen in the chassis body. Default is zero - the center of the body. - * @param {Array} [options.sideFriction=5] The max friction force in the sideways direction. - */ -function WheelConstraint(vehicle, options){ - options = options || {}; - - this.vehicle = vehicle; - - this.forwardEquation = new FrictionEquation(vehicle.chassisBody, vehicle.groundBody); - - this.sideEquation = new FrictionEquation(vehicle.chassisBody, vehicle.groundBody); - - /** - * @property {number} steerValue - */ - this.steerValue = 0; - - /** - * @property {number} engineForce - */ - this.engineForce = 0; - - this.setSideFriction(options.sideFriction !== undefined ? options.sideFriction : 5); - - /** - * @property {Array} localForwardVector - */ - this.localForwardVector = vec2.fromValues(0, 1); - if(options.localForwardVector){ - vec2.copy(this.localForwardVector, options.localForwardVector); - } - - /** - * @property {Array} localPosition - */ - this.localPosition = vec2.fromValues(0, 0); - if(options.localPosition){ - vec2.copy(this.localPosition, options.localPosition); - } - - Constraint.apply(this, vehicle.chassisBody, vehicle.groundBody); - - this.equations.push( - this.forwardEquation, - this.sideEquation - ); - - this.setBrakeForce(0); -} -WheelConstraint.prototype = new Constraint(); - -/** - * @method setForwardFriction - */ -WheelConstraint.prototype.setBrakeForce = function(force){ - this.forwardEquation.setSlipForce(force); -}; - -/** - * @method setSideFriction - */ -WheelConstraint.prototype.setSideFriction = function(force){ - this.sideEquation.setSlipForce(force); -}; - -var worldVelocity = vec2.create(); -var relativePoint = vec2.create(); - -/** - * @method getSpeed - */ -WheelConstraint.prototype.getSpeed = function(){ - this.vehicle.chassisBody.vectorToWorldFrame(relativePoint, this.localForwardVector); - this.vehicle.chassisBody.getVelocityAtPoint(worldVelocity, relativePoint); - return vec2.dot(worldVelocity, relativePoint); -}; - -var tmpVec = vec2.create(); - -/** - * @method update - */ -WheelConstraint.prototype.update = function(){ - - // Directional - this.vehicle.chassisBody.vectorToWorldFrame(this.forwardEquation.t, this.localForwardVector); - vec2.rotate(this.sideEquation.t, this.localForwardVector, Math.PI / 2); - this.vehicle.chassisBody.vectorToWorldFrame(this.sideEquation.t, this.sideEquation.t); - - vec2.rotate(this.forwardEquation.t, this.forwardEquation.t, this.steerValue); - vec2.rotate(this.sideEquation.t, this.sideEquation.t, this.steerValue); - - // Attachment point - this.vehicle.chassisBody.toWorldFrame(this.forwardEquation.contactPointB, this.localPosition); - vec2.copy(this.sideEquation.contactPointB, this.forwardEquation.contactPointB); - - this.vehicle.chassisBody.vectorToWorldFrame(this.forwardEquation.contactPointA, this.localPosition); - vec2.copy(this.sideEquation.contactPointA, this.forwardEquation.contactPointA); - - // Add engine force - vec2.normalize(tmpVec, this.forwardEquation.t); - vec2.scale(tmpVec, tmpVec, this.engineForce); - - this.vehicle.chassisBody.applyForce(tmpVec, this.forwardEquation.contactPointA); -}; -},{"../constraints/Constraint":14,"../equations/FrictionEquation":23,"../math/vec2":30,"../objects/Body":31,"../utils/Utils":57}],36:[function(_dereq_,module,exports){ -// Export p2 classes -var p2 = module.exports = { - AABB : _dereq_('./collision/AABB'), - AngleLockEquation : _dereq_('./equations/AngleLockEquation'), - Body : _dereq_('./objects/Body'), - Broadphase : _dereq_('./collision/Broadphase'), - Capsule : _dereq_('./shapes/Capsule'), - Circle : _dereq_('./shapes/Circle'), - Constraint : _dereq_('./constraints/Constraint'), - ContactEquation : _dereq_('./equations/ContactEquation'), - ContactEquationPool : _dereq_('./utils/ContactEquationPool'), - ContactMaterial : _dereq_('./material/ContactMaterial'), - Convex : _dereq_('./shapes/Convex'), - DistanceConstraint : _dereq_('./constraints/DistanceConstraint'), - Equation : _dereq_('./equations/Equation'), - EventEmitter : _dereq_('./events/EventEmitter'), - FrictionEquation : _dereq_('./equations/FrictionEquation'), - FrictionEquationPool : _dereq_('./utils/FrictionEquationPool'), - GearConstraint : _dereq_('./constraints/GearConstraint'), - GSSolver : _dereq_('./solver/GSSolver'), - Heightfield : _dereq_('./shapes/Heightfield'), - Line : _dereq_('./shapes/Line'), - LockConstraint : _dereq_('./constraints/LockConstraint'), - Material : _dereq_('./material/Material'), - Narrowphase : _dereq_('./collision/Narrowphase'), - NaiveBroadphase : _dereq_('./collision/NaiveBroadphase'), - Particle : _dereq_('./shapes/Particle'), - Plane : _dereq_('./shapes/Plane'), - Pool : _dereq_('./utils/Pool'), - RevoluteConstraint : _dereq_('./constraints/RevoluteConstraint'), - PrismaticConstraint : _dereq_('./constraints/PrismaticConstraint'), - Ray : _dereq_('./collision/Ray'), - RaycastResult : _dereq_('./collision/RaycastResult'), - Box : _dereq_('./shapes/Box'), - RotationalVelocityEquation : _dereq_('./equations/RotationalVelocityEquation'), - SAPBroadphase : _dereq_('./collision/SAPBroadphase'), - Shape : _dereq_('./shapes/Shape'), - Solver : _dereq_('./solver/Solver'), - Spring : _dereq_('./objects/Spring'), - TopDownVehicle : _dereq_('./objects/TopDownVehicle'), - LinearSpring : _dereq_('./objects/LinearSpring'), - RotationalSpring : _dereq_('./objects/RotationalSpring'), - Utils : _dereq_('./utils/Utils'), - World : _dereq_('./world/World'), - vec2 : _dereq_('./math/vec2'), - version : _dereq_('../package.json').version, -}; - -Object.defineProperty(p2, 'Rectangle', { - get: function() { - console.warn('The Rectangle class has been renamed to Box.'); - return this.Box; - } -}); -},{"../package.json":6,"./collision/AABB":7,"./collision/Broadphase":8,"./collision/NaiveBroadphase":9,"./collision/Narrowphase":10,"./collision/Ray":11,"./collision/RaycastResult":12,"./collision/SAPBroadphase":13,"./constraints/Constraint":14,"./constraints/DistanceConstraint":15,"./constraints/GearConstraint":16,"./constraints/LockConstraint":17,"./constraints/PrismaticConstraint":18,"./constraints/RevoluteConstraint":19,"./equations/AngleLockEquation":20,"./equations/ContactEquation":21,"./equations/Equation":22,"./equations/FrictionEquation":23,"./equations/RotationalVelocityEquation":25,"./events/EventEmitter":26,"./material/ContactMaterial":27,"./material/Material":28,"./math/vec2":30,"./objects/Body":31,"./objects/LinearSpring":32,"./objects/RotationalSpring":33,"./objects/Spring":34,"./objects/TopDownVehicle":35,"./shapes/Box":37,"./shapes/Capsule":38,"./shapes/Circle":39,"./shapes/Convex":40,"./shapes/Heightfield":41,"./shapes/Line":42,"./shapes/Particle":43,"./shapes/Plane":44,"./shapes/Shape":45,"./solver/GSSolver":46,"./solver/Solver":47,"./utils/ContactEquationPool":48,"./utils/FrictionEquationPool":49,"./utils/Pool":55,"./utils/Utils":57,"./world/World":61}],37:[function(_dereq_,module,exports){ -var vec2 = _dereq_('../math/vec2') -, Shape = _dereq_('./Shape') -, Convex = _dereq_('./Convex'); - -module.exports = Box; - -/** - * Box shape class. - * @class Box - * @constructor - * @param {object} [options] (Note that this options object will be passed on to the {{#crossLink "Shape"}}{{/crossLink}} constructor.) - * @param {Number} [options.width=1] Total width of the box - * @param {Number} [options.height=1] Total height of the box - * @extends Convex - */ -function Box(options){ - if(typeof(arguments[0]) === 'number' && typeof(arguments[1]) === 'number'){ - options = { - width: arguments[0], - height: arguments[1] - }; - console.warn('The Rectangle has been renamed to Box and its constructor signature has changed. Please use the following format: new Box({ width: 1, height: 1, ... })'); - } - options = options || {}; - - /** - * Total width of the box - * @property width - * @type {Number} - */ - var width = this.width = options.width || 1; - - /** - * Total height of the box - * @property height - * @type {Number} - */ - var height = this.height = options.height || 1; - - var verts = [ - vec2.fromValues(-width/2, -height/2), - vec2.fromValues( width/2, -height/2), - vec2.fromValues( width/2, height/2), - vec2.fromValues(-width/2, height/2) - ]; - var axes = [ - vec2.fromValues(1, 0), - vec2.fromValues(0, 1) - ]; - - options.vertices = verts; - options.axes = axes; - options.type = Shape.BOX; - Convex.call(this, options); -} -Box.prototype = new Convex(); -Box.prototype.constructor = Box; - -/** - * Compute moment of inertia - * @method computeMomentOfInertia - * @param {Number} mass - * @return {Number} - */ -Box.prototype.computeMomentOfInertia = function(mass){ - var w = this.width, - h = this.height; - return mass * (h*h + w*w) / 12; -}; - -/** - * Update the bounding radius - * @method updateBoundingRadius - */ -Box.prototype.updateBoundingRadius = function(){ - var w = this.width, - h = this.height; - this.boundingRadius = Math.sqrt(w*w + h*h) / 2; -}; - -var corner1 = vec2.create(), - corner2 = vec2.create(), - corner3 = vec2.create(), - corner4 = vec2.create(); - -/** - * @method computeAABB - * @param {AABB} out The resulting AABB. - * @param {Array} position - * @param {Number} angle - */ -Box.prototype.computeAABB = function(out, position, angle){ - out.setFromPoints(this.vertices,position,angle,0); -}; - -Box.prototype.updateArea = function(){ - this.area = this.width * this.height; -}; - - -},{"../math/vec2":30,"./Convex":40,"./Shape":45}],38:[function(_dereq_,module,exports){ -var Shape = _dereq_('./Shape') -, vec2 = _dereq_('../math/vec2'); - -module.exports = Capsule; - -/** - * Capsule shape class. - * @class Capsule - * @constructor - * @extends Shape - * @param {object} [options] (Note that this options object will be passed on to the {{#crossLink "Shape"}}{{/crossLink}} constructor.) - * @param {Number} [options.length=1] The distance between the end points - * @param {Number} [options.radius=1] Radius of the capsule - * @example - * var capsuleShape = new Capsule({ - * length: 1, - * radius: 2 - * }); - * body.addShape(capsuleShape); - */ -function Capsule(options){ - if(typeof(arguments[0]) === 'number' && typeof(arguments[1]) === 'number'){ - options = { - length: arguments[0], - radius: arguments[1] - }; - console.warn('The Capsule constructor signature has changed. Please use the following format: new Capsule({ radius: 1, length: 1 })'); - } - options = options || {}; - - /** - * The distance between the end points. - * @property {Number} length - */ - this.length = options.length || 1; - - /** - * The radius of the capsule. - * @property {Number} radius - */ - this.radius = options.radius || 1; - - options.type = Shape.CAPSULE; - Shape.call(this, options); -} -Capsule.prototype = new Shape(); -Capsule.prototype.constructor = Capsule; - -/** - * Compute the mass moment of inertia of the Capsule. - * @method conputeMomentOfInertia - * @param {Number} mass - * @return {Number} - * @todo - */ -Capsule.prototype.computeMomentOfInertia = function(mass){ - // Approximate with rectangle - var r = this.radius, - w = this.length + r, // 2*r is too much, 0 is too little - h = r*2; - return mass * (h*h + w*w) / 12; -}; - -/** - * @method updateBoundingRadius - */ -Capsule.prototype.updateBoundingRadius = function(){ - this.boundingRadius = this.radius + this.length/2; -}; - -/** - * @method updateArea - */ -Capsule.prototype.updateArea = function(){ - this.area = Math.PI * this.radius * this.radius + this.radius * 2 * this.length; -}; - -var r = vec2.create(); - -/** - * @method computeAABB - * @param {AABB} out The resulting AABB. - * @param {Array} position - * @param {Number} angle - */ -Capsule.prototype.computeAABB = function(out, position, angle){ - var radius = this.radius; - - // Compute center position of one of the the circles, world oriented, but with local offset - vec2.set(r,this.length / 2,0); - if(angle !== 0){ - vec2.rotate(r,r,angle); - } - - // Get bounds - vec2.set(out.upperBound, Math.max(r[0]+radius, -r[0]+radius), - Math.max(r[1]+radius, -r[1]+radius)); - vec2.set(out.lowerBound, Math.min(r[0]-radius, -r[0]-radius), - Math.min(r[1]-radius, -r[1]-radius)); - - // Add offset - vec2.add(out.lowerBound, out.lowerBound, position); - vec2.add(out.upperBound, out.upperBound, position); -}; - -var intersectCapsule_hitPointWorld = vec2.create(); -var intersectCapsule_normal = vec2.create(); -var intersectCapsule_l0 = vec2.create(); -var intersectCapsule_l1 = vec2.create(); -var intersectCapsule_unit_y = vec2.fromValues(0,1); - -/** - * @method raycast - * @param {RaycastResult} result - * @param {Ray} ray - * @param {array} position - * @param {number} angle - */ -Capsule.prototype.raycast = function(result, ray, position, angle){ - var from = ray.from; - var to = ray.to; - var direction = ray.direction; - - var hitPointWorld = intersectCapsule_hitPointWorld; - var normal = intersectCapsule_normal; - var l0 = intersectCapsule_l0; - var l1 = intersectCapsule_l1; - - // The sides - var halfLen = this.length / 2; - for(var i=0; i<2; i++){ - - // get start and end of the line - var y = this.radius * (i*2-1); - vec2.set(l0, -halfLen, y); - vec2.set(l1, halfLen, y); - vec2.toGlobalFrame(l0, l0, position, angle); - vec2.toGlobalFrame(l1, l1, position, angle); - - var delta = vec2.getLineSegmentsIntersectionFraction(from, to, l0, l1); - if(delta >= 0){ - vec2.rotate(normal, intersectCapsule_unit_y, angle); - vec2.scale(normal, normal, (i*2-1)); - ray.reportIntersection(result, delta, normal, -1); - if(result.shouldStop(ray)){ - return; - } - } - } - - // Circles - var diagonalLengthSquared = Math.pow(this.radius, 2) + Math.pow(halfLen, 2); - for(var i=0; i<2; i++){ - vec2.set(l0, halfLen * (i*2-1), 0); - vec2.toGlobalFrame(l0, l0, position, angle); - - var a = Math.pow(to[0] - from[0], 2) + Math.pow(to[1] - from[1], 2); - var b = 2 * ((to[0] - from[0]) * (from[0] - l0[0]) + (to[1] - from[1]) * (from[1] - l0[1])); - var c = Math.pow(from[0] - l0[0], 2) + Math.pow(from[1] - l0[1], 2) - Math.pow(this.radius, 2); - var delta = Math.pow(b, 2) - 4 * a * c; - - if(delta < 0){ - // No intersection - continue; - - } else if(delta === 0){ - // single intersection point - vec2.lerp(hitPointWorld, from, to, delta); - - if(vec2.squaredDistance(hitPointWorld, position) > diagonalLengthSquared){ - vec2.sub(normal, hitPointWorld, l0); - vec2.normalize(normal,normal); - ray.reportIntersection(result, delta, normal, -1); - if(result.shouldStop(ray)){ - return; - } - } - - } else { - var sqrtDelta = Math.sqrt(delta); - var inv2a = 1 / (2 * a); - var d1 = (- b - sqrtDelta) * inv2a; - var d2 = (- b + sqrtDelta) * inv2a; - - if(d1 >= 0 && d1 <= 1){ - vec2.lerp(hitPointWorld, from, to, d1); - if(vec2.squaredDistance(hitPointWorld, position) > diagonalLengthSquared){ - vec2.sub(normal, hitPointWorld, l0); - vec2.normalize(normal,normal); - ray.reportIntersection(result, d1, normal, -1); - if(result.shouldStop(ray)){ - return; - } - } - } - - if(d2 >= 0 && d2 <= 1){ - vec2.lerp(hitPointWorld, from, to, d2); - if(vec2.squaredDistance(hitPointWorld, position) > diagonalLengthSquared){ - vec2.sub(normal, hitPointWorld, l0); - vec2.normalize(normal,normal); - ray.reportIntersection(result, d2, normal, -1); - if(result.shouldStop(ray)){ - return; - } - } - } - } - } -}; -},{"../math/vec2":30,"./Shape":45}],39:[function(_dereq_,module,exports){ -var Shape = _dereq_('./Shape') -, vec2 = _dereq_('../math/vec2'); - -module.exports = Circle; - -/** - * Circle shape class. - * @class Circle - * @extends Shape - * @constructor - * @param {options} [options] (Note that this options object will be passed on to the {{#crossLink "Shape"}}{{/crossLink}} constructor.) - * @param {number} [options.radius=1] The radius of this circle - * - * @example - * var circleShape = new Circle({ radius: 1 }); - * body.addShape(circleShape); - */ -function Circle(options){ - if(typeof(arguments[0]) === 'number'){ - options = { - radius: arguments[0] - }; - console.warn('The Circle constructor signature has changed. Please use the following format: new Circle({ radius: 1 })'); - } - options = options || {}; - - /** - * The radius of the circle. - * @property radius - * @type {number} - */ - this.radius = options.radius || 1; - - options.type = Shape.CIRCLE; - Shape.call(this, options); -} -Circle.prototype = new Shape(); -Circle.prototype.constructor = Circle; - -/** - * @method computeMomentOfInertia - * @param {Number} mass - * @return {Number} - */ -Circle.prototype.computeMomentOfInertia = function(mass){ - var r = this.radius; - return mass * r * r / 2; -}; - -/** - * @method updateBoundingRadius - * @return {Number} - */ -Circle.prototype.updateBoundingRadius = function(){ - this.boundingRadius = this.radius; -}; - -/** - * @method updateArea - * @return {Number} - */ -Circle.prototype.updateArea = function(){ - this.area = Math.PI * this.radius * this.radius; -}; - -/** - * @method computeAABB - * @param {AABB} out The resulting AABB. - * @param {Array} position - * @param {Number} angle - */ -Circle.prototype.computeAABB = function(out, position, angle){ - var r = this.radius; - vec2.set(out.upperBound, r, r); - vec2.set(out.lowerBound, -r, -r); - if(position){ - vec2.add(out.lowerBound, out.lowerBound, position); - vec2.add(out.upperBound, out.upperBound, position); - } -}; - -var Ray_intersectSphere_intersectionPoint = vec2.create(); -var Ray_intersectSphere_normal = vec2.create(); - -/** - * @method raycast - * @param {RaycastResult} result - * @param {Ray} ray - * @param {array} position - * @param {number} angle - */ -Circle.prototype.raycast = function(result, ray, position, angle){ - var from = ray.from, - to = ray.to, - r = this.radius; - - var a = Math.pow(to[0] - from[0], 2) + Math.pow(to[1] - from[1], 2); - var b = 2 * ((to[0] - from[0]) * (from[0] - position[0]) + (to[1] - from[1]) * (from[1] - position[1])); - var c = Math.pow(from[0] - position[0], 2) + Math.pow(from[1] - position[1], 2) - Math.pow(r, 2); - var delta = Math.pow(b, 2) - 4 * a * c; - - var intersectionPoint = Ray_intersectSphere_intersectionPoint; - var normal = Ray_intersectSphere_normal; - - if(delta < 0){ - // No intersection - return; - - } else if(delta === 0){ - // single intersection point - vec2.lerp(intersectionPoint, from, to, delta); - - vec2.sub(normal, intersectionPoint, position); - vec2.normalize(normal,normal); - - ray.reportIntersection(result, delta, normal, -1); - - } else { - var sqrtDelta = Math.sqrt(delta); - var inv2a = 1 / (2 * a); - var d1 = (- b - sqrtDelta) * inv2a; - var d2 = (- b + sqrtDelta) * inv2a; - - if(d1 >= 0 && d1 <= 1){ - vec2.lerp(intersectionPoint, from, to, d1); - - vec2.sub(normal, intersectionPoint, position); - vec2.normalize(normal,normal); - - ray.reportIntersection(result, d1, normal, -1); - - if(result.shouldStop(ray)){ - return; - } - } - - if(d2 >= 0 && d2 <= 1){ - vec2.lerp(intersectionPoint, from, to, d2); - - vec2.sub(normal, intersectionPoint, position); - vec2.normalize(normal,normal); - - ray.reportIntersection(result, d2, normal, -1); - } - } -}; -},{"../math/vec2":30,"./Shape":45}],40:[function(_dereq_,module,exports){ -var Shape = _dereq_('./Shape') -, vec2 = _dereq_('../math/vec2') -, polyk = _dereq_('../math/polyk') -, decomp = _dereq_('poly-decomp'); - -module.exports = Convex; - -/** - * Convex shape class. - * @class Convex - * @constructor - * @extends Shape - * @param {object} [options] (Note that this options object will be passed on to the {{#crossLink "Shape"}}{{/crossLink}} constructor.) - * @param {Array} [options.vertices] An array of vertices that span this shape. Vertices are given in counter-clockwise (CCW) direction. - * @param {Array} [options.axes] An array of unit length vectors, representing the symmetry axes in the convex. - * @example - * // Create a box - * var vertices = [[-1,-1], [1,-1], [1,1], [-1,1]]; - * var convexShape = new Convex({ vertices: vertices }); - * body.addShape(convexShape); - */ -function Convex(options){ - if(Array.isArray(arguments[0])){ - options = { - vertices: arguments[0], - axes: arguments[1] - }; - console.warn('The Convex constructor signature has changed. Please use the following format: new Convex({ vertices: [...], ... })'); - } - options = options || {}; - - /** - * Vertices defined in the local frame. - * @property vertices - * @type {Array} - */ - this.vertices = []; - - // Copy the verts - var vertices = options.vertices !== undefined ? options.vertices : []; - for(var i=0; i < vertices.length; i++){ - var v = vec2.create(); - vec2.copy(v, vertices[i]); - this.vertices.push(v); - } - - /** - * Axes defined in the local frame. - * @property axes - * @type {Array} - */ - this.axes = []; - - if(options.axes){ - - // Copy the axes - for(var i=0; i < options.axes.length; i++){ - var axis = vec2.create(); - vec2.copy(axis, options.axes[i]); - this.axes.push(axis); - } - - } else { - - // Construct axes from the vertex data - for(var i = 0; i < this.vertices.length; i++){ - // Get the world edge - var worldPoint0 = this.vertices[i]; - var worldPoint1 = this.vertices[(i+1) % this.vertices.length]; - - var normal = vec2.create(); - vec2.sub(normal, worldPoint1, worldPoint0); - - // Get normal - just rotate 90 degrees since vertices are given in CCW - vec2.rotate90cw(normal, normal); - vec2.normalize(normal, normal); - - this.axes.push(normal); - } - - } - - /** - * The center of mass of the Convex - * @property centerOfMass - * @type {Array} - */ - this.centerOfMass = vec2.fromValues(0,0); - - /** - * Triangulated version of this convex. The structure is Array of 3-Arrays, and each subarray contains 3 integers, referencing the vertices. - * @property triangles - * @type {Array} - */ - this.triangles = []; - - if(this.vertices.length){ - this.updateTriangles(); - this.updateCenterOfMass(); - } - - /** - * The bounding radius of the convex - * @property boundingRadius - * @type {Number} - */ - this.boundingRadius = 0; - - options.type = Shape.CONVEX; - Shape.call(this, options); - - this.updateBoundingRadius(); - this.updateArea(); - if(this.area < 0){ - throw new Error("Convex vertices must be given in conter-clockwise winding."); - } -} -Convex.prototype = new Shape(); -Convex.prototype.constructor = Convex; - -var tmpVec1 = vec2.create(); -var tmpVec2 = vec2.create(); - -/** - * Project a Convex onto a world-oriented axis - * @method projectOntoAxis - * @static - * @param {Array} offset - * @param {Array} localAxis - * @param {Array} result - */ -Convex.prototype.projectOntoLocalAxis = function(localAxis, result){ - var max=null, - min=null, - v, - value, - localAxis = tmpVec1; - - // Get projected position of all vertices - for(var i=0; i max){ - max = value; - } - if(min === null || value < min){ - min = value; - } - } - - if(min > max){ - var t = min; - min = max; - max = t; - } - - vec2.set(result, min, max); -}; - -Convex.prototype.projectOntoWorldAxis = function(localAxis, shapeOffset, shapeAngle, result){ - var worldAxis = tmpVec2; - - this.projectOntoLocalAxis(localAxis, result); - - // Project the position of the body onto the axis - need to add this to the result - if(shapeAngle !== 0){ - vec2.rotate(worldAxis, localAxis, shapeAngle); - } else { - worldAxis = localAxis; - } - var offset = vec2.dot(shapeOffset, worldAxis); - - vec2.set(result, result[0] + offset, result[1] + offset); -}; - - -/** - * Update the .triangles property - * @method updateTriangles - */ -Convex.prototype.updateTriangles = function(){ - - this.triangles.length = 0; - - // Rewrite on polyk notation, array of numbers - var polykVerts = []; - for(var i=0; i r2){ - r2 = l2; - } - } - - this.boundingRadius = Math.sqrt(r2); -}; - -/** - * Get the area of the triangle spanned by the three points a, b, c. The area is positive if the points are given in counter-clockwise order, otherwise negative. - * @static - * @method triangleArea - * @param {Array} a - * @param {Array} b - * @param {Array} c - * @return {Number} - */ -Convex.triangleArea = function(a,b,c){ - return (((b[0] - a[0])*(c[1] - a[1]))-((c[0] - a[0])*(b[1] - a[1]))) * 0.5; -}; - -/** - * Update the .area - * @method updateArea - */ -Convex.prototype.updateArea = function(){ - this.updateTriangles(); - this.area = 0; - - var triangles = this.triangles, - verts = this.vertices; - for(var i=0; i!==triangles.length; i++){ - var t = triangles[i], - a = verts[t[0]], - b = verts[t[1]], - c = verts[t[2]]; - - // Get mass for the triangle (density=1 in this case) - var m = Convex.triangleArea(a,b,c); - this.area += m; - } -}; - -/** - * @method computeAABB - * @param {AABB} out - * @param {Array} position - * @param {Number} angle - */ -Convex.prototype.computeAABB = function(out, position, angle){ - out.setFromPoints(this.vertices, position, angle, 0); -}; - -var intersectConvex_rayStart = vec2.create(); -var intersectConvex_rayEnd = vec2.create(); -var intersectConvex_normal = vec2.create(); - -/** - * @method raycast - * @param {RaycastResult} result - * @param {Ray} ray - * @param {array} position - * @param {number} angle - */ -Convex.prototype.raycast = function(result, ray, position, angle){ - var rayStart = intersectConvex_rayStart; - var rayEnd = intersectConvex_rayEnd; - var normal = intersectConvex_normal; - var vertices = this.vertices; - - // Transform to local shape space - vec2.toLocalFrame(rayStart, ray.from, position, angle); - vec2.toLocalFrame(rayEnd, ray.to, position, angle); - - var n = vertices.length; - - for (var i = 0; i < n && !result.shouldStop(ray); i++) { - var q1 = vertices[i]; - var q2 = vertices[(i+1) % n]; - var delta = vec2.getLineSegmentsIntersectionFraction(rayStart, rayEnd, q1, q2); - - if(delta >= 0){ - vec2.sub(normal, q2, q1); - vec2.rotate(normal, normal, -Math.PI / 2 + angle); - vec2.normalize(normal, normal); - ray.reportIntersection(result, delta, normal, i); - } - } -}; - -},{"../math/polyk":29,"../math/vec2":30,"./Shape":45,"poly-decomp":5}],41:[function(_dereq_,module,exports){ -var Shape = _dereq_('./Shape') -, vec2 = _dereq_('../math/vec2') -, Utils = _dereq_('../utils/Utils'); - -module.exports = Heightfield; - -/** - * Heightfield shape class. Height data is given as an array. These data points are spread out evenly with a distance "elementWidth". - * @class Heightfield - * @extends Shape - * @constructor - * @param {object} [options] (Note that this options object will be passed on to the {{#crossLink "Shape"}}{{/crossLink}} constructor.) - * @param {array} [options.heights] An array of Y values that will be used to construct the terrain. - * @param {Number} [options.minValue] Minimum value of the data points in the data array. Will be computed automatically if not given. - * @param {Number} [options.maxValue] Maximum value. - * @param {Number} [options.elementWidth=0.1] World spacing between the data points in X direction. - * - * @example - * // Generate some height data (y-values). - * var heights = []; - * for(var i = 0; i < 1000; i++){ - * var y = 0.5 * Math.cos(0.2 * i); - * heights.push(y); - * } - * - * // Create the heightfield shape - * var heightfieldShape = new Heightfield({ - * heights: heights, - * elementWidth: 1 // Distance between the data points in X direction - * }); - * var heightfieldBody = new Body(); - * heightfieldBody.addShape(heightfieldShape); - * world.addBody(heightfieldBody); - * - * @todo Should use a scale property with X and Y direction instead of just elementWidth - */ -function Heightfield(options){ - if(Array.isArray(arguments[0])){ - options = { - heights: arguments[0] - }; - - if(typeof(arguments[1]) === 'object'){ - for(var key in arguments[1]){ - options[key] = arguments[1][key]; - } - } - - console.warn('The Heightfield constructor signature has changed. Please use the following format: new Heightfield({ heights: [...], ... })'); - } - options = options || {}; - - /** - * An array of numbers, or height values, that are spread out along the x axis. - * @property {array} heights - */ - this.heights = options.heights ? options.heights.slice(0) : []; - - /** - * Max value of the heights - * @property {number} maxValue - */ - this.maxValue = options.maxValue || null; - - /** - * Max value of the heights - * @property {number} minValue - */ - this.minValue = options.minValue || null; - - /** - * The width of each element - * @property {number} elementWidth - */ - this.elementWidth = options.elementWidth || 0.1; - - if(options.maxValue === undefined || options.minValue === undefined){ - this.updateMaxMinValues(); - } - - options.type = Shape.HEIGHTFIELD; - Shape.call(this, options); -} -Heightfield.prototype = new Shape(); -Heightfield.prototype.constructor = Heightfield; - -/** - * Update the .minValue and the .maxValue - * @method updateMaxMinValues - */ -Heightfield.prototype.updateMaxMinValues = function(){ - var data = this.heights; - var maxValue = data[0]; - var minValue = data[0]; - for(var i=0; i !== data.length; i++){ - var v = data[i]; - if(v > maxValue){ - maxValue = v; - } - if(v < minValue){ - minValue = v; - } - } - this.maxValue = maxValue; - this.minValue = minValue; -}; - -/** - * @method computeMomentOfInertia - * @param {Number} mass - * @return {Number} - */ -Heightfield.prototype.computeMomentOfInertia = function(mass){ - return Number.MAX_VALUE; -}; - -Heightfield.prototype.updateBoundingRadius = function(){ - this.boundingRadius = Number.MAX_VALUE; -}; - -Heightfield.prototype.updateArea = function(){ - var data = this.heights, - area = 0; - for(var i=0; i= 0 && s <= 1 && t >= 0 && t <= 1) { // Collision detected - var intX = p0[0] + (t * s1_x); - var intY = p0[1] + (t * s1_y); - out[0] = intX; - out[1] = intY; - return t; - } - return -1; // No collision -} - -/** - * @method raycast - * @param {RayResult} result - * @param {Ray} ray - * @param {array} position - * @param {number} angle - */ -Heightfield.prototype.raycast = function(result, ray, position, angle){ - var from = ray.from; - var to = ray.to; - var direction = ray.direction; - - var hitPointWorld = intersectHeightfield_hitPointWorld; - var worldNormal = intersectHeightfield_worldNormal; - var l0 = intersectHeightfield_l0; - var l1 = intersectHeightfield_l1; - var localFrom = intersectHeightfield_localFrom; - var localTo = intersectHeightfield_localTo; - - // get local ray start and end - vec2.toLocalFrame(localFrom, from, position, angle); - vec2.toLocalFrame(localTo, to, position, angle); - - // Get the segment range - var i0 = this.getClampedSegmentIndex(localFrom); - var i1 = this.getClampedSegmentIndex(localTo); - if(i0 > i1){ - var tmp = i0; - i0 = i1; - i1 = tmp; - } - - // The segments - for(var i=0; i= 0){ - vec2.sub(worldNormal, l1, l0); - vec2.rotate(worldNormal, worldNormal, angle + Math.PI / 2); - vec2.normalize(worldNormal, worldNormal); - ray.reportIntersection(result, t, worldNormal, -1); - if(result.shouldStop(ray)){ - return; - } - } - } -}; -},{"../math/vec2":30,"../utils/Utils":57,"./Shape":45}],42:[function(_dereq_,module,exports){ -var Shape = _dereq_('./Shape') -, vec2 = _dereq_('../math/vec2'); - -module.exports = Line; - -/** - * Line shape class. The line shape is along the x direction, and stretches from [-length/2, 0] to [length/2,0]. - * @class Line - * @param {object} [options] (Note that this options object will be passed on to the {{#crossLink "Shape"}}{{/crossLink}} constructor.) - * @param {Number} [options.length=1] The total length of the line - * @extends Shape - * @constructor - */ -function Line(options){ - if(typeof(arguments[0]) === 'number'){ - options = { - length: arguments[0] - }; - console.warn('The Line constructor signature has changed. Please use the following format: new Line({ length: 1, ... })'); - } - options = options || {}; - - /** - * Length of this line - * @property {Number} length - * @default 1 - */ - this.length = options.length || 1; - - options.type = Shape.LINE; - Shape.call(this, options); -} -Line.prototype = new Shape(); -Line.prototype.constructor = Line; - -Line.prototype.computeMomentOfInertia = function(mass){ - return mass * Math.pow(this.length,2) / 12; -}; - -Line.prototype.updateBoundingRadius = function(){ - this.boundingRadius = this.length/2; -}; - -var points = [vec2.create(),vec2.create()]; - -/** - * @method computeAABB - * @param {AABB} out The resulting AABB. - * @param {Array} position - * @param {Number} angle - */ -Line.prototype.computeAABB = function(out, position, angle){ - var l2 = this.length / 2; - vec2.set(points[0], -l2, 0); - vec2.set(points[1], l2, 0); - out.setFromPoints(points,position,angle,0); -}; - -var raycast_hitPoint = vec2.create(); -var raycast_normal = vec2.create(); -var raycast_l0 = vec2.create(); -var raycast_l1 = vec2.create(); -var raycast_unit_y = vec2.fromValues(0,1); - -/** - * @method raycast - * @param {RaycastResult} result - * @param {Ray} ray - * @param {number} angle - * @param {array} position - */ -Line.prototype.raycast = function(result, ray, position, angle){ - var from = ray.from; - var to = ray.to; - - var l0 = raycast_l0; - var l1 = raycast_l1; - - // get start and end of the line - var halfLen = this.length / 2; - vec2.set(l0, -halfLen, 0); - vec2.set(l1, halfLen, 0); - vec2.toGlobalFrame(l0, l0, position, angle); - vec2.toGlobalFrame(l1, l1, position, angle); - - var fraction = vec2.getLineSegmentsIntersectionFraction(l0, l1, from, to); - if(fraction >= 0){ - var normal = raycast_normal; - vec2.rotate(normal, raycast_unit_y, angle); // todo: this should depend on which side the ray comes from - ray.reportIntersection(result, fraction, normal, -1); - } -}; -},{"../math/vec2":30,"./Shape":45}],43:[function(_dereq_,module,exports){ -var Shape = _dereq_('./Shape') -, vec2 = _dereq_('../math/vec2'); - -module.exports = Particle; - -/** - * Particle shape class. - * @class Particle - * @constructor - * @param {object} [options] (Note that this options object will be passed on to the {{#crossLink "Shape"}}{{/crossLink}} constructor.) - * @extends Shape - */ -function Particle(options){ - options = options || {}; - options.type = Shape.PARTICLE; - Shape.call(this, options); -} -Particle.prototype = new Shape(); -Particle.prototype.constructor = Particle; - -Particle.prototype.computeMomentOfInertia = function(mass){ - return 0; // Can't rotate a particle -}; - -Particle.prototype.updateBoundingRadius = function(){ - this.boundingRadius = 0; -}; - -/** - * @method computeAABB - * @param {AABB} out - * @param {Array} position - * @param {Number} angle - */ -Particle.prototype.computeAABB = function(out, position, angle){ - vec2.copy(out.lowerBound, position); - vec2.copy(out.upperBound, position); -}; - -},{"../math/vec2":30,"./Shape":45}],44:[function(_dereq_,module,exports){ -var Shape = _dereq_('./Shape') -, vec2 = _dereq_('../math/vec2') -, Utils = _dereq_('../utils/Utils'); - -module.exports = Plane; - -/** - * Plane shape class. The plane is facing in the Y direction. - * @class Plane - * @extends Shape - * @constructor - * @param {object} [options] (Note that this options object will be passed on to the {{#crossLink "Shape"}}{{/crossLink}} constructor.) - */ -function Plane(options){ - options = options || {}; - options.type = Shape.PLANE; - Shape.call(this, options); -} -Plane.prototype = new Shape(); -Plane.prototype.constructor = Plane; - -/** - * Compute moment of inertia - * @method computeMomentOfInertia - */ -Plane.prototype.computeMomentOfInertia = function(mass){ - return 0; // Plane is infinite. The inertia should therefore be infinty but by convention we set 0 here -}; - -/** - * Update the bounding radius - * @method updateBoundingRadius - */ -Plane.prototype.updateBoundingRadius = function(){ - this.boundingRadius = Number.MAX_VALUE; -}; - -/** - * @method computeAABB - * @param {AABB} out - * @param {Array} position - * @param {Number} angle - */ -Plane.prototype.computeAABB = function(out, position, angle){ - var a = angle % (2 * Math.PI); - var set = vec2.set; - var max = Number.MAX_VALUE; - var lowerBound = out.lowerBound; - var upperBound = out.upperBound; - - if(a === 0){ - // y goes from -inf to 0 - set(lowerBound, -max, -max); - set(upperBound, max, 0); - - } else if(a === Math.PI / 2){ - - // x goes from 0 to inf - set(lowerBound, 0, -max); - set(upperBound, max, max); - - } else if(a === Math.PI){ - - // y goes from 0 to inf - set(lowerBound, -max, 0); - set(upperBound, max, max); - - } else if(a === 3*Math.PI/2){ - - // x goes from -inf to 0 - set(lowerBound, -max, -max); - set(upperBound, 0, max); - - } else { - - // Set max bounds - set(lowerBound, -max, -max); - set(upperBound, max, max); - } - - vec2.add(lowerBound, lowerBound, position); - vec2.add(upperBound, upperBound, position); -}; - -Plane.prototype.updateArea = function(){ - this.area = Number.MAX_VALUE; -}; - -var intersectPlane_planePointToFrom = vec2.create(); -var intersectPlane_dir_scaled_with_t = vec2.create(); -var intersectPlane_hitPoint = vec2.create(); -var intersectPlane_normal = vec2.create(); -var intersectPlane_len = vec2.create(); - -/** - * @method raycast - * @param {RayResult} result - * @param {Ray} ray - * @param {array} position - * @param {number} angle - */ -Plane.prototype.raycast = function(result, ray, position, angle){ - var from = ray.from; - var to = ray.to; - var direction = ray.direction; - var planePointToFrom = intersectPlane_planePointToFrom; - var dir_scaled_with_t = intersectPlane_dir_scaled_with_t; - var hitPoint = intersectPlane_hitPoint; - var normal = intersectPlane_normal; - var len = intersectPlane_len; - - // Get plane normal - vec2.set(normal, 0, 1); - vec2.rotate(normal, normal, angle); - - vec2.sub(len, from, position); - var planeToFrom = vec2.dot(len, normal); - vec2.sub(len, to, position); - var planeToTo = vec2.dot(len, normal); - - if(planeToFrom * planeToTo > 0){ - // "from" and "to" are on the same side of the plane... bail out - return; - } - - if(vec2.squaredDistance(from, to) < planeToFrom * planeToFrom){ - return; - } - - var n_dot_dir = vec2.dot(normal, direction); - - vec2.sub(planePointToFrom, from, position); - var t = -vec2.dot(normal, planePointToFrom) / n_dot_dir / ray.length; - - ray.reportIntersection(result, t, normal, -1); -}; -},{"../math/vec2":30,"../utils/Utils":57,"./Shape":45}],45:[function(_dereq_,module,exports){ -module.exports = Shape; - -var vec2 = _dereq_('../math/vec2'); - -/** - * Base class for shapes. - * @class Shape - * @constructor - * @param {object} [options] - * @param {array} [options.position] - * @param {number} [options.angle=0] - * @param {number} [options.collisionGroup=1] - * @param {number} [options.collisionMask=1] - * @param {boolean} [options.sensor=false] - * @param {boolean} [options.collisionResponse=true] - * @param {object} [options.type=0] - */ -function Shape(options){ - options = options || {}; - - /** - * The body this shape is attached to. A shape can only be attached to a single body. - * @property {Body} body - */ - this.body = null; - - /** - * Body-local position of the shape. - * @property {Array} position - */ - this.position = vec2.fromValues(0,0); - if(options.position){ - vec2.copy(this.position, options.position); - } - - /** - * Body-local angle of the shape. - * @property {number} angle - */ - this.angle = options.angle || 0; - - /** - * The type of the shape. One of: - * - * * {{#crossLink "Shape/CIRCLE:property"}}Shape.CIRCLE{{/crossLink}} - * * {{#crossLink "Shape/PARTICLE:property"}}Shape.PARTICLE{{/crossLink}} - * * {{#crossLink "Shape/PLANE:property"}}Shape.PLANE{{/crossLink}} - * * {{#crossLink "Shape/CONVEX:property"}}Shape.CONVEX{{/crossLink}} - * * {{#crossLink "Shape/LINE:property"}}Shape.LINE{{/crossLink}} - * * {{#crossLink "Shape/BOX:property"}}Shape.BOX{{/crossLink}} - * * {{#crossLink "Shape/CAPSULE:property"}}Shape.CAPSULE{{/crossLink}} - * * {{#crossLink "Shape/HEIGHTFIELD:property"}}Shape.HEIGHTFIELD{{/crossLink}} - * - * @property {number} type - */ - this.type = options.type || 0; - - /** - * Shape object identifier. - * @type {Number} - * @property id - */ - this.id = Shape.idCounter++; - - /** - * Bounding circle radius of this shape - * @property boundingRadius - * @type {Number} - */ - this.boundingRadius = 0; - - /** - * Collision group that this shape belongs to (bit mask). See this tutorial. - * @property collisionGroup - * @type {Number} - * @example - * // Setup bits for each available group - * var PLAYER = Math.pow(2,0), - * ENEMY = Math.pow(2,1), - * GROUND = Math.pow(2,2) - * - * // Put shapes into their groups - * player1Shape.collisionGroup = PLAYER; - * player2Shape.collisionGroup = PLAYER; - * enemyShape .collisionGroup = ENEMY; - * groundShape .collisionGroup = GROUND; - * - * // Assign groups that each shape collide with. - * // Note that the players can collide with ground and enemies, but not with other players. - * player1Shape.collisionMask = ENEMY | GROUND; - * player2Shape.collisionMask = ENEMY | GROUND; - * enemyShape .collisionMask = PLAYER | GROUND; - * groundShape .collisionMask = PLAYER | ENEMY; - * - * @example - * // How collision check is done - * if(shapeA.collisionGroup & shapeB.collisionMask)!=0 && (shapeB.collisionGroup & shapeA.collisionMask)!=0){ - * // The shapes will collide - * } - */ - this.collisionGroup = options.collisionGroup !== undefined ? options.collisionGroup : 1; - - /** - * Whether to produce contact forces when in contact with other bodies. Note that contacts will be generated, but they will be disabled. That means that this shape will move through other body shapes, but it will still trigger contact events, etc. - * @property {Boolean} collisionResponse - */ - this.collisionResponse = options.collisionResponse !== undefined ? options.collisionResponse : true; - - /** - * Collision mask of this shape. See .collisionGroup. - * @property collisionMask - * @type {Number} - */ - this.collisionMask = options.collisionMask !== undefined ? options.collisionMask : 1; - - /** - * Material to use in collisions for this Shape. If this is set to null, the world will use default material properties instead. - * @property material - * @type {Material} - */ - this.material = options.material || null; - - /** - * Area of this shape. - * @property area - * @type {Number} - */ - this.area = 0; - - /** - * Set to true if you want this shape to be a sensor. A sensor does not generate contacts, but it still reports contact events. This is good if you want to know if a shape is overlapping another shape, without them generating contacts. - * @property {Boolean} sensor - */ - this.sensor = options.sensor !== undefined ? options.sensor : false; - - if(this.type){ - this.updateBoundingRadius(); - } - - this.updateArea(); -} - -Shape.idCounter = 0; - -/** - * @static - * @property {Number} CIRCLE - */ -Shape.CIRCLE = 1; - -/** - * @static - * @property {Number} PARTICLE - */ -Shape.PARTICLE = 2; - -/** - * @static - * @property {Number} PLANE - */ -Shape.PLANE = 4; - -/** - * @static - * @property {Number} CONVEX - */ -Shape.CONVEX = 8; - -/** - * @static - * @property {Number} LINE - */ -Shape.LINE = 16; - -/** - * @static - * @property {Number} BOX - */ -Shape.BOX = 32; - -Object.defineProperty(Shape, 'RECTANGLE', { - get: function() { - console.warn('Shape.RECTANGLE is deprecated, use Shape.BOX instead.'); - return Shape.BOX; - } -}); - -/** - * @static - * @property {Number} CAPSULE - */ -Shape.CAPSULE = 64; - -/** - * @static - * @property {Number} HEIGHTFIELD - */ -Shape.HEIGHTFIELD = 128; - -/** - * Should return the moment of inertia around the Z axis of the body given the total mass. See Wikipedia's list of moments of inertia. - * @method computeMomentOfInertia - * @param {Number} mass - * @return {Number} If the inertia is infinity or if the object simply isn't possible to rotate, return 0. - */ -Shape.prototype.computeMomentOfInertia = function(mass){}; - -/** - * Returns the bounding circle radius of this shape. - * @method updateBoundingRadius - * @return {Number} - */ -Shape.prototype.updateBoundingRadius = function(){}; - -/** - * Update the .area property of the shape. - * @method updateArea - */ -Shape.prototype.updateArea = function(){ - // To be implemented in all subclasses -}; - -/** - * Compute the world axis-aligned bounding box (AABB) of this shape. - * @method computeAABB - * @param {AABB} out The resulting AABB. - * @param {Array} position World position of the shape. - * @param {Number} angle World angle of the shape. - */ -Shape.prototype.computeAABB = function(out, position, angle){ - // To be implemented in each subclass -}; - -/** - * Perform raycasting on this shape. - * @method raycast - * @param {RayResult} result Where to store the resulting data. - * @param {Ray} ray The Ray that you want to use for raycasting. - * @param {array} position World position of the shape (the .position property will be ignored). - * @param {number} angle World angle of the shape (the .angle property will be ignored). - */ -Shape.prototype.raycast = function(result, ray, position, angle){ - // To be implemented in each subclass -}; -},{"../math/vec2":30}],46:[function(_dereq_,module,exports){ -var vec2 = _dereq_('../math/vec2') -, Solver = _dereq_('./Solver') -, Utils = _dereq_('../utils/Utils') -, FrictionEquation = _dereq_('../equations/FrictionEquation'); - -module.exports = GSSolver; - -/** - * Iterative Gauss-Seidel constraint equation solver. - * - * @class GSSolver - * @constructor - * @extends Solver - * @param {Object} [options] - * @param {Number} [options.iterations=10] - * @param {Number} [options.tolerance=0] - */ -function GSSolver(options){ - Solver.call(this,options,Solver.GS); - options = options || {}; - - /** - * The max number of iterations to do when solving. More gives better results, but is more expensive. - * @property iterations - * @type {Number} - */ - this.iterations = options.iterations || 10; - - /** - * The error tolerance, per constraint. If the total error is below this limit, the solver will stop iterating. Set to zero for as good solution as possible, but to something larger than zero to make computations faster. - * @property tolerance - * @type {Number} - * @default 1e-7 - */ - this.tolerance = options.tolerance || 1e-7; - - this.arrayStep = 30; - this.lambda = new Utils.ARRAY_TYPE(this.arrayStep); - this.Bs = new Utils.ARRAY_TYPE(this.arrayStep); - this.invCs = new Utils.ARRAY_TYPE(this.arrayStep); - - /** - * Set to true to set all right hand side terms to zero when solving. Can be handy for a few applications. - * @property useZeroRHS - * @type {Boolean} - */ - this.useZeroRHS = false; - - /** - * Number of solver iterations that are done to approximate normal forces. When these iterations are done, friction force will be computed from the contact normal forces. These friction forces will override any other friction forces set from the World for example. - * The solver will use less iterations if the solution is below the .tolerance. - * @property frictionIterations - * @type {Number} - */ - this.frictionIterations = 0; - - /** - * The number of iterations that were made during the last solve. If .tolerance is zero, this value will always be equal to .iterations, but if .tolerance is larger than zero, and the solver can quit early, then this number will be somewhere between 1 and .iterations. - * @property {Number} usedIterations - */ - this.usedIterations = 0; -} -GSSolver.prototype = new Solver(); -GSSolver.prototype.constructor = GSSolver; - -function setArrayZero(array){ - var l = array.length; - while(l--){ - array[l] = +0.0; - } -} - -/** - * Solve the system of equations - * @method solve - * @param {Number} h Time step - * @param {World} world World to solve - */ -GSSolver.prototype.solve = function(h, world){ - - this.sortEquations(); - - var iter = 0, - maxIter = this.iterations, - maxFrictionIter = this.frictionIterations, - equations = this.equations, - Neq = equations.length, - tolSquared = Math.pow(this.tolerance*Neq, 2), - bodies = world.bodies, - Nbodies = world.bodies.length, - add = vec2.add, - set = vec2.set, - useZeroRHS = this.useZeroRHS, - lambda = this.lambda; - - this.usedIterations = 0; - - if(Neq){ - for(var i=0; i!==Nbodies; i++){ - var b = bodies[i]; - - // Update solve mass - b.updateSolveMassProperties(); - } - } - - // Things that does not change during iteration can be computed once - if(lambda.length < Neq){ - lambda = this.lambda = new Utils.ARRAY_TYPE(Neq + this.arrayStep); - this.Bs = new Utils.ARRAY_TYPE(Neq + this.arrayStep); - this.invCs = new Utils.ARRAY_TYPE(Neq + this.arrayStep); - } - setArrayZero(lambda); - var invCs = this.invCs, - Bs = this.Bs, - lambda = this.lambda; - - for(var i=0; i!==equations.length; i++){ - var c = equations[i]; - if(c.timeStep !== h || c.needsUpdate){ - c.timeStep = h; - c.update(); - } - Bs[i] = c.computeB(c.a,c.b,h); - invCs[i] = c.computeInvC(c.epsilon); - } - - var q, B, c, deltalambdaTot,i,j; - - if(Neq !== 0){ - - for(i=0; i!==Nbodies; i++){ - var b = bodies[i]; - - // Reset vlambda - b.resetConstraintVelocity(); - } - - if(maxFrictionIter){ - // Iterate over contact equations to get normal forces - for(iter=0; iter!==maxFrictionIter; iter++){ - - // Accumulate the total error for each iteration. - deltalambdaTot = 0.0; - - for(j=0; j!==Neq; j++){ - c = equations[j]; - - var deltalambda = GSSolver.iterateEquation(j,c,c.epsilon,Bs,invCs,lambda,useZeroRHS,h,iter); - deltalambdaTot += Math.abs(deltalambda); - } - - this.usedIterations++; - - // If the total error is small enough - stop iterate - if(deltalambdaTot*deltalambdaTot <= tolSquared){ - break; - } - } - - GSSolver.updateMultipliers(equations, lambda, 1/h); - - // Set computed friction force - for(j=0; j!==Neq; j++){ - var eq = equations[j]; - if(eq instanceof FrictionEquation){ - var f = 0.0; - for(var k=0; k!==eq.contactEquations.length; k++){ - f += eq.contactEquations[k].multiplier; - } - f *= eq.frictionCoefficient / eq.contactEquations.length; - eq.maxForce = f; - eq.minForce = -f; - } - } - } - - // Iterate over all equations - for(iter=0; iter!==maxIter; iter++){ - - // Accumulate the total error for each iteration. - deltalambdaTot = 0.0; - - for(j=0; j!==Neq; j++){ - c = equations[j]; - - var deltalambda = GSSolver.iterateEquation(j,c,c.epsilon,Bs,invCs,lambda,useZeroRHS,h,iter); - deltalambdaTot += Math.abs(deltalambda); - } - - this.usedIterations++; - - // If the total error is small enough - stop iterate - if(deltalambdaTot*deltalambdaTot <= tolSquared){ - break; - } - } - - // Add result to velocity - for(i=0; i!==Nbodies; i++){ - bodies[i].addConstraintVelocity(); - } - - GSSolver.updateMultipliers(equations, lambda, 1/h); - } -}; - -// Sets the .multiplier property of each equation -GSSolver.updateMultipliers = function(equations, lambda, invDt){ - // Set the .multiplier property of each equation - var l = equations.length; - while(l--){ - equations[l].multiplier = lambda[l] * invDt; - } -}; - -GSSolver.iterateEquation = function(j,eq,eps,Bs,invCs,lambda,useZeroRHS,dt,iter){ - // Compute iteration - var B = Bs[j], - invC = invCs[j], - lambdaj = lambda[j], - GWlambda = eq.computeGWlambda(); - - var maxForce = eq.maxForce, - minForce = eq.minForce; - - if(useZeroRHS){ - B = 0; - } - - var deltalambda = invC * ( B - GWlambda - eps * lambdaj ); - - // Clamp if we are not within the min/max interval - var lambdaj_plus_deltalambda = lambdaj + deltalambda; - if(lambdaj_plus_deltalambda < minForce*dt){ - deltalambda = minForce*dt - lambdaj; - } else if(lambdaj_plus_deltalambda > maxForce*dt){ - deltalambda = maxForce*dt - lambdaj; - } - lambda[j] += deltalambda; - eq.addToWlambda(deltalambda); - - return deltalambda; -}; - -},{"../equations/FrictionEquation":23,"../math/vec2":30,"../utils/Utils":57,"./Solver":47}],47:[function(_dereq_,module,exports){ -var Utils = _dereq_('../utils/Utils') -, EventEmitter = _dereq_('../events/EventEmitter'); - -module.exports = Solver; - -/** - * Base class for constraint solvers. - * @class Solver - * @constructor - * @extends EventEmitter - */ -function Solver(options,type){ - options = options || {}; - - EventEmitter.call(this); - - this.type = type; - - /** - * Current equations in the solver. - * - * @property equations - * @type {Array} - */ - this.equations = []; - - /** - * Function that is used to sort all equations before each solve. - * @property equationSortFunction - * @type {function|boolean} - */ - this.equationSortFunction = options.equationSortFunction || false; -} -Solver.prototype = new EventEmitter(); -Solver.prototype.constructor = Solver; - -/** - * Method to be implemented in each subclass - * @method solve - * @param {Number} dt - * @param {World} world - */ -Solver.prototype.solve = function(dt,world){ - throw new Error("Solver.solve should be implemented by subclasses!"); -}; - -var mockWorld = {bodies:[]}; - -/** - * Solves all constraints in an island. - * @method solveIsland - * @param {Number} dt - * @param {Island} island - */ -Solver.prototype.solveIsland = function(dt,island){ - - this.removeAllEquations(); - - if(island.equations.length){ - // Add equations to solver - this.addEquations(island.equations); - mockWorld.bodies.length = 0; - island.getBodies(mockWorld.bodies); - - // Solve - if(mockWorld.bodies.length){ - this.solve(dt,mockWorld); - } - } -}; - -/** - * Sort all equations using the .equationSortFunction. Should be called by subclasses before solving. - * @method sortEquations - */ -Solver.prototype.sortEquations = function(){ - if(this.equationSortFunction){ - this.equations.sort(this.equationSortFunction); - } -}; - -/** - * Add an equation to be solved. - * - * @method addEquation - * @param {Equation} eq - */ -Solver.prototype.addEquation = function(eq){ - if(eq.enabled){ - this.equations.push(eq); - } -}; - -/** - * Add equations. Same as .addEquation, but this time the argument is an array of Equations - * - * @method addEquations - * @param {Array} eqs - */ -Solver.prototype.addEquations = function(eqs){ - //Utils.appendArray(this.equations,eqs); - for(var i=0, N=eqs.length; i!==N; i++){ - var eq = eqs[i]; - if(eq.enabled){ - this.equations.push(eq); - } - } -}; - -/** - * Remove an equation. - * - * @method removeEquation - * @param {Equation} eq - */ -Solver.prototype.removeEquation = function(eq){ - var i = this.equations.indexOf(eq); - if(i !== -1){ - this.equations.splice(i,1); - } -}; - -/** - * Remove all currently added equations. - * - * @method removeAllEquations - */ -Solver.prototype.removeAllEquations = function(){ - this.equations.length=0; -}; - -Solver.GS = 1; -Solver.ISLAND = 2; - -},{"../events/EventEmitter":26,"../utils/Utils":57}],48:[function(_dereq_,module,exports){ -var ContactEquation = _dereq_('../equations/ContactEquation'); -var Pool = _dereq_('./Pool'); - -module.exports = ContactEquationPool; - -/** - * @class - */ -function ContactEquationPool() { - Pool.apply(this, arguments); -} -ContactEquationPool.prototype = new Pool(); -ContactEquationPool.prototype.constructor = ContactEquationPool; - -/** - * @method create - * @return {ContactEquation} - */ -ContactEquationPool.prototype.create = function () { - return new ContactEquation(); -}; - -/** - * @method destroy - * @param {ContactEquation} equation - * @return {ContactEquationPool} - */ -ContactEquationPool.prototype.destroy = function (equation) { - equation.bodyA = equation.bodyB = null; - return this; -}; - -},{"../equations/ContactEquation":21,"./Pool":55}],49:[function(_dereq_,module,exports){ -var FrictionEquation = _dereq_('../equations/FrictionEquation'); -var Pool = _dereq_('./Pool'); - -module.exports = FrictionEquationPool; - -/** - * @class - */ -function FrictionEquationPool() { - Pool.apply(this, arguments); -} -FrictionEquationPool.prototype = new Pool(); -FrictionEquationPool.prototype.constructor = FrictionEquationPool; - -/** - * @method create - * @return {FrictionEquation} - */ -FrictionEquationPool.prototype.create = function () { - return new FrictionEquation(); -}; - -/** - * @method destroy - * @param {FrictionEquation} equation - * @return {FrictionEquationPool} - */ -FrictionEquationPool.prototype.destroy = function (equation) { - equation.bodyA = equation.bodyB = null; - return this; -}; - -},{"../equations/FrictionEquation":23,"./Pool":55}],50:[function(_dereq_,module,exports){ -var IslandNode = _dereq_('../world/IslandNode'); -var Pool = _dereq_('./Pool'); - -module.exports = IslandNodePool; - -/** - * @class - */ -function IslandNodePool() { - Pool.apply(this, arguments); -} -IslandNodePool.prototype = new Pool(); -IslandNodePool.prototype.constructor = IslandNodePool; - -/** - * @method create - * @return {IslandNode} - */ -IslandNodePool.prototype.create = function () { - return new IslandNode(); -}; - -/** - * @method destroy - * @param {IslandNode} node - * @return {IslandNodePool} - */ -IslandNodePool.prototype.destroy = function (node) { - node.reset(); - return this; -}; - -},{"../world/IslandNode":60,"./Pool":55}],51:[function(_dereq_,module,exports){ -var Island = _dereq_('../world/Island'); -var Pool = _dereq_('./Pool'); - -module.exports = IslandPool; - -/** - * @class - */ -function IslandPool() { - Pool.apply(this, arguments); -} -IslandPool.prototype = new Pool(); -IslandPool.prototype.constructor = IslandPool; - -/** - * @method create - * @return {Island} - */ -IslandPool.prototype.create = function () { - return new Island(); -}; - -/** - * @method destroy - * @param {Island} island - * @return {IslandPool} - */ -IslandPool.prototype.destroy = function (island) { - island.reset(); - return this; -}; - -},{"../world/Island":58,"./Pool":55}],52:[function(_dereq_,module,exports){ -var TupleDictionary = _dereq_('./TupleDictionary'); -var OverlapKeeperRecord = _dereq_('./OverlapKeeperRecord'); -var OverlapKeeperRecordPool = _dereq_('./OverlapKeeperRecordPool'); -var Utils = _dereq_('./Utils'); - -module.exports = OverlapKeeper; - -/** - * Keeps track of overlaps in the current state and the last step state. - * @class OverlapKeeper - * @constructor - */ -function OverlapKeeper() { - this.overlappingShapesLastState = new TupleDictionary(); - this.overlappingShapesCurrentState = new TupleDictionary(); - this.recordPool = new OverlapKeeperRecordPool({ size: 16 }); - this.tmpDict = new TupleDictionary(); - this.tmpArray1 = []; -} - -/** - * Ticks one step forward in time. This will move the current overlap state to the "old" overlap state, and create a new one as current. - * @method tick - */ -OverlapKeeper.prototype.tick = function() { - var last = this.overlappingShapesLastState; - var current = this.overlappingShapesCurrentState; - - // Save old objects into pool - var l = last.keys.length; - while(l--){ - var key = last.keys[l]; - var lastObject = last.getByKey(key); - var currentObject = current.getByKey(key); - if(lastObject){ - // The record is only used in the "last" dict, and will be removed. We might as well pool it. - this.recordPool.release(lastObject); - } - } - - // Clear last object - last.reset(); - - // Transfer from new object to old - last.copy(current); - - // Clear current object - current.reset(); -}; - -/** - * @method setOverlapping - * @param {Body} bodyA - * @param {Body} shapeA - * @param {Body} bodyB - * @param {Body} shapeB - */ -OverlapKeeper.prototype.setOverlapping = function(bodyA, shapeA, bodyB, shapeB) { - var last = this.overlappingShapesLastState; - var current = this.overlappingShapesCurrentState; - - // Store current contact state - if(!current.get(shapeA.id, shapeB.id)){ - var data = this.recordPool.get(); - data.set(bodyA, shapeA, bodyB, shapeB); - current.set(shapeA.id, shapeB.id, data); - } -}; - -OverlapKeeper.prototype.getNewOverlaps = function(result){ - return this.getDiff(this.overlappingShapesLastState, this.overlappingShapesCurrentState, result); -}; - -OverlapKeeper.prototype.getEndOverlaps = function(result){ - return this.getDiff(this.overlappingShapesCurrentState, this.overlappingShapesLastState, result); -}; - -/** - * Checks if two bodies are currently overlapping. - * @method bodiesAreOverlapping - * @param {Body} bodyA - * @param {Body} bodyB - * @return {boolean} - */ -OverlapKeeper.prototype.bodiesAreOverlapping = function(bodyA, bodyB){ - var current = this.overlappingShapesCurrentState; - var l = current.keys.length; - while(l--){ - var key = current.keys[l]; - var data = current.data[key]; - if((data.bodyA === bodyA && data.bodyB === bodyB) || data.bodyA === bodyB && data.bodyB === bodyA){ - return true; - } - } - return false; -}; - -OverlapKeeper.prototype.getDiff = function(dictA, dictB, result){ - var result = result || []; - var last = dictA; - var current = dictB; - - result.length = 0; - - var l = current.keys.length; - while(l--){ - var key = current.keys[l]; - var data = current.data[key]; - - if(!data){ - throw new Error('Key '+key+' had no data!'); - } - - var lastData = last.data[key]; - if(!lastData){ - // Not overlapping in last state, but in current. - result.push(data); - } - } - - return result; -}; - -OverlapKeeper.prototype.isNewOverlap = function(shapeA, shapeB){ - var idA = shapeA.id|0, - idB = shapeB.id|0; - var last = this.overlappingShapesLastState; - var current = this.overlappingShapesCurrentState; - // Not in last but in new - return !!!last.get(idA, idB) && !!current.get(idA, idB); -}; - -OverlapKeeper.prototype.getNewBodyOverlaps = function(result){ - this.tmpArray1.length = 0; - var overlaps = this.getNewOverlaps(this.tmpArray1); - return this.getBodyDiff(overlaps, result); -}; - -OverlapKeeper.prototype.getEndBodyOverlaps = function(result){ - this.tmpArray1.length = 0; - var overlaps = this.getEndOverlaps(this.tmpArray1); - return this.getBodyDiff(overlaps, result); -}; - -OverlapKeeper.prototype.getBodyDiff = function(overlaps, result){ - result = result || []; - var accumulator = this.tmpDict; - - var l = overlaps.length; - - while(l--){ - var data = overlaps[l]; - - // Since we use body id's for the accumulator, these will be a subset of the original one - accumulator.set(data.bodyA.id|0, data.bodyB.id|0, data); - } - - l = accumulator.keys.length; - while(l--){ - var data = accumulator.getByKey(accumulator.keys[l]); - if(data){ - result.push(data.bodyA, data.bodyB); - } - } - - accumulator.reset(); - - return result; -}; - -},{"./OverlapKeeperRecord":53,"./OverlapKeeperRecordPool":54,"./TupleDictionary":56,"./Utils":57}],53:[function(_dereq_,module,exports){ -module.exports = OverlapKeeperRecord; - -/** - * Overlap data container for the OverlapKeeper - * @class OverlapKeeperRecord - * @constructor - * @param {Body} bodyA - * @param {Shape} shapeA - * @param {Body} bodyB - * @param {Shape} shapeB - */ -function OverlapKeeperRecord(bodyA, shapeA, bodyB, shapeB){ - /** - * @property {Shape} shapeA - */ - this.shapeA = shapeA; - /** - * @property {Shape} shapeB - */ - this.shapeB = shapeB; - /** - * @property {Body} bodyA - */ - this.bodyA = bodyA; - /** - * @property {Body} bodyB - */ - this.bodyB = bodyB; -} - -/** - * Set the data for the record - * @method set - * @param {Body} bodyA - * @param {Shape} shapeA - * @param {Body} bodyB - * @param {Shape} shapeB - */ -OverlapKeeperRecord.prototype.set = function(bodyA, shapeA, bodyB, shapeB){ - OverlapKeeperRecord.call(this, bodyA, shapeA, bodyB, shapeB); -}; - -},{}],54:[function(_dereq_,module,exports){ -var OverlapKeeperRecord = _dereq_('./OverlapKeeperRecord'); -var Pool = _dereq_('./Pool'); - -module.exports = OverlapKeeperRecordPool; - -/** - * @class - */ -function OverlapKeeperRecordPool() { - Pool.apply(this, arguments); -} -OverlapKeeperRecordPool.prototype = new Pool(); -OverlapKeeperRecordPool.prototype.constructor = OverlapKeeperRecordPool; - -/** - * @method create - * @return {OverlapKeeperRecord} - */ -OverlapKeeperRecordPool.prototype.create = function () { - return new OverlapKeeperRecord(); -}; - -/** - * @method destroy - * @param {OverlapKeeperRecord} record - * @return {OverlapKeeperRecordPool} - */ -OverlapKeeperRecordPool.prototype.destroy = function (record) { - record.bodyA = record.bodyB = record.shapeA = record.shapeB = null; - return this; -}; - -},{"./OverlapKeeperRecord":53,"./Pool":55}],55:[function(_dereq_,module,exports){ -module.exports = Pool; - -/** - * @class Object pooling utility. - */ -function Pool(options) { - options = options || {}; - - /** - * @property {Array} objects - * @type {Array} - */ - this.objects = []; - - if(options.size !== undefined){ - this.resize(options.size); - } -} - -/** - * @method resize - * @param {number} size - * @return {Pool} Self, for chaining - */ -Pool.prototype.resize = function (size) { - var objects = this.objects; - - while (objects.length > size) { - objects.pop(); - } - - while (objects.length < size) { - objects.push(this.create()); - } - - return this; -}; - -/** - * Get an object from the pool or create a new instance. - * @method get - * @return {Object} - */ -Pool.prototype.get = function () { - var objects = this.objects; - return objects.length ? objects.pop() : this.create(); -}; - -/** - * Clean up and put the object back into the pool for later use. - * @method release - * @param {Object} object - * @return {Pool} Self for chaining - */ -Pool.prototype.release = function (object) { - this.destroy(object); - this.objects.push(object); - return this; -}; - -},{}],56:[function(_dereq_,module,exports){ -var Utils = _dereq_('./Utils'); - -module.exports = TupleDictionary; - -/** - * @class TupleDictionary - * @constructor - */ -function TupleDictionary() { - - /** - * The data storage - * @property data - * @type {Object} - */ - this.data = {}; - - /** - * Keys that are currently used. - * @property {Array} keys - */ - this.keys = []; -} - -/** - * Generate a key given two integers - * @method getKey - * @param {number} i - * @param {number} j - * @return {string} - */ -TupleDictionary.prototype.getKey = function(id1, id2) { - id1 = id1|0; - id2 = id2|0; - - if ( (id1|0) === (id2|0) ){ - return -1; - } - - // valid for values < 2^16 - return ((id1|0) > (id2|0) ? - (id1 << 16) | (id2 & 0xFFFF) : - (id2 << 16) | (id1 & 0xFFFF))|0 - ; -}; - -/** - * @method getByKey - * @param {Number} key - * @return {Object} - */ -TupleDictionary.prototype.getByKey = function(key) { - key = key|0; - return this.data[key]; -}; - -/** - * @method get - * @param {Number} i - * @param {Number} j - * @return {Number} - */ -TupleDictionary.prototype.get = function(i, j) { - return this.data[this.getKey(i, j)]; -}; - -/** - * Set a value. - * @method set - * @param {Number} i - * @param {Number} j - * @param {Number} value - */ -TupleDictionary.prototype.set = function(i, j, value) { - if(!value){ - throw new Error("No data!"); - } - - var key = this.getKey(i, j); - - // Check if key already exists - if(!this.data[key]){ - this.keys.push(key); - } - - this.data[key] = value; - - return key; -}; - -/** - * Remove all data. - * @method reset - */ -TupleDictionary.prototype.reset = function() { - var data = this.data, - keys = this.keys; - - var l = keys.length; - while(l--) { - delete data[keys[l]]; - } - - keys.length = 0; -}; - -/** - * Copy another TupleDictionary. Note that all data in this dictionary will be removed. - * @method copy - * @param {TupleDictionary} dict The TupleDictionary to copy into this one. - */ -TupleDictionary.prototype.copy = function(dict) { - this.reset(); - Utils.appendArray(this.keys, dict.keys); - var l = dict.keys.length; - while(l--){ - var key = dict.keys[l]; - this.data[key] = dict.data[key]; - } -}; - -},{"./Utils":57}],57:[function(_dereq_,module,exports){ -/* global P2_ARRAY_TYPE */ - -module.exports = Utils; - -/** - * Misc utility functions - * @class Utils - * @constructor - */ -function Utils(){} - -/** - * Append the values in array b to the array a. See this for an explanation. - * @method appendArray - * @static - * @param {Array} a - * @param {Array} b - */ -Utils.appendArray = function(a,b){ - if (b.length < 150000) { - a.push.apply(a, b); - } else { - for (var i = 0, len = b.length; i !== len; ++i) { - a.push(b[i]); - } - } -}; - -/** - * Garbage free Array.splice(). Does not allocate a new array. - * @method splice - * @static - * @param {Array} array - * @param {Number} index - * @param {Number} howmany - */ -Utils.splice = function(array,index,howmany){ - howmany = howmany || 1; - for (var i=index, len=array.length-howmany; i < len; i++){ - array[i] = array[i + howmany]; - } - array.length = len; -}; - -/** - * The array type to use for internal numeric computations throughout the library. Float32Array is used if it is available, but falls back on Array. If you want to set array type manually, inject it via the global variable P2_ARRAY_TYPE. See example below. - * @static - * @property {function} ARRAY_TYPE - * @example - * - * - */ -if(typeof P2_ARRAY_TYPE !== 'undefined') { - Utils.ARRAY_TYPE = P2_ARRAY_TYPE; -} else if (typeof Float32Array !== 'undefined'){ - Utils.ARRAY_TYPE = Float32Array; -} else { - Utils.ARRAY_TYPE = Array; -} - -/** - * Extend an object with the properties of another - * @static - * @method extend - * @param {object} a - * @param {object} b - */ -Utils.extend = function(a,b){ - for(var key in b){ - a[key] = b[key]; - } -}; - -/** - * Extend an options object with default values. - * @static - * @method defaults - * @param {object} options The options object. May be falsy: in this case, a new object is created and returned. - * @param {object} defaults An object containing default values. - * @return {object} The modified options object. - */ -Utils.defaults = function(options, defaults){ - options = options || {}; - for(var key in defaults){ - if(!(key in options)){ - options[key] = defaults[key]; - } - } - return options; -}; - -},{}],58:[function(_dereq_,module,exports){ -var Body = _dereq_('../objects/Body'); - -module.exports = Island; - -/** - * An island of bodies connected with equations. - * @class Island - * @constructor - */ -function Island(){ - - /** - * Current equations in this island. - * @property equations - * @type {Array} - */ - this.equations = []; - - /** - * Current bodies in this island. - * @property bodies - * @type {Array} - */ - this.bodies = []; -} - -/** - * Clean this island from bodies and equations. - * @method reset - */ -Island.prototype.reset = function(){ - this.equations.length = this.bodies.length = 0; -}; - -var bodyIds = []; - -/** - * Get all unique bodies in this island. - * @method getBodies - * @return {Array} An array of Body - */ -Island.prototype.getBodies = function(result){ - var bodies = result || [], - eqs = this.equations; - bodyIds.length = 0; - for(var i=0; i!==eqs.length; i++){ - var eq = eqs[i]; - if(bodyIds.indexOf(eq.bodyA.id)===-1){ - bodies.push(eq.bodyA); - bodyIds.push(eq.bodyA.id); - } - if(bodyIds.indexOf(eq.bodyB.id)===-1){ - bodies.push(eq.bodyB); - bodyIds.push(eq.bodyB.id); - } - } - return bodies; -}; - -/** - * Check if the entire island wants to sleep. - * @method wantsToSleep - * @return {Boolean} - */ -Island.prototype.wantsToSleep = function(){ - for(var i=0; i= dt && substeps < maxSubSteps) { - // Do fixed steps to catch up - this.internalStep(dt); - this.time += dt; - this.accumulator -= dt; - substeps++; - } - - var t = (this.accumulator % dt) / dt; - for(var j=0; j!==this.bodies.length; j++){ - var b = this.bodies[j]; - vec2.lerp(b.interpolatedPosition, b.previousPosition, b.position, t); - b.interpolatedAngle = b.previousAngle + t * (b.angle - b.previousAngle); - } - } -}; - -var endOverlaps = []; - -/** - * Make a fixed step. - * @method internalStep - * @param {number} dt - * @private - */ -World.prototype.internalStep = function(dt){ - this.stepping = true; - - var that = this, - Nsprings = this.springs.length, - springs = this.springs, - bodies = this.bodies, - g = this.gravity, - solver = this.solver, - Nbodies = this.bodies.length, - broadphase = this.broadphase, - np = this.narrowphase, - constraints = this.constraints, - t0, t1, - fhMinv = step_fhMinv, - velodt = step_velodt, - mg = step_mg, - scale = vec2.scale, - add = vec2.add, - rotate = vec2.rotate, - islandManager = this.islandManager; - - this.overlapKeeper.tick(); - - this.lastTimeStep = dt; - - // Update approximate friction gravity. - if(this.useWorldGravityAsFrictionGravity){ - var gravityLen = vec2.length(this.gravity); - if(!(gravityLen === 0 && this.useFrictionGravityOnZeroGravity)){ - // Nonzero gravity. Use it. - this.frictionGravity = gravityLen; - } - } - - // Add gravity to bodies - if(this.applyGravity){ - for(var i=0; i!==Nbodies; i++){ - var b = bodies[i], - fi = b.force; - if(b.type !== Body.DYNAMIC || b.sleepState === Body.SLEEPING){ - continue; - } - vec2.scale(mg,g,b.mass*b.gravityScale); // F=m*g - add(fi,fi,mg); - } - } - - // Add spring forces - if(this.applySpringForces){ - for(var i=0; i!==Nsprings; i++){ - var s = springs[i]; - s.applyForce(); - } - } - - if(this.applyDamping){ - for(var i=0; i!==Nbodies; i++){ - var b = bodies[i]; - if(b.type === Body.DYNAMIC){ - b.applyDamping(dt); - } - } - } - - // Broadphase - var result = broadphase.getCollisionPairs(this); - - // Remove ignored collision pairs - var ignoredPairs = this.disabledBodyCollisionPairs; - for(var i=ignoredPairs.length-2; i>=0; i-=2){ - for(var j=result.length-2; j>=0; j-=2){ - if( (ignoredPairs[i] === result[j] && ignoredPairs[i+1] === result[j+1]) || - (ignoredPairs[i+1] === result[j] && ignoredPairs[i] === result[j+1])){ - result.splice(j,2); - } - } - } - - // Remove constrained pairs with collideConnected == false - var Nconstraints = constraints.length; - for(i=0; i!==Nconstraints; i++){ - var c = constraints[i]; - if(!c.collideConnected){ - for(var j=result.length-2; j>=0; j-=2){ - if( (c.bodyA === result[j] && c.bodyB === result[j+1]) || - (c.bodyB === result[j] && c.bodyA === result[j+1])){ - result.splice(j,2); - } - } - } - } - - // postBroadphase event - this.postBroadphaseEvent.pairs = result; - this.emit(this.postBroadphaseEvent); - this.postBroadphaseEvent.pairs = null; - - // Narrowphase - np.reset(this); - for(var i=0, Nresults=result.length; i!==Nresults; i+=2){ - var bi = result[i], - bj = result[i+1]; - - // Loop over all shapes of body i - for(var k=0, Nshapesi=bi.shapes.length; k!==Nshapesi; k++){ - var si = bi.shapes[k], - xi = si.position, - ai = si.angle; - - // All shapes of body j - for(var l=0, Nshapesj=bj.shapes.length; l!==Nshapesj; l++){ - var sj = bj.shapes[l], - xj = sj.position, - aj = sj.angle; - - var cm = this.defaultContactMaterial; - if(si.material && sj.material){ - var tmp = this.getContactMaterial(si.material,sj.material); - if(tmp){ - cm = tmp; - } - } - - this.runNarrowphase(np,bi,si,xi,ai,bj,sj,xj,aj,cm,this.frictionGravity); - } - } - } - - // Wake up bodies - for(var i=0; i!==Nbodies; i++){ - var body = bodies[i]; - if(body._wakeUpAfterNarrowphase){ - body.wakeUp(); - body._wakeUpAfterNarrowphase = false; - } - } - - // Emit end overlap events - if(this.has('endContact')){ - this.overlapKeeper.getEndOverlaps(endOverlaps); - var e = this.endContactEvent; - var l = endOverlaps.length; - while(l--){ - var data = endOverlaps[l]; - e.shapeA = data.shapeA; - e.shapeB = data.shapeB; - e.bodyA = data.bodyA; - e.bodyB = data.bodyB; - this.emit(e); - } - endOverlaps.length = 0; - } - - var preSolveEvent = this.preSolveEvent; - preSolveEvent.contactEquations = np.contactEquations; - preSolveEvent.frictionEquations = np.frictionEquations; - this.emit(preSolveEvent); - preSolveEvent.contactEquations = preSolveEvent.frictionEquations = null; - - // update constraint equations - var Nconstraints = constraints.length; - for(i=0; i!==Nconstraints; i++){ - constraints[i].update(); - } - - if(np.contactEquations.length || np.frictionEquations.length || Nconstraints){ - if(this.islandSplit){ - // Split into islands - islandManager.equations.length = 0; - Utils.appendArray(islandManager.equations, np.contactEquations); - Utils.appendArray(islandManager.equations, np.frictionEquations); - for(i=0; i!==Nconstraints; i++){ - Utils.appendArray(islandManager.equations, constraints[i].equations); - } - islandManager.split(this); - - for(var i=0; i!==islandManager.islands.length; i++){ - var island = islandManager.islands[i]; - if(island.equations.length){ - solver.solveIsland(dt,island); - } - } - - } else { - - // Add contact equations to solver - solver.addEquations(np.contactEquations); - solver.addEquations(np.frictionEquations); - - // Add user-defined constraint equations - for(i=0; i!==Nconstraints; i++){ - solver.addEquations(constraints[i].equations); - } - - if(this.solveConstraints){ - solver.solve(dt,this); - } - - solver.removeAllEquations(); - } - } - - // Step forward - for(var i=0; i!==Nbodies; i++){ - var body = bodies[i]; - - // if(body.sleepState !== Body.SLEEPING && body.type !== Body.STATIC){ - body.integrate(dt); - // } - } - - // Reset force - for(var i=0; i!==Nbodies; i++){ - bodies[i].setZeroForce(); - } - - // Emit impact event - if(this.emitImpactEvent && this.has('impact')){ - var ev = this.impactEvent; - for(var i=0; i!==np.contactEquations.length; i++){ - var eq = np.contactEquations[i]; - if(eq.firstImpact){ - ev.bodyA = eq.bodyA; - ev.bodyB = eq.bodyB; - ev.shapeA = eq.shapeA; - ev.shapeB = eq.shapeB; - ev.contactEquation = eq; - this.emit(ev); - } - } - } - - // Sleeping update - if(this.sleepMode === World.BODY_SLEEPING){ - for(i=0; i!==Nbodies; i++){ - bodies[i].sleepTick(this.time, false, dt); - } - } else if(this.sleepMode === World.ISLAND_SLEEPING && this.islandSplit){ - - // Tell all bodies to sleep tick but dont sleep yet - for(i=0; i!==Nbodies; i++){ - bodies[i].sleepTick(this.time, true, dt); - } - - // Sleep islands - for(var i=0; i 0; - np.frictionCoefficient = cm.friction; - var reducedMass; - if(bi.type === Body.STATIC || bi.type === Body.KINEMATIC){ - reducedMass = bj.mass; - } else if(bj.type === Body.STATIC || bj.type === Body.KINEMATIC){ - reducedMass = bi.mass; - } else { - reducedMass = (bi.mass*bj.mass)/(bi.mass+bj.mass); - } - np.slipForce = cm.friction*glen*reducedMass; - np.restitution = cm.restitution; - np.surfaceVelocity = cm.surfaceVelocity; - np.frictionStiffness = cm.frictionStiffness; - np.frictionRelaxation = cm.frictionRelaxation; - np.stiffness = cm.stiffness; - np.relaxation = cm.relaxation; - np.contactSkinSize = cm.contactSkinSize; - np.enabledEquations = bi.collisionResponse && bj.collisionResponse && si.collisionResponse && sj.collisionResponse; - - var resolver = np[si.type | sj.type], - numContacts = 0; - if (resolver) { - var sensor = si.sensor || sj.sensor; - var numFrictionBefore = np.frictionEquations.length; - if (si.type < sj.type) { - numContacts = resolver.call(np, bi,si,xiw,aiw, bj,sj,xjw,ajw, sensor); - } else { - numContacts = resolver.call(np, bj,sj,xjw,ajw, bi,si,xiw,aiw, sensor); - } - var numFrictionEquations = np.frictionEquations.length - numFrictionBefore; - - if(numContacts){ - - if( bi.allowSleep && - bi.type === Body.DYNAMIC && - bi.sleepState === Body.SLEEPING && - bj.sleepState === Body.AWAKE && - bj.type !== Body.STATIC - ){ - var speedSquaredB = vec2.squaredLength(bj.velocity) + Math.pow(bj.angularVelocity,2); - var speedLimitSquaredB = Math.pow(bj.sleepSpeedLimit,2); - if(speedSquaredB >= speedLimitSquaredB*2){ - bi._wakeUpAfterNarrowphase = true; - } - } - - if( bj.allowSleep && - bj.type === Body.DYNAMIC && - bj.sleepState === Body.SLEEPING && - bi.sleepState === Body.AWAKE && - bi.type !== Body.STATIC - ){ - var speedSquaredA = vec2.squaredLength(bi.velocity) + Math.pow(bi.angularVelocity,2); - var speedLimitSquaredA = Math.pow(bi.sleepSpeedLimit,2); - if(speedSquaredA >= speedLimitSquaredA*2){ - bj._wakeUpAfterNarrowphase = true; - } - } - - this.overlapKeeper.setOverlapping(bi, si, bj, sj); - if(this.has('beginContact') && this.overlapKeeper.isNewOverlap(si, sj)){ - - // Report new shape overlap - var e = this.beginContactEvent; - e.shapeA = si; - e.shapeB = sj; - e.bodyA = bi; - e.bodyB = bj; - - // Reset contact equations - e.contactEquations.length = 0; - - if(typeof(numContacts)==="number"){ - for(var i=np.contactEquations.length-numContacts; i 1){ // Why divide by 1? - for(var i=np.frictionEquations.length-numFrictionEquations; i=0; i--){ - this.removeConstraint(cs[i]); - } - - // Remove all bodies - var bodies = this.bodies; - for(var i=bodies.length-1; i>=0; i--){ - this.removeBody(bodies[i]); - } - - // Remove all springs - var springs = this.springs; - for(var i=springs.length-1; i>=0; i--){ - this.removeSpring(springs[i]); - } - - // Remove all contact materials - var cms = this.contactMaterials; - for(var i=cms.length-1; i>=0; i--){ - this.removeContactMaterial(cms[i]); - } - - World.apply(this); -}; - -var hitTest_tmp1 = vec2.create(), - hitTest_zero = vec2.fromValues(0,0), - hitTest_tmp2 = vec2.fromValues(0,0); - -/** - * Test if a world point overlaps bodies - * @method hitTest - * @param {Array} worldPoint Point to use for intersection tests - * @param {Array} bodies A list of objects to check for intersection - * @param {Number} precision Used for matching against particles and lines. Adds some margin to these infinitesimal objects. - * @return {Array} Array of bodies that overlap the point - * @todo Should use an api similar to the raycast function - * @todo Should probably implement a .containsPoint method for all shapes. Would be more efficient - */ -World.prototype.hitTest = function(worldPoint,bodies,precision){ - precision = precision || 0; - - // Create a dummy particle body with a particle shape to test against the bodies - var pb = new Body({ position:worldPoint }), - ps = new Particle(), - px = worldPoint, - pa = 0, - x = hitTest_tmp1, - zero = hitTest_zero, - tmp = hitTest_tmp2; - pb.addShape(ps); - - var n = this.narrowphase, - result = []; - - // Check bodies - for(var i=0, N=bodies.length; i!==N; i++){ - var b = bodies[i]; - - for(var j=0, NS=b.shapes.length; j!==NS; j++){ - var s = b.shapes[j]; - - // Get shape world position + angle - vec2.rotate(x, s.position, b.angle); - vec2.add(x, x, b.position); - var a = s.angle + b.angle; - - if( (s instanceof Circle && n.circleParticle (b,s,x,a, pb,ps,px,pa, true)) || - (s instanceof Convex && n.particleConvex (pb,ps,px,pa, b,s,x,a, true)) || - (s instanceof Plane && n.particlePlane (pb,ps,px,pa, b,s,x,a, true)) || - (s instanceof Capsule && n.particleCapsule (pb,ps,px,pa, b,s,x,a, true)) || - (s instanceof Particle && vec2.squaredLength(vec2.sub(tmp,x,worldPoint)) < precision*precision) - ){ - result.push(b); - } - } - } - - return result; -}; - -/** - * Set the stiffness for all equations and contact materials. - * @method setGlobalStiffness - * @param {Number} stiffness - */ -World.prototype.setGlobalStiffness = function(stiffness){ - - // Set for all constraints - var constraints = this.constraints; - for(var i=0; i !== constraints.length; i++){ - var c = constraints[i]; - for(var j=0; j !== c.equations.length; j++){ - var eq = c.equations[j]; - eq.stiffness = stiffness; - eq.needsUpdate = true; - } - } - - // Set for all contact materials - var contactMaterials = this.contactMaterials; - for(var i=0; i !== contactMaterials.length; i++){ - var c = contactMaterials[i]; - c.stiffness = c.frictionStiffness = stiffness; - } - - // Set for default contact material - var c = this.defaultContactMaterial; - c.stiffness = c.frictionStiffness = stiffness; -}; - -/** - * Set the relaxation for all equations and contact materials. - * @method setGlobalRelaxation - * @param {Number} relaxation - */ -World.prototype.setGlobalRelaxation = function(relaxation){ - - // Set for all constraints - for(var i=0; i !== this.constraints.length; i++){ - var c = this.constraints[i]; - for(var j=0; j !== c.equations.length; j++){ - var eq = c.equations[j]; - eq.relaxation = relaxation; - eq.needsUpdate = true; - } - } - - // Set for all contact materials - for(var i=0; i !== this.contactMaterials.length; i++){ - var c = this.contactMaterials[i]; - c.relaxation = c.frictionRelaxation = relaxation; - } - - // Set for default contact material - var c = this.defaultContactMaterial; - c.relaxation = c.frictionRelaxation = relaxation; -}; - -var tmpAABB = new AABB(); -var tmpArray = []; - -/** - * Ray cast against all bodies in the world. - * @method raycast - * @param {RaycastResult} result - * @param {Ray} ray - * @return {boolean} True if any body was hit. - * - * @example - * var ray = new Ray({ - * mode: Ray.CLOSEST, // or ANY - * from: [0, 0], - * to: [10, 0], - * }); - * var result = new RaycastResult(); - * world.raycast(result, ray); - * - * // Get the hit point - * var hitPoint = vec2.create(); - * result.getHitPoint(hitPoint, ray); - * console.log('Hit point: ', hitPoint[0], hitPoint[1], ' at distance ' + result.getHitDistance(ray)); - * - * @example - * var ray = new Ray({ - * mode: Ray.ALL, - * from: [0, 0], - * to: [10, 0], - * callback: function(result){ - * - * // Print some info about the hit - * console.log('Hit body and shape: ', result.body, result.shape); - * - * // Get the hit point - * var hitPoint = vec2.create(); - * result.getHitPoint(hitPoint, ray); - * console.log('Hit point: ', hitPoint[0], hitPoint[1], ' at distance ' + result.getHitDistance(ray)); - * - * // If you are happy with the hits you got this far, you can stop the traversal here: - * result.stop(); - * } - * }); - * var result = new RaycastResult(); - * world.raycast(result, ray); - */ -World.prototype.raycast = function(result, ray){ - - // Get all bodies within the ray AABB - ray.getAABB(tmpAABB); - this.broadphase.aabbQuery(this, tmpAABB, tmpArray); - ray.intersectBodies(result, tmpArray); - tmpArray.length = 0; - - return result.hasHit(); -}; - -},{"../../package.json":6,"../collision/AABB":7,"../collision/Broadphase":8,"../collision/Narrowphase":10,"../collision/Ray":11,"../collision/SAPBroadphase":13,"../constraints/Constraint":14,"../constraints/DistanceConstraint":15,"../constraints/GearConstraint":16,"../constraints/LockConstraint":17,"../constraints/PrismaticConstraint":18,"../constraints/RevoluteConstraint":19,"../events/EventEmitter":26,"../material/ContactMaterial":27,"../material/Material":28,"../math/vec2":30,"../objects/Body":31,"../objects/LinearSpring":32,"../objects/RotationalSpring":33,"../shapes/Capsule":38,"../shapes/Circle":39,"../shapes/Convex":40,"../shapes/Line":42,"../shapes/Particle":43,"../shapes/Plane":44,"../shapes/Shape":45,"../solver/GSSolver":46,"../solver/Solver":47,"../utils/OverlapKeeper":52,"../utils/Utils":57,"./IslandManager":59}]},{},[36]) -(36) -}); /** * @author Richard Davey * @copyright 2015 Photon Storm Ltd. diff --git a/build/phaser.map b/build/phaser.map index f9313e973..1fe445743 100644 --- a/build/phaser.map +++ b/build/phaser.map @@ -1 +1 @@ -{"version":3,"file":"phaser.min.js","sources":["phaser.js"],"names":["PIXI","root","this","WEBGL_RENDERER","CANVAS_RENDERER","VERSION","_UID","Float32Array","Uint16Array","Uint32Array","ArrayBuffer","Array","PI_2","Math","PI","RAD_TO_DEG","DEG_TO_RAD","RETINA_PREFIX","defaultRenderOptions","view","transparent","antialias","preserveDrawingBuffer","resolution","clearBeforeRender","autoResize","DisplayObject","position","Point","scale","transformCallback","transformCallbackContext","pivot","rotation","alpha","visible","hitArea","renderable","parent","stage","worldAlpha","worldTransform","Matrix","worldPosition","worldScale","worldRotation","_sr","_cr","filterArea","_bounds","Rectangle","_currentBounds","_mask","_cacheAsBitmap","_cacheIsDirty","prototype","constructor","destroy","children","i","length","_destroyCachedSprite","Object","defineProperty","get","item","set","value","isMask","_filters","passes","filterPasses","j","push","_filterBlock","target","_generateCachedSprite","updateTransform","game","p","world","a","b","c","d","tx","ty","pt","wt","rotationCache","sin","cos","x","y","sqrt","atan2","call","displayObjectUpdateTransform","getBounds","matrix","EmptyRectangle","getLocalBounds","identityMatrix","setStageReference","preUpdate","generateTexture","scaleMode","renderer","bounds","renderTexture","RenderTexture","width","height","_tempMatrix","render","updateCache","toGlobal","apply","toLocal","from","applyInverse","_renderCachedSprite","renderSession","_cachedSprite","gl","Sprite","_renderWebGL","_renderCanvas","texture","resize","tempFilters","filters","anchor","DisplayObjectContainer","create","_width","_height","addChild","child","addChildAt","index","removeChild","splice","Error","swapChildren","child2","index1","getChildIndex","index2","indexOf","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","Texture","emptyTexture","tint","cachedTint","tintedTexture","blendMode","blendModes","NORMAL","shader","baseTexture","hasLoaded","onTextureUpdate","frame","setTexture","valid","w0","w1","h0","h1","x1","y1","x2","y2","x3","y3","x4","y4","crop","currentBlendMode","context","globalCompositeOperation","blendModesCanvas","globalAlpha","smoothProperty","scaleModes","LINEAR","dx","trim","dy","roundPixels","setTransform","cw","ch","requiresReTint","CanvasTinter","getTintedTexture","drawImage","cx","cy","source","fromFrame","frameId","TextureCache","fromImage","imageId","crossorigin","SpriteBatch","textureThing","ready","initWebGL","fastSpriteBatch","WebGLFastSpriteBatch","setContext","shaderManager","setShader","fastShader","transform","isRotated","childTransform","Stage","backgroundColor","setBackgroundColor","backgroundColorSplit","hex2rgb","hex","toString","substr","backgroundColorString","rgb2hex","rgb","canUseNewCanvasBlendModes","document","pngHead","pngEnd","magenta","Image","src","yellow","canvas","createElement","getContext","getImageData","data","getNextPowerOfTwo","number","result","isPowerOfTwo","PolyK","Triangulate","sign","n","tgs","avl","al","i0","i1","i2","ax","ay","bx","by","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","isArray","join","createShader","shaderSource","compileShader","getShaderParameter","COMPILE_STATUS","window","console","log","getShaderInfoLog","compileProgram","vertexSrc","fragmentSrc","fragmentShader","vertexShader","shaderProgram","createProgram","attachShader","linkProgram","getProgramParameter","LINK_STATUS","PixiShader","program","textureCount","firstRun","dirty","attributes","init","defaultVertexSrc","useProgram","uSampler","getUniformLocation","projectionVector","offsetVector","dimensions","aVertexPosition","getAttribLocation","aTextureCoord","colorAttribute","key","uniforms","uniformLocation","initUniforms","uniform","type","_init","initSampler2D","glMatrix","glValueLength","glFunc","uniformMatrix2fv","uniformMatrix3fv","uniformMatrix4fv","activeTexture","bindTexture","TEXTURE_2D","_glTextures","id","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","transpose","z","w","_dirty","instances","updateTexture","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","toArray","uniform1f","uniform2f","uniform3fv","bindBuffer","ARRAY_BUFFER","buffer","vertexAttribPointer","FLOAT","ELEMENT_ARRAY_BUFFER","indexBuffer","TRIANGLE_STRIP","lastIndex","clearDirty","graphicsData","reset","graphicsDataPool","Graphics","POLY","points","shape","slice","closed","fill","switchMode","canDrawUsingSimple","buildPoly","buildComplexPoly","lineWidth","buildLine","RECT","buildRectangle","CIRC","ELIP","buildCircle","RREC","buildRoundedRectangle","upload","pop","WebGLGraphicsData","rectData","fillColor","fillAlpha","r","g","verts","vertPos","tempPoints","rrectData","radius","recPoints","concat","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","a1","b1","c1","a2","b2","c2","denom","pdist","dist","indexCount","indexStart","lineColor","lineAlpha","abs","createBuffer","glPoints","bufferData","STATIC_DRAW","glIndicies","glContexts","WebGLRenderer","options","defaultRenderer","_contextOptions","premultipliedAlpha","stencil","WebGLShaderManager","WebGLSpriteBatch","WebGLMaskManager","WebGLFilterManager","WebGLStencilManager","blendModeManager","WebGLBlendModeManager","drawCount","initContext","mapBlendModes","glContextId","disable","DEPTH_TEST","CULL_FACE","enable","BLEND","contextLost","__stage","viewport","bindFramebuffer","FRAMEBUFFER","clearColor","clear","COLOR_BUFFER_BIT","renderDisplayObject","displayObject","setBlendMode","style","createTexture","UNPACK_PREMULTIPLY_ALPHA_WEBGL","NEAREST","mipmap","LINEAR_MIPMAP_LINEAR","NEAREST_MIPMAP_NEAREST","generateMipmap","_powerOf2","blendModesWebGL","ONE","ONE_MINUS_SRC_ALPHA","ADD","SRC_ALPHA","DST_ALPHA","MULTIPLY","DST_COLOR","SCREEN","OVERLAY","DARKEN","LIGHTEN","COLOR_DODGE","COLOR_BURN","HARD_LIGHT","SOFT_LIGHT","DIFFERENCE","EXCLUSION","HUE","SATURATION","COLOR","LUMINOSITY","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","size","numVerts","numIndices","vertices","positions","colors","lastIndexCount","drawing","currentBatchSize","currentBaseTexture","textures","shaders","sprites","AbstractFilter","vertexBuffer","DYNAMIC_DRAW","sprite","uvs","_uvs","aX","aY","x0","y0","renderTilingSprite","tilingTexture","TextureUvs","h","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","DEFAULT","framebufferTexture2D","COLOR_ATTACHMENT0","renderBuffer","createRenderbuffer","bindRenderbuffer","RENDERBUFFER","framebufferRenderbuffer","DEPTH_STENCIL_ATTACHMENT","renderbufferStorage","DEPTH_STENCIL","deleteFramebuffer","deleteTexture","CanvasBuffer","clearRect","CanvasMaskManager","save","cacheAlpha","CanvasGraphics","renderGraphicsMask","clip","restore","tintMethod","tintWithMultiply","fillStyle","fillRect","tintWithPerPixel","rgbValues","pixelData","pixels","canHandleAlpha","putImageData","checkInverseAlpha","s1","s2","canUseMultiply","CanvasRenderer","refresh","navigator","isCocoonJS","screencanvas","removeView","updateGraphicsTint","_fillTint","_lineTint","beginPath","moveTo","lineTo","closePath","strokeStyle","stroke","strokeRect","arc","kappa","ox","oy","xe","ye","xm","ym","bezierCurveTo","rx","ry","maxRadius","min","quadraticCurveTo","len","rect","tintR","tintG","tintB","BaseTextureCache","BaseTextureCacheIdGenerator","BaseTexture","complete","naturalWidth","naturalHeight","imageUrl","forceLoaded","_pixiId","unloadFromGPU","updateSourceImage","newSrc","glTexture","image","crossOrigin","fromCanvas","TextureCacheIdGenerator","FrameCache","TextureSilentFail","noFrame","isTiling","requiresUpdate","setFrame","onBaseTextureLoaded","destroyBase","_updateUvs","tw","th","addTextureToCache","removeTextureFromCache","textureBuffer","renderWebGL","renderCanvas","tempMatrix","Phaser","updateBase","identity","translate","append","realResolution","getImage","getBase64","getCanvas","toDataURL","webGLPixels","Uint8Array","readPixels","tempCanvas","canvasData","exports","module","define","amd","WheelEventProxy","scaleFactor","deltaMode","_scaleFactor","_deltaMode","originalEvent","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","CIRCLE","RECTANGLE","LINE","MATRIX","POINT","ROUNDEDRECTANGLE","CREATURE","VIDEO","trunc","ceil","floor","Function","bind","thisArg","bound","args","boundArgs","arguments","TypeError","F","proto","arg","forEach","fun","t","CheapArray","assert","warn","Utils","getProperty","obj","prop","parts","split","last","l","current","setProperty","chanceRoll","chance","random","randomChoice","choice1","choice2","parseDimension","dimension","f","parseInt","innerWidth","innerHeight","pad","str","dir","padlen","right","left","isPlainObject","nodeType","hasOwnProperty","e","extend","name","copy","copyIsArray","clone","deep","mixinPrototype","mixin","replace","mixinKeys","keys","to","o","childNodes","cloneNode","Circle","diameter","_diameter","_radius","circumference","out","setTo","copyFrom","copyTo","dest","distance","round","output","contains","circumferencePoint","angle","asDegrees","offsetPoint","point","top","bottom","equals","intersects","degToRad","intersectsRectangle","halfWidth","xDist","halfHeight","yDist","xCornerDist","yCornerDist","xCornerDistSq","yCornerDistSq","maxCornerDistSq","Ellipse","normx","normy","Line","fromSprite","startSprite","endSprite","useCenter","center","fromAngle","rotate","line","asSegment","intersectsPoints","reflect","pointOnLine","pointOnSegment","xMin","xMax","max","yMin","yMax","coordinatesOnLine","stepRate","results","sx","sy","err","e2","wrap","uc","ua","ub","normalAngle","fromArray","array","pos","newPos","tx1","d1","invert","add","subtract","multiply","divide","clampX","clamp","clampY","radToDeg","getMagnitude","getMagnitudeSq","setMagnitude","magnitude","normalize","isZero","m","dot","cross","perp","rperp","normalRightHand","negative","multiplyAdd","s","interpolate","project","amt","projectUnit","centroid","pointslength","parse","xProp","yProp","Polygon","area","_points","toNumberArray","flatten","inside","ix","iy","jx","jy","Number","MAX_VALUE","calculateArea","p1","p2","avgHeight","centerOn","centerX","centerY","floorAll","ceilAll","inflate","containsRect","intersection","intersectsRaw","tolerance","union","randomX","randomY","empty","inflatePoint","containsRaw","rw","rh","containsPoint","volume","sameDimensions","aabb","MIN_VALUE","RoundedRectangle","Camera","deadzone","roundPx","atLimit","totalInView","_targetPosition","_edge","_position","FOLLOW_LOCKON","FOLLOW_PLATFORMER","FOLLOW_TOPDOWN","FOLLOW_TOPDOWN_TIGHT","follow","helper","unfollow","focusOn","setPosition","focusOnXY","update","updateTarget","checkBounds","setBoundsToWorld","setSize","Create","bmd","make","bitmapData","ctx","palettes",1,2,3,4,5,6,7,8,9,"A","B","C","D","E","PALETTE_ARNE","PALETTE_JMP","PALETTE_CGA","PALETTE_C64","PALETTE_JAPANESE_MACHINE","pixelWidth","pixelHeight","palette","row","grid","cellWidth","cellHeight","State","camera","cache","input","load","math","sound","time","tweens","particles","physics","rnd","preload","loadUpdate","loadRender","preRender","paused","resumed","pauseUpdate","shutdown","StateManager","pendingState","states","_pendingState","_clearWorld","_clearCache","_created","_args","onStateChange","Signal","onInitCallback","onPreloadCallback","onCreateCallback","onUpdateCallback","onRenderCallback","onResizeCallback","onPreRenderCallback","onLoadUpdateCallback","onLoadRenderCallback","onPausedCallback","onResumedCallback","onPauseUpdateCallback","onShutDownCallback","boot","onPause","pause","onResume","resume","state","autoStart","newState","isBooted","remove","callbackContext","clearWorld","clearCache","checkState","restart","dummy","previousStateKey","clearCurrentState","setCurrentState","dispatch","totalQueuedFiles","totalQueuedPacks","loadComplete","removeAll","debug","link","unlink","_kickstart","getCurrentState","elapsedTime","renderType","_bindings","_prevParams","memorize","_shouldPropagate","active","_boundDispatch","validateListener","listener","fnName","_registerListener","isOnce","listenerContext","priority","binding","prevIndex","_indexOfListener","SignalBinding","_addBinding","execute","_priority","cur","_listener","has","addOnce","_destroy","getNumListeners","halt","bindings","paramsArr","forget","dispose","_this","signal","_isOnce","_signal","callCount","params","handlerReturn","detach","isBound","getListener","getSignal","Filter","prevPoint","Date","mouse","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","exists","currentRenderOrderID","_hiddenVar","_onChange","_backgroundColor","config","parseConfig","DOM","getOffset","Canvas","setUserSelect","setTouchAction","checkVisibility","webkitHidden","mozHidden","msHidden","hidden","event","visibilityChange","addEventListener","onblur","onfocus","onpagehide","onpageshow","device","cocoonJSApp","CocoonJS","App","onSuspended","onActivated","focusLoss","focusGain","gamePaused","gameResumed","Color","valueToColor","getColor","RGBtoString","removeEventListener","Group","addToStage","enableBody","physicsBodyType","Physics","ARCADE","physicsType","alive","ignoreDestroy","pendingDestroy","classType","cursor","enableBodyDebug","physicsSortDirection","onDestroy","cursorIndex","fixedToCamera","cameraOffset","hash","_sortProperty","RETURN_NONE","RETURN_TOTAL","RETURN_CHILD","SORT_ASCENDING","SORT_DESCENDING","silent","body","addToHash","events","onAddedToGroup$dispatch","removeFromHash","addMultiple","moveAll","addAt","updateZ","getAt","createMultiple","quantity","resetCursor","next","previous","swap","child1","bringToTop","getIndex","sendToBack","moveUp","moveDown","xy","oldChild","newChild","hasProperty","operation","force","checkProperty","checkAlive","checkVisible","setAll","setAllChildren","checkAll","addAll","property","amount","subAll","multiplyAll","divideAll","callAllExists","callback","existsValue","callbackFromArray","callAll","method","methodLength","contextLength","renderOrderID","predicate","checkExists","ArraySet","forEachExists","iterate","forEachAlive","forEachDead","sort","order","ascendingSortHandler","descendingSortHandler","customSort","sortHandler","returnType","total","getFirstExists","getFirstAlive","getFirstDead","getTop","getBottom","countLiving","countDead","getRandom","ArrayUtils","getRandomItem","destroyPhase","onRemovedFromGroup$dispatch","group","removeBetween","destroyChildren","soft","World","_definedSize","stateChange","setBounds","useBounds","horizontal","vertical","between","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","text","geom","uuid","topLeft","topMiddle","topRight","bottomLeft","bottomMiddle","bottomRight","ScaleManager","dom","minWidth","maxWidth","minHeight","maxHeight","forceLandscape","forcePortrait","incorrectOrientation","_pageAlignHorizontally","_pageAlignVertically","onOrientationChange","enterIncorrectOrientation","leaveIncorrectOrientation","fullScreenTarget","_createdFullScreenTarget","onFullScreenInit","onFullScreenChange","onFullScreenError","screenOrientation","getScreenOrientation","scaleFactorInversed","margin","aspectRatio","sourceAspectRatio","windowConstraints","compatibility","supportsFullScreen","orientationFallback","noMargins","scrollTo","forceMinimumDocumentHeight","canExpandParent","clickTrampoline","_scaleMode","NO_SCALE","_fullScreenScaleMode","parentIsWindow","parentNode","parentScaleFactor","trackParentInterval","onSizeChange","onResizeContext","_pendingScaleMode","_fullScreenRestore","_gameSize","_userScaleFactor","_userScaleTrim","_lastUpdate","_updateThrottle","_updateThrottleReset","_parentBounds","_tempBounds","_lastReportedCanvasSize","_lastReportedGameSize","_booted","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","visualBounds","newWidth","newHeight","updateDimensions","queueUpdate","currentScaleMode","setUserScale","hScale","vScale","hTrim","vTrim","setResizeCallback","signalSizeChange","setMinMax","prevThrottle","prevWidth","prevHeight","boundsChanged","orientationChanged","updateOrientationState","updateLayout","throttle","updateScalingAndBounds","forceOrientation","classifyOrientation","orientation","previousOrientation","previouslyIncorrect","isLandscape","isPortrait","changed","correctnessChanged","scrollTop","reflowGame","documentElement","setMaximum","setExactFit","isFullScreen","boundingParent","setShowAll","resetCanvas","reflowCanvas","layoutBounds","clientRect","getBoundingClientRect","wc","windowBounds","alignCanvas","parentBounds","canvasBounds","currentEdge","targetEdge","marginLeft","marginRight","marginTop","marginBottom","pageAlignHorizontally","pageAlignVertically","cssWidth","cssHeight","expanding","createFullScreenTarget","fsTarget","background","startFullScreen","allowTrampoline","setTimeout","activePointer","mousePointer","addClickTrampoline","smoothed","cleanupCreatedTarget","initData","targetElement","insertBefore","appendChild","fullscreenKeyboard","requestFullscreen","Element","ALLOW_KEYBOARD_INPUT","stopFullScreen","cancelFullscreen","prepScreenMode","enteringFullscreen","createdTarget","targetWidth","targetHeight","enterFullScreen","leaveFullScreen","letterBox","scaleX1","scaleY1","scaleX2","scaleY2","scaleOnWidth","Game","physicsConfig","isRunning","raf","net","Device","lockRender","stepping","pendingStep","stepCount","onBlur","onFocus","_paused","_codePaused","currentUpdateID","updatesThisFrame","_deltaTime","_lastCount","_spiraling","fpsProblemNotifier","forceSingleUpdate","_nextFpsNotification","enableDebug","RandomDataGenerator","now","whenReady","seed","setUpRenderer","GameObjectFactory","GameObjectCreator","Cache","Loader","Time","TweenManager","Input","SoundManager","Particles","Net","Debug","showDebugHeader","RequestAnimationFrame","stopFocus","focus","hideBanner","webAudio","contextRestored","addToDOM","preventDefault","clearGLTextures","updateLogic","desiredFps","updateRender","slowMotion","slowStep","elapsed","timeStep","enableStep","disableStep","step","removeFromDOM","setMute","cordova","iOS","unsetMute","hitCanvas","hitContext","moveCallbacks","pollRate","enabled","multiInputOverride","MOUSE_TOUCH_COMBINE","speed","circle","maxPointers","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","Touch","MSPointer","Keyboard","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","mouseDownCallback","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","BACK_BUTTON","FORWARD_BUTTON","WHEEL_UP","WHEEL_DOWN","onMouseDown","onMouseMove","onMouseUp","_onMouseUpGlobal","onMouseUpGlobal","onMouseOut","onMouseOver","onMouseWheel","wheelEvent","mouseMoveCallback","withinGame","bindEvent","deltaY","requestPointerLock","element","mozRequestPointerLock","webkitRequestPointerLock","_pointerLockChange","pointerLockChange","pointerLockElement","mozPointerLockElement","webkitPointerLockElement","releasePointerLock","exitPointerLock","mozExitPointerLock","webkitExitPointerLock","_stubsGenerated","makeBinder","defineProperties","detail","deltaX","wheelDeltaX","deltaZ","pointerDownCallback","pointerMoveCallback","pointerUpCallback","_onMSPointerDown","_onMSPointerMove","_onMSPointerUp","onPointerDown","onPointerMove","onPointerUp","pointerType","DeviceButton","buttonCode","isDown","isUp","timeDown","duration","timeUp","repeats","altKey","shiftKey","ctrlKey","onFloat","padFloat","justPressed","justReleased","leftButton","middleButton","rightButton","backButton","forwardButton","eraserButton","ERASER_BUTTON","_holdSent","_history","_nextDrop","_stateReset","clientX","clientY","pageX","pageY","screenX","screenY","rawMovementX","rawMovementY","movementX","movementY","isMouse","previousTapTime","totalTouches","msSinceLastClick","targetObject","positionDown","positionUp","_clickTrampolines","_trampolineTargetObject","resetButtons","updateButtons","buttons","totalActivePointers","_touchedHandler","processInteractiveObjects","shift","fromClick","pollLocked","mozMovementX","webkitMovementX","mozMovementY","webkitMovementY","isDragged","highestRenderOrderID","highestInputPriorityID","candidateTarget","currentNode","first","checked","validForInput","checkPointerDown","checkPointerOver","priorityID","_pointerOutHandler","_pointerOverHandler","leave","currentPointers","callbackArgs","trampolines","trampoline","_releasedHandler","resetMovement","touchLockCallbacks","touchStartCallback","touchMoveCallback","touchEndCallback","touchEnterCallback","touchLeaveCallback","touchCancelCallback","_onTouchStart","_onTouchMove","_onTouchEnd","_onTouchEnter","_onTouchLeave","_onTouchCancel","onTouchStart","onTouchMove","onTouchEnd","onTouchEnter","onTouchLeave","onTouchCancel","consumeDocumentTouches","_documentTouchMove","addTouchLockCallback","removeTouchLockCallback","changedTouches","InputHandler","useHandCursor","_setHandCursor","allowHorizontalDrag","allowVerticalDrag","snapOffset","snapOnDrag","snapOnRelease","snapX","snapY","snapOffsetX","snapOffsetY","pixelPerfectOver","pixelPerfectClick","pixelPerfectAlpha","draggable","boundsRect","boundsSprite","consumePointerEvent","scaleLayer","dragOffset","dragFromCenter","dragStartPoint","snapPoint","_dragPoint","_dragPhase","_wasEnabled","_tempPoint","_pointerData","isOver","isOut","timeOver","timeOut","downDuration","onAddedToGroup","addedToGroup","onRemovedFromGroup","removedFromGroup","flagged","highestID","highestRenderID","includePixelPerfect","isPixelPerfect","pointerX","pointerY","pointerDown","pointerUp","pointerTimeDown","pointerTimeUp","pointerOver","pointerOut","pointerTimeOver","pointerTimeOut","pointerDragged","fastTest","checkPixel","_dx","_dy","_draggedPointerID","updateDrag","onInputOver$dispatch","onInputOut$dispatch","onInputDown$dispatch","startDrag","onInputUp$dispatch","stopDrag","globalToLocalX","globalToLocalY","checkBoundsRect","checkBoundsSprite","onDragUpdate","justOver","delay","overDuration","justOut","enableDrag","lockCenter","pixelPerfect","alphaThreshold","disableDrag","onDragStart$dispatch","onDragStop$dispatch","setDragLock","allowHorizontal","allowVertical","enableSnap","onDrag","onRelease","disableSnap","_gamepadIndexMap","_rawPads","_active","_gamepadSupportAvailable","webkitGetGamepads","webkitGamepads","userAgent","getGamepads","_prevRawGamepadTypes","_prevTimestamps","onConnectCallback","onDisconnectCallback","onDownCallback","onUpCallback","onAxisCallback","onFloatCallback","_ongamepadconnected","_gamepaddisconnected","_gamepads","SinglePad","addCallbacks","callbacks","onConnect","onDisconnect","onAxis","_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","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","processButtonDown","processButtonUp","processButtonFloat","axes","processAxisChange","triggerCallback","disconnectingIndex","axis","axisCode","buttonValue","Key","keycode","_enabled","keyCode","onHoldCallback","onHoldContext","_justDown","_justUp","processKeyDown","processKeyUp","upDuration","pressEvent","onPressCallback","_keys","_capture","_onKeyDown","_onKeyPress","_onKeyUp","_k","onPress","addKey","addKeyCapture","addKeys","removeKey","removeKeyCapture","createCursorKeys","up","down","processKeyPress","clearCaptures","String","fromCharCode","charCode","charCodeAt","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","COMMA","UNDERSCORE","PERIOD","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","PLUS","MINUS","INSERT","DELETE","HELP","NUM_LOCK","Component","Angle","wrapAngle","Animation","play","frameRate","loop","killOnComplete","animations","AutoCull","autoCull","inCamera","checkWorldBounds","Bounds","BringToTop","Core","install","components","previousPosition","Events","PhysicsBody","AnimationManager","LoadTexture","loadTexture","FixedToCamera","previousRotation","fresh","_exists","P2JS","removeFromWorld","customRender","Crop","cropRect","_crop","updateCrop","resetFrame","_frame","Delta","Destroy","onDestroy$dispatch","Video","onChangeSource","resizeFrame","BitmapText","_glyphs","_parent","_onDestroy","_onAddedToGroup","_onRemovedFromGroup","_onRemovedFromWorld","_onKilled","_onRevived","_onEnterBounds","_onOutOfBounds","_onInputOver","_onInputOut","_onInputDown","_onInputUp","_onDragStart","_onDragUpdate","_onDragStop","_onAnimationStart","_onAnimationComplete","_onAnimationLoop","onRemovedFromWorld","onKilled","onRevived","onOutOfBounds","onEnterBounds","onInputOver","onInputOut","onInputDown","onInputUp","onDragStart","onDragStop","onAnimationStart","onAnimationComplete","onAnimationLoop","backing","_fixedToCamera","Health","health","maxHealth","damage","kill","heal","InCamera","InputEnabled","inputEnabled","InWorld","_outOfBoundsFired","onEnterBounds$dispatch","onOutOfBounds$dispatch","outOfBoundsKill","inWorld","LifeSpan","lifespan","physicsElapsedMS","revive","onRevived$dispatch","onKilled$dispatch","stopAnimation","BitmapData","hasFrameData","loadFrameData","getFrameData","img","base","frameData","trimmed","spriteSourceSizeX","spriteSourceSizeY","sourceSizeW","sourceSizeH","refreshTexture","frameName","Overlap","overlap","_reset","Reset","ScaleMinMax","checkTransform","scaleMin","scaleMax","setScaleMinMax","Smoothed","existing","object","tween","physicsGroup","audio","audioSprite","addSprite","tileSprite","rope","Rope","Text","overFrame","outFrame","downFrame","upFrame","Button","emitter","maxParticles","Arcade","Emitter","retroFont","font","characterWidth","characterHeight","chars","charsPerRow","xSpacing","ySpacing","xOffset","yOffset","RetroFont","bitmapText","tilemap","tileWidth","tileHeight","Tilemap","addToCache","addRenderTexture","video","url","addBitmapData","Tween","align","preUpdatePhysics","preUpdateLifeSpan","preUpdateInWorld","preUpdateCore","_scroll","def","TilingSprite","physicsElapsed","autoScroll","stopScroll","_hasUpdateAnimation","_updateAnimationCallback","updateAnimation","_updateAnimation","segments","difference","_onOverFrame","_onOutFrame","_onDownFrame","_onUpFrame","onOverSound","onOutSound","onDownSound","onUpSound","onOverSoundMarker","onOutSoundMarker","onDownSoundMarker","onUpSoundMarker","onOverMouseOnly","freezeFrames","forceOut","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","Particle","autoScale","scaleData","_s","autoAlpha","alphaData","_a","onEmit","setAlphaData","setScaleData","imageData","textureFrame","Frame","disableTextureUpload","cls","_image","_pos","_size","_scale","_rotate","_alpha","prev","_anchor","_tempR","_tempG","_tempB","_circle","_swapCanvas","moveH","moveV","draw","addImage","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","direction","scan","anchorX","anchorY","copyRect","drawGroup","shadow","blur","shadowColor","shadowBlur","shadowOffsetX","shadowOffsetY","alphaMask","sourceRect","maskRect","blendSourceAtop","blendReset","extract","destination","prevFont","fillText","textureLine","createPattern","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","currentPath","boundsPadding","_localBounds","webGLDirty","cachedSpriteDirty","lineStyle","drawShape","cpX2","cpY2","dt","dt2","dt3","t2","t3","arcTo","mm","dd","cc","tt","k1","k2","j1","j2","qx","qy","startAngle","endAngle","anticlockwise","sweep","segs","startX","startY","filling","theta","theta2","cTheta","sTheta","segMinus","remainder","real","beginFill","endFill","drawRect","drawRoundedRect","drawCircle","drawEllipse","drawPolygon","path","canvasBuffer","updateCachedSpriteTexture","_prevTint","updateLocalBounds","tempPoint","cachedSprite","destroyCachedSprite","GraphicsData","drawTriangle","cull","triangle","cameraToFace","ab","cb","faceNormal","drawTriangles","point1","point2","point3","renderXY","renderRawXY","textBounds","strokeColors","autoRound","_res","_text","_fontComponents","_lineSpacing","_charCount","setStyle","updateText","setShadow","shadowStroke","shadowFill","boundsAlignH","boundsAlignV","strokeThickness","wordWrap","wordWrapWidth","tabs","fontToComponents","fontStyle","fontVariant","fontWeight","fontSize","componentsToFont","outputText","runWordWrap","lines","lineWidths","maxLineWidth","fontProperties","determineFontProperties","measureText","tab","section","snapToCeil","lineHeight","lineSpacing","textBaseline","lineCap","lineJoin","linePositionX","linePositionY","ascent","updateLine","updateShadow","strokeText","renderTabLine","snap","letter","clearColors","addColor","addStrokeColor","spaceLeft","words","wordWidth","wordWidthWithSpace","updateFont","match","fontFamily","setText","parseList","list","setTextBounds","properties","fontPropertiesCache","fontPropertiesCanvas","fontPropertiesContext","baseline","descent","imagedata","idx","exec","parseFloat","textWidth","textHeight","_prevAnchor","_maxWidth","_data","getBitmapFont","_font","_fontSize","_align","_tint","sourceWidth","sourceHeight","scanLine","lastSpace","prevCharCode","test","charAt","charData","kerning","xAdvance","purgeGlyphs","kept","checkImageKey","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","content","characterSpacing","allowLowerCase","buildRetroFontText","getLongestLine","pasteLine","longestLine","removeUnsupportedCharacters","stripCR","newString","aChar","code","updateOffset","diffX","diffY","frames","getFrames","newText","toUpperCase","Strip","canvasPadding","drawMode","DrawModes","_vertexBuffer","_initWebGL","_renderStrip","_indexBuffer","_uvBuffer","_colorBuffer","_renderCanvasTriangleStrip","_renderCanvasTriangles","_renderCanvasDrawTriangle","index0","textureSource","textureWidth","textureHeight","u0","u1","u2","v0","v1","v2","paddingX","paddingY","normX","normY","delta","deltaA","deltaB","deltaC","deltaD","deltaE","deltaF","renderStripFlat","strip","updateFrame","rawX","rawY","nextPoint","ratio","perpLength","num","textureDebug","tilePattern","frameWidth","frameHeight","generateTilingTexture","needsUpdate","sessionBlendMode","forcePowerOfTwo","deviceReadyAt","initialized","node","nodeWebkit","electron","ejecta","crosswalk","chromeOS","linux","macOS","windows","windowsPhone","canvasBitBltShift","file","fileSystem","localStorage","worker","css3D","typedArray","vibration","getUserMedia","quirksMode","arora","chromeVersion","epiphany","firefox","firefoxVersion","ie","ieVersion","trident","tridentVersion","mobileSafari","midori","opera","safari","silk","audioData","ogg","opus","mp3","wav","m4a","webm","oggVideo","h264Video","mp4Video","webmVideo","vp9Video","hlsVideo","iPhone","iPhone4","pixelRatio","littleEndian","support32bit","onInitialized","nonPrimer","readyCheck","_readyCheck","_monitor","_queue","readyState","_initialize","_checkOS","vita","kindle","_checkFeatures","getItem","error","WebGLRenderingContext","compatMode","webkitGetUserMedia","mozGetUserMedia","msGetUserMedia","oGetUserMedia","URL","webkitURL","mozURL","msURL","_checkInput","maxTouchPoints","msPointerEnabled","pointerEnabled","_checkFullScreenSupport","fs","cfs","_checkBrowser","RegExp","$1","$3","process","require","versions","_checkVideo","videoElement","canPlayType","_checkAudio","audioElement","_checkDevice","toLowerCase","Int8Array","_checkIsLittleEndian","Uint8ClampedArray","Int32Array","_checkIsUint8ClampedImageData","vibrate","webkitVibrate","mozVibrate","msVibrate","elem","createImageData","_checkCSS3D","has3d","el","transforms","webkitTransform","OTransform","msTransform","MozTransform","getComputedStyle","getPropertyValue","canPlayAudio","canPlayVideo","isConsoleOpen","profile","profileEnd","isAndroidStockBrowser","matches","box","scrollY","scrollLeft","scrollX","clientTop","clientLeft","cushion","calibrate","coords","getAspectRatio","inLayoutViewport","primaryFallback","screen","mozOrientation","msOrientation","PORTRAIT","LANDSCAPE","matchMedia","documentBounds","pageXOffset","pageYOffset","treatAsDesktop","clientWidth","clientHeight","offsetWidth","scrollWidth","offsetHeight","scrollHeight","display","msTouchAction","overflowHidden","overflow","vendor","prefix","setImageRenderingCrisp","msInterpolationMode","setImageRenderingBicubic","forceSetTimeOut","vendors","requestAnimationFrame","cancelAnimationFrame","_isSetTimeOut","_onLoop","_timeOutID","updateSetTimeout","updateRAF","rafTime","timeToCall","clearTimeout","isSetTimeOut","isRAF","PI2","fuzzyEqual","epsilon","fuzzyLessThan","fuzzyGreaterThan","fuzzyCeil","val","fuzzyFloor","average","sum","shear","snapTo","gap","snapToFloor","roundTo","place","pow","floorTo","ceilTo","angleBetween","angleBetweenY","angleBetweenPoints","angleBetweenPointsY","reverseAngle","angleRad","normalizeAngle","maxAdd","minSub","wrapValue","isOdd","isEven","minProperty","maxProperty","radians","linearInterpolation","linear","bezierInterpolation","bernstein","catmullRomInterpolation","catmullRom","p0","factorial","res","p3","roundAwayFromZero","sinCosGenerator","sinAmplitude","cosAmplitude","frequency","frq","cosTable","sinTable","distanceSq","distancePow","clampBottom","within","mapLinear","smoothstep","smootherstep","percent","degreeToRadiansFactor","radianToDegreesFactor","degrees","seeds","s0","sow","integer","frac","integerInRange","realInRange","normal","pick","ary","weightedPick","QuadTree","maxObjects","maxLevels","objects","nodes","_empty","subWidth","subHeight","populate","populateHandler","insert","retrieve","returnObjects","getHostName","location","hostname","checkDomainName","domain","updateQueryString","redirect","href","re","separator","getQueryString","parameter","keyValues","search","substring","decodeURI","decodeURIComponent","_tweens","_add","easeMap","Power0","Easing","Power1","Power2","Power3","Power4","Linear","None","Quad","Quadratic","Out","Cubic","Quart","Quartic","Quint","Quintic","Sine","Sinusoidal","Expo","Exponential","Circ","Circular","Elastic","Back","Bounce","Quad.easeIn","In","Cubic.easeIn","Quart.easeIn","Quint.easeIn","Sine.easeIn","Expo.easeIn","Circ.easeIn","Elastic.easeIn","Back.easeIn","Bounce.easeIn","Quad.easeOut","Cubic.easeOut","Quart.easeOut","Quint.easeOut","Sine.easeOut","Expo.easeOut","Circ.easeOut","Elastic.easeOut","Back.easeOut","Bounce.easeOut","Quad.easeInOut","InOut","Cubic.easeInOut","Quart.easeInOut","Quint.easeInOut","Sine.easeInOut","Expo.easeInOut","Circ.easeInOut","Elastic.easeInOut","Back.easeInOut","Bounce.easeInOut","_pauseAll","_resumeAll","getAll","pendingDelete","removeFrom","_manager","addTweens","numTweens","isTweening","some","_pause","_resume","pauseAll","resumeAll","timeline","timeScale","repeatCounter","onStart","onLoop","onRepeat","onChildComplete","onComplete","chainedTween","isPaused","_onUpdateCallback","_onUpdateCallbackContext","_pausedTime","_hasStarted","ease","yoyo","Default","TweenData","vEnd","loadValues","updateTweenData","repeatDelay","yoyoDelay","easing","interpolation","repeatAll","chain","startTime","status","PENDING","RUNNING","LOOPED","COMPLETE","generateData","vStart","vStartCache","vEndCache","inReverse","easingFunction","interpolationFunction","interpolationContext","isFrom","yoyoCounter","elapsedMS","fps","blob","reversed","asin","prevTime","suggestedFps","advancedTiming","fpsMin","fpsMax","msMin","msMax","pauseDuration","timeExpected","Timer","_frameCount","_elapsedAccumulator","_started","_timeLastSecond","_pauseStarted","_justResumed","_timers","timer","autoDestroy","updateAdvancedTiming","updateTimers","previousDateNow","timeCallExpected","elapsedSince","since","elapsedSecondsSince","running","expired","nextTick","timeCap","_pauseTotal","_now","_marked","_diff","_newTick","MINUTE","SECOND","HALF","QUARTER","repeatCount","tick","TimerEvent","clearEvents","clearPendingEvents","adjustEvents","baseTime","ms","currentFrame","currentAnim","updateIfVisible","isLoaded","_frameData","_anims","_outputFrames","anim","copyFrameData","useNumericIndex","getFrameIndexes","validateFrames","checkFrameName","isPlaying","getAnimation","refreshFrame","getFrame","getFrameByName","_frameIndex","_frames","loopCount","isFinished","_pauseStartTime","_frameDiff","_frameSkip","onUpdate","_timeLastFrame","_timeNextFrame","updateCurrentFrame","onAnimationStart$dispatch","useLocalFrameIndex","frameIndex","dispatchComplete","onAnimationComplete$dispatch","onAnimationLoop$dispatch","signalUpdate","fromPlay","generateFrameNames","suffix","zeroPad","rotated","rotationDirection","spriteSourceSizeW","spriteSourceSizeH","setTrim","actualWidth","actualHeight","destX","destY","destWidth","destHeight","getRect","_frameNames","getFrameRange","AnimationParser","spriteSheet","frameMax","spacing","column","JSONData","json","newFrame","filename","sourceSize","spriteSourceSize","JSONDataHash","XMLData","xml","getElementsByTagName","frameX","frameY","autoResolveURL","_cache","binary","bitmapFont","_urlMap","_urlResolver","_urlTemp","onSoundUnlock","_cacheMap","TEXTURE","SOUND","PHYSICS","BINARY","BITMAPFONT","JSON","XML","SHADER","RENDER_TEXTURE","addDefaultImage","addMissingImage","addCanvas","removeImage","_resolveURL","addSound","audioTag","decoded","isDecoding","touchLocked","addText","addPhysicsData","addTilemap","mapData","addBinary","binaryData","addBitmapFont","atlasData","atlasType","LoaderParser","jsonBitmapFont","xmlBitmapFont","addJSON","addXML","addVideo","isBlob","addShader","addSpriteSheet","addTextureAtlas","TEXTURE_ATLAS_XML_STARLING","reloadSound","getSound","reloadSoundComplete","updateSound","decodedSound","isSoundDecoded","isSoundReady","checkKey","checkURL","checkCanvasKey","checkTextureKey","checkSoundKey","checkTextKey","checkPhysicsKey","checkTilemapKey","checkBinaryKey","checkBitmapDataKey","checkBitmapFontKey","checkJSONKey","checkXMLKey","checkVideoKey","checkShaderKey","checkRenderTextureKey","full","getTextureFrame","getSoundData","getText","getPhysicsData","fixtureKey","fixtures","fixture","getTilemapData","getBinary","getBitmapData","getJSON","getXML","getVideo","getShader","getRenderTexture","getBaseTexture","getFrameCount","getFrameByIndex","getPixiTexture","getPixiBaseTexture","getURL","getKeys","removeCanvas","removeFromPixi","removeSound","removeText","removePhysics","removeTilemap","removeBinary","removeBitmapData","removeBitmapFont","removeJSON","removeXML","removeVideo","removeShader","removeRenderTexture","removeSpriteSheet","removeTextureAtlas","atlas","baseURL","isLoading","preloadSprite","onLoadStart","onLoadComplete","onPackComplete","onFileStart","onFileComplete","onFileError","useXDomainRequest","_warnedAboutXDomainRequest","enableParallel","maxParallelDownloads","_withSyncPointDepth","_fileList","_flightQueue","_processingHead","_fileLoadStarted","_totalPackCount","_totalFileCount","_loadedPackCount","_loadedFileCount","TEXTURE_ATLAS_JSON_ARRAY","TEXTURE_ATLAS_JSON_HASH","PHYSICS_LIME_CORONA_JSON","PHYSICS_PHASER_JSON","setPreloadSprite","checkKeyExists","getAssetIndex","bestFound","loaded","loading","getAsset","fileIndex","addToFileList","overwrite","extension","syncPoint","currentFile","replaceInFileList","pack","script","spritesheet","urls","autoDecode","noAudio","audiosprite","jsonURL","jsonData","loadEvent","asBlob","CSV","TILED_JSON","LIME_CORONA_JSON","textureURL","atlasURL","parseXml","atlasJSONArray","atlasJSONHash","atlasXML","withSyncPoint","addSyncPoint","asset","removeFile","updateProgress","processLoadQueue","finishedLoading","requestUrl","requestObject","progress","syncblock","inflightLimit","processPack","loadFile","abnormal","asyncComplete","errorMessage","packData","transformUrl","xhrLoad","fileComplete","loadImageTag","getAudioURL","usingWebAudio","usingAudioTag","loadAudioTag","fileError","getVideoURL","loadVideoTag","jsonLoadComplete","xmlLoadComplete","csvLoadComplete","onload","onerror","controls","autoplay","videoLoadEvent","canplay","Audio","playThroughEvent","XDomainRequest","xhrLoadWithXDR","xhr","XMLHttpRequest","open","responseType","message","send","timeout","ontimeout","onprogress","videoType","uri","lastIndexOf","audioType","reason","loadNext","responseText","Blob","response","decode","language","defer","head","contentType","domparser","DOMParser","parseFromString","ActiveXObject","async","loadXML","totalLoadedFiles","totalLoadedPacks","progressFloat","info","common","getAttribute","letters","kernings","second","finalizeBitmapFont","_face","_lineHeight","_id","_xoffset","_yoffset","_xadvance","_second","_first","_amount","bitmapFontData","autoplayKey","sounds","spritemap","addMarker","connectToMaster","markers","totalDuration","currentTime","durationMS","stopTime","pausedPosition","pausedTime","currentMarker","fadeTween","pendingPlayback","override","allowMultiple","externalNode","masterGainNode","gainNode","_sound","masterGain","createGain","createGainNode","gain","soundHasUnlocked","onDecoded","onPlay","onStop","onMute","onMarkerComplete","onFadeComplete","_volume","_buffer","_muted","_tempMarker","_tempPosition","_tempVolume","_muteVolume","_tempLoop","_onDecodedEventDispatched","removeMarker","onEndedHandler","isDecoded","loopFull","forceRestart","noteOff","createBufferSource","onended","noteGrainOn","muted","prevMarker","fadeIn","fadeTo","fadeOut","fadeComplete","mute","onSoundDecode","onVolumeChange","onUnMute","channels","_codeMuted","_unlockSource","_sounds","_watchList","_watching","_watchCallback","_watchContext","disableAudio","disableWebAudio","audioContext","fakeiOSTouchLock","setTouchLock","unlock","noteOn","stopAll","soundData","decodeAudioData","setDecodedCallback","files","playbackState","PLAYING_STATE","FINISHED_STATE","removeByKey","columnWidth","renderShadow","currentAlpha","currentColor","soundInfo","cameraInfo","hideIfUp","downColor","upColor","worldX","worldY","spriteInputInfo","justDown","justUp","inputInfo","spriteBounds","filled","rectangle","ropeSegments","self","segment","spriteInfo","spriteCoords","lineInfo","forceType","quadTree","quadtree","Body","NINJA","Ninja","BOX2D","Box2D","renderBody","bodyInfo","renderBodyInfo","box2d","box2dWorld","renderDebugDraw","box2dBody","getByKey","randomIndex","removeRandomItem","shuffle","transposeMatrix","sourceRowCount","sourceColCount","rotateMatrix","findClosest","arr","NaN","low","high","POSITIVE_INFINITY","numberArray","numberArrayStep","rgba","RGBtoHSL","RGBtoHSV","fromRGBA","toRGBA","q","hueToColor","updateColor","HSVtoRGB","color32","getColor32","componentToHex","hexToRGB","hexToColor","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","blendNormal","blendAverage","blendSubtract","blendNegation","blendLinearDodge","blendLinearBurn","blendLinearLight","blendVividLight","blendPinLight","blendHardMix","blendReflect","blendGlow","blendPhoenix","LinkedList","entity","arcade","ninja","chipmunk","matter","CHIPMUNK","MATTERJS","P2","Matter","startSystem","system","enableAABB","gravity","checkCollision","OVERLAP_BIAS","forceX","sortDirection","LEFT_RIGHT","skipQuadTree","_total","SORT_NONE","RIGHT_LEFT","TOP_BOTTOM","BOTTOM_TOP","updateMotion","velocityDelta","computeVelocity","angularVelocity","angularAcceleration","angularDrag","maxAngular","velocity","acceleration","drag","maxVelocity","allowGravity","object1","object2","overlapCallback","processCallback","collideHandler","collide","collideCallback","sortLeftRight","sortRightLeft","sortTopBottom","sortBottomTop","overlapOnly","collideGroupVsSelf","collideSpriteVsSprite","collideSpriteVsGroup","collideSpriteVsTilemapLayer","collideGroupVsGroup","collideGroupVsTilemapLayer","sprite1","sprite2","separate","items","group1","group2","body1","body2","separateX","separateY","immovable","maxOverlap","deltaAbsX","embedded","touching","none","overlapX","customSeparateX","bounce","moves","friction","nv1","mass","nv2","avg","deltaAbsY","overlapY","customSeparateY","getObjectsUnderPointer","getObjectsAtLocation","callbackArg","moveToObject","maxTime","distanceBetween","moveToPointer","angleToPointer","distanceToPointer","moveToXY","distanceToXY","velocityFromAngle","velocityFromRotation","accelerationFromRotation","accelerateToObject","xSpeedMax","ySpeedMax","accelerateToPointer","accelerateToXY","angleToXY","allowRotation","preRotation","newVelocity","deltaMax","facing","collideWorldBounds","any","wasTouching","blocked","tilePadding","syncBounds","_sx","_sy","updateBounds","asx","asy","check","onFloor","onWall","TilemapCollision","TILE_BIAS","tilemapLayer","getTiles","separateTile","tile","collisionCallback","collisionCallbackContext","faceLeft","faceRight","faceTop","faceBottom","tileCheckX","tileCheckY","collideRight","collideLeft","processTileSeparationX","collideDown","collideUp","processTileSeparationY","global","_dereq_","Scalar","lineInt","l1","l2","precision","det","eq","segmentsIntersect","q1","q2","da","db","./Scalar","leftOn","rightOn","tmpPoint1","tmpPoint2","collinear","thresholdAngle","bc","magA","magB","acos","sqdist","getIntersectionPoint","at","poly","makeCCW","br","tmp","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","./Polygon","version","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","AABB","lowerBound","vec2","upperBound","setFromPoints","skinSize","cosAngle","sinAngle","overlaps","overlapsRay","ray","dirFracX","dirFracY","t1","t4","tmin","tmax","../math/vec2","../utils/Utils","Broadphase","boundingVolumeType","BOUNDING_CIRCLE","setWorld","getCollisionPairs","boundingRadiusCheck","bodyA","bodyB","sub","d2","squaredLength","boundingRadius","aabbCheck","getAABB","boundingVolumeCheck","canCollide","KINEMATIC","STATIC","sleepState","SLEEPING","NAIVE","SAP","../objects/Body","NaiveBroadphase","bodies","Ncolliding","bi","bj","aabbQuery","aabbNeedsUpdate","updateAABB","../collision/Broadphase","../shapes/Circle","../shapes/Particle","../shapes/Plane","../shapes/Shape",10,"Narrowphase","contactEquations","frictionEquations","enableFriction","enabledEquations","slipForce","frictionCoefficient","surfaceVelocity","contactEquationPool","ContactEquationPool","frictionEquationPool","FrictionEquationPool","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","Convex","Shape","Box","yAxis","fromValues","tmp3","tmp4","tmp5","tmp6","tmp7","tmp8","tmp9","tmp10","tmp11","tmp12","tmp13","tmp14","tmp15","tmp16","tmp17","tmp18","tmpArray","bodiesOverlap_shapePositionA","bodiesOverlap_shapePositionB","bodiesOverlap","shapePositionA","shapePositionB","Nshapesi","shapes","shapeA","toWorldFrame","Nshapesj","shapeB","collidedLastStep","id1","id2","eqs","ce","fe","release","createContactEquation","firstImpact","createFrictionEquation","setSlipForce","relativeVelocity","createFrictionFromContact","contactPointA","contactPointB","rotate90cw","normalA","createFrictionFromAverage","numContacts","invNumContacts","CONVEX","convexLine","convexBody","lineBody","lineShape","lineOffset","lineAngle","justTest","BOX","lineBox","boxBody","boxShape","boxOffset","boxAngle","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","xi","ai","sj","xj","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","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","heights","elementWidth","minCandidateNormal","idxA","idxB","convexHeightfield_v0","convexHeightfield_v1","convexHeightfield_tilePos","convexHeightfield_tempConvexShape","convexHeightfield","convexPos","tilePos","tileConvex","../equations/ContactEquation","../equations/Equation","../equations/FrictionEquation","../shapes/Box","../shapes/Convex","../utils/ContactEquationPool","../utils/FrictionEquationPool","../utils/TupleDictionary",11,"Ray","checkCollisionResponse","skipBackfaces","collisionMask","collisionGroup","ANY","distanceFromIntersectionSquared","intersect","squaredDistance","CLOSEST","ALL","intersectBodies","shouldStop","intersectBody","intersectBody_worldPosition","collisionResponse","worldAngle","intersectShape","_currentBody","_currentShape","raycast","reportIntersection","fraction","faceIndex","hasHit","../collision/AABB","../collision/RaycastResult",12,"RaycastResult","isStopped","getHitDistance","getHitPoint","lerp","../collision/Ray",13,"SAPBroadphase","axisList","axisIndex","that","_addBodyHandler","_removeBodyHandler","appendArray","off","on","sortAxisList","sortList",14,"Constraint","defaults","collideConnected","wakeUpBodies","equations","wakeUp","DISTANCE","GEAR","LOCK","PRISMATIC","REVOLUTE","setStiffness","setRelaxation",15,"DistanceConstraint","localAnchorA","localAnchorB","worldAnchorA","worldAnchorB","maxForce","ri","rj","computeGq","setMaxForce","upperLimitEnabled","upperLimit","lowerLimitEnabled","lowerLimit","normalEquation","violating","minForce","rixn","rjxn","getMaxForce","./Constraint",16,"GearConstraint","AngleLockEquation","maxTorque","setMaxTorque","setRatio","torque","getMaxTorque","../equations/AngleLockEquation",17,"LockConstraint","localAngleB","rot","localOffsetB","xAxis",18,"PrismaticConstraint","localAxisA","trans","gg","updateJacobian","disableRotationalLock","RotationalLockEquation","upperLimitEquation","ContactEquation","lowerLimitEquation","motorEquation","motorEnabled","motorSpeed","computeGW","vj","wi","wj","gmult","worldAxisA","orientedAnchorA","orientedAnchorB","relPosition","enableMotor","disableMotor","setLimits","lower","upper","../equations/RotationalLockEquation",19,"RevoluteConstraint","pivotA","pivotB","worldPivot","localPivotA","localPivotB","worldPivotA","worldPivotB","RotationalVelocityEquation","relAngle","motorIsEnabled","setMotorSpeed","getMotorSpeed","../equations/RotationalVelocityEquation",20,"./Equation",21,"computeB","GW","Gq","GiMf","computeGiMf",22,"ARRAY_TYPE","qi","qj","computeGWlambda","vlambda","wlambda","iMfi","iMfj","fi","ti","angularForce","fj","tj","invMassi","invMassSolve","invMassj","invIi","invInertiaSolve","invIj","massMultiplier","computeGiMGt","addToWlambda_temp","addToWlambda_Gi","addToWlambda_Gj","addToWlambda","deltalambda","Gi","Gj","computeInvC","eps",23,"FrictionEquation","getSlipForce",24,"worldVectorA","worldVectorB",25,26,"EventEmitter","_listeners","listeners","emit","listenerArray",27,"ContactMaterial","materialA","materialB","Material","idCounter","./Material",28,29,"GetArea",30,"crossVZ","vec","zcomp","crossZV","toLocalFrame","framePosition","frameAngle","toGlobalFrame","vectorToLocalFrame","worldVector","vectorToGlobalFrame","localVector","mul","div","sqrDist","sqrLen","negate","vector","getLineSegmentsIntersection","getLineSegmentsIntersectionFraction","s1_x","s1_y","s2_x","s2_y",31,"_idCounter","invMass","inertia","invInertia","fixedRotation","fixedX","fixedY","interpolatedPosition","interpolatedAngle","previousAngle","damping","angularDamping","DYNAMIC","allowSleep","wantsToSleep","AWAKE","sleepSpeedLimit","sleepTimeLimit","gravityScale","idleTime","timeLastSleepy","ccdSpeedThreshold","ccdIterations","concavePath","_wakeUpAfterNarrowphase","updateMassProperties","updateSolveMassProperties","setDensity","density","totalArea","getArea","shapeAABB","bodyAngle","computeAABB","updateBoundingRadius","addShape","removeShape","Icm","computeMomentOfInertia","applyForce","relativePoint","rotForce","Body_applyForce_forceWorld","Body_applyForce_pointWorld","Body_applyForce_pointLocal","applyForceLocal","localForce","worldForce","vectorToWorldFrame","Body_applyImpulse_velo","applyImpulse","impulseVector","velo","rotVelo","Body_applyImpulse_impulseWorld","Body_applyImpulse_pointWorld","Body_applyImpulse_pointLocal","applyImpulseLocal","localImpulse","worldImpulse","fromPolygon","convexes","optimalDecomp","cm","centerOfMass","updateTriangles","updateCenterOfMass","adjustCenterOfMass","adjustCenterOfMass_tmp2","adjustCenterOfMass_tmp3","adjustCenterOfMass_tmp4","offset_times_area","setZeroForce","resetConstraintVelocity","addConstraintVelocity","applyDamping","wakeUpEvent","sleep","sleepEvent","sleepTick","dontSleep","speedSquared","speedLimitSquared","SLEEPY","overlapKeeper","bodiesAreOverlapping","integrate_fhMinv","integrate_velodt","integrate","minv","integrateToTimeOfImpact","startToEnd","rememberPosition","hit","startToEndAngle","timeOfImpact","rememberAngle","iter","tmid","narrowphase","getVelocityAtPoint","sleepyEvent","../events/EventEmitter",32,"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",33,"RotationalSpring","restAngle",34,35,"TopDownVehicle","chassisBody","wheels","groundBody","preStepCallback","WheelConstraint","vehicle","forwardEquation","sideEquation","steerValue","engineForce","setSideFriction","sideFriction","localForwardVector","localPosition","setBrakeForce","addBody","wheel","addConstraint","removeBody","removeConstraint","addWheel","wheelOptions","worldVelocity","getSpeed","tmpVec","../constraints/Constraint",36,"Capsule","GSSolver","Heightfield","Plane","Pool","Solver","../package.json","./collision/AABB","./collision/Broadphase","./collision/NaiveBroadphase","./collision/Narrowphase","./collision/Ray","./collision/RaycastResult","./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","./objects/TopDownVehicle","./shapes/Box","./shapes/Capsule","./shapes/Circle","./shapes/Convex","./shapes/Heightfield","./shapes/Line","./shapes/Particle","./shapes/Plane","./shapes/Shape","./solver/GSSolver","./solver/Solver","./utils/ContactEquationPool","./utils/FrictionEquationPool","./utils/Pool","./utils/Utils","./world/World",37,"updateArea","./Convex","./Shape",38,"intersectCapsule_hitPointWorld","intersectCapsule_normal","intersectCapsule_l0","intersectCapsule_l1","intersectCapsule_unit_y","hitPointWorld","l0","halfLen","diagonalLengthSquared","sqrtDelta","inv2a",39,"Ray_intersectSphere_intersectionPoint","Ray_intersectSphere_normal","intersectionPoint",40,"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","intersectConvex_rayStart","intersectConvex_rayEnd","intersectConvex_normal","rayStart","rayEnd","../math/polyk",41,"maxValue","minValue","updateMaxMinValues","getLineSegment","getSegmentIndex","getClampedSegmentIndex","intersectHeightfield_worldNormal","intersectHeightfield_l0","intersectHeightfield_l1","intersectHeightfield_localFrom","intersectHeightfield_localTo","localFrom","localTo",42,"raycast_normal","raycast_l0","raycast_l1","raycast_unit_y",43,44,"intersectPlane_planePointToFrom","intersectPlane_normal","intersectPlane_len","planePointToFrom","planeToFrom","planeToTo","n_dot_dir",45,"material","sensor",46,"GS","iterations","arrayStep","lambda","Bs","invCs","useZeroRHS","frictionIterations","usedIterations","setArrayZero","solve","sortEquations","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,"equation","./Pool",49,50,"IslandNodePool","IslandNode","../world/IslandNode",51,"IslandPool","Island","../world/Island",52,"OverlapKeeper","overlappingShapesLastState","overlappingShapesCurrentState","recordPool","OverlapKeeperRecordPool","tmpDict","tmpArray1","lastObject","setOverlapping","getNewOverlaps","getDiff","getEndOverlaps","dictA","dictB","lastData","isNewOverlap","idA","idB","getNewBodyOverlaps","getBodyDiff","getEndBodyOverlaps","accumulator","./OverlapKeeperRecord","./OverlapKeeperRecordPool","./TupleDictionary","./Utils",53,"OverlapKeeperRecord",54,"record",55,56,"getKey","dict",57,"howmany","P2_ARRAY_TYPE",58,"bodyIds",59,"IslandManager","nodePool","islandPool","islands","queue","getUnvisitedNode","Nnodes","visited","visit","bds","Neqs","bfs","neighbors","ni","nj","./../utils/IslandNodePool","./../utils/IslandPool","./Island","./IslandNode",60,61,"springs","disabledBodyCollisionPairs","solver","islandManager","frictionGravity","useWorldGravityAsFrictionGravity","useFrictionGravityOnZeroGravity","broadphase","constraints","defaultMaterial","defaultContactMaterial","lastTimeStep","applySpringForces","applyGravity","solveConstraints","contactMaterials","bodiesToBeRemoved","islandSplit","emitImpactEvent","_constraintIdCounter","_bodyIdCounter","postStepEvent","addBodyEvent","removeBodyEvent","addSpringEvent","spring","impactEvent","contactEquation","postBroadphaseEvent","pairs","sleepMode","NO_SLEEPING","beginContactEvent","endContactEvent","preSolveEvent","BODY_SLEEPING","ISLAND_SLEEPING","constraint","addContactMaterial","contactMaterial","removeContactMaterial","getContactMaterial","cmats","step_mg","xiw","xjw","timeSinceLastCalled","maxSubSteps","internalStep","substeps","endOverlaps","Nsprings","np","mg","gravityLen","ignoredPairs","Nconstraints","Nresults","runNarrowphase","ev","glen","aiw","ajw","reducedMass","resolver","numFrictionBefore","numFrictionEquations","speedSquaredB","speedLimitSquaredB","speedSquaredA","speedLimitSquaredA","addSpring","evt","removeSpring","getBodyById","disableBodyCollision","enableBodyCollision","cs","cms","hitTest_tmp1","hitTest_tmp2","pb","ps","pa","NS","setGlobalStiffness","setGlobalRelaxation","tmpAABB","../../package.json","../collision/Narrowphase","../collision/SAPBroadphase","../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","_boundsLeft","_boundsRight","_boundsTop","_boundsBottom","_boundsOwnGroup","removeBodyNextStep","setImpactEvents","impactHandler","setPostBroadphaseCallback","postBroadphaseHandler","_bodyCallbacks","_bodyCallbackContext","_groupCallbacks","_groupCallbackContext","setCollisionGroup","setWorldMaterial","updateBoundsCollisionGroup","fixedStepTime","impactCallback","createDistanceConstraint","getBody","createGearConstraint","createRevoluteConstraint","createLockConstraint","createPrismaticConstraint","lockRotation","anchorA","anchorB","setMaterial","createMaterial","createContactMaterial","getSprings","getConstraints","filterStatic","physicsPosition","query","toJSON","createCollisionGroup","bitmask","createSpring","worldA","worldB","localA","localB","createRotationalSpring","createBody","addPolygon","createParticle","convertCollisionObjects","map","collision","polyline","clearTilemapLayerBodies","getLayer","convertTilemap","optimize","collides","getTileRight","addRectangle","FixtureList","rawList","namedFixtures","groupedFixtures","allFixtures","setCategory","bit","setter","getFixtures","setMask","setSensor","getFixtureByKey","getGroup","groupID","_ref","_results","callee","PointProxy","collidesWith","removeNextStep","debugBody","_collideWorldBounds","setRectangleFromSprite","createBodyCallback","createGroupCallback","getCollisionMask","updateCollisionMask","clearCollision","clearGroup","clearMask","shapeChanged","impulse","localX","localY","setZeroRotation","setZeroVelocity","setZeroDamping","rotateLeft","rotateRight","moveForward","moveBackward","thrust","moveLeft","moveRight","updateSpriteTransform","resetDamping","resetMass","clearShapes","addCircle","addPlane","addParticle","addLine","addCapsule","setCircle","setRectangle","addPhaserPolygon","createdFixtures","fixtureData","shapesOfFixture","addFixture","generatedShapes","categoryBits","maskBits","isSensor","polygons","loadPolygon","BodyDebug","settings","defaultSettings","pixelsPerLengthUnit","debugPolygons","ppu","lw","vrot","_j","_ref1","randomPastelHex","drawCapsule","drawPlane","drawLine","drawRectangle","drawConvex","drawPath","lastx","lasty","diagMargin","diagSize","maxLength","xd","yd","mix","rgbToHex","ImageCollection","firstgid","imageWidth","imageHeight","imageMargin","imageSpacing","images","containsImageIndex","imageIndex","gid","Tile","flipped","scanned","setCollisionCallback","setCollision","resetCollision","isInteresting","faces","TilemapParser","widthInPixels","heightInPixels","tilesets","imagecollections","tiles","collideIndexes","currentLayer","debugMap","_tempA","NORTH","EAST","SOUTH","WEST","setTileSize","createBlankLayer","addTilesetImage","tileset","tileMargin","tileSpacing","getTilesetIndex","setImage","newSet","Tileset","countX","countY","columns","rows","createFromObjects","CustomClass","adjustY","createFromTiles","replacements","customClass","lh","createLayer","getLayerIndex","TilemapLayer","indexes","getImageIndex","getObjectIndex","setTileIndexCallback","setTileLocationCallback","recalculate","setCollisionByIndex","calculateFaces","setCollisionBetween","setCollisionByExclusion","setPreventRecalculate","preventingRecalculate","needToRecalculate","above","below","getTileAbove","getTileBelow","getTileLeft","setLayer","hasTile","removeTile","removeTileWorldXY","putTile","putTileWorldXY","searchTileIndex","skip","getTile","nonNull","getTileWorldXY","paste","tileblock","tileA","tileB","swapHandler","removeAllLayers","dump","txt","renderSettings","enableScrollDelta","overdrawRatio","copyCanvas","debugSettings","missingImageFill","debuggedTileOverfill","forceFullRedraw","debugAlpha","facingEdgeStroke","collidingTileOverfill","scrollFactorX","scrollFactorY","rayStepRate","_wrap","_mc","renderWidth","renderHeight","_scrollX","_scrollY","ensureSharedCopyCanvas","sharedCopyCanvas","resizeWorld","_fixX","_unfixX","_fixY","_unfixY","getTileX","getTileY","getTileXY","getRayCastTiles","interestingFace","coord","fetchAll","wy","wx","resolveTileset","tileIndex","setIndex","containsTileIndex","resetTilesetCache","setScale","xScale","yScale","shiftCanvas","copyW","copyH","copyContext","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","flippedVal","tileproperties","tileProperties","updateTileData","imagewidth","imageheight","newCollection","polygon","ellipse","sid","drawCoords","coordIndex","setSpacing","rowCount","colCount","emitters","ID","minParticleSpeed","maxParticleSpeed","minParticleScale","maxParticleScale","minRotation","maxRotation","minParticleAlpha","maxParticleAlpha","particleClass","particleDrag","particleAnchor","emitX","emitY","particleBringToTop","particleSendToBack","_minParticleScale","_maxParticleScale","_quantity","_timer","_counter","_flowQuantity","_flowTotal","_explode","emitParticle","makeParticles","particle","rndKey","rndFrame","explode","flow","forceQuantity","setXSpeed","setYSpeed","setRotation","setAlpha","rate","tweenData","onAccess","onError","onTimeout","videoStream","isStreaming","retryLimit","retry","retryInterval","_retryID","_pending","_autoplay","_video","createVideoFromBlob","videoWidth","videoHeight","createVideoFromURL","snapshot","connectToMediaStream","stream","startMediaStream","captureAudio","removeVideoElement","setAttribute","getUserMediaTimeout","getUserMediaSuccess","getUserMediaError","mozSrcObject","createObjectURL","onloadeddata","checkStream","checkVideoProgress","change","playbackRate","setPause","setResume","playHandler","playing","ended","changeSource","grab","hasChildNodes","firstChild","removeAttribute"],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"phaser.min.js","sources":["phaser.js"],"names":["e","exports","module","f","window","global","self","p2","t","n","r","s","o","u","a","require","i","Error","call","length",1,"_dereq_","Line","Scalar","lineInt","l1","l2","precision","a1","b1","c1","a2","b2","c2","det","eq","segmentsIntersect","p1","q1","q2","dx","dy","da","db","./Scalar",2,"Point","area","b","c","left","leftOn","right","rightOn","tmpPoint1","tmpPoint2","collinear","thresholdAngle","ab","bc","dot","magA","Math","sqrt","magB","angle","acos","sqdist",3,"Polygon","this","vertices","getIntersectionPoint","delta","prototype","at","v","first","last","clear","append","poly","from","to","push","makeCCW","br","reverse","tmp","N","pop","isReflex","tmpLine1","tmpLine2","canSee","p","dist","copy","j","targetPoly","k","getCutEdges","min","tmp1","tmp2","tmpPoly","nDiags","Number","MAX_VALUE","decomp","edges","slice","cutEdges","Array","polys","cutEdge","result","splice","indexOf","isSimple","path","quickDecomp","reflexVertices","steinerPoints","maxlevel","level","upperInt","lowerInt","upperDist","lowerDist","d","closestDist","upperIndex","lowerIndex","closestIndex","lowerPoly","upperPoly","console","warn","removeCollinearPoints","num","./Line","./Point",4,"abs",5,"./Polygon",6,"name","version","description","author","keywords","main","engines","node","repository","type","url","bugs","licenses","devDependencies","grunt","grunt-contrib-jshint","grunt-contrib-nodeunit","grunt-contrib-uglify","grunt-contrib-watch","grunt-browserify","grunt-contrib-concat","dependencies","poly-decomp",7,"AABB","options","lowerBound","vec2","create","upperBound","setFromPoints","points","position","skinSize","l","rotate","cosAngle","cos","sinAngle","sin","x","y","add","aabb","extend","overlaps","u1","u2","containsPoint","point","overlapsRay","ray","dirFracX","direction","dirFracY","t1","t2","t3","t4","tmin","max","tmax","../math/vec2","../utils/Utils",8,"Broadphase","world","boundingVolumeType","Body","BOUNDING_CIRCLE","setWorld","getCollisionPairs","boundingRadiusCheck","bodyA","bodyB","sub","d2","squaredLength","boundingRadius","aabbCheck","getAABB","boundingVolumeCheck","canCollide","KINEMATIC","STATIC","sleepState","SLEEPING","NAIVE","SAP","../objects/Body",9,"NaiveBroadphase","constructor","bodies","Ncolliding","bi","bj","aabbQuery","aabbNeedsUpdate","updateAABB","../collision/Broadphase","../shapes/Circle","../shapes/Particle","../shapes/Plane","../shapes/Shape",10,"Narrowphase","contactEquations","frictionEquations","enableFriction","enabledEquations","slipForce","frictionCoefficient","surfaceVelocity","contactEquationPool","ContactEquationPool","size","frictionEquationPool","FrictionEquationPool","restitution","stiffness","Equation","DEFAULT_STIFFNESS","relaxation","DEFAULT_RELAXATION","frictionStiffness","frictionRelaxation","enableFrictionReduction","collidingBodiesLastStep","TupleDictionary","contactSkinSize","setConvexToCapsuleShapeMiddle","convexShape","capsuleShape","set","radius","pointInConvex","worldPoint","convexOffset","convexAngle","worldVertex0","pic_worldVertex0","worldVertex1","pic_worldVertex1","r0","pic_r0","r1","pic_r1","verts","lastCross","v0","v1","cross","crossLength","Circle","Convex","Shape","Box","yAxis","fromValues","tmp3","tmp4","tmp5","tmp6","tmp7","tmp8","tmp9","tmp10","tmp11","tmp12","tmp13","tmp14","tmp15","tmp16","tmp17","tmp18","tmpArray","bodiesOverlap_shapePositionA","bodiesOverlap_shapePositionB","bodiesOverlap","shapePositionA","shapePositionB","Nshapesi","shapes","shapeA","toWorldFrame","Nshapesj","shapeB","collidedLastStep","id1","id","id2","get","reset","eqs","ce","fe","release","createContactEquation","firstImpact","needsUpdate","enabled","offset","createFrictionEquation","setSlipForce","relativeVelocity","createFrictionFromContact","contactPointA","contactPointB","rotate90cw","normalA","createFrictionFromAverage","numContacts","invNumContacts","scale","normalize","LINE","CONVEX","convexLine","convexBody","lineBody","lineShape","lineOffset","lineAngle","justTest","BOX","lineBox","boxBody","boxShape","boxOffset","boxAngle","convexCapsule_tempRect","width","height","convexCapsule_tempVec","CAPSULE","convexCapsule","convexPosition","capsuleBody","capsulePosition","capsuleAngle","circlePos","result1","circleConvex","result2","convexConvex","lineCapsule","linePosition","capsuleCapsule_tempVec1","capsuleCapsule_tempVec2","capsuleCapsule_tempRect1","capsuleCapsule","si","xi","ai","sj","xj","aj","enableFrictionBefore","circlePosi","circlePosj","circleCircle","rect","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","pos","pos0","pos1","pow","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","circle","numContacts1","circlePlane","numContacts2","numTotal","planeToCircle","temp","contact","sepAxis","worldPoint0","worldPoint1","penetrationVec","findSeparatingAxis","closestEdge1","getClosestEdge","closestEdge2","closestEdgeA","closestEdgeB","insideNumEdges","pcoa_tmp1","projectConvexOntoAxis","worldAxis","value","localAxis","fsa_tmp1","fsa_tmp2","fsa_tmp3","fsa_tmp4","fsa_tmp5","fsa_tmp6","offset1","angle1","offset2","angle2","maxDist","overlap","edge","normal","span1","span2","swapped","gce_tmp1","gce_tmp2","gce_tmp3","axis","flip","closestEdge","maxDot","circleHeightfield_candidate","circleHeightfield_dist","circleHeightfield_v0","circleHeightfield_v1","circleHeightfield_minCandidate","circleHeightfield_worldNormal","circleHeightfield_minCandidateNormal","HEIGHTFIELD","circleHeightfield","hfBody","hfShape","hfPos","hfAngle","data","heights","w","elementWidth","minCandidateNormal","idxA","floor","idxB","ceil","PI","convexHeightfield_v0","convexHeightfield_v1","convexHeightfield_tilePos","convexHeightfield_tempConvexShape","convexHeightfield","convexPos","tilePos","tileConvex","tileHeight","../equations/ContactEquation","../equations/Equation","../equations/FrictionEquation","../shapes/Box","../shapes/Convex","../utils/ContactEquationPool","../utils/FrictionEquationPool","../utils/TupleDictionary",11,"Ray","checkCollisionResponse","undefined","skipBackfaces","collisionMask","collisionGroup","mode","ANY","callback","update","distanceFromIntersectionSquared","intersect","squaredDistance","CLOSEST","ALL","intersectBodies","shouldStop","body","intersectBody","intersectBody_worldPosition","collisionResponse","worldPosition","shape","worldAngle","intersectShape","distance","_currentBody","_currentShape","raycast","reportIntersection","fraction","faceIndex","hasHit","../collision/AABB","../collision/RaycastResult",12,"RaycastResult","isStopped","getHitDistance","getHitPoint","out","lerp","stop","../collision/Ray",13,"SAPBroadphase","axisList","axisIndex","that","_addBodyHandler","_removeBodyHandler","idx","Utils","appendArray","off","on","sortAxisList","sortList",14,"Constraint","defaults","collideConnected","wakeUpBodies","equations","wakeUp","DISTANCE","GEAR","LOCK","PRISMATIC","REVOLUTE","setStiffness","setRelaxation",15,"DistanceConstraint","localAnchorA","localAnchorB","worldAnchorA","worldAnchorB","maxForce","ri","rj","computeGq","setMaxForce","upperLimitEnabled","upperLimit","lowerLimitEnabled","lowerLimit","normalEquation","G","violating","minForce","rixn","rjxn","getMaxForce","./Constraint",16,"GearConstraint","ratio","AngleLockEquation","maxTorque","setMaxTorque","setRatio","torque","getMaxTorque","../equations/AngleLockEquation",17,"LockConstraint","localAngleB","rot","g","localOffsetB","force","xAxis",18,"PrismaticConstraint","localAxisA","trans","gg","updateJacobian","disableRotationalLock","RotationalLockEquation","velocity","upperLimitEquation","ContactEquation","lowerLimitEquation","motorEquation","motorEnabled","motorSpeed","computeGW","vi","vj","wi","angularVelocity","wj","gmult","worldAxisA","orientedAnchorA","orientedAnchorB","relPosition","enableMotor","disableMotor","setLimits","lower","upper","../equations/RotationalLockEquation",19,"RevoluteConstraint","pivotA","pivotB","worldPivot","localPivotA","localPivotB","worldPivotA","worldPivotB","RotationalVelocityEquation","relAngle","motorIsEnabled","setMotorSpeed","speed","getMotorSpeed","../equations/RotationalVelocityEquation",20,"./Equation",21,"computeB","h","GW","Gq","GiMf","computeGiMf","B",22,"ARRAY_TYPE","epsilon","timeStep","multiplier","qi","qj","computeGWlambda","vlambda","wlambda","iMfi","iMfj","fi","ti","angularForce","fj","tj","invMassi","invMassSolve","invMassj","invIi","invInertiaSolve","invIj","multiply","massMultiplier","computeGiMGt","addToWlambda_temp","addToWlambda_Gi","addToWlambda_Gj","addToWlambda","deltalambda","Gi","Gj","computeInvC","eps",23,"FrictionEquation","getSlipForce",24,"worldVectorA","worldVectorB",25,26,"EventEmitter","listener","context","_listeners","listeners","has","index","emit","event","listenerArray","target",27,"ContactMaterial","materialA","materialB","Material","idCounter","friction","./Material",28,29,"PolyK","GetArea","sum","Triangulate","tgs","avl","al","i0","i1","i2","ax","ay","bx","by","cx","cy","earFound","_convex","_PointInTriangle","px","py","v0x","v0y","v1x","v1y","v2x","v2y","dot00","dot01","dot02","dot11","dot12","invDenom",30,"crossVZ","vec","zcomp","crossZV","toLocalFrame","framePosition","frameAngle","toGlobalFrame","localPoint","vectorToLocalFrame","worldVector","vectorToGlobalFrame","localVector","centroid","clone","subtract","mul","divide","div","sqrDist","len","sqrLen","negate","str","reflect","vector","getLineSegmentsIntersection","p0","p3","getLineSegmentsIntersectionFraction","s1_x","s1_y","s2_x","s2_y",31,"_idCounter","mass","invMass","inertia","invInertia","fixedRotation","fixedX","fixedY","interpolatedPosition","interpolatedAngle","previousPosition","previousAngle","damping","angularDamping","DYNAMIC","allowSleep","wantsToSleep","AWAKE","sleepSpeedLimit","sleepTimeLimit","gravityScale","idleTime","timeLastSleepy","ccdSpeedThreshold","ccdIterations","concavePath","_wakeUpAfterNarrowphase","updateMassProperties","updateSolveMassProperties","setDensity","density","totalArea","getArea","shapeAABB","bodyAngle","computeAABB","updateBoundingRadius","addShape","removeShape","m","I","r2","Icm","computeMomentOfInertia","applyForce","relativePoint","rotForce","Body_applyForce_forceWorld","Body_applyForce_pointWorld","Body_applyForce_pointLocal","applyForceLocal","localForce","worldForce","vectorToWorldFrame","Body_applyImpulse_velo","applyImpulse","impulseVector","velo","rotVelo","Body_applyImpulse_impulseWorld","Body_applyImpulse_pointWorld","Body_applyImpulse_pointLocal","applyImpulseLocal","localImpulse","worldImpulse","fromPolygon","convexes","optimalDecomp","cm","centerOfMass","updateTriangles","updateCenterOfMass","adjustCenterOfMass","adjustCenterOfMass_tmp2","adjustCenterOfMass_tmp3","adjustCenterOfMass_tmp4","offset_times_area","setZeroForce","resetConstraintVelocity","addConstraintVelocity","applyDamping","dt","wakeUpEvent","sleep","sleepEvent","sleepTick","time","dontSleep","speedSquared","speedLimitSquared","SLEEPY","overlapKeeper","bodiesAreOverlapping","integrate_fhMinv","integrate_velodt","integrate","minv","integrateToTimeOfImpact","end","startToEnd","rememberPosition","hit","startToEndAngle","timeOfImpact","rememberAngle","iter","tmid","narrowphase","getVelocityAtPoint","sleepyEvent","../events/EventEmitter",32,"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",33,"RotationalSpring","restAngle",34,35,"TopDownVehicle","chassisBody","wheels","groundBody","preStepCallback","WheelConstraint","vehicle","forwardEquation","sideEquation","steerValue","engineForce","setSideFriction","sideFriction","localForwardVector","localPosition","apply","setBrakeForce","addToWorld","addBody","wheel","addConstraint","removeFromWorld","removeBody","removeConstraint","addWheel","wheelOptions","worldVelocity","getSpeed","tmpVec","../constraints/Constraint",36,"Capsule","GSSolver","Heightfield","Particle","Plane","Pool","Solver","World","Object","defineProperty","../package.json","./collision/AABB","./collision/Broadphase","./collision/NaiveBroadphase","./collision/Narrowphase","./collision/Ray","./collision/RaycastResult","./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","./objects/TopDownVehicle","./shapes/Box","./shapes/Capsule","./shapes/Circle","./shapes/Convex","./shapes/Heightfield","./shapes/Line","./shapes/Particle","./shapes/Plane","./shapes/Shape","./solver/GSSolver","./solver/Solver","./utils/ContactEquationPool","./utils/FrictionEquationPool","./utils/Pool","./utils/Utils","./world/World",37,"arguments","axes","updateArea","./Convex","./Shape",38,"intersectCapsule_hitPointWorld","intersectCapsule_normal","intersectCapsule_l0","intersectCapsule_l1","intersectCapsule_unit_y","hitPointWorld","l0","halfLen","diagonalLengthSquared","sqrtDelta","inv2a","d1",39,"Ray_intersectSphere_intersectionPoint","Ray_intersectSphere_normal","intersectionPoint",40,"isArray","triangles","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","denom","numer","intersectConvex_rayStart","intersectConvex_rayEnd","intersectConvex_normal","rayStart","rayEnd","../math/polyk",41,"key","maxValue","minValue","updateMaxMinValues","getLineSegment","start","getSegmentIndex","getClampedSegmentIndex","intersectHeightfield_worldNormal","intersectHeightfield_l0","intersectHeightfield_l1","intersectHeightfield_localFrom","intersectHeightfield_localTo","localFrom","localTo",42,"raycast_normal","raycast_l0","raycast_l1","raycast_unit_y",43,44,"intersectPlane_planePointToFrom","intersectPlane_normal","intersectPlane_len","planePointToFrom","planeToFrom","planeToTo","n_dot_dir",45,"material","sensor",46,"GS","iterations","tolerance","arrayStep","lambda","Bs","invCs","useZeroRHS","frictionIterations","usedIterations","setArrayZero","array","solve","sortEquations","maxIter","maxFrictionIter","Neq","tolSquared","Nbodies","deltalambdaTot","iterateEquation","updateMultipliers","invDt","invC","lambdaj","GWlambda","lambdaj_plus_deltalambda","./Solver",47,"equationSortFunction","mockWorld","solveIsland","island","removeAllEquations","addEquations","getBodies","sort","addEquation","removeEquation","ISLAND",48,"destroy","equation","./Pool",49,50,"IslandNodePool","IslandNode","../world/IslandNode",51,"IslandPool","Island","../world/Island",52,"OverlapKeeper","overlappingShapesLastState","overlappingShapesCurrentState","recordPool","OverlapKeeperRecordPool","tmpDict","tmpArray1","tick","current","keys","lastObject","getByKey","setOverlapping","getNewOverlaps","getDiff","getEndOverlaps","dictA","dictB","lastData","isNewOverlap","idA","idB","getNewBodyOverlaps","getBodyDiff","getEndBodyOverlaps","accumulator","./OverlapKeeperRecord","./OverlapKeeperRecordPool","./TupleDictionary","./Utils",53,"OverlapKeeperRecord",54,"record",55,"objects","resize","object",56,"getKey","dict",57,"howmany","P2_ARRAY_TYPE","Float32Array",58,"bodyIds",59,"IslandManager","nodePool","islandPool","islands","nodes","queue","getUnvisitedNode","Nnodes","visited","visit","bds","Neqs","bfs","root","child","neighbors","split","ni","nj","./../utils/IslandNodePool","./../utils/IslandPool","./Island","./IslandNode",60,61,"springs","disabledBodyCollisionPairs","solver","islandManager","gravity","frictionGravity","useWorldGravityAsFrictionGravity","useFrictionGravityOnZeroGravity","broadphase","constraints","defaultMaterial","defaultContactMaterial","lastTimeStep","applySpringForces","applyGravity","solveConstraints","contactMaterials","stepping","bodiesToBeRemoved","islandSplit","emitImpactEvent","_constraintIdCounter","_bodyIdCounter","postStepEvent","addBodyEvent","removeBodyEvent","addSpringEvent","spring","impactEvent","contactEquation","postBroadphaseEvent","pairs","sleepMode","NO_SLEEPING","beginContactEvent","endContactEvent","preSolveEvent","BODY_SLEEPING","ISLAND_SLEEPING","constraint","addContactMaterial","contactMaterial","removeContactMaterial","getContactMaterial","cmats","step_mg","xiw","xjw","step","timeSinceLastCalled","maxSubSteps","internalStep","substeps","endOverlaps","Nsprings","np","mg","gravityLen","ignoredPairs","Nconstraints","Nresults","runNarrowphase","ev","glen","aiw","ajw","reducedMass","resolver","numFrictionBefore","numFrictionEquations","speedSquaredB","speedLimitSquaredB","speedSquaredA","speedLimitSquaredA","addSpring","evt","removeSpring","getBodyById","disableBodyCollision","enableBodyCollision","cs","cms","hitTest_tmp1","hitTest_tmp2","hitTest","pb","ps","pa","NS","setGlobalStiffness","setGlobalRelaxation","tmpAABB","../../package.json","../collision/Narrowphase","../collision/SAPBroadphase","../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","PIXI","WEBGL_RENDERER","CANVAS_RENDERER","VERSION","_UID","Uint16Array","Uint32Array","ArrayBuffer","PI_2","RAD_TO_DEG","DEG_TO_RAD","RETINA_PREFIX","defaultRenderOptions","view","transparent","antialias","preserveDrawingBuffer","resolution","clearBeforeRender","autoResize","DisplayObject","transformCallback","transformCallbackContext","pivot","rotation","alpha","visible","hitArea","renderable","parent","stage","worldAlpha","worldTransform","Matrix","worldScale","worldRotation","_sr","_cr","filterArea","_bounds","Rectangle","_currentBounds","_mask","_cacheAsBitmap","_cacheIsDirty","children","_destroyCachedSprite","item","isMask","_filters","passes","filterPasses","_filterBlock","_generateCachedSprite","updateTransform","game","tx","ty","pt","wt","rotationCache","atan2","displayObjectUpdateTransform","getBounds","matrix","EmptyRectangle","getLocalBounds","identityMatrix","setStageReference","preUpdate","generateTexture","scaleMode","renderer","bounds","renderTexture","RenderTexture","_tempMatrix","render","updateCache","toGlobal","toLocal","applyInverse","_renderCachedSprite","renderSession","_cachedSprite","gl","Sprite","_renderWebGL","_renderCanvas","texture","tempFilters","filters","anchor","DisplayObjectContainer","_width","_height","addChild","addChildAt","removeChild","swapChildren","child2","index1","getChildIndex","index2","setChildIndex","currentIndex","getChildAt","removeChildAt","removeStageReference","removeChildren","beginIndex","endIndex","begin","range","removed","displayObjectContainerUpdateTransform","childBounds","childMaxX","childMaxY","minX","Infinity","minY","maxX","maxY","childVisible","matrixCache","spriteBatch","flush","filterManager","pushFilter","maskManager","pushMask","mask","popMask","popFilter","Texture","emptyTexture","tint","cachedTint","tintedTexture","blendMode","blendModes","NORMAL","shader","baseTexture","hasLoaded","onTextureUpdate","frame","setTexture","valid","w0","w1","h0","h1","x1","y1","x2","y2","x3","y3","x4","y4","crop","currentBlendMode","globalCompositeOperation","blendModesCanvas","globalAlpha","smoothProperty","scaleModes","LINEAR","trim","roundPixels","setTransform","cw","ch","requiresReTint","CanvasTinter","getTintedTexture","drawImage","source","fromFrame","frameId","TextureCache","fromImage","imageId","crossorigin","SpriteBatch","textureThing","ready","initWebGL","fastSpriteBatch","WebGLFastSpriteBatch","setContext","shaderManager","setShader","fastShader","transform","isRotated","childTransform","Stage","backgroundColor","setBackgroundColor","backgroundColorSplit","hex2rgb","hex","toString","substr","backgroundColorString","rgb2hex","rgb","canUseNewCanvasBlendModes","document","pngHead","pngEnd","magenta","Image","src","yellow","canvas","createElement","getContext","getImageData","getNextPowerOfTwo","number","isPowerOfTwo","sign","initDefaultShaders","CompileVertexShader","shaderSrc","_CompileShader","VERTEX_SHADER","CompileFragmentShader","FRAGMENT_SHADER","shaderType","join","createShader","shaderSource","compileShader","getShaderParameter","COMPILE_STATUS","log","getShaderInfoLog","compileProgram","vertexSrc","fragmentSrc","fragmentShader","vertexShader","shaderProgram","createProgram","attachShader","linkProgram","getProgramParameter","LINK_STATUS","PixiShader","program","textureCount","firstRun","dirty","attributes","init","defaultVertexSrc","useProgram","uSampler","getUniformLocation","projectionVector","offsetVector","dimensions","aVertexPosition","getAttribLocation","aTextureCoord","colorAttribute","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","transpose","z","_dirty","instances","updateTexture","deleteProgram","PixiFastShader","uMatrix","aPositionCoord","aScale","aRotation","StripShader","translationMatrix","attribute","PrimitiveShader","tintColor","ComplexPrimitiveShader","color","WebGLGraphics","renderGraphics","graphics","webGLData","projection","primitiveShader","updateGraphics","webGL","_webGL","stencilManager","pushStencil","drawElements","TRIANGLE_FAN","UNSIGNED_SHORT","indices","popStencil","toArray","uniform1f","uniform2f","uniform3fv","bindBuffer","ARRAY_BUFFER","buffer","vertexAttribPointer","FLOAT","ELEMENT_ARRAY_BUFFER","indexBuffer","TRIANGLE_STRIP","lastIndex","clearDirty","graphicsData","graphicsDataPool","Graphics","POLY","closed","fill","switchMode","canDrawUsingSimple","buildPoly","buildComplexPoly","lineWidth","buildLine","RECT","buildRectangle","CIRC","ELIP","buildCircle","RREC","buildRoundedRectangle","upload","WebGLGraphicsData","rectData","fillColor","fillAlpha","vertPos","tempPoints","rrectData","recPoints","concat","quadraticBezierCurve","vecPos","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","pdist","indexCount","indexStart","lineColor","lineAlpha","createBuffer","glPoints","bufferData","STATIC_DRAW","glIndicies","glContexts","WebGLRenderer","defaultRenderer","_contextOptions","premultipliedAlpha","stencil","WebGLShaderManager","WebGLSpriteBatch","WebGLMaskManager","WebGLFilterManager","WebGLStencilManager","blendModeManager","WebGLBlendModeManager","drawCount","initContext","mapBlendModes","glContextId","disable","DEPTH_TEST","CULL_FACE","enable","BLEND","contextLost","__stage","viewport","bindFramebuffer","FRAMEBUFFER","clearColor","COLOR_BUFFER_BIT","renderDisplayObject","displayObject","setBlendMode","style","createTexture","UNPACK_PREMULTIPLY_ALPHA_WEBGL","NEAREST","mipmap","LINEAR_MIPMAP_LINEAR","NEAREST_MIPMAP_NEAREST","generateMipmap","_powerOf2","blendModesWebGL","ONE","ONE_MINUS_SRC_ALPHA","ADD","SRC_ALPHA","DST_ALPHA","MULTIPLY","DST_COLOR","SCREEN","OVERLAY","DARKEN","LIGHTEN","COLOR_DODGE","COLOR_BURN","HARD_LIGHT","SOFT_LIGHT","DIFFERENCE","EXCLUSION","HUE","SATURATION","COLOR","LUMINOSITY","blendModeWebGL","blendFunc","maskData","stencilStack","count","bindGraphics","STENCIL_TEST","STENCIL_BUFFER_BIT","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","positions","colors","lastIndexCount","drawing","currentBatchSize","currentBaseTexture","textures","shaders","sprites","AbstractFilter","vertexBuffer","DYNAMIC_DRAW","sprite","uvs","_uvs","aX","aY","x0","y0","renderTilingSprite","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","sizeX","sizeY","currentFilter","colorBuffer","colorArray","createFramebuffer","DEFAULT","framebufferTexture2D","COLOR_ATTACHMENT0","renderBuffer","createRenderbuffer","bindRenderbuffer","RENDERBUFFER","framebufferRenderbuffer","DEPTH_STENCIL_ATTACHMENT","renderbufferStorage","DEPTH_STENCIL","deleteFramebuffer","deleteTexture","CanvasBuffer","clearRect","CanvasMaskManager","save","cacheAlpha","CanvasGraphics","renderGraphicsMask","clip","restore","tintMethod","tintWithMultiply","fillStyle","fillRect","tintWithPerPixel","rgbValues","pixelData","pixels","canHandleAlpha","putImageData","checkInverseAlpha","s1","s2","canUseMultiply","CanvasRenderer","refresh","navigator","isCocoonJS","screencanvas","removeView","updateGraphicsTint","_fillTint","_lineTint","beginPath","moveTo","lineTo","closePath","strokeStyle","stroke","strokeRect","arc","kappa","ox","oy","xe","ye","xm","ym","bezierCurveTo","rx","ry","maxRadius","quadraticCurveTo","tintR","tintG","tintB","BaseTextureCache","BaseTextureCacheIdGenerator","BaseTexture","complete","naturalWidth","naturalHeight","imageUrl","forceLoaded","_pixiId","unloadFromGPU","updateSourceImage","newSrc","glTexture","image","crossOrigin","fromCanvas","TextureCacheIdGenerator","FrameCache","TextureSilentFail","noFrame","isTiling","requiresUpdate","setFrame","onBaseTextureLoaded","destroyBase","_updateUvs","tw","th","addTextureToCache","removeTextureFromCache","textureBuffer","renderWebGL","renderCanvas","tempMatrix","Phaser","updateBase","identity","translate","realResolution","getImage","getBase64","getCanvas","toDataURL","webGLPixels","Uint8Array","readPixels","tempCanvas","canvasData","Strip","canvasPadding","drawMode","DrawModes","_vertexBuffer","_initWebGL","_renderStrip","_indexBuffer","_uvBuffer","_colorBuffer","_renderCanvasTriangleStrip","_renderCanvasTriangles","_renderCanvasDrawTriangle","index0","textureSource","textureWidth","textureHeight","u0","v2","paddingX","paddingY","centerX","centerY","normX","normY","deltaA","deltaB","deltaC","deltaD","deltaE","deltaF","renderStripFlat","strip","updateFrame","rawX","rawY","Rope","amount","total","nextPoint","perp","perpLength","TilingSprite","textureDebug","canvasBuffer","tilePattern","refreshTexture","frameWidth","frameHeight","generateTilingTexture","createPattern","sessionBlendMode","forcePowerOfTwo","targetWidth","_frame","sourceSizeW","targetHeight","sourceSizeH","trimmed","spriteSourceSizeX","spriteSourceSizeY","define","amd","WheelEventProxy","scaleFactor","deltaMode","_scaleFactor","_deltaMode","originalEvent","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","RECTANGLE","MATRIX","POINT","ROUNDEDRECTANGLE","CREATURE","VIDEO","trunc","Function","bind","thisArg","bound","args","boundArgs","TypeError","F","proto","arg","forEach","fun","CheapArray","assert","getProperty","obj","prop","parts","setProperty","chanceRoll","chance","random","randomChoice","choice1","choice2","parseDimension","dimension","parseInt","innerWidth","innerHeight","pad","dir","padlen","isPlainObject","nodeType","hasOwnProperty","copyIsArray","deep","mixinPrototype","mixin","replace","mixinKeys","childNodes","cloneNode","diameter","_diameter","_radius","circumference","setTo","copyFrom","copyTo","dest","round","output","contains","circumferencePoint","asDegrees","offsetPoint","top","bottom","equals","intersects","degToRad","intersectsRectangle","halfWidth","xDist","halfHeight","yDist","xCornerDist","yCornerDist","xCornerDistSq","yCornerDistSq","maxCornerDistSq","Ellipse","normx","normy","fromSprite","startSprite","endSprite","useCenter","center","fromAngle","line","asSegment","intersectsPoints","pointOnLine","pointOnSegment","xMin","xMax","yMin","yMax","coordinatesOnLine","stepRate","results","sx","sy","err","e2","wrap","uc","ua","ub","normalAngle","fromArray","newPos","tx1","invert","clampX","clamp","clampY","radToDeg","getMagnitude","getMagnitudeSq","setMagnitude","magnitude","isZero","rperp","normalRightHand","negative","multiplyAdd","interpolate","project","amt","projectUnit","pointslength","parse","xProp","yProp","_points","toNumberArray","flatten","inside","ix","iy","jx","jy","calculateArea","avgHeight","centerOn","floorAll","ceilAll","inflate","containsRect","intersection","intersectsRaw","union","randomX","randomY","empty","inflatePoint","containsRaw","rw","rh","volume","sameDimensions","MIN_VALUE","RoundedRectangle","Camera","deadzone","roundPx","atLimit","totalInView","_targetPosition","_edge","_position","FOLLOW_LOCKON","FOLLOW_PLATFORMER","FOLLOW_TOPDOWN","FOLLOW_TOPDOWN_TIGHT","follow","helper","unfollow","focusOn","setPosition","focusOnXY","updateTarget","checkBounds","setBoundsToWorld","setSize","Create","bmd","make","bitmapData","ctx","palettes","A","C","D","E","PALETTE_ARNE","PALETTE_JMP","PALETTE_CGA","PALETTE_C64","PALETTE_JAPANESE_MACHINE","pixelWidth","pixelHeight","palette","row","grid","cellWidth","cellHeight","State","camera","cache","input","load","math","sound","tweens","particles","physics","rnd","preload","loadUpdate","loadRender","preRender","paused","resumed","pauseUpdate","shutdown","StateManager","pendingState","states","_pendingState","_clearWorld","_clearCache","_created","_args","onStateChange","Signal","onInitCallback","onPreloadCallback","onCreateCallback","onUpdateCallback","onRenderCallback","onResizeCallback","onPreRenderCallback","onLoadUpdateCallback","onLoadRenderCallback","onPausedCallback","onResumedCallback","onPauseUpdateCallback","onShutDownCallback","boot","onPause","pause","onResume","resume","state","autoStart","newState","isBooted","remove","callbackContext","clearWorld","clearCache","checkState","restart","dummy","previousStateKey","clearCurrentState","setCurrentState","dispatch","totalQueuedFiles","totalQueuedPacks","loadComplete","removeAll","debug","link","unlink","_kickstart","getCurrentState","elapsedTime","renderType","_bindings","_prevParams","memorize","_shouldPropagate","active","_boundDispatch","validateListener","fnName","_registerListener","isOnce","listenerContext","priority","binding","prevIndex","_indexOfListener","SignalBinding","_addBinding","execute","_priority","cur","_listener","addOnce","_destroy","getNumListeners","halt","bindings","paramsArr","forget","dispose","_this","signal","_isOnce","_signal","callCount","params","handlerReturn","detach","isBound","getListener","getSignal","Filter","prevPoint","Date","mouse","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","exists","currentRenderOrderID","_hiddenVar","_onChange","_backgroundColor","config","parseConfig","DOM","getOffset","Canvas","setUserSelect","setTouchAction","checkVisibility","webkitHidden","mozHidden","msHidden","hidden","visibilityChange","addEventListener","onblur","onfocus","onpagehide","onpageshow","device","cocoonJSApp","CocoonJS","App","onSuspended","onActivated","focusLoss","focusGain","gamePaused","gameResumed","Color","valueToColor","getColor","RGBtoString","removeEventListener","Group","addToStage","enableBody","physicsBodyType","Physics","ARCADE","physicsType","alive","ignoreDestroy","pendingDestroy","classType","cursor","enableBodyDebug","physicsSortDirection","onDestroy","cursorIndex","fixedToCamera","cameraOffset","hash","_sortProperty","RETURN_NONE","RETURN_TOTAL","RETURN_CHILD","SORT_ASCENDING","SORT_DESCENDING","silent","addToHash","events","onAddedToGroup$dispatch","removeFromHash","addMultiple","moveAll","addAt","updateZ","getAt","createMultiple","quantity","resetCursor","next","previous","swap","child1","bringToTop","getIndex","sendToBack","moveUp","moveDown","xy","oldChild","newChild","hasProperty","operation","checkProperty","checkAlive","checkVisible","setAll","setAllChildren","checkAll","addAll","property","subAll","multiplyAll","divideAll","callAllExists","existsValue","callbackFromArray","callAll","method","methodLength","contextLength","renderOrderID","predicate","checkExists","ArraySet","forEachExists","iterate","forEachAlive","forEachDead","order","ascendingSortHandler","descendingSortHandler","customSort","sortHandler","returnType","getFirstExists","getFirstAlive","getFirstDead","getTop","getBottom","countLiving","countDead","getRandom","ArrayUtils","getRandomItem","destroyPhase","onRemovedFromGroup$dispatch","group","removeBetween","destroyChildren","soft","_definedSize","stateChange","setBounds","useBounds","horizontal","vertical","between","FlexGrid","manager","boundsCustom","boundsFluid","boundsFull","boundsNone","positionCustom","positionFluid","positionFull","positionNone","scaleCustom","scaleFluid","scaleFluidInversed","scaleFull","scaleNone","customWidth","customHeight","customOffsetX","customOffsetY","ratioH","ratioV","layers","createCustomLayer","layer","FlexLayer","createFluidLayer","createFullLayer","createFixedLayer","persist","onResize","fitSprite","scaleSprite","text","geom","uuid","topLeft","topMiddle","topRight","bottomLeft","bottomMiddle","bottomRight","ScaleManager","dom","minWidth","maxWidth","minHeight","maxHeight","forceLandscape","forcePortrait","incorrectOrientation","_pageAlignHorizontally","_pageAlignVertically","onOrientationChange","enterIncorrectOrientation","leaveIncorrectOrientation","fullScreenTarget","_createdFullScreenTarget","onFullScreenInit","onFullScreenChange","onFullScreenError","screenOrientation","getScreenOrientation","scaleFactorInversed","margin","aspectRatio","sourceAspectRatio","windowConstraints","compatibility","supportsFullScreen","orientationFallback","noMargins","scrollTo","forceMinimumDocumentHeight","canExpandParent","clickTrampoline","_scaleMode","NO_SCALE","_fullScreenScaleMode","parentIsWindow","parentNode","parentScaleFactor","trackParentInterval","onSizeChange","onResizeContext","_pendingScaleMode","_fullScreenRestore","_gameSize","_userScaleFactor","_userScaleTrim","_lastUpdate","_updateThrottle","_updateThrottleReset","_parentBounds","_tempBounds","_lastReportedCanvasSize","_lastReportedGameSize","_booted","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","visualBounds","newWidth","newHeight","updateDimensions","queueUpdate","currentScaleMode","setUserScale","hScale","vScale","hTrim","vTrim","setResizeCallback","signalSizeChange","setMinMax","prevThrottle","prevWidth","prevHeight","boundsChanged","orientationChanged","updateOrientationState","updateLayout","throttle","updateScalingAndBounds","forceOrientation","classifyOrientation","orientation","previousOrientation","previouslyIncorrect","isLandscape","isPortrait","changed","correctnessChanged","scrollTop","reflowGame","documentElement","setMaximum","setExactFit","isFullScreen","boundingParent","setShowAll","resetCanvas","reflowCanvas","layoutBounds","clientRect","getBoundingClientRect","wc","windowBounds","alignCanvas","parentBounds","canvasBounds","currentEdge","targetEdge","marginLeft","marginRight","marginTop","marginBottom","pageAlignHorizontally","pageAlignVertically","cssWidth","cssHeight","expanding","createFullScreenTarget","fsTarget","background","startFullScreen","allowTrampoline","setTimeout","activePointer","mousePointer","addClickTrampoline","smoothed","cleanupCreatedTarget","initData","targetElement","insertBefore","appendChild","fullscreenKeyboard","requestFullscreen","Element","ALLOW_KEYBOARD_INPUT","stopFullScreen","cancelFullscreen","prepScreenMode","enteringFullscreen","createdTarget","enterFullScreen","leaveFullScreen","letterBox","scaleX1","scaleY1","scaleX2","scaleY2","scaleOnWidth","Game","physicsConfig","isRunning","raf","net","Device","lockRender","pendingStep","stepCount","onBlur","onFocus","_paused","_codePaused","currentUpdateID","updatesThisFrame","_deltaTime","_lastCount","_spiraling","fpsProblemNotifier","forceSingleUpdate","_nextFpsNotification","enableDebug","RandomDataGenerator","now","whenReady","seed","setUpRenderer","GameObjectFactory","GameObjectCreator","Cache","Loader","Time","TweenManager","Input","SoundManager","Particles","Net","Debug","showDebugHeader","RequestAnimationFrame","stopFocus","focus","hideBanner","webAudio","contextRestored","addToDOM","preventDefault","clearGLTextures","updateLogic","desiredFps","updateRender","slowMotion","slowStep","elapsed","enableStep","disableStep","removeFromDOM","setMute","cordova","iOS","unsetMute","hitCanvas","hitContext","moveCallbacks","pollRate","multiInputOverride","MOUSE_TOUCH_COMBINE","maxPointers","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","Touch","MSPointer","Keyboard","Gamepad","_onClickTrampoline","onClickTrampoline","addMoveCallback","deleteMoveCallback","hard","resetSpeed","startPointer","countActivePointers","updatePointer","identifier","move","stopPointer","limit","getPointer","isActive","getPointerFromIdentifier","getPointerFromId","pointerId","getLocalPosition","worldVisible","TileSprite","processClickTrampolines","mouseDownCallback","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","BACK_BUTTON","FORWARD_BUTTON","WHEEL_UP","WHEEL_DOWN","onMouseDown","onMouseMove","onMouseUp","_onMouseUpGlobal","onMouseUpGlobal","onMouseOut","onMouseOver","onMouseWheel","wheelEvent","mouseMoveCallback","withinGame","bindEvent","deltaY","requestPointerLock","element","mozRequestPointerLock","webkitRequestPointerLock","_pointerLockChange","pointerLockChange","pointerLockElement","mozPointerLockElement","webkitPointerLockElement","releasePointerLock","exitPointerLock","mozExitPointerLock","webkitExitPointerLock","_stubsGenerated","makeBinder","defineProperties","detail","deltaX","wheelDeltaX","deltaZ","pointerDownCallback","pointerMoveCallback","pointerUpCallback","_onMSPointerDown","_onMSPointerMove","_onMSPointerUp","onPointerDown","onPointerMove","onPointerUp","pointerType","DeviceButton","buttonCode","isDown","isUp","timeDown","duration","timeUp","repeats","altKey","shiftKey","ctrlKey","onFloat","padFloat","justPressed","justReleased","leftButton","middleButton","rightButton","backButton","forwardButton","eraserButton","ERASER_BUTTON","_holdSent","_history","_nextDrop","_stateReset","clientX","clientY","pageX","pageY","screenX","screenY","rawMovementX","rawMovementY","movementX","movementY","isMouse","previousTapTime","totalTouches","msSinceLastClick","targetObject","positionDown","positionUp","_clickTrampolines","_trampolineTargetObject","resetButtons","updateButtons","buttons","totalActivePointers","_touchedHandler","processInteractiveObjects","shift","fromClick","pollLocked","mozMovementX","webkitMovementX","mozMovementY","webkitMovementY","isDragged","highestRenderOrderID","highestInputPriorityID","candidateTarget","currentNode","checked","validForInput","checkPointerDown","checkPointerOver","priorityID","_pointerOutHandler","_pointerOverHandler","leave","currentPointers","callbackArgs","trampolines","trampoline","_releasedHandler","resetMovement","touchLockCallbacks","touchStartCallback","touchMoveCallback","touchEndCallback","touchEnterCallback","touchLeaveCallback","touchCancelCallback","_onTouchStart","_onTouchMove","_onTouchEnd","_onTouchEnter","_onTouchLeave","_onTouchCancel","onTouchStart","onTouchMove","onTouchEnd","onTouchEnter","onTouchLeave","onTouchCancel","consumeDocumentTouches","_documentTouchMove","addTouchLockCallback","removeTouchLockCallback","changedTouches","InputHandler","useHandCursor","_setHandCursor","allowHorizontalDrag","allowVerticalDrag","snapOffset","snapOnDrag","snapOnRelease","snapX","snapY","snapOffsetX","snapOffsetY","pixelPerfectOver","pixelPerfectClick","pixelPerfectAlpha","draggable","boundsRect","boundsSprite","consumePointerEvent","scaleLayer","dragOffset","dragFromCenter","dragStartPoint","snapPoint","_dragPoint","_dragPhase","_wasEnabled","_tempPoint","_pointerData","isOver","isOut","timeOver","timeOut","downDuration","onAddedToGroup","addedToGroup","onRemovedFromGroup","removedFromGroup","flagged","highestID","highestRenderID","includePixelPerfect","isPixelPerfect","pointerX","pointerY","pointerDown","pointerUp","pointerTimeDown","pointerTimeUp","pointerOver","pointerOut","pointerTimeOver","pointerTimeOut","pointerDragged","fastTest","checkPixel","_dx","_dy","_draggedPointerID","updateDrag","onInputOver$dispatch","onInputOut$dispatch","onInputDown$dispatch","startDrag","onInputUp$dispatch","stopDrag","globalToLocalX","globalToLocalY","checkBoundsRect","checkBoundsSprite","onDragUpdate","justOver","delay","overDuration","justOut","enableDrag","lockCenter","pixelPerfect","alphaThreshold","disableDrag","onDragStart$dispatch","onDragStop$dispatch","setDragLock","allowHorizontal","allowVertical","enableSnap","onDrag","onRelease","disableSnap","_gamepadIndexMap","_rawPads","_active","_gamepadSupportAvailable","webkitGetGamepads","webkitGamepads","userAgent","getGamepads","_prevRawGamepadTypes","_prevTimestamps","onConnectCallback","onDisconnectCallback","onDownCallback","onUpCallback","onAxisCallback","onFloatCallback","_ongamepadconnected","_gamepaddisconnected","_gamepads","SinglePad","addCallbacks","callbacks","onConnect","onDisconnect","onAxis","_onGamepadConnected","onGamepadConnected","_onGamepadDisconnected","onGamepadDisconnected","newPad","connect","removedPad","disconnect","_pollGamepads","pad1","pollStatus","pad2","pad3","pad4","rawGamepads","gamepadsChanged","singlePad","validConnections","rawIndices","padIndices","connected","rawPad","setDeadZones","deadZone","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","processButtonDown","processButtonUp","processButtonFloat","processAxisChange","triggerCallback","disconnectingIndex","axisCode","buttonValue","Key","keycode","_enabled","keyCode","onHoldCallback","onHoldContext","_justDown","_justUp","processKeyDown","processKeyUp","upDuration","pressEvent","onPressCallback","_keys","_capture","_onKeyDown","_onKeyPress","_onKeyUp","_k","onPress","addKey","addKeyCapture","addKeys","removeKey","removeKeyCapture","createCursorKeys","up","down","processKeyPress","clearCaptures","String","fromCharCode","charCode","charCodeAt","H","J","K","L","M","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","COMMA","UNDERSCORE","PERIOD","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","PLUS","MINUS","INSERT","DELETE","HELP","NUM_LOCK","Component","Angle","wrapAngle","Animation","play","frameRate","loop","killOnComplete","animations","AutoCull","autoCull","inCamera","checkWorldBounds","Bounds","BringToTop","Core","install","components","Events","PhysicsBody","AnimationManager","LoadTexture","loadTexture","FixedToCamera","previousRotation","fresh","_exists","P2JS","customRender","Crop","cropRect","_crop","updateCrop","resetFrame","Delta","Destroy","onDestroy$dispatch","Video","onChangeSource","resizeFrame","BitmapText","_glyphs","_parent","_onDestroy","_onAddedToGroup","_onRemovedFromGroup","_onRemovedFromWorld","_onKilled","_onRevived","_onEnterBounds","_onOutOfBounds","_onInputOver","_onInputOut","_onInputDown","_onInputUp","_onDragStart","_onDragUpdate","_onDragStop","_onAnimationStart","_onAnimationComplete","_onAnimationLoop","onRemovedFromWorld","onKilled","onRevived","onOutOfBounds","onEnterBounds","onInputOver","onInputOut","onInputDown","onInputUp","onDragStart","onDragStop","onAnimationStart","onAnimationComplete","onAnimationLoop","backing","_fixedToCamera","Health","health","maxHealth","damage","kill","heal","InCamera","InputEnabled","inputEnabled","InWorld","_outOfBoundsFired","onEnterBounds$dispatch","onOutOfBounds$dispatch","outOfBoundsKill","inWorld","LifeSpan","lifespan","physicsElapsedMS","revive","onRevived$dispatch","onKilled$dispatch","stopAnimation","BitmapData","hasFrameData","loadFrameData","getFrameData","img","base","frameData","frameName","Overlap","_reset","Reset","ScaleMinMax","checkTransform","scaleMin","scaleMax","setScaleMinMax","Smoothed","existing","creature","mesh","Creature","tween","physicsGroup","audio","audioSprite","addSprite","tileSprite","rope","Text","overFrame","outFrame","downFrame","upFrame","Button","emitter","maxParticles","Arcade","Emitter","retroFont","font","characterWidth","characterHeight","chars","charsPerRow","xSpacing","ySpacing","xOffset","yOffset","RetroFont","bitmapText","tilemap","tileWidth","Tilemap","addToCache","addRenderTexture","video","addBitmapData","Tween","align","preUpdatePhysics","preUpdateLifeSpan","preUpdateInWorld","preUpdateCore","_scroll","def","physicsElapsed","autoScroll","stopScroll","_hasUpdateAnimation","_updateAnimationCallback","updateAnimation","_updateAnimation","segments","difference","_onOverFrame","_onOutFrame","_onDownFrame","_onUpFrame","onOverSound","onOutSound","onDownSound","onUpSound","onOverSoundMarker","onOutSoundMarker","onDownSoundMarker","onUpSoundMarker","onOverMouseOnly","freezeFrames","forceOut","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","autoScale","scaleData","_s","autoAlpha","alphaData","_a","onEmit","setAlphaData","setScaleData","imageData","textureFrame","Frame","disableTextureUpload","cls","_image","_pos","_size","_scale","_rotate","_alpha","prev","_anchor","_tempR","_tempG","_tempB","_circle","_swapCanvas","moveH","moveV","draw","addImage","processPixelRGB","pixel","createColor","unpackPixel","getPixel32","setPixel32","processPixel","replaceRGB","g1","g2","region","packPixel","setHSL","HSLtoRGB","shiftHSL","limitValue","red","green","blue","immediate","LITTLE_ENDIAN","setPixel","getPixel","getPixelRGB","hsl","hsv","getPixels","getFirstPixel","scan","anchorX","anchorY","copyRect","drawGroup","shadow","blur","shadowColor","shadowBlur","shadowOffsetX","shadowOffsetY","alphaMask","sourceRect","maskRect","blendSourceAtop","blendReset","extract","destination","prevFont","fillText","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","currentPath","boundsPadding","_localBounds","webGLDirty","cachedSpriteDirty","lineStyle","drawShape","cpX2","cpY2","dt2","dt3","arcTo","mm","dd","cc","tt","k1","k2","j1","j2","qx","qy","startAngle","endAngle","anticlockwise","sweep","segs","startX","startY","filling","theta","theta2","cTheta","sTheta","segMinus","remainder","real","beginFill","endFill","drawRect","drawRoundedRect","drawCircle","drawEllipse","drawPolygon","updateCachedSpriteTexture","_prevTint","updateLocalBounds","tempPoint","cachedSprite","destroyCachedSprite","GraphicsData","drawTriangle","cull","triangle","cameraToFace","cb","faceNormal","drawTriangles","point1","point2","point3","renderXY","renderRawXY","textBounds","strokeColors","autoRound","_res","_text","_fontComponents","_lineSpacing","_charCount","setStyle","updateText","setShadow","shadowStroke","shadowFill","boundsAlignH","boundsAlignV","strokeThickness","wordWrap","wordWrapWidth","tabs","fontToComponents","fontStyle","fontVariant","fontWeight","fontSize","componentsToFont","outputText","runWordWrap","lines","lineWidths","maxLineWidth","fontProperties","determineFontProperties","measureText","tab","section","snapToCeil","lineHeight","lineSpacing","textBaseline","lineCap","lineJoin","linePositionX","linePositionY","ascent","updateLine","updateShadow","strokeText","renderTabLine","snap","letter","clearColors","addColor","addStrokeColor","spaceLeft","words","wordWidth","wordWidthWithSpace","updateFont","match","fontFamily","setText","parseList","list","setTextBounds","properties","fontPropertiesCache","fontPropertiesCanvas","fontPropertiesContext","baseline","descent","imagedata","exec","parseFloat","textWidth","textHeight","_prevAnchor","_maxWidth","_data","getBitmapFont","_font","_fontSize","_align","_tint","sourceWidth","sourceHeight","scanLine","lastSpace","prevCharCode","test","charAt","charData","kerning","xAdvance","purgeGlyphs","kept","checkImageKey","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","content","characterSpacing","allowLowerCase","buildRetroFontText","getLongestLine","pasteLine","longestLine","removeUnsupportedCharacters","stripCR","newString","aChar","code","updateOffset","diffX","diffY","frames","getFrames","newText","toUpperCase","deviceReadyAt","initialized","nodeWebkit","electron","ejecta","crosswalk","chromeOS","linux","macOS","windows","windowsPhone","canvasBitBltShift","file","fileSystem","localStorage","worker","css3D","typedArray","vibration","getUserMedia","quirksMode","arora","chromeVersion","epiphany","firefox","firefoxVersion","ie","ieVersion","trident","tridentVersion","mobileSafari","midori","opera","safari","silk","audioData","ogg","opus","mp3","wav","m4a","webm","oggVideo","h264Video","mp4Video","webmVideo","vp9Video","hlsVideo","iPhone","iPhone4","pixelRatio","littleEndian","support32bit","onInitialized","nonPrimer","readyCheck","_readyCheck","_monitor","_queue","readyState","_initialize","_checkOS","vita","kindle","_checkFeatures","getItem","error","WebGLRenderingContext","compatMode","webkitGetUserMedia","mozGetUserMedia","msGetUserMedia","oGetUserMedia","URL","webkitURL","mozURL","msURL","_checkInput","maxTouchPoints","msPointerEnabled","pointerEnabled","_checkFullScreenSupport","fs","cfs","_checkBrowser","RegExp","$1","$3","process","versions","_checkVideo","videoElement","canPlayType","_checkAudio","audioElement","_checkDevice","toLowerCase","Int8Array","_checkIsLittleEndian","Uint8ClampedArray","Int32Array","_checkIsUint8ClampedImageData","vibrate","webkitVibrate","mozVibrate","msVibrate","elem","createImageData","_checkCSS3D","has3d","el","transforms","webkitTransform","OTransform","msTransform","MozTransform","getComputedStyle","getPropertyValue","canPlayAudio","canPlayVideo","isConsoleOpen","profile","profileEnd","isAndroidStockBrowser","matches","box","scrollY","scrollLeft","scrollX","clientTop","clientLeft","cushion","calibrate","coords","getAspectRatio","inLayoutViewport","primaryFallback","screen","mozOrientation","msOrientation","PORTRAIT","LANDSCAPE","matchMedia","documentBounds","pageXOffset","pageYOffset","treatAsDesktop","clientWidth","clientHeight","offsetWidth","scrollWidth","offsetHeight","scrollHeight","display","msTouchAction","overflowHidden","overflow","vendor","prefix","setImageRenderingCrisp","msInterpolationMode","setImageRenderingBicubic","forceSetTimeOut","vendors","requestAnimationFrame","cancelAnimationFrame","_isSetTimeOut","_onLoop","_timeOutID","updateSetTimeout","updateRAF","rafTime","timeToCall","clearTimeout","isSetTimeOut","isRAF","PI2","fuzzyEqual","fuzzyLessThan","fuzzyGreaterThan","fuzzyCeil","val","fuzzyFloor","average","shear","snapTo","gap","snapToFloor","roundTo","place","floorTo","ceilTo","angleBetween","angleBetweenY","angleBetweenPoints","angleBetweenPointsY","reverseAngle","angleRad","normalizeAngle","maxAdd","minSub","wrapValue","isOdd","isEven","minProperty","maxProperty","radians","linearInterpolation","linear","bezierInterpolation","bernstein","catmullRomInterpolation","catmullRom","factorial","res","roundAwayFromZero","sinCosGenerator","sinAmplitude","cosAmplitude","frequency","frq","cosTable","sinTable","distanceSq","distancePow","clampBottom","within","mapLinear","smoothstep","smootherstep","percent","degreeToRadiansFactor","radianToDegreesFactor","degrees","seeds","s0","sow","integer","frac","integerInRange","realInRange","pick","ary","weightedPick","QuadTree","maxObjects","maxLevels","_empty","subWidth","subHeight","populate","populateHandler","insert","retrieve","returnObjects","getHostName","location","hostname","checkDomainName","domain","updateQueryString","redirect","href","re","separator","getQueryString","parameter","keyValues","search","substring","decodeURI","decodeURIComponent","_tweens","_add","easeMap","Power0","Easing","Power1","Power2","Power3","Power4","Linear","None","Quad","Quadratic","Out","Cubic","Quart","Quartic","Quint","Quintic","Sine","Sinusoidal","Expo","Exponential","Circ","Circular","Elastic","Back","Bounce","Quad.easeIn","In","Cubic.easeIn","Quart.easeIn","Quint.easeIn","Sine.easeIn","Expo.easeIn","Circ.easeIn","Elastic.easeIn","Back.easeIn","Bounce.easeIn","Quad.easeOut","Cubic.easeOut","Quart.easeOut","Quint.easeOut","Sine.easeOut","Expo.easeOut","Circ.easeOut","Elastic.easeOut","Back.easeOut","Bounce.easeOut","Quad.easeInOut","InOut","Cubic.easeInOut","Quart.easeInOut","Quint.easeInOut","Sine.easeInOut","Expo.easeInOut","Circ.easeInOut","Elastic.easeInOut","Back.easeInOut","Bounce.easeInOut","_pauseAll","_resumeAll","getAll","pendingDelete","removeFrom","_manager","addTweens","numTweens","isTweening","some","_pause","_resume","pauseAll","resumeAll","timeline","timeScale","repeatCounter","onStart","onLoop","onRepeat","onChildComplete","onComplete","chainedTween","isPaused","_onUpdateCallback","_onUpdateCallbackContext","_pausedTime","_hasStarted","ease","yoyo","Default","TweenData","vEnd","loadValues","updateTweenData","repeatDelay","yoyoDelay","easing","interpolation","repeatAll","chain","startTime","status","PENDING","RUNNING","LOOPED","COMPLETE","generateData","vStart","vStartCache","vEndCache","inReverse","easingFunction","interpolationFunction","interpolationContext","isFrom","yoyoCounter","elapsedMS","fps","blob","reversed","asin","prevTime","suggestedFps","advancedTiming","fpsMin","fpsMax","msMin","msMax","pauseDuration","timeExpected","Timer","_frameCount","_elapsedAccumulator","_started","_timeLastSecond","_pauseStarted","_justResumed","_timers","timer","autoDestroy","updateAdvancedTiming","updateTimers","previousDateNow","timeCallExpected","elapsedSince","since","elapsedSecondsSince","running","expired","nextTick","timeCap","_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","validateFrames","checkFrameName","isPlaying","getAnimation","refreshFrame","getFrame","getFrameByName","_frameIndex","_frames","loopCount","isFinished","_pauseStartTime","_frameDiff","_frameSkip","onUpdate","_timeLastFrame","_timeNextFrame","updateCurrentFrame","onAnimationStart$dispatch","useLocalFrameIndex","frameIndex","dispatchComplete","onAnimationComplete$dispatch","onAnimationLoop$dispatch","signalUpdate","fromPlay","generateFrameNames","suffix","zeroPad","rotated","rotationDirection","spriteSourceSizeW","spriteSourceSizeH","setTrim","actualWidth","actualHeight","destX","destY","destWidth","destHeight","getRect","_frameNames","getFrameRange","AnimationParser","spriteSheet","frameMax","spacing","column","JSONData","json","newFrame","filename","sourceSize","spriteSourceSize","JSONDataHash","XMLData","xml","getElementsByTagName","frameX","frameY","autoResolveURL","_cache","binary","bitmapFont","_urlMap","_urlResolver","_urlTemp","onSoundUnlock","_cacheMap","TEXTURE","SOUND","PHYSICS","BINARY","BITMAPFONT","JSON","XML","SHADER","RENDER_TEXTURE","addDefaultImage","addMissingImage","addCanvas","removeImage","_resolveURL","addSound","audioTag","decoded","isDecoding","touchLocked","addText","addPhysicsData","addTilemap","mapData","addBinary","binaryData","addBitmapFont","atlasData","atlasType","LoaderParser","jsonBitmapFont","xmlBitmapFont","addJSON","addXML","addVideo","isBlob","addShader","addSpriteSheet","addTextureAtlas","TEXTURE_ATLAS_XML_STARLING","reloadSound","getSound","reloadSoundComplete","updateSound","decodedSound","isSoundDecoded","isSoundReady","checkKey","checkURL","checkCanvasKey","checkTextureKey","checkSoundKey","checkTextKey","checkPhysicsKey","checkTilemapKey","checkBinaryKey","checkBitmapDataKey","checkBitmapFontKey","checkJSONKey","checkXMLKey","checkVideoKey","checkShaderKey","checkRenderTextureKey","full","getTextureFrame","getSoundData","getText","getPhysicsData","fixtureKey","fixtures","fixture","getTilemapData","getBinary","getBitmapData","getJSON","getXML","getVideo","getShader","getRenderTexture","getBaseTexture","getFrameCount","getFrameByIndex","getPixiTexture","getPixiBaseTexture","getURL","getKeys","removeCanvas","removeFromPixi","removeSound","removeText","removePhysics","removeTilemap","removeBinary","removeBitmapData","removeBitmapFont","removeJSON","removeXML","removeVideo","removeShader","removeRenderTexture","removeSpriteSheet","removeTextureAtlas","atlas","baseURL","isLoading","preloadSprite","onLoadStart","onLoadComplete","onPackComplete","onFileStart","onFileComplete","onFileError","useXDomainRequest","_warnedAboutXDomainRequest","enableParallel","maxParallelDownloads","_withSyncPointDepth","_fileList","_flightQueue","_processingHead","_fileLoadStarted","_totalPackCount","_totalFileCount","_loadedPackCount","_loadedFileCount","TEXTURE_ATLAS_JSON_ARRAY","TEXTURE_ATLAS_JSON_HASH","PHYSICS_LIME_CORONA_JSON","PHYSICS_PHASER_JSON","setPreloadSprite","checkKeyExists","getAssetIndex","bestFound","loaded","loading","getAsset","fileIndex","addToFileList","overwrite","extension","syncPoint","currentFile","replaceInFileList","pack","script","spritesheet","urls","autoDecode","noAudio","audiosprite","jsonURL","jsonData","loadEvent","asBlob","CSV","TILED_JSON","LIME_CORONA_JSON","textureURL","atlasURL","parseXml","atlasJSONArray","atlasJSONHash","atlasXML","withSyncPoint","addSyncPoint","asset","removeFile","updateProgress","processLoadQueue","finishedLoading","requestUrl","requestObject","progress","syncblock","inflightLimit","processPack","loadFile","abnormal","asyncComplete","errorMessage","packData","transformUrl","xhrLoad","fileComplete","loadImageTag","getAudioURL","usingWebAudio","usingAudioTag","loadAudioTag","fileError","getVideoURL","loadVideoTag","jsonLoadComplete","xmlLoadComplete","csvLoadComplete","onload","onerror","controls","autoplay","videoLoadEvent","canplay","Audio","playThroughEvent","XDomainRequest","xhrLoadWithXDR","xhr","XMLHttpRequest","open","responseType","message","send","timeout","ontimeout","onprogress","videoType","uri","lastIndexOf","audioType","reason","loadNext","responseText","Blob","response","decode","language","defer","head","contentType","domparser","DOMParser","parseFromString","ActiveXObject","async","loadXML","totalLoadedFiles","totalLoadedPacks","progressFloat","info","common","getAttribute","letters","kernings","second","finalizeBitmapFont","_face","_lineHeight","_id","_xoffset","_yoffset","_xadvance","_second","_first","_amount","bitmapFontData","autoplayKey","sounds","spritemap","addMarker","connectToMaster","markers","totalDuration","currentTime","durationMS","stopTime","pausedPosition","pausedTime","currentMarker","fadeTween","pendingPlayback","override","allowMultiple","externalNode","masterGainNode","gainNode","_sound","masterGain","createGain","createGainNode","gain","soundHasUnlocked","onDecoded","onPlay","onStop","onMute","onMarkerComplete","onFadeComplete","_volume","_buffer","_muted","_tempMarker","_tempPosition","_tempVolume","_muteVolume","_tempLoop","_onDecodedEventDispatched","removeMarker","onEndedHandler","isDecoded","loopFull","forceRestart","noteOff","createBufferSource","onended","noteGrainOn","muted","prevMarker","fadeIn","fadeTo","fadeOut","fadeComplete","mute","onSoundDecode","onVolumeChange","onUnMute","channels","_codeMuted","_unlockSource","_sounds","_watchList","_watching","_watchCallback","_watchContext","disableAudio","disableWebAudio","audioContext","fakeiOSTouchLock","setTouchLock","unlock","noteOn","stopAll","soundData","decodeAudioData","setDecodedCallback","files","playbackState","PLAYING_STATE","FINISHED_STATE","removeByKey","columnWidth","renderShadow","currentAlpha","currentColor","soundInfo","cameraInfo","hideIfUp","downColor","upColor","worldX","worldY","spriteInputInfo","justDown","justUp","inputInfo","spriteBounds","filled","rectangle","ropeSegments","segment","spriteInfo","spriteCoords","lineInfo","forceType","quadTree","quadtree","NINJA","Ninja","BOX2D","Box2D","renderBody","bodyInfo","renderBodyInfo","box2d","box2dWorld","renderDebugDraw","box2dBody","randomIndex","removeRandomItem","shuffle","transposeMatrix","sourceRowCount","sourceColCount","rotateMatrix","findClosest","arr","NaN","low","high","POSITIVE_INFINITY","numberArray","numberArrayStep","rgba","RGBtoHSL","RGBtoHSV","fromRGBA","toRGBA","q","hueToColor","updateColor","HSVtoRGB","color32","getColor32","componentToHex","hexToRGB","hexToColor","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","blendNormal","blendAverage","blendSubtract","blendNegation","blendLinearDodge","blendLinearBurn","blendLinearLight","blendVividLight","blendPinLight","blendHardMix","blendReflect","blendGlow","blendPhoenix","LinkedList","entity","arcade","ninja","chipmunk","matter","CHIPMUNK","MATTERJS","P2","Matter","startSystem","system","enableAABB","checkCollision","OVERLAP_BIAS","forceX","sortDirection","LEFT_RIGHT","skipQuadTree","_total","SORT_NONE","RIGHT_LEFT","TOP_BOTTOM","BOTTOM_TOP","updateMotion","velocityDelta","computeVelocity","angularAcceleration","angularDrag","maxAngular","acceleration","drag","maxVelocity","allowGravity","object1","object2","overlapCallback","processCallback","collideHandler","collide","collideCallback","sortLeftRight","sortRightLeft","sortTopBottom","sortBottomTop","overlapOnly","collideGroupVsSelf","collideSpriteVsSprite","collideSpriteVsGroup","collideSpriteVsTilemapLayer","collideGroupVsGroup","collideGroupVsTilemapLayer","sprite1","sprite2","separate","items","group1","group2","body1","body2","separateX","separateY","immovable","maxOverlap","deltaAbsX","embedded","touching","none","overlapX","customSeparateX","bounce","moves","nv1","nv2","avg","deltaAbsY","overlapY","customSeparateY","getObjectsUnderPointer","getObjectsAtLocation","callbackArg","moveToObject","maxTime","distanceBetween","moveToPointer","angleToPointer","distanceToPointer","moveToXY","distanceToXY","velocityFromAngle","velocityFromRotation","accelerationFromRotation","accelerateToObject","xSpeedMax","ySpeedMax","accelerateToPointer","accelerateToXY","angleToXY","allowRotation","preRotation","newVelocity","deltaMax","facing","collideWorldBounds","any","wasTouching","blocked","tilePadding","syncBounds","_sx","_sy","updateBounds","asx","asy","check","onFloor","onWall","TilemapCollision","TILE_BIAS","tilemapLayer","getTiles","separateTile","tile","collisionCallback","collisionCallbackContext","faceLeft","faceRight","faceTop","faceBottom","tileCheckX","tileCheckY","collideRight","collideLeft","processTileSeparationX","collideDown","collideUp","processTileSeparationY","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","_boundsLeft","_boundsRight","_boundsTop","_boundsBottom","_boundsOwnGroup","removeBodyNextStep","setImpactEvents","impactHandler","setPostBroadphaseCallback","postBroadphaseHandler","_bodyCallbacks","_bodyCallbackContext","_groupCallbacks","_groupCallbackContext","setCollisionGroup","setWorldMaterial","updateBoundsCollisionGroup","fixedStepTime","impactCallback","createDistanceConstraint","getBody","createGearConstraint","createRevoluteConstraint","createLockConstraint","createPrismaticConstraint","lockRotation","anchorA","anchorB","setMaterial","createMaterial","createContactMaterial","getSprings","getConstraints","filterStatic","physicsPosition","query","toJSON","createCollisionGroup","bitmask","createSpring","worldA","worldB","localA","localB","createRotationalSpring","createBody","addPolygon","createParticle","convertCollisionObjects","map","collision","polyline","clearTilemapLayerBodies","getLayer","convertTilemap","optimize","collides","getTileRight","addRectangle","FixtureList","rawList","namedFixtures","groupedFixtures","allFixtures","setCategory","bit","setter","getFixtures","setMask","setSensor","getFixtureByKey","getGroup","groupID","_ref","_results","callee","PointProxy","collidesWith","removeNextStep","debugBody","_collideWorldBounds","setRectangleFromSprite","createBodyCallback","createGroupCallback","getCollisionMask","updateCollisionMask","clearCollision","clearGroup","clearMask","shapeChanged","impulse","localX","localY","setZeroRotation","setZeroVelocity","setZeroDamping","rotateLeft","rotateRight","moveForward","moveBackward","thrust","moveLeft","moveRight","updateSpriteTransform","resetDamping","resetMass","clearShapes","addCircle","addPlane","addParticle","addLine","addCapsule","setCircle","setRectangle","addPhaserPolygon","createdFixtures","fixtureData","shapesOfFixture","addFixture","generatedShapes","categoryBits","maskBits","isSensor","polygons","loadPolygon","BodyDebug","settings","defaultSettings","pixelsPerLengthUnit","debugPolygons","ppu","lw","vrot","_j","_ref1","randomPastelHex","drawCapsule","drawPlane","drawLine","drawRectangle","drawConvex","drawPath","lastx","lasty","diagMargin","diagSize","maxLength","xd","yd","mix","rgbToHex","ImageCollection","firstgid","imageWidth","imageHeight","imageMargin","imageSpacing","images","containsImageIndex","imageIndex","gid","Tile","flipped","scanned","setCollisionCallback","setCollision","resetCollision","isInteresting","faces","TilemapParser","widthInPixels","heightInPixels","tilesets","imagecollections","tiles","collideIndexes","currentLayer","debugMap","_tempA","NORTH","EAST","SOUTH","WEST","setTileSize","createBlankLayer","addTilesetImage","tileset","tileMargin","tileSpacing","getTilesetIndex","setImage","newSet","Tileset","countX","countY","columns","rows","createFromObjects","CustomClass","adjustY","createFromTiles","replacements","customClass","lh","createLayer","getLayerIndex","TilemapLayer","indexes","getImageIndex","getObjectIndex","setTileIndexCallback","setTileLocationCallback","recalculate","setCollisionByIndex","calculateFaces","setCollisionBetween","setCollisionByExclusion","setPreventRecalculate","preventingRecalculate","needToRecalculate","above","below","getTileAbove","getTileBelow","getTileLeft","setLayer","hasTile","removeTile","removeTileWorldXY","putTile","putTileWorldXY","searchTileIndex","skip","getTile","nonNull","getTileWorldXY","paste","tileblock","tileA","tileB","swapHandler","removeAllLayers","dump","txt","renderSettings","enableScrollDelta","overdrawRatio","copyCanvas","debugSettings","missingImageFill","debuggedTileOverfill","forceFullRedraw","debugAlpha","facingEdgeStroke","collidingTileOverfill","scrollFactorX","scrollFactorY","rayStepRate","_wrap","_mc","renderWidth","renderHeight","_scrollX","_scrollY","ensureSharedCopyCanvas","sharedCopyCanvas","resizeWorld","_fixX","_unfixX","_fixY","_unfixY","getTileX","getTileY","getTileXY","getRayCastTiles","interestingFace","coord","fetchAll","wy","wx","resolveTileset","tileIndex","setIndex","containsTileIndex","resetTilesetCache","setScale","xScale","yScale","shiftCanvas","copyW","copyH","copyContext","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","flippedVal","tileproperties","tileProperties","updateTileData","imagewidth","imageheight","newCollection","polygon","ellipse","sid","drawCoords","coordIndex","setSpacing","rowCount","colCount","emitters","ID","minParticleSpeed","maxParticleSpeed","minParticleScale","maxParticleScale","minRotation","maxRotation","minParticleAlpha","maxParticleAlpha","particleClass","particleDrag","particleAnchor","emitX","emitY","particleBringToTop","particleSendToBack","_minParticleScale","_maxParticleScale","_quantity","_timer","_counter","_flowQuantity","_flowTotal","_explode","emitParticle","makeParticles","particle","rndKey","rndFrame","explode","flow","forceQuantity","setXSpeed","setYSpeed","setRotation","setAlpha","rate","tweenData","onAccess","onError","onTimeout","videoStream","isStreaming","retryLimit","retry","retryInterval","_retryID","_pending","_autoplay","_video","createVideoFromBlob","videoWidth","videoHeight","createVideoFromURL","snapshot","connectToMediaStream","stream","startMediaStream","captureAudio","removeVideoElement","setAttribute","getUserMediaTimeout","getUserMediaSuccess","getUserMediaError","mozSrcObject","createObjectURL","onloadeddata","checkStream","checkVideoProgress","change","playbackRate","setPause","setResume","playHandler","playing","ended","changeSource","grab","hasChildNodes","firstChild","removeAttribute"],"mappings":"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"} \ No newline at end of file diff --git a/build/phaser.min.js b/build/phaser.min.js index 1d8d4ff3b..005522920 100644 --- a/build/phaser.min.js +++ b/build/phaser.min.js @@ -1,26 +1,26 @@ -/* Phaser v2.4.0 - http://phaser.io - @photonstorm - (c) 2015 Photon Storm Ltd. */ +/* Phaser v2.4.1 - http://phaser.io - @photonstorm - (c) 2015 Photon Storm Ltd. */ -var PIXI=function(){var a=this,b=b||{};return b.WEBGL_RENDERER=0,b.CANVAS_RENDERER=1,b.VERSION="v2.2.8",b._UID=0,"undefined"!=typeof Float32Array?(b.Float32Array=Float32Array,b.Uint16Array=Uint16Array,b.Uint32Array=Uint32Array,b.ArrayBuffer=ArrayBuffer):(b.Float32Array=Array,b.Uint16Array=Array),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.defaultRenderOptions={view:null,transparent:!1,antialias:!1,preserveDrawingBuffer:!1,resolution:1,clearBeforeRender:!0,autoResize:!1},b.DisplayObject=function(){this.position=new b.Point(0,0),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.renderable=!1,this.parent=null,this.stage=null,this.worldAlpha=1,this.worldTransform=new b.Matrix,this.worldPosition=new b.Point(0,0),this.worldScale=new b.Point(1,1),this.worldRotation=0,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,b.DisplayObject.prototype.destroy=function(){if(this.children){for(var a=this.children.length;a--;)this.children[a].destroy();this.children=[]}this.transformCallback=null,this.transformCallbackContext=null,this.hitArea=null,this.parent=null,this.stage=null,this.worldTransform=null,this.filterArea=null,this._bounds=null,this._currentBounds=null,this._mask=null,this.renderable=!1,this._destroyCachedSprite()},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;gj;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;for(var b=0;bi&&(i*=-1),0>l&&(l*=-1),q=i*e+m,o=i*d+m,r=l*g+n,p=l*f+n;else{var s=i*e+k*g+m,t=l*g+j*e+n,u=i*d+k*g+m,v=l*g+j*d+n,w=i*d+k*f+m,x=l*f+j*d+n,y=i*e+k*f+m,z=l*f+j*e+n;q=q>s?s:q,q=q>u?u:q,q=q>w?w:q,q=q>y?y:q,r=r>t?t:r,r=r>v?v:r,r=r>x?x:r,r=r>z?z:r,o=s>o?s:o,o=u>o?u:o,o=w>o?w:o,o=y>o?y:o,p=t>p?t:p,p=v>p?v:p,p=x>p?x:p,p=z>p?z:p}var A=this._bounds;return A.x=q,A.width=o-q,A.y=r,A.height=p-r,this._currentBounds=A,A},b.Sprite.prototype._renderWebGL=function(a,b){if(this.visible&&!(this.alpha<=0)&&this.renderable){var c=this.worldTransform;if(b&&(c=b),this._mask||this._filters){var d=a.spriteBatch;this._filters&&(d.flush(),a.filterManager.pushFilter(this._filterBlock)),this._mask&&(d.stop(),a.maskManager.pushMask(this.mask,a),d.start()),d.render(this);for(var e=0;e>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]},b.canUseNewCanvasBlendModes=function(){if(void 0===document)return!1;var a="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAQAAAABAQMAAADD8p2OAAAAA1BMVEX/",b="AAAACklEQVQI12NgAAAAAgAB4iG8MwAAAABJRU5ErkJggg==",c=new Image;c.src=a+"AP804Oa6"+b;var d=new Image;d.src=a+"/wCKxvRF"+b;var e=document.createElement("canvas");e.width=6,e.height=1;var f=e.getContext("2d");if(f.globalCompositeOperation="multiply",f.drawImage(c,0,0),f.drawImage(d,2,0),!f.getImageData(2,0,1,1))return!1;var g=f.getImageData(2,0,1,1).data;return 255===g[0]&&0===g[1]&&0===g[2]},b.getNextPowerOfTwo=function(a){if(a>0&&0===(a&a-1))return a;for(var b=1;a>b;)b<<=1;return b},b.isPowerOfTwo=function(a,b){return a>0&&0===(a&a-1)&&b>0&&0===(b&b-1)},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;Array.isArray(b)&&(d=b.join("\n"));var 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;"," vColor = vec4(aColor.rgb * aColor.a, aColor.a);","}"],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 float flipY;","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 * -flipY) + flipY , 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.flipY=a.getUniformLocation(c,"flipY"),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;","uniform float flipY;","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 * -flipY) + flipY , 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.flipY=a.getUniformLocation(c,"flipY"),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.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=[]},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)void 0===d[e]&&(d[e]=b.defaultRenderOptions[e]);else d=b.defaultRenderOptions;b.defaultRenderer||(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._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&&(this.__stage=a),a.updateTransform();var b=this.gl;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,e){this.renderSession.blendModeManager.setBlendMode(b.blendModes.NORMAL),this.renderSession.drawCount=0,this.renderSession.flipY=d?-1:1,this.renderSession.projection=c,this.renderSession.offset=this.offset,this.spriteBatch.begin(this.renderSession),this.filterManager.begin(this.renderSession,d),a._renderWebGL(this.renderSession,e),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),a.mipmap&&b.isPowerOfTwo(a.width,a.height)?(c.texParameteri(c.TEXTURE_2D,c.TEXTURE_MIN_FILTER,a.scaleMode===b.scaleModes.LINEAR?c.LINEAR_MIPMAP_LINEAR:c.NEAREST_MIPMAP_NEAREST),c.generateMipmap(c.TEXTURE_2D)):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.destroy=function(){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.instances[this.glContextId]=null,b.WebGLRenderer.glContextId--},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.uniform1f(e.flipY,d.flipY),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.uniform1f(e.flipY,d.flipY),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,b){var c=a.texture,d=a.worldTransform;b&&(d=b),this.currentBatchSize>=this.size&&(this.flush(),this.currentBaseTexture=c.baseTexture);var e=c._uvs;if(e){var f,g,h,i,j=a.anchor.x,k=a.anchor.y;if(c.trim){var l=c.trim;g=l.x-j*l.width,f=g+c.crop.width,i=l.y-k*l.height,h=i+c.crop.height}else f=c.frame.width*(1-j),g=c.frame.width*-j,h=c.frame.height*(1-k),i=c.frame.height*-k;var m=4*this.currentBatchSize*this.vertSize,n=c.baseTexture.resolution,o=d.a/n,p=d.b/n,q=d.c/n,r=d.d/n,s=d.tx,t=d.ty,u=this.colors,v=this.positions;this.renderSession.roundPixels?(v[m]=o*g+q*i+s|0,v[m+1]=r*i+p*g+t|0,v[m+5]=o*f+q*i+s|0,v[m+6]=r*i+p*f+t|0,v[m+10]=o*f+q*h+s|0,v[m+11]=r*h+p*f+t|0,v[m+15]=o*g+q*h+s|0,v[m+16]=r*h+p*g+t|0):(v[m]=o*g+q*i+s,v[m+1]=r*i+p*g+t,v[m+5]=o*f+q*i+s,v[m+6]=r*i+p*f+t,v[m+10]=o*f+q*h+s,v[m+11]=r*h+p*f+t,v[m+15]=o*g+q*h+s,v[m+16]=r*h+p*g+t),v[m+2]=e.x0,v[m+3]=e.y0,v[m+7]=e.x1,v[m+8]=e.y1,v[m+12]=e.x2,v[m+13]=e.y2,v[m+17]=e.x3,v[m+18]=e.y3;var w=a.tint;u[m+4]=u[m+9]=u[m+14]=u[m+19]=(w>>16)+(65280&w)+((255&w)<<16)+(255*a.worldAlpha<<24),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,e=c.baseTexture.width,f=c.baseTexture.height;a.tilePosition.x%=e*a.tileScaleOffset.x,a.tilePosition.y%=f*a.tileScaleOffset.y;var g=a.tilePosition.x/(e*a.tileScaleOffset.x),h=a.tilePosition.y/(f*a.tileScaleOffset.y),i=a.width/e/(a.tileScale.x*a.tileScaleOffset.x),j=a.height/f/(a.tileScale.y*a.tileScaleOffset.y);d.x0=0-g,d.y0=0-h,d.x1=1*i-g,d.y1=0-h,d.x2=1*i-g,d.y2=1*j-h,d.x3=0-g,d.y3=1*j-h;var k=a.tint,l=(k>>16)+(65280&k)+((255&k)<<16)+(255*a.worldAlpha<<24),m=this.positions,n=this.colors,o=a.width,p=a.height,q=a.anchor.x,r=a.anchor.y,s=o*(1-q),t=o*-q,u=p*(1-r),v=p*-r,w=4*this.currentBatchSize*this.vertSize,x=c.baseTexture.resolution,y=a.worldTransform,z=y.a/x,A=y.b/x,B=y.c/x,C=y.d/x,D=y.tx,E=y.ty;m[w++]=z*t+B*v+D,m[w++]=C*v+A*t+E,m[w++]=d.x0,m[w++]=d.y0,n[w++]=l,m[w++]=z*s+B*v+D,m[w++]=C*v+A*s+E,m[w++]=d.x1,m[w++]=d.y1,n[w++]=l,m[w++]=z*s+B*u+D,m[w++]=C*u+A*s+E,m[w++]=d.x2,m[w++]=d.y2,n[w++]=l,m[w++]=z*t+B*u+D,m[w++]=C*u+A*t+E,m[w++]=d.x3,m[w++]=d.y3,n[w++]=l,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,4,c.UNSIGNED_BYTE,!0,d,16)}if(this.currentBatchSize>.5*this.size)c.bufferSubData(c.ARRAY_BUFFER,0,this.vertices);else{var e=this.positions.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.tilingTexture?i.tilingTexture.baseTexture: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;jB?B:A,c.beginPath(),c.moveTo(w,x+A),c.lineTo(w,x+z-A),c.quadraticCurveTo(w,x+z,w+A,x+z),c.lineTo(w+y-A,x+z),c.quadraticCurveTo(w+y,x+z,w+y,x+z-A),c.lineTo(w+y,x+A),c.quadraticCurveTo(w+y,x,w+y-A,x),c.lineTo(w+A,x),c.quadraticCurveTo(w,x,w,x+A),c.closePath(),(f.fillColor||0===f.fillColor)&&(c.globalAlpha=f.fillAlpha*d,c.fillStyle="#"+("00000"+(0|h).toString(16)).substr(-6),c.fill()),f.lineWidth&&(c.globalAlpha=f.lineAlpha*d,c.strokeStyle="#"+("00000"+(0|i).toString(16)).substr(-6),c.stroke())}}},b.CanvasGraphics.renderGraphicsMask=function(a,c){var d=a.graphicsData.length;if(0!==d){c.beginPath();for(var e=0;d>e;e++){var f=a.graphicsData[e],g=f.shape;if(f.type===b.Graphics.POLY){var h=g.points;c.moveTo(h[0],h[1]);for(var i=1;iz?z:y,c.moveTo(u,v+y),c.lineTo(u,v+x-y),c.quadraticCurveTo(u,v+x,u+y,v+x),c.lineTo(u+w-y,v+x),c.quadraticCurveTo(u+w,v+x,u+w,v+x-y),c.lineTo(u+w,v+y),c.quadraticCurveTo(u+w,v,u+w-y,v),c.lineTo(u+y,v),c.quadraticCurveTo(u,v,u,v+y),c.closePath()}}}},b.CanvasGraphics.updateGraphicsTint=function(a){if(16777215!==a.tint)for(var b=(a.tint>>16&255)/255,c=(a.tint>>8&255)/255,d=(255&a.tint)/255,e=0;e>16&255)/255*b*255<<16)+((g>>8&255)/255*c*255<<8)+(255&g)/255*d*255,f._lineTint=((h>>16&255)/255*b*255<<16)+((h>>8&255)/255*c*255<<8)+(255&h)/255*d*255}},b.BaseTextureCache={},b.BaseTextureCacheIdGenerator=0,b.BaseTexture=function(a,c){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.mipmap=!1,this._dirty=[!0,!0,!0,!0],a&&((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()),this.imageUrl=null,this._powerOf2=!1)},b.BaseTexture.prototype.constructor=b.BaseTexture,b.BaseTexture.prototype.forceLoaded=function(a,b){this.hasLoaded=!0,this.width=a,this.height=b,this.dirty()},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++),0===a.width&&(a.width=1),0===a.height&&(a.height=1);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.TextureSilentFail=!1,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.isTiling=!1,this.requiresUpdate=!1,this.requiresReTint=!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))},b.Texture.prototype.constructor=b.Texture,b.Texture.prototype.onBaseTextureLoaded=function(){var a=this.baseTexture;this.noFrame&&(this.frame=new b.Rectangle(0,0,a.width,a.height)),this.setFrame(this.frame)},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)){if(!b.TextureSilentFail)throw new Error("Texture Error: frame does not fit inside the base Texture dimensions "+this);return void(this.valid=!1)}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.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.resolution,this.height*this.resolution)),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.height,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.tempMatrix=new Phaser.Matrix,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=a,this.height=c,this.frame.width=this.crop.width=a*this.resolution,this.frame.height=this.crop.height=c*this.resolution,d&&(this.baseTexture.width=this.width*this.resolution,this.baseTexture.height=this.height*this.resolution),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.height))},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&&0!==a.alpha){var d=a.worldTransform;d.identity(),d.translate(0,2*this.projection.y),b&&d.append(b),d.scale(1,-1);for(var e=0;ea;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,b}.call(this);(function(){function a(a,b){this._scaleFactor=a,this._deltaMode=b,this.originalEvent=null}var b=this,c=c||{VERSION:"2.4.0",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,CIRCLE:21,RECTANGLE:22,LINE:23,MATRIX:24,POINT:25,ROUNDEDRECTANGLE:26,CREATURE:27,VIDEO:28,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:PIXI||{}};if(Math.trunc||(Math.trunc=function(a){return 0>a?Math.ceil(a):Math.floor(a)}),Function.prototype.bind||(Function.prototype.bind=function(){var a=Array.prototype.slice;return function(b){function c(){var f=e.concat(a.call(arguments));d.apply(this instanceof c?this:b,f)}var d=this,e=a.call(arguments,1);if("function"!=typeof d)throw new TypeError;return c.prototype=function f(a){return a&&(f.prototype=a),this instanceof f?void 0:new f}(d.prototype),c}}()),Array.isArray||(Array.isArray=function(a){return"[object Array]"==Object.prototype.toString.call(a)}),Array.prototype.forEach||(Array.prototype.forEach=function(a){"use strict";if(void 0===this||null===this)throw new TypeError;var b=Object(this),c=b.length>>>0;if("function"!=typeof a)throw new TypeError;for(var d=arguments.length>=2?arguments[1]:void 0,e=0;c>e;e++)e in b&&a.call(d,b[e],e,b)}),"function"!=typeof window.Uint32Array&&"object"!=typeof window.Uint32Array){var d=function(a){var b=new Array;window[a]=function(a){if("number"==typeof a){Array.call(this,a),this.length=a;for(var b=0;bf&&(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 void 0===a&&(a=50),a>0&&100*Math.random()<=a},randomChoice:function(a,b){return Math.random()<.5?a:b},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(void 0===b)var b=0;if(void 0===c)var c=" ";if(void 0===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},mixinPrototype:function(a,b,c){void 0===c&&(c=!1);for(var d=Object.keys(b),e=0;e0&&(this._radius=.5*d),this.type=c.CIRCLE},c.Circle.prototype={circumference:function(){return 2*Math.PI*this._radius},random:function(a){void 0===a&&(a=new c.Point);var b=2*Math.PI*Math.random(),d=Math.random()+Math.random(),e=d>1?2-d:d,f=e*Math.cos(b),g=e*Math.sin(b);return a.x=this.x+f*this.radius,a.y=this.y+g*this.radius,a},getBounds:function(){return new c.Rectangle(this.x-this.radius,this.y-this.radius,this.diameter,this.diameter)},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 void 0===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 void 0===d&&(d=!1),void 0===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.Ellipse=function(a,b,d,e){a=a||0,b=b||0,d=d||0,e=e||0,this.x=a,this.y=b,this.width=d,this.height=e,this.type=c.ELLIPSE},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 void 0===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)},random:function(a){void 0===a&&(a=new c.Point);var b=Math.random()*Math.PI*2,d=Math.random();return a.x=Math.sqrt(d)*Math.cos(b),a.y=Math.sqrt(d)*Math.sin(b),a.x=this.x+a.x*this.width/2,a.y=this.y+a.y*this.height/2,a},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},PIXI.Ellipse=c.Ellipse,c.Line=function(a,b,d,e){a=a||0,b=b||0,d=d||0,e=e||0,this.start=new c.Point(a,b),this.end=new c.Point(d,e),this.type=c.LINE},c.Line.prototype={setTo:function(a,b,c,d){return this.start.setTo(a,b),this.end.setTo(c,d),this},fromSprite:function(a,b,c){return void 0===c&&(c=!1),c?this.setTo(a.center.x,a.center.y,b.center.x,b.center.y):this.setTo(a.x,a.y,b.x,b.y)},fromAngle:function(a,b,c,d){return this.start.setTo(a,b),this.end.setTo(a+Math.cos(c)*d,b+Math.sin(c)*d),this},rotate:function(a,b){var c=this.start.x,d=this.start.y;return this.start.rotate(this.end.x,this.end.y,a,b,this.length),this.end.rotate(c,d,a,b,this.length),this},intersects:function(a,b,d){return c.Line.intersectsPoints(this.start,this.end,a.start,a.end,b,d)},reflect:function(a){return c.Line.reflect(this,a)},pointOnLine:function(a,b){return(a-this.start.x)*(this.end.y-this.start.y)===(this.end.x-this.start.x)*(b-this.start.y)},pointOnSegment:function(a,b){var c=Math.min(this.start.x,this.end.x),d=Math.max(this.start.x,this.end.x),e=Math.min(this.start.y,this.end.y),f=Math.max(this.start.y,this.end.y);return this.pointOnLine(a,b)&&a>=c&&d>=a&&b>=e&&f>=b},random:function(a){void 0===a&&(a=new c.Point);var b=Math.random();return a.x=this.start.x+b*(this.end.x-this.start.x),a.y=this.start.y+b*(this.end.y-this.start.y),a},coordinatesOnLine:function(a,b){void 0===a&&(a=1),void 0===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 void 0===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)}}),Object.defineProperty(c.Line.prototype,"normalX",{get:function(){return Math.cos(this.angle-1.5707963267948966)}}),Object.defineProperty(c.Line.prototype,"normalY",{get:function(){return Math.sin(this.angle-1.5707963267948966)}}),Object.defineProperty(c.Line.prototype,"normalAngle",{get:function(){return c.Math.wrap(this.angle-1.5707963267948966,-Math.PI,Math.PI)}}),c.Line.intersectsPoints=function(a,b,d,e,f,g){void 0===f&&(f=!0),void 0===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.Line.reflect=function(a,b){return 2*b.normalAngle-3.141592653589793-a.angle},c.Matrix=function(a,b,d,e,f,g){a=a||1,b=b||0,d=d||0,e=e||1,f=f||0,g=g||0,this.a=a,this.b=b,this.c=d,this.d=e,this.tx=f,this.ty=g,this.type=c.MATRIX},c.Matrix.prototype={fromArray:function(a){return this.setTo(a[0],a[1],a[3],a[4],a[2],a[5])},setTo:function(a,b,c,d,e,f){return this.a=a,this.b=b,this.c=c,this.d=d,this.tx=e,this.ty=f,this},clone:function(a){return void 0===a||null===a?a=new c.Matrix(this.a,this.b,this.c,this.d,this.tx,this.ty):(a.a=this.a,a.b=this.b,a.c=this.c,a.d=this.d,a.tx=this.tx,a.ty=this.ty),a},copyTo:function(a){return a.copyFrom(this),a},copyFrom:function(a){return this.a=a.a,this.b=a.b,this.c=a.c,this.d=a.d,this.tx=a.tx,this.ty=a.ty,this},toArray:function(a,b){return void 0===b&&(b=new PIXI.Float32Array(9)),a?(b[0]=this.a,b[1]=this.b,b[2]=0,b[3]=this.c,b[4]=this.d,b[5]=0,b[6]=this.tx,b[7]=this.ty,b[8]=1):(b[0]=this.a,b[1]=this.c,b[2]=this.tx,b[3]=this.b,b[4]=this.d,b[5]=this.ty,b[6]=0,b[7]=0,b[8]=1),b},apply:function(a,b){return void 0===b&&(b=new c.Point),b.x=this.a*a.x+this.c*a.y+this.tx,b.y=this.b*a.x+this.d*a.y+this.ty,b},applyInverse:function(a,b){void 0===b&&(b=new c.Point);var d=1/(this.a*this.d+this.c*-this.b),e=a.x,f=a.y;return b.x=this.d*d*e+-this.c*d*f+(this.ty*this.c-this.tx*this.d)*d,b.y=this.a*d*f+-this.b*d*e+(-this.ty*this.a+this.tx*this.b)*d,b},translate:function(a,b){return this.tx+=a,this.ty+=b,this},scale:function(a,b){return this.a*=a,this.d*=b,this.c*=a,this.b*=b,this.tx*=a,this.ty*=b,this},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},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},identity:function(){return this.setTo(1,0,0,1,0,0)}},c.identityMatrix=new c.Matrix,PIXI.Matrix=c.Matrix,PIXI.identityMatrix=c.identityMatrix,c.Point=function(a,b){a=a||0,b=b||0,this.x=a,this.y=b,this.type=c.POINT},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 void 0===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 void 0===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)},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 void 0===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 void 0===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 void 0===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 void 0===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.negative=function(a,b){return void 0===b&&(b=new c.Point),b.setTo(-a.x,-a.y)},c.Point.multiplyAdd=function(a,b,d,e){return void 0===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 void 0===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 void 0===b&&(b=new c.Point),b.setTo(-a.y,a.x)},c.Point.rperp=function(a,b){return void 0===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){void 0===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){void 0===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 void 0===b&&(b=new c.Point),b.setTo(-1*a.y,a.x)},c.Point.normalize=function(a,b){void 0===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){void 0===f&&(f=!1),void 0===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.x=b+g*Math.cos(h),a.y=d+g*Math.sin(h),a},c.Point.centroid=function(a,b){if(void 0===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.Polygon=function(){this.area=0,this._points=[],arguments.length>0&&this.setTo.apply(this,arguments),this.closed=!0,this.type=c.POLYGON},c.Polygon.prototype={toNumberArray:function(a){void 0===a&&(a=[]);for(var b=0;b=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,c=0,d=a.length;d>c;c++){if("number"==typeof a[c]){var e=new PIXI.Point(a[c],a[c+1]);c++}else var e=new PIXI.Point(a[c].x,a[c].y);this._points.push(e),e.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.Polygon=c.Polygon,c.Rectangle=function(a,b,d,e){a=a||0,b=b||0,d=d||0,e=e||0,this.x=a,this.y=b,this.width=d,this.height=e,this.type=c.RECTANGLE},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 void 0===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)},ceil:function(){this.x=Math.ceil(this.x),this.y=Math.ceil(this.y)},ceilAll:function(){this.x=Math.ceil(this.x),this.y=Math.ceil(this.y),this.width=Math.ceil(this.width),this.height=Math.ceil(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)},resize:function(a,b){return this.width=a,this.height=b,this},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){return c.Rectangle.intersects(this,a)},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)},random:function(a){return void 0===a&&(a=new c.Point),a.x=this.randomX,a.y=this.randomY,a},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,"bottomLeft",{get:function(){return new c.Point(this.x,this.bottom)},set:function(a){this.x=a.x,this.bottom=a.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 void 0===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 void 0===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 void 0===f&&(f=0),!(b>a.right+f||ca.bottom+f||ed&&(d=a.x),a.xf&&(f=a.y),a.y=c&&a<=c+this.width){var d=this.y;if(b>=d&&b<=d+this.height)return!0}return!1}},c.RoundedRectangle.prototype.constructor=c.RoundedRectangle,PIXI.RoundedRectangle=c.RoundedRectangle,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.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.displayObject=null,this.scale=null,this.totalInView=0,this._targetPosition=new c.Point,this._edge=0,this._position=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={preUpdate:function(){this.totalInView=0},follow:function(a,b){void 0===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),this.target.parent&&this._targetPosition.multiply(this.target.parent.worldTransform.a,this.target.parent.worldTransform.d),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.copyFrom(this.game.world.bounds)},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.Create=function(a){this.game=a,this.bmd=a.make.bitmapData(),this.canvas=this.bmd.canvas,this.ctx=this.bmd.context,this.palettes=[{0:"#000",1:"#9D9D9D",2:"#FFF",3:"#BE2633",4:"#E06F8B",5:"#493C2B",6:"#A46422",7:"#EB8931",8:"#F7E26B",9:"#2F484E",A:"#44891A",B:"#A3CE27",C:"#1B2632",D:"#005784",E:"#31A2F2",F:"#B2DCEF"},{0:"#000",1:"#191028",2:"#46af45",3:"#a1d685",4:"#453e78",5:"#7664fe",6:"#833129",7:"#9ec2e8",8:"#dc534b",9:"#e18d79",A:"#d6b97b",B:"#e9d8a1",C:"#216c4b",D:"#d365c8",E:"#afaab9",F:"#f5f4eb"},{0:"#000",1:"#2234d1",2:"#0c7e45",3:"#44aacc",4:"#8a3622",5:"#5c2e78",6:"#aa5c3d",7:"#b5b5b5",8:"#5e606e",9:"#4c81fb",A:"#6cd947",B:"#7be2f9",C:"#eb8a60",D:"#e23d69",E:"#ffd93f",F:"#fff"},{0:"#000",1:"#fff",2:"#8b4131",3:"#7bbdc5",4:"#8b41ac",5:"#6aac41",6:"#3931a4",7:"#d5de73",8:"#945a20",9:"#5a4100",A:"#bd736a",B:"#525252",C:"#838383",D:"#acee8b",E:"#7b73de",F:"#acacac"},{0:"#000",1:"#191028",2:"#46af45",3:"#a1d685",4:"#453e78",5:"#7664fe",6:"#833129",7:"#9ec2e8",8:"#dc534b",9:"#e18d79",A:"#d6b97b",B:"#e9d8a1",C:"#216c4b",D:"#d365c8",E:"#afaab9",F:"#fff"}]},c.Create.PALETTE_ARNE=0,c.Create.PALETTE_JMP=1,c.Create.PALETTE_CGA=2,c.Create.PALETTE_C64=3,c.Create.PALETTE_JAPANESE_MACHINE=4,c.Create.prototype={texture:function(a,b,c,d,e){void 0===c&&(c=8),void 0===d&&(d=c),void 0===e&&(e=0);var f=b[0].length*c,g=b.length*d;this.bmd.resize(f,g),this.bmd.clear();for(var h=0;hg;g+=e)this.ctx.fillRect(0,g,b,1);for(var h=0;b>h;h+=d)this.ctx.fillRect(h,0,1,c);return this.bmd.generateTexture(a)}},c.Create.prototype.constructor=c.Create,c.State=function(){this.game=null,this.key="",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={init:function(){},preload:function(){},loadUpdate:function(){},loadRender:function(){},create:function(){},update:function(){},preRender:function(){},render:function(){},resize:function(){},paused:function(){},resumed: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.onStateChange=new c.Signal,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),null!==this._pendingState&&"string"!=typeof this._pendingState&&this.add("default",this._pendingState,!0)},add:function(a,b,d){void 0===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.onPreRenderCallback=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){void 0===b&&(b=!0),void 0===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){void 0===a&&(a=!0),void 0===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){var a=this.current;if(this.clearCurrentState(),this.setCurrentState(this._pendingState),this.onStateChange.dispatch(this.current,a),this.current!==this._pendingState)return;this._pendingState=null,this.onPreloadCallback?(this.game.load.reset(!0),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||this.states[a].create||this.states[a].update||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,this.states[a].key=a},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&&this.game.physics.reset(),this.current=a,this._created=!1,this.onInitCallback.apply(this.callbackContext,this._args),a===this._pendingState&&(this._args=[]),this.game._kickstart=!0},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(a){this._created&&this.onPreRenderCallback&&this.onPreRenderCallback.call(this.callbackContext,this.game,a)},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.context.restore()):this.onRenderCallback.call(this.callbackContext,this.game)):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,this.current=""}},c.StateManager.prototype.constructor=c.StateManager,Object.defineProperty(c.StateManager.prototype,"created",{get:function(){return this._created}}),c.Signal=function(){},c.Signal.prototype={_bindings:null,_prevParams:null,memorize:!1,_shouldPropagate:!0,active:!0,_boundDispatch:!0,validateListener:function(a,b){if("function"!=typeof a)throw new Error("Phaser.Signal: listener is a required param of {fn}() and should be a Function.".replace("{fn}",b))},_registerListener:function(a,b,d,e,f){var g,h=this._indexOfListener(a,d);if(-1!==h){if(g=this._bindings[h],g.isOnce()!==b)throw new Error("You cannot add"+(b?"":"Once")+"() then add"+(b?"Once":"")+"() the same listener without removing the relationship first.")}else g=new c.SignalBinding(this,a,b,d,e,f),this._addBinding(g);return this.memorize&&this._prevParams&&g.execute(this._prevParams),g},_addBinding:function(a){this._bindings||(this._bindings=[]);var b=this._bindings.length;do b--;while(this._bindings[b]&&a._priority<=this._bindings[b]._priority);this._bindings.splice(b+1,0,a)},_indexOfListener:function(a,b){if(!this._bindings)return-1;void 0===b&&(b=null);for(var c,d=this._bindings.length;d--;)if(c=this._bindings[d],c._listener===a&&c.context===b)return d;return-1},has:function(a,b){return-1!==this._indexOfListener(a,b)},add:function(a,b,c){this.validateListener(a,"add");var d=[];if(arguments.length>3)for(var e=3;e3)for(var e=3;ea||a>=this.children.length?-1:this.getChildAt(a)},c.Group.prototype.create=function(a,b,c,d,e){void 0===e&&(e=!0);var f=new this.classType(this.game,a,b,c,d);return f.exists=e,f.visible=e,f.alive=e,this.addChild(f),f.z=this.children.length,this.enableBody&&this.game.physics.enable(f,this.physicsBodyType,this.enableBodyDebug),f.events&&f.events.onAddedToGroup$dispatch(f,this),null===this.cursor&&(this.cursor=f),f},c.Group.prototype.createMultiple=function(a,b,c,d){void 0===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 void 0===a&&(a=0),a>this.children.length-1&&(a=0),this.cursor?(this.cursorIndex=a,this.cursor=this.children[this.cursorIndex],this.cursor):void 0},c.Group.prototype.next=function(){return this.cursor?(this.cursorIndex>=this.children.length-1?this.cursorIndex=0:this.cursorIndex++,this.cursor=this.children[this.cursorIndex],this.cursor):void 0},c.Group.prototype.previous=function(){return this.cursor?(0===this.cursorIndex?this.cursorIndex=this.children.length-1:this.cursorIndex--,this.cursor=this.children[this.cursorIndex],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);return-1!==d?(b.parent&&(b.parent instanceof c.Group?b.parent.remove(b):b.parent.removeChild(b)),this.remove(a),this.addAt(b,d),a):void 0},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(void 0===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 void 0===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 void 0===g&&(g=!1),b=b.split("."),void 0===d&&(d=!1),void 0===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){void 0===c&&(c=!1),void 0===d&&(d=!1),void 0===f&&(f=!1),a=a.split("."),e=e||0;for(var g=0;g2){c=[];for(var d=2;d2){e=[];for(var f=2;f2){d=[null];for(var e=2;e2){d=[null];for(var e=2;e2){d=[null];for(var e=2;eb[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;for(var h=0,i=0;i0?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(void 0===b&&(b=!1),void 0===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.removeFromHash(a),this.updateZ(),this.cursor===a&&this.next(),b&&d&&d.destroy(!0),!0},c.Group.prototype.moveAll=function(a,b){if(void 0===b&&(b=!1),this.children.length>0&&a instanceof c.Group){do a.add(this.children[0],b);while(this.children.length>0);this.hash=[],this.cursor=null}return a},c.Group.prototype.removeAll=function(a,b){if(void 0===a&&(a=!1),void 0===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]);this.removeFromHash(c),a&&c&&c.destroy(!0)}while(this.children.length>0);this.hash=[],this.cursor=null}},c.Group.prototype.removeBetween=function(a,b,c,d){if(void 0===b&&(b=this.children.length-1),void 0===c&&(c=!1),void 0===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]);this.removeFromHash(f),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||(void 0===a&&(a=!0),void 0===b&&(b=!1),this.onDestroy.dispatch(this,a,b),this.removeAll(a),this.cursor=null,this.filters=null,this.pendingDestroy=!1,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)}}),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,this.game.state.onStateChange.add(this.stateChange,this)},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.stateChange=function(){this.x=0,this.y=0,this.camera.reset()},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.x=a,this.y=b,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,this.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();(f||g)&&(this.onResize&&this.onResize.call(this.onResizeContext,this,e),this.updateLayout(),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,Object.defineProperty(c.ScaleManager.prototype,"boundingParent",{get:function(){if(this.parentIsWindow||this.isFullScreen&&!this._createdFullScreenTarget)return null;var a=this.game.canvas&&this.game.canvas.parentNode;return a||null}}),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,"isGamePortrait",{get:function(){return this.height>this.width}}),Object.defineProperty(c.ScaleManager.prototype,"isGameLandscape",{get:function(){return this.width>this.height}}),c.Game=function(a,b,d,e,f,g,h,i){return this.id=c.GAMES.push(this)-1,this.config=null,this.physicsConfig=i,this.parent="",this.width=800,this.height=600,this.resolution=1,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.plugins=null,this.rnd=null,this.device=c.Device,this.camera=null,this.canvas=null,this.context=null,this.debug=null,this.particles=null,this.create=null,this.lockRender=!1,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.currentUpdateID=0,this.updatesThisFrame=1,this._deltaTime=0,this._lastCount=0,this._spiraling=0,this._kickstart=!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)),this.device.whenReady(this.boot,this),this},c.Game.prototype={parseConfig:function(a){this.config=a,void 0===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.resolution&&(this.resolution=a.resolution),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||(this.onPause=new c.Signal,this.onResume=new c.Signal,this.onBlur=new c.Signal,this.onFocus=new c.Signal,this.isBooted=!0,this.math=c.Math,this.scale=new c.ScaleManager(this,this._width,this._height),this.stage=new c.Stage(this),this.setUpRenderer(),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.create=new c.Create(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.debug={preUpdate:function(){},update:function(){},reset:function(){}},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._kickstart=!0,window.focus&&(!window.PhaserGlobal||window.PhaserGlobal&&!window.PhaserGlobal.stopFocus)&&window.focus(),this.raf.start())},showDebugHeader:function(){if(!window.PhaserGlobal||!window.PhaserGlobal.hideBanner){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: #9854d8","background: #6c2ca7","color: #ffffff; background: #450f78;","background: #6c2ca7","background: #9854d8","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:this.resolution,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:this.resolution,antialias:this.antialias,preserveDrawingBuffer:this.preserveDrawingBuffer}),this.context=null,this.canvas.addEventListener("webglcontextlost",this.contextLost.bind(this),!1),this.canvas.addEventListener("webglcontextrestored",this.contextRestored.bind(this),!1);this.renderType!==c.HEADLESS&&(this.stage.smoothed=this.antialias,c.Canvas.addToDOM(this.canvas,this.parent,!1),c.Canvas.setTouchAction(this.canvas))},contextLost:function(a){a.preventDefault(),this.renderer.contextLost=!0},contextRestored:function(){this.renderer.initContext(),this.cache.clearGLTextures(),this.renderer.contextLost=!1},update:function(a){if(this.time.update(a),this._kickstart)return this.updateLogic(1/this.time.desiredFps),this.stage.updateTransform(),this.updateRender(this.time.slowMotion*this.time.desiredFps),void(this._kickstart=!1);if(this._spiraling>1&&!this.forceSingleUpdate)this.time.time>this._nextFpsNotification&&(this._nextFpsNotification=this.time.time+1e4,this.fpsProblemNotifier.dispatch()),this._deltaTime=0,this._spiraling=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);var c=0;for(this.updatesThisFrame=Math.floor(this._deltaTime/b),this.forceSingleUpdate&&(this.updatesThisFrame=Math.min(1,this.updatesThisFrame));this._deltaTime>=b&&(this._deltaTime-=b,this.currentUpdateID=c,this.updateLogic(1/this.time.desiredFps),this.stage.updateTransform(),c++,!this.forceSingleUpdate||1!==c););c>this._lastCount?this._spiraling++:c=c.Input.MAX_POINTERS)return console.warn("Phaser.Input.addPointer: Maximum limit of "+c.Input.MAX_POINTERS+" pointers reached."),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&&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 a-b},getPointer:function(a){void 0===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._pollCounterthis.game.time.time},justReleased:function(a){return a=a||250,this.isUp&&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,this.altKey=!1,this.shiftKey=!1,this.ctrlKey=!1},destroy:function(){this.onDown.dispose(),this.onUp.dispose(),this.onFloat.dispose(),this.parent=null,this.game=null}},c.DeviceButton.prototype.constructor=c.DeviceButton,Object.defineProperty(c.DeviceButton.prototype,"duration",{get:function(){return this.isUp?-1:this.game.time.time-this.timeDown}}),c.Pointer=function(a,b){this.game=a,this.id=b,this.type=c.POINTER,this.exists=!0,this.identifier=0,this.pointerId=null,this.target=null,this.button=null,this.leftButton=new c.DeviceButton(this,c.Pointer.LEFT_BUTTON),this.middleButton=new c.DeviceButton(this,c.Pointer.MIDDLE_BUTTON),this.rightButton=new c.DeviceButton(this,c.Pointer.RIGHT_BUTTON),this.backButton=new c.DeviceButton(this,c.Pointer.BACK_BUTTON),this.forwardButton=new c.DeviceButton(this,c.Pointer.FORWARD_BUTTON),this.eraserButton=new c.DeviceButton(this,c.Pointer.ERASER_BUTTON),this._holdSent=!1,this._history=[],this._nextDrop=0,this._stateReset=!1,this.withinGame=!1,this.clientX=-1,this.clientY=-1,this.pageX=-1,this.pageY=-1,this.screenX=-1,this.screenY=-1,this.rawMovementX=0,this.rawMovementY=0,this.movementX=0,this.movementY=0,this.x=-1,this.y=-1,this.isMouse=0===b,this.isDown=!1,this.isUp=!0,this.timeDown=0,this.timeUp=0,this.previousTapTime=0,this.totalTouches=0,this.msSinceLastClick=Number.MAX_VALUE,this.targetObject=null,this.active=!1,this.dirty=!1,this.position=new c.Point,this.positionDown=new c.Point,this.positionUp=new c.Point,this.circle=new c.Circle(0,0,44),this._clickTrampolines=null,this._trampolineTargetObject=null},c.Pointer.NO_BUTTON=0,c.Pointer.LEFT_BUTTON=1,c.Pointer.RIGHT_BUTTON=2,c.Pointer.MIDDLE_BUTTON=4,c.Pointer.BACK_BUTTON=8,c.Pointer.FORWARD_BUTTON=16,c.Pointer.ERASER_BUTTON=32,c.Pointer.prototype={resetButtons:function(){this.isDown=!1,this.isUp=!0,this.isMouse&&(this.leftButton.reset(),this.middleButton.reset(),this.rightButton.reset(),this.backButton.reset(),this.forwardButton.reset(),this.eraserButton.reset())},updateButtons:function(a){this.button=a.button;var b=a.buttons;void 0!==b&&(c.Pointer.LEFT_BUTTON&b?this.leftButton.start(a):this.leftButton.stop(a),c.Pointer.RIGHT_BUTTON&b?this.rightButton.start(a):this.rightButton.stop(a),c.Pointer.MIDDLE_BUTTON&b?this.middleButton.start(a):this.middleButton.stop(a),c.Pointer.BACK_BUTTON&b?this.backButton.start(a):this.backButton.stop(a),c.Pointer.FORWARD_BUTTON&b?this.forwardButton.start(a):this.forwardButton.stop(a),c.Pointer.ERASER_BUTTON&b?this.eraserButton.start(a):this.eraserButton.stop(a),a.ctrlKey&&this.leftButton.isDown&&this.rightButton.start(a),this.isUp=!0,this.isDown=!1,(this.leftButton.isDown||this.rightButton.isDown||this.middleButton.isDown||this.backButton.isDown||this.forwardButton.isDown||this.eraserButton.isDown)&&(this.isUp=!1,this.isDown=!0))},start:function(a){return a.pointerId&&(this.pointerId=a.pointerId),this.identifier=a.identifier,this.target=a.target,this.isMouse?this.updateButtons(a):(this.isDown=!0,this.isUp=!1),this._history=[],this.active=!0,this.withinGame=!0,this.dirty=!1,this._clickTrampolines=null,this._trampolineTargetObject=null,this.msSinceLastClick=this.game.time.time-this.timeDown,this.timeDown=this.game.time.time,this._holdSent=!1,this.move(a,!0),this.positionDown.setTo(this.x,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.totalActivePointers)&&(this.game.input.x=this.x,this.game.input.y=this.y,this.game.input.position.setTo(this.x,this.y),this.game.input.onDown.dispatch(this,a),this.game.input.resetSpeed(this.x,this.y)),this._stateReset=!1,this.totalTouches++,null!==this.targetObject&&this.targetObject._touchedHandler(this),this},update:function(){this.active&&(this.dirty&&(this.game.input.interactiveItems.total>0&&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.totalActivePointers)&&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(void 0===b&&(b=!1),void 0!==a.button&&(this.button=a.button),b&&this.updateButtons(a),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.totalActivePointers)&&(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.renderOrderID,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.renderOrderID,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&&this.withinGame?void a.preventDefault():(this.isMouse?this.updateButtons(a):(this.isDown=!1,this.isUp=!0),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.totalActivePointers)&&(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.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&&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;fd;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}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 void 0===c&&(c=!0),0===this.sprite.scale.x||0===this.sprite.scale.y||this.priorityIDa||this.priorityID===a&&this.sprite.renderOrderIDb;b++)if(this._pointerData[b].isOver)return!0}return!1},pointerOut:function(a){if(this.enabled){if(void 0!==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)?(void 0===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)?(void 0===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&&this._pointerData[a.id].isOver){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.snapPoint.set(this.sprite.cameraOffset.x,this.sprite.cameraOffset.y))):(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,this.snapPoint.set(this.sprite.x,this.sprite.y))),this.sprite.events.onDragUpdate.dispatch(this.sprite,a,b,c,this.snapPoint),!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){var b=this.sprite.x,c=this.sprite.y;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 d=this.sprite.getBounds();this.sprite.x=this.globalToLocalX(a.x)+(this.sprite.x-d.centerX),this.sprite.y=this.globalToLocalY(a.y)+(this.sprite.y-d.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.dragStartPoint.set(b,c),this.sprite.events.onDragStart$dispatch(this.sprite,a,b,c)},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){void 0===a&&(a=!0),void 0===b&&(b=!0),this.allowHorizontalDrag=a,this.allowVerticalDrag=b},enableSnap:function(a,b,c,d,e,f){void 0===c&&(c=!0),void 0===d&&(d=!1),void 0===e&&(e=0),void 0===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.leftthis.boundsRect.right&&(this.sprite.x=this.boundsRect.right-(this.sprite.width-this.sprite.offsetX)),this.sprite.topthis.boundsRect.bottom&&(this.sprite.y=this.boundsRect.bottom-(this.sprite.height-this.sprite.offsetY)))},checkBoundsSprite:function(){this.sprite.fixedToCamera&&this.boundsSprite.fixedToCamera?(this.sprite.cameraOffset.xthis.boundsSprite.cameraOffset.x+this.boundsSprite.width&&(this.sprite.cameraOffset.x=this.boundsSprite.cameraOffset.x+this.boundsSprite.width-this.sprite.width),this.sprite.cameraOffset.ythis.boundsSprite.cameraOffset.y+this.boundsSprite.height&&(this.sprite.cameraOffset.y=this.boundsSprite.cameraOffset.y+this.boundsSprite.height-this.sprite.height)):(this.sprite.leftthis.boundsSprite.right&&(this.sprite.x=this.boundsSprite.right-(this.sprite.width-this.sprite.offsetX)),this.sprite.topthis.boundsSprite.bottom&&(this.sprite.y=this.boundsSprite.bottom-(this.sprite.height-this.sprite.offsetY)))}},c.InputHandler.prototype.constructor=c.InputHandler,c.Gamepad=function(a){this.game=a,this._gamepadIndexMap={},this._rawPads=[],this._active=!1,this.enabled=!0,this._gamepadSupportAvailable=!!navigator.webkitGetGamepads||!!navigator.webkitGamepads||-1!=navigator.userAgent.indexOf("Firefox/")||!!navigator.getGamepads,this._prevRawGamepadTypes=[],this._prevTimestamps=[],this.callbackContext=this,this.onConnectCallback=null,this.onDisconnectCallback=null,this.onDownCallback=null,this.onUpCallback=null,this.onAxisCallback=null,this.onFloatCallback=null,this._ongamepadconnected=null,this._gamepaddisconnected=null,this._gamepads=[new c.SinglePad(a,this),new c.SinglePad(a,this),new c.SinglePad(a,this),new c.SinglePad(a,this)]},c.Gamepad.prototype={addCallbacks:function(a,b){"undefined"!=typeof b&&(this.onConnectCallback="function"==typeof b.onConnect?b.onConnect:this.onConnectCallback,this.onDisconnectCallback="function"==typeof b.onDisconnect?b.onDisconnect:this.onDisconnectCallback,this.onDownCallback="function"==typeof b.onDown?b.onDown:this.onDownCallback,this.onUpCallback="function"==typeof b.onUp?b.onUp:this.onUpCallback,this.onAxisCallback="function"==typeof b.onAxis?b.onAxis:this.onAxisCallback,this.onFloatCallback="function"==typeof b.onFloat?b.onFloat:this.onFloatCallback,this.callbackContext=a)},start:function(){if(!this._active){this._active=!0;var a=this;this._onGamepadConnected=function(b){return a.onGamepadConnected(b)},this._onGamepadDisconnected=function(b){return a.onGamepadDisconnected(b)},window.addEventListener("gamepadconnected",this._onGamepadConnected,!1),window.addEventListener("gamepaddisconnected",this._onGamepadDisconnected,!1)}},onGamepadConnected:function(a){var b=a.gamepad;this._rawPads.push(b),this._gamepads[b.index].connect(b)},onGamepadDisconnected:function(a){var b=a.gamepad;for(var c in this._rawPads)this._rawPads[c].index===b.index&&this._rawPads.splice(c,1);this._gamepads[b.index].disconnect()},update:function(){this._pollGamepads(),this.pad1.pollStatus(),this.pad2.pollStatus(),this.pad3.pollStatus(),this.pad4.pollStatus()},_pollGamepads:function(){if(navigator.getGamepads)var a=navigator.getGamepads();else if(navigator.webkitGetGamepads)var a=navigator.webkitGetGamepads();else if(navigator.webkitGamepads)var a=navigator.webkitGamepads();if(a){this._rawPads=[];for(var b=!1,c=0;c0&&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.maxHealth&&(this.health=this.maxHealth)),this}},c.Component.InCamera=function(){},c.Component.InCamera.prototype={inCamera:{get:function(){return this.game.world.camera.view.intersects(this._bounds)}}},c.Component.InputEnabled=function(){},c.Component.InputEnabled.prototype={input:null,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()}}},c.Component.InWorld=function(){},c.Component.InWorld.preUpdate=function(){if((this.autoCull||this.checkWorldBounds)&&(this._bounds.copyFrom(this.getBounds()),this._bounds.x+=this.game.camera.view.x,this._bounds.y+=this.game.camera.view.y,this.autoCull&&(this.game.world.camera.view.intersects(this._bounds)?(this.renderable=!0,this.game.world.camera.totalInView++):this.renderable=!1),this.checkWorldBounds))if(this._outOfBoundsFired&&this.game.world.bounds.intersects(this._bounds))this._outOfBoundsFired=!1,this.events.onEnterBounds$dispatch(this);else if(!this._outOfBoundsFired&&!this.game.world.bounds.intersects(this._bounds)&&(this._outOfBoundsFired=!0,this.events.onOutOfBounds$dispatch(this),this.outOfBoundsKill))return this.kill(),!1;return!0},c.Component.InWorld.prototype={checkWorldBounds:!1,outOfBoundsKill:!1,_outOfBoundsFired:!1,inWorld:{get:function(){return this.game.world.bounds.intersects(this.getBounds())}}},c.Component.LifeSpan=function(){},c.Component.LifeSpan.preUpdate=function(){return this.lifespan>0&&(this.lifespan-=this.game.time.physicsElapsedMS,this.lifespan<=0)?(this.kill(),!1):!0},c.Component.LifeSpan.prototype={alive:!0,lifespan:0,revive:function(a){return void 0===a&&(a=1),this.alive=!0,this.exists=!0,this.visible=!0,"number"==typeof this.health&&(this.health=a),this.events&&this.events.onRevived$dispatch(this),this},kill:function(){return this.alive=!1,this.exists=!1,this.visible=!1,this.events&&this.events.onKilled$dispatch(this),this}},c.Component.LoadTexture=function(){},c.Component.LoadTexture.prototype={customRender:!1,_frame:null,loadTexture:function(a,b,d){b=b||0,(d||void 0===d)&&this.animations&&this.animations.stop(),this.key=a,this.customRender=!1;var e=this.game.cache,f=!0,g=!this.texture.baseTexture.scaleMode;if(c.RenderTexture&&a instanceof c.RenderTexture)this.key=a.key,this.setTexture(a);else if(c.BitmapData&&a instanceof c.BitmapData)this.customRender=!0,this.setTexture(a.texture),e.hasFrameData(a.key,c.Cache.BITMAPDATA)&&(f=!this.animations.loadFrameData(e.getFrameData(a.key,c.Cache.BITMAPDATA),b));else if(c.Video&&a instanceof c.Video){this.customRender=!0;var h=a.texture.valid;this.setTexture(a.texture),this.setFrame(a.texture.frame.clone()),a.onChangeSource.add(this.resizeFrame,this),this.texture.valid=h}else if(a instanceof PIXI.Texture)this.setTexture(a);else{var i=e.getImage(a,!0);this.key=i.key,this.setTexture(new PIXI.Texture(i.base)),f=!this.animations.loadFrameData(i.frameData,b)}f&&(this._frame=c.Rectangle.clone(this.texture.frame)),g||(this.texture.baseTexture.scaleMode=1)},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.requiresReTint=!0,this.texture._updateUvs(),this.tilingTexture&&(this.refreshTexture=!0)},resizeFrame:function(a,b,c){this.texture.frame.resize(b,c),this.texture.setFrame(this.texture.frame)},resetFrame:function(){this._frame&&this.setFrame(this._frame)},frame:{get:function(){return this.animations.frame},set:function(a){this.animations.frame=a}},frameName:{get:function(){return this.animations.frameName},set:function(a){this.animations.frameName=a}}},c.Component.Overlap=function(){},c.Component.Overlap.prototype={overlap:function(a){return c.Rectangle.intersects(this.getBounds(),a.getBounds())}},c.Component.PhysicsBody=function(){},c.Component.PhysicsBody.preUpdate=function(){return this.fresh&&this.exists?(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.previousPosition.set(this.world.x,this.world.y),this.previousRotation=this.rotation,this.body&&this.body.preUpdate(),this.fresh=!1,!1):(this.previousPosition.set(this.world.x,this.world.y),this.previousRotation=this.rotation,this._exists&&this.parent.exists?!0:(this.renderOrderID=-1,!1))},c.Component.PhysicsBody.postUpdate=function(){this.exists&&this.body&&this.body.postUpdate()},c.Component.PhysicsBody.prototype={body:null,x:{get:function(){return this.position.x},set:function(a){this.position.x=a,this.body&&!this.body.dirty&&(this.body._reset=!0)}},y:{get:function(){return this.position.y},set:function(a){this.position.y=a,this.body&&!this.body.dirty&&(this.body._reset=!0)}}},c.Component.Reset=function(){},c.Component.Reset.prototype.reset=function(a,b,c){return void 0===c&&(c=1),this.world.set(a,b),this.position.set(a,b),this.fresh=!0,this.exists=!0,this.visible=!0,this.renderable=!0,this.components.InWorld&&(this._outOfBoundsFired=!1),this.components.LifeSpan&&(this.alive=!0,this.health=c),this.components.PhysicsBody&&this.body&&this.body.reset(a,b,!1,!1),this},c.Component.ScaleMinMax=function(){},c.Component.ScaleMinMax.prototype={transformCallback:this.checkTransform,transformCallbackContext:this,scaleMin:null,scaleMax:null,checkTransform:function(a){this.scaleMin&&(a.athis.scaleMax.x&&(a.a=this.scaleMax.x),a.d>this.scaleMax.y&&(a.d=this.scaleMax.y))},setScaleMinMax:function(a,b,d,e){void 0===b?b=d=e=a:void 0===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)}},c.Component.Smoothed=function(){},c.Component.Smoothed.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)}}},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 void 0===f&&(f=this.world),f.add(new c.Image(this.game,a,b,d,e))},sprite:function(a,b,c,d,e){return void 0===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 void 0===a&&(a=null),void 0===b&&(b="group"),void 0===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 void 0===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 void 0===g&&(g=this.world),g.add(new c.Rope(this.game,a,b,d,e,f))},text:function(a,b,d,e,f){return void 0===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 void 0===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 void 0===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 void 0===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){(void 0===d||""===d)&&(d=this.game.rnd.uuid()),void 0===e&&(e=!1);var f=new c.RenderTexture(this.game,a,b,d);return e&&this.game.cache.addRenderTexture(d,f),f},video:function(a,b){return new c.Video(this.game,a,b)},bitmapData:function(a,b,d,e){void 0===e&&(e=!1),(void 0===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,this.game.tweens)},group:function(a,b,d,e,f){return new c.Group(this.game,a,b,d,e,f)},spriteBatch:function(a,b,d){return void 0===b&&(b="group"),void 0===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,g){return new c.BitmapText(this.game,a,b,d,e,f,g)},tilemap:function(a,b,d,e,f){return new c.Tilemap(this.game,a,b,d,e,f)},renderTexture:function(a,b,d,e){(void 0===d||""===d)&&(d=this.game.rnd.uuid()),void 0===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){void 0===e&&(e=!1),(void 0===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.Sprite=function(a,b,d,e,f){b=b||0,d=d||0,e=e||null,f=f||null,this.type=c.SPRITE,this.physicsType=c.SPRITE,PIXI.Sprite.call(this,PIXI.TextureCache.__default),c.Component.Core.init.call(this,a,b,d,e,f)},c.Sprite.prototype=Object.create(PIXI.Sprite.prototype),c.Sprite.prototype.constructor=c.Sprite,c.Component.Core.install.call(c.Sprite.prototype,["Angle","Animation","AutoCull","Bounds","BringToTop","Crop","Delta","Destroy","FixedToCamera","Health","InCamera","InputEnabled","InWorld","LifeSpan","LoadTexture","Overlap","PhysicsBody","Reset","ScaleMinMax","Smoothed"]),c.Sprite.prototype.preUpdatePhysics=c.Component.PhysicsBody.preUpdate,c.Sprite.prototype.preUpdateLifeSpan=c.Component.LifeSpan.preUpdate,c.Sprite.prototype.preUpdateInWorld=c.Component.InWorld.preUpdate,c.Sprite.prototype.preUpdateCore=c.Component.Core.preUpdate,c.Sprite.prototype.preUpdate=function(){return this.preUpdatePhysics()&&this.preUpdateLifeSpan()&&this.preUpdateInWorld()?this.preUpdateCore():!1},c.Image=function(a,b,d,e,f){b=b||0,d=d||0,e=e||null,f=f||null,this.type=c.IMAGE,PIXI.Sprite.call(this,PIXI.TextureCache.__default),c.Component.Core.init.call(this,a,b,d,e,f)},c.Image.prototype=Object.create(PIXI.Sprite.prototype),c.Image.prototype.constructor=c.Image,c.Component.Core.install.call(c.Image.prototype,["Angle","Animation","AutoCull","Bounds","BringToTop","Crop","Destroy","FixedToCamera","InputEnabled","LifeSpan","LoadTexture","Overlap","Reset","Smoothed"]),c.Image.prototype.preUpdateInWorld=c.Component.InWorld.preUpdate,c.Image.prototype.preUpdateCore=c.Component.Core.preUpdate,c.Image.prototype.preUpdate=function(){return this.preUpdateInWorld()?this.preUpdateCore():!1},c.TileSprite=function(a,b,d,e,f,g,h){b=b||0,d=d||0,e=e||256,f=f||256,g=g||null,h=h||null,this.type=c.TILESPRITE,this.physicsType=c.SPRITE,this._scroll=new c.Point;var i=a.cache.getImage("__default",!0);PIXI.TilingSprite.call(this,new PIXI.Texture(i.base),e,f),c.Component.Core.init.call(this,a,b,d,g,h)},c.TileSprite.prototype=Object.create(PIXI.TilingSprite.prototype),c.TileSprite.prototype.constructor=c.TileSprite,c.Component.Core.install.call(c.TileSprite.prototype,["Angle","Animation","AutoCull","Bounds","BringToTop","Destroy","FixedToCamera","Health","InCamera","InputEnabled","InWorld","LifeSpan","LoadTexture","Overlap","PhysicsBody","Reset","Smoothed"]),c.TileSprite.prototype.preUpdatePhysics=c.Component.PhysicsBody.preUpdate,c.TileSprite.prototype.preUpdateLifeSpan=c.Component.LifeSpan.preUpdate,c.TileSprite.prototype.preUpdateInWorld=c.Component.InWorld.preUpdate,c.TileSprite.prototype.preUpdateCore=c.Component.Core.preUpdate,c.TileSprite.prototype.preUpdate=function(){return 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.preUpdatePhysics()&&this.preUpdateLifeSpan()&&this.preUpdateInWorld()?this.preUpdateCore():!1},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.destroy=function(a){c.Component.Destroy.prototype.destroy.call(this,a),PIXI.TilingSprite.prototype.destroy.call(this)},c.TileSprite.prototype.reset=function(a,b){return c.Component.Reset.prototype.reset.call(this,a,b),this.tilePosition.x=0,this.tilePosition.y=0,this},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.type=c.ROPE,this._scroll=new c.Point,PIXI.Rope.call(this,PIXI.TextureCache.__default,this.points),c.Component.Core.init.call(this,a,b,d,e,f)},c.Rope.prototype=Object.create(PIXI.Rope.prototype),c.Rope.prototype.constructor=c.Rope,c.Component.Core.install.call(c.Rope.prototype,["Angle","Animation","AutoCull","Bounds","BringToTop","Crop","Delta","Destroy","FixedToCamera","InputEnabled","InWorld","LifeSpan","LoadTexture","Overlap","PhysicsBody","Reset","ScaleMinMax","Smoothed"]),c.Rope.prototype.preUpdatePhysics=c.Component.PhysicsBody.preUpdate,c.Rope.prototype.preUpdateLifeSpan=c.Component.LifeSpan.preUpdate,c.Rope.prototype.preUpdateInWorld=c.Component.InWorld.preUpdate,c.Rope.prototype.preUpdateCore=c.Component.Core.preUpdate,c.Rope.prototype.preUpdate=function(){return 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.preUpdatePhysics()&&this.preUpdateLifeSpan()&&this.preUpdateInWorld()?this.preUpdateCore():!1},c.Rope.prototype.update=function(){this._hasUpdateAnimation&&this.updateAnimation.call(this)},c.Rope.prototype.reset=function(a,b){return c.Component.Reset.prototype.reset.call(this,a,b),this.tilePosition.x=0,this.tilePosition.y=0,this},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=Math.abs(a);var f=this.width-a;c.drawImage(e,0,0,a,d,f,0,a,d),c.drawImage(e,a,0,f,d,0,0,f,d)}else{var f=this.width-a;c.drawImage(e,f,0,a,d,0,0,a,d),c.drawImage(e,0,0,f,d,a,0,f,d)}return this.clear(),this.copy(this._swapCanvas)},moveV:function(a){var b=this._swapCanvas,c=b.getContext("2d"),d=this.width,e=this.canvas;if(c.clearRect(0,0,this.width,this.height),0>a){a=Math.abs(a);var f=this.height-a;c.drawImage(e,0,0,d,a,0,f,d,a),c.drawImage(e,0,a,d,f,0,0,d,f)}else{var f=this.height-a;c.drawImage(e,0,f,d,a,0,0,d,a),c.drawImage(e,0,0,d,f,0,a,d,f) -}return this.clear(),this.copy(this._swapCanvas)},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){void 0===c&&(c=0),void 0===d&&(d=0),void 0===e&&(e=this.width),void 0===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((void 0===a||null===a)&&(a=!1),(void 0===b||null===b)&&(b=!1),(void 0===d||null===d)&&(d=!1),a||b||d){void 0===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){void 0===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 void 0===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((void 0===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,(void 0===g||null===g)&&(g=a.x),(void 0===h||null===h)&&(h=a.y),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(void 0===b||null===b)&&(b=0),(void 0===d||null===d)&&(d=0),e&&(this._size.x=e),f&&(this._size.y=f),(void 0===g||null===g)&&(g=b),(void 0===h||null===h)&&(h=d),(void 0===i||null===i)&&(i=this._size.x),(void 0===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),void 0===q&&(q=null),void 0===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)},drawGroup:function(a,b,c){return a.total>0&&a.forEachExists(this.copy,this,null,null,null,null,null,null,null,null,null,null,null,null,null,null,b,c),this},shadow:function(a,b,c,d){void 0===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 void 0===d||null===d?this.draw(b).blendSourceAtop():this.draw(b,d.x,d.y,d.width,d.height).blendSourceAtop(),void 0===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 void 0===e&&(e=255),void 0===f&&(f=!1),void 0===g&&(g=b),void 0===h&&(h=c),void 0===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},text:function(a,b,c,d,e,f){void 0===b&&(b=0),void 0===c&&(c=0),void 0===d&&(d="14px Courier"),void 0===e&&(e="rgb(255,255,255)"),void 0===f&&(f=!0);var g=this.context.font;this.context.font=d,f&&(this.context.fillStyle="rgb(0,0,0)",this.context.fillText(a,b+1,c+1)),this.context.fillStyle=e,this.context.fillText(a,b,c),this.context.font=g},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(void 0===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,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,PIXI.Graphics.prototype.lineStyle=function(a,b,c){return this.lineWidth=a||0,this.lineColor=b||0,this.lineAlpha=void 0===c?1:c,this.currentPath&&(this.currentPath.shape.points.length?this.drawShape(new PIXI.Polygon(this.currentPath.shape.points.slice(-2))):(this.currentPath.lineWidth=this.lineWidth,this.currentPath.lineColor=this.lineColor,this.currentPath.lineAlpha=this.lineAlpha)),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||this.moveTo(0,0),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){if(d===e)return this;void 0===f&&(f=!1),!f&&d>=e?e+=2*Math.PI:f&&e>=d&&(d+=2*Math.PI);var g=f?-1*(d-e):e-d,h=40*Math.ceil(Math.abs(g)/(2*Math.PI));if(0===g)return this;var i=a+Math.cos(d)*c,j=b+Math.sin(d)*c;f&&this.filling?this.moveTo(a,b):this.moveTo(i,j);for(var k=this.currentPath.shape.points,l=g/(2*h),m=2*l,n=Math.cos(l),o=Math.sin(l),p=h-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);k.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){(a instanceof c.Polygon||a instanceof PIXI.Polygon)&&(a=a.points);var b=a;if(!Array.isArray(b)){b=new Array(arguments.length);for(var d=0;dp?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._currentBounds=this._bounds}return this._currentBounds},PIXI.Graphics.prototype.containsPoint=function(a){this.worldTransform.applyInverse(a,tempPoint);for(var b=this.graphicsData,c=0;ch?h:a,b=h+j>b?h+j:b,d=d>i?i:d,e=i+k>e?i+k:e;else if(n===PIXI.Graphics.CIRC)h=f.x,i=f.y,j=f.radius+o/2,k=f.radius+o/2,a=a>h-j?h-j:a,b=h+j>b?h+j:b,d=d>i-k?i-k:d,e=i+k>e?i+k:e;else if(n===PIXI.Graphics.ELIP)h=f.x,i=f.y,j=f.width+o/2,k=f.height+o/2,a=a>h-j?h-j:a,b=h+j>b?h+j:b,d=d>i-k?i-k:d,e=i+k>e?i+k:e;else{g=f.points;for(var p=0;ph-o?h-o:a,b=h+o>b?h+o:b,d=d>i-o?i-o:d,e=i+o>e?i+o:e}}else a=0,b=0,d=0,e=0;var q=this.boundsPadding;this._localBounds.x=a-q,this._localBounds.width=b-a+2*q,this._localBounds.y=d-q,this._localBounds.height=e-d+2*q},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,a instanceof c.Polygon&&(a=a.clone(),a.flatten());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},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.GraphicsData=function(a,b,c,d,e,f,g){this.lineWidth=a,this.lineColor=b,this.lineAlpha=c,this._lineTint=b,this.fillColor=d,this.fillAlpha=e,this._fillTint=d,this.fill=f,this.shape=g,this.type=g.type},PIXI.GraphicsData.prototype.constructor=PIXI.GraphicsData,PIXI.GraphicsData.prototype.clone=function(){return new GraphicsData(this.lineWidth,this.lineColor,this.lineAlpha,this.fillColor,this.fillAlpha,this.fill,this.shape)},c.Graphics=function(a,b,d){void 0===b&&(b=0),void 0===d&&(d=0),this.type=c.GRAPHICS,this.physicsType=c.SPRITE,PIXI.Graphics.call(this),c.Component.Core.init.call(this,a,b,d,"",null)},c.Graphics.prototype=Object.create(PIXI.Graphics.prototype),c.Graphics.prototype.constructor=c.Graphics,c.Component.Core.install.call(c.Graphics.prototype,["Angle","AutoCull","Bounds","Destroy","FixedToCamera","InputEnabled","InWorld","LifeSpan","PhysicsBody","Reset"]),c.Graphics.prototype.preUpdatePhysics=c.Component.PhysicsBody.preUpdate,c.Graphics.prototype.preUpdateLifeSpan=c.Component.LifeSpan.preUpdate,c.Graphics.prototype.preUpdateInWorld=c.Component.InWorld.preUpdate,c.Graphics.prototype.preUpdateCore=c.Component.Core.preUpdate,c.Graphics.prototype.preUpdate=function(){return this.preUpdatePhysics()&&this.preUpdateLifeSpan()&&this.preUpdateInWorld()?this.preUpdateCore():!1},c.Graphics.prototype.destroy=function(a){this.clear(),c.Component.Destroy.prototype.destroy.call(this,a)},c.Graphics.prototype.drawTriangle=function(a,b){void 0===b&&(b=!1);var d=new c.Polygon(a);if(b){var e=new c.Point(this.game.camera.x-a[0].x,this.game.camera.y-a[0].y),f=new c.Point(a[1].x-a[0].x,a[1].y-a[0].y),g=new c.Point(a[1].x-a[2].x,a[1].y-a[2].y),h=g.cross(f);e.dot(h)>0&&this.drawPolygon(d)}else this.drawPolygon(d)},c.Graphics.prototype.drawTriangles=function(a,b,d){void 0===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;e0&&(j+=c[k-1]),h=j+l}else for(var k=0;kq&&Math.abs(q)>o&&(q=-o),0!==q){var m=q*(b.length-1);p+=m}this.canvas.height=p*this._res,this.context.scale(this._res,this._res),navigator.isCocoonJS&&this.context.clearRect(0,0,this.canvas.width,this.canvas.height),this.style.backgroundColor&&(this.context.fillStyle=this.style.backgroundColor,this.context.fillRect(0,0,this.canvas.width,this.canvas.height)),this.context.fillStyle=this.style.fill,this.context.font=this.style.font,this.context.strokeStyle=this.style.stroke,this.context.textBaseline="alphabetic",this.context.lineWidth=this.style.strokeThickness,this.context.lineCap="round",this.context.lineJoin="round";var r,s;for(this._charCount=0,g=0;g0&&(s+=q*g),"right"===this.style.align?r+=e-d[g]:"center"===this.style.align&&(r+=(e-d[g])/2),this.autoRound&&(r=Math.round(r),s=Math.round(s)),this.colors.length>0||this.strokeColors.length>0?this.updateLine(b[g],r,s):(this.style.stroke&&this.style.strokeThickness&&(this.updateShadow(this.style.shadowStroke),0===c?this.context.strokeText(b[g],r,s):this.renderTabLine(b[g],r,s,!1)),this.style.fill&&(this.updateShadow(this.style.shadowFill),0===c?this.context.fillText(b[g],r,s):this.renderTabLine(b[g],r,s,!0)));this.updateTexture()},c.Text.prototype.renderTabLine=function(a,b,c,d){var e=a.split(/(?:\t)/),f=this.style.tabs,g=0;if(Array.isArray(f))for(var h=0,i=0;i0&&(h+=f[i-1]),g=b+h,d?this.context.fillText(e[i],g,c):this.context.strokeText(e[i],g,c);else for(var i=0;ie?(g>0&&(b+="\n"),b+=f[g]+" ",e=this.style.wordWrapWidth-h):(e-=i,b+=f[g]+" ")}dd&&(this.style.wordWrapWidth=d)),this.updateTexture(),this},c.Text.prototype.updateTexture=function(){var a=this.texture.baseTexture,b=this.texture.crop,c=this.texture.frame,d=this.canvas.width,e=this.canvas.height;if(a.width=d,a.height=e,b.width=d,b.height=e,c.width=d,c.height=e,this.texture.width=d,this.texture.height=e,this._width=d,this._height=e,this.textBounds){var f=this.textBounds.x,g=this.textBounds.y;"right"===this.style.boundsAlignH?f=this.textBounds.width-this.canvas.width:"center"===this.style.boundsAlignH&&(f=this.textBounds.halfWidth-this.canvas.width/2),"bottom"===this.style.boundsAlignV?g=this.textBounds.height-this.canvas.height:"middle"===this.style.boundsAlignV&&(g=this.textBounds.halfHeight-this.canvas.height/2),this.pivot.x=-f,this.pivot.y=-g}this.renderable=0!==d&&0!==e,this.texture.baseTexture.dirty()},c.Text.prototype._renderWebGL=function(a){this.dirty&&(this.updateText(),this.dirty=!1),PIXI.Sprite.prototype._renderWebGL.call(this,a)},c.Text.prototype._renderCanvas=function(a){this.dirty&&(this.updateText(),this.dirty=!1),PIXI.Sprite.prototype._renderCanvas.call(this,a)},c.Text.prototype.determineFontProperties=function(a){var b=c.Text.fontPropertiesCache[a];if(!b){b={};var d=c.Text.fontPropertiesCanvas,e=c.Text.fontPropertiesContext;e.font=a;var f=Math.ceil(e.measureText("|MÉq").width),g=Math.ceil(e.measureText("|MÉq").width),h=2*g;if(g=1.4*g|0,d.width=f,d.height=h,e.fillStyle="#f00",e.fillRect(0,0,f,h),e.font=a,e.textBaseline="alphabetic",e.fillStyle="#000",e.fillText("|MÉq",0,g),!e.getImageData(0,0,f,h))return b.ascent=g,b.descent=g+6,b.fontSize=b.ascent+b.descent,c.Text.fontPropertiesCache[a]=b,b;var i,j,k=e.getImageData(0,0,f,h).data,l=k.length,m=4*f,n=0,o=!1;for(i=0;g>i;i++){for(j=0;m>j;j+=4)if(255!==k[n+j]){o=!0;break}if(o)break;n+=m}for(b.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}b.descent=i-g,b.descent+=6,b.fontSize=b.ascent+b.descent,c.Text.fontPropertiesCache[a]=b}return b},c.Text.prototype.getBounds=function(a){return this.dirty&&(this.updateText(),this.dirty=!1),PIXI.Sprite.prototype.getBounds.call(this,a)},Object.defineProperty(c.Text.prototype,"text",{get:function(){return this._text},set:function(a){a!==this._text&&(this._text=a.toString()||"",this.dirty=!0,this.parent&&this.updateTransform())}}),Object.defineProperty(c.Text.prototype,"cssFont",{get:function(){return this.componentsToFont(this._fontComponents)},set:function(a){a=a||"bold 20pt Arial",this._fontComponents=this.fontToComponents(a),this.updateFont(this._fontComponents)}}),Object.defineProperty(c.Text.prototype,"font",{get:function(){return this._fontComponents.fontFamily},set:function(a){a=a||"Arial",a=a.trim(),/^(?:inherit|serif|sans-serif|cursive|fantasy|monospace)$/.exec(a)||/['",]/.exec(a)||(a="'"+a+"'"),this._fontComponents.fontFamily=a,this.updateFont(this._fontComponents)}}),Object.defineProperty(c.Text.prototype,"fontSize",{get:function(){var a=this._fontComponents.fontSize;return a&&/(?:^0$|px$)/.exec(a)?parseInt(a,10):a},set:function(a){a=a||"0","number"==typeof a&&(a+="px"),this._fontComponents.fontSize=a,this.updateFont(this._fontComponents)}}),Object.defineProperty(c.Text.prototype,"fontWeight",{get:function(){return this._fontComponents.fontWeight||"normal"},set:function(a){a=a||"normal",this._fontComponents.fontWeight=a,this.updateFont(this._fontComponents)}}),Object.defineProperty(c.Text.prototype,"fontStyle",{get:function(){return this._fontComponents.fontStyle||"normal"},set:function(a){a=a||"normal",this._fontComponents.fontStyle=a,this.updateFont(this._fontComponents)}}),Object.defineProperty(c.Text.prototype,"fontVariant",{get:function(){return this._fontComponents.fontVariant||"normal"},set:function(a){a=a||"normal",this._fontComponents.fontVariant=a,this.updateFont(this._fontComponents)}}),Object.defineProperty(c.Text.prototype,"fill",{get:function(){return this.style.fill},set:function(a){a!==this.style.fill&&(this.style.fill=a,this.dirty=!0)}}),Object.defineProperty(c.Text.prototype,"align",{get:function(){return this.style.align},set:function(a){a!==this.style.align&&(this.style.align=a,this.dirty=!0)}}),Object.defineProperty(c.Text.prototype,"resolution",{get:function(){return this._res},set:function(a){a!==this._res&&(this._res=a,this.dirty=!0)}}),Object.defineProperty(c.Text.prototype,"tabs",{get:function(){return this.style.tabs},set:function(a){a!==this.style.tabs&&(this.style.tabs=a,this.dirty=!0)}}),Object.defineProperty(c.Text.prototype,"boundsAlignH",{get:function(){return this.style.boundsAlignH},set:function(a){a!==this.style.boundsAlignH&&(this.style.boundsAlignH=a,this.dirty=!0)}}),Object.defineProperty(c.Text.prototype,"boundsAlignV",{get:function(){return this.style.boundsAlignV},set:function(a){a!==this.style.boundsAlignV&&(this.style.boundsAlignV=a,this.dirty=!0)}}),Object.defineProperty(c.Text.prototype,"stroke",{get:function(){return this.style.stroke},set:function(a){a!==this.style.stroke&&(this.style.stroke=a,this.dirty=!0)}}),Object.defineProperty(c.Text.prototype,"strokeThickness",{get:function(){return this.style.strokeThickness},set:function(a){a!==this.style.strokeThickness&&(this.style.strokeThickness=a,this.dirty=!0)}}),Object.defineProperty(c.Text.prototype,"wordWrap",{get:function(){return this.style.wordWrap},set:function(a){a!==this.style.wordWrap&&(this.style.wordWrap=a,this.dirty=!0)}}),Object.defineProperty(c.Text.prototype,"wordWrapWidth",{get:function(){return this.style.wordWrapWidth},set:function(a){a!==this.style.wordWrapWidth&&(this.style.wordWrapWidth=a,this.dirty=!0)}}),Object.defineProperty(c.Text.prototype,"lineSpacing",{get:function(){return this._lineSpacing},set:function(a){a!==this._lineSpacing&&(this._lineSpacing=parseFloat(a),this.dirty=!0,this.parent&&this.updateTransform())}}),Object.defineProperty(c.Text.prototype,"shadowOffsetX",{get:function(){return this.style.shadowOffsetX},set:function(a){a!==this.style.shadowOffsetX&&(this.style.shadowOffsetX=a,this.dirty=!0)}}),Object.defineProperty(c.Text.prototype,"shadowOffsetY",{get:function(){return this.style.shadowOffsetY},set:function(a){a!==this.style.shadowOffsetY&&(this.style.shadowOffsetY=a,this.dirty=!0)}}),Object.defineProperty(c.Text.prototype,"shadowColor",{get:function(){return this.style.shadowColor},set:function(a){a!==this.style.shadowColor&&(this.style.shadowColor=a,this.dirty=!0)}}),Object.defineProperty(c.Text.prototype,"shadowBlur",{get:function(){return this.style.shadowBlur},set:function(a){a!==this.style.shadowBlur&&(this.style.shadowBlur=a,this.dirty=!0)}}),Object.defineProperty(c.Text.prototype,"shadowStroke",{get:function(){return this.style.shadowStroke},set:function(a){a!==this.style.shadowStroke&&(this.style.shadowStroke=a,this.dirty=!0)}}),Object.defineProperty(c.Text.prototype,"shadowFill",{get:function(){return this.style.shadowFill},set:function(a){a!==this.style.shadowFill&&(this.style.shadowFill=a,this.dirty=!0)}}),Object.defineProperty(c.Text.prototype,"width",{get:function(){return this.dirty&&(this.updateText(),this.dirty=!1),this.scale.x*this.texture.frame.width},set:function(a){this.scale.x=a/this.texture.frame.width,this._width=a}}),Object.defineProperty(c.Text.prototype,"height",{get:function(){return this.dirty&&(this.updateText(),this.dirty=!1),this.scale.y*this.texture.frame.height},set:function(a){this.scale.y=a/this.texture.frame.height,this._height=a}}),c.Text.fontPropertiesCache={},c.Text.fontPropertiesCanvas=document.createElement("canvas"),c.Text.fontPropertiesContext=c.Text.fontPropertiesCanvas.getContext("2d"),c.BitmapText=function(a,b,d,e,f,g,h){b=b||0,d=d||0,e=e||"",f=f||"",g=g||32,h=h||"left",PIXI.DisplayObjectContainer.call(this),this.type=c.BITMAPTEXT,this.physicsType=c.SPRITE,this.textWidth=0,this.textHeight=0,this.anchor=new c.Point,this._prevAnchor=new c.Point,this._glyphs=[],this._maxWidth=0,this._text=f,this._data=a.cache.getBitmapFont(e),this._font=e,this._fontSize=g,this._align=h,this._tint=16777215,this.updateText(),this.dirty=!1,c.Component.Core.init.call(this,a,b,d,"",null)},c.BitmapText.prototype=Object.create(PIXI.DisplayObjectContainer.prototype),c.BitmapText.prototype.constructor=c.BitmapText,c.Component.Core.install.call(c.BitmapText.prototype,["Angle","AutoCull","Bounds","Destroy","FixedToCamera","InputEnabled","InWorld","LifeSpan","PhysicsBody","Reset"]),c.BitmapText.prototype.preUpdatePhysics=c.Component.PhysicsBody.preUpdate,c.BitmapText.prototype.preUpdateLifeSpan=c.Component.LifeSpan.preUpdate,c.BitmapText.prototype.preUpdateInWorld=c.Component.InWorld.preUpdate,c.BitmapText.prototype.preUpdateCore=c.Component.Core.preUpdate,c.BitmapText.prototype.preUpdate=function(){return this.preUpdatePhysics()&&this.preUpdateLifeSpan()&&this.preUpdateInWorld()?this.preUpdateCore():!1},c.BitmapText.prototype.postUpdate=function(){c.Component.PhysicsBody.postUpdate.call(this),c.Component.FixedToCamera.postUpdate.call(this),this.body&&this.body.type===c.Physics.ARCADE&&(this.textWidth!==this.body.sourceWidth||this.textHeight!==this.body.sourceHeight)&&this.body.setSize(this.textWidth,this.textHeight)},c.BitmapText.prototype.setText=function(a){this.text=a},c.BitmapText.prototype.scanLine=function(a,b,c){for(var d=0,e=0,f=-1,g=null,h=this._maxWidth>0?this._maxWidth:null,i=[],j=0;j=h&&f>-1)return{width:e,text:c.substr(0,j-(j-f)),end:k,chars:i};e+=m.xAdvance*b,i.push(d+m.xOffset*b),d+=m.xAdvance*b,g=l}}return{width:e,text:c,end:k,chars:i}},c.BitmapText.prototype.updateText=function(){var a=this._data.font;if(a){var b=this.text,c=this._fontSize/a.size,d=[],e=0;this.textWidth=0;do{var f=this.scanLine(a,c,b);f.y=e,d.push(f),f.width>this.textWidth&&(this.textWidth=f.width),e+=a.lineHeight*c,b=b.substr(f.text.length+1)}while(f.end===!1);this.textHeight=e;for(var g=0,h=0,i=this.textWidth*this.anchor.x,j=this.textHeight*this.anchor.y,k=0;k0&&(this._fontSize=a,this.updateText())}}),Object.defineProperty(c.BitmapText.prototype,"text",{get:function(){return this._text},set:function(a){a!==this._text&&(this._text=a.toString()||"",this.updateText())}}),Object.defineProperty(c.BitmapText.prototype,"maxWidth",{get:function(){return this._maxWidth},set:function(a){a!==this._maxWidth&&(this._maxWidth=a,this.updateText())}}),c.RetroFont=function(a,b,d,e,f,g,h,i,j,k){if(!a.cache.checkImageKey(b))return!1;(void 0===g||null===g)&&(g=a.cache.getImage(b).width/d),this.characterWidth=d,this.characterHeight=e,this.characterSpacingX=h||0,this.characterSpacingY=i||0,this.characterPerRow=g,this.offsetX=j||0,this.offsetY=k||0,this.align="left",this.multiLine=!1,this.autoUpperCase=!0,this.customSpacingX=0,this.customSpacingY=0,this.fixedWidth=0,this.fontSet=a.cache.getImage(b),this._text="",this.grabData=[],this.frameData=new c.FrameData;for(var l=this.offsetX,m=this.offsetY,n=0,o=0;o?@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){void 0===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 this.fixedWidth>0?this.resize(this.fixedWidth,this.characterHeight,!0):this.resize(this._text.length*(this.characterWidth+this.customSpacingX),this.characterHeight,!0),a=0,this.align===c.RetroFont.ALIGN_RIGHT?a=this.width-this._text.length*(this.characterWidth+this.customSpacingX):this.align===c.RetroFont.ALIGN_CENTER&&(a=this.width/2-this._text.length*(this.characterWidth+this.customSpacingX)/2,a+=this.customSpacingX/2),0>a&&(a=0),this.pasteLine(this._text,a,0,this.customSpacingX);this.requiresReTint=!0},c.RetroFont.prototype.pasteLine=function(a,b,c,d){for(var e=0;e=0&&(this.stamp.frame=this.grabData[a.charCodeAt(e)],this.renderXY(this.stamp,b,c,!1),b+=this.characterWidth+d,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;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()}}),PIXI.Strip=function(a){PIXI.DisplayObjectContainer.call(this),this.texture=a,this.uvs=new PIXI.Float32Array([0,1,1,1,1,0,0,1]),this.vertices=new PIXI.Float32Array([0,0,100,0,100,100,0,100]),this.colors=new PIXI.Float32Array([1,1,1,1]),this.indices=new PIXI.Uint16Array([0,1,2,3]),this.dirty=!0,this.blendMode=PIXI.blendModes.NORMAL,this.canvasPadding=0,this.drawMode=PIXI.Strip.DrawModes.TRIANGLE_STRIP},PIXI.Strip.prototype=Object.create(PIXI.DisplayObjectContainer.prototype),PIXI.Strip.prototype.constructor=PIXI.Strip,PIXI.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())},PIXI.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.vertices,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)},PIXI.Strip.prototype._renderStrip=function(a){var b=a.gl,c=a.projection,d=a.offset,e=a.shaderManager.stripShader,f=this.drawMode===PIXI.Strip.DrawModes.TRIANGLE_STRIP?b.TRIANGLE_STRIP:b.TRIANGLES;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.vertices,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.vertices),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(f,this.indices.length,b.UNSIGNED_SHORT,0)},PIXI.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),this.drawMode===PIXI.Strip.DrawModes.TRIANGLE_STRIP?this._renderCanvasTriangleStrip(b):this._renderCanvasTriangles(b)},PIXI.Strip.prototype._renderCanvasTriangleStrip=function(a){var b=this.vertices,c=this.uvs,d=b.length/2;this.count++;for(var e=0;d-2>e;e++){var f=2*e;this._renderCanvasDrawTriangle(a,b,c,f,f+2,f+4)}},PIXI.Strip.prototype._renderCanvasTriangles=function(a){var b=this.vertices,c=this.uvs,d=this.indices,e=d.length;this.count++;for(var f=0;e>f;f+=3){var g=2*d[f],h=2*d[f+1],i=2*d[f+2];this._renderCanvasDrawTriangle(a,b,c,g,h,i)}},PIXI.Strip.prototype._renderCanvasDrawTriangle=function(a,b,c,d,e,f){var g=this.texture.baseTexture.source,h=this.texture.width,i=this.texture.height,j=b[d],k=b[e],l=b[f],m=b[d+1],n=b[e+1],o=b[f+1],p=c[d]*h,q=c[e]*h,r=c[f]*h,s=c[d+1]*i,t=c[e+1]*i,u=c[f+1]*i;if(this.canvasPadding>0){var v=this.canvasPadding/this.worldTransform.a,w=this.canvasPadding/this.worldTransform.d,x=(j+k+l)/3,y=(m+n+o)/3,z=j-x,A=m-y,B=Math.sqrt(z*z+A*A);j=x+z/B*(B+v),m=y+A/B*(B+w),z=k-x,A=n-y,B=Math.sqrt(z*z+A*A),k=x+z/B*(B+v),n=y+A/B*(B+w),z=l-x,A=o-y,B=Math.sqrt(z*z+A*A),l=x+z/B*(B+v),o=y+A/B*(B+w)}a.save(),a.beginPath(),a.moveTo(j,m),a.lineTo(k,n),a.lineTo(l,o),a.closePath(),a.clip();var C=p*t+s*r+q*u-t*r-s*q-p*u,D=j*t+s*l+k*u-t*l-s*k-j*u,E=p*k+j*r+q*l-k*r-j*q-p*l,F=p*t*l+s*k*r+j*q*u-j*t*r-s*q*l-p*k*u,G=m*t+s*o+n*u-t*o-s*n-m*u,H=p*n+m*r+q*o-n*r-m*q-p*o,I=p*t*o+s*n*r+m*q*u-m*t*r-s*q*o-p*n*u;a.transform(D/C,G/C,E/C,H/C,F/C,I/C),a.drawImage(g,0,0),a.restore()},PIXI.Strip.prototype.renderStripFlat=function(a){var b=this.context,c=a.vertices,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()},PIXI.Strip.prototype.onTextureUpdate=function(){this.updateFrame=!0},PIXI.Strip.prototype.getBounds=function(a){for(var b=a||this.worldTransform,c=b.a,d=b.b,e=b.c,f=b.d,g=b.tx,h=b.ty,i=-1/0,j=-1/0,k=1/0,l=1/0,m=this.vertices,n=0,o=m.length;o>n;n+=2){var p=m[n],q=m[n+1],r=c*p+e*q+g,s=f*q+d*p+h;k=k>r?r:k,l=l>s?s:l,i=r>i?r:i,j=s>j?s:j}if(k===-1/0||1/0===j)return PIXI.EmptyRectangle;var t=this._bounds;return t.x=k,t.width=i-k,t.y=l,t.height=j-l,this._currentBounds=t,t},PIXI.Strip.DrawModes={TRIANGLE_STRIP:0,TRIANGLES:1},PIXI.Rope=function(a,b){PIXI.Strip.call(this,a),this.points=b,this.vertices=new PIXI.Float32Array(4*b.length),this.uvs=new PIXI.Float32Array(4*b.length),this.colors=new PIXI.Float32Array(2*b.length),this.indices=new PIXI.Uint16Array(2*b.length),this.refresh()},PIXI.Rope.prototype=Object.create(PIXI.Strip.prototype),PIXI.Rope.prototype.constructor=PIXI.Rope,PIXI.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}},PIXI.Rope.prototype.updateTransform=function(){var a=this.points;if(!(a.length<1)){var b,c=a[0],d={x:0,y:0};this.count-=.2;for(var e,f,g,h,i,j=this.vertices,k=a.length,l=0;k>l;l++)e=a[l],f=4*l,b=l1&&(g=1),h=Math.sqrt(d.x*d.x+d.y*d.y),i=this.texture.height/2,d.x/=h,d.y/=h,d.x*=i,d.y*=i,j[f]=e.x+d.x,j[f+1]=e.y+d.y,j[f+2]=e.x-d.x,j[f+3]=e.y-d.y,c=e;PIXI.DisplayObjectContainer.prototype.updateTransform.call(this)}},PIXI.Rope.prototype.setTexture=function(a){this.texture=a},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.type=c.ROPE,this._scroll=new c.Point,PIXI.Rope.call(this,PIXI.TextureCache.__default,this.points),c.Component.Core.init.call(this,a,b,d,e,f)},c.Rope.prototype=Object.create(PIXI.Rope.prototype),c.Rope.prototype.constructor=c.Rope,c.Component.Core.install.call(c.Rope.prototype,["Angle","Animation","AutoCull","Bounds","BringToTop","Crop","Delta","Destroy","FixedToCamera","InputEnabled","InWorld","LifeSpan","LoadTexture","Overlap","PhysicsBody","Reset","ScaleMinMax","Smoothed"]),c.Rope.prototype.preUpdatePhysics=c.Component.PhysicsBody.preUpdate,c.Rope.prototype.preUpdateLifeSpan=c.Component.LifeSpan.preUpdate,c.Rope.prototype.preUpdateInWorld=c.Component.InWorld.preUpdate,c.Rope.prototype.preUpdateCore=c.Component.Core.preUpdate,c.Rope.prototype.preUpdate=function(){return 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.preUpdatePhysics()&&this.preUpdateLifeSpan()&&this.preUpdateInWorld()?this.preUpdateCore():!1},c.Rope.prototype.update=function(){this._hasUpdateAnimation&&this.updateAnimation.call(this)},c.Rope.prototype.reset=function(a,b){return c.Component.Reset.prototype.reset.call(this,a,b),this.tilePosition.x=0,this.tilePosition.y=0,this},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;kn?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},PIXI.TilingSprite.prototype.destroy=function(){PIXI.Sprite.prototype.destroy.call(this),this.tileScale=null,this.tileScaleOffset=null,this.tilePosition=null,this.tilingTexture&&(this.tilingTexture.destroy(!0),this.tilingTexture=null)},Object.defineProperty(PIXI.TilingSprite.prototype,"width",{get:function(){return this._width},set:function(a){this._width=a}}),Object.defineProperty(PIXI.TilingSprite.prototype,"height",{get:function(){return this._height},set:function(a){this._height=a}}),c.TileSprite=function(a,b,d,e,f,g,h){b=b||0,d=d||0,e=e||256,f=f||256,g=g||null,h=h||null,this.type=c.TILESPRITE,this.physicsType=c.SPRITE,this._scroll=new c.Point;var i=a.cache.getImage("__default",!0);PIXI.TilingSprite.call(this,new PIXI.Texture(i.base),e,f),c.Component.Core.init.call(this,a,b,d,g,h)},c.TileSprite.prototype=Object.create(PIXI.TilingSprite.prototype),c.TileSprite.prototype.constructor=c.TileSprite,c.Component.Core.install.call(c.TileSprite.prototype,["Angle","Animation","AutoCull","Bounds","BringToTop","Destroy","FixedToCamera","Health","InCamera","InputEnabled","InWorld","LifeSpan","LoadTexture","Overlap","PhysicsBody","Reset","Smoothed"]),c.TileSprite.prototype.preUpdatePhysics=c.Component.PhysicsBody.preUpdate,c.TileSprite.prototype.preUpdateLifeSpan=c.Component.LifeSpan.preUpdate,c.TileSprite.prototype.preUpdateInWorld=c.Component.InWorld.preUpdate,c.TileSprite.prototype.preUpdateCore=c.Component.Core.preUpdate,c.TileSprite.prototype.preUpdate=function(){return 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.preUpdatePhysics()&&this.preUpdateLifeSpan()&&this.preUpdateInWorld()?this.preUpdateCore():!1},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.destroy=function(a){c.Component.Destroy.prototype.destroy.call(this,a),PIXI.TilingSprite.prototype.destroy.call(this)},c.TileSprite.prototype.reset=function(a,b){return c.Component.Reset.prototype.reset.call(this,a,b),this.tilePosition.x=0,this.tilePosition.y=0,this},c.Device=function(){this.deviceReadyAt=0,this.initialized=!1,this.desktop=!1,this.iOS=!1,this.cocoonJS=!1,this.cocoonJSApp=!1,this.cordova=!1,this.node=!1,this.nodeWebkit=!1,this.electron=!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.canvasBitBltShift=null,this.webGL=!1,this.file=!1,this.fileSystem=!1,this.localStorage=!1,this.worker=!1,this.css3D=!1,this.pointerLock=!1,this.typedArray=!1,this.vibration=!1,this.getUserMedia=!0,this.quirksMode=!1,this.touch=!1,this.mspointer=!1,this.wheelEvent=null,this.arora=!1,this.chrome=!1,this.chromeVersion=0,this.epiphany=!1,this.firefox=!1,this.firefoxVersion=0,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.oggVideo=!1,this.h264Video=!1,this.mp4Video=!1,this.webmVideo=!1,this.vp9Video=!1,this.hlsVideo=!1,this.iPhone=!1,this.iPhone4=!1,this.iPad=!1,this.pixelRatio=0,this.littleEndian=!1,this.LITTLE_ENDIAN=!1,this.support32bit=!1,this.fullscreen=!1,this.requestFullscreen="",this.cancelFullscreen="",this.fullscreenKeyboard=!1},c.Device=new c.Device,c.Device.onInitialized=new c.Signal,c.Device.whenReady=function(a,b,c){var d=this._readyCheck;if(this.deviceReadyAt||!d)a.call(b,this);else if(d._monitor||c)d._queue=d._queue||[],d._queue.push([a,b]);else{d._monitor=d.bind(this),d._queue=d._queue||[],d._queue.push([a,b]);var e="undefined"!=typeof window.cordova,f=navigator.isCocoonJS;"complete"===document.readyState||"interactive"===document.readyState?window.setTimeout(d._monitor,0):e&&!f?document.addEventListener("deviceready",d._monitor,!1):(document.addEventListener("DOMContentLoaded",d._monitor,!1),window.addEventListener("load",d._monitor,!1))}},c.Device._readyCheck=function(){var a=this._readyCheck;if(document.body){if(!this.deviceReadyAt){this.deviceReadyAt=Date.now(),document.removeEventListener("deviceready",a._monitor),document.removeEventListener("DOMContentLoaded",a._monitor),window.removeEventListener("load",a._monitor),this._initialize(),this.initialized=!0,this.onInitialized.dispatch(this);for(var b;b=a._queue.shift();){var c=b[0],d=b[1];c.call(d,this)}this._readyCheck=null,this._initialize=null,this.onInitialized=null}}else window.setTimeout(a._monitor,20)},c.Device._initialize=function(){function a(){var a=navigator.userAgent;/Playstation Vita/.test(a)?l.vita=!0:/Kindle/.test(a)||/\bKF[A-Z][A-Z]+/.test(a)||/Silk.*Mobile Safari/.test(a)?l.kindle=!0:/Android/.test(a)?l.android=!0:/CrOS/.test(a)?l.chromeOS=!0:/iP[ao]d|iPhone/i.test(a)?l.iOS=!0:/Linux/.test(a)?l.linux=!0:/Mac OS/.test(a)?l.macOS=!0:/Windows/.test(a)&&(l.windows=!0),(/Windows Phone/i.test(a)||/IEMobile/i.test(a))&&(l.android=!1,l.iOS=!1,l.macOS=!1,l.windows=!0,l.windowsPhone=!0);var b=/Silk/.test(a);(l.windows||l.macOS||l.linux&&!b||l.chromeOS)&&(l.desktop=!0),(l.windowsPhone||/Windows NT/i.test(a)&&/Touch/i.test(a))&&(l.desktop=!1)}function b(){l.canvas=!!window.CanvasRenderingContext2D||l.cocoonJS;try{l.localStorage=!!localStorage.getItem}catch(a){l.localStorage=!1}l.file=!!(window.File&&window.FileReader&&window.FileList&&window.Blob),l.fileSystem=!!window.requestFileSystem,l.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}}(),l.webGL=!!l.webGL,l.worker=!!window.Worker,l.pointerLock="pointerLockElement"in document||"mozPointerLockElement"in document||"webkitPointerLockElement"in document,l.quirksMode="CSS1Compat"===document.compatMode?!1:!0,navigator.getUserMedia=navigator.getUserMedia||navigator.webkitGetUserMedia||navigator.mozGetUserMedia||navigator.msGetUserMedia||navigator.oGetUserMedia,window.URL=window.URL||window.webkitURL||window.mozURL||window.msURL,l.getUserMedia=l.getUserMedia&&!!navigator.getUserMedia&&!!window.URL,l.firefox&&l.firefoxVersion<21&&(l.getUserMedia=!1),!l.iOS&&(l.ie||l.firefox||l.chrome)&&(l.canvasBitBltShift=!0),(l.safari||l.mobileSafari)&&(l.canvasBitBltShift=!1)}function c(){("ontouchstart"in document.documentElement||window.navigator.maxTouchPoints&&window.navigator.maxTouchPoints>=1)&&(l.touch=!0),(window.navigator.msPointerEnabled||window.navigator.pointerEnabled)&&(l.mspointer=!0),l.cocoonJS||("onwheel"in window||l.ie&&"WheelEvent"in window?l.wheelEvent="wheel":"onmousewheel"in window?l.wheelEvent="mousewheel":l.firefox&&"MouseScrollEvent"in window&&(l.wheelEvent="DOMMouseScroll"))}function d(){for(var a=["requestFullscreen","requestFullScreen","webkitRequestFullscreen","webkitRequestFullScreen","msRequestFullscreen","msRequestFullScreen","mozRequestFullScreen","mozRequestFullscreen"],b=document.createElement("div"),c=0;c0&&"none"!==a}var l=this;a(),g(),f(),e(),k(),h(),b(),d(),c()},c.Device.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},c.Device.canPlayVideo=function(a){return"webm"===a&&(this.webmVideo||this.vp9Video)?!0:"mp4"===a&&(this.mp4Video||this.h264Video)?!0:"ogg"===a&&this.oggVideo?!0:"mpeg"===a&&this.hlsVideo?!0:!1},c.Device.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.isAndroidStockBrowser=function(){var a=window.navigator.userAgent.match(/Android.*AppleWebKit\/([\d.]+)/);return a&&a[1]<537},c.DOM={getOffset:function(a,b){b=b||new c.Point;var d=a.getBoundingClientRect(),e=c.DOM.scrollY,f=c.DOM.scrollX,g=document.documentElement.clientTop,h=document.documentElement.clientLeft;return b.x=d.left+f-h,b.y=d.top+e-g,b},getBounds:function(a,b){return void 0===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.visualBounds:1===a.nodeType?this.getBounds(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},inLayoutViewport:function(a,b){var c=this.getBounds(a,b);return!!c&&c.bottom>=0&&c.right>=0&&c.top<=this.layoutBounds.width&&c.left<=this.layoutBounds.height},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.visualBounds.height>this.visualBounds.width?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.visualBounds.height>this.visualBounds.width?d:e},visualBounds:new c.Rectangle,layoutBounds:new c.Rectangle,documentBounds:new c.Rectangle},c.Device.whenReady(function(a){var b=window&&"pageXOffset"in window?function(){return window.pageXOffset}:function(){return document.documentElement.scrollLeft},d=window&&"pageYOffset"in window?function(){return window.pageYOffset}:function(){return document.documentElement.scrollTop};Object.defineProperty(c.DOM,"scrollX",{get:b}),Object.defineProperty(c.DOM,"scrollY",{get:d}),Object.defineProperty(c.DOM.visualBounds,"x",{get:b}),Object.defineProperty(c.DOM.visualBounds,"y",{get:d}),Object.defineProperty(c.DOM.layoutBounds,"x",{value:0}),Object.defineProperty(c.DOM.layoutBounds,"y",{value:0});var e=a.desktop&&document.documentElement.clientWidth<=window.innerWidth&&document.documentElement.clientHeight<=window.innerHeight;if(e){var f=function(){return Math.max(window.innerWidth,document.documentElement.clientWidth)},g=function(){return Math.max(window.innerHeight,document.documentElement.clientHeight)};Object.defineProperty(c.DOM.visualBounds,"width",{get:f}),Object.defineProperty(c.DOM.visualBounds,"height",{get:g}),Object.defineProperty(c.DOM.layoutBounds,"width",{get:f}),Object.defineProperty(c.DOM.layoutBounds,"height",{get:g})}else Object.defineProperty(c.DOM.visualBounds,"width",{get:function(){return window.innerWidth}}),Object.defineProperty(c.DOM.visualBounds,"height",{get:function(){return window.innerHeight}}),Object.defineProperty(c.DOM.layoutBounds,"width",{get:function(){var a=document.documentElement.clientWidth,b=window.innerWidth;return b>a?b:a}}),Object.defineProperty(c.DOM.layoutBounds,"height",{get:function(){var a=document.documentElement.clientHeight,b=window.innerHeight;return b>a?b:a}});Object.defineProperty(c.DOM.documentBounds,"x",{value:0}),Object.defineProperty(c.DOM.documentBounds,"y",{value:0}),Object.defineProperty(c.DOM.documentBounds,"width",{get:function(){var a=document.documentElement;return Math.max(a.clientWidth,a.offsetWidth,a.scrollWidth)}}),Object.defineProperty(c.DOM.documentBounds,"height",{get:function(){var a=document.documentElement;return Math.max(a.clientHeight,a.offsetHeight,a.scrollHeight)}})},null,!0),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 void 0===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){var c=["i","mozI","oI","webkitI","msI"];for(var d in c){var e=c[d]+"mageSmoothingEnabled";if(e in a)return a[e]=b,a}return 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.RequestAnimationFrame=function(a,b){void 0===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 void 0===c&&(c=1e-4),a>b-c},fuzzyCeil:function(a,b){return void 0===b&&(b=1e-4),Math.ceil(a-b)},fuzzyFloor:function(a,b){return void 0===b&&(b=1e-4),Math.floor(a+b)},average:function(){for(var a=0,b=0;b=0?a:a+2*Math.PI},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},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)},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)},roundAwayFromZero:function(a){return a>0?Math.ceil(a):Math.floor(a)},sinCosGenerator:function(a,b,c,d){void 0===b&&(b=1),void 0===c&&(c=1),void 0===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}},distance:function(a,b,c,d){var e=a-c,f=b-d;return Math.sqrt(e*e+f*f)},distanceSq:function(a,b,c,d){var e=a-c,f=b-d;return e*e+f*f},distancePow:function(a,b,c,d,e){return void 0===e&&(e=2),Math.sqrt(Math.pow(c-a,e)+Math.pow(d-b,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 void 0===c&&(c=0),a>b||c>b?1:c>a||c>a?0:(a-c)/b}};var j=Math.PI/180,k=180/Math.PI;c.Math.degToRad=function(a){return a*j},c.Math.radToDeg=function(a){return a*k},c.RandomDataGenerator=function(a){void 0===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){if(this.s0=this.hash(" "),this.s1=this.hash(this.s0),this.s2=this.hash(this.s1),this.c=1,a)for(var b=0;b>>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)+.5)]},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){void 0===c&&(c=!1),(void 0===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){void 0===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.easeMap={Power0:c.Easing.Power0,Power1:c.Easing.Power1,Power2:c.Easing.Power2,Power3:c.Easing.Power3,Power4:c.Easing.Power4,Linear:c.Easing.Linear.None,Quad:c.Easing.Quadratic.Out,Cubic:c.Easing.Cubic.Out,Quart:c.Easing.Quartic.Out,Quint:c.Easing.Quintic.Out,Sine:c.Easing.Sinusoidal.Out,Expo:c.Easing.Exponential.Out,Circ:c.Easing.Circular.Out,Elastic:c.Easing.Elastic.Out,Back:c.Easing.Back.Out,Bounce:c.Easing.Bounce.Out,"Quad.easeIn":c.Easing.Quadratic.In,"Cubic.easeIn":c.Easing.Cubic.In,"Quart.easeIn":c.Easing.Quartic.In,"Quint.easeIn":c.Easing.Quintic.In,"Sine.easeIn":c.Easing.Sinusoidal.In,"Expo.easeIn":c.Easing.Exponential.In,"Circ.easeIn":c.Easing.Circular.In,"Elastic.easeIn":c.Easing.Elastic.In,"Back.easeIn":c.Easing.Back.In,"Bounce.easeIn":c.Easing.Bounce.In,"Quad.easeOut":c.Easing.Quadratic.Out,"Cubic.easeOut":c.Easing.Cubic.Out,"Quart.easeOut":c.Easing.Quartic.Out,"Quint.easeOut":c.Easing.Quintic.Out,"Sine.easeOut":c.Easing.Sinusoidal.Out,"Expo.easeOut":c.Easing.Exponential.Out,"Circ.easeOut":c.Easing.Circular.Out,"Elastic.easeOut":c.Easing.Elastic.Out,"Back.easeOut":c.Easing.Back.Out,"Bounce.easeOut":c.Easing.Bounce.Out,"Quad.easeInOut":c.Easing.Quadratic.InOut,"Cubic.easeInOut":c.Easing.Cubic.InOut,"Quart.easeInOut":c.Easing.Quartic.InOut,"Quint.easeInOut":c.Easing.Quintic.InOut,"Sine.easeInOut":c.Easing.Sinusoidal.InOut,"Expo.easeInOut":c.Easing.Exponential.InOut,"Circ.easeInOut":c.Easing.Circular.InOut,"Elastic.easeInOut":c.Easing.Elastic.InOut,"Back.easeInOut":c.Easing.Back.InOut,"Bounce.easeInOut":c.Easing.Bounce.InOut},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;ad;d++)this.removeFrom(a[d]);else if(a.type===c.GROUP&&b)for(var d=0,e=a.children.length;e>d;d++)this.removeFrom(a.children[d]);else{for(d=0,e=this._tweens.length;e>d;d++)a===this._tweens[d].target&&this.remove(this._tweens[d]);for(d=0,e=this._add.length;e>d;d++)a===this._add[d].target&&this.remove(this._add[d])}},add:function(a){a._manager=this,this._add.push(a)},create:function(a){return new c.Tween(a,this.game,this)},remove:function(a){var b=this._tweens.indexOf(a);-1!==b?this._tweens[b].pendingDelete=!0:(b=this._add.indexOf(a),-1!==b&&(this._add[b].pendingDelete=!0))},update:function(){var a=this._add.length,b=this._tweens.length;if(0===b&&0===a)return!1;for(var c=0;b>c;)this._tweens[c].update(this.game.time.time)?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.target===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.game=b,this.target=a,this.manager=d,this.timeline=[],this.reverse=!1,this.timeScale=1,this.repeatCounter=0,this.pendingDelete=!1,this.onStart=new c.Signal,this.onLoop=new c.Signal,this.onRepeat=new c.Signal,this.onChildComplete=new c.Signal,this.onComplete=new c.Signal,this.isRunning=!1,this.current=0,this.properties={},this.chainedTween=null,this.isPaused=!1,this._onUpdateCallback=null,this._onUpdateCallbackContext=null,this._pausedTime=0,this._codePaused=!1,this._hasStarted=!1},c.Tween.prototype={to:function(a,b,d,e,f,g,h){return(void 0===b||0>=b)&&(b=1e3),(void 0===d||null===d)&&(d=c.Easing.Default),void 0===e&&(e=!1),void 0===f&&(f=0),void 0===g&&(g=0),void 0===h&&(h=!1),"string"==typeof d&&this.manager.easeMap[d]&&(d=this.manager.easeMap[d]),this.isRunning?(console.warn("Phaser.Tween.to cannot be called after Tween.start"),this):(this.timeline.push(new c.TweenData(this).to(a,b,d,f,g,h)),e&&this.start(),this)},from:function(a,b,d,e,f,g,h){return void 0===b&&(b=1e3),(void 0===d||null===d)&&(d=c.Easing.Default),void 0===e&&(e=!1),void 0===f&&(f=0),void 0===g&&(g=0),void 0===h&&(h=!1),"string"==typeof d&&this.manager.easeMap[d]&&(d=this.manager.easeMap[d]),this.isRunning?(console.warn("Phaser.Tween.from cannot be called after Tween.start"),this):(this.timeline.push(new c.TweenData(this).from(a,b,d,f,g,h)),e&&this.start(),this)},start:function(a){if(void 0===a&&(a=0),null===this.game||null===this.target||0===this.timeline.length||this.isRunning)return this;for(var b=0;ba||a>this.timeline.length-1)&&(a=0),this.current=a,this.timeline[this.current].start(),this},stop:function(a){return void 0===a&&(a=!1),this.isRunning=!1,this._onUpdateCallback=null,this._onUpdateCallbackContext=null,a&&(this.onComplete.dispatch(this.target,this),this.chainedTween&&this.chainedTween.start()),this.manager.remove(this),this},updateTweenData:function(a,b,c){if(0===this.timeline.length)return this;if(void 0===c&&(c=0),-1===c)for(var d=0;d0?arguments[a-1].chainedTween=arguments[a]:this.chainedTween=arguments[a];return this},loop:function(a){return void 0===a&&(a=!0),a?this.repeatAll(-1):this.repeatCounter=0,this},onUpdateCallback:function(a,b){return this._onUpdateCallback=a,this._onUpdateCallbackContext=b,this},pause:function(){this.isPaused=!0,this._codePaused=!0,this._pausedTime=this.game.time.time},_pause:function(){this._codePaused||(this.isPaused=!0,this._pausedTime=this.game.time.time)},resume:function(){if(this.isPaused){this.isPaused=!1,this._codePaused=!1;for(var a=0;a0?(this.repeatCounter--,this.timeline[this.current].start(),this.onRepeat.dispatch(this.target,this),!0):(this.isRunning=!1,this.onComplete.dispatch(this.target,this),this.chainedTween&&this.chainedTween.start(),!1):(this.onChildComplete.dispatch(this.target,this),this.timeline[this.current].start(),!0)}},generateData:function(a,b){if(null===this.game||null===this.target)return null;void 0===a&&(a=60),void 0===b&&(b=[]);for(var c=0;c0?!1:!0,this.isFrom)for(var a in this.vStartCache)this.vStart[a]=this.vEndCache[a],this.vEnd[a]=this.vStartCache[a],this.parent.target[a]=this.vStart[a];return this.value=0,this.yoyoCounter=0,this},loadValues:function(){for(var a in this.parent.properties){if(this.vStart[a]=this.parent.properties[a],Array.isArray(this.vEnd[a])){if(0===this.vEnd[a].length)continue;0===this.percent&&(this.vEnd[a]=[this.vStart[a]].concat(this.vEnd[a]))}"undefined"!=typeof this.vEnd[a]?("string"==typeof this.vEnd[a]&&(this.vEnd[a]=this.vStart[a]+parseFloat(this.vEnd[a],10)),this.parent.properties[a]=this.vEnd[a]):this.vEnd[a]=this.vStart[a],this.vStartCache[a]=this.vStart[a],this.vEndCache[a]=this.vEnd[a]}return this},update:function(a){if(this.isRunning){if(a=this.startTime))return c.TweenData.PENDING;this.isRunning=!0}this.parent.reverse?(this.dt-=this.game.time.elapsedMS*this.parent.timeScale,this.dt=Math.max(this.dt,0)):(this.dt+=this.game.time.elapsedMS*this.parent.timeScale,this.dt=Math.min(this.dt,this.duration)),this.percent=this.dt/this.duration,this.value=this.easingFunction(this.percent);for(var b in this.vEnd){var d=this.vStart[b],e=this.vEnd[b];this.parent.target[b]=Array.isArray(e)?this.interpolationFunction.call(this.interpolationContext,e,this.value):d+(e-d)*this.value}return!this.parent.reverse&&1===this.percent||this.parent.reverse&&0===this.percent?this.repeat():c.TweenData.RUNNING},generateData:function(a){this.dt=this.parent.reverse?this.duration:0;var b=[],c=!1,d=1/a*1e3;do{this.parent.reverse?(this.dt-=d,this.dt=Math.max(this.dt,0)):(this.dt+=d,this.dt=Math.min(this.dt,this.duration)),this.percent=this.dt/this.duration,this.value=this.easingFunction(this.percent);var e={};for(var f in this.vEnd){var g=this.vStart[f],h=this.vEnd[f];e[f]=Array.isArray(h)?this.interpolationFunction(h,this.value):g+(h-g)*this.value}b.push(e),(!this.parent.reverse&&1===this.percent||this.parent.reverse&&0===this.percent)&&(c=!0)}while(!c);if(this.yoyo){var i=b.slice();i.reverse(),b=b.concat(i)}return b},repeat:function(){if(this.yoyo){if(this.inReverse&&0===this.repeatCounter)return c.TweenData.COMPLETE;this.inReverse=!this.inReverse}else if(0===this.repeatCounter)return c.TweenData.COMPLETE;if(this.inReverse)for(var a in this.vStartCache)this.vStart[a]=this.vEndCache[a],this.vEnd[a]=this.vStartCache[a];else{for(var a in this.vStartCache)this.vStart[a]=this.vStartCache[a],this.vEnd[a]=this.vEndCache[a];this.repeatCounter>0&&this.repeatCounter--}return this.startTime=this.game.time.time,this.yoyo&&this.inReverse?this.startTime+=this.yoyoDelay:this.inReverse||(this.startTime+=this.repeatDelay),this.dt=this.parent.reverse?this.duration:0,c.TweenData.LOOPED}},c.TweenData.prototype.constructor=c.TweenData,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 0===a?0:1===a?1:1-Math.cos(a*Math.PI/2)},Out:function(a){return 0===a?0:1===a?1:Math.sin(a*Math.PI/2)},InOut:function(a){return 0===a?0:1===a?1:.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.Easing.Power0=c.Easing.Linear.None,c.Easing.Power1=c.Easing.Quadratic.Out,c.Easing.Power2=c.Easing.Cubic.Out,c.Easing.Power3=c.Easing.Quartic.Out,c.Easing.Power4=c.Easing.Quintic.Out,c.Time=function(a){this.game=a,this.time=0,this.prevTime=0,this.now=0,this.elapsed=0,this.elapsedMS=0,this.physicsElapsed=0,this.physicsElapsedMS=0,this.desiredFps=60,this.suggestedFps=null,this.slowMotion=1,this.advancedTiming=!1,this.frames=0,this.fps=0,this.fpsMin=1e3,this.fpsMax=0,this.msMin=1e3,this.msMax=0,this.pauseDuration=0,this.timeToCall=0,this.timeExpected=0,this.events=new c.Timer(this.game,!1),this._frameCount=0,this._elapsedAccumulator=0,this._started=0,this._timeLastSecond=0,this._pauseStarted=0,this._justResumed=!1,this._timers=[]},c.Time.prototype={boot:function(){this._started=Date.now(),this.time=Date.now(),this.events.start()},add:function(a){return this._timers.push(a),a},create:function(a){void 0===a&&(a=!0);var b=new c.Timer(this.game,a);return this._timers.push(b),b},removeAll:function(){for(var a=0;aa;)this._timers[a].update(this.time)?a++:(this._timers.splice(a,1),b--)},updateAdvancedTiming:function(){this._frameCount++,this._elapsedAccumulator+=this.elapsed,this._frameCount>=2*this.desiredFps&&(this.suggestedFps=5*Math.floor(200/(this._elapsedAccumulator/this._frameCount)),this._frameCount=0,this._elapsedAccumulator=0),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)},gamePaused:function(){this._pauseStarted=Date.now(),this.events.pause();for(var a=this._timers.length;a--;)this._timers[a]._pause()},gameResumed:function(){this.time=Date.now(),this.pauseDuration=this.time-this._pauseStarted,this.events.resume();for(var a=this._timers.length;a--;)this._timers[a]._resume()},totalElapsedSeconds:function(){return.001*(this.time-this._started)},elapsedSince:function(a){return this.time-a},elapsedSecondsSince:function(a){return.001*(this.time-a)},reset:function(){this._started=this.time,this.removeAll()}},c.Time.prototype.constructor=c.Time,c.Timer=function(a,b){void 0===b&&(b=!0),this.game=a,this.running=!1,this.autoDestroy=b,this.expired=!1,this.elapsed=0,this.events=[],this.onComplete=new c.Signal,this.nextTick=0,this.timeCap=1e3,this.paused=!1,this._codePaused=!1,this._started=0,this._pauseStarted=0,this._pauseTotal=0,this._now=Date.now(),this._len=0,this._marked=0,this._i=0,this._diff=0,this._newTick=0},c.Timer.MINUTE=6e4,c.Timer.SECOND=1e3,c.Timer.HALF=500,c.Timer.QUARTER=250,c.Timer.prototype={create:function(a,b,d,e,f,g){a=Math.round(a);var h=a;h+=0===this._now?this.game.time.time:this._now;var i=new c.TimerEvent(this,a,h,d,b,e,f,g);return this.events.push(i),this.order(),this.expired=!1,i},add:function(a,b,c){return this.create(a,!1,0,b,c,Array.prototype.splice.call(arguments,3))},repeat:function(a,b,c,d){return this.create(a,!1,b,c,d,Array.prototype.splice.call(arguments,4))},loop:function(a,b,c){return this.create(a,!0,0,b,c,Array.prototype.splice.call(arguments,3))},start:function(a){if(!this.running){this._started=this.game.time.time+(a||0),this.running=!0;for(var b=0;b0&&(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.events[this._i].pendingDelete;)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},destroy:function(){this.onComplete.removeAll(),this.running=!1,this.events=[],this._len=0,this._i=0}},Object.defineProperty(c.Timer.prototype,"next",{get:function(){return this.nextTick}}),Object.defineProperty(c.Timer.prototype,"duration",{get:function(){return this.running&&this.nextTick>this._now?this.nextTick-this._now:0}}),Object.defineProperty(c.Timer.prototype,"length",{get:function(){return this.events.length}}),Object.defineProperty(c.Timer.prototype,"ms",{get:function(){return this.running?this._now-this._started-this._pauseTotal:0}}),Object.defineProperty(c.Timer.prototype,"seconds",{get:function(){return this.running?.001*this.ms:0}}),c.Timer.prototype.constructor=c.Timer,c.TimerEvent=function(a,b,c,d,e,f,g,h){this.timer=a,this.delay=b,this.tick=c,this.repeatCount=d-1,this.loop=e,this.callback=f,this.callbackContext=g,this.args=h,this.pendingDelete=!1},c.TimerEvent.prototype.constructor=c.TimerEvent,c.AnimationManager=function(a){this.sprite=a,this.game=a.game,this.currentFrame=null,this.currentAnim=null,this.updateIfVisible=!0,this.isLoaded=!1,this._frameData=null,this._anims={},this._outputFrames=[]},c.AnimationManager.prototype={loadFrameData:function(a,b){if(void 0===a)return!1;if(this.isLoaded)for(var c in this._anims)this._anims[c].updateFrameData(a);return this._frameData=a,void 0===b||null===b?this.frame=0:"string"==typeof b?this.frameName=b:this.frame=b,this.isLoaded=!0,!0},copyFrameData:function(a,b){if(this._frameData=a.clone(),this.isLoaded)for(var c in this._anims)this._anims[c].updateFrameData(this._frameData);return void 0===b||null===b?this.frame=0:"string"==typeof b?this.frameName=b:this.frame=b,this.isLoaded=!0,!0},add:function(a,b,d,e,f){return b=b||[],d=d||60,void 0===e&&(e=!1),void 0===f&&(f=b&&"number"==typeof b[0]?!0:!1),this._outputFrames=[],this._frameData.getFrameIndexes(b,f,this._outputFrames),this._anims[a]=new c.Animation(this.game,this.sprite,a,this._frameData,this._outputFrames,d,e),this.currentAnim=this._anims[a],this.sprite.tilingTexture&&(this.sprite.refreshTexture=!0),this._anims[a]},validateFrames:function(a,b){void 0===b&&(b=!0);for(var c=0;cthis._frameData.total)return!1}else if(this._frameData.checkFrameName(a[c])===!1)return!1;return!0},play:function(a,b,c,d){return this._anims[a]?this.currentAnim===this._anims[a]?this.currentAnim.isPlaying===!1?(this.currentAnim.paused=!1,this.currentAnim.play(b,c,d)):this.currentAnim:(this.currentAnim&&this.currentAnim.isPlaying&&this.currentAnim.stop(),this.currentAnim=this._anims[a],this.currentAnim.paused=!1,this.currentFrame=this.currentAnim.currentFrame,this.currentAnim.play(b,c,d)):void 0},stop:function(a,b){void 0===b&&(b=!1),"string"==typeof a?this._anims[a]&&(this.currentAnim=this._anims[a],this.currentAnim.stop(b)):this.currentAnim&&this.currentAnim.stop(b)},update:function(){return this.updateIfVisible&&!this.sprite.visible?!1:this.currentAnim&&this.currentAnim.update()?(this.currentFrame=this.currentAnim.currentFrame,!0):!1},next:function(a){this.currentAnim&&(this.currentAnim.next(a),this.currentFrame=this.currentAnim.currentFrame)},previous:function(a){this.currentAnim&&(this.currentAnim.previous(a),this.currentFrame=this.currentAnim.currentFrame)},getAnimation:function(a){return"string"==typeof a&&this._anims[a]?this._anims[a]:null},refreshFrame:function(){this.sprite.setTexture(PIXI.TextureCache[this.currentFrame.uuid])},destroy:function(){var a=null;for(var a in this._anims)this._anims.hasOwnProperty(a)&&this._anims[a].destroy();this._anims={},this._outputFrames=[],this._frameData=null,this.currentAnim=null,this.currentFrame=null,this.sprite=null,this.game=null}},c.AnimationManager.prototype.constructor=c.AnimationManager,Object.defineProperty(c.AnimationManager.prototype,"frameData",{get:function(){return this._frameData}}),Object.defineProperty(c.AnimationManager.prototype,"frameTotal",{get:function(){return this._frameData.total}}),Object.defineProperty(c.AnimationManager.prototype,"paused",{get:function(){return this.currentAnim.isPaused},set:function(a){this.currentAnim.paused=a}}),Object.defineProperty(c.AnimationManager.prototype,"name",{get:function(){return this.currentAnim?this.currentAnim.name:void 0}}),Object.defineProperty(c.AnimationManager.prototype,"frame",{get:function(){return this.currentFrame?this.currentFrame.index:void 0},set:function(a){"number"==typeof a&&this._frameData&&null!==this._frameData.getFrame(a)&&(this.currentFrame=this._frameData.getFrame(a),this.currentFrame&&this.sprite.setFrame(this.currentFrame))}}),Object.defineProperty(c.AnimationManager.prototype,"frameName",{get:function(){return this.currentFrame?this.currentFrame.name:void 0},set:function(a){"string"==typeof a&&this._frameData&&null!==this._frameData.getFrameByName(a)?(this.currentFrame=this._frameData.getFrameByName(a),this.currentFrame&&(this._frameIndex=this.currentFrame.index,this.sprite.setFrame(this.currentFrame))):console.warn("Cannot set frameName: "+a)}}),c.Animation=function(a,b,d,e,f,g,h){void 0===h&&(h=!1),this.game=a,this._parent=b,this._frameData=e,this.name=d,this._frames=[],this._frames=this._frames.concat(f),this.delay=1e3/g,this.loop=h,this.loopCount=0,this.killOnComplete=!1,this.isFinished=!1,this.isPlaying=!1,this.isPaused=!1,this._pauseStartTime=0,this._frameIndex=0,this._frameDiff=0,this._frameSkip=1,this.currentFrame=this._frameData.getFrame(this._frames[this._frameIndex]),this.onStart=new c.Signal,this.onUpdate=null,this.onComplete=new c.Signal,this.onLoop=new c.Signal,this.game.onPause.add(this.onPause,this),this.game.onResume.add(this.onResume,this)},c.Animation.prototype={play:function(a,b,c){return"number"==typeof a&&(this.delay=1e3/a),"boolean"==typeof b&&(this.loop=b),"undefined"!=typeof c&&(this.killOnComplete=c),this.isPlaying=!0,this.isFinished=!1,this.paused=!1,this.loopCount=0,this._timeLastFrame=this.game.time.time,this._timeNextFrame=this.game.time.time+this.delay,this._frameIndex=0,this.updateCurrentFrame(!1,!0),this._parent.events.onAnimationStart$dispatch(this._parent,this),this.onStart.dispatch(this._parent,this),this._parent.animations.currentAnim=this,this._parent.animations.currentFrame=this.currentFrame,this},restart:function(){this.isPlaying=!0,this.isFinished=!1,this.paused=!1,this.loopCount=0,this._timeLastFrame=this.game.time.time,this._timeNextFrame=this.game.time.time+this.delay,this._frameIndex=0,this.currentFrame=this._frameData.getFrame(this._frames[this._frameIndex]),this._parent.setFrame(this.currentFrame),this._parent.animations.currentAnim=this,this._parent.animations.currentFrame=this.currentFrame,this.onStart.dispatch(this._parent,this)},setFrame:function(a,b){var c;if(void 0===b&&(b=!1),"string"==typeof a)for(var d=0;d=this._timeNextFrame?(this._frameSkip=1,this._frameDiff=this.game.time.time-this._timeNextFrame,this._timeLastFrame=this.game.time.time,this._frameDiff>this.delay&&(this._frameSkip=Math.floor(this._frameDiff/this.delay),this._frameDiff-=this._frameSkip*this.delay),this._timeNextFrame=this.game.time.time+(this.delay-this._frameDiff),this._frameIndex+=this._frameSkip,this._frameIndex>=this._frames.length?this.loop?(this._frameIndex%=this._frames.length,this.currentFrame=this._frameData.getFrame(this._frames[this._frameIndex]),this.currentFrame&&this._parent.setFrame(this.currentFrame),this.loopCount++,this._parent.events.onAnimationLoop$dispatch(this._parent,this),this.onLoop.dispatch(this._parent,this),this.onUpdate?(this.onUpdate.dispatch(this,this.currentFrame),!!this._frameData):!0):(this.complete(),!1):this.updateCurrentFrame(!0)):!1},updateCurrentFrame:function(a,b){if(void 0===b&&(b=!1),!this._frameData)return!1;var c=this.currentFrame.index;return this.currentFrame=this._frameData.getFrame(this._frames[this._frameIndex]),this.currentFrame&&(b||!b&&c!==this.currentFrame.index)&&this._parent.setFrame(this.currentFrame),this.onUpdate&&a?(this.onUpdate.dispatch(this,this.currentFrame),!!this._frameData):!0},next:function(a){void 0===a&&(a=1);var b=this._frameIndex+a;b>=this._frames.length&&(this.loop?b%=this._frames.length:b=this._frames.length-1),b!==this._frameIndex&&(this._frameIndex=b,this.updateCurrentFrame(!0))},previous:function(a){void 0===a&&(a=1);var b=this._frameIndex-a;0>b&&(this.loop?b=this._frames.length+b:b++),b!==this._frameIndex&&(this._frameIndex=b,this.updateCurrentFrame(!0))},updateFrameData:function(a){this._frameData=a,this.currentFrame=this._frameData?this._frameData.getFrame(this._frames[this._frameIndex%this._frames.length]):null},destroy:function(){this._frameData&&(this.game.onPause.remove(this.onPause,this),this.game.onResume.remove(this.onResume,this),this.game=null,this._parent=null,this._frames=null,this._frameData=null,this.currentFrame=null,this.isPlaying=!1,this.onStart.dispose(),this.onLoop.dispose(),this.onComplete.dispose(),this.onUpdate&&this.onUpdate.dispose())},complete:function(){this._frameIndex=this._frames.length-1,this.currentFrame=this._frameData.getFrame(this._frames[this._frameIndex]),this.isPlaying=!1,this.isFinished=!0,this.paused=!1,this._parent.events.onAnimationComplete$dispatch(this._parent,this),this.onComplete.dispatch(this._parent,this),this.killOnComplete&&this._parent.kill()}},c.Animation.prototype.constructor=c.Animation,Object.defineProperty(c.Animation.prototype,"paused",{get:function(){return this.isPaused},set:function(a){this.isPaused=a,a?this._pauseStartTime=this.game.time.time:this.isPlaying&&(this._timeNextFrame=this.game.time.time+this.delay)}}),Object.defineProperty(c.Animation.prototype,"frameTotal",{get:function(){return this._frames.length}}),Object.defineProperty(c.Animation.prototype,"frame",{get:function(){return null!==this.currentFrame?this.currentFrame.index:this._frameIndex},set:function(a){this.currentFrame=this._frameData.getFrame(this._frames[a]),null!==this.currentFrame&&(this._frameIndex=a,this._parent.setFrame(this.currentFrame),this.onUpdate&&this.onUpdate.dispatch(this,this.currentFrame))}}),Object.defineProperty(c.Animation.prototype,"speed",{get:function(){return Math.round(1e3/this.delay)},set:function(a){a>=1&&(this.delay=1e3/a)}}),Object.defineProperty(c.Animation.prototype,"enableUpdate",{get:function(){return null!==this.onUpdate},set:function(a){a&&null===this.onUpdate?this.onUpdate=new c.Signal:a||null===this.onUpdate||(this.onUpdate.dispose(),this.onUpdate=null)}}),c.Animation.generateFrameNames=function(a,b,d,e,f){void 0===e&&(e="");var g=[],h="";if(d>b)for(var i=b;d>=i;i++)h="number"==typeof f?c.Utils.pad(i.toString(),f,"0",1):i.toString(),h=a+h+e,g.push(h);else for(var i=b;i>=d;i--)h="number"==typeof f?c.Utils.pad(i.toString(),f,"0",1):i.toString(),h=a+h+e,g.push(h);return g},c.Frame=function(a,b,d,e,f,g){this.index=a,this.x=b,this.y=d,this.width=e,this.height=f,this.name=g,this.centerX=Math.floor(e/2),this.centerY=Math.floor(f/2),this.distance=c.Math.distance(0,0,e,f),this.rotated=!1,this.rotationDirection="cw",this.trimmed=!1,this.sourceSizeW=e,this.sourceSizeH=f,this.spriteSourceSizeX=0,this.spriteSourceSizeY=0,this.spriteSourceSizeW=0,this.spriteSourceSizeH=0,this.right=this.x+this.width,this.bottom=this.y+this.height -},c.Frame.prototype={resize:function(a,b){this.width=a,this.height=b,this.centerX=Math.floor(a/2),this.centerY=Math.floor(b/2),this.distance=c.Math.distance(0,0,a,b),this.sourceSizeW=a,this.sourceSizeH=b,this.right=this.x+a,this.bottom=this.y+b},setTrim:function(a,b,c,d,e,f,g){this.trimmed=a,a&&(this.sourceSizeW=b,this.sourceSizeH=c,this.centerX=Math.floor(b/2),this.centerY=Math.floor(c/2),this.spriteSourceSizeX=d,this.spriteSourceSizeY=e,this.spriteSourceSizeW=f,this.spriteSourceSizeH=g)},clone:function(){var a=new c.Frame(this.index,this.x,this.y,this.width,this.height,this.name);for(var b in this)this.hasOwnProperty(b)&&(a[b]=this[b]);return a},getRect:function(a){return void 0===a?a=new c.Rectangle(this.x,this.y,this.width,this.height):a.setTo(this.x,this.y,this.width,this.height),a}},c.Frame.prototype.constructor=c.Frame,c.FrameData=function(){this._frames=[],this._frameNames=[]},c.FrameData.prototype={addFrame:function(a){return a.index=this._frames.length,this._frames.push(a),""!==a.name&&(this._frameNames[a.name]=a.index),a},getFrame:function(a){return a>=this._frames.length&&(a=0),this._frames[a]},getFrameByName:function(a){return"number"==typeof this._frameNames[a]?this._frames[this._frameNames[a]]:null},checkFrameName:function(a){return null==this._frameNames[a]?!1:!0},clone:function(){for(var a=new c.FrameData,b=0;b=d;d++)c.push(this._frames[d]);return c},getFrames:function(a,b,c){if(void 0===b&&(b=!0),void 0===c&&(c=[]),void 0===a||0===a.length)for(var d=0;d=d&&(d=Math.floor(-j/Math.min(-1,d))),0>=e&&(e=Math.floor(-k/Math.min(-1,e)));var l=Math.floor((j-g)/(d+h)),m=Math.floor((k-g)/(e+h)),n=l*m;if(-1!==f&&(n=f),0===j||0===k||d>j||e>k||0===n)return console.warn("Phaser.AnimationParser.spriteSheet: '"+b+"'s width/height zero or width/height < given frameWidth/frameHeight"),null;for(var o=new c.FrameData,p=g,q=g,r=0;n>r;r++)o.addFrame(new c.Frame(r,p,q,d,e,"")),p+=d+h,p+d>j&&(p=g,q+=e+h);return o},JSONData:function(a,b){if(!b.frames)return console.warn("Phaser.AnimationParser.JSONData: Invalid Texture Atlas JSON given, missing 'frames' array"),void console.log(b);for(var d,e=new c.FrameData,f=b.frames,g=0;g tag");for(var d,e,f,g,h,i,j,k,l,m,n,o=new c.FrameData,p=b.getElementsByTagName("SubTexture"),q=0;q-1},getAssetIndex:function(a,b){for(var c=-1,d=0;d-1?{index:c,file:this._fileList[c]}:!1},reset:function(a,b){void 0===b&&(b=!1),this.resetLocked||(a&&(this.preloadSprite=null),this.isLoading=!1,this._processingHead=0,this._fileList.length=0,this._flightQueue.length=0,this._fileLoadStarted=!1,this._totalFileCount=0,this._totalPackCount=0,this._loadedPackCount=0,this._loadedFileCount=0,b&&(this.onLoadStart.removeAll(),this.onLoadComplete.removeAll(),this.onPackComplete.removeAll(),this.onFileStart.removeAll(),this.onFileComplete.removeAll(),this.onFileError.removeAll()))},addToFileList:function(a,b,c,d,e,f){if(void 0===e&&(e=!1),void 0===b||""===b)return console.warn("Phaser.Loader: Invalid or no key given of type "+a),this;if(void 0===c||null===c){if(!f)return console.warn("Phaser.Loader: No URL given for file type: "+a+" key: "+b),this;c=b+f}var g={type:a,key:b,path:this.path,url:c,syncPoint:this._withSyncPointDepth>0,data:null,loading:!1,loaded:!1,error:!1};if(d)for(var h in d)g[h]=d[h];var i=this.getAssetIndex(a,b);if(e&&i>-1){var j=this._fileList[i];j.loading||j.loaded?(this._fileList.push(g),this._totalFileCount++):this._fileList[i]=g}else-1===i&&(this._fileList.push(g),this._totalFileCount++);return this},replaceInFileList:function(a,b,c,d){return this.addToFileList(a,b,c,d,!0)},pack:function(a,b,c,d){if(void 0===b&&(b=null),void 0===c&&(c=null),void 0===d&&(d=null),!b&&!c)return console.warn("Phaser.Loader.pack - Both url and data are null. One must be set."),this;var e={type:"packfile",key:a,url:b,path:this.path,syncPoint:!0,data:null,loading:!1,loaded:!1,error:!1,callbackContext:d};c&&("string"==typeof c&&(c=JSON.parse(c)),e.data=c||{},e.loaded=!0);for(var f=0;f=e||d&&this._loadedPackCount===this._totalPackCount)break}if(this.updateProgress(),this._processingHead>=this._fileList.length)this.finishedLoading();else if(!this._flightQueue.length){console.warn("Phaser.Loader - aborting: processing queue empty, loading may have stalled");var f=this;setTimeout(function(){f.finishedLoading(!0)},2e3)}},finishedLoading:function(a){this.hasLoaded||(this.hasLoaded=!0,this.isLoading=!1,a||this._fileLoadStarted||(this._fileLoadStarted=!0,this.onLoadStart.dispatch()),this.onLoadComplete.dispatch(),this.reset(),this.game.state.loadComplete())},asyncComplete:function(a,b){void 0===b&&(b=""),a.loaded=!0,a.error=!!b,b&&(a.errorMessage=b,console.warn("Phaser.Loader - "+a.type+"["+a.key+"]: "+b)),this.processLoadQueue()},processPack:function(a){var b=a.data[a.key];if(!b)return void console.warn("Phaser.Loader - "+a.key+": pack has data, but not for pack key");for(var d=0;d=10)||(this._warnedAboutXDomainRequest=!0,console.warn("Phaser.Loader - using XDomainRequest outside of IE 9"));var f=new window.XDomainRequest;f.open("GET",b,!0),f.responseType=c,f.timeout=3e3,e=e||this.fileError;var g=this;f.onerror=function(){try{return e.call(g,a,f)}catch(b){g.asyncComplete(a,b.message||"Exception")}},f.ontimeout=function(){try{return e.call(g,a,f)}catch(b){g.asyncComplete(a,b.message||"Exception")}},f.onprogress=function(){},f.onload=function(){try{return d.call(g,a,f) -}catch(b){g.asyncComplete(a,b.message||"Exception")}},a.requestObject=f,a.requestUrl=b,setTimeout(function(){f.send()},0)},getVideoURL:function(a){for(var b=0;b=0&&(d=d.substr(0,d.indexOf("?")));var e=d.substr((Math.max(0,d.lastIndexOf("."))||1/0)+1);c=e.toLowerCase()}if(this.game.device.canPlayVideo(c))return a[b]}return null},getAudioURL:function(a){if(this.game.sound.noAudio)return null;for(var b=0;b=0&&(d=d.substr(0,d.indexOf("?")));var e=d.substr((Math.max(0,d.lastIndexOf("."))||1/0)+1);c=e.toLowerCase()}if(this.game.device.canPlayAudio(c))return a[b]}return null},fileError:function(a,b,c){var d=a.requestUrl||this.transformUrl(a.url,a),e="error loading asset from URL "+d;!c&&b&&(c=b.status),c&&(e=e+" ("+c+")"),this.asyncComplete(a,e)},fileComplete:function(a,b){var d=!0;switch(a.type){case"packfile":var e=JSON.parse(b.responseText);a.data=e||{};break;case"image":this.cache.addImage(a.key,a.url,a.data);break;case"spritesheet":this.cache.addSpriteSheet(a.key,a.url,a.data,a.frameWidth,a.frameHeight,a.frameMax,a.margin,a.spacing);break;case"textureatlas":if(null==a.atlasURL)this.cache.addTextureAtlas(a.key,a.url,a.data,a.atlasData,a.format);else if(d=!1,a.format==c.Loader.TEXTURE_ATLAS_JSON_ARRAY||a.format==c.Loader.TEXTURE_ATLAS_JSON_HASH)this.xhrLoad(a,this.transformUrl(a.atlasURL,a),"text",this.jsonLoadComplete);else{if(a.format!=c.Loader.TEXTURE_ATLAS_XML_STARLING)throw new Error("Phaser.Loader. Invalid Texture Atlas format: "+a.format);this.xhrLoad(a,this.transformUrl(a.atlasURL,a),"text",this.xmlLoadComplete)}break;case"bitmapfont":a.atlasURL?(d=!1,this.xhrLoad(a,this.transformUrl(a.atlasURL,a),"text",function(a,b){var c;try{c=JSON.parse(b.responseText)}catch(d){}c?(a.atlasType="json",this.jsonLoadComplete(a,b)):(a.atlasType="xml",this.xmlLoadComplete(a,b))})):this.cache.addBitmapFont(a.key,a.url,a.data,a.atlasData,a.atlasType,a.xSpacing,a.ySpacing);break;case"video":if(a.asBlob)try{a.data=new Blob([new Uint8Array(b.response)])}catch(f){throw new Error("Phaser.Loader. Unable to parse video file as Blob: "+a.key)}this.cache.addVideo(a.key,a.url,a.data,a.asBlob);break;case"audio":this.game.sound.usingWebAudio?(a.data=b.response,this.cache.addSound(a.key,a.url,a.data,!0,!1),a.autoDecode&&this.game.sound.decode(a.key)):this.cache.addSound(a.key,a.url,a.data,!1,!0);break;case"text":a.data=b.responseText,this.cache.addText(a.key,a.url,a.data);break;case"shader":a.data=b.responseText,this.cache.addShader(a.key,a.url,a.data);break;case"physics":var e=JSON.parse(b.responseText);this.cache.addPhysicsData(a.key,a.url,e,a.format);break;case"script":a.data=document.createElement("script"),a.data.language="javascript",a.data.type="text/javascript",a.data.defer=!1,a.data.text=b.responseText,document.head.appendChild(a.data),a.callback&&(a.data=a.callback.call(a.callbackContext,a.key,b.responseText));break;case"binary":a.data=a.callback?a.callback.call(a.callbackContext,a.key,b.response):b.response,this.cache.addBinary(a.key,a.data)}d&&this.asyncComplete(a)},jsonLoadComplete:function(a,b){var c=JSON.parse(b.responseText);"tilemap"===a.type?this.cache.addTilemap(a.key,a.url,c,a.format):"bitmapfont"===a.type?this.cache.addBitmapFont(a.key,a.url,a.data,c,a.atlasType,a.xSpacing,a.ySpacing):"json"===a.type?this.cache.addJSON(a.key,a.url,c):this.cache.addTextureAtlas(a.key,a.url,a.data,c,a.format),this.asyncComplete(a)},csvLoadComplete:function(a,b){var c=b.responseText;this.cache.addTilemap(a.key,a.url,c,a.format),this.asyncComplete(a)},xmlLoadComplete:function(a,b){var c=b.responseText,d=this.parseXml(c);if(!d){var e=b.responseType||b.contentType;return console.warn("Phaser.Loader - "+a.key+": invalid XML ("+e+")"),void this.asyncComplete(a,"invalid XML")}"bitmapfont"===a.type?this.cache.addBitmapFont(a.key,a.url,a.data,d,a.atlasType,a.xSpacing,a.ySpacing):"textureatlas"===a.type?this.cache.addTextureAtlas(a.key,a.url,a.data,d,a.format):"xml"===a.type&&this.cache.addXML(a.key,a.url,d),this.asyncComplete(a)},parseXml:function(a){var b;try{if(window.DOMParser){var c=new DOMParser;b=c.parseFromString(a,"text/xml")}else b=new ActiveXObject("Microsoft.XMLDOM"),b.async="false",b.loadXML(a)}catch(d){b=null}return b&&b.documentElement&&!b.getElementsByTagName("parsererror").length?b:null},updateProgress:function(){this.preloadSprite&&(0===this.preloadSprite.direction?this.preloadSprite.rect.width=Math.floor(this.preloadSprite.width/100*this.progress):this.preloadSprite.rect.height=Math.floor(this.preloadSprite.height/100*this.progress),this.preloadSprite.sprite?this.preloadSprite.sprite.updateCrop():this.preloadSprite=null)},totalLoadedFiles:function(){return this._loadedFileCount},totalQueuedFiles:function(){return this._totalFileCount-this._loadedFileCount},totalLoadedPacks:function(){return this._totalPackCount},totalQueuedPacks:function(){return this._totalPackCount-this._loadedPackCount}},Object.defineProperty(c.Loader.prototype,"progressFloat",{get:function(){var a=this._loadedFileCount/this._totalFileCount*100;return c.Math.clamp(a||0,0,100)}}),Object.defineProperty(c.Loader.prototype,"progress",{get:function(){return Math.round(this.progressFloat)}}),c.Loader.prototype.constructor=c.Loader,c.LoaderParser={bitmapFont:function(a,b,c,d){return this.xmlBitmapFont(a,b,c,d)},xmlBitmapFont:function(a,b,c,d){var e={},f=a.getElementsByTagName("info")[0],g=a.getElementsByTagName("common")[0];e.font=f.getAttribute("face"),e.size=parseInt(f.getAttribute("size"),10),e.lineHeight=parseInt(g.getAttribute("lineHeight"),10)+d,e.chars={};for(var h=a.getElementsByTagName("char"),i=0;i=this.durationMS&&(this.usingWebAudio?this.loop?(this.onLoop.dispatch(this),""===this.currentMarker?(this.currentTime=0,this.startTime=this.game.time.time):(this.onMarkerComplete.dispatch(this.currentMarker,this),this.play(this.currentMarker,0,this.volume,!0,!0))):""!==this.currentMarker&&this.stop():this.loop?(this.onLoop.dispatch(this),this.play(this.currentMarker,0,this.volume,!0,!0)):this.stop()))},loopFull:function(a){this.play(null,0,a,!0)},play:function(a,b,c,d,e){if((void 0===a||a===!1||null===a)&&(a=""),void 0===e&&(e=!0),this.isPlaying&&!this.allowMultiple&&!e&&!this.override)return this;if(this._sound&&this.isPlaying&&!this.allowMultiple&&(this.override||e))if(this.usingWebAudio)if(this._sound.disconnect(this.externalNode?this.externalNode:this.gainNode),void 0===this._sound.stop)this._sound.noteOff(0);else try{this._sound.stop(0)}catch(f){}else this.usingAudioTag&&(this._sound.pause(),this._sound.currentTime=0);if(""===a&&Object.keys(this.markers).length>0)return this;if(""!==a){if(this.currentMarker=a,!this.markers[a])return this;this.position=this.markers[a].start,this.volume=this.markers[a].volume,this.loop=this.markers[a].loop,this.duration=this.markers[a].duration,this.durationMS=this.markers[a].durationMS,"undefined"!=typeof c&&(this.volume=c),"undefined"!=typeof d&&(this.loop=d),this._tempMarker=a,this._tempPosition=this.position,this._tempVolume=this.volume,this._tempLoop=this.loop}else b=b||0,void 0===c&&(c=this._volume),void 0===d&&(d=this.loop),this.position=b,this.volume=c,this.loop=d,this.duration=0,this.durationMS=0,this._tempMarker=a,this._tempPosition=b,this._tempVolume=c,this._tempLoop=d;return this.usingWebAudio?this.game.cache.isSoundDecoded(this.key)?(this._sound=this.context.createBufferSource(),this._sound.connect(this.externalNode?this.externalNode:this.gainNode),this._buffer=this.game.cache.getSoundData(this.key),this._sound.buffer=this._buffer,this.loop&&""===a&&(this._sound.loop=!0),this.loop||""!==a||(this._sound.onended=this.onEndedHandler.bind(this)),this.totalDuration=this._sound.buffer.duration,0===this.duration&&(this.duration=this.totalDuration,this.durationMS=Math.ceil(1e3*this.totalDuration)),void 0===this._sound.start?this._sound.noteGrainOn(0,this.position,this.duration):this.loop&&""===a?this._sound.start(0,0):this._sound.start(0,this.position,this.duration),this.isPlaying=!0,this.startTime=this.game.time.time,this.currentTime=0,this.stopTime=this.startTime+this.durationMS,this.onPlay.dispatch(this)):(this.pendingPlayback=!0,this.game.cache.getSound(this.key)&&this.game.cache.getSound(this.key).isDecoding===!1&&this.game.sound.decode(this.key,this)):this.game.cache.getSound(this.key)&&this.game.cache.getSound(this.key).locked?(this.game.cache.reloadSound(this.key),this.pendingPlayback=!0):this._sound&&(this.game.device.cocoonJS||4===this._sound.readyState)?(this._sound.play(),this.totalDuration=this._sound.duration,0===this.duration&&(this.duration=this.totalDuration,this.durationMS=1e3*this.totalDuration),this._sound.currentTime=this.position,this._sound.muted=this._muted,this._sound.volume=this._muted?0:this._volume,this.isPlaying=!0,this.startTime=this.game.time.time,this.currentTime=0,this.stopTime=this.startTime+this.durationMS,this.onPlay.dispatch(this)):this.pendingPlayback=!0,this},restart:function(a,b,c,d){a=a||"",b=b||0,c=c||1,void 0===d&&(d=!1),this.play(a,b,c,d,!0)},pause:function(){this.isPlaying&&this._sound&&(this.paused=!0,this.pausedPosition=this.currentTime,this.pausedTime=this.game.time.time,this.onPause.dispatch(this),this.stop())},resume:function(){if(this.paused&&this._sound){if(this.usingWebAudio){var a=this.position+this.pausedPosition/1e3;this._sound=this.context.createBufferSource(),this._sound.buffer=this._buffer,this._sound.connect(this.externalNode?this.externalNode:this.gainNode),this.loop&&(this._sound.loop=!0),this.loop||""!==this.currentMarker||(this._sound.onended=this.onEndedHandler.bind(this));var b=this.duration-this.pausedPosition/1e3;void 0===this._sound.start?this._sound.noteGrainOn(0,a,b):this.loop&&this.game.device.chrome?42===this.game.device.chromeVersion?this._sound.start(0):this._sound.start(0,a):this._sound.start(0,a,b)}else this._sound.play();this.isPlaying=!0,this.paused=!1,this.startTime+=this.game.time.time-this.pausedTime,this.onResume.dispatch(this)}},stop:function(){if(this.isPlaying&&this._sound)if(this.usingWebAudio)if(this._sound.disconnect(this.externalNode?this.externalNode:this.gainNode),void 0===this._sound.stop)this._sound.noteOff(0);else try{this._sound.stop(0)}catch(a){}else this.usingAudioTag&&(this._sound.pause(),this._sound.currentTime=0);this.pendingPlayback=!1,this.isPlaying=!1;var b=this.currentMarker;""!==this.currentMarker&&this.onMarkerComplete.dispatch(this.currentMarker,this),this.currentMarker="",null!==this.fadeTween&&this.fadeTween.stop(),this.paused||this.onStop.dispatch(this,b)},fadeIn:function(a,b,c){void 0===b&&(b=!1),void 0===c&&(c=this.currentMarker),this.paused||(this.play(c,0,0,b),this.fadeTo(a,1))},fadeOut:function(a){this.fadeTo(a,0)},fadeTo:function(a,b){if(this.isPlaying&&!this.paused&&b!==this.volume){if(void 0===a&&(a=1e3),void 0===b)return void console.warn("Phaser.Sound.fadeTo: No Volume Specified.");this.fadeTween=this.game.add.tween(this).to({volume:b},a,c.Easing.Linear.None,!0),this.fadeTween.onComplete.add(this.fadeComplete,this)}},fadeComplete:function(){this.onFadeComplete.dispatch(this,this.volume),0===this.volume&&this.stop()},destroy:function(a){void 0===a&&(a=!0),this.stop(),a?this.game.sound.remove(this):(this.markers={},this.context=null,this._buffer=null,this.externalNode=null,this.onDecoded.dispose(),this.onPlay.dispose(),this.onPause.dispose(),this.onResume.dispose(),this.onLoop.dispose(),this.onStop.dispose(),this.onMute.dispose(),this.onMarkerComplete.dispose())}},c.Sound.prototype.constructor=c.Sound,Object.defineProperty(c.Sound.prototype,"isDecoding",{get:function(){return this.game.cache.getSound(this.key).isDecoding}}),Object.defineProperty(c.Sound.prototype,"isDecoded",{get:function(){return this.game.cache.isSoundDecoded(this.key)}}),Object.defineProperty(c.Sound.prototype,"mute",{get:function(){return this._muted||this.game.sound.mute},set:function(a){a=a||!1,a!==this._muted&&(a?(this._muted=!0,this._muteVolume=this._tempVolume,this.usingWebAudio?this.gainNode.gain.value=0:this.usingAudioTag&&this._sound&&(this._sound.volume=0)):(this._muted=!1,this.usingWebAudio?this.gainNode.gain.value=this._muteVolume:this.usingAudioTag&&this._sound&&(this._sound.volume=this._muteVolume)),this.onMute.dispatch(this))}}),Object.defineProperty(c.Sound.prototype,"volume",{get:function(){return this._volume},set:function(a){return this.game.device.firefox&&this.usingAudioTag&&(a=this.game.math.clamp(a,0,1)),this._muted?void(this._muteVolume=a):(this._tempVolume=a,this._volume=a,void(this.usingWebAudio?this.gainNode.gain.value=a:this.usingAudioTag&&this._sound&&(this._sound.volume=a)))}}),c.SoundManager=function(a){this.game=a,this.onSoundDecode=new c.Signal,this.onVolumeChange=new c.Signal,this.onMute=new c.Signal,this.onUnMute=new c.Signal,this.context=null,this.usingWebAudio=!1,this.usingAudioTag=!1,this.noAudio=!1,this.connectToMaster=!0,this.touchLocked=!1,this.channels=32,this._codeMuted=!1,this._muted=!1,this._unlockSource=null,this._volume=1,this._sounds=[],this._watchList=new c.ArraySet,this._watching=!1,this._watchCallback=null,this._watchContext=null},c.SoundManager.prototype={boot:function(){if(this.game.device.iOS&&this.game.device.webAudio===!1&&(this.channels=1),window.PhaserGlobal){if(window.PhaserGlobal.disableAudio===!0)return this.noAudio=!0,void(this.touchLocked=!1);if(window.PhaserGlobal.disableWebAudio===!0)return this.usingAudioTag=!0,void(this.touchLocked=!1)}if(window.PhaserGlobal&&window.PhaserGlobal.audioContext)this.context=window.PhaserGlobal.audioContext;else if(window.AudioContext)try{this.context=new window.AudioContext}catch(a){this.context=null,this.usingWebAudio=!1,this.touchLocked=!1}else if(window.webkitAudioContext)try{this.context=new window.webkitAudioContext}catch(a){this.context=null,this.usingWebAudio=!1,this.touchLocked=!1}if(null===this.context){if(void 0===window.Audio)return void(this.noAudio=!0);this.usingAudioTag=!0}else this.usingWebAudio=!0,this.masterGain=void 0===this.context.createGain?this.context.createGainNode():this.context.createGain(),this.masterGain.gain.value=1,this.masterGain.connect(this.context.destination);this.noAudio||(!this.game.device.cocoonJS&&this.game.device.iOS||window.PhaserGlobal&&window.PhaserGlobal.fakeiOSTouchLock)&&this.setTouchLock()},setTouchLock:function(){this.game.input.touch.addTouchLockCallback(this.unlock,this),this.touchLocked=!0},unlock:function(){if(this.noAudio||!this.touchLocked||null!==this._unlockSource)return!0;if(this.usingAudioTag)this.touchLocked=!1,this._unlockSource=null;else if(this.usingWebAudio){var a=this.context.createBuffer(1,1,22050);this._unlockSource=this.context.createBufferSource(),this._unlockSource.buffer=a,this._unlockSource.connect(this.context.destination),void 0===this._unlockSource.start?this._unlockSource.noteOn(0):this._unlockSource.start(0)}return!0},stopAll:function(){if(!this.noAudio)for(var a=0;aa?a=0:a>1&&(a=1),this._volume!==a){if(this._volume=a,this.usingWebAudio)this.masterGain.gain.value=a;else for(var b=0;b-1},reset:function(){this.list.length=0},remove:function(a){var b=this.list.indexOf(a);return b>-1?(this.list.splice(b,1),a):void 0},setAll:function(a,b){for(var c=this.list.length;c--;)this.list[c]&&(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)},removeAll:function(a){void 0===a&&(a=!1);for(var b=this.list.length;b--;)if(this.list[b]){var c=this.remove(this.list[b]);a&&c.destroy()}this.position=0,this.list=[]}},Object.defineProperty(c.ArraySet.prototype,"total",{get:function(){return this.list.length}}),Object.defineProperty(c.ArraySet.prototype,"first",{get:function(){return this.position=0,this.list.length>0?this.list[0]:null}}),Object.defineProperty(c.ArraySet.prototype,"next",{get:function(){return this.position0;b--){var c=Math.floor(Math.random()*(b+1)),d=a[b];a[b]=a[c],a[c]=d}return a},transposeMatrix:function(a){for(var b=a.length,c=a[0].length,d=new Array(c),e=0;c>e;e++){d[e]=new Array(b);for(var f=b-1;f>-1;f--)d[e][f]=a[f][e]}return d},rotateMatrix:function(a,b){if("string"!=typeof b&&(b=(b%360+360)%360),90===b||-270===b||"rotateLeft"===b)a=c.ArrayUtils.transposeMatrix(a),a=a.reverse();else if(-90===b||270===b||"rotateRight"===b)a=a.reverse(),a=c.ArrayUtils.transposeMatrix(a);else if(180===Math.abs(b)||"rotate180"===b){for(var d=0;d=e-a?e:d},rotate:function(a){var b=a.shift();return a.push(b),b},numberArray:function(a,b){for(var c=[],d=a;b>=d;d++)c.push(d);return c},numberArrayStep:function(a,b,d){a=+a||0;var e=typeof b;"number"!==e&&"string"!==e||!d||d[b]!==a||(b=d=null),d=null==d?1:+d||0,null===b?(b=a,a=0):b=+b||0;for(var f=-1,g=Math.max(c.Math.roundAwayFromZero((b-a)/(d||1)),0),h=new Array(g);++f>>0:(a<<24|b<<16|d<<8|e)>>>0},unpackPixel:function(a,b,d,e){return(void 0===b||null===b)&&(b=c.Color.createColor()),(void 0===d||null===d)&&(d=!1),(void 0===e||null===e)&&(e=!1),c.Device.LITTLE_ENDIAN?(b.a=(4278190080&a)>>>24,b.b=(16711680&a)>>>16,b.g=(65280&a)>>>8,b.r=255&a):(b.r=(4278190080&a)>>>24,b.g=(16711680&a)>>>16,b.b=(65280&a)>>>8,b.a=255&a),b.color=a,b.rgba="rgba("+b.r+","+b.g+","+b.b+","+b.a/255+")",d&&c.Color.RGBtoHSL(b.r,b.g,b.b,b),e&&c.Color.RGBtoHSV(b.r,b.g,b.b,b),b},fromRGBA:function(a,b){return b||(b=c.Color.createColor()),b.r=(4278190080&a)>>>24,b.g=(16711680&a)>>>16,b.b=(65280&a)>>>8,b.a=255&a,b.rgba="rgba("+b.r+","+b.g+","+b.b+","+b.a+")",b},toRGBA:function(a,b,c,d){return a<<24|b<<16|c<<8|d},RGBtoHSL:function(a,b,d,e){e||(e=c.Color.createColor(a,b,d,1)),a/=255,b/=255,d/=255;var f=Math.min(a,b,d),g=Math.max(a,b,d);if(e.h=0,e.s=0,e.l=(g+f)/2,g!==f){var h=g-f;e.s=e.l>.5?h/(2-g-f):h/(g+f),g===a?e.h=(b-d)/h+(d>b?6:0):g===b?e.h=(d-a)/h+2:g===d&&(e.h=(a-b)/h+4),e.h/=6}return e},HSLtoRGB:function(a,b,d,e){if(e?(e.r=d,e.g=d,e.b=d):e=c.Color.createColor(d,d,d),0!==b){var f=.5>d?d*(1+b):d+b-d*b,g=2*d-f;e.r=c.Color.hueToColor(g,f,a+1/3),e.g=c.Color.hueToColor(g,f,a),e.b=c.Color.hueToColor(g,f,a-1/3)}return e.r=Math.floor(255*e.r|0),e.g=Math.floor(255*e.g|0),e.b=Math.floor(255*e.b|0),c.Color.updateColor(e),e},RGBtoHSV:function(a,b,d,e){e||(e=c.Color.createColor(a,b,d,255)),a/=255,b/=255,d/=255;var f=Math.min(a,b,d),g=Math.max(a,b,d),h=g-f;return e.h=0,e.s=0===g?0:h/g,e.v=g,g!==f&&(g===a?e.h=(b-d)/h+(d>b?6:0):g===b?e.h=(d-a)/h+2:g===d&&(e.h=(a-b)/h+4),e.h/=6),e},HSVtoRGB:function(a,b,d,e){void 0===e&&(e=c.Color.createColor(0,0,0,1,a,b,0,d));var f,g,h,i=Math.floor(6*a),j=6*a-i,k=d*(1-b),l=d*(1-j*b),m=d*(1-(1-j)*b);switch(i%6){case 0:f=d,g=m,h=k;break;case 1:f=l,g=d,h=k;break;case 2:f=k,g=d,h=m;break;case 3:f=k,g=l,h=d;break;case 4:f=m,g=k,h=d;break;case 5:f=d,g=k,h=l}return e.r=Math.floor(255*f),e.g=Math.floor(255*g),e.b=Math.floor(255*h),c.Color.updateColor(e),e},hueToColor:function(a,b,c){return 0>c&&(c+=1),c>1&&(c-=1),1/6>c?a+6*(b-a)*c:.5>c?b:2/3>c?a+(b-a)*(2/3-c)*6:a},createColor:function(a,b,d,e,f,g,h,i){var j={r:a||0,g:b||0,b:d||0,a:e||1,h:f||0,s:g||0,l:h||0,v:i||0,color:0,color32:0,rgba:""};return c.Color.updateColor(j)},updateColor:function(a){return a.rgba="rgba("+a.r.toString()+","+a.g.toString()+","+a.b.toString()+","+a.a.toString()+")",a.color=c.Color.getColor(a.r,a.g,a.b),a.color32=c.Color.getColor32(a.a,a.r,a.g,a.b),a},getColor32:function(a,b,c,d){return a<<24|b<<16|c<<8|d},getColor:function(a,b,c){return a<<16|b<<8|c},RGBtoString:function(a,b,d,e,f){return void 0===e&&(e=255),void 0===f&&(f="#"),"#"===f?"#"+((1<<24)+(a<<16)+(b<<8)+d).toString(16).slice(1):"0x"+c.Color.componentToHex(e)+c.Color.componentToHex(a)+c.Color.componentToHex(b)+c.Color.componentToHex(d)},hexToRGB:function(a){var b=c.Color.hexToColor(a);return b?c.Color.getColor32(b.a,b.r,b.g,b.b):void 0},hexToColor:function(a,b){a=a.replace(/^(?:#|0x)?([a-f\d])([a-f\d])([a-f\d])$/i,function(a,b,c,d){return b+b+c+c+d+d});var d=/^(?:#|0x)?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i.exec(a);if(d){var e=parseInt(d[1],16),f=parseInt(d[2],16),g=parseInt(d[3],16);b?(b.r=e,b.g=f,b.b=g):b=c.Color.createColor(e,f,g)}return b},webToColor:function(a,b){b||(b=c.Color.createColor());var d=/^rgba?\(\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d+)\s*(?:,\s*(\d+(?:\.\d+)?))?\s*\)$/.exec(a);return d&&(b.r=parseInt(d[1],10),b.g=parseInt(d[2],10),b.b=parseInt(d[3],10),b.a=void 0!==d[4]?parseFloat(d[4]):1,c.Color.updateColor(b)),b},valueToColor:function(a,b){if(b||(b=c.Color.createColor()),"string"==typeof a)return 0===a.indexOf("rgb")?c.Color.webToColor(a,b):(b.a=1,c.Color.hexToColor(a,b));if("number"==typeof a){var d=c.Color.getRGB(a);return b.r=d.r,b.g=d.g,b.b=d.b,b.a=d.a/255,b}return b},componentToHex:function(a){var b=a.toString(16);return 1==b.length?"0"+b:b},HSVColorWheel:function(a,b){void 0===a&&(a=1),void 0===b&&(b=1);for(var d=[],e=0;359>=e;e++)d.push(c.Color.HSVtoRGB(e/359,a,b));return d},HSLColorWheel:function(a,b){void 0===a&&(a=.5),void 0===b&&(b=.5);for(var d=[],e=0;359>=e;e++)d.push(c.Color.HSLtoRGB(e/359,a,b));return d},interpolateColor:function(a,b,d,e,f){void 0===f&&(f=255);var g=c.Color.getRGB(a),h=c.Color.getRGB(b),i=(h.red-g.red)*e/d+g.red,j=(h.green-g.green)*e/d+g.green,k=(h.blue-g.blue)*e/d+g.blue;return c.Color.getColor32(f,i,j,k)},interpolateColorWithRGB:function(a,b,d,e,f,g){var h=c.Color.getRGB(a),i=(b-h.red)*g/f+h.red,j=(d-h.green)*g/f+h.green,k=(e-h.blue)*g/f+h.blue;return c.Color.getColor(i,j,k)},interpolateRGB:function(a,b,d,e,f,g,h,i){var j=(e-a)*i/h+a,k=(f-b)*i/h+b,l=(g-d)*i/h+d;return c.Color.getColor(j,k,l)},getRandomColor:function(a,b,d){if(void 0===a&&(a=0),void 0===b&&(b=255),void 0===d&&(d=255),b>255||a>b)return c.Color.getColor(255,255,255);var e=a+Math.round(Math.random()*(b-a)),f=a+Math.round(Math.random()*(b-a)),g=a+Math.round(Math.random()*(b-a));return c.Color.getColor32(d,e,f,g)},getRGB:function(a){return a>16777215?{alpha:a>>>24,red:a>>16&255,green:a>>8&255,blue:255&a,a:a>>>24,r:a>>16&255,g:a>>8&255,b:255&a}:{alpha:255,red:a>>16&255,green:a>>8&255,blue:255&a,a:255,r:a>>16&255,g:a>>8&255,b:255&a}},getWebRGB:function(a){if("object"==typeof a)return"rgba("+a.r.toString()+","+a.g.toString()+","+a.b.toString()+","+(a.a/255).toString()+")";var b=c.Color.getRGB(a);return"rgba("+b.r.toString()+","+b.g.toString()+","+b.b.toString()+","+(b.a/255).toString()+")"},getAlpha:function(a){return a>>>24},getAlphaFloat:function(a){return(a>>>24)/255},getRed:function(a){return a>>16&255},getGreen:function(a){return a>>8&255},getBlue:function(a){return 255&a},blendNormal:function(a){return a},blendLighten:function(a,b){return b>a?b:a},blendDarken:function(a,b){return b>a?a:b},blendMultiply:function(a,b){return a*b/255},blendAverage:function(a,b){return(a+b)/2},blendAdd:function(a,b){return Math.min(255,a+b)},blendSubtract:function(a,b){return Math.max(0,a+b-255)},blendDifference:function(a,b){return Math.abs(a-b)},blendNegation:function(a,b){return 255-Math.abs(255-a-b)},blendScreen:function(a,b){return 255-((255-a)*(255-b)>>8)},blendExclusion:function(a,b){return a+b-2*a*b/255},blendOverlay:function(a,b){return 128>b?2*a*b/255:255-2*(255-a)*(255-b)/255},blendSoftLight:function(a,b){return 128>b?2*((a>>1)+64)*(b/255):255-2*(255-((a>>1)+64))*(255-b)/255},blendHardLight:function(a,b){return c.Color.blendOverlay(b,a)},blendColorDodge:function(a,b){return 255===b?b:Math.min(255,(a<<8)/(255-b))},blendColorBurn:function(a,b){return 0===b?b:Math.max(0,255-(255-a<<8)/b)},blendLinearDodge:function(a,b){return c.Color.blendAdd(a,b)},blendLinearBurn:function(a,b){return c.Color.blendSubtract(a,b)},blendLinearLight:function(a,b){return 128>b?c.Color.blendLinearBurn(a,2*b):c.Color.blendLinearDodge(a,2*(b-128))},blendVividLight:function(a,b){return 128>b?c.Color.blendColorBurn(a,2*b):c.Color.blendColorDodge(a,2*(b-128))},blendPinLight:function(a,b){return 128>b?c.Color.blendDarken(a,2*b):c.Color.blendLighten(a,2*(b-128))},blendHardMix:function(a,b){return c.Color.blendVividLight(a,b)<128?0:255},blendReflect:function(a,b){return 255===b?b:Math.min(255,a*a/(255-b))},blendGlow:function(a,b){return c.Color.blendReflect(b,a)},blendPhoenix:function(a,b){return Math.min(a,b)-Math.max(a,b)+255}},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.Physics=function(a,b){b=b||{},this.game=a,this.config=b,this.arcade=null,this.p2=null,this.ninja=null,this.box2d=null,this.chipmunk=null,this.matter=null,this.parseConfig()},c.Physics.ARCADE=0,c.Physics.P2JS=1,c.Physics.NINJA=2,c.Physics.BOX2D=3,c.Physics.CHIPMUNK=4,c.Physics.MATTERJS=5,c.Physics.prototype={parseConfig:function(){this.config.hasOwnProperty("arcade")&&this.config.arcade!==!0||!c.Physics.hasOwnProperty("Arcade")||(this.arcade=new c.Physics.Arcade(this.game)),this.config.hasOwnProperty("ninja")&&this.config.ninja===!0&&c.Physics.hasOwnProperty("Ninja")&&(this.ninja=new c.Physics.Ninja(this.game)),this.config.hasOwnProperty("p2")&&this.config.p2===!0&&c.Physics.hasOwnProperty("P2")&&(this.p2=new c.Physics.P2(this.game,this.config)),this.config.hasOwnProperty("box2d")&&this.config.box2d===!0&&c.Physics.hasOwnProperty("BOX2D")&&(this.box2d=new c.Physics.BOX2D(this.game,this.config)),this.config.hasOwnProperty("matter")&&this.config.matter===!0&&c.Physics.hasOwnProperty("Matter")&&(this.matter=new c.Physics.Matter(this.game,this.config))},startSystem:function(a){a===c.Physics.ARCADE?this.arcade=new c.Physics.Arcade(this.game):a===c.Physics.P2JS?null===this.p2?this.p2=new c.Physics.P2(this.game,this.config):this.p2.reset():a===c.Physics.NINJA?this.ninja=new c.Physics.Ninja(this.game):a===c.Physics.BOX2D?null===this.box2d?this.box2d=new c.Physics.Box2D(this.game,this.config):this.box2d.reset():a===c.Physics.MATTERJS&&(null===this.matter?this.matter=new c.Physics.Matter(this.game,this.config):this.matter.reset())},enable:function(a,b,d){void 0===b&&(b=c.Physics.ARCADE),void 0===d&&(d=!1),b===c.Physics.ARCADE?this.arcade.enable(a):b===c.Physics.P2JS&&this.p2?this.p2.enable(a,d):b===c.Physics.NINJA&&this.ninja?this.ninja.enableAABB(a):b===c.Physics.BOX2D&&this.box2d?this.box2d.enable(a):b===c.Physics.MATTERJS&&this.matter&&this.matter.enable(a)},preUpdate:function(){this.p2&&this.p2.preUpdate(),this.box2d&&this.box2d.preUpdate(),this.matter&&this.matter.preUpdate()},update:function(){this.p2&&this.p2.update(),this.box2d&&this.box2d.update(),this.matter&&this.matter.update()},setBoundsToWorld:function(){this.arcade&&this.arcade.setBoundsToWorld(),this.ninja&&this.ninja.setBoundsToWorld(),this.p2&&this.p2.setBoundsToWorld(),this.box2d&&this.box2d.setBoundsToWorld(),this.matter&&this.matter.setBoundsToWorld()},clear:function(){this.p2&&this.p2.clear(),this.box2d&&this.box2d.clear(),this.matter&&this.matter.clear()},reset:function(){this.p2&&this.p2.reset(),this.box2d&&this.box2d.reset(),this.matter&&this.matter.reset()},destroy:function(){this.p2&&this.p2.destroy(),this.box2d&&this.box2d.destroy(),this.matter&&this.matter.destroy(),this.arcade=null,this.ninja=null,this.p2=null,this.box2d=null,this.matter=null}},c.Physics.prototype.constructor=c.Physics,c.Physics.Arcade=function(a){this.game=a,this.gravity=new c.Point,this.bounds=new c.Rectangle(0,0,a.world.width,a.world.height),this.checkCollision={up:!0,down:!0,left:!0,right:!0},this.maxObjects=10,this.maxLevels=4,this.OVERLAP_BIAS=4,this.forceX=!1,this.sortDirection=c.Physics.Arcade.LEFT_RIGHT,this.skipQuadTree=!0,this.isPaused=!1,this.quadTree=new c.QuadTree(this.game.world.bounds.x,this.game.world.bounds.y,this.game.world.bounds.width,this.game.world.bounds.height,this.maxObjects,this.maxLevels),this._total=0,this.setBoundsToWorld()},c.Physics.Arcade.prototype.constructor=c.Physics.Arcade,c.Physics.Arcade.SORT_NONE=0,c.Physics.Arcade.LEFT_RIGHT=1,c.Physics.Arcade.RIGHT_LEFT=2,c.Physics.Arcade.TOP_BOTTOM=3,c.Physics.Arcade.BOTTOM_TOP=4,c.Physics.Arcade.prototype={setBounds:function(a,b,c,d){this.bounds.setTo(a,b,c,d)},setBoundsToWorld:function(){this.bounds.copyFrom(this.game.world.bounds)},enable:function(a,b){void 0===b&&(b=!0);var d=1;if(Array.isArray(a))for(d=a.length;d--;)a[d]instanceof c.Group?this.enable(a[d].children,b):(this.enableBody(a[d]),b&&a[d].hasOwnProperty("children")&&a[d].children.length>0&&this.enable(a[d],!0));else a instanceof c.Group?this.enable(a.children,b):(this.enableBody(a),b&&a.hasOwnProperty("children")&&a.children.length>0&&this.enable(a.children,!0))},enableBody:function(a){a.hasOwnProperty("body")&&null===a.body&&(a.body=new c.Physics.Arcade.Body(a),a.parent&&a.parent instanceof c.Group&&a.parent.addToHash(a))},updateMotion:function(a){var b=this.computeVelocity(0,a,a.angularVelocity,a.angularAcceleration,a.angularDrag,a.maxAngular)-a.angularVelocity;a.angularVelocity+=b,a.rotation+=a.angularVelocity*this.game.time.physicsElapsed,a.velocity.x=this.computeVelocity(1,a,a.velocity.x,a.acceleration.x,a.drag.x,a.maxVelocity.x),a.velocity.y=this.computeVelocity(2,a,a.velocity.y,a.acceleration.y,a.drag.y,a.maxVelocity.y)},computeVelocity:function(a,b,c,d,e,f){return void 0===f&&(f=1e4),1===a&&b.allowGravity?c+=(this.gravity.x+b.gravity.x)*this.game.time.physicsElapsed:2===a&&b.allowGravity&&(c+=(this.gravity.y+b.gravity.y)*this.game.time.physicsElapsed),d?c+=d*this.game.time.physicsElapsed:e&&(e*=this.game.time.physicsElapsed,c-e>0?c-=e:0>c+e?c+=e:c=0),c>f?c=f:-f>c&&(c=-f),c},overlap:function(a,b,c,d,e){if(c=c||null,d=d||null,e=e||c,this._total=0,!Array.isArray(a)&&Array.isArray(b))for(var f=0;f0},collide:function(a,b,c,d,e){if(c=c||null,d=d||null,e=e||c,this._total=0,!Array.isArray(a)&&Array.isArray(b))for(var f=0;f0},sortLeftRight:function(a,b){return a.body&&b.body?a.body.x-b.body.x:0},sortRightLeft:function(a,b){return a.body&&b.body?b.body.x-a.body.x:0},sortTopBottom:function(a,b){return a.body&&b.body?a.body.y-b.body.y:0},sortBottomTop:function(a,b){return a.body&&b.body?b.body.y-a.body.y:0},sort:function(a,b){null!==a.physicsSortDirection?b=a.physicsSortDirection:void 0===b&&(b=this.sortDirection),b===c.Physics.Arcade.LEFT_RIGHT?a.hash.sort(this.sortLeftRight):b===c.Physics.Arcade.RIGHT_LEFT?a.hash.sort(this.sortRightLeft):b===c.Physics.Arcade.TOP_BOTTOM?a.hash.sort(this.sortTopBottom):b===c.Physics.Arcade.BOTTOM_TOP&&a.hash.sort(this.sortBottomTop)},collideHandler:function(a,b,d,e,f,g){return void 0===b&&a.physicsType===c.GROUP?(this.sort(a),void this.collideGroupVsSelf(a,d,e,f,g)):void(a&&b&&a.exists&&b.exists&&(this.sortDirection!==c.Physics.Arcade.SORT_NONE&&(a.physicsType===c.GROUP&&this.sort(a),b.physicsType===c.GROUP&&this.sort(b)),a.physicsType===c.SPRITE?b.physicsType===c.SPRITE?this.collideSpriteVsSprite(a,b,d,e,f,g):b.physicsType===c.GROUP?this.collideSpriteVsGroup(a,b,d,e,f,g):b.physicsType===c.TILEMAPLAYER&&this.collideSpriteVsTilemapLayer(a,b,d,e,f,g):a.physicsType===c.GROUP?b.physicsType===c.SPRITE?this.collideSpriteVsGroup(b,a,d,e,f,g):b.physicsType===c.GROUP?this.collideGroupVsGroup(a,b,d,e,f,g):b.physicsType===c.TILEMAPLAYER&&this.collideGroupVsTilemapLayer(a,b,d,e,f,g):a.physicsType===c.TILEMAPLAYER&&(b.physicsType===c.SPRITE?this.collideSpriteVsTilemapLayer(b,a,d,e,f,g):b.physicsType===c.GROUP&&this.collideGroupVsTilemapLayer(b,a,d,e,f,g))))},collideSpriteVsSprite:function(a,b,c,d,e,f){return a.body&&b.body?(this.separate(a.body,b.body,d,e,f)&&(c&&c.call(e,a,b),this._total++),!0):!1},collideSpriteVsGroup:function(a,b,d,e,f,g){if(0!==b.length&&a.body){var h;if(this.skipQuadTree||a.body.skipQuadTree){for(var i=0;ih.right)break;if(h.x>a.body.right)continue}else if(this.sortDirection===c.Physics.Arcade.TOP_BOTTOM){if(a.body.bottomh.bottom)break;if(h.y>a.body.bottom)continue}this.collideSpriteVsSprite(a,b.hash[i],d,e,f,g)}}else{this.quadTree.clear(),this.quadTree.reset(this.game.world.bounds.x,this.game.world.bounds.y,this.game.world.bounds.width,this.game.world.bounds.height,this.maxObjects,this.maxLevels),this.quadTree.populate(b);for(var j=this.quadTree.retrieve(a),i=0;ij.body.right)continue;if(j.body.x>h.body.right)break}else if(this.sortDirection===c.Physics.Arcade.TOP_BOTTOM){if(h.body.bottomj.body.bottom)continue;if(j.body.y>h.body.bottom)break}this.collideSpriteVsSprite(h,j,b,d,e,f)}},collideGroupVsGroup:function(a,b,d,e,f,g){if(0!==a.length&&0!==b.length)for(var h=0;h=b.right?!1:a.position.y>=b.bottom?!1:!0},separateX:function(a,b,c){if(a.immovable&&b.immovable)return!1;var d=0;if(this.intersects(a,b)){var e=a.deltaAbsX()+b.deltaAbsX()+this.OVERLAP_BIAS;if(0===a.deltaX()&&0===b.deltaX()?(a.embedded=!0,b.embedded=!0):a.deltaX()>b.deltaX()?(d=a.right-b.x,d>e||a.checkCollision.right===!1||b.checkCollision.left===!1?d=0:(a.touching.none=!1,a.touching.right=!0,b.touching.none=!1,b.touching.left=!0)):a.deltaX()e||a.checkCollision.left===!1||b.checkCollision.right===!1?d=0:(a.touching.none=!1,a.touching.left=!0,b.touching.none=!1,b.touching.right=!0)),a.overlapX=d,b.overlapX=d,0!==d){if(c||a.customSeparateX||b.customSeparateX)return!0;var f=a.velocity.x,g=b.velocity.x;if(a.immovable||b.immovable)a.immovable?b.immovable||(b.x+=d,b.velocity.x=f-g*b.bounce.x,a.moves&&(b.y+=(a.y-a.prev.y)*a.friction.y)):(a.x=a.x-d,a.velocity.x=g-f*a.bounce.x,b.moves&&(a.y+=(b.y-b.prev.y)*b.friction.y));else{d*=.5,a.x=a.x-d,b.x+=d;var h=Math.sqrt(g*g*b.mass/a.mass)*(g>0?1:-1),i=Math.sqrt(f*f*a.mass/b.mass)*(f>0?1:-1),j=.5*(h+i);h-=j,i-=j,a.velocity.x=j+h*a.bounce.x,b.velocity.x=j+i*b.bounce.x}return!0}}return!1},separateY:function(a,b,c){if(a.immovable&&b.immovable)return!1;var d=0;if(this.intersects(a,b)){var e=a.deltaAbsY()+b.deltaAbsY()+this.OVERLAP_BIAS;if(0===a.deltaY()&&0===b.deltaY()?(a.embedded=!0,b.embedded=!0):a.deltaY()>b.deltaY()?(d=a.bottom-b.y,d>e||a.checkCollision.down===!1||b.checkCollision.up===!1?d=0:(a.touching.none=!1,a.touching.down=!0,b.touching.none=!1,b.touching.up=!0)):a.deltaY()e||a.checkCollision.up===!1||b.checkCollision.down===!1?d=0:(a.touching.none=!1,a.touching.up=!0,b.touching.none=!1,b.touching.down=!0)),a.overlapY=d,b.overlapY=d,0!==d){if(c||a.customSeparateY||b.customSeparateY)return!0;var f=a.velocity.y,g=b.velocity.y;if(a.immovable||b.immovable)a.immovable?b.immovable||(b.y+=d,b.velocity.y=f-g*b.bounce.y,a.moves&&(b.x+=(a.x-a.prev.x)*a.friction.x)):(a.y=a.y-d,a.velocity.y=g-f*a.bounce.y,b.moves&&(a.x+=(b.x-b.prev.x)*b.friction.x));else{d*=.5,a.y=a.y-d,b.y+=d;var h=Math.sqrt(g*g*b.mass/a.mass)*(g>0?1:-1),i=Math.sqrt(f*f*a.mass/b.mass)*(f>0?1:-1),j=.5*(h+i);h-=j,i-=j,a.velocity.y=j+h*a.bounce.y,b.velocity.y=j+i*b.bounce.y}return!0}}return!1},getObjectsUnderPointer:function(a,b,c,d){return 0!==b.length&&a.exists?this.getObjectsAtLocation(a.x,a.y,b,c,d,a):void 0},getObjectsAtLocation:function(a,b,d,e,f,g){this.quadTree.clear(),this.quadTree.reset(this.game.world.bounds.x,this.game.world.bounds.y,this.game.world.bounds.width,this.game.world.bounds.height,this.maxObjects,this.maxLevels),this.quadTree.populate(d);for(var h=new c.Rectangle(a,b,1,1),i=[],j=this.quadTree.retrieve(h),k=0;k0&&(c=this.distanceBetween(a,b)/(d/1e3)),a.body.velocity.x=Math.cos(e)*c,a.body.velocity.y=Math.sin(e)*c,e},moveToPointer:function(a,b,c,d){void 0===b&&(b=60),c=c||this.game.input.activePointer,void 0===d&&(d=0);var e=this.angleToPointer(a,c);return d>0&&(b=this.distanceToPointer(a,c)/(d/1e3)),a.body.velocity.x=Math.cos(e)*b,a.body.velocity.y=Math.sin(e)*b,e},moveToXY:function(a,b,c,d,e){void 0===d&&(d=60),void 0===e&&(e=0);var f=Math.atan2(c-a.y,b-a.x);return e>0&&(d=this.distanceToXY(a,b,c)/(e/1e3)),a.body.velocity.x=Math.cos(f)*d,a.body.velocity.y=Math.sin(f)*d,f},velocityFromAngle:function(a,b,d){return void 0===b&&(b=60),d=d||new c.Point,d.setTo(Math.cos(this.game.math.degToRad(a))*b,Math.sin(this.game.math.degToRad(a))*b)},velocityFromRotation:function(a,b,d){return void 0===b&&(b=60),d=d||new c.Point,d.setTo(Math.cos(a)*b,Math.sin(a)*b)},accelerationFromRotation:function(a,b,d){return void 0===b&&(b=60),d=d||new c.Point,d.setTo(Math.cos(a)*b,Math.sin(a)*b)},accelerateToObject:function(a,b,c,d,e){void 0===c&&(c=60),void 0===d&&(d=1e3),void 0===e&&(e=1e3);var f=this.angleBetween(a,b);return a.body.acceleration.setTo(Math.cos(f)*c,Math.sin(f)*c),a.body.maxVelocity.setTo(d,e),f},accelerateToPointer:function(a,b,c,d,e){void 0===c&&(c=60),void 0===b&&(b=this.game.input.activePointer),void 0===d&&(d=1e3),void 0===e&&(e=1e3);var f=this.angleToPointer(a,b);return a.body.acceleration.setTo(Math.cos(f)*c,Math.sin(f)*c),a.body.maxVelocity.setTo(d,e),f},accelerateToXY:function(a,b,c,d,e,f){void 0===d&&(d=60),void 0===e&&(e=1e3),void 0===f&&(f=1e3);var g=this.angleToXY(a,b,c);return a.body.acceleration.setTo(Math.cos(g)*d,Math.sin(g)*d),a.body.maxVelocity.setTo(e,f),g},distanceBetween:function(a,b){var c=a.x-b.x,d=a.y-b.y;return Math.sqrt(c*c+d*d)},distanceToXY:function(a,b,c){var d=a.x-b,e=a.y-c;return Math.sqrt(d*d+e*e)},distanceToPointer:function(a,b){b=b||this.game.input.activePointer;var c=a.x-b.worldX,d=a.y-b.worldY;return Math.sqrt(c*c+d*d)},angleBetween:function(a,b){var c=b.x-a.x,d=b.y-a.y;return Math.atan2(d,c)},angleToXY:function(a,b,c){var d=b-a.x,e=c-a.y;return Math.atan2(e,d)},angleToPointer:function(a,b){b=b||this.game.input.activePointer;var c=b.worldX-a.x,d=b.worldY-a.y;return Math.atan2(d,c)}},c.Physics.Arcade.Body=function(a){this.sprite=a,this.game=a.game,this.type=c.Physics.ARCADE,this.enable=!0,this.offset=new c.Point,this.position=new c.Point(a.x,a.y),this.prev=new c.Point(this.position.x,this.position.y),this.allowRotation=!0,this.rotation=a.rotation,this.preRotation=a.rotation,this.width=a.width,this.height=a.height,this.sourceWidth=a.width,this.sourceHeight=a.height,a.texture&&(this.sourceWidth=a.texture.frame.width,this.sourceHeight=a.texture.frame.height),this.halfWidth=Math.abs(a.width/2),this.halfHeight=Math.abs(a.height/2),this.center=new c.Point(a.x+this.halfWidth,a.y+this.halfHeight),this.velocity=new c.Point,this.newVelocity=new c.Point(0,0),this.deltaMax=new c.Point(0,0),this.acceleration=new c.Point,this.drag=new c.Point,this.allowGravity=!0,this.gravity=new c.Point(0,0),this.bounce=new c.Point,this.maxVelocity=new c.Point(1e4,1e4),this.friction=new c.Point(1,0),this.angularVelocity=0,this.angularAcceleration=0,this.angularDrag=0,this.maxAngular=1e3,this.mass=1,this.angle=0,this.speed=0,this.facing=c.NONE,this.immovable=!1,this.moves=!0,this.customSeparateX=!1,this.customSeparateY=!1,this.overlapX=0,this.overlapY=0,this.embedded=!1,this.collideWorldBounds=!1,this.checkCollision={none:!1,any:!0,up:!0,down:!0,left:!0,right:!0},this.touching={none:!0,up:!1,down:!1,left:!1,right:!1},this.wasTouching={none:!0,up:!1,down:!1,left:!1,right:!1},this.blocked={up:!1,down:!1,left:!1,right:!1},this.tilePadding=new c.Point,this.dirty=!1,this.skipQuadTree=!1,this.syncBounds=!1,this._reset=!0,this._sx=a.scale.x,this._sy=a.scale.y,this._dx=0,this._dy=0},c.Physics.Arcade.Body.prototype={updateBounds:function(){if(this.syncBounds){var a=this.sprite.getBounds();a.ceilAll(),(a.width!==this.width||a.height!==this.height)&&(this.width=a.width,this.height=a.height,this._reset=!0)}else{var b=Math.abs(this.sprite.scale.x),c=Math.abs(this.sprite.scale.y);(b!==this._sx||c!==this._sy)&&(this.width=this.sourceWidth*b,this.height=this.sourceHeight*c,this._sx=b,this._sy=c,this._reset=!0)}this._reset&&(this.halfWidth=Math.floor(this.width/2),this.halfHeight=Math.floor(this.height/2),this.center.setTo(this.position.x+this.halfWidth,this.position.y+this.halfHeight))},preUpdate:function(){this.enable&&!this.game.physics.arcade.isPaused&&(this.dirty=!0,this.wasTouching.none=this.touching.none,this.wasTouching.up=this.touching.up,this.wasTouching.down=this.touching.down,this.wasTouching.left=this.touching.left,this.wasTouching.right=this.touching.right,this.touching.none=!0,this.touching.up=!1,this.touching.down=!1,this.touching.left=!1,this.touching.right=!1,this.blocked.up=!1,this.blocked.down=!1,this.blocked.left=!1,this.blocked.right=!1,this.embedded=!1,this.updateBounds(),this.position.x=this.sprite.world.x-this.sprite.anchor.x*this.width+this.offset.x,this.position.y=this.sprite.world.y-this.sprite.anchor.y*this.height+this.offset.y,this.rotation=this.sprite.angle,this.preRotation=this.rotation,(this._reset||this.sprite.fresh)&&(this.prev.x=this.position.x,this.prev.y=this.position.y),this.moves&&(this.game.physics.arcade.updateMotion(this),this.newVelocity.set(this.velocity.x*this.game.time.physicsElapsed,this.velocity.y*this.game.time.physicsElapsed),this.position.x+=this.newVelocity.x,this.position.y+=this.newVelocity.y,(this.position.x!==this.prev.x||this.position.y!==this.prev.y)&&(this.speed=Math.sqrt(this.velocity.x*this.velocity.x+this.velocity.y*this.velocity.y),this.angle=Math.atan2(this.velocity.y,this.velocity.x)),this.collideWorldBounds&&this.checkWorldBounds()),this._dx=this.deltaX(),this._dy=this.deltaY(),this._reset=!1)},postUpdate:function(){this.enable&&this.dirty&&(this.dirty=!1,this.deltaX()<0?this.facing=c.LEFT:this.deltaX()>0&&(this.facing=c.RIGHT),this.deltaY()<0?this.facing=c.UP:this.deltaY()>0&&(this.facing=c.DOWN),this.moves&&(this._dx=this.deltaX(),this._dy=this.deltaY(),0!==this.deltaMax.x&&0!==this._dx&&(this._dx<0&&this._dx<-this.deltaMax.x?this._dx=-this.deltaMax.x:this._dx>0&&this._dx>this.deltaMax.x&&(this._dx=this.deltaMax.x)),0!==this.deltaMax.y&&0!==this._dy&&(this._dy<0&&this._dy<-this.deltaMax.y?this._dy=-this.deltaMax.y:this._dy>0&&this._dy>this.deltaMax.y&&(this._dy=this.deltaMax.y)),this.sprite.position.x+=this._dx,this.sprite.position.y+=this._dy,this._reset=!0),this.center.setTo(this.position.x+this.halfWidth,this.position.y+this.halfHeight),this.allowRotation&&(this.sprite.angle+=this.deltaZ()),this.prev.x=this.position.x,this.prev.y=this.position.y)},destroy:function(){this.sprite.parent&&this.sprite.parent instanceof c.Group&&this.sprite.parent.removeFromHash(this.sprite),this.sprite.body=null,this.sprite=null},checkWorldBounds:function(){var a=this.position,b=this.game.physics.arcade.bounds,c=this.game.physics.arcade.checkCollision;a.xb.right&&c.right&&(a.x=b.right-this.width,this.velocity.x*=-this.bounce.x,this.blocked.right=!0),a.yb.bottom&&c.down&&(a.y=b.bottom-this.height,this.velocity.y*=-this.bounce.y,this.blocked.down=!0) -},setSize:function(a,b,c,d){void 0===c&&(c=this.offset.x),void 0===d&&(d=this.offset.y),this.sourceWidth=a,this.sourceHeight=b,this.width=this.sourceWidth*this._sx,this.height=this.sourceHeight*this._sy,this.halfWidth=Math.floor(this.width/2),this.halfHeight=Math.floor(this.height/2),this.offset.setTo(c,d),this.center.setTo(this.position.x+this.halfWidth,this.position.y+this.halfHeight)},reset:function(a,b){this.velocity.set(0),this.acceleration.set(0),this.speed=0,this.angularVelocity=0,this.angularAcceleration=0,this.position.x=a-this.sprite.anchor.x*this.width+this.offset.x,this.position.y=b-this.sprite.anchor.y*this.height+this.offset.y,this.prev.x=this.position.x,this.prev.y=this.position.y,this.rotation=this.sprite.angle,this.preRotation=this.rotation,this._sx=this.sprite.scale.x,this._sy=this.sprite.scale.y,this.center.setTo(this.position.x+this.halfWidth,this.position.y+this.halfHeight)},hitTest:function(a,b){return c.Rectangle.contains(this,a,b)},onFloor:function(){return this.blocked.down},onWall:function(){return this.blocked.left||this.blocked.right},deltaAbsX:function(){return this.deltaX()>0?this.deltaX():-this.deltaX()},deltaAbsY:function(){return this.deltaY()>0?this.deltaY():-this.deltaY()},deltaX:function(){return this.position.x-this.prev.x},deltaY:function(){return this.position.y-this.prev.y},deltaZ:function(){return this.rotation-this.preRotation}},Object.defineProperty(c.Physics.Arcade.Body.prototype,"bottom",{get:function(){return this.position.y+this.height}}),Object.defineProperty(c.Physics.Arcade.Body.prototype,"right",{get:function(){return this.position.x+this.width}}),Object.defineProperty(c.Physics.Arcade.Body.prototype,"x",{get:function(){return this.position.x},set:function(a){this.position.x=a}}),Object.defineProperty(c.Physics.Arcade.Body.prototype,"y",{get:function(){return this.position.y},set:function(a){this.position.y=a}}),c.Physics.Arcade.Body.render=function(a,b,c,d){void 0===d&&(d=!0),c=c||"rgba(0,255,0,0.4)",d?(a.fillStyle=c,a.fillRect(b.position.x-b.game.camera.x,b.position.y-b.game.camera.y,b.width,b.height)):(a.strokeStyle=c,a.strokeRect(b.position.x-b.game.camera.x,b.position.y-b.game.camera.y,b.width,b.height))},c.Physics.Arcade.Body.renderBodyInfo=function(a,b){a.line("x: "+b.x.toFixed(2),"y: "+b.y.toFixed(2),"width: "+b.width,"height: "+b.height),a.line("velocity x: "+b.velocity.x.toFixed(2),"y: "+b.velocity.y.toFixed(2),"deltaX: "+b._dx.toFixed(2),"deltaY: "+b._dy.toFixed(2)),a.line("acceleration x: "+b.acceleration.x.toFixed(2),"y: "+b.acceleration.y.toFixed(2),"speed: "+b.speed.toFixed(2),"angle: "+b.angle.toFixed(2)),a.line("gravity x: "+b.gravity.x,"y: "+b.gravity.y,"bounce x: "+b.bounce.x.toFixed(2),"y: "+b.bounce.y.toFixed(2)),a.line("touching left: "+b.touching.left,"right: "+b.touching.right,"up: "+b.touching.up,"down: "+b.touching.down),a.line("blocked left: "+b.blocked.left,"right: "+b.blocked.right,"up: "+b.blocked.up,"down: "+b.blocked.down)},c.Physics.Arcade.Body.prototype.constructor=c.Physics.Arcade.Body,c.Physics.Arcade.TilemapCollision=function(){},c.Physics.Arcade.TilemapCollision.prototype={TILE_BIAS:16,collideSpriteVsTilemapLayer:function(a,b,c,d,e,f){if(a.body){var g=b.getTiles(a.body.position.x-a.body.tilePadding.x,a.body.position.y-a.body.tilePadding.y,a.body.width+a.body.tilePadding.x,a.body.height+a.body.tilePadding.y,!1,!1);if(0!==g.length)for(var h=0;hb.deltaAbsY()?g=-1:b.deltaAbsX()g){if((c.faceLeft||c.faceRight)&&(e=this.tileCheckX(b,c),0!==e&&!c.intersects(b.position.x,b.position.y,b.right,b.bottom)))return!0;(c.faceTop||c.faceBottom)&&(f=this.tileCheckY(b,c))}else{if((c.faceTop||c.faceBottom)&&(f=this.tileCheckY(b,c),0!==f&&!c.intersects(b.position.x,b.position.y,b.right,b.bottom)))return!0;(c.faceLeft||c.faceRight)&&(e=this.tileCheckX(b,c))}return 0!==e||0!==f},tileCheckX:function(a,b){var c=0;return a.deltaX()<0&&!a.blocked.left&&b.collideRight&&a.checkCollision.left?b.faceRight&&a.x0&&!a.blocked.right&&b.collideLeft&&a.checkCollision.right&&b.faceLeft&&a.right>b.left&&(c=a.right-b.left,c>this.TILE_BIAS&&(c=0)),0!==c&&(a.customSeparateX?a.overlapX=c:this.processTileSeparationX(a,c)),c},tileCheckY:function(a,b){var c=0;return a.deltaY()<0&&!a.blocked.up&&b.collideDown&&a.checkCollision.up?b.faceBottom&&a.y0&&!a.blocked.down&&b.collideUp&&a.checkCollision.down&&b.faceTop&&a.bottom>b.top&&(c=a.bottom-b.top,c>this.TILE_BIAS&&(c=0)),0!==c&&(a.customSeparateY?a.overlapY=c:this.processTileSeparationY(a,c)),c},processTileSeparationX:function(a,b){0>b?a.blocked.left=!0:b>0&&(a.blocked.right=!0),a.position.x-=b,a.velocity.x=0===a.bounce.x?0:-a.velocity.x*a.bounce.x},processTileSeparationY:function(a,b){0>b?a.blocked.up=!0:b>0&&(a.blocked.down=!0),a.position.y-=b,a.velocity.y=0===a.bounce.y?0:-a.velocity.y*a.bounce.y}},c.Utils.mixinPrototype(c.Physics.Arcade.prototype,c.Physics.Arcade.TilemapCollision.prototype),!function(a){if("object"==typeof exports)module.exports=a();else{var b;"undefined"!=typeof window?b=window:"undefined"!=typeof global?b=global:"undefined"!=typeof self&&(b=self),b.p2=a()}}(function(){return function a(b,c,d){function e(g,h){if(!c[g]){if(!b[g]){var i="function"==typeof require&&require;if(!h&&i)return i(g,!0);if(f)return f(g,!0);throw new Error("Cannot find module '"+g+"'")}var j=c[g]={exports:{}};b[g][0].call(j.exports,function(a){var c=b[g][1][a];return e(c?c:a)},j,j.exports,a,b,c,d)}return c[g].exports}for(var f="function"==typeof require&&require,g=0;g=0&&1>=i&&j>=0&&1>=j}},{"./Scalar":4}],2:[function(a,b){function c(){}b.exports=c,c.area=function(a,b,c){return(b[0]-a[0])*(c[1]-a[1])-(c[0]-a[0])*(b[1]-a[1])},c.left=function(a,b,d){return c.area(a,b,d)>0},c.leftOn=function(a,b,d){return c.area(a,b,d)>=0},c.right=function(a,b,d){return c.area(a,b,d)<0},c.rightOn=function(a,b,d){return c.area(a,b,d)<=0};var d=[],e=[];c.collinear=function(a,b,f,g){if(g){var h=d,i=e;h[0]=b[0]-a[0],h[1]=b[1]-a[1],i[0]=f[0]-b[0],i[1]=f[1]-b[1];var j=h[0]*i[0]+h[1]*i[1],k=Math.sqrt(h[0]*h[0]+h[1]*h[1]),l=Math.sqrt(i[0]*i[0]+i[1]*i[1]),m=Math.acos(j/(k*l));return g>m}return 0==c.area(a,b,f)},c.sqdist=function(a,b){var c=b[0]-a[0],d=b[1]-a[1];return c*c+d*d}},{}],3:[function(a,b){function c(){this.vertices=[]}function d(a,b,c,d,e){e=e||0;var f=b[1]-a[1],h=a[0]-b[0],i=f*a[0]+h*a[1],j=d[1]-c[1],k=c[0]-d[0],l=j*c[0]+k*c[1],m=f*k-j*h;return g.eq(m,0,e)?[0,0]:[(k*i-h*l)/m,(f*l-j*i)/m]}var e=a("./Line"),f=a("./Point"),g=a("./Scalar");b.exports=c,c.prototype.at=function(a){var b=this.vertices,c=b.length;return b[0>a?a%c+c:a%c]},c.prototype.first=function(){return this.vertices[0]},c.prototype.last=function(){return this.vertices[this.vertices.length-1]},c.prototype.clear=function(){this.vertices.length=0},c.prototype.append=function(a,b,c){if("undefined"==typeof b)throw new Error("From is not given!");if("undefined"==typeof c)throw new Error("To is not given!");if(b>c-1)throw new Error("lol1");if(c>a.vertices.length)throw new Error("lol2");if(0>b)throw new Error("lol3");for(var d=b;c>d;d++)this.vertices.push(a.vertices[d])},c.prototype.makeCCW=function(){for(var a=0,b=this.vertices,c=1;cb[a][0])&&(a=c);f.left(this.at(a-1),this.at(a),this.at(a+1))||this.reverse()},c.prototype.reverse=function(){for(var a=[],b=0,c=this.vertices.length;b!==c;b++)a.push(this.vertices.pop());this.vertices=a},c.prototype.isReflex=function(a){return f.right(this.at(a-1),this.at(a),this.at(a+1))};var h=[],i=[];c.prototype.canSee=function(a,b){var c,d,g=h,j=i;if(f.leftOn(this.at(a+1),this.at(a),this.at(b))&&f.rightOn(this.at(a-1),this.at(a),this.at(b)))return!1;d=f.sqdist(this.at(a),this.at(b));for(var k=0;k!==this.vertices.length;++k)if((k+1)%this.vertices.length!==a&&k!==a&&f.leftOn(this.at(a),this.at(b),this.at(k+1))&&f.rightOn(this.at(a),this.at(b),this.at(k))&&(g[0]=this.at(a),g[1]=this.at(b),j[0]=this.at(k),j[1]=this.at(k+1),c=e.lineInt(g,j),f.sqdist(this.at(a),c)a)for(var f=a;b>=f;f++)e.vertices.push(this.vertices[f]);else{for(var f=0;b>=f;f++)e.vertices.push(this.vertices[f]);for(var f=a;f0?this.slice(a):[this]},c.prototype.slice=function(a){if(0==a.length)return[this];if(a instanceof Array&&a.length&&a[0]instanceof Array&&2==a[0].length&&a[0][0]instanceof Array){for(var b=[this],c=0;cc;c++)if(e.segmentsIntersect(a[b],a[b+1],a[c],a[c+1]))return!1;for(var b=1;bh)return console.warn("quickDecomp: max level ("+h+") reached."),a;for(var x=0;xo&&(n=o,k=l,r=y))),f.left(v.at(x+1),v.at(x),v.at(y+1))&&f.rightOn(v.at(x+1),v.at(x),v.at(y))&&(l=d(v.at(x+1),v.at(x),v.at(y),v.at(y+1)),f.left(v.at(x-1),v.at(x),l)&&(o=f.sqdist(v.vertices[x],l),m>o&&(m=o,j=l,q=y)));if(r==(q+1)%this.vertices.length)l[0]=(k[0]+j[0])/2,l[1]=(k[1]+j[1])/2,e.push(l),q>x?(t.append(v,x,q+1),t.vertices.push(l),u.vertices.push(l),0!=r&&u.append(v,r,v.vertices.length),u.append(v,0,x+1)):(0!=x&&t.append(v,x,v.vertices.length),t.append(v,0,q+1),t.vertices.push(l),u.vertices.push(l),u.append(v,r,x+1));else{if(r>q&&(q+=this.vertices.length),p=Number.MAX_VALUE,r>q)return a;for(var y=r;q>=y;++y)f.leftOn(v.at(x-1),v.at(x),v.at(y))&&f.rightOn(v.at(x+1),v.at(x),v.at(y))&&(o=f.sqdist(v.at(x),v.at(y)),p>o&&(p=o,s=y%this.vertices.length));s>x?(t.append(v,x,s+1),0!=s&&u.append(v,s,w.length),u.append(v,0,x+1)):(0!=x&&t.append(v,x,w.length),t.append(v,0,s+1),u.append(v,s,x+1))}return t.vertices.length3&&c>=0;--c)f.collinear(this.at(c-1),this.at(c),this.at(c+1),a)&&(this.vertices.splice(c%this.vertices.length,1),c--,b++);return b}},{"./Line":1,"./Point":2,"./Scalar":4}],4:[function(a,b){function c(){}b.exports=c,c.eq=function(a,b,c){return c=c||0,Math.abs(a-b) (http://steffe.se)",keywords:["p2.js","p2","physics","engine","2d"],main:"./src/p2.js",engines:{node:"*"},repository:{type:"git",url:"https://github.com/schteppe/p2.js.git"},bugs:{url:"https://github.com/schteppe/p2.js/issues"},licenses:[{type:"MIT"}],devDependencies:{grunt:"^0.4.5","grunt-contrib-jshint":"^0.11.2","grunt-contrib-nodeunit":"^0.4.1","grunt-contrib-uglify":"~0.4.0","grunt-contrib-watch":"~0.5.0","grunt-browserify":"~2.0.1","grunt-contrib-concat":"^0.4.0"},dependencies:{"poly-decomp":"0.1.0"}}},{}],7:[function(a,b){function c(a){this.lowerBound=d.create(),a&&a.lowerBound&&d.copy(this.lowerBound,a.lowerBound),this.upperBound=d.create(),a&&a.upperBound&&d.copy(this.upperBound,a.upperBound)}{var d=a("../math/vec2");a("../utils/Utils")}b.exports=c;var e=d.create();c.prototype.setFromPoints=function(a,b,c,f){var g=this.lowerBound,h=this.upperBound;"number"!=typeof c&&(c=0),0!==c?d.rotate(g,a[0],c):d.copy(g,a[0]),d.copy(h,g);for(var i=Math.cos(c),j=Math.sin(c),k=1;ko;o++)l[o]>h[o]&&(h[o]=l[o]),l[o]c&&(this.lowerBound[b]=c);var d=a.upperBound[b];this.upperBound[b]i?-1:h>i?-1:h}},{"../math/vec2":30,"../utils/Utils":57}],8:[function(a,b){function c(a){this.type=a,this.result=[],this.world=null,this.boundingVolumeType=c.AABB}var d=a("../math/vec2"),e=a("../objects/Body");b.exports=c,c.AABB=1,c.BOUNDING_CIRCLE=2,c.prototype.setWorld=function(a){this.world=a},c.prototype.getCollisionPairs=function(){};var f=d.create();c.boundingRadiusCheck=function(a,b){d.sub(f,a.position,b.position);var c=d.squaredLength(f),e=a.boundingRadius+b.boundingRadius;return e*e>=c},c.aabbCheck=function(a,b){return a.getAABB().overlaps(b.getAABB())},c.prototype.boundingVolumeCheck=function(a,b){var d;switch(this.boundingVolumeType){case c.BOUNDING_CIRCLE:d=c.boundingRadiusCheck(a,b);break;case c.AABB:d=c.aabbCheck(a,b);break;default:throw new Error("Bounding volume type not recognized: "+this.boundingVolumeType)}return d},c.canCollide=function(a,b){var c=e.KINEMATIC,d=e.STATIC;return a.type===d&&b.type===d?!1:a.type===c&&b.type===d||a.type===d&&b.type===c?!1:a.type===c&&b.type===c?!1:a.sleepState===e.SLEEPING&&b.sleepState===e.SLEEPING?!1:a.sleepState===e.SLEEPING&&b.type===d||b.sleepState===e.SLEEPING&&a.type===d?!1:!0},c.NAIVE=1,c.SAP=2},{"../math/vec2":30,"../objects/Body":31}],9:[function(a,b){function c(){d.call(this,d.NAIVE)}{var d=(a("../shapes/Circle"),a("../shapes/Plane"),a("../shapes/Shape"),a("../shapes/Particle"),a("../collision/Broadphase"));a("../math/vec2")}b.exports=c,c.prototype=new d,c.prototype.constructor=c,c.prototype.getCollisionPairs=function(a){var b=a.bodies,c=this.result;c.length=0;for(var e=0,f=b.length;e!==f;e++)for(var g=b[e],h=0;e>h;h++){var i=b[h];d.canCollide(g,i)&&this.boundingVolumeCheck(g,i)&&c.push(g,i)}return c},c.prototype.aabbQuery=function(a,b,c){c=c||[];for(var d=a.bodies,e=0;e=r*n)return!1;n=r}return!0}var f=a("../math/vec2"),g=f.sub,h=f.add,i=f.dot,j=(a("../utils/Utils"),a("../utils/ContactEquationPool")),k=a("../utils/FrictionEquationPool"),l=a("../utils/TupleDictionary"),m=a("../equations/Equation"),n=(a("../equations/ContactEquation"),a("../equations/FrictionEquation"),a("../shapes/Circle")),o=a("../shapes/Convex"),p=a("../shapes/Shape"),q=(a("../objects/Body"),a("../shapes/Box"));b.exports=c;var r=f.fromValues(0,1),s=f.fromValues(0,0),t=f.fromValues(0,0),u=f.fromValues(0,0),v=f.fromValues(0,0),w=f.fromValues(0,0),x=f.fromValues(0,0),y=f.fromValues(0,0),z=f.fromValues(0,0),A=f.fromValues(0,0),B=f.fromValues(0,0),C=f.fromValues(0,0),D=f.fromValues(0,0),E=f.fromValues(0,0),F=f.fromValues(0,0),G=f.fromValues(0,0),H=f.fromValues(0,0),I=f.fromValues(0,0),J=f.fromValues(0,0),K=[],L=f.create(),M=f.create();c.prototype.bodiesOverlap=function(a,b){for(var c=L,d=M,e=0,f=a.shapes.length;e!==f;e++){var g=a.shapes[e];a.toWorldFrame(c,g.position);for(var h=0,i=b.shapes.length;h!==i;h++){var j=b.shapes[h];if(b.toWorldFrame(d,j.position),this[g.type|j.type](a,g,c,g.angle+a.angle,b,j,d,j.angle+b.angle,!0))return!0}}return!1},c.prototype.collidedLastStep=function(a,b){var c=0|a.id,d=0|b.id;return!!this.collidingBodiesLastStep.get(c,d)},c.prototype.reset=function(){this.collidingBodiesLastStep.reset();for(var a=this.contactEquations,b=a.length;b--;){var c=a[b],d=c.bodyA.id,e=c.bodyB.id;this.collidingBodiesLastStep.set(d,e,!0)}for(var f=this.contactEquations,g=this.frictionEquations,h=0;hp;p++){f.set(m,(0===p?-1:1)*b.length/2,0),f.rotate(m,m,e),f.add(m,m,c);for(var q=0;2>q;q++){f.set(n,(0===q?-1:1)*h.length/2,0),f.rotate(n,n,j),f.add(n,n,i),this.enableFrictionReduction&&(l=this.enableFriction,this.enableFriction=!1);var r=this.circleCircle(a,b,m,e,g,h,n,j,k,b.radius,h.radius);if(this.enableFrictionReduction&&(this.enableFriction=l),k&&r)return!0;o+=r}}this.enableFrictionReduction&&(l=this.enableFriction,this.enableFriction=!1);var s=R;d(s,b);var t=this.convexCapsule(a,s,c,e,g,h,i,j,k);if(this.enableFrictionReduction&&(this.enableFriction=l),k&&t)return!0;if(o+=t,this.enableFrictionReduction){var l=this.enableFriction;this.enableFriction=!1}d(s,h);var u=this.convexCapsule(g,s,i,j,a,b,c,e,k);return this.enableFrictionReduction&&(this.enableFriction=l),k&&u?!0:(o+=u,this.enableFrictionReduction&&o&&this.enableFriction&&this.frictionEquations.push(this.createFrictionFromAverage(o)),o)},c.prototype[p.LINE|p.LINE]=c.prototype.lineLine=function(a,b,c,d,e,f,g,h,i){return i?!1:0},c.prototype[p.PLANE|p.LINE]=c.prototype.planeLine=function(a,b,c,d,e,j,k,l,m){var n=s,o=t,p=u,q=v,B=w,C=x,D=y,E=z,F=A,G=K,H=0;f.set(n,-j.length/2,0),f.set(o,j.length/2,0),f.rotate(p,n,l),f.rotate(q,o,l),h(p,p,k),h(q,q,k),f.copy(n,p),f.copy(o,q),g(B,o,n),f.normalize(C,B),f.rotate90cw(F,C),f.rotate(E,r,d),G[0]=n,G[1]=o;for(var I=0;IL){if(m)return!0;var M=this.createContactEquation(a,e,b,j);H++,f.copy(M.normalA,E),f.normalize(M.normalA,M.normalA),f.scale(D,E,L),g(M.contactPointA,J,D),g(M.contactPointA,M.contactPointA,a.position),g(M.contactPointB,J,k),h(M.contactPointB,M.contactPointB,k),g(M.contactPointB,M.contactPointB,e.position),this.contactEquations.push(M),this.enableFrictionReduction||this.enableFriction&&this.frictionEquations.push(this.createFrictionFromContact(M))}}return m?!1:(this.enableFrictionReduction||H&&this.enableFriction&&this.frictionEquations.push(this.createFrictionFromAverage(H)),H)},c.prototype[p.PARTICLE|p.CAPSULE]=c.prototype.particleCapsule=function(a,b,c,d,e,f,g,h,i){return this.circleLine(a,b,c,d,e,f,g,h,i,f.radius,0)},c.prototype[p.CIRCLE|p.LINE]=c.prototype.circleLine=function(a,b,c,d,e,j,k,l,m,n,o){var n=n||0,o="undefined"!=typeof o?o:b.radius,p=s,q=t,r=u,G=v,H=w,I=x,J=y,L=z,M=A,N=B,O=C,P=D,Q=E,R=F,S=K;f.set(L,-j.length/2,0),f.set(M,j.length/2,0),f.rotate(N,L,l),f.rotate(O,M,l),h(N,N,k),h(O,O,k),f.copy(L,N),f.copy(M,O),g(I,M,L),f.normalize(J,I),f.rotate90cw(H,J),g(P,c,L);var T=i(P,H);g(G,L,k),g(Q,c,k);var U=o+n;if(Math.abs(T)W&&X>V){if(m)return!0;var Y=this.createContactEquation(a,e,b,j);return f.scale(Y.normalA,p,-1),f.normalize(Y.normalA,Y.normalA),f.scale(Y.contactPointA,Y.normalA,o),h(Y.contactPointA,Y.contactPointA,c),g(Y.contactPointA,Y.contactPointA,a.position),g(Y.contactPointB,r,k),h(Y.contactPointB,Y.contactPointB,k),g(Y.contactPointB,Y.contactPointB,e.position),this.contactEquations.push(Y),this.enableFriction&&this.frictionEquations.push(this.createFrictionFromContact(Y)),1}}S[0]=L,S[1]=M;for(var Z=0;ZQ&&(f.copy(J,D),L=Q,f.scale(A,x,Q),f.add(A,A,D),K=!0)}}if(K){if(m)return!0;var R=this.createContactEquation(a,i,b,j);return f.sub(R.normalA,J,c),f.normalize(R.normalA,R.normalA),f.scale(R.contactPointA,R.normalA,n),h(R.contactPointA,R.contactPointA,c),g(R.contactPointA,R.contactPointA,a.position),g(R.contactPointB,A,k),h(R.contactPointB,R.contactPointB,k),g(R.contactPointB,R.contactPointB,i.position),this.contactEquations.push(R),this.enableFriction&&this.frictionEquations.push(this.createFrictionFromContact(R)),1}if(n>0)for(var N=0;NQ&&(K=Q,f.scale(F,z,Q),f.add(F,F,c),f.copy(H,z),L=!0)}if(L){var R=this.createContactEquation(a,j,b,k);return f.scale(R.normalA,H,-1),f.normalize(R.normalA,R.normalA),f.set(R.contactPointA,0,0),h(R.contactPointA,R.contactPointA,c),g(R.contactPointA,R.contactPointA,a.position),g(R.contactPointB,F,l),h(R.contactPointB,R.contactPointB,l),g(R.contactPointB,R.contactPointB,j.position),this.contactEquations.push(R),this.enableFriction&&this.frictionEquations.push(this.createFrictionFromContact(R)),1}return 0},c.prototype[p.CIRCLE]=c.prototype.circleCircle=function(a,b,c,d,e,i,j,k,l,m,n){var o=s,m=m||b.radius,n=n||i.radius;g(o,c,j);var p=m+n;if(f.squaredLength(o)>Math.pow(p,2))return 0;if(l)return!0;var q=this.createContactEquation(a,e,b,i);return g(q.normalA,j,c),f.normalize(q.normalA,q.normalA),f.scale(q.contactPointA,q.normalA,m),f.scale(q.contactPointB,q.normalA,-n),h(q.contactPointA,q.contactPointA,c),g(q.contactPointA,q.contactPointA,a.position),h(q.contactPointB,q.contactPointB,j),g(q.contactPointB,q.contactPointB,e.position),this.contactEquations.push(q),this.enableFriction&&this.frictionEquations.push(this.createFrictionFromContact(q)),1},c.prototype[p.PLANE|p.CONVEX]=c.prototype[p.PLANE|p.BOX]=c.prototype.planeConvex=function(a,b,c,d,e,j,k,l,m){var n=s,o=t,p=u,q=0;f.rotate(o,r,d);for(var v=0;v!==j.vertices.length;v++){var w=j.vertices[v];if(f.rotate(n,w,l),h(n,n,k),g(p,n,c),i(p,o)<=0){if(m)return!0;q++;var x=this.createContactEquation(a,e,b,j);g(p,n,c),f.copy(x.normalA,o);var y=i(p,x.normalA);f.scale(p,x.normalA,y),g(x.contactPointB,n,e.position),g(x.contactPointA,n,p),g(x.contactPointA,x.contactPointA,a.position),this.contactEquations.push(x),this.enableFrictionReduction||this.enableFriction&&this.frictionEquations.push(this.createFrictionFromContact(x))}}return this.enableFrictionReduction&&this.enableFriction&&q&&this.frictionEquations.push(this.createFrictionFromAverage(q)),q},c.prototype[p.PARTICLE|p.PLANE]=c.prototype.particlePlane=function(a,b,c,d,e,h,j,k,l){var m=s,n=t;k=k||0,g(m,c,j),f.rotate(n,r,k);var o=i(m,n);if(o>0)return 0;if(l)return!0;var p=this.createContactEquation(e,a,h,b);return f.copy(p.normalA,n),f.scale(m,p.normalA,o),g(p.contactPointA,c,m),g(p.contactPointA,p.contactPointA,e.position),g(p.contactPointB,c,a.position),this.contactEquations.push(p),this.enableFriction&&this.frictionEquations.push(this.createFrictionFromContact(p)),1},c.prototype[p.CIRCLE|p.PARTICLE]=c.prototype.circleParticle=function(a,b,c,d,e,i,j,k,l){var m=s;if(g(m,j,c),f.squaredLength(m)>Math.pow(b.radius,2))return 0;if(l)return!0;var n=this.createContactEquation(a,e,b,i);return f.copy(n.normalA,m),f.normalize(n.normalA,n.normalA),f.scale(n.contactPointA,n.normalA,b.radius),h(n.contactPointA,n.contactPointA,c),g(n.contactPointA,n.contactPointA,a.position),g(n.contactPointB,j,e.position),this.contactEquations.push(n),this.enableFriction&&this.frictionEquations.push(this.createFrictionFromContact(n)),1 -};{var W=new n({radius:1}),X=f.create(),Y=f.create();f.create()}c.prototype[p.PLANE|p.CAPSULE]=c.prototype.planeCapsule=function(a,b,c,d,e,g,i,j,k){var l=X,m=Y,n=W;f.set(l,-g.length/2,0),f.rotate(l,l,j),h(l,l,i),f.set(m,g.length/2,0),f.rotate(m,m,j),h(m,m,i),n.radius=g.radius;var o;this.enableFrictionReduction&&(o=this.enableFriction,this.enableFriction=!1);var p=this.circlePlane(e,n,l,0,a,b,c,d,k),q=this.circlePlane(e,n,m,0,a,b,c,d,k);if(this.enableFrictionReduction&&(this.enableFriction=o),k)return p||q;var r=p+q;return this.enableFrictionReduction&&r&&this.frictionEquations.push(this.createFrictionFromAverage(r)),r},c.prototype[p.CIRCLE|p.PLANE]=c.prototype.circlePlane=function(a,b,c,d,e,j,k,l,m){var n=a,o=b,p=c,q=e,v=k,w=l;w=w||0;var x=s,y=t,z=u;g(x,p,v),f.rotate(y,r,w);var A=i(y,x);if(A>o.radius)return 0;if(m)return!0;var B=this.createContactEquation(q,n,j,b);return f.copy(B.normalA,y),f.scale(B.contactPointB,B.normalA,-o.radius),h(B.contactPointB,B.contactPointB,p),g(B.contactPointB,B.contactPointB,n.position),f.scale(z,B.normalA,A),g(B.contactPointA,x,z),h(B.contactPointA,B.contactPointA,v),g(B.contactPointA,B.contactPointA,q.position),this.contactEquations.push(B),this.enableFriction&&this.frictionEquations.push(this.createFrictionFromContact(B)),1},c.prototype[p.CONVEX]=c.prototype[p.CONVEX|p.BOX]=c.prototype[p.BOX]=c.prototype.convexConvex=function(a,b,d,e,j,k,l,m,n,o){var p=s,q=t,r=u,x=v,B=w,C=y,D=z,E=A,F=0,o="number"==typeof o?o:0,G=c.findSeparatingAxis(b,d,e,k,l,m,p);if(!G)return 0;g(D,l,d),i(p,D)>0&&f.scale(p,p,-1);var H=c.getClosestEdge(b,e,p,!0),I=c.getClosestEdge(k,m,p);if(-1===H||-1===I)return 0;for(var J=0;2>J;J++){var K=H,L=I,M=b,N=k,O=d,P=l,Q=e,R=m,S=a,T=j;if(0===J){var U;U=K,K=L,L=U,U=M,M=N,N=U,U=O,O=P,P=U,U=Q,Q=R,R=U,U=S,S=T,T=U}for(var V=L;L+2>V;V++){var W=N.vertices[(V+N.vertices.length)%N.vertices.length];f.rotate(q,W,R),h(q,q,P);for(var X=0,Y=K-1;K+2>Y;Y++){var Z=M.vertices[(Y+M.vertices.length)%M.vertices.length],$=M.vertices[(Y+1+M.vertices.length)%M.vertices.length];f.rotate(r,Z,Q),f.rotate(x,$,Q),h(r,r,O),h(x,x,O),g(B,x,r),f.rotate90cw(E,B),f.normalize(E,E),g(D,q,r);var _=i(E,D);(Y===K&&o>=_||Y!==K&&0>=_)&&X++}if(X>=3){if(n)return!0;var ab=this.createContactEquation(S,T,M,N);F++;var Z=M.vertices[K%M.vertices.length],$=M.vertices[(K+1)%M.vertices.length];f.rotate(r,Z,Q),f.rotate(x,$,Q),h(r,r,O),h(x,x,O),g(B,x,r),f.rotate90cw(ab.normalA,B),f.normalize(ab.normalA,ab.normalA),g(D,q,r);var _=i(ab.normalA,D);f.scale(C,ab.normalA,_),g(ab.contactPointA,q,O),g(ab.contactPointA,ab.contactPointA,C),h(ab.contactPointA,ab.contactPointA,O),g(ab.contactPointA,ab.contactPointA,S.position),g(ab.contactPointB,q,P),h(ab.contactPointB,ab.contactPointB,P),g(ab.contactPointB,ab.contactPointB,T.position),this.contactEquations.push(ab),this.enableFrictionReduction||this.enableFriction&&this.frictionEquations.push(this.createFrictionFromContact(ab))}}}return this.enableFrictionReduction&&this.enableFriction&&F&&this.frictionEquations.push(this.createFrictionFromAverage(F)),F};var Z=f.fromValues(0,0);c.projectConvexOntoAxis=function(a,b,c,d,e){var g,h,j=null,k=null,l=Z;f.rotate(l,d,-c);for(var m=0;mj)&&(j=h),(null===k||k>h)&&(k=h);if(k>j){var n=k;k=j,j=n}var o=i(b,d);f.set(e,k+o,j+o)};var $=f.fromValues(0,0),_=f.fromValues(0,0),ab=f.fromValues(0,0),bb=f.fromValues(0,0),cb=f.fromValues(0,0),db=f.fromValues(0,0);c.findSeparatingAxis=function(a,b,d,e,h,i,j){var k=null,l=!1,m=!1,n=$,o=_,p=ab,r=bb,s=cb,t=db;if(a instanceof q&&e instanceof q)for(var u=0;2!==u;u++){var v=a,w=d;1===u&&(v=e,w=i);for(var x=0;2!==x;x++){0===x?f.set(r,0,1):1===x&&f.set(r,1,0),0!==w&&f.rotate(r,r,w),c.projectConvexOntoAxis(a,b,d,r,s),c.projectConvexOntoAxis(e,h,i,r,t);var y=s,z=t,A=!1;s[0]>t[0]&&(z=s,y=t,A=!0);var B=z[0]-y[1];l=0>=B,(null===k||B>k)&&(f.copy(j,r),k=B,m=l)}}else for(var u=0;2!==u;u++){var v=a,w=d;1===u&&(v=e,w=i);for(var x=0;x!==v.vertices.length;x++){f.rotate(o,v.vertices[x],w),f.rotate(p,v.vertices[(x+1)%v.vertices.length],w),g(n,p,o),f.rotate90cw(r,n),f.normalize(r,r),c.projectConvexOntoAxis(a,b,d,r,s),c.projectConvexOntoAxis(e,h,i,r,t);var y=s,z=t,A=!1;s[0]>t[0]&&(z=s,y=t,A=!0);var B=z[0]-y[1];l=0>=B,(null===k||B>k)&&(f.copy(j,r),k=B,m=l)}}return m};var eb=f.fromValues(0,0),fb=f.fromValues(0,0),gb=f.fromValues(0,0);c.getClosestEdge=function(a,b,c,d){var e=eb,h=fb,j=gb;f.rotate(e,c,-b),d&&f.scale(e,e,-1);for(var k=-1,l=a.vertices.length,m=-1,n=0;n!==l;n++){g(h,a.vertices[(n+1)%l],a.vertices[n%l]),f.rotate90cw(j,h),f.normalize(j,j);var o=i(j,e);(-1===k||o>m)&&(k=n%l,m=o)}return k};var hb=f.create(),ib=f.create(),jb=f.create(),kb=f.create(),lb=f.create(),mb=f.create(),nb=f.create();c.prototype[p.CIRCLE|p.HEIGHTFIELD]=c.prototype.circleHeightfield=function(a,b,c,d,e,i,j,k,l,m){var n=i.heights,m=m||b.radius,o=i.elementWidth,p=ib,q=hb,r=lb,s=nb,t=mb,u=jb,v=kb,w=Math.floor((c[0]-m-j[0])/o),x=Math.ceil((c[0]+m-j[0])/o);0>w&&(w=0),x>=n.length&&(x=n.length-1);for(var y=n[w],z=n[x],A=w;x>A;A++)n[A]y&&(y=n[A]);if(c[1]-m>y)return l?!1:0;for(var B=!1,A=w;x>A;A++){f.set(u,A*o,n[A]),f.set(v,(A+1)*o,n[A+1]),f.add(u,u,j),f.add(v,v,j),f.sub(t,v,u),f.rotate(t,t,Math.PI/2),f.normalize(t,t),f.scale(q,t,-m),f.add(q,q,c),f.sub(p,q,u);var C=f.dot(p,t);if(q[0]>=u[0]&&q[0]=C){if(l)return!0;B=!0,f.scale(p,t,-C),f.add(r,q,p),f.copy(s,t);var D=this.createContactEquation(e,a,i,b);f.copy(D.normalA,s),f.scale(D.contactPointB,D.normalA,-m),h(D.contactPointB,D.contactPointB,c),g(D.contactPointB,D.contactPointB,a.position),f.copy(D.contactPointA,r),f.sub(D.contactPointA,D.contactPointA,e.position),this.contactEquations.push(D),this.enableFriction&&this.frictionEquations.push(this.createFrictionFromContact(D))}}if(B=!1,m>0)for(var A=w;x>=A;A++)if(f.set(u,A*o,n[A]),f.add(u,u,j),f.sub(p,c,u),f.squaredLength(p)q&&(q=0),r>=k.length&&(r=k.length-1);for(var s=k[q],t=k[r],u=q;r>u;u++)k[u]s&&(s=k[u]);if(a.aabb.lowerBound[1]>s)return j?!1:0;for(var v=0,u=q;r>u;u++){f.set(m,u*l,k[u]),f.set(n,(u+1)*l,k[u+1]),f.add(m,m,h),f.add(n,n,h);var w=100;f.set(o,.5*(n[0]+m[0]),.5*(n[1]+m[1]-w)),f.sub(p.vertices[0],n,o),f.sub(p.vertices[1],m,o),f.copy(p.vertices[2],p.vertices[1]),f.copy(p.vertices[3],p.vertices[0]),p.vertices[2][1]-=w,p.vertices[3][1]-=w,v+=this.convexConvex(a,b,c,d,e,p,o,0,j)}return v}},{"../equations/ContactEquation":21,"../equations/Equation":22,"../equations/FrictionEquation":23,"../math/vec2":30,"../objects/Body":31,"../shapes/Box":37,"../shapes/Circle":39,"../shapes/Convex":40,"../shapes/Shape":45,"../utils/ContactEquationPool":48,"../utils/FrictionEquationPool":49,"../utils/TupleDictionary":56,"../utils/Utils":57}],11:[function(a,b){function c(a){a=a||{},this.from=a.from?e.fromValues(a.from[0],a.from[1]):e.create(),this.to=a.to?e.fromValues(a.to[0],a.to[1]):e.create(),this.checkCollisionResponse=void 0!==a.checkCollisionResponse?a.checkCollisionResponse:!0,this.skipBackfaces=!!a.skipBackfaces,this.collisionMask=void 0!==a.collisionMask?a.collisionMask:-1,this.collisionGroup=void 0!==a.collisionGroup?a.collisionGroup:-1,this.mode=void 0!==a.mode?a.mode:c.ANY,this.callback=a.callback||function(){},this.direction=e.create(),this.length=1,this.update()}function d(a,b,c){e.sub(g,c,a);var d=e.dot(g,b);return e.scale(h,b,d),e.add(h,h,a),e.squaredDistance(c,h)}b.exports=c;{var e=a("../math/vec2");a("../collision/RaycastResult"),a("../shapes/Shape"),a("../collision/AABB")}c.prototype.constructor=c,c.CLOSEST=1,c.ANY=2,c.ALL=4,c.prototype.update=function(){var a=this.direction;e.sub(a,this.to,this.from),this.length=e.length(a),e.normalize(a,a)},c.prototype.intersectBodies=function(a,b){for(var c=0,d=b.length;!a.shouldStop(this)&&d>c;c++){var e=b[c],f=e.getAABB();(f.overlapsRay(this)>=0||f.containsPoint(this.from))&&this.intersectBody(a,e)}};var f=e.create();c.prototype.intersectBody=function(a,b){var c=this.checkCollisionResponse;if(!c||b.collisionResponse)for(var d=f,g=0,h=b.shapes.length;h>g;g++){var i=b.shapes[g];if((!c||i.collisionResponse)&&0!==(this.collisionGroup&i.collisionMask)&&0!==(i.collisionGroup&this.collisionMask)){e.rotate(d,i.position,b.angle),e.add(d,d,b.position);var j=i.angle+b.angle;if(this.intersectShape(a,i,j,d,b),a.shouldStop(this))break}}},c.prototype.intersectShape=function(a,b,c,e,f){var g=this.from,h=d(g,this.direction,e);h>b.boundingRadius*b.boundingRadius||(this._currentBody=f,this._currentShape=b,b.raycast(a,this,e,c),this._currentBody=this._currentShape=null)},c.prototype.getAABB=function(a){var b=this.to,c=this.from;e.set(a.lowerBound,Math.min(b[0],c[0]),Math.min(b[1],c[1])),e.set(a.upperBound,Math.max(b[0],c[0]),Math.max(b[1],c[1]))};e.create();c.prototype.reportIntersection=function(a,b,d,f){var g=(this.from,this.to,this._currentShape),h=this._currentBody;if(!(this.skipBackfaces&&e.dot(d,this.direction)>0))switch(this.mode){case c.ALL:a.set(d,g,h,b,f),this.callback(a);break;case c.CLOSEST:(bc;c++){for(var e=a[c],f=c-1;f>=0&&!(a[f].aabb.lowerBound[b]<=e.aabb.lowerBound[b]);f--)a[f+1]=a[f];a[f+1]=e}return a},c.prototype.sortList=function(){var a=this.axisList,b=this.axisIndex;c.sortAxisList(a,b)},c.prototype.getCollisionPairs=function(){var a=this.axisList,b=this.result,c=this.axisIndex;b.length=0;for(var d=a.length;d--;){var f=a[d];f.aabbNeedsUpdate&&f.updateAABB()}this.sortList();for(var g=0,h=0|a.length;g!==h;g++)for(var i=a[g],j=g+1;h>j;j++){var k=a[j],l=k.aabb.lowerBound[c]<=i.aabb.upperBound[c];if(!l)break;e.canCollide(i,k)&&this.boundingVolumeCheck(i,k)&&b.push(i,k)}return b},c.prototype.aabbQuery=function(a,b,c){c=c||[],this.sortList();var d=this.axisIndex,e="x";1===d&&(e="y"),2===d&&(e="z");for(var f=this.axisList,g=(b.lowerBound[e],b.upperBound[e],0);gthis.upperLimit&&(g.maxForce=0,g.minForce=-this.maxForce,this.distance=this.upperLimit,l=!0),this.lowerLimitEnabled&&this.positionc)g.scale(e.normalA,i,-1),g.sub(e.contactPointA,j,h.position),g.sub(e.contactPointB,k,o.position),g.scale(n,i,c),g.add(e.contactPointA,e.contactPointA,n),-1===a.indexOf(e)&&a.push(e);else{var u=a.indexOf(e);-1!==u&&a.splice(u,1)}if(this.lowerLimitEnabled&&d>s)g.scale(f.normalA,i,1),g.sub(f.contactPointA,j,h.position),g.sub(f.contactPointB,k,o.position),g.scale(n,i,d),g.sub(f.contactPointB,f.contactPointB,n),-1===a.indexOf(f)&&a.push(f);else{var u=a.indexOf(f);-1!==u&&a.splice(u,1)}},c.prototype.enableMotor=function(){this.motorEnabled||(this.equations.push(this.motorEquation),this.motorEnabled=!0)},c.prototype.disableMotor=function(){if(this.motorEnabled){var a=this.equations.indexOf(this.motorEquation);this.equations.splice(a,1),this.motorEnabled=!1}},c.prototype.setLimits=function(a,b){"number"==typeof a?(this.lowerLimit=a,this.lowerLimitEnabled=!0):(this.lowerLimit=a,this.lowerLimitEnabled=!1),"number"==typeof b?(this.upperLimit=b,this.upperLimitEnabled=!0):(this.upperLimit=b,this.upperLimitEnabled=!1)}},{"../equations/ContactEquation":21,"../equations/Equation":22,"../equations/RotationalLockEquation":24,"../math/vec2":30,"./Constraint":14}],19:[function(a,b){function c(a,b,c){c=c||{},d.call(this,a,b,d.REVOLUTE,c);var n=this.maxForce="undefined"!=typeof c.maxForce?c.maxForce:Number.MAX_VALUE;this.pivotA=h.create(),this.pivotB=h.create(),c.worldPivot?(h.sub(this.pivotA,c.worldPivot,a.position),h.sub(this.pivotB,c.worldPivot,b.position),h.rotate(this.pivotA,this.pivotA,-a.angle),h.rotate(this.pivotB,this.pivotB,-b.angle)):(h.copy(this.pivotA,c.localPivotA),h.copy(this.pivotB,c.localPivotB));var o=this.equations=[new e(a,b,-n,n),new e(a,b,-n,n)],p=o[0],q=o[1],r=this;p.computeGq=function(){return h.rotate(i,r.pivotA,a.angle),h.rotate(j,r.pivotB,b.angle),h.add(m,b.position,j),h.sub(m,m,a.position),h.sub(m,m,i),h.dot(m,k)},q.computeGq=function(){return h.rotate(i,r.pivotA,a.angle),h.rotate(j,r.pivotB,b.angle),h.add(m,b.position,j),h.sub(m,m,a.position),h.sub(m,m,i),h.dot(m,l)},q.minForce=p.minForce=-n,q.maxForce=p.maxForce=n,this.motorEquation=new f(a,b),this.motorEnabled=!1,this.angle=0,this.lowerLimitEnabled=!1,this.upperLimitEnabled=!1,this.lowerLimit=0,this.upperLimit=0,this.upperLimitEquation=new g(a,b),this.lowerLimitEquation=new g(a,b),this.upperLimitEquation.minForce=0,this.lowerLimitEquation.maxForce=0}var d=a("./Constraint"),e=a("../equations/Equation"),f=a("../equations/RotationalVelocityEquation"),g=a("../equations/RotationalLockEquation"),h=a("../math/vec2");b.exports=c;var i=h.create(),j=h.create(),k=h.fromValues(1,0),l=h.fromValues(0,1),m=h.create();c.prototype=new d,c.prototype.constructor=c,c.prototype.setLimits=function(a,b){"number"==typeof a?(this.lowerLimit=a,this.lowerLimitEnabled=!0):(this.lowerLimit=a,this.lowerLimitEnabled=!1),"number"==typeof b?(this.upperLimit=b,this.upperLimitEnabled=!0):(this.upperLimit=b,this.upperLimitEnabled=!1)},c.prototype.update=function(){var a=this.bodyA,b=this.bodyB,c=this.pivotA,d=this.pivotB,e=this.equations,f=(e[0],e[1],e[0]),g=e[1],m=this.upperLimit,n=this.lowerLimit,o=this.upperLimitEquation,p=this.lowerLimitEquation,q=this.angle=b.angle-a.angle;if(this.upperLimitEnabled&&q>m)o.angle=m,-1===e.indexOf(o)&&e.push(o);else{var r=e.indexOf(o);-1!==r&&e.splice(r,1)}if(this.lowerLimitEnabled&&n>q)p.angle=n,-1===e.indexOf(p)&&e.push(p);else{var r=e.indexOf(p);-1!==r&&e.splice(r,1)}h.rotate(i,c,a.angle),h.rotate(j,d,b.angle),f.G[0]=-1,f.G[1]=0,f.G[2]=-h.crossLength(i,k),f.G[3]=1,f.G[4]=0,f.G[5]=h.crossLength(j,k),g.G[0]=0,g.G[1]=-1,g.G[2]=-h.crossLength(i,l),g.G[3]=0,g.G[4]=1,g.G[5]=h.crossLength(j,l)},c.prototype.enableMotor=function(){this.motorEnabled||(this.equations.push(this.motorEquation),this.motorEnabled=!0)},c.prototype.disableMotor=function(){if(this.motorEnabled){var a=this.equations.indexOf(this.motorEquation);this.equations.splice(a,1),this.motorEnabled=!1}},c.prototype.motorIsEnabled=function(){return!!this.motorEnabled},c.prototype.setMotorSpeed=function(a){if(this.motorEnabled){var b=this.equations.indexOf(this.motorEquation);this.equations[b].relativeVelocity=a}},c.prototype.getMotorSpeed=function(){return this.motorEnabled?this.motorEquation.relativeVelocity:!1}},{"../equations/Equation":22,"../equations/RotationalLockEquation":24,"../equations/RotationalVelocityEquation":25,"../math/vec2":30,"./Constraint":14}],20:[function(a,b){function c(a,b,c){c=c||{},d.call(this,a,b,-Number.MAX_VALUE,Number.MAX_VALUE),this.angle=c.angle||0,this.ratio="number"==typeof c.ratio?c.ratio:1,this.setRatio(this.ratio)}{var d=a("./Equation");a("../math/vec2")}b.exports=c,c.prototype=new d,c.prototype.constructor=c,c.prototype.computeGq=function(){return this.ratio*this.bodyA.angle-this.bodyB.angle+this.angle},c.prototype.setRatio=function(a){var b=this.G;b[2]=a,b[5]=-1,this.ratio=a},c.prototype.setMaxTorque=function(a){this.maxForce=a,this.minForce=-a}},{"../math/vec2":30,"./Equation":22}],21:[function(a,b){function c(a,b){d.call(this,a,b,0,Number.MAX_VALUE),this.contactPointA=e.create(),this.penetrationVec=e.create(),this.contactPointB=e.create(),this.normalA=e.create(),this.restitution=0,this.firstImpact=!1,this.shapeA=null,this.shapeB=null}var d=a("./Equation"),e=a("../math/vec2");b.exports=c,c.prototype=new d,c.prototype.constructor=c,c.prototype.computeB=function(a,b,c){var d=this.bodyA,f=this.bodyB,g=this.contactPointA,h=this.contactPointB,i=d.position,j=f.position,k=this.penetrationVec,l=this.normalA,m=this.G,n=e.crossLength(g,l),o=e.crossLength(h,l);m[0]=-l[0],m[1]=-l[1],m[2]=-n,m[3]=l[0],m[4]=l[1],m[5]=o,e.add(k,j,h),e.sub(k,k,i),e.sub(k,k,g);var p,q;this.firstImpact&&0!==this.restitution?(q=0,p=1/b*(1+this.restitution)*this.computeGW()):(q=e.dot(l,k)+this.offset,p=this.computeGW());var r=this.computeGiMf(),s=-q*a-p*b-c*r;return s}},{"../math/vec2":30,"./Equation":22}],22:[function(a,b){function c(a,b,d,f){this.minForce="undefined"==typeof d?-Number.MAX_VALUE:d,this.maxForce="undefined"==typeof f?Number.MAX_VALUE:f,this.bodyA=a,this.bodyB=b,this.stiffness=c.DEFAULT_STIFFNESS,this.relaxation=c.DEFAULT_RELAXATION,this.G=new e.ARRAY_TYPE(6);for(var g=0;6>g;g++)this.G[g]=0;this.offset=0,this.a=0,this.b=0,this.epsilon=0,this.timeStep=1/60,this.needsUpdate=!0,this.multiplier=0,this.relativeVelocity=0,this.enabled=!0}b.exports=c;{var d=a("../math/vec2"),e=a("../utils/Utils");a("../objects/Body")}c.prototype.constructor=c,c.DEFAULT_STIFFNESS=1e6,c.DEFAULT_RELAXATION=4,c.prototype.update=function(){var a=this.stiffness,b=this.relaxation,c=this.timeStep;this.a=4/(c*(1+4*b)),this.b=4*b/(1+4*b),this.epsilon=4/(c*c*a*(1+4*b)),this.needsUpdate=!1},c.prototype.gmult=function(a,b,c,d,e){return a[0]*b[0]+a[1]*b[1]+a[2]*c+a[3]*d[0]+a[4]*d[1]+a[5]*e},c.prototype.computeB=function(a,b,c){var d=this.computeGW(),e=this.computeGq(),f=this.computeGiMf();return-e*a-d*b-f*c};var f=d.create(),g=d.create();c.prototype.computeGq=function(){var a=this.G,b=this.bodyA,c=this.bodyB,d=(b.position,c.position,b.angle),e=c.angle;return this.gmult(a,f,d,g,e)+this.offset},c.prototype.computeGW=function(){var a=this.G,b=this.bodyA,c=this.bodyB,d=b.velocity,e=c.velocity,f=b.angularVelocity,g=c.angularVelocity;return this.gmult(a,d,f,e,g)+this.relativeVelocity},c.prototype.computeGWlambda=function(){var a=this.G,b=this.bodyA,c=this.bodyB,d=b.vlambda,e=c.vlambda,f=b.wlambda,g=c.wlambda;return this.gmult(a,d,f,e,g)};var h=d.create(),i=d.create();c.prototype.computeGiMf=function(){var a=this.bodyA,b=this.bodyB,c=a.force,e=a.angularForce,f=b.force,g=b.angularForce,j=a.invMassSolve,k=b.invMassSolve,l=a.invInertiaSolve,m=b.invInertiaSolve,n=this.G;return d.scale(h,c,j),d.multiply(h,a.massMultiplier,h),d.scale(i,f,k),d.multiply(i,b.massMultiplier,i),this.gmult(n,h,e*l,i,g*m)},c.prototype.computeGiMGt=function(){var a=this.bodyA,b=this.bodyB,c=a.invMassSolve,d=b.invMassSolve,e=a.invInertiaSolve,f=b.invInertiaSolve,g=this.G;return g[0]*g[0]*c*a.massMultiplier[0]+g[1]*g[1]*c*a.massMultiplier[1]+g[2]*g[2]*e+g[3]*g[3]*d*b.massMultiplier[0]+g[4]*g[4]*d*b.massMultiplier[1]+g[5]*g[5]*f};{var j=d.create(),k=d.create(),l=d.create();d.create(),d.create(),d.create()}c.prototype.addToWlambda=function(a){var b=this.bodyA,c=this.bodyB,e=j,f=k,g=l,h=b.invMassSolve,i=c.invMassSolve,m=b.invInertiaSolve,n=c.invInertiaSolve,o=this.G;f[0]=o[0],f[1]=o[1],g[0]=o[3],g[1]=o[4],d.scale(e,f,h*a),d.multiply(e,e,b.massMultiplier),d.add(b.vlambda,b.vlambda,e),b.wlambda+=m*o[2]*a,d.scale(e,g,i*a),d.multiply(e,e,c.massMultiplier),d.add(c.vlambda,c.vlambda,e),c.wlambda+=n*o[5]*a},c.prototype.computeInvC=function(a){return 1/(this.computeGiMGt()+a)}},{"../math/vec2":30,"../objects/Body":31,"../utils/Utils":57}],23:[function(a,b){function c(a,b,c){e.call(this,a,b,-c,c),this.contactPointA=d.create(),this.contactPointB=d.create(),this.t=d.create(),this.contactEquations=[],this.shapeA=null,this.shapeB=null,this.frictionCoefficient=.3}{var d=a("../math/vec2"),e=a("./Equation");a("../utils/Utils")}b.exports=c,c.prototype=new e,c.prototype.constructor=c,c.prototype.setSlipForce=function(a){this.maxForce=a,this.minForce=-a},c.prototype.getSlipForce=function(){return this.maxForce},c.prototype.computeB=function(a,b,c){var e=(this.bodyA,this.bodyB,this.contactPointA),f=this.contactPointB,g=this.t,h=this.G;h[0]=-g[0],h[1]=-g[1],h[2]=-d.crossLength(e,g),h[3]=g[0],h[4]=g[1],h[5]=d.crossLength(f,g);var i=this.computeGW(),j=this.computeGiMf(),k=-i*b-c*j;return k}},{"../math/vec2":30,"../utils/Utils":57,"./Equation":22}],24:[function(a,b){function c(a,b,c){c=c||{},d.call(this,a,b,-Number.MAX_VALUE,Number.MAX_VALUE),this.angle=c.angle||0;var e=this.G;e[2]=1,e[5]=-1}var d=a("./Equation"),e=a("../math/vec2");b.exports=c,c.prototype=new d,c.prototype.constructor=c;var f=e.create(),g=e.create(),h=e.fromValues(1,0),i=e.fromValues(0,1);c.prototype.computeGq=function(){return e.rotate(f,h,this.bodyA.angle+this.angle),e.rotate(g,i,this.bodyB.angle),e.dot(f,g)}},{"../math/vec2":30,"./Equation":22}],25:[function(a,b){function c(a,b){d.call(this,a,b,-Number.MAX_VALUE,Number.MAX_VALUE),this.relativeVelocity=1,this.ratio=1}{var d=a("./Equation");a("../math/vec2")}b.exports=c,c.prototype=new d,c.prototype.constructor=c,c.prototype.computeB=function(a,b,c){var d=this.G;d[2]=-1,d[5]=this.ratio;var e=this.computeGiMf(),f=this.computeGW(),g=-f*b-c*e;return g}},{"../math/vec2":30,"./Equation":22}],26:[function(a,b){var c=function(){};b.exports=c,c.prototype={constructor:c,on:function(a,b,c){b.context=c||this,void 0===this._listeners&&(this._listeners={});var d=this._listeners;return void 0===d[a]&&(d[a]=[]),-1===d[a].indexOf(b)&&d[a].push(b),this},has:function(a,b){if(void 0===this._listeners)return!1;var c=this._listeners;if(b){if(void 0!==c[a]&&-1!==c[a].indexOf(b))return!0}else if(void 0!==c[a])return!0;return!1},off:function(a,b){if(void 0===this._listeners)return this;var c=this._listeners,d=c[a].indexOf(b);return-1!==d&&c[a].splice(d,1),this},emit:function(a){if(void 0===this._listeners)return this;var b=this._listeners,c=b[a.type];if(void 0!==c){a.target=this;for(var d=0,e=c.length;e>d;d++){var f=c[d];f.call(f.context,a)}}return this}}},{}],27:[function(a,b){function c(a,b,f){if(f=f||{},!(a instanceof d&&b instanceof d))throw new Error("First two arguments must be Material instances."); -this.id=c.idCounter++,this.materialA=a,this.materialB=b,this.friction="undefined"!=typeof f.friction?Number(f.friction):.3,this.restitution="undefined"!=typeof f.restitution?Number(f.restitution):0,this.stiffness="undefined"!=typeof f.stiffness?Number(f.stiffness):e.DEFAULT_STIFFNESS,this.relaxation="undefined"!=typeof f.relaxation?Number(f.relaxation):e.DEFAULT_RELAXATION,this.frictionStiffness="undefined"!=typeof f.frictionStiffness?Number(f.frictionStiffness):e.DEFAULT_STIFFNESS,this.frictionRelaxation="undefined"!=typeof f.frictionRelaxation?Number(f.frictionRelaxation):e.DEFAULT_RELAXATION,this.surfaceVelocity="undefined"!=typeof f.surfaceVelocity?Number(f.surfaceVelocity):0,this.contactSkinSize=.005}var d=a("./Material"),e=a("../equations/Equation");b.exports=c,c.idCounter=0},{"../equations/Equation":22,"./Material":28}],28:[function(a,b){function c(a){this.id=a||c.idCounter++}b.exports=c,c.idCounter=0},{}],29:[function(a,b){var c={};c.GetArea=function(a){if(a.length<6)return 0;for(var b=a.length-2,c=0,d=0;b>d;d+=2)c+=(a[d+2]-a[d])*(a[d+1]+a[d+3]);return c+=(a[0]-a[b])*(a[b+1]+a[1]),.5*-c},c.Triangulate=function(a){var b=a.length>>1;if(3>b)return[];for(var d=[],e=[],f=0;b>f;f++)e.push(f);for(var f=0,g=b;g>3;){var h=e[(f+0)%g],i=e[(f+1)%g],j=e[(f+2)%g],k=a[2*h],l=a[2*h+1],m=a[2*i],n=a[2*i+1],o=a[2*j],p=a[2*j+1],q=!1;if(c._convex(k,l,m,n,o,p)){q=!0;for(var r=0;g>r;r++){var s=e[r];if(s!=h&&s!=i&&s!=j&&c._PointInTriangle(a[2*s],a[2*s+1],k,l,m,n,o,p)){q=!1;break}}}if(q)d.push(h,i,j),e.splice((f+1)%g,1),g--,f=0;else if(f++>3*g)break}return d.push(e[0],e[1],e[2]),d},c._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},c._convex=function(a,b,c,d,e,f){return(b-d)*(e-c)+(c-a)*(f-d)>=0},b.exports=c},{}],30:[function(a,b){var c=b.exports={},d=a("../utils/Utils");c.crossLength=function(a,b){return a[0]*b[1]-a[1]*b[0]},c.crossVZ=function(a,b,d){return c.rotate(a,b,-Math.PI/2),c.scale(a,a,d),a},c.crossZV=function(a,b,d){return c.rotate(a,d,Math.PI/2),c.scale(a,a,b),a},c.rotate=function(a,b,c){if(0!==c){var d=Math.cos(c),e=Math.sin(c),f=b[0],g=b[1];a[0]=d*f-e*g,a[1]=e*f+d*g}else a[0]=b[0],a[1]=b[1]},c.rotate90cw=function(a,b){var c=b[0],d=b[1];a[0]=d,a[1]=-c},c.toLocalFrame=function(a,b,d,e){c.copy(a,b),c.sub(a,a,d),c.rotate(a,a,-e)},c.toGlobalFrame=function(a,b,d,e){c.copy(a,b),c.rotate(a,a,e),c.add(a,a,d)},c.vectorToLocalFrame=function(a,b,d){c.rotate(a,b,-d)},c.vectorToGlobalFrame=function(a,b,d){c.rotate(a,b,d)},c.centroid=function(a,b,d,e){return c.add(a,b,d),c.add(a,a,e),c.scale(a,a,1/3),a},c.create=function(){var a=new d.ARRAY_TYPE(2);return a[0]=0,a[1]=0,a},c.clone=function(a){var b=new d.ARRAY_TYPE(2);return b[0]=a[0],b[1]=a[1],b},c.fromValues=function(a,b){var c=new d.ARRAY_TYPE(2);return c[0]=a,c[1]=b,c},c.copy=function(a,b){return a[0]=b[0],a[1]=b[1],a},c.set=function(a,b,c){return a[0]=b,a[1]=c,a},c.add=function(a,b,c){return a[0]=b[0]+c[0],a[1]=b[1]+c[1],a},c.subtract=function(a,b,c){return a[0]=b[0]-c[0],a[1]=b[1]-c[1],a},c.sub=c.subtract,c.multiply=function(a,b,c){return a[0]=b[0]*c[0],a[1]=b[1]*c[1],a},c.mul=c.multiply,c.divide=function(a,b,c){return a[0]=b[0]/c[0],a[1]=b[1]/c[1],a},c.div=c.divide,c.scale=function(a,b,c){return a[0]=b[0]*c,a[1]=b[1]*c,a},c.distance=function(a,b){var c=b[0]-a[0],d=b[1]-a[1];return Math.sqrt(c*c+d*d)},c.dist=c.distance,c.squaredDistance=function(a,b){var c=b[0]-a[0],d=b[1]-a[1];return c*c+d*d},c.sqrDist=c.squaredDistance,c.length=function(a){var b=a[0],c=a[1];return Math.sqrt(b*b+c*c)},c.len=c.length,c.squaredLength=function(a){var b=a[0],c=a[1];return b*b+c*c},c.sqrLen=c.squaredLength,c.negate=function(a,b){return a[0]=-b[0],a[1]=-b[1],a},c.normalize=function(a,b){var c=b[0],d=b[1],e=c*c+d*d;return e>0&&(e=1/Math.sqrt(e),a[0]=b[0]*e,a[1]=b[1]*e),a},c.dot=function(a,b){return a[0]*b[0]+a[1]*b[1]},c.str=function(a){return"vec2("+a[0]+", "+a[1]+")"},c.lerp=function(a,b,c,d){var e=b[0],f=b[1];return a[0]=e+d*(c[0]-e),a[1]=f+d*(c[1]-f),a},c.reflect=function(a,b,c){var d=b[0]*c[0]+b[1]*c[1];a[0]=b[0]-2*c[0]*d,a[1]=b[1]-2*c[1]*d},c.getLineSegmentsIntersection=function(a,b,d,e,f){var g=c.getLineSegmentsIntersectionFraction(b,d,e,f);return 0>g?!1:(a[0]=b[0]+g*(d[0]-b[0]),a[1]=b[1]+g*(d[1]-b[1]),!0)},c.getLineSegmentsIntersectionFraction=function(a,b,c,d){var e,f,g=b[0]-a[0],h=b[1]-a[1],i=d[0]-c[0],j=d[1]-c[1];return e=(-h*(a[0]-c[0])+g*(a[1]-c[1]))/(-i*h+g*j),f=(i*(a[1]-c[1])-j*(a[0]-c[0]))/(-i*h+g*j),e>=0&&1>=e&&f>=0&&1>=f?f:-1}},{"../utils/Utils":57}],31:[function(a,b){function c(a){a=a||{},j.call(this),this.id=a.id||++c._idCounter,this.world=null,this.shapes=[],this.mass=a.mass||0,this.invMass=0,this.inertia=0,this.invInertia=0,this.invMassSolve=0,this.invInertiaSolve=0,this.fixedRotation=!!a.fixedRotation,this.fixedX=!!a.fixedX,this.fixedY=!!a.fixedY,this.massMultiplier=d.create(),this.position=d.fromValues(0,0),a.position&&d.copy(this.position,a.position),this.interpolatedPosition=d.fromValues(0,0),this.interpolatedAngle=0,this.previousPosition=d.fromValues(0,0),this.previousAngle=0,this.velocity=d.fromValues(0,0),a.velocity&&d.copy(this.velocity,a.velocity),this.vlambda=d.fromValues(0,0),this.wlambda=0,this.angle=a.angle||0,this.angularVelocity=a.angularVelocity||0,this.force=d.create(),a.force&&d.copy(this.force,a.force),this.angularForce=a.angularForce||0,this.damping="number"==typeof a.damping?a.damping:.1,this.angularDamping="number"==typeof a.angularDamping?a.angularDamping:.1,this.type=c.STATIC,this.type="undefined"!=typeof a.type?a.type:a.mass?c.DYNAMIC:c.STATIC,this.boundingRadius=0,this.aabb=new i,this.aabbNeedsUpdate=!0,this.allowSleep=void 0!==a.allowSleep?a.allowSleep:!0,this.wantsToSleep=!1,this.sleepState=c.AWAKE,this.sleepSpeedLimit=void 0!==a.sleepSpeedLimit?a.sleepSpeedLimit:.2,this.sleepTimeLimit=void 0!==a.sleepTimeLimit?a.sleepTimeLimit:1,this.gravityScale=void 0!==a.gravityScale?a.gravityScale:1,this.collisionResponse=void 0!==a.collisionResponse?a.collisionResponse:!0,this.idleTime=0,this.timeLastSleepy=0,this.ccdSpeedThreshold=void 0!==a.ccdSpeedThreshold?a.ccdSpeedThreshold:-1,this.ccdIterations=void 0!==a.ccdIterations?a.ccdIterations:10,this.concavePath=null,this._wakeUpAfterNarrowphase=!1,this.updateMassProperties()}var d=a("../math/vec2"),e=a("poly-decomp"),f=a("../shapes/Convex"),g=a("../collision/RaycastResult"),h=a("../collision/Ray"),i=a("../collision/AABB"),j=a("../events/EventEmitter");b.exports=c,c.prototype=new j,c.prototype.constructor=c,c._idCounter=0,c.prototype.updateSolveMassProperties=function(){this.sleepState===c.SLEEPING||this.type===c.KINEMATIC?(this.invMassSolve=0,this.invInertiaSolve=0):(this.invMassSolve=this.invMass,this.invInertiaSolve=this.invInertia)},c.prototype.setDensity=function(a){var b=this.getArea();this.mass=b*a,this.updateMassProperties()},c.prototype.getArea=function(){for(var a=0,b=0;bc&&(c=g+h)}this.boundingRadius=c},c.prototype.addShape=function(a,b,c){if(a.body)throw new Error("A shape can only be added to one body.");a.body=this,b?d.copy(a.position,b):d.set(a.position,0,0),a.angle=c||0,this.shapes.push(a),this.updateMassProperties(),this.updateBoundingRadius(),this.aabbNeedsUpdate=!0},c.prototype.removeShape=function(a){var b=this.shapes.indexOf(a);return-1!==b?(this.shapes.splice(b,1),this.aabbNeedsUpdate=!0,a.body=null,!0):!1},c.prototype.updateMassProperties=function(){if(this.type===c.STATIC||this.type===c.KINEMATIC)this.mass=Number.MAX_VALUE,this.invMass=0,this.inertia=Number.MAX_VALUE,this.invInertia=0;else{var a=this.shapes,b=a.length,e=this.mass/b,f=0;if(this.fixedRotation)this.inertia=Number.MAX_VALUE,this.invInertia=0;else{for(var g=0;b>g;g++){var h=a[g],i=d.squaredLength(h.position),j=h.computeMomentOfInertia(e);f+=j+e*i}this.inertia=f,this.invInertia=f>0?1/f:0}this.invMass=1/this.mass,d.set(this.massMultiplier,this.fixedX?0:1,this.fixedY?0:1)}};d.create();c.prototype.applyForce=function(a,b){if(d.add(this.force,this.force,a),b){var c=d.crossLength(b,a);this.angularForce+=c}};var m=d.create(),n=d.create(),o=d.create();c.prototype.applyForceLocal=function(a,b){b=b||o;var c=m,d=n;this.vectorToWorldFrame(c,a),this.vectorToWorldFrame(d,b),this.applyForce(c,d)};var p=d.create();c.prototype.applyImpulse=function(a,b){if(this.type===c.DYNAMIC){var e=p;if(d.scale(e,a,this.invMass),d.multiply(e,this.massMultiplier,e),d.add(this.velocity,e,this.velocity),b){var f=d.crossLength(b,a);f*=this.invInertia,this.angularVelocity+=f}}};var q=d.create(),r=d.create(),s=d.create();c.prototype.applyImpulseLocal=function(a,b){b=b||s;var c=q,d=r;this.vectorToWorldFrame(c,a),this.vectorToWorldFrame(d,b),this.applyImpulse(c,d)},c.prototype.toLocalFrame=function(a,b){d.toLocalFrame(a,b,this.position,this.angle)},c.prototype.toWorldFrame=function(a,b){d.toGlobalFrame(a,b,this.position,this.angle)},c.prototype.vectorToLocalFrame=function(a,b){d.vectorToLocalFrame(a,b,this.angle)},c.prototype.vectorToWorldFrame=function(a,b){d.vectorToGlobalFrame(a,b,this.angle)},c.prototype.fromPolygon=function(a,b){b=b||{};for(var c=this.shapes.length;c>=0;--c)this.removeShape(this.shapes[c]);var g=new e.Polygon;if(g.vertices=a,g.makeCCW(),"number"==typeof b.removeCollinearPoints&&g.removeCollinearPoints(b.removeCollinearPoints),"undefined"==typeof b.skipSimpleCheck&&!g.isSimple())return!1;this.concavePath=g.vertices.slice(0);for(var c=0;c=g?(this.idleTime=0,this.sleepState=c.AWAKE):(this.idleTime+=e,this.sleepState=c.SLEEPY),this.idleTime>this.sleepTimeLimit&&(b?this.wantsToSleep=!0:this.sleep())}},c.prototype.overlaps=function(a){return this.world.overlapKeeper.bodiesAreOverlapping(this,a)};var w=d.create(),x=d.create();c.prototype.integrate=function(a){var b=this.invMass,c=this.force,e=this.position,f=this.velocity;d.copy(this.previousPosition,this.position),this.previousAngle=this.angle,this.fixedRotation||(this.angularVelocity+=this.angularForce*this.invInertia*a),d.scale(w,c,a*b),d.multiply(w,this.massMultiplier,w),d.add(f,w,f),this.integrateToTimeOfImpact(a)||(d.scale(x,f,a),d.add(e,e,x),this.fixedRotation||(this.angle+=this.angularVelocity*a)),this.aabbNeedsUpdate=!0};var y=new g,z=new h({mode:h.ALL}),A=d.create(),B=d.create(),C=d.create(),D=d.create();c.prototype.integrateToTimeOfImpact=function(a){if(this.ccdSpeedThreshold<0||d.squaredLength(this.velocity)=j&&ir;r++){var s=this.radius*(2*r-1);e.set(o,-q,s),e.set(p,q,s),e.toGlobalFrame(o,o,c,d),e.toGlobalFrame(p,p,c,d);var t=e.getLineSegmentsIntersectionFraction(f,l,o,p);if(t>=0&&(e.rotate(n,k,d),e.scale(n,n,2*r-1),b.reportIntersection(a,t,n,-1),a.shouldStop(b)))return}for(var u=Math.pow(this.radius,2)+Math.pow(q,2),r=0;2>r;r++){e.set(o,q*(2*r-1),0),e.toGlobalFrame(o,o,c,d);var v=Math.pow(l[0]-f[0],2)+Math.pow(l[1]-f[1],2),w=2*((l[0]-f[0])*(f[0]-o[0])+(l[1]-f[1])*(f[1]-o[1])),x=Math.pow(f[0]-o[0],2)+Math.pow(f[1]-o[1],2)-Math.pow(this.radius,2),t=Math.pow(w,2)-4*v*x;if(!(0>t))if(0===t){if(e.lerp(m,f,l,t),e.squaredDistance(m,c)>u&&(e.sub(n,m,o),e.normalize(n,n),b.reportIntersection(a,t,n,-1),a.shouldStop(b)))return}else{var y=Math.sqrt(t),z=1/(2*v),A=(-w-y)*z,B=(-w+y)*z;if(A>=0&&1>=A&&(e.lerp(m,f,l,A),e.squaredDistance(m,c)>u&&(e.sub(n,m,o),e.normalize(n,n),b.reportIntersection(a,A,n,-1),a.shouldStop(b))))return;if(B>=0&&1>=B&&(e.lerp(m,f,l,B),e.squaredDistance(m,c)>u&&(e.sub(n,m,o),e.normalize(n,n),b.reportIntersection(a,B,n,-1),a.shouldStop(b))))return}}}},{"../math/vec2":30,"./Shape":45}],39:[function(a,b){function c(a){"number"==typeof arguments[0]&&(a={radius:arguments[0]},console.warn("The Circle constructor signature has changed. Please use the following format: new Circle({ radius: 1 })")),a=a||{},this.radius=a.radius||1,a.type=d.CIRCLE,d.call(this,a)}var d=a("./Shape"),e=a("../math/vec2");b.exports=c,c.prototype=new d,c.prototype.constructor=c,c.prototype.computeMomentOfInertia=function(a){var b=this.radius;return a*b*b/2},c.prototype.updateBoundingRadius=function(){this.boundingRadius=this.radius},c.prototype.updateArea=function(){this.area=Math.PI*this.radius*this.radius},c.prototype.computeAABB=function(a,b){var c=this.radius;e.set(a.upperBound,c,c),e.set(a.lowerBound,-c,-c),b&&(e.add(a.lowerBound,a.lowerBound,b),e.add(a.upperBound,a.upperBound,b))};var f=e.create(),g=e.create();c.prototype.raycast=function(a,b,c){var d=b.from,h=b.to,i=this.radius,j=Math.pow(h[0]-d[0],2)+Math.pow(h[1]-d[1],2),k=2*((h[0]-d[0])*(d[0]-c[0])+(h[1]-d[1])*(d[1]-c[1])),l=Math.pow(d[0]-c[0],2)+Math.pow(d[1]-c[1],2)-Math.pow(i,2),m=Math.pow(k,2)-4*j*l,n=f,o=g;if(!(0>m))if(0===m)e.lerp(n,d,h,m),e.sub(o,n,c),e.normalize(o,o),b.reportIntersection(a,m,o,-1);else{var p=Math.sqrt(m),q=1/(2*j),r=(-k-p)*q,s=(-k+p)*q;if(r>=0&&1>=r&&(e.lerp(n,d,h,r),e.sub(o,n,c),e.normalize(o,o),b.reportIntersection(a,r,o,-1),a.shouldStop(b)))return;s>=0&&1>=s&&(e.lerp(n,d,h,s),e.sub(o,n,c),e.normalize(o,o),b.reportIntersection(a,s,o,-1))}}},{"../math/vec2":30,"./Shape":45}],40:[function(a,b){function c(a){Array.isArray(arguments[0])&&(a={vertices:arguments[0],axes:arguments[1]},console.warn("The Convex constructor signature has changed. Please use the following format: new Convex({ vertices: [...], ... })")),a=a||{},this.vertices=[];for(var b=void 0!==a.vertices?a.vertices:[],c=0;cf)&&(f=d),(null===h||h>d)&&(h=d);if(h>f){var j=h;h=f,f=j}e.set(b,h,f)},c.prototype.projectOntoWorldAxis=function(a,b,c,d){var f=h;this.projectOntoLocalAxis(a,d),0!==c?e.rotate(f,a,c):f=a;var g=e.dot(b,f);e.set(d,d[0]+g,d[1]+g)},c.prototype.updateTriangles=function(){this.triangles.length=0;for(var a=[],b=0;bg;f=g,g++){var h=this.vertices[f],i=this.vertices[g],j=Math.abs(e.crossLength(h,i)),k=e.dot(i,i)+e.dot(i,h)+e.dot(h,h);b+=j*k,c+=j}return a/6*(b/c)},c.prototype.updateBoundingRadius=function(){for(var a=this.vertices,b=0,c=0;c!==a.length;c++){var d=e.squaredLength(a[c]);d>b&&(b=d)}this.boundingRadius=Math.sqrt(b)},c.triangleArea=function(a,b,c){return.5*((b[0]-a[0])*(c[1]-a[1])-(c[0]-a[0])*(b[1]-a[1]))},c.prototype.updateArea=function(){this.updateTriangles(),this.area=0;for(var a=this.triangles,b=this.vertices,d=0;d!==a.length;d++){var e=a[d],f=b[e[0]],g=b[e[1]],h=b[e[2]],i=c.triangleArea(f,g,h);this.area+=i}},c.prototype.computeAABB=function(a,b,c){a.setFromPoints(this.vertices,b,c,0)};var n=e.create(),o=e.create(),p=e.create();c.prototype.raycast=function(a,b,c,d){var f=n,g=o,h=p,i=this.vertices;e.toLocalFrame(f,b.from,c,d),e.toLocalFrame(g,b.to,c,d);for(var j=i.length,k=0;j>k&&!a.shouldStop(b);k++){var l=i[k],m=i[(k+1)%j],q=e.getLineSegmentsIntersectionFraction(f,g,l,m);q>=0&&(e.sub(h,m,l),e.rotate(h,h,-Math.PI/2+d),e.normalize(h,h),b.reportIntersection(a,q,h,k))}}},{"../math/polyk":29,"../math/vec2":30,"./Shape":45,"poly-decomp":5}],41:[function(a,b){function c(a){if(Array.isArray(arguments[0])){if(a={heights:arguments[0]},"object"==typeof arguments[1])for(var b in arguments[1])a[b]=arguments[1][b];console.warn("The Heightfield constructor signature has changed. Please use the following format: new Heightfield({ heights: [...], ... })")}a=a||{},this.heights=a.heights?a.heights.slice(0):[],this.maxValue=a.maxValue||null,this.minValue=a.minValue||null,this.elementWidth=a.elementWidth||.1,(void 0===a.maxValue||void 0===a.minValue)&&this.updateMaxMinValues(),a.type=d.HEIGHTFIELD,d.call(this,a)}{var d=a("./Shape"),e=a("../math/vec2");a("../utils/Utils")}b.exports=c,c.prototype=new d,c.prototype.constructor=c,c.prototype.updateMaxMinValues=function(){for(var a=this.heights,b=a[0],c=a[0],d=0;d!==a.length;d++){var e=a[d]; -e>b&&(b=e),c>e&&(c=e)}this.maxValue=b,this.minValue=c},c.prototype.computeMomentOfInertia=function(){return Number.MAX_VALUE},c.prototype.updateBoundingRadius=function(){this.boundingRadius=Number.MAX_VALUE},c.prototype.updateArea=function(){for(var a=this.heights,b=0,c=0;cs){var t=r;r=s,s=t}for(var u=0;u=0&&(e.sub(m,o,n),e.rotate(m,m,d+Math.PI/2),e.normalize(m,m),b.reportIntersection(a,v,m,-1),a.shouldStop(b)))return}}},{"../math/vec2":30,"../utils/Utils":57,"./Shape":45}],42:[function(a,b){function c(a){"number"==typeof arguments[0]&&(a={length:arguments[0]},console.warn("The Line constructor signature has changed. Please use the following format: new Line({ length: 1, ... })")),a=a||{},this.length=a.length||1,a.type=d.LINE,d.call(this,a)}var d=a("./Shape"),e=a("../math/vec2");b.exports=c,c.prototype=new d,c.prototype.constructor=c,c.prototype.computeMomentOfInertia=function(a){return a*Math.pow(this.length,2)/12},c.prototype.updateBoundingRadius=function(){this.boundingRadius=this.length/2};var f=[e.create(),e.create()];c.prototype.computeAABB=function(a,b,c){var d=this.length/2;e.set(f[0],-d,0),e.set(f[1],d,0),a.setFromPoints(f,b,c,0)};var g=(e.create(),e.create()),h=e.create(),i=e.create(),j=e.fromValues(0,1);c.prototype.raycast=function(a,b,c,d){var f=b.from,k=b.to,l=h,m=i,n=this.length/2;e.set(l,-n,0),e.set(m,n,0),e.toGlobalFrame(l,l,c,d),e.toGlobalFrame(m,m,c,d);var o=e.getLineSegmentsIntersectionFraction(l,m,f,k);if(o>=0){var p=g;e.rotate(p,j,d),b.reportIntersection(a,o,p,-1)}}},{"../math/vec2":30,"./Shape":45}],43:[function(a,b){function c(a){a=a||{},a.type=d.PARTICLE,d.call(this,a)}var d=a("./Shape"),e=a("../math/vec2");b.exports=c,c.prototype=new d,c.prototype.constructor=c,c.prototype.computeMomentOfInertia=function(){return 0},c.prototype.updateBoundingRadius=function(){this.boundingRadius=0},c.prototype.computeAABB=function(a,b){e.copy(a.lowerBound,b),e.copy(a.upperBound,b)}},{"../math/vec2":30,"./Shape":45}],44:[function(a,b){function c(a){a=a||{},a.type=d.PLANE,d.call(this,a)}{var d=a("./Shape"),e=a("../math/vec2");a("../utils/Utils")}b.exports=c,c.prototype=new d,c.prototype.constructor=c,c.prototype.computeMomentOfInertia=function(){return 0},c.prototype.updateBoundingRadius=function(){this.boundingRadius=Number.MAX_VALUE},c.prototype.computeAABB=function(a,b,c){var d=c%(2*Math.PI),f=e.set,g=Number.MAX_VALUE,h=a.lowerBound,i=a.upperBound;0===d?(f(h,-g,-g),f(i,g,0)):d===Math.PI/2?(f(h,0,-g),f(i,g,g)):d===Math.PI?(f(h,-g,0),f(i,g,g)):d===3*Math.PI/2?(f(h,-g,-g),f(i,0,g)):(f(h,-g,-g),f(i,g,g)),e.add(h,h,b),e.add(i,i,b)},c.prototype.updateArea=function(){this.area=Number.MAX_VALUE};var f=e.create(),g=(e.create(),e.create(),e.create()),h=e.create();c.prototype.raycast=function(a,b,c,d){var i=b.from,j=b.to,k=b.direction,l=f,m=g,n=h;e.set(m,0,1),e.rotate(m,m,d),e.sub(n,i,c);var o=e.dot(n,m);e.sub(n,j,c);var p=e.dot(n,m);if(!(o*p>0||e.squaredDistance(i,j)=w*w)break}for(c.updateMultipliers(k,q,1/a),x=0;x!==l;x++){var z=k[x];if(z instanceof h){for(var A=0,B=0;B!==z.contactEquations.length;B++)A+=z.contactEquations[B].multiplier;A*=z.frictionCoefficient/z.contactEquations.length,z.maxForce=A,z.minForce=-A}}}for(f=0;f!==i;f++){for(w=0,x=0;x!==l;x++){v=k[x];var y=c.iterateEquation(x,v,v.epsilon,u,t,q,p,a,f);w+=Math.abs(y)}if(this.usedIterations++,m>=w*w)break}for(r=0;r!==o;r++)n[r].addConstraintVelocity();c.updateMultipliers(k,q,1/a)}},c.updateMultipliers=function(a,b,c){for(var d=a.length;d--;)a[d].multiplier=b[d]*c},c.iterateEquation=function(a,b,c,d,e,f,g,h){var i=d[a],j=e[a],k=f[a],l=b.computeGWlambda(),m=b.maxForce,n=b.minForce;g&&(i=0);var o=j*(i-l-c*k),p=k+o;return n*h>p?o=n*h-k:p>m*h&&(o=m*h-k),f[a]+=o,b.addToWlambda(o),o}},{"../equations/FrictionEquation":23,"../math/vec2":30,"../utils/Utils":57,"./Solver":47}],47:[function(a,b){function c(a,b){a=a||{},d.call(this),this.type=b,this.equations=[],this.equationSortFunction=a.equationSortFunction||!1}var d=(a("../utils/Utils"),a("../events/EventEmitter"));b.exports=c,c.prototype=new d,c.prototype.constructor=c,c.prototype.solve=function(){throw new Error("Solver.solve should be implemented by subclasses!")};var e={bodies:[]};c.prototype.solveIsland=function(a,b){this.removeAllEquations(),b.equations.length&&(this.addEquations(b.equations),e.bodies.length=0,b.getBodies(e.bodies),e.bodies.length&&this.solve(a,e))},c.prototype.sortEquations=function(){this.equationSortFunction&&this.equations.sort(this.equationSortFunction)},c.prototype.addEquation=function(a){a.enabled&&this.equations.push(a)},c.prototype.addEquations=function(a){for(var b=0,c=a.length;b!==c;b++){var d=a[b];d.enabled&&this.equations.push(d)}},c.prototype.removeEquation=function(a){var b=this.equations.indexOf(a);-1!==b&&this.equations.splice(b,1)},c.prototype.removeAllEquations=function(){this.equations.length=0},c.GS=1,c.ISLAND=2},{"../events/EventEmitter":26,"../utils/Utils":57}],48:[function(a,b){function c(){e.apply(this,arguments)}var d=a("../equations/ContactEquation"),e=a("./Pool");b.exports=c,c.prototype=new e,c.prototype.constructor=c,c.prototype.create=function(){return new d},c.prototype.destroy=function(a){return a.bodyA=a.bodyB=null,this}},{"../equations/ContactEquation":21,"./Pool":55}],49:[function(a,b){function c(){e.apply(this,arguments)}var d=a("../equations/FrictionEquation"),e=a("./Pool");b.exports=c,c.prototype=new e,c.prototype.constructor=c,c.prototype.create=function(){return new d},c.prototype.destroy=function(a){return a.bodyA=a.bodyB=null,this}},{"../equations/FrictionEquation":23,"./Pool":55}],50:[function(a,b){function c(){e.apply(this,arguments)}var d=a("../world/IslandNode"),e=a("./Pool");b.exports=c,c.prototype=new e,c.prototype.constructor=c,c.prototype.create=function(){return new d},c.prototype.destroy=function(a){return a.reset(),this}},{"../world/IslandNode":60,"./Pool":55}],51:[function(a,b){function c(){e.apply(this,arguments)}var d=a("../world/Island"),e=a("./Pool");b.exports=c,c.prototype=new e,c.prototype.constructor=c,c.prototype.create=function(){return new d},c.prototype.destroy=function(a){return a.reset(),this}},{"../world/Island":58,"./Pool":55}],52:[function(a,b){function c(){this.overlappingShapesLastState=new d,this.overlappingShapesCurrentState=new d,this.recordPool=new e({size:16}),this.tmpDict=new d,this.tmpArray1=[]}{var d=a("./TupleDictionary"),e=(a("./OverlapKeeperRecord"),a("./OverlapKeeperRecordPool"));a("./Utils")}b.exports=c,c.prototype.tick=function(){for(var a=this.overlappingShapesLastState,b=this.overlappingShapesCurrentState,c=a.keys.length;c--;){{var d=a.keys[c],e=a.getByKey(d);b.getByKey(d)}e&&this.recordPool.release(e)}a.reset(),a.copy(b),b.reset()},c.prototype.setOverlapping=function(a,b,c,d){var e=(this.overlappingShapesLastState,this.overlappingShapesCurrentState);if(!e.get(b.id,d.id)){var f=this.recordPool.get();f.set(a,b,c,d),e.set(b.id,d.id,f)}},c.prototype.getNewOverlaps=function(a){return this.getDiff(this.overlappingShapesLastState,this.overlappingShapesCurrentState,a)},c.prototype.getEndOverlaps=function(a){return this.getDiff(this.overlappingShapesCurrentState,this.overlappingShapesLastState,a)},c.prototype.bodiesAreOverlapping=function(a,b){for(var c=this.overlappingShapesCurrentState,d=c.keys.length;d--;){var e=c.keys[d],f=c.data[e];if(f.bodyA===a&&f.bodyB===b||f.bodyA===b&&f.bodyB===a)return!0}return!1},c.prototype.getDiff=function(a,b,c){var c=c||[],d=a,e=b;c.length=0;for(var f=e.keys.length;f--;){var g=e.keys[f],h=e.data[g];if(!h)throw new Error("Key "+g+" had no data!");var i=d.data[g];i||c.push(h)}return c},c.prototype.isNewOverlap=function(a,b){var c=0|a.id,d=0|b.id,e=this.overlappingShapesLastState,f=this.overlappingShapesCurrentState;return!e.get(c,d)&&!!f.get(c,d)},c.prototype.getNewBodyOverlaps=function(a){this.tmpArray1.length=0;var b=this.getNewOverlaps(this.tmpArray1);return this.getBodyDiff(b,a)},c.prototype.getEndBodyOverlaps=function(a){this.tmpArray1.length=0;var b=this.getEndOverlaps(this.tmpArray1);return this.getBodyDiff(b,a)},c.prototype.getBodyDiff=function(a,b){b=b||[];for(var c=this.tmpDict,d=a.length;d--;){var e=a[d];c.set(0|e.bodyA.id,0|e.bodyB.id,e)}for(d=c.keys.length;d--;){var e=c.getByKey(c.keys[d]);e&&b.push(e.bodyA,e.bodyB)}return c.reset(),b}},{"./OverlapKeeperRecord":53,"./OverlapKeeperRecordPool":54,"./TupleDictionary":56,"./Utils":57}],53:[function(a,b){function c(a,b,c,d){this.shapeA=b,this.shapeB=d,this.bodyA=a,this.bodyB=c}b.exports=c,c.prototype.set=function(a,b,d,e){c.call(this,a,b,d,e)}},{}],54:[function(a,b){function c(){e.apply(this,arguments)}var d=a("./OverlapKeeperRecord"),e=a("./Pool");b.exports=c,c.prototype=new e,c.prototype.constructor=c,c.prototype.create=function(){return new d},c.prototype.destroy=function(a){return a.bodyA=a.bodyB=a.shapeA=a.shapeB=null,this}},{"./OverlapKeeperRecord":53,"./Pool":55}],55:[function(a,b){function c(a){a=a||{},this.objects=[],void 0!==a.size&&this.resize(a.size)}b.exports=c,c.prototype.resize=function(a){for(var b=this.objects;b.length>a;)b.pop();for(;b.length(0|b)?a<<16|65535&b:b<<16|65535&a)},c.prototype.getByKey=function(a){return a=0|a,this.data[a]},c.prototype.get=function(a,b){return this.data[this.getKey(a,b)]},c.prototype.set=function(a,b,c){if(!c)throw new Error("No data!");var d=this.getKey(a,b);return this.data[d]||this.keys.push(d),this.data[d]=c,d},c.prototype.reset=function(){for(var a=this.data,b=this.keys,c=b.length;c--;)delete a[b[c]];b.length=0},c.prototype.copy=function(a){this.reset(),d.appendArray(this.keys,a.keys);for(var b=a.keys.length;b--;){var c=a.keys[b];this.data[c]=a.data[c]}}},{"./Utils":57}],57:[function(a,b){function c(){}b.exports=c,c.appendArray=function(a,b){if(b.length<15e4)a.push.apply(a,b);else for(var c=0,d=b.length;c!==d;++c)a.push(b[c])},c.splice=function(a,b,c){c=c||1;for(var d=b,e=a.length-c;e>d;d++)a[d]=a[d+c];a.length=e},c.ARRAY_TYPE="undefined"!=typeof P2_ARRAY_TYPE?P2_ARRAY_TYPE:"undefined"!=typeof Float32Array?Float32Array:Array,c.extend=function(a,b){for(var c in b)a[c]=b[c]},c.defaults=function(a,b){a=a||{};for(var c in b)c in a||(a[c]=b[c]);return a}},{}],58:[function(a,b){function c(){this.equations=[],this.bodies=[]}var d=a("../objects/Body");b.exports=c,c.prototype.reset=function(){this.equations.length=this.bodies.length=0};var e=[];c.prototype.getBodies=function(a){var b=a||[],c=this.equations;e.length=0;for(var d=0;d!==c.length;d++){var f=c[d];-1===e.indexOf(f.bodyA.id)&&(b.push(f.bodyA),e.push(f.bodyA.id)),-1===e.indexOf(f.bodyB.id)&&(b.push(f.bodyB),e.push(f.bodyB.id))}return b},c.prototype.wantsToSleep=function(){for(var a=0;a=a&&c>d;)this.internalStep(a),this.time+=a,this.accumulator-=a,d++;for(var f=this.accumulator%a/a,g=0;g!==this.bodies.length;g++){var h=this.bodies[g];e.lerp(h.interpolatedPosition,h.previousPosition,h.position,f),h.interpolatedAngle=h.previousAngle+f*(h.angle-h.previousAngle)}}};var x=[];c.prototype.internalStep=function(a){this.stepping=!0;var b=this.springs.length,d=this.springs,f=this.bodies,g=this.gravity,h=this.solver,i=this.bodies.length,j=this.broadphase,k=this.narrowphase,m=this.constraints,n=u,o=(e.scale,e.add),p=(e.rotate,this.islandManager);if(this.overlapKeeper.tick(),this.lastTimeStep=a,this.useWorldGravityAsFrictionGravity){var q=e.length(this.gravity);0===q&&this.useFrictionGravityOnZeroGravity||(this.frictionGravity=q)}if(this.applyGravity)for(var s=0;s!==i;s++){var t=f[s],v=t.force;t.type===l.DYNAMIC&&t.sleepState!==l.SLEEPING&&(e.scale(n,g,t.mass*t.gravityScale),o(v,v,n))}if(this.applySpringForces)for(var s=0;s!==b;s++){var w=d[s];w.applyForce()}if(this.applyDamping)for(var s=0;s!==i;s++){var t=f[s];t.type===l.DYNAMIC&&t.applyDamping(a)}for(var y=j.getCollisionPairs(this),z=this.disabledBodyCollisionPairs,s=z.length-2;s>=0;s-=2)for(var A=y.length-2;A>=0;A-=2)(z[s]===y[A]&&z[s+1]===y[A+1]||z[s+1]===y[A]&&z[s]===y[A+1])&&y.splice(A,2);var B=m.length;for(s=0;s!==B;s++){var C=m[s];if(!C.collideConnected)for(var A=y.length-2;A>=0;A-=2)(C.bodyA===y[A]&&C.bodyB===y[A+1]||C.bodyB===y[A]&&C.bodyA===y[A+1])&&y.splice(A,2)}this.postBroadphaseEvent.pairs=y,this.emit(this.postBroadphaseEvent),this.postBroadphaseEvent.pairs=null,k.reset(this);for(var s=0,D=y.length;s!==D;s+=2)for(var E=y[s],F=y[s+1],G=0,H=E.shapes.length;G!==H;G++)for(var I=E.shapes[G],J=I.position,K=I.angle,L=0,M=F.shapes.length;L!==M;L++){var N=F.shapes[L],O=N.position,P=N.angle,Q=this.defaultContactMaterial;if(I.material&&N.material){var R=this.getContactMaterial(I.material,N.material);R&&(Q=R)}this.runNarrowphase(k,E,I,J,K,F,N,O,P,Q,this.frictionGravity)}for(var s=0;s!==i;s++){var S=f[s];S._wakeUpAfterNarrowphase&&(S.wakeUp(),S._wakeUpAfterNarrowphase=!1)}if(this.has("endContact")){this.overlapKeeper.getEndOverlaps(x);for(var T=this.endContactEvent,L=x.length;L--;){var U=x[L];T.shapeA=U.shapeA,T.shapeB=U.shapeB,T.bodyA=U.bodyA,T.bodyB=U.bodyB,this.emit(T)}x.length=0}var V=this.preSolveEvent;V.contactEquations=k.contactEquations,V.frictionEquations=k.frictionEquations,this.emit(V),V.contactEquations=V.frictionEquations=null;var B=m.length;for(s=0;s!==B;s++)m[s].update();if(k.contactEquations.length||k.frictionEquations.length||B)if(this.islandSplit){for(p.equations.length=0,r.appendArray(p.equations,k.contactEquations),r.appendArray(p.equations,k.frictionEquations),s=0;s!==B;s++)r.appendArray(p.equations,m[s].equations);p.split(this);for(var s=0;s!==p.islands.length;s++){var W=p.islands[s];W.equations.length&&h.solveIsland(a,W)}}else{for(h.addEquations(k.contactEquations),h.addEquations(k.frictionEquations),s=0;s!==B;s++)h.addEquations(m[s].equations);this.solveConstraints&&h.solve(a,this),h.removeAllEquations()}for(var s=0;s!==i;s++){var S=f[s];S.integrate(a)}for(var s=0;s!==i;s++)f[s].setZeroForce();if(this.emitImpactEvent&&this.has("impact"))for(var X=this.impactEvent,s=0;s!==k.contactEquations.length;s++){var Y=k.contactEquations[s];Y.firstImpact&&(X.bodyA=Y.bodyA,X.bodyB=Y.bodyB,X.shapeA=Y.shapeA,X.shapeB=Y.shapeB,X.contactEquation=Y,this.emit(X))}if(this.sleepMode===c.BODY_SLEEPING)for(s=0;s!==i;s++)f[s].sleepTick(this.time,!1,a);else if(this.sleepMode===c.ISLAND_SLEEPING&&this.islandSplit){for(s=0;s!==i;s++)f[s].sleepTick(this.time,!0,a);for(var s=0;s0,a.frictionCoefficient=k.friction;var p;p=b.type===l.STATIC||b.type===l.KINEMATIC?g.mass:g.type===l.STATIC||g.type===l.KINEMATIC?b.mass:b.mass*g.mass/(b.mass+g.mass),a.slipForce=k.friction*m*p,a.restitution=k.restitution,a.surfaceVelocity=k.surfaceVelocity,a.frictionStiffness=k.frictionStiffness,a.frictionRelaxation=k.frictionRelaxation,a.stiffness=k.stiffness,a.relaxation=k.relaxation,a.contactSkinSize=k.contactSkinSize,a.enabledEquations=b.collisionResponse&&g.collisionResponse&&c.collisionResponse&&h.collisionResponse;var q=a[c.type|h.type],r=0;if(q){var s=c.sensor||h.sensor,t=a.frictionEquations.length;r=c.type=2*y&&(b._wakeUpAfterNarrowphase=!0)}if(g.allowSleep&&g.type===l.DYNAMIC&&g.sleepState===l.SLEEPING&&b.sleepState===l.AWAKE&&b.type!==l.STATIC){var z=e.squaredLength(b.velocity)+Math.pow(b.angularVelocity,2),A=Math.pow(b.sleepSpeedLimit,2);z>=2*A&&(g._wakeUpAfterNarrowphase=!0)}if(this.overlapKeeper.setOverlapping(b,c,g,h),this.has("beginContact")&&this.overlapKeeper.isNewOverlap(c,h)){var B=this.beginContactEvent;if(B.shapeA=c,B.shapeB=h,B.bodyA=b,B.bodyB=g,B.contactEquations.length=0,"number"==typeof r)for(var C=a.contactEquations.length-r;C1)for(var C=a.frictionEquations.length-u;C=0;b--)this.removeConstraint(a[b]);for(var d=this.bodies,b=d.length-1;b>=0;b--)this.removeBody(d[b]);for(var e=this.springs,b=e.length-1;b>=0;b--)this.removeSpring(e[b]);for(var f=this.contactMaterials,b=f.length-1;b>=0;b--)this.removeContactMaterial(f[b]);c.apply(this)};var y=e.create(),z=(e.fromValues(0,0),e.fromValues(0,0));c.prototype.hitTest=function(a,b,c){c=c||0;var d=new l({position:a}),k=new j,m=a,n=0,o=y,p=z;d.addShape(k);for(var q=this.narrowphase,r=[],s=0,t=b.length;s!==t;s++)for(var u=b[s],v=0,w=u.shapes.length;v!==w;v++){var x=u.shapes[v];e.rotate(o,x.position,u.angle),e.add(o,o,u.position);var A=x.angle+u.angle;(x instanceof f&&q.circleParticle(u,x,o,A,d,k,m,n,!0)||x instanceof g&&q.particleConvex(d,k,m,n,u,x,o,A,!0)||x instanceof h&&q.particlePlane(d,k,m,n,u,x,o,A,!0)||x instanceof i&&q.particleCapsule(d,k,m,n,u,x,o,A,!0)||x instanceof j&&e.squaredLength(e.sub(p,o,a))0&&this.enable(a[e],b,!0));else a instanceof c.Group?this.enable(a.children,b,d):(this.enableBody(a,b),d&&a.hasOwnProperty("children")&&a.children.length>0&&this.enable(a.children,b,!0))},enableBody:function(a,b){a.hasOwnProperty("body")&&null===a.body&&(a.body=new c.Physics.P2.Body(this.game,a,a.x,a.y,1),a.body.debug=b,"undefined"!=typeof a.anchor&&a.anchor.set(.5))},setImpactEvents:function(a){a?this.world.on("impact",this.impactHandler,this):this.world.off("impact",this.impactHandler,this)},setPostBroadphaseCallback:function(a,b){this.postBroadphaseCallback=a,this.callbackContext=b,null!==a?this.world.on("postBroadphase",this.postBroadphaseHandler,this):this.world.off("postBroadphase",this.postBroadphaseHandler,this)},postBroadphaseHandler:function(a){if(this.postBroadphaseCallback&&0!==a.pairs.length)for(var b=a.pairs.length-2;b>=0;b-=2)a.pairs[b].parent&&a.pairs[b+1].parent&&!this.postBroadphaseCallback.call(this.callbackContext,a.pairs[b].parent,a.pairs[b+1].parent)&&a.pairs.splice(b,2)},impactHandler:function(a){if(a.bodyA.parent&&a.bodyB.parent){var b=a.bodyA.parent,c=a.bodyB.parent;b._bodyCallbacks[a.bodyB.id]&&b._bodyCallbacks[a.bodyB.id].call(b._bodyCallbackContext[a.bodyB.id],b,c,a.shapeA,a.shapeB),c._bodyCallbacks[a.bodyA.id]&&c._bodyCallbacks[a.bodyA.id].call(c._bodyCallbackContext[a.bodyA.id],c,b,a.shapeB,a.shapeA),b._groupCallbacks[a.shapeB.collisionGroup]&&b._groupCallbacks[a.shapeB.collisionGroup].call(b._groupCallbackContext[a.shapeB.collisionGroup],b,c,a.shapeA,a.shapeB),c._groupCallbacks[a.shapeA.collisionGroup]&&c._groupCallbacks[a.shapeA.collisionGroup].call(c._groupCallbackContext[a.shapeA.collisionGroup],c,b,a.shapeB,a.shapeA)}},beginContactHandler:function(a){a.bodyA&&a.bodyB&&(this.onBeginContact.dispatch(a.bodyA,a.bodyB,a.shapeA,a.shapeB,a.contactEquations),a.bodyA.parent&&a.bodyA.parent.onBeginContact.dispatch(a.bodyB.parent,a.bodyB,a.shapeA,a.shapeB,a.contactEquations),a.bodyB.parent&&a.bodyB.parent.onBeginContact.dispatch(a.bodyA.parent,a.bodyA,a.shapeB,a.shapeA,a.contactEquations))},endContactHandler:function(a){a.bodyA&&a.bodyB&&(this.onEndContact.dispatch(a.bodyA,a.bodyB,a.shapeA,a.shapeB),a.bodyA.parent&&a.bodyA.parent.onEndContact.dispatch(a.bodyB.parent,a.bodyB,a.shapeA,a.shapeB),a.bodyB.parent&&a.bodyB.parent.onEndContact.dispatch(a.bodyA.parent,a.bodyA,a.shapeB,a.shapeA))},setBoundsToWorld:function(a,b,c,d,e){this.setBounds(this.game.world.bounds.x,this.game.world.bounds.y,this.game.world.bounds.width,this.game.world.bounds.height,a,b,c,d,e)},setWorldMaterial:function(a,b,c,d,e){void 0===b&&(b=!0),void 0===c&&(c=!0),void 0===d&&(d=!0),void 0===e&&(e=!0),b&&this.walls.left&&(this.walls.left.shapes[0].material=a),c&&this.walls.right&&(this.walls.right.shapes[0].material=a),d&&this.walls.top&&(this.walls.top.shapes[0].material=a),e&&this.walls.bottom&&(this.walls.bottom.shapes[0].material=a)},updateBoundsCollisionGroup:function(a){var b=this.everythingCollisionGroup.mask;void 0===a&&(b=this.boundsCollisionGroup.mask),this.walls.left&&(this.walls.left.shapes[0].collisionGroup=b),this.walls.right&&(this.walls.right.shapes[0].collisionGroup=b),this.walls.top&&(this.walls.top.shapes[0].collisionGroup=b),this.walls.bottom&&(this.walls.bottom.shapes[0].collisionGroup=b)},setBounds:function(a,b,c,d,e,f,g,h,i){void 0===e&&(e=this._boundsLeft),void 0===f&&(f=this._boundsRight),void 0===g&&(g=this._boundsTop),void 0===h&&(h=this._boundsBottom),void 0===i&&(i=this._boundsOwnGroup),this.walls.left&&this.world.removeBody(this.walls.left),this.walls.right&&this.world.removeBody(this.walls.right),this.walls.top&&this.world.removeBody(this.walls.top),this.walls.bottom&&this.world.removeBody(this.walls.bottom),e&&(this.walls.left=new p2.Body({mass:0,position:[this.pxmi(a),this.pxmi(b)],angle:1.5707963267948966}),this.walls.left.addShape(new p2.Plane),i&&(this.walls.left.shapes[0].collisionGroup=this.boundsCollisionGroup.mask),this.world.addBody(this.walls.left)),f&&(this.walls.right=new p2.Body({mass:0,position:[this.pxmi(a+c),this.pxmi(b)],angle:-1.5707963267948966}),this.walls.right.addShape(new p2.Plane),i&&(this.walls.right.shapes[0].collisionGroup=this.boundsCollisionGroup.mask),this.world.addBody(this.walls.right)),g&&(this.walls.top=new p2.Body({mass:0,position:[this.pxmi(a),this.pxmi(b)],angle:-3.141592653589793}),this.walls.top.addShape(new p2.Plane),i&&(this.walls.top.shapes[0].collisionGroup=this.boundsCollisionGroup.mask),this.world.addBody(this.walls.top)),h&&(this.walls.bottom=new p2.Body({mass:0,position:[this.pxmi(a),this.pxmi(b+d)]}),this.walls.bottom.addShape(new p2.Plane),i&&(this.walls.bottom.shapes[0].collisionGroup=this.boundsCollisionGroup.mask),this.world.addBody(this.walls.bottom)),this._boundsLeft=e,this._boundsRight=f,this._boundsTop=g,this._boundsBottom=h,this._boundsOwnGroup=i},pause:function(){this.paused=!0},resume:function(){this.paused=!1},update:function(){this.paused||this.world.step(this.useElapsedTime?this.game.time.physicsElapsed:this.frameRate)},reset:function(){this.world.on("beginContact",this.beginContactHandler,this),this.world.on("endContact",this.endContactHandler,this),this.nothingCollisionGroup=new c.Physics.P2.CollisionGroup(1),this.boundsCollisionGroup=new c.Physics.P2.CollisionGroup(2),this.everythingCollisionGroup=new c.Physics.P2.CollisionGroup(2147483648),this._collisionGroupID=2,this.setBoundsToWorld(!0,!0,!0,!0,!1)},clear:function(){this.world.time=0,this.world.fixedStepTime=0,this.world.solver&&this.world.solver.equations.length&&this.world.solver.removeAllEquations();for(var a=this.world.constraints,b=a.length-1;b>=0;b--)this.world.removeConstraint(a[b]);for(var c=this.world.bodies,b=c.length-1;b>=0;b--)this.world.removeBody(c[b]);for(var d=this.world.springs,b=d.length-1;b>=0;b--)this.world.removeSpring(d[b]);for(var e=this.world.contactMaterials,b=e.length-1;b>=0;b--)this.world.removeContactMaterial(e[b]);this.world.off("beginContact",this.beginContactHandler,this),this.world.off("endContact",this.endContactHandler,this),this.postBroadphaseCallback=null,this.callbackContext=null,this.impactCallback=null,this.collisionGroups=[],this._toRemove=[],this.boundsCollidesWith=[]},destroy:function(){this.clear(),this.game=null},addBody:function(a){return a.data.world?!1:(this.world.addBody(a.data),this.onBodyAdded.dispatch(a),!0)},removeBody:function(a){return a.data.world==this.world&&(this.world.removeBody(a.data),this.onBodyRemoved.dispatch(a)),a},addSpring:function(a){return this.world.addSpring(a instanceof c.Physics.P2.Spring||a instanceof c.Physics.P2.RotationalSpring?a.data:a),this.onSpringAdded.dispatch(a),a},removeSpring:function(a){return this.world.removeSpring(a instanceof c.Physics.P2.Spring||a instanceof c.Physics.P2.RotationalSpring?a.data:a),this.onSpringRemoved.dispatch(a),a},createDistanceConstraint:function(a,b,d,e,f,g){return a=this.getBody(a),b=this.getBody(b),a&&b?this.addConstraint(new c.Physics.P2.DistanceConstraint(this,a,b,d,e,f,g)):void console.warn("Cannot create Constraint, invalid body objects given")},createGearConstraint:function(a,b,d,e){return a=this.getBody(a),b=this.getBody(b),a&&b?this.addConstraint(new c.Physics.P2.GearConstraint(this,a,b,d,e)):void console.warn("Cannot create Constraint, invalid body objects given")},createRevoluteConstraint:function(a,b,d,e,f,g){return a=this.getBody(a),d=this.getBody(d),a&&d?this.addConstraint(new c.Physics.P2.RevoluteConstraint(this,a,b,d,e,f,g)):void console.warn("Cannot create Constraint, invalid body objects given")},createLockConstraint:function(a,b,d,e,f){return a=this.getBody(a),b=this.getBody(b),a&&b?this.addConstraint(new c.Physics.P2.LockConstraint(this,a,b,d,e,f)):void console.warn("Cannot create Constraint, invalid body objects given")},createPrismaticConstraint:function(a,b,d,e,f,g,h){return a=this.getBody(a),b=this.getBody(b),a&&b?this.addConstraint(new c.Physics.P2.PrismaticConstraint(this,a,b,d,e,f,g,h)):void console.warn("Cannot create Constraint, invalid body objects given")},addConstraint:function(a){return this.world.addConstraint(a),this.onConstraintAdded.dispatch(a),a},removeConstraint:function(a){return this.world.removeConstraint(a),this.onConstraintRemoved.dispatch(a),a},addContactMaterial:function(a){return this.world.addContactMaterial(a),this.onContactMaterialAdded.dispatch(a),a},removeContactMaterial:function(a){return this.world.removeContactMaterial(a),this.onContactMaterialRemoved.dispatch(a),a},getContactMaterial:function(a,b){return this.world.getContactMaterial(a,b)},setMaterial:function(a,b){for(var c=b.length;c--;)b[c].setMaterial(a)},createMaterial:function(a,b){a=a||"";var d=new c.Physics.P2.Material(a);return this.materials.push(d),"undefined"!=typeof b&&b.setMaterial(d),d},createContactMaterial:function(a,b,d){void 0===a&&(a=this.createMaterial()),void 0===b&&(b=this.createMaterial());var e=new c.Physics.P2.ContactMaterial(a,b,d);return this.addContactMaterial(e)},getBodies:function(){for(var a=[],b=this.world.bodies.length;b--;)a.push(this.world.bodies[b].parent);return a},getBody:function(a){return a instanceof p2.Body?a:a instanceof c.Physics.P2.Body?a.data:a.body&&a.body.type===c.Physics.P2JS?a.body.data:null},getSprings:function(){for(var a=[],b=this.world.springs.length;b--;)a.push(this.world.springs[b].parent);return a},getConstraints:function(){for(var a=[],b=this.world.constraints.length;b--;)a.push(this.world.constraints[b]);return a},hitTest:function(a,b,d,e){void 0===b&&(b=this.world.bodies),void 0===d&&(d=5),void 0===e&&(e=!1);for(var f=[this.pxmi(a.x),this.pxmi(a.y)],g=[],h=b.length;h--;)b[h]instanceof c.Physics.P2.Body&&(!e||b[h].data.type!==p2.Body.STATIC)?g.push(b[h].data):b[h]instanceof p2.Body&&b[h].parent&&(!e||b[h].type!==p2.Body.STATIC)?g.push(b[h]):b[h]instanceof c.Sprite&&b[h].hasOwnProperty("body")&&(!e||b[h].body.data.type!==p2.Body.STATIC)&&g.push(b[h].body.data);return this.world.hitTest(f,g,d)},toJSON:function(){return this.world.toJSON()},createCollisionGroup:function(a){var b=Math.pow(2,this._collisionGroupID);this.walls.left&&(this.walls.left.shapes[0].collisionMask=this.walls.left.shapes[0].collisionMask|b),this.walls.right&&(this.walls.right.shapes[0].collisionMask=this.walls.right.shapes[0].collisionMask|b),this.walls.top&&(this.walls.top.shapes[0].collisionMask=this.walls.top.shapes[0].collisionMask|b),this.walls.bottom&&(this.walls.bottom.shapes[0].collisionMask=this.walls.bottom.shapes[0].collisionMask|b),this._collisionGroupID++;var d=new c.Physics.P2.CollisionGroup(b);return this.collisionGroups.push(d),a&&this.setCollisionGroup(a,d),d},setCollisionGroup:function(a,b){if(a instanceof c.Group)for(var d=0;de;e++){var g=a.collision[b][e],h=this.createBody(g.x,g.y,0,c,{},g.polyline);h&&d.push(h)}return d},clearTilemapLayerBodies:function(a,b){b=a.getLayer(b);for(var c=a.layers[b].bodies.length;c--;)a.layers[b].bodies[c].destroy();a.layers[b].bodies.length=0},convertTilemap:function(a,b,c,d){b=a.getLayer(b),void 0===c&&(c=!0),void 0===d&&(d=!0),this.clearTilemapLayerBodies(a,b);for(var e=0,f=0,g=0,h=0,i=a.layers[b].height;i>h;h++){e=0;for(var j=0,k=a.layers[b].width;k>j;j++){var l=a.layers[b].data[h][j];if(l&&l.index>-1&&l.collides)if(d){var m=a.getTileRight(b,j,h);if(0===e&&(f=l.x*l.width,g=l.y*l.height,e=l.width),m&&m.collides)e+=l.width;else{var n=this.createBody(f,g,0,!1);n.addRectangle(e,l.height,e/2,l.height/2,0),c&&this.addBody(n),a.layers[b].bodies.push(n),e=0}}else{var n=this.createBody(l.x*l.width,l.y*l.height,0,!1);n.addRectangle(l.width,l.height,l.width/2,l.height/2,0),c&&this.addBody(n),a.layers[b].bodies.push(n)}}}return a.layers[b].bodies},mpx:function(a){return a*=20},pxm:function(a){return.05*a},mpxi:function(a){return a*=-20},pxmi:function(a){return a*-.05}},Object.defineProperty(c.Physics.P2.prototype,"friction",{get:function(){return this.world.defaultContactMaterial.friction},set:function(a){this.world.defaultContactMaterial.friction=a}}),Object.defineProperty(c.Physics.P2.prototype,"restitution",{get:function(){return this.world.defaultContactMaterial.restitution},set:function(a){this.world.defaultContactMaterial.restitution=a}}),Object.defineProperty(c.Physics.P2.prototype,"contactMaterial",{get:function(){return this.world.defaultContactMaterial},set:function(a){this.world.defaultContactMaterial=a}}),Object.defineProperty(c.Physics.P2.prototype,"applySpringForces",{get:function(){return this.world.applySpringForces},set:function(a){this.world.applySpringForces=a}}),Object.defineProperty(c.Physics.P2.prototype,"applyDamping",{get:function(){return this.world.applyDamping},set:function(a){this.world.applyDamping=a}}),Object.defineProperty(c.Physics.P2.prototype,"applyGravity",{get:function(){return this.world.applyGravity},set:function(a){this.world.applyGravity=a}}),Object.defineProperty(c.Physics.P2.prototype,"solveConstraints",{get:function(){return this.world.solveConstraints},set:function(a){this.world.solveConstraints=a}}),Object.defineProperty(c.Physics.P2.prototype,"time",{get:function(){return this.world.time}}),Object.defineProperty(c.Physics.P2.prototype,"emitImpactEvent",{get:function(){return this.world.emitImpactEvent},set:function(a){this.world.emitImpactEvent=a}}),Object.defineProperty(c.Physics.P2.prototype,"sleepMode",{get:function(){return this.world.sleepMode},set:function(a){this.world.sleepMode=a}}),Object.defineProperty(c.Physics.P2.prototype,"total",{get:function(){return this.world.bodies.length}}),c.Physics.P2.FixtureList=function(a){Array.isArray(a)||(a=[a]),this.rawList=a,this.init(),this.parse(this.rawList)},c.Physics.P2.FixtureList.prototype={init:function(){this.namedFixtures={},this.groupedFixtures=[],this.allFixtures=[]},setCategory:function(a,b){var c=function(b){b.collisionGroup=a};this.getFixtures(b).forEach(c)},setMask:function(a,b){var c=function(b){b.collisionMask=a};this.getFixtures(b).forEach(c)},setSensor:function(a,b){var c=function(b){b.sensor=a};this.getFixtures(b).forEach(c)},setMaterial:function(a,b){var c=function(b){b.material=a};this.getFixtures(b).forEach(c)},getFixtures:function(a){var b=[];if(a){a instanceof Array||(a=[a]);var c=this;return a.forEach(function(a){c.namedFixtures[a]&&b.push(c.namedFixtures[a])}),this.flatten(b)}return this.allFixtures},getFixtureByKey:function(a){return this.namedFixtures[a]},getGroup:function(a){return this.groupedFixtures[a]},parse:function(){var a,b,c,d;c=this.rawList,d=[];for(a in c)b=c[a],isNaN(a-0)?this.namedFixtures[a]=this.flatten(b):(this.groupedFixtures[a]=this.groupedFixtures[a]||[],this.groupedFixtures[a]=this.groupedFixtures[a].concat(b)),d.push(this.allFixtures=this.flatten(this.groupedFixtures))},flatten:function(a){var b,c;return b=[],c=arguments.callee,a.forEach(function(a){return Array.prototype.push.apply(b,Array.isArray(a)?c(a):[a])}),b}},c.Physics.P2.PointProxy=function(a,b){this.world=a,this.destination=b},c.Physics.P2.PointProxy.prototype.constructor=c.Physics.P2.PointProxy,Object.defineProperty(c.Physics.P2.PointProxy.prototype,"x",{get:function(){return this.world.mpx(this.destination[0])},set:function(a){this.destination[0]=this.world.pxm(a)}}),Object.defineProperty(c.Physics.P2.PointProxy.prototype,"y",{get:function(){return this.world.mpx(this.destination[1])},set:function(a){this.destination[1]=this.world.pxm(a)}}),Object.defineProperty(c.Physics.P2.PointProxy.prototype,"mx",{get:function(){return this.destination[0]},set:function(a){this.destination[0]=a}}),Object.defineProperty(c.Physics.P2.PointProxy.prototype,"my",{get:function(){return this.destination[1]},set:function(a){this.destination[1]=a}}),c.Physics.P2.InversePointProxy=function(a,b){this.world=a,this.destination=b},c.Physics.P2.InversePointProxy.prototype.constructor=c.Physics.P2.InversePointProxy,Object.defineProperty(c.Physics.P2.InversePointProxy.prototype,"x",{get:function(){return this.world.mpxi(this.destination[0])},set:function(a){this.destination[0]=this.world.pxmi(a)}}),Object.defineProperty(c.Physics.P2.InversePointProxy.prototype,"y",{get:function(){return this.world.mpxi(this.destination[1])},set:function(a){this.destination[1]=this.world.pxmi(a)}}),Object.defineProperty(c.Physics.P2.InversePointProxy.prototype,"mx",{get:function(){return this.destination[0]},set:function(a){this.destination[0]=-a}}),Object.defineProperty(c.Physics.P2.InversePointProxy.prototype,"my",{get:function(){return this.destination[1]},set:function(a){this.destination[1]=-a}}),c.Physics.P2.Body=function(a,b,d,e,f){b=b||null,d=d||0,e=e||0,void 0===f&&(f=1),this.game=a,this.world=a.physics.p2,this.sprite=b,this.type=c.Physics.P2JS,this.offset=new c.Point,this.data=new p2.Body({position:[this.world.pxmi(d),this.world.pxmi(e)],mass:f}),this.data.parent=this,this.velocity=new c.Physics.P2.InversePointProxy(this.world,this.data.velocity),this.force=new c.Physics.P2.InversePointProxy(this.world,this.data.force),this.gravity=new c.Point,this.onBeginContact=new c.Signal,this.onEndContact=new c.Signal,this.collidesWith=[],this.removeNextStep=!1,this.debugBody=null,this.dirty=!1,this._collideWorldBounds=!0,this._bodyCallbacks={},this._bodyCallbackContext={},this._groupCallbacks={},this._groupCallbackContext={},this._reset=!1,b&&(this.setRectangleFromSprite(b),b.exists&&this.game.physics.p2.addBody(this))},c.Physics.P2.Body.prototype={createBodyCallback:function(a,b,c){var d=-1;a.id?d=a.id:a.body&&(d=a.body.id),d>-1&&(null===b?(delete this._bodyCallbacks[d],delete this._bodyCallbackContext[d]):(this._bodyCallbacks[d]=b,this._bodyCallbackContext[d]=c))},createGroupCallback:function(a,b,c){null===b?(delete this._groupCallbacks[a.mask],delete this._groupCallbackContext[a.mask]):(this._groupCallbacks[a.mask]=b,this._groupCallbackContext[a.mask]=c)},getCollisionMask:function(){var a=0;this._collideWorldBounds&&(a=this.game.physics.p2.boundsCollisionGroup.mask);for(var b=0;b=0;c--)this.data.shapes[c].collisionMask=b;else a.collisionMask=b},setCollisionGroup:function(a,b){var c=this.getCollisionMask();if(void 0===b)for(var d=this.data.shapes.length-1;d>=0;d--)this.data.shapes[d].collisionGroup=a.mask,this.data.shapes[d].collisionMask=c;else b.collisionGroup=a.mask,b.collisionMask=c},clearCollision:function(a,b,c){if(void 0===a&&(a=!0),void 0===b&&(b=!0),void 0===c)for(var d=this.data.shapes.length-1;d>=0;d--)a&&(this.data.shapes[d].collisionGroup=null),b&&(this.data.shapes[d].collisionMask=null);else a&&(c.collisionGroup=null),b&&(c.collisionMask=null);a&&(this.collidesWith.length=0)},collides:function(a,b,c,d){if(Array.isArray(a))for(var e=0;e=0;e--)this.data.shapes[e].collisionMask=f;else d.collisionMask=f},adjustCenterOfMass:function(){this.data.adjustCenterOfMass(),this.shapeChanged()},getVelocityAtPoint:function(a,b){return this.data.getVelocityAtPoint(a,b)},applyDamping:function(a){this.data.applyDamping(a)},applyImpulse:function(a,b,c){this.data.applyImpulse(a,[this.world.pxmi(b),this.world.pxmi(c)])},applyImpulseLocal:function(a,b,c){this.data.applyImpulseLocal(a,[this.world.pxmi(b),this.world.pxmi(c)])},applyForce:function(a,b,c){this.data.applyForce(a,[this.world.pxmi(b),this.world.pxmi(c)])},setZeroForce:function(){this.data.setZeroForce()},setZeroRotation:function(){this.data.angularVelocity=0},setZeroVelocity:function(){this.data.velocity[0]=0,this.data.velocity[1]=0},setZeroDamping:function(){this.data.damping=0,this.data.angularDamping=0},toLocalFrame:function(a,b){return this.data.toLocalFrame(a,b)},toWorldFrame:function(a,b){return this.data.toWorldFrame(a,b)},rotateLeft:function(a){this.data.angularVelocity=this.world.pxm(-a)},rotateRight:function(a){this.data.angularVelocity=this.world.pxm(a)},moveForward:function(a){var b=this.world.pxmi(-a),c=this.data.angle+Math.PI/2;this.data.velocity[0]=b*Math.cos(c),this.data.velocity[1]=b*Math.sin(c)},moveBackward:function(a){var b=this.world.pxmi(-a),c=this.data.angle+Math.PI/2;this.data.velocity[0]=-(b*Math.cos(c)),this.data.velocity[1]=-(b*Math.sin(c))},thrust:function(a){var b=this.world.pxmi(-a),c=this.data.angle+Math.PI/2;this.data.force[0]+=b*Math.cos(c),this.data.force[1]+=b*Math.sin(c)},reverse:function(a){var b=this.world.pxmi(-a),c=this.data.angle+Math.PI/2;this.data.force[0]-=b*Math.cos(c),this.data.force[1]-=b*Math.sin(c)},moveLeft:function(a){this.data.velocity[0]=this.world.pxmi(-a)},moveRight:function(a){this.data.velocity[0]=this.world.pxmi(a)},moveUp:function(a){this.data.velocity[1]=this.world.pxmi(-a)},moveDown:function(a){this.data.velocity[1]=this.world.pxmi(a)},preUpdate:function(){this.dirty=!0,this.removeNextStep&&(this.removeFromWorld(),this.removeNextStep=!1)},postUpdate:function(){this.sprite.x=this.world.mpxi(this.data.position[0]),this.sprite.y=this.world.mpxi(this.data.position[1]),this.fixedRotation||(this.sprite.rotation=this.data.angle),this.debugBody&&this.debugBody.updateSpriteTransform(),this.dirty=!1},reset:function(a,b,c,d){void 0===c&&(c=!1),void 0===d&&(d=!1),this.setZeroForce(),this.setZeroVelocity(),this.setZeroRotation(),c&&this.setZeroDamping(),d&&(this.mass=1),this.x=a,this.y=b},addToWorld:function(){if(this.game.physics.p2._toRemove)for(var a=0;ad;d+=2)c.push([b[d],b[d+1]]);var f=c.length-1;c[f][0]===c[0][0]&&c[f][1]===c[0][1]&&c.pop();for(var g=0;g=0;c--)this.data.shapes[c].material=a;else b.material=a},shapeChanged:function(){this.debugBody&&this.debugBody.draw()},addPhaserPolygon:function(a,b){for(var c=this.game.cache.getPhysicsData(a,b),d=[],e=0;e=0?o>n:n>o;e=o>=0?++n:--n)k=b.vertices[e],p2.vec2.rotate(m,k,a),l.push([(m[0]+i[0])*this.ppu,-(m[1]+i[1])*this.ppu]);this.drawConvex(j,l,b.triangles,f,c,g,this.settings.debugPolygons,[i[0]*this.ppu,-i[1]*this.ppu])}d++}}},drawRectangle:function(a,b,c,d,e,f,g,h,i){void 0===i&&(i=1),void 0===g&&(g=0),a.lineStyle(i,g,1),a.beginFill(h),a.drawRect(b-e/2,c-f/2,e,f)},drawCircle:function(a,b,c,d,e,f,g){void 0===g&&(g=1),void 0===f&&(f=16777215),a.lineStyle(g,0,1),a.beginFill(f,1),a.drawCircle(b,c,2*-e),a.endFill(),a.moveTo(b,c),a.lineTo(b+e*Math.cos(-d),c+e*Math.sin(-d))},drawLine:function(a,b,c,d){void 0===d&&(d=1),void 0===c&&(c=0),a.lineStyle(5*d,c,1),a.moveTo(-b/2,0),a.lineTo(b/2,0)},drawConvex:function(a,b,c,d,e,f,g,h){var i,j,k,l,m,n,o,p,q,r,s;if(void 0===f&&(f=1),void 0===d&&(d=0),g){for(i=[16711680,65280,255],j=0;j!==b.length+1;)l=b[j%b.length],m=b[(j+1)%b.length],o=l[0],r=l[1],p=m[0],s=m[1],a.lineStyle(f,i[j%i.length],1),a.moveTo(o,-r),a.lineTo(p,-s),a.drawCircle(o,-r,2*f),j++;return a.lineStyle(f,0,1),a.drawCircle(h[0],h[1],2*f)}for(a.lineStyle(f,d,1),a.beginFill(e),j=0;j!==b.length;)k=b[j],n=k[0],q=k[1],0===j?a.moveTo(n,-q):a.lineTo(n,-q),j++;return a.endFill(),b.length>2?(a.moveTo(b[b.length-1][0],-b[b.length-1][1]),a.lineTo(b[0][0],-b[0][1])):void 0},drawPath:function(a,b,c,d,e){var f,g,h,i,j,k,l,m,n,o,p,q,r;for(void 0===e&&(e=1),void 0===c&&(c=0),a.lineStyle(e,c,1),"number"==typeof d&&a.beginFill(d),h=null,i=null,g=0;g2&&"number"==typeof d&&(a.moveTo(b[b.length-1][0],b[b.length-1][1]),a.lineTo(b[0][0],b[0][1]))},drawPlane:function(a,b,c,d,e,f,g,h,i,j){var k,l,m;void 0===f&&(f=1),void 0===d&&(d=16777215),a.lineStyle(f,e,11),a.beginFill(d),k=i,a.moveTo(b,-c),l=b+Math.cos(j)*this.game.width,m=c+Math.sin(j)*this.game.height,a.lineTo(l,-m),a.moveTo(b,-c),l=b+Math.cos(j)*-this.game.width,m=c+Math.sin(j)*-this.game.height,a.lineTo(l,-m)},drawCapsule:function(a,b,c,d,e,f,g,h,i){void 0===i&&(i=1),void 0===g&&(g=0),a.lineStyle(i,g,1);var j=Math.cos(d),k=Math.sin(d);a.beginFill(h,1),a.drawCircle(-e/2*j+b,-e/2*k+c,2*-f),a.drawCircle(e/2*j+b,e/2*k+c,2*-f),a.endFill(),a.lineStyle(i,g,0),a.beginFill(h,1),a.moveTo(-e/2*j+f*k+b,-e/2*k+f*j+c),a.lineTo(e/2*j+f*k+b,e/2*k+f*j+c),a.lineTo(e/2*j-f*k+b,e/2*k-f*j+c),a.lineTo(-e/2*j-f*k+b,-e/2*k-f*j+c),a.endFill(),a.lineStyle(i,g,1),a.moveTo(-e/2*j+f*k+b,-e/2*k+f*j+c),a.lineTo(e/2*j+f*k+b,e/2*k+f*j+c),a.moveTo(-e/2*j-f*k+b,-e/2*k-f*j+c),a.lineTo(e/2*j-f*k+b,e/2*k-f*j+c)},randomPastelHex:function(){var a,b,c,d;return c=[255,255,255],d=Math.floor(256*Math.random()),b=Math.floor(256*Math.random()),a=Math.floor(256*Math.random()),d=Math.floor((d+3*c[0])/4),b=Math.floor((b+3*c[1])/4),a=Math.floor((a+3*c[2])/4),this.rgbToHex(d,b,a)},rgbToHex:function(a,b,c){return this.componentToHex(a)+this.componentToHex(b)+this.componentToHex(c)},componentToHex:function(a){var b;return b=a.toString(16),2===b.len?b:b+"0"}}),c.Physics.P2.Spring=function(a,b,c,d,e,f,g,h,i,j){this.game=a.game,this.world=a,void 0===d&&(d=1),void 0===e&&(e=100),void 0===f&&(f=1),d=a.pxm(d);var k={restLength:d,stiffness:e,damping:f};"undefined"!=typeof g&&null!==g&&(k.worldAnchorA=[a.pxm(g[0]),a.pxm(g[1])]),"undefined"!=typeof h&&null!==h&&(k.worldAnchorB=[a.pxm(h[0]),a.pxm(h[1])]),"undefined"!=typeof i&&null!==i&&(k.localAnchorA=[a.pxm(i[0]),a.pxm(i[1])]),"undefined"!=typeof j&&null!==j&&(k.localAnchorB=[a.pxm(j[0]),a.pxm(j[1])]),this.data=new p2.LinearSpring(b,c,k),this.data.parent=this},c.Physics.P2.Spring.prototype.constructor=c.Physics.P2.Spring,c.Physics.P2.RotationalSpring=function(a,b,c,d,e,f){this.game=a.game,this.world=a,void 0===d&&(d=null),void 0===e&&(e=100),void 0===f&&(f=1),d&&(d=a.pxm(d));var g={restAngle:d,stiffness:e,damping:f};this.data=new p2.RotationalSpring(b,c,g),this.data.parent=this},c.Physics.P2.Spring.prototype.constructor=c.Physics.P2.Spring,c.Physics.P2.Material=function(a){this.name=a,p2.Material.call(this)},c.Physics.P2.Material.prototype=Object.create(p2.Material.prototype),c.Physics.P2.Material.prototype.constructor=c.Physics.P2.Material,c.Physics.P2.ContactMaterial=function(a,b,c){p2.ContactMaterial.call(this,a,b,c)},c.Physics.P2.ContactMaterial.prototype=Object.create(p2.ContactMaterial.prototype),c.Physics.P2.ContactMaterial.prototype.constructor=c.Physics.P2.ContactMaterial,c.Physics.P2.CollisionGroup=function(a){this.mask=a},c.Physics.P2.DistanceConstraint=function(a,b,c,d,e,f,g){void 0===d&&(d=100),void 0===e&&(e=[0,0]),void 0===f&&(f=[0,0]),void 0===g&&(g=Number.MAX_VALUE),this.game=a.game,this.world=a,d=a.pxm(d),e=[a.pxmi(e[0]),a.pxmi(e[1])],f=[a.pxmi(f[0]),a.pxmi(f[1])];var h={distance:d,localAnchorA:e,localAnchorB:f,maxForce:g};p2.DistanceConstraint.call(this,b,c,h)},c.Physics.P2.DistanceConstraint.prototype=Object.create(p2.DistanceConstraint.prototype),c.Physics.P2.DistanceConstraint.prototype.constructor=c.Physics.P2.DistanceConstraint,c.Physics.P2.GearConstraint=function(a,b,c,d,e){void 0===d&&(d=0),void 0===e&&(e=1),this.game=a.game,this.world=a;var f={angle:d,ratio:e};p2.GearConstraint.call(this,b,c,f)},c.Physics.P2.GearConstraint.prototype=Object.create(p2.GearConstraint.prototype),c.Physics.P2.GearConstraint.prototype.constructor=c.Physics.P2.GearConstraint,c.Physics.P2.LockConstraint=function(a,b,c,d,e,f){void 0===d&&(d=[0,0]),void 0===e&&(e=0),void 0===f&&(f=Number.MAX_VALUE),this.game=a.game,this.world=a,d=[a.pxm(d[0]),a.pxm(d[1])];var g={localOffsetB:d,localAngleB:e,maxForce:f};p2.LockConstraint.call(this,b,c,g)},c.Physics.P2.LockConstraint.prototype=Object.create(p2.LockConstraint.prototype),c.Physics.P2.LockConstraint.prototype.constructor=c.Physics.P2.LockConstraint,c.Physics.P2.PrismaticConstraint=function(a,b,c,d,e,f,g,h){void 0===d&&(d=!0),void 0===e&&(e=[0,0]),void 0===f&&(f=[0,0]),void 0===g&&(g=[0,0]),void 0===h&&(h=Number.MAX_VALUE),this.game=a.game,this.world=a,e=[a.pxmi(e[0]),a.pxmi(e[1])],f=[a.pxmi(f[0]),a.pxmi(f[1])];var i={localAnchorA:e,localAnchorB:f,localAxisA:g,maxForce:h,disableRotationalLock:!d};p2.PrismaticConstraint.call(this,b,c,i)},c.Physics.P2.PrismaticConstraint.prototype=Object.create(p2.PrismaticConstraint.prototype),c.Physics.P2.PrismaticConstraint.prototype.constructor=c.Physics.P2.PrismaticConstraint,c.Physics.P2.RevoluteConstraint=function(a,b,c,d,e,f,g){void 0===f&&(f=Number.MAX_VALUE),void 0===g&&(g=null),this.game=a.game,this.world=a,c=[a.pxmi(c[0]),a.pxmi(c[1])],e=[a.pxmi(e[0]),a.pxmi(e[1])],g&&(g=[a.pxmi(g[0]),a.pxmi(g[1])]);var h={worldPivot:g,localPivotA:c,localPivotB:e,maxForce:f};p2.RevoluteConstraint.call(this,b,d,h)},c.Physics.P2.RevoluteConstraint.prototype=Object.create(p2.RevoluteConstraint.prototype),c.Physics.P2.RevoluteConstraint.prototype.constructor=c.Physics.P2.RevoluteConstraint,c.ImageCollection=function(a,b,c,d,e,f,g){(void 0===c||0>=c)&&(c=32),(void 0===d||0>=d)&&(d=32),void 0===e&&(e=0),void 0===f&&(f=0),this.name=a,this.firstgid=0|b,this.imageWidth=0|c,this.imageHeight=0|d,this.imageMargin=0|e,this.imageSpacing=0|f,this.properties=g||{},this.images=[],this.total=0},c.ImageCollection.prototype={containsImageIndex:function(a){return a>=this.firstgid&&athis.right||b>this.bottom)},intersects:function(a,b,c,d){return c<=this.worldX?!1:d<=this.worldY?!1:a>=this.worldX+this.width?!1:b>=this.worldY+this.height?!1:!0},setCollisionCallback:function(a,b){this.collisionCallback=a,this.collisionCallbackContext=b},destroy:function(){this.collisionCallback=null,this.collisionCallbackContext=null,this.properties=null},setCollision:function(a,b,c,d){this.collideLeft=a,this.collideRight=b,this.collideUp=c,this.collideDown=d,this.faceLeft=a,this.faceRight=b,this.faceTop=c,this.faceBottom=d},resetCollision:function(){this.collideLeft=!1,this.collideRight=!1,this.collideUp=!1,this.collideDown=!1,this.faceTop=!1,this.faceBottom=!1,this.faceLeft=!1,this.faceRight=!1},isInteresting:function(a,b){return a&&b?this.collideLeft||this.collideRight||this.collideUp||this.collideDown||this.faceTop||this.faceBottom||this.faceLeft||this.faceRight||this.collisionCallback:a?this.collideLeft||this.collideRight||this.collideUp||this.collideDown:b?this.faceTop||this.faceBottom||this.faceLeft||this.faceRight:!1},copy:function(a){this.index=a.index,this.alpha=a.alpha,this.properties=a.properties,this.collideUp=a.collideUp,this.collideDown=a.collideDown,this.collideLeft=a.collideLeft,this.collideRight=a.collideRight,this.collisionCallback=a.collisionCallback,this.collisionCallbackContext=a.collisionCallbackContext}},c.Tile.prototype.constructor=c.Tile,Object.defineProperty(c.Tile.prototype,"collides",{get:function(){return this.collideLeft||this.collideRight||this.collideUp||this.collideDown}}),Object.defineProperty(c.Tile.prototype,"canCollide",{get:function(){return this.collideLeft||this.collideRight||this.collideUp||this.collideDown||this.collisionCallback}}),Object.defineProperty(c.Tile.prototype,"left",{get:function(){return this.worldX}}),Object.defineProperty(c.Tile.prototype,"right",{get:function(){return this.worldX+this.width}}),Object.defineProperty(c.Tile.prototype,"top",{get:function(){return this.worldY}}),Object.defineProperty(c.Tile.prototype,"bottom",{get:function(){return this.worldY+this.height}}),c.Tilemap=function(a,b,d,e,f,g){this.game=a,this.key=b;var h=c.TilemapParser.parse(this.game,b,d,e,f,g);null!==h&&(this.width=h.width,this.height=h.height,this.tileWidth=h.tileWidth,this.tileHeight=h.tileHeight,this.orientation=h.orientation,this.format=h.format,this.version=h.version,this.properties=h.properties,this.widthInPixels=h.widthInPixels,this.heightInPixels=h.heightInPixels,this.layers=h.layers,this.tilesets=h.tilesets,this.imagecollections=h.imagecollections,this.tiles=h.tiles,this.objects=h.objects,this.collideIndexes=[],this.collision=h.collision,this.images=h.images,this.currentLayer=0,this.debugMap=[],this._results=[],this._tempA=0,this._tempB=0)},c.Tilemap.CSV=0,c.Tilemap.TILED_JSON=1,c.Tilemap.NORTH=0,c.Tilemap.EAST=1,c.Tilemap.SOUTH=2,c.Tilemap.WEST=3,c.Tilemap.prototype={create:function(a,b,c,d,e,f){return void 0===f&&(f=this.game.world),this.width=b,this.height=c,this.setTileSize(d,e),this.layers.length=0,this.createBlankLayer(a,b,c,d,e,f)},setTileSize:function(a,b){this.tileWidth=a,this.tileHeight=b,this.widthInPixels=this.width*a,this.heightInPixels=this.height*b},addTilesetImage:function(a,b,d,e,f,g,h){if(void 0===a)return null;void 0===d&&(d=this.tileWidth),void 0===e&&(e=this.tileHeight),void 0===f&&(f=0),void 0===g&&(g=0),void 0===h&&(h=0),0===d&&(d=32),0===e&&(e=32);var i=null;if((void 0===b||null===b)&&(b=a),b instanceof c.BitmapData)i=b.canvas;else{if(!this.game.cache.checkImageKey(b))return console.warn('Phaser.Tilemap.addTilesetImage: Invalid image key given: "'+b+'"'),null;i=this.game.cache.getImage(b)}var j=this.getTilesetIndex(a);if(null===j&&this.format===c.Tilemap.TILED_JSON)return console.warn('Phaser.Tilemap.addTilesetImage: No data found in the JSON matching the tileset name: "'+b+'"'),null;if(this.tilesets[j])return this.tilesets[j].setImage(i),this.tilesets[j];var k=new c.Tileset(a,h,d,e,f,g,{});k.setImage(i),this.tilesets.push(k);for(var l=this.tilesets.length-1,m=f,n=f,o=0,p=0,q=0,r=h;rm;m++)if("undefined"!=typeof this.objects[a][m].gid&&"number"==typeof b&&this.objects[a][m].gid===b&&(l=!0),"undefined"!=typeof this.objects[a][m].id&&"number"==typeof b&&this.objects[a][m].id===b&&(l=!0),"undefined"!=typeof this.objects[a][m].name&&"string"==typeof b&&this.objects[a][m].name===b&&(l=!0),l){k=new i(this.game,this.objects[a][m].x,this.objects[a][m].y,d,e),k.name=this.objects[a][m].name,k.visible=this.objects[a][m].visible,k.autoCull=g,k.exists=f,k.width=this.objects[a][m].width,k.height=this.objects[a][m].height,this.objects[a][m].rotation&&(k.angle=this.objects[a][m].rotation),j&&(k.y-=k.height),h.add(k);for(var o in this.objects[a][m].properties)h.set(k,o,this.objects[a][m].properties[o],!1,!1,0,!0)}},createFromTiles:function(a,b,d,e,f,g){"number"==typeof a&&(a=[a]),void 0===b||null===b?b=[]:"number"==typeof b&&(b=[b]),e=this.getLayer(e),void 0===f&&(f=this.game.world),void 0===g&&(g={}),void 0===g.customClass&&(g.customClass=c.Sprite),void 0===g.adjustY&&(g.adjustY=!0);var h=this.layers[e].width,i=this.layers[e].height;if(this.copy(0,0,h,i,e),this._results.length<2)return 0;for(var j,k=0,l=1,m=this._results.length;m>l;l++)if(-1!==a.indexOf(this._results[l].index)){j=new g.customClass(this.game,this._results[l].worldX,this._results[l].worldY,d);for(var n in g)j[n]=g[n];f.add(j),k++}if(1===b.length)for(l=0;l1)for(l=0;lthis.layers.length?void console.warn("Tilemap.createLayer: Invalid layer ID given: "+f):e.add(new c.TilemapLayer(this.game,this,f,b,d))},createBlankLayer:function(a,b,d,e,f,g){if(void 0===g&&(g=this.game.world),null!==this.getLayerIndex(a))return void console.warn("Tilemap.createBlankLayer: Layer with matching name already exists");for(var h,i={name:a,x:0,y:0,width:b,height:d,widthInPixels:b*e,heightInPixels:d*f,alpha:1,visible:!0,properties:{},indexes:[],callbacks:[],bodies:[],data:null},j=[],k=0;d>k;k++){h=[];for(var l=0;b>l;l++)h.push(new c.Tile(i,-1,l,k,e,f));j.push(h)}i.data=j,this.layers.push(i),this.currentLayer=this.layers.length-1;var m=i.widthInPixels,n=i.heightInPixels;m>this.game.width&&(m=this.game.width),n>this.game.height&&(n=this.game.height);var j=new c.TilemapLayer(this.game,this,this.layers.length-1,m,n);return j.name=a,g.add(j)},getIndex:function(a,b){for(var c=0;ce;e++)this.layers[d].callbacks[a[e]]={callback:b,callbackContext:c}},setTileLocationCallback:function(a,b,c,d,e,f,g){if(g=this.getLayer(g),this.copy(a,b,c,d,g),!(this._results.length<2))for(var h=1;hb)){for(var f=a;b>=f;f++)this.setCollisionByIndex(f,c,d,!1);e&&this.calculateFaces(d)}},setCollisionByExclusion:function(a,b,c,d){void 0===b&&(b=!0),void 0===d&&(d=!0),c=this.getLayer(c);for(var e=0,f=this.tiles.length;f>e;e++)-1===a.indexOf(e)&&this.setCollisionByIndex(e,b,c,!1);d&&this.calculateFaces(c)},setCollisionByIndex:function(a,b,c,d){if(void 0===b&&(b=!0),void 0===c&&(c=this.currentLayer),void 0===d&&(d=!0),b)this.collideIndexes.push(a);else{var e=this.collideIndexes.indexOf(a);e>-1&&this.collideIndexes.splice(e,1)}for(var f=0;ff;f++)for(var h=0,i=this.layers[a].width;i>h;h++){var j=this.layers[a].data[f][h];j&&(b=this.getTileAbove(a,h,f),c=this.getTileBelow(a,h,f),d=this.getTileLeft(a,h,f),e=this.getTileRight(a,h,f),j.collides&&(j.faceTop=!0,j.faceBottom=!0,j.faceLeft=!0,j.faceRight=!0),b&&b.collides&&(j.faceTop=!1),c&&c.collides&&(j.faceBottom=!1),d&&d.collides&&(j.faceLeft=!1),e&&e.collides&&(j.faceRight=!1))}},getTileAbove:function(a,b,c){return c>0?this.layers[a].data[c-1][b]:null},getTileBelow:function(a,b,c){return c0?this.layers[a].data[c][b-1]:null},getTileRight:function(a,b,c){return b-1},removeTile:function(a,b,d){if(d=this.getLayer(d),a>=0&&a=0&&b=0&&b=0&&d-1?this.layers[e].data[d][b].setCollision(!0,!0,!0,!0):this.layers[e].data[d][b].resetCollision(),this.layers[e].dirty=!0,this.calculateFaces(e),this.layers[e].data[d][b]}return null},putTileWorldXY:function(a,b,c,d,e,f){return f=this.getLayer(f),b=this.game.math.snapToFloor(b,d)/d,c=this.game.math.snapToFloor(c,e)/e,this.putTile(a,b,c,f)},searchTileIndex:function(a,b,c,d){void 0===b&&(b=0),void 0===c&&(c=!1),d=this.getLayer(d);var e=0;if(c){for(var f=this.layers[d].height-1;f>=0;f--)for(var g=this.layers[d].width-1;g>=0;g--)if(this.layers[d].data[f][g].index===a){if(e===b)return this.layers[d].data[f][g];e++}}else for(var f=0;f=0&&a=0&&ba&&(a=0),0>b&&(b=0),c>this.layers[e].width&&(c=this.layers[e].width),d>this.layers[e].height&&(d=this.layers[e].height),this._results.length=0,this._results.push({x:a,y:b,width:c,height:d,layer:e});for(var f=b;b+d>f;f++)for(var g=a;a+c>g;g++)this._results.push(this.layers[e].data[f][g]);return this._results},paste:function(a,b,c,d){if(void 0===a&&(a=0),void 0===b&&(b=0),d=this.getLayer(d),c&&!(c.length<2)){for(var e=a-c[1].x,f=b-c[1].y,g=1;g1?this.debugMap[this.layers[this.currentLayer].data[c][d]]?"background: "+this.debugMap[this.layers[this.currentLayer].data[c][d]]:"background: #ffffff":"background: rgb(0, 0, 0)");a+="\n"}b[0]=a,console.log.apply(console,b)},destroy:function(){this.removeAllLayers(),this.data=[],this.game=null}},c.Tilemap.prototype.constructor=c.Tilemap,Object.defineProperty(c.Tilemap.prototype,"layer",{get:function(){return this.layers[this.currentLayer]},set:function(a){a!==this.currentLayer&&this.setLayer(a)}}),c.TilemapLayer=function(a,b,d,e,f){e|=0,f|=0,c.Sprite.call(this,a,0,0),this.map=b,this.index=d,this.layer=b.layers[d],this.canvas=c.Canvas.create(e,f),this.context=this.canvas.getContext("2d"),this.setTexture(new PIXI.Texture(new PIXI.BaseTexture(this.canvas))),this.type=c.TILEMAPLAYER,this.physicsType=c.TILEMAPLAYER,this.renderSettings={enableScrollDelta:!1,overdrawRatio:.2,copyCanvas:null},this.debug=!1,this.exists=!0,this.debugSettings={missingImageFill:"rgb(255,255,255)",debuggedTileOverfill:"rgba(0,255,0,0.4)",forceFullRedraw:!0,debugAlpha:.5,facingEdgeStroke:"rgba(0,255,0,1)",collidingTileOverfill:"rgba(0,255,0,0.2)"},this.scrollFactorX=1,this.scrollFactorY=1,this.dirty=!0,this.rayStepRate=4,this._wrap=!1,this._mc={scrollX:0,scrollY:0,renderWidth:0,renderHeight:0,tileWidth:b.tileWidth,tileHeight:b.tileHeight,cw:b.tileWidth,ch:b.tileHeight,tilesets:[]},this._scrollX=0,this._scrollY=0,this._results=[],a.device.canvasBitBltShift||(this.renderSettings.copyCanvas=c.TilemapLayer.ensureSharedCopyCanvas()),this.fixedToCamera=!0},c.TilemapLayer.prototype=Object.create(c.Sprite.prototype),c.TilemapLayer.prototype.constructor=c.TilemapLayer,c.TilemapLayer.prototype.preUpdateCore=c.Component.Core.preUpdate,c.TilemapLayer.sharedCopyCanvas=null,c.TilemapLayer.ensureSharedCopyCanvas=function(){return this.sharedCopyCanvas||(this.sharedCopyCanvas=c.Canvas.create(2,2)),this.sharedCopyCanvas},c.TilemapLayer.prototype.preUpdate=function(){return this.preUpdateCore()},c.TilemapLayer.prototype.postUpdate=function(){c.Component.FixedToCamera.postUpdate.call(this);var a=this.game.camera;this.scrollX=a.x*this.scrollFactorX/this.scale.x,this.scrollY=a.y*this.scrollFactorY/this.scale.y,this.render()},c.TilemapLayer.prototype.resize=function(a,b){this.canvas.width=a,this.canvas.height=b,this.texture.frame.resize(a,b),this.texture.width=a,this.texture.height=b,this.texture.crop.width=a,this.texture.crop.height=b,this.texture.baseTexture.width=a,this.texture.baseTexture.height=b,this.texture.baseTexture.dirty(),this.texture.requiresUpdate=!0,this.texture._updateUvs(),this.dirty=!0},c.TilemapLayer.prototype.resizeWorld=function(){this.game.world.setBounds(0,0,this.layer.widthInPixels*this.scale.x,this.layer.heightInPixels*this.scale.y)},c.TilemapLayer.prototype._fixX=function(a){return 0>a&&(a=0),1===this.scrollFactorX?a:this._scrollX+(a-this._scrollX/this.scrollFactorX)},c.TilemapLayer.prototype._unfixX=function(a){return 1===this.scrollFactorX?a:this._scrollX/this.scrollFactorX+(a-this._scrollX)},c.TilemapLayer.prototype._fixY=function(a){return 0>a&&(a=0),1===this.scrollFactorY?a:this._scrollY+(a-this._scrollY/this.scrollFactorY)},c.TilemapLayer.prototype._unfixY=function(a){return 1===this.scrollFactorY?a:this._scrollY/this.scrollFactorY+(a-this._scrollY)},c.TilemapLayer.prototype.getTileX=function(a){return Math.floor(this._fixX(a)/this._mc.tileWidth)},c.TilemapLayer.prototype.getTileY=function(a){return Math.floor(this._fixY(a)/this._mc.tileHeight)},c.TilemapLayer.prototype.getTileXY=function(a,b,c){return c.x=this.getTileX(a),c.y=this.getTileY(b),c},c.TilemapLayer.prototype.getRayCastTiles=function(a,b,c,d){b||(b=this.rayStepRate),void 0===c&&(c=!1),void 0===d&&(d=!1);var e=this.getTiles(a.x,a.y,a.width,a.height,c,d);if(0===e.length)return[];for(var f=a.coordinatesOnLine(b),g=[],h=0;hl;l++)for(var m=h;h+j>m;m++){var n=this.layer.data[l];n&&n[m]&&(g||n[m].isInteresting(e,f))&&this._results.push(n[m])}return this._results.slice()},c.TilemapLayer.prototype.resolveTileset=function(a){var b=this._mc.tilesets;if(2e3>a)for(;b.lengthb&&(g=-b,i=0),0>c&&(h=-c,j=0);var k=this.renderSettings.copyCanvas;if(k){(k.width=c&&(c=Math.max(0,c),e=Math.min(h-1,e)),f>=d&&(d=Math.max(0,d),f=Math.min(i-1,f)));var n,o,p,q,r,s,t=c*j-a,u=d*k-b,v=(c+(1<<20)*h)%h,w=(d+(1<<20)*i)%i;for(g.fillStyle=this.tileColor,q=w,s=f-d,o=u;s>=0;q++,s--,o+=k){q>=i&&(q-=i);var x=this.layer.data[q];for(p=v,r=e-c,n=t;r>=0;p++,r--,n+=j){p>=h&&(p-=h);var y=x[p];if(y&&!(y.index<0)){var z=y.index,A=l[z];void 0===A&&(A=this.resolveTileset(z)),y.alpha===m||this.debug||(g.globalAlpha=y.alpha,m=y.alpha),A?y.rotation||y.flipped?(g.save(),g.translate(n+y.centerX,o+y.centerY),g.rotate(y.rotation),y.flipped&&g.scale(-1,1),A.draw(g,-y.centerX,-y.centerY,z),g.restore()):A.draw(g,n,o,z):this.debugSettings.missingImageFill&&(g.fillStyle=this.debugSettings.missingImageFill,g.fillRect(n,o,j,k)),y.debug&&this.debugSettings.debuggedTileOverfill&&(g.fillStyle=this.debugSettings.debuggedTileOverfill,g.fillRect(n,o,j,k))}}}},c.TilemapLayer.prototype.renderDeltaScroll=function(a,b){var c=this._mc.scrollX,d=this._mc.scrollY,e=this.canvas.width,f=this.canvas.height,g=this._mc.tileWidth,h=this._mc.tileHeight,i=0,j=-g,k=0,l=-h;if(0>a?(i=e+a,j=e-1):a>0&&(j=a),0>b?(k=f+b,l=f-1):b>0&&(l=b),this.shiftCanvas(this.context,a,b),i=Math.floor((i+c)/g),j=Math.floor((j+c)/g),k=Math.floor((k+d)/h),l=Math.floor((l+d)/h),j>=i){this.context.clearRect(i*g-c,0,(j-i+1)*g,f);var m=Math.floor((0+d)/h),n=Math.floor((f-1+d)/h);this.renderRegion(c,d,i,m,j,n)}if(l>=k){this.context.clearRect(0,k*h-d,e,(l-k+1)*h);var o=Math.floor((0+c)/g),p=Math.floor((e-1+c)/g);this.renderRegion(c,d,o,k,p,l)}},c.TilemapLayer.prototype.renderFull=function(){var a=this._mc.scrollX,b=this._mc.scrollY,c=this.canvas.width,d=this.canvas.height,e=this._mc.tileWidth,f=this._mc.tileHeight,g=Math.floor(a/e),h=Math.floor((c-1+a)/e),i=Math.floor(b/f),j=Math.floor((d-1+b)/f); -this.context.clearRect(0,0,c,d),this.renderRegion(a,b,g,i,h,j)},c.TilemapLayer.prototype.render=function(){var a=!1;if(this.visible){this.context.save(),(this.dirty||this.layer.dirty)&&(this.layer.dirty=!1,a=!0);var b=this.canvas.width,c=this.canvas.height,d=0|this._scrollX,e=0|this._scrollY,f=this._mc,g=f.scrollX-d,h=f.scrollY-e;if(a||0!==g||0!==h||f.renderWidth!==b||f.renderHeight!==c)return f.scrollX=d,f.scrollY=e,(f.renderWidth!==b||f.renderHeight!==c)&&(f.renderWidth=b,f.renderHeight=c),this.debug&&(this.context.globalAlpha=this.debugSettings.debugAlpha,this.debugSettings.forceFullRedraw&&(a=!0)),!a&&this.renderSettings.enableScrollDelta&&Math.abs(g)+Math.abs(h)=0;d++,f--,b+=o){d>=m&&(d-=m);var x=this.layer.data[d];for(c=v,e=q-p,a=t;e>=0;c++,e--,a+=n){c>=l&&(c-=l);var y=x[c];!y||y.index<0||!y.collides||(this.debugSettings.collidingTileOverfill&&(i.fillStyle=this.debugSettings.collidingTileOverfill,i.fillRect(a,b,this._mc.cw,this._mc.ch)),this.debugSettings.facingEdgeStroke&&(i.beginPath(),y.faceTop&&(i.moveTo(a,b),i.lineTo(a+this._mc.cw,b)),y.faceBottom&&(i.moveTo(a,b+this._mc.ch),i.lineTo(a+this._mc.cw,b+this._mc.ch)),y.faceLeft&&(i.moveTo(a,b),i.lineTo(a,b+this._mc.ch)),y.faceRight&&(i.moveTo(a+this._mc.cw,b),i.lineTo(a+this._mc.cw,b+this._mc.ch)),i.stroke()))}}},Object.defineProperty(c.TilemapLayer.prototype,"wrap",{get:function(){return this._wrap},set:function(a){this._wrap=a,this.dirty=!0}}),Object.defineProperty(c.TilemapLayer.prototype,"scrollX",{get:function(){return this._scrollX},set:function(a){this._scrollX=a}}),Object.defineProperty(c.TilemapLayer.prototype,"scrollY",{get:function(){return this._scrollY},set:function(a){this._scrollY=a}}),Object.defineProperty(c.TilemapLayer.prototype,"collisionWidth",{get:function(){return this._mc.cw},set:function(a){this._mc.cw=0|a,this.dirty=!0}}),Object.defineProperty(c.TilemapLayer.prototype,"collisionHeight",{get:function(){return this._mc.ch},set:function(a){this._mc.ch=0|a,this.dirty=!0}}),c.TilemapParser={parse:function(a,b,d,e,f,g){if(void 0===d&&(d=32),void 0===e&&(e=32),void 0===f&&(f=10),void 0===g&&(g=10),void 0===b)return this.getEmptyData();if(null===b)return this.getEmptyData(d,e,f,g);var h=a.cache.getTilemapData(b);if(h){if(h.format===c.Tilemap.CSV)return this.parseCSV(b,h.data,d,e);if(!h.format||h.format===c.Tilemap.TILED_JSON)return this.parseTiledJSON(h.data)}else console.warn("Phaser.TilemapParser.parse - No map data found for key "+b)},parseCSV:function(a,b,d,e){var f=this.getEmptyData();b=b.trim();for(var g=[],h=b.split("\n"),i=h.length,j=0,k=0;ko;o++){if(h=0,i=!1,k=a.layers[f].data[o],k>536870912)switch(j=0,k>2147483648&&(k-=2147483648,j+=4),k>1073741824&&(k-=1073741824,j+=2),k>536870912&&(k-=536870912,j+=1),j){case 5:h=Math.PI/2;break;case 6:h=Math.PI;break;case 3:h=3*Math.PI/2;break;case 4:h=0,i=!0;break;case 7:h=Math.PI/2,i=!0;break;case 2:h=Math.PI,i=!0;break;case 1:h=3*Math.PI/2,i=!0}k>0?(m.push(new c.Tile(g,k,l,n.length,a.tilewidth,a.tileheight)),m[m.length-1].rotation=h,m[m.length-1].flipped=i):m.push(new c.Tile(g,-1,l,n.length,a.tilewidth,a.tileheight)),l++,l===a.layers[f].width&&(n.push(m),l=0,m=[])}g.data=n,e.push(g)}d.layers=e;for(var q=[],f=0;fz;z++)if(a.layers[f].objects[z].gid){var A={gid:a.layers[f].objects[z].gid,name:a.layers[f].objects[z].name,type:a.layers[f].objects[z].hasOwnProperty("type")?a.layers[f].objects[z].type:"",x:a.layers[f].objects[z].x,y:a.layers[f].objects[z].y,visible:a.layers[f].objects[z].visible,properties:a.layers[f].objects[z].properties};a.layers[f].objects[z].rotation&&(A.rotation=a.layers[f].objects[z].rotation),x[a.layers[f].name].push(A)}else if(a.layers[f].objects[z].polyline){var A={name:a.layers[f].objects[z].name,type:a.layers[f].objects[z].type,x:a.layers[f].objects[z].x,y:a.layers[f].objects[z].y,width:a.layers[f].objects[z].width,height:a.layers[f].objects[z].height,visible:a.layers[f].objects[z].visible,properties:a.layers[f].objects[z].properties};a.layers[f].objects[z].rotation&&(A.rotation=a.layers[f].objects[z].rotation),A.polyline=[];for(var B=0;B=c)&&(c=32),(void 0===d||0>=d)&&(d=32),void 0===e&&(e=0),void 0===f&&(f=0),this.name=a,this.firstgid=0|b,this.tileWidth=0|c,this.tileHeight=0|d,this.tileMargin=0|e,this.tileSpacing=0|f,this.properties=g||{},this.image=null,this.rows=0,this.columns=0,this.total=0,this.drawCoords=[]},c.Tileset.prototype={draw:function(a,b,c,d){var e=d-this.firstgid<<1;e>=0&&e+1=this.firstgid&&a=this._timer)if(this._timer=this.game.time.time+this.frequency*this.game.time.slowMotion,0!==this._flowTotal)if(this._flowQuantity>0){for(var a=0;a=this._flowTotal)){this.on=!1;break}}else this.emitParticle()&&(this._counter++,-1!==this._flowTotal&&this._counter>=this._flowTotal&&(this.on=!1));else this.emitParticle()&&(this._counter++,this._quantity>0&&this._counter>=this._quantity&&(this.on=!1));for(var a=this.children.length;a--;)this.children[a].exists&&this.children[a].update()},c.Particles.Arcade.Emitter.prototype.makeParticles=function(a,b,c,d,e){void 0===b&&(b=0),void 0===c&&(c=this.maxParticles),void 0===d&&(d=!1),void 0===e&&(e=!1);var f,g=0,h=a,i=b;for(this._frames=b,c>this.maxParticles&&(this.maxParticles=c);c>g;)Array.isArray(a)&&(h=this.game.rnd.pick(a)),Array.isArray(b)&&(i=this.game.rnd.pick(b)),f=new this.particleClass(this.game,0,0,h,i),this.game.physics.arcade.enable(f,!1),d?(f.body.checkCollision.any=!0,f.body.checkCollision.none=!1):f.body.checkCollision.none=!0,f.body.collideWorldBounds=e,f.body.skipQuadTree=!0,f.exists=!1,f.visible=!1,f.anchor.copyFrom(this.particleAnchor),this.add(f),g++;return this},c.Particles.Arcade.Emitter.prototype.kill=function(){this.on=!1,this.alive=!1,this.exists=!1},c.Particles.Arcade.Emitter.prototype.revive=function(){this.alive=!0,this.exists=!0},c.Particles.Arcade.Emitter.prototype.explode=function(a,b){this._flowTotal=0,this.start(!0,a,0,b,!1)},c.Particles.Arcade.Emitter.prototype.flow=function(a,b,c,d,e){(void 0===c||0===c)&&(c=1),void 0===d&&(d=-1),void 0===e&&(e=!0),c>this.maxParticles&&(c=this.maxParticles),this._counter=0,this._flowQuantity=c,this._flowTotal=d,e?(this.start(!0,a,b,c),this._counter+=c,this.on=!0,this._timer=this.game.time.time+b*this.game.time.slowMotion):this.start(!1,a,b,c)},c.Particles.Arcade.Emitter.prototype.start=function(a,b,c,d,e){if(void 0===a&&(a=!0),void 0===b&&(b=0),(void 0===c||null===c)&&(c=250),void 0===d&&(d=0),void 0===e&&(e=!1),d>this.maxParticles&&(d=this.maxParticles),this.revive(),this.visible=!0,this.lifespan=b,this.frequency=c,a||e)for(var f=0;d>f;f++)this.emitParticle();else this.on=!0,this._quantity+=d,this._counter=0,this._timer=this.game.time.time+c*this.game.time.slowMotion},c.Particles.Arcade.Emitter.prototype.emitParticle=function(){var a=this.getFirstExists(!1);return null===a?!1:(this.width>1||this.height>1?a.reset(this.game.rnd.integerInRange(this.left,this.right),this.game.rnd.integerInRange(this.top,this.bottom)):a.reset(this.emitX,this.emitY),a.angle=0,a.lifespan=this.lifespan,this.particleBringToTop?this.bringToTop(a):this.particleSendToBack&&this.sendToBack(a),this.autoScale?a.setScaleData(this.scaleData):1!==this.minParticleScale||1!==this.maxParticleScale?a.scale.set(this.game.rnd.realInRange(this.minParticleScale,this.maxParticleScale)):(this._minParticleScale.x!==this._maxParticleScale.x||this._minParticleScale.y!==this._maxParticleScale.y)&&a.scale.set(this.game.rnd.realInRange(this._minParticleScale.x,this._maxParticleScale.x),this.game.rnd.realInRange(this._minParticleScale.y,this._maxParticleScale.y)),a.frame=Array.isArray("object"===this._frames)?this.game.rnd.pick(this._frames):this._frames,this.autoAlpha?a.setAlphaData(this.alphaData):a.alpha=this.game.rnd.realInRange(this.minParticleAlpha,this.maxParticleAlpha),a.blendMode=this.blendMode,a.body.updateBounds(),a.body.bounce.setTo(this.bounce.x,this.bounce.y),a.body.velocity.x=this.game.rnd.between(this.minParticleSpeed.x,this.maxParticleSpeed.x),a.body.velocity.y=this.game.rnd.between(this.minParticleSpeed.y,this.maxParticleSpeed.y),a.body.angularVelocity=this.game.rnd.between(this.minRotation,this.maxRotation),a.body.gravity.y=this.gravity,a.body.drag.x=this.particleDrag.x,a.body.drag.y=this.particleDrag.y,a.body.angularDrag=this.angularDrag,a.onEmit(),!0)},c.Particles.Arcade.Emitter.prototype.destroy=function(){this.game.particles.remove(this),c.Group.prototype.destroy.call(this,!0,!1)},c.Particles.Arcade.Emitter.prototype.setSize=function(a,b){this.area.width=a,this.area.height=b},c.Particles.Arcade.Emitter.prototype.setXSpeed=function(a,b){a=a||0,b=b||0,this.minParticleSpeed.x=a,this.maxParticleSpeed.x=b},c.Particles.Arcade.Emitter.prototype.setYSpeed=function(a,b){a=a||0,b=b||0,this.minParticleSpeed.y=a,this.maxParticleSpeed.y=b},c.Particles.Arcade.Emitter.prototype.setRotation=function(a,b){a=a||0,b=b||0,this.minRotation=a,this.maxRotation=b},c.Particles.Arcade.Emitter.prototype.setAlpha=function(a,b,d,e,f){if(void 0===a&&(a=1),void 0===b&&(b=1),void 0===d&&(d=0),void 0===e&&(e=c.Easing.Linear.None),void 0===f&&(f=!1),this.minParticleAlpha=a,this.maxParticleAlpha=b,this.autoAlpha=!1,d>0&&a!==b){var g={v:a},h=this.game.make.tween(g).to({v:b},d,e);h.yoyo(f),this.alphaData=h.generateData(60),this.alphaData.reverse(),this.autoAlpha=!0}},c.Particles.Arcade.Emitter.prototype.setScale=function(a,b,d,e,f,g,h){if(void 0===a&&(a=1),void 0===b&&(b=1),void 0===d&&(d=1),void 0===e&&(e=1),void 0===f&&(f=0),void 0===g&&(g=c.Easing.Linear.None),void 0===h&&(h=!1),this.minParticleScale=1,this.maxParticleScale=1,this._minParticleScale.set(a,d),this._maxParticleScale.set(b,e),this.autoScale=!1,f>0&&(a!==b||d!==e)){var i={x:a,y:d},j=this.game.make.tween(i).to({x:b,y:e},f,g);j.yoyo(h),this.scaleData=j.generateData(60),this.scaleData.reverse(),this.autoScale=!0}},c.Particles.Arcade.Emitter.prototype.at=function(a){a.center?(this.emitX=a.center.x,this.emitY=a.center.y):(this.emitX=a.world.x+a.anchor.x*a.width,this.emitY=a.world.y+a.anchor.y*a.height)},Object.defineProperty(c.Particles.Arcade.Emitter.prototype,"width",{get:function(){return this.area.width},set:function(a){this.area.width=a}}),Object.defineProperty(c.Particles.Arcade.Emitter.prototype,"height",{get:function(){return this.area.height},set:function(a){this.area.height=a}}),Object.defineProperty(c.Particles.Arcade.Emitter.prototype,"x",{get:function(){return this.emitX},set:function(a){this.emitX=a}}),Object.defineProperty(c.Particles.Arcade.Emitter.prototype,"y",{get:function(){return this.emitY},set:function(a){this.emitY=a}}),Object.defineProperty(c.Particles.Arcade.Emitter.prototype,"left",{get:function(){return Math.floor(this.x-this.area.width/2)}}),Object.defineProperty(c.Particles.Arcade.Emitter.prototype,"right",{get:function(){return Math.floor(this.x+this.area.width/2)}}),Object.defineProperty(c.Particles.Arcade.Emitter.prototype,"top",{get:function(){return Math.floor(this.y-this.area.height/2)}}),Object.defineProperty(c.Particles.Arcade.Emitter.prototype,"bottom",{get:function(){return Math.floor(this.y+this.area.height/2)}}),c.Video=function(a,b,d){if(void 0===b&&(b=null),void 0===d&&(d=null),this.game=a,this.key=b,this.width=0,this.height=0,this.type=c.VIDEO,this.disableTextureUpload=!1,this.touchLocked=!1,this.onPlay=new c.Signal,this.onChangeSource=new c.Signal,this.onComplete=new c.Signal,this.onAccess=new c.Signal,this.onError=new c.Signal,this.onTimeout=new c.Signal,this.timeout=15e3,this._timeOutID=null,this.video=null,this.videoStream=null,this.isStreaming=!1,this.retryLimit=20,this.retry=0,this.retryInterval=500,this._retryID=null,this._codeMuted=!1,this._muted=!1,this._codePaused=!1,this._paused=!1,this._pending=!1,this._autoplay=!1,b&&this.game.cache.checkVideoKey(b)){var e=this.game.cache.getVideo(b);e.isBlob?this.createVideoFromBlob(e.data):this.video=e.data,this.width=this.video.videoWidth,this.height=this.video.videoHeight}else d&&this.createVideoFromURL(d,!1);this.video&&!d?(this.baseTexture=new PIXI.BaseTexture(this.video),this.baseTexture.forceLoaded(this.width,this.height)):(this.baseTexture=new PIXI.BaseTexture(PIXI.TextureCache.__default.baseTexture.source),this.baseTexture.forceLoaded(this.width,this.height)),this.texture=new PIXI.Texture(this.baseTexture),this.textureFrame=new c.Frame(0,0,0,this.width,this.height,"video"),this.texture.setFrame(this.textureFrame),this.texture.valid=!1,null!==b&&this.video&&(this.texture.valid=this.video.canplay),this.snapshot=null,c.BitmapData&&(this.snapshot=new c.BitmapData(this.game,"",this.width,this.height)),!this.game.device.cocoonJS&&(this.game.device.iOS||this.game.device.android)||window.PhaserGlobal&&window.PhaserGlobal.fakeiOSTouchLock?this.setTouchLock():e&&(e.locked=!1)},c.Video.prototype={connectToMediaStream:function(a,b){return a&&b&&(this.video=a,this.videoStream=b,this.isStreaming=!0,this.baseTexture.source=this.video,this.updateTexture(null,this.video.videoWidth,this.video.videoHeight),this.onAccess.dispatch(this)),this},startMediaStream:function(a,b,c){if(void 0===a&&(a=!1),void 0===b&&(b=null),void 0===c&&(c=null),!this.game.device.getUserMedia)return this.onError.dispatch(this,"No getUserMedia"),!1;null!==this.videoStream&&this.videoStream.stop(),this.removeVideoElement(),this.video=document.createElement("video"),this.video.setAttribute("autoplay","autoplay"),null!==b&&(this.video.width=b),null!==c&&(this.video.height=c),this._timeOutID=window.setTimeout(this.getUserMediaTimeout.bind(this),this.timeout);try{navigator.getUserMedia({audio:a,video:!0},this.getUserMediaSuccess.bind(this),this.getUserMediaError.bind(this))}catch(d){this.getUserMediaError(d)}return this},getUserMediaTimeout:function(){clearTimeout(this._timeOutID),this.onTimeout.dispatch(this)},getUserMediaError:function(a){clearTimeout(this._timeOutID),this.onError.dispatch(this,a)},getUserMediaSuccess:function(a){clearTimeout(this._timeOutID),this.videoStream=a,void 0!==this.video.mozSrcObject?this.video.mozSrcObject=a:this.video.src=window.URL&&window.URL.createObjectURL(a)||a;var b=this;this.video.onloadeddata=function(){function a(){if(c>0)if(b.video.videoWidth>0){var d=b.video.videoWidth,e=b.video.videoHeight;isNaN(b.video.videoHeight)&&(e=d/(4/3)),b.video.play(),b.isStreaming=!0,b.baseTexture.source=b.video,b.updateTexture(null,d,e),b.onAccess.dispatch(b)}else window.setTimeout(a,500);else console.warn("Unable to connect to video stream. Webcam error?");c--}var c=10;a()}},createVideoFromBlob:function(a){var b=this;return this.video=document.createElement("video"),this.video.controls=!1,this.video.setAttribute("autoplay","autoplay"),this.video.addEventListener("loadeddata",function(a){b.updateTexture(a)},!0),this.video.src=window.URL.createObjectURL(a),this.video.canplay=!0,this},createVideoFromURL:function(a,b){return void 0===b&&(b=!1),this.texture&&(this.texture.valid=!1),this.video=document.createElement("video"),this.video.controls=!1,b&&this.video.setAttribute("autoplay","autoplay"),this.video.src=a,this.video.canplay=!0,this.video.load(),this.retry=this.retryLimit,this._retryID=window.setTimeout(this.checkVideoProgress.bind(this),this.retryInterval),this.key=a,this},updateTexture:function(a,b,c){var d=!1;(void 0===b||null===b)&&(b=this.video.videoWidth,d=!0),(void 0===c||null===c)&&(c=this.video.videoHeight),this.width=b,this.height=c,this.baseTexture.source!==this.video&&(this.baseTexture.source=this.video),this.baseTexture.forceLoaded(b,c),this.texture.frame.resize(b,c),this.texture.width=b,this.texture.height=c,this.texture.valid=!0,this.snapshot&&this.snapshot.resize(b,c),d&&null!==this.key&&(this.onChangeSource.dispatch(this,b,c),this._autoplay&&(this.video.play(),this.onPlay.dispatch(this,this.loop,this.playbackRate)))},complete:function(){this.onComplete.dispatch(this)},play:function(a,b){return void 0===a&&(a=!1),void 0===b&&(b=1),this.game.sound.onMute&&(this.game.sound.onMute.add(this.setMute,this),this.game.sound.onUnMute.add(this.unsetMute,this),this.game.sound.mute&&this.setMute()),this.game.onPause.add(this.setPause,this),this.game.onResume.add(this.setResume,this),this.video.addEventListener("ended",this.complete.bind(this),!0),this.video.loop=a?"loop":"",this.video.playbackRate=b,this.touchLocked?this._pending=!0:(this._pending=!1,null!==this.key&&(4!==this.video.readyState?(this.retry=this.retryLimit,this._retryID=window.setTimeout(this.checkVideoProgress.bind(this),this.retryInterval)):this.video.addEventListener("playing",this.playHandler.bind(this),!0)),this.video.play(),this.onPlay.dispatch(this,a,b)),this},playHandler:function(){this.video.removeEventListener("playing",this.playHandler.bind(this)),this.updateTexture()},stop:function(){return this.game.sound.onMute&&(this.game.sound.onMute.remove(this.setMute,this),this.game.sound.onUnMute.remove(this.unsetMute,this)),this.game.onPause.remove(this.setPause,this),this.game.onResume.remove(this.setResume,this),this.isStreaming?(this.video.mozSrcObject?(this.video.mozSrcObject.stop(),this.video.src=null):(this.video.src="",this.videoStream.stop()),this.videoStream=null,this.isStreaming=!1):(this.video.removeEventListener("ended",this.complete.bind(this)),this.touchLocked?this._pending=!1:this.video.pause()),this},add:function(a){if(Array.isArray(a))for(var b=0;b0?this._retryID=window.setTimeout(this.checkVideoProgress.bind(this),this.retryInterval):console.warn("Phaser.Video: Unable to start downloading video in time",this.isStreaming))},setTouchLock:function(){this.game.input.touch.addTouchLockCallback(this.unlock,this),this.touchLocked=!0},unlock:function(){if(this.touchLocked=!1,this.video.play(),this.onPlay.dispatch(this,this.loop,this.playbackRate),this.key){var a=this.game.cache.getVideo(this.key);a&&!a.isBlob&&(a.locked=!1)}return!0},grab:function(a,b,c){return void 0===a&&(a=!1),void 0===b&&(b=1),void 0===c&&(c=null),null===this.snapshot?void console.warn("Video.grab cannot run because Phaser.BitmapData is unavailable"):(a&&this.snapshot.cls(),this.snapshot.copy(this.video,0,0,this.width,this.height,0,0,this.width,this.height,0,0,0,1,1,b,c),this.snapshot)},removeVideoElement:function(){if(this.video){for(this.video.parentNode&&this.video.parentNode.removeChild(this.video);this.video.hasChildNodes();)this.video.removeChild(this.video.firstChild);this.video.removeAttribute("autoplay"),this.video.removeAttribute("src"),this.video=null}},destroy:function(){this.stop(),this.removeVideoElement(),this.touchLocked&&this.game.input.touch.removeTouchLockCallback(this.unlock,this),this._retryID&&window.clearTimeout(this._retryID)}},Object.defineProperty(c.Video.prototype,"currentTime",{get:function(){return this.video?this.video.currentTime:0},set:function(a){this.video.currentTime=a}}),Object.defineProperty(c.Video.prototype,"duration",{get:function(){return this.video?this.video.duration:0}}),Object.defineProperty(c.Video.prototype,"progress",{get:function(){return this.video?this.video.currentTime/this.video.duration:0}}),Object.defineProperty(c.Video.prototype,"mute",{get:function(){return this._muted},set:function(a){if(a=a||null){if(this._muted)return;this._codeMuted=!0,this.setMute()}else{if(!this._muted)return;this._codeMuted=!1,this.unsetMute()}}}),Object.defineProperty(c.Video.prototype,"paused",{get:function(){return this._paused},set:function(a){if(a=a||null,!this.touchLocked)if(a){if(this._paused)return;this._codePaused=!0,this.setPause()}else{if(!this._paused)return;this._codePaused=!1,this.setResume()}}}),Object.defineProperty(c.Video.prototype,"volume",{get:function(){return this.video?this.video.volume:1},set:function(a){0>a?a=0:a>1&&(a=1),this.video&&(this.video.volume=a)}}),Object.defineProperty(c.Video.prototype,"playbackRate",{get:function(){return this.video?this.video.playbackRate:1},set:function(a){this.video&&(this.video.playbackRate=a)}}),Object.defineProperty(c.Video.prototype,"loop",{get:function(){return this.video?this.video.loop:!1},set:function(a){a&&this.video?this.video.loop="loop":this.video&&(this.video.loop="")}}),Object.defineProperty(c.Video.prototype,"playing",{get:function(){return!(this.video.paused&&this.video.ended)}}),c.Video.prototype.constructor=c.Video,void 0===PIXI.blendModes&&(PIXI.blendModes=c.blendModes),void 0===PIXI.scaleModes&&(PIXI.scaleModes=c.scaleModes),void 0===PIXI.Texture.emptyTexture&&(PIXI.Texture.emptyTexture=new PIXI.Texture(new PIXI.BaseTexture)),void 0===PIXI.DisplayObject._tempMatrix&&(PIXI.DisplayObject._tempMatrix=new PIXI.Matrix),void 0===PIXI.RenderTexture.tempMatrix&&(PIXI.RenderTexture.tempMatrix=new PIXI.Matrix),void 0===PIXI.Graphics.POLY&&(PIXI.Graphics.POLY=c.POLYGON,PIXI.Graphics.RECT=c.RECTANGLE,PIXI.Graphics.CIRC=c.CIRCLE,PIXI.Graphics.ELIP=c.ELLIPSE,PIXI.Graphics.RREC=c.ROUNDEDRECTANGLE),PIXI.TextureSilentFail=!0,"undefined"!=typeof exports?("undefined"!=typeof module&&module.exports&&(exports=module.exports=c),exports.Phaser=c):"undefined"!=typeof define&&define.amd?define("Phaser",function(){return b.Phaser=c}()):b.Phaser=c}).call(this); +!function(a){if("object"==typeof exports)module.exports=a();else{var b;"undefined"!=typeof window?b=window:"undefined"!=typeof global?b=global:"undefined"!=typeof self&&(b=self),b.p2=a()}}(function(){return function a(b,c,d){function e(g,h){if(!c[g]){if(!b[g]){var i="function"==typeof require&&require;if(!h&&i)return i(g,!0);if(f)return f(g,!0);throw new Error("Cannot find module '"+g+"'")}var j=c[g]={exports:{}};b[g][0].call(j.exports,function(a){var c=b[g][1][a];return e(c?c:a)},j,j.exports,a,b,c,d)}return c[g].exports}for(var f="function"==typeof require&&require,g=0;g=0&&1>=i&&j>=0&&1>=j}},{"./Scalar":4}],2:[function(a,b){function c(){}b.exports=c,c.area=function(a,b,c){return(b[0]-a[0])*(c[1]-a[1])-(c[0]-a[0])*(b[1]-a[1])},c.left=function(a,b,d){return c.area(a,b,d)>0},c.leftOn=function(a,b,d){return c.area(a,b,d)>=0},c.right=function(a,b,d){return c.area(a,b,d)<0},c.rightOn=function(a,b,d){return c.area(a,b,d)<=0};var d=[],e=[];c.collinear=function(a,b,f,g){if(g){var h=d,i=e;h[0]=b[0]-a[0],h[1]=b[1]-a[1],i[0]=f[0]-b[0],i[1]=f[1]-b[1];var j=h[0]*i[0]+h[1]*i[1],k=Math.sqrt(h[0]*h[0]+h[1]*h[1]),l=Math.sqrt(i[0]*i[0]+i[1]*i[1]),m=Math.acos(j/(k*l));return g>m}return 0==c.area(a,b,f)},c.sqdist=function(a,b){var c=b[0]-a[0],d=b[1]-a[1];return c*c+d*d}},{}],3:[function(a,b){function c(){this.vertices=[]}function d(a,b,c,d,e){e=e||0;var f=b[1]-a[1],h=a[0]-b[0],i=f*a[0]+h*a[1],j=d[1]-c[1],k=c[0]-d[0],l=j*c[0]+k*c[1],m=f*k-j*h;return g.eq(m,0,e)?[0,0]:[(k*i-h*l)/m,(f*l-j*i)/m]}var e=a("./Line"),f=a("./Point"),g=a("./Scalar");b.exports=c,c.prototype.at=function(a){var b=this.vertices,c=b.length;return b[0>a?a%c+c:a%c]},c.prototype.first=function(){return this.vertices[0]},c.prototype.last=function(){return this.vertices[this.vertices.length-1]},c.prototype.clear=function(){this.vertices.length=0},c.prototype.append=function(a,b,c){if("undefined"==typeof b)throw new Error("From is not given!");if("undefined"==typeof c)throw new Error("To is not given!");if(b>c-1)throw new Error("lol1");if(c>a.vertices.length)throw new Error("lol2");if(0>b)throw new Error("lol3");for(var d=b;c>d;d++)this.vertices.push(a.vertices[d])},c.prototype.makeCCW=function(){for(var a=0,b=this.vertices,c=1;cb[a][0])&&(a=c);f.left(this.at(a-1),this.at(a),this.at(a+1))||this.reverse()},c.prototype.reverse=function(){for(var a=[],b=0,c=this.vertices.length;b!==c;b++)a.push(this.vertices.pop());this.vertices=a},c.prototype.isReflex=function(a){return f.right(this.at(a-1),this.at(a),this.at(a+1))};var h=[],i=[];c.prototype.canSee=function(a,b){var c,d,g=h,j=i;if(f.leftOn(this.at(a+1),this.at(a),this.at(b))&&f.rightOn(this.at(a-1),this.at(a),this.at(b)))return!1;d=f.sqdist(this.at(a),this.at(b));for(var k=0;k!==this.vertices.length;++k)if((k+1)%this.vertices.length!==a&&k!==a&&f.leftOn(this.at(a),this.at(b),this.at(k+1))&&f.rightOn(this.at(a),this.at(b),this.at(k))&&(g[0]=this.at(a),g[1]=this.at(b),j[0]=this.at(k),j[1]=this.at(k+1),c=e.lineInt(g,j),f.sqdist(this.at(a),c)a)for(var f=a;b>=f;f++)e.vertices.push(this.vertices[f]);else{for(var f=0;b>=f;f++)e.vertices.push(this.vertices[f]);for(var f=a;f0?this.slice(a):[this]},c.prototype.slice=function(a){if(0==a.length)return[this];if(a instanceof Array&&a.length&&a[0]instanceof Array&&2==a[0].length&&a[0][0]instanceof Array){for(var b=[this],c=0;cc;c++)if(e.segmentsIntersect(a[b],a[b+1],a[c],a[c+1]))return!1;for(var b=1;bh)return console.warn("quickDecomp: max level ("+h+") reached."),a;for(var x=0;xo&&(n=o,k=l,r=y))),f.left(v.at(x+1),v.at(x),v.at(y+1))&&f.rightOn(v.at(x+1),v.at(x),v.at(y))&&(l=d(v.at(x+1),v.at(x),v.at(y),v.at(y+1)),f.left(v.at(x-1),v.at(x),l)&&(o=f.sqdist(v.vertices[x],l),m>o&&(m=o,j=l,q=y)));if(r==(q+1)%this.vertices.length)l[0]=(k[0]+j[0])/2,l[1]=(k[1]+j[1])/2,e.push(l),q>x?(t.append(v,x,q+1),t.vertices.push(l),u.vertices.push(l),0!=r&&u.append(v,r,v.vertices.length),u.append(v,0,x+1)):(0!=x&&t.append(v,x,v.vertices.length),t.append(v,0,q+1),t.vertices.push(l),u.vertices.push(l),u.append(v,r,x+1));else{if(r>q&&(q+=this.vertices.length),p=Number.MAX_VALUE,r>q)return a;for(var y=r;q>=y;++y)f.leftOn(v.at(x-1),v.at(x),v.at(y))&&f.rightOn(v.at(x+1),v.at(x),v.at(y))&&(o=f.sqdist(v.at(x),v.at(y)),p>o&&(p=o,s=y%this.vertices.length));s>x?(t.append(v,x,s+1),0!=s&&u.append(v,s,w.length),u.append(v,0,x+1)):(0!=x&&t.append(v,x,w.length),t.append(v,0,s+1),u.append(v,s,x+1))}return t.vertices.length3&&c>=0;--c)f.collinear(this.at(c-1),this.at(c),this.at(c+1),a)&&(this.vertices.splice(c%this.vertices.length,1),c--,b++);return b}},{"./Line":1,"./Point":2,"./Scalar":4}],4:[function(a,b){function c(){}b.exports=c,c.eq=function(a,b,c){return c=c||0,Math.abs(a-b) (http://steffe.se)",keywords:["p2.js","p2","physics","engine","2d"],main:"./src/p2.js",engines:{node:"*"},repository:{type:"git",url:"https://github.com/schteppe/p2.js.git"},bugs:{url:"https://github.com/schteppe/p2.js/issues"},licenses:[{type:"MIT"}],devDependencies:{grunt:"^0.4.5","grunt-contrib-jshint":"^0.11.2","grunt-contrib-nodeunit":"^0.4.1","grunt-contrib-uglify":"~0.4.0","grunt-contrib-watch":"~0.5.0","grunt-browserify":"~2.0.1","grunt-contrib-concat":"^0.4.0"},dependencies:{"poly-decomp":"0.1.0"}}},{}],7:[function(a,b){function c(a){this.lowerBound=d.create(),a&&a.lowerBound&&d.copy(this.lowerBound,a.lowerBound),this.upperBound=d.create(),a&&a.upperBound&&d.copy(this.upperBound,a.upperBound)}{var d=a("../math/vec2");a("../utils/Utils")}b.exports=c;var e=d.create();c.prototype.setFromPoints=function(a,b,c,f){var g=this.lowerBound,h=this.upperBound;"number"!=typeof c&&(c=0),0!==c?d.rotate(g,a[0],c):d.copy(g,a[0]),d.copy(h,g);for(var i=Math.cos(c),j=Math.sin(c),k=1;ko;o++)l[o]>h[o]&&(h[o]=l[o]),l[o]c&&(this.lowerBound[b]=c);var d=a.upperBound[b];this.upperBound[b]i?-1:h>i?-1:h}},{"../math/vec2":30,"../utils/Utils":57}],8:[function(a,b){function c(a){this.type=a,this.result=[],this.world=null,this.boundingVolumeType=c.AABB}var d=a("../math/vec2"),e=a("../objects/Body");b.exports=c,c.AABB=1,c.BOUNDING_CIRCLE=2,c.prototype.setWorld=function(a){this.world=a},c.prototype.getCollisionPairs=function(){};var f=d.create();c.boundingRadiusCheck=function(a,b){d.sub(f,a.position,b.position);var c=d.squaredLength(f),e=a.boundingRadius+b.boundingRadius;return e*e>=c},c.aabbCheck=function(a,b){return a.getAABB().overlaps(b.getAABB())},c.prototype.boundingVolumeCheck=function(a,b){var d;switch(this.boundingVolumeType){case c.BOUNDING_CIRCLE:d=c.boundingRadiusCheck(a,b);break;case c.AABB:d=c.aabbCheck(a,b);break;default:throw new Error("Bounding volume type not recognized: "+this.boundingVolumeType)}return d},c.canCollide=function(a,b){var c=e.KINEMATIC,d=e.STATIC;return a.type===d&&b.type===d?!1:a.type===c&&b.type===d||a.type===d&&b.type===c?!1:a.type===c&&b.type===c?!1:a.sleepState===e.SLEEPING&&b.sleepState===e.SLEEPING?!1:a.sleepState===e.SLEEPING&&b.type===d||b.sleepState===e.SLEEPING&&a.type===d?!1:!0},c.NAIVE=1,c.SAP=2},{"../math/vec2":30,"../objects/Body":31}],9:[function(a,b){function c(){d.call(this,d.NAIVE)}{var d=(a("../shapes/Circle"),a("../shapes/Plane"),a("../shapes/Shape"),a("../shapes/Particle"),a("../collision/Broadphase"));a("../math/vec2")}b.exports=c,c.prototype=new d,c.prototype.constructor=c,c.prototype.getCollisionPairs=function(a){var b=a.bodies,c=this.result;c.length=0;for(var e=0,f=b.length;e!==f;e++)for(var g=b[e],h=0;e>h;h++){var i=b[h];d.canCollide(g,i)&&this.boundingVolumeCheck(g,i)&&c.push(g,i)}return c},c.prototype.aabbQuery=function(a,b,c){c=c||[];for(var d=a.bodies,e=0;e=r*n)return!1;n=r}return!0}var f=a("../math/vec2"),g=f.sub,h=f.add,i=f.dot,j=(a("../utils/Utils"),a("../utils/ContactEquationPool")),k=a("../utils/FrictionEquationPool"),l=a("../utils/TupleDictionary"),m=a("../equations/Equation"),n=(a("../equations/ContactEquation"),a("../equations/FrictionEquation"),a("../shapes/Circle")),o=a("../shapes/Convex"),p=a("../shapes/Shape"),q=(a("../objects/Body"),a("../shapes/Box"));b.exports=c;var r=f.fromValues(0,1),s=f.fromValues(0,0),t=f.fromValues(0,0),u=f.fromValues(0,0),v=f.fromValues(0,0),w=f.fromValues(0,0),x=f.fromValues(0,0),y=f.fromValues(0,0),z=f.fromValues(0,0),A=f.fromValues(0,0),B=f.fromValues(0,0),C=f.fromValues(0,0),D=f.fromValues(0,0),E=f.fromValues(0,0),F=f.fromValues(0,0),G=f.fromValues(0,0),H=f.fromValues(0,0),I=f.fromValues(0,0),J=f.fromValues(0,0),K=[],L=f.create(),M=f.create();c.prototype.bodiesOverlap=function(a,b){for(var c=L,d=M,e=0,f=a.shapes.length;e!==f;e++){var g=a.shapes[e];a.toWorldFrame(c,g.position);for(var h=0,i=b.shapes.length;h!==i;h++){var j=b.shapes[h];if(b.toWorldFrame(d,j.position),this[g.type|j.type](a,g,c,g.angle+a.angle,b,j,d,j.angle+b.angle,!0))return!0}}return!1},c.prototype.collidedLastStep=function(a,b){var c=0|a.id,d=0|b.id;return!!this.collidingBodiesLastStep.get(c,d)},c.prototype.reset=function(){this.collidingBodiesLastStep.reset();for(var a=this.contactEquations,b=a.length;b--;){var c=a[b],d=c.bodyA.id,e=c.bodyB.id;this.collidingBodiesLastStep.set(d,e,!0)}for(var f=this.contactEquations,g=this.frictionEquations,h=0;hp;p++){f.set(m,(0===p?-1:1)*b.length/2,0),f.rotate(m,m,e),f.add(m,m,c);for(var q=0;2>q;q++){f.set(n,(0===q?-1:1)*h.length/2,0),f.rotate(n,n,j),f.add(n,n,i),this.enableFrictionReduction&&(l=this.enableFriction,this.enableFriction=!1);var r=this.circleCircle(a,b,m,e,g,h,n,j,k,b.radius,h.radius);if(this.enableFrictionReduction&&(this.enableFriction=l),k&&r)return!0;o+=r}}this.enableFrictionReduction&&(l=this.enableFriction,this.enableFriction=!1);var s=R;d(s,b);var t=this.convexCapsule(a,s,c,e,g,h,i,j,k);if(this.enableFrictionReduction&&(this.enableFriction=l),k&&t)return!0;if(o+=t,this.enableFrictionReduction){var l=this.enableFriction;this.enableFriction=!1}d(s,h);var u=this.convexCapsule(g,s,i,j,a,b,c,e,k);return this.enableFrictionReduction&&(this.enableFriction=l),k&&u?!0:(o+=u,this.enableFrictionReduction&&o&&this.enableFriction&&this.frictionEquations.push(this.createFrictionFromAverage(o)),o)},c.prototype[p.LINE|p.LINE]=c.prototype.lineLine=function(a,b,c,d,e,f,g,h,i){return i?!1:0},c.prototype[p.PLANE|p.LINE]=c.prototype.planeLine=function(a,b,c,d,e,j,k,l,m){var n=s,o=t,p=u,q=v,B=w,C=x,D=y,E=z,F=A,G=K,H=0;f.set(n,-j.length/2,0),f.set(o,j.length/2,0),f.rotate(p,n,l),f.rotate(q,o,l),h(p,p,k),h(q,q,k),f.copy(n,p),f.copy(o,q),g(B,o,n),f.normalize(C,B),f.rotate90cw(F,C),f.rotate(E,r,d),G[0]=n,G[1]=o;for(var I=0;IL){if(m)return!0;var M=this.createContactEquation(a,e,b,j);H++,f.copy(M.normalA,E),f.normalize(M.normalA,M.normalA),f.scale(D,E,L),g(M.contactPointA,J,D),g(M.contactPointA,M.contactPointA,a.position),g(M.contactPointB,J,k),h(M.contactPointB,M.contactPointB,k),g(M.contactPointB,M.contactPointB,e.position),this.contactEquations.push(M),this.enableFrictionReduction||this.enableFriction&&this.frictionEquations.push(this.createFrictionFromContact(M))}}return m?!1:(this.enableFrictionReduction||H&&this.enableFriction&&this.frictionEquations.push(this.createFrictionFromAverage(H)),H)},c.prototype[p.PARTICLE|p.CAPSULE]=c.prototype.particleCapsule=function(a,b,c,d,e,f,g,h,i){return this.circleLine(a,b,c,d,e,f,g,h,i,f.radius,0)},c.prototype[p.CIRCLE|p.LINE]=c.prototype.circleLine=function(a,b,c,d,e,j,k,l,m,n,o){var n=n||0,o="undefined"!=typeof o?o:b.radius,p=s,q=t,r=u,G=v,H=w,I=x,J=y,L=z,M=A,N=B,O=C,P=D,Q=E,R=F,S=K;f.set(L,-j.length/2,0),f.set(M,j.length/2,0),f.rotate(N,L,l),f.rotate(O,M,l),h(N,N,k),h(O,O,k),f.copy(L,N),f.copy(M,O),g(I,M,L),f.normalize(J,I),f.rotate90cw(H,J),g(P,c,L);var T=i(P,H);g(G,L,k),g(Q,c,k);var U=o+n;if(Math.abs(T)W&&X>V){if(m)return!0;var Y=this.createContactEquation(a,e,b,j);return f.scale(Y.normalA,p,-1),f.normalize(Y.normalA,Y.normalA),f.scale(Y.contactPointA,Y.normalA,o),h(Y.contactPointA,Y.contactPointA,c),g(Y.contactPointA,Y.contactPointA,a.position),g(Y.contactPointB,r,k),h(Y.contactPointB,Y.contactPointB,k),g(Y.contactPointB,Y.contactPointB,e.position),this.contactEquations.push(Y),this.enableFriction&&this.frictionEquations.push(this.createFrictionFromContact(Y)),1}}S[0]=L,S[1]=M;for(var Z=0;ZQ&&(f.copy(J,D),L=Q,f.scale(A,x,Q),f.add(A,A,D),K=!0)}}if(K){if(m)return!0;var R=this.createContactEquation(a,i,b,j);return f.sub(R.normalA,J,c),f.normalize(R.normalA,R.normalA),f.scale(R.contactPointA,R.normalA,n),h(R.contactPointA,R.contactPointA,c),g(R.contactPointA,R.contactPointA,a.position),g(R.contactPointB,A,k),h(R.contactPointB,R.contactPointB,k),g(R.contactPointB,R.contactPointB,i.position),this.contactEquations.push(R),this.enableFriction&&this.frictionEquations.push(this.createFrictionFromContact(R)),1}if(n>0)for(var N=0;NQ&&(K=Q,f.scale(F,z,Q),f.add(F,F,c),f.copy(H,z),L=!0)}if(L){var R=this.createContactEquation(a,j,b,k);return f.scale(R.normalA,H,-1),f.normalize(R.normalA,R.normalA),f.set(R.contactPointA,0,0),h(R.contactPointA,R.contactPointA,c),g(R.contactPointA,R.contactPointA,a.position),g(R.contactPointB,F,l),h(R.contactPointB,R.contactPointB,l),g(R.contactPointB,R.contactPointB,j.position),this.contactEquations.push(R),this.enableFriction&&this.frictionEquations.push(this.createFrictionFromContact(R)),1}return 0},c.prototype[p.CIRCLE]=c.prototype.circleCircle=function(a,b,c,d,e,i,j,k,l,m,n){var o=s,m=m||b.radius,n=n||i.radius;g(o,c,j);var p=m+n;if(f.squaredLength(o)>Math.pow(p,2))return 0;if(l)return!0;var q=this.createContactEquation(a,e,b,i);return g(q.normalA,j,c),f.normalize(q.normalA,q.normalA),f.scale(q.contactPointA,q.normalA,m),f.scale(q.contactPointB,q.normalA,-n),h(q.contactPointA,q.contactPointA,c),g(q.contactPointA,q.contactPointA,a.position),h(q.contactPointB,q.contactPointB,j),g(q.contactPointB,q.contactPointB,e.position),this.contactEquations.push(q),this.enableFriction&&this.frictionEquations.push(this.createFrictionFromContact(q)),1},c.prototype[p.PLANE|p.CONVEX]=c.prototype[p.PLANE|p.BOX]=c.prototype.planeConvex=function(a,b,c,d,e,j,k,l,m){var n=s,o=t,p=u,q=0;f.rotate(o,r,d);for(var v=0;v!==j.vertices.length;v++){var w=j.vertices[v];if(f.rotate(n,w,l),h(n,n,k),g(p,n,c),i(p,o)<=0){if(m)return!0;q++;var x=this.createContactEquation(a,e,b,j);g(p,n,c),f.copy(x.normalA,o);var y=i(p,x.normalA);f.scale(p,x.normalA,y),g(x.contactPointB,n,e.position),g(x.contactPointA,n,p),g(x.contactPointA,x.contactPointA,a.position),this.contactEquations.push(x),this.enableFrictionReduction||this.enableFriction&&this.frictionEquations.push(this.createFrictionFromContact(x))}}return this.enableFrictionReduction&&this.enableFriction&&q&&this.frictionEquations.push(this.createFrictionFromAverage(q)),q},c.prototype[p.PARTICLE|p.PLANE]=c.prototype.particlePlane=function(a,b,c,d,e,h,j,k,l){var m=s,n=t;k=k||0,g(m,c,j),f.rotate(n,r,k);var o=i(m,n);if(o>0)return 0;if(l)return!0;var p=this.createContactEquation(e,a,h,b);return f.copy(p.normalA,n),f.scale(m,p.normalA,o),g(p.contactPointA,c,m),g(p.contactPointA,p.contactPointA,e.position),g(p.contactPointB,c,a.position),this.contactEquations.push(p),this.enableFriction&&this.frictionEquations.push(this.createFrictionFromContact(p)),1},c.prototype[p.CIRCLE|p.PARTICLE]=c.prototype.circleParticle=function(a,b,c,d,e,i,j,k,l){var m=s;if(g(m,j,c),f.squaredLength(m)>Math.pow(b.radius,2))return 0;if(l)return!0;var n=this.createContactEquation(a,e,b,i);return f.copy(n.normalA,m),f.normalize(n.normalA,n.normalA),f.scale(n.contactPointA,n.normalA,b.radius),h(n.contactPointA,n.contactPointA,c),g(n.contactPointA,n.contactPointA,a.position),g(n.contactPointB,j,e.position),this.contactEquations.push(n),this.enableFriction&&this.frictionEquations.push(this.createFrictionFromContact(n)),1};{var W=new n({radius:1}),X=f.create(),Y=f.create();f.create()}c.prototype[p.PLANE|p.CAPSULE]=c.prototype.planeCapsule=function(a,b,c,d,e,g,i,j,k){var l=X,m=Y,n=W;f.set(l,-g.length/2,0),f.rotate(l,l,j),h(l,l,i),f.set(m,g.length/2,0),f.rotate(m,m,j),h(m,m,i),n.radius=g.radius;var o;this.enableFrictionReduction&&(o=this.enableFriction,this.enableFriction=!1);var p=this.circlePlane(e,n,l,0,a,b,c,d,k),q=this.circlePlane(e,n,m,0,a,b,c,d,k);if(this.enableFrictionReduction&&(this.enableFriction=o),k)return p||q;var r=p+q;return this.enableFrictionReduction&&r&&this.frictionEquations.push(this.createFrictionFromAverage(r)),r},c.prototype[p.CIRCLE|p.PLANE]=c.prototype.circlePlane=function(a,b,c,d,e,j,k,l,m){var n=a,o=b,p=c,q=e,v=k,w=l;w=w||0;var x=s,y=t,z=u;g(x,p,v),f.rotate(y,r,w);var A=i(y,x);if(A>o.radius)return 0;if(m)return!0;var B=this.createContactEquation(q,n,j,b);return f.copy(B.normalA,y),f.scale(B.contactPointB,B.normalA,-o.radius),h(B.contactPointB,B.contactPointB,p),g(B.contactPointB,B.contactPointB,n.position),f.scale(z,B.normalA,A),g(B.contactPointA,x,z),h(B.contactPointA,B.contactPointA,v),g(B.contactPointA,B.contactPointA,q.position),this.contactEquations.push(B),this.enableFriction&&this.frictionEquations.push(this.createFrictionFromContact(B)),1},c.prototype[p.CONVEX]=c.prototype[p.CONVEX|p.BOX]=c.prototype[p.BOX]=c.prototype.convexConvex=function(a,b,d,e,j,k,l,m,n,o){var p=s,q=t,r=u,x=v,B=w,C=y,D=z,E=A,F=0,o="number"==typeof o?o:0,G=c.findSeparatingAxis(b,d,e,k,l,m,p);if(!G)return 0;g(D,l,d),i(p,D)>0&&f.scale(p,p,-1);var H=c.getClosestEdge(b,e,p,!0),I=c.getClosestEdge(k,m,p);if(-1===H||-1===I)return 0;for(var J=0;2>J;J++){var K=H,L=I,M=b,N=k,O=d,P=l,Q=e,R=m,S=a,T=j;if(0===J){var U;U=K,K=L,L=U,U=M,M=N,N=U,U=O,O=P,P=U,U=Q,Q=R,R=U,U=S,S=T,T=U}for(var V=L;L+2>V;V++){var W=N.vertices[(V+N.vertices.length)%N.vertices.length];f.rotate(q,W,R),h(q,q,P);for(var X=0,Y=K-1;K+2>Y;Y++){var Z=M.vertices[(Y+M.vertices.length)%M.vertices.length],$=M.vertices[(Y+1+M.vertices.length)%M.vertices.length];f.rotate(r,Z,Q),f.rotate(x,$,Q),h(r,r,O),h(x,x,O),g(B,x,r),f.rotate90cw(E,B),f.normalize(E,E),g(D,q,r);var _=i(E,D);(Y===K&&o>=_||Y!==K&&0>=_)&&X++}if(X>=3){if(n)return!0;var ab=this.createContactEquation(S,T,M,N);F++;var Z=M.vertices[K%M.vertices.length],$=M.vertices[(K+1)%M.vertices.length];f.rotate(r,Z,Q),f.rotate(x,$,Q),h(r,r,O),h(x,x,O),g(B,x,r),f.rotate90cw(ab.normalA,B),f.normalize(ab.normalA,ab.normalA),g(D,q,r);var _=i(ab.normalA,D);f.scale(C,ab.normalA,_),g(ab.contactPointA,q,O),g(ab.contactPointA,ab.contactPointA,C),h(ab.contactPointA,ab.contactPointA,O),g(ab.contactPointA,ab.contactPointA,S.position),g(ab.contactPointB,q,P),h(ab.contactPointB,ab.contactPointB,P),g(ab.contactPointB,ab.contactPointB,T.position),this.contactEquations.push(ab),this.enableFrictionReduction||this.enableFriction&&this.frictionEquations.push(this.createFrictionFromContact(ab))}}}return this.enableFrictionReduction&&this.enableFriction&&F&&this.frictionEquations.push(this.createFrictionFromAverage(F)),F};var Z=f.fromValues(0,0);c.projectConvexOntoAxis=function(a,b,c,d,e){var g,h,j=null,k=null,l=Z;f.rotate(l,d,-c);for(var m=0;mj)&&(j=h),(null===k||k>h)&&(k=h);if(k>j){var n=k;k=j,j=n}var o=i(b,d);f.set(e,k+o,j+o)};var $=f.fromValues(0,0),_=f.fromValues(0,0),ab=f.fromValues(0,0),bb=f.fromValues(0,0),cb=f.fromValues(0,0),db=f.fromValues(0,0);c.findSeparatingAxis=function(a,b,d,e,h,i,j){var k=null,l=!1,m=!1,n=$,o=_,p=ab,r=bb,s=cb,t=db;if(a instanceof q&&e instanceof q)for(var u=0;2!==u;u++){var v=a,w=d;1===u&&(v=e,w=i);for(var x=0;2!==x;x++){0===x?f.set(r,0,1):1===x&&f.set(r,1,0),0!==w&&f.rotate(r,r,w),c.projectConvexOntoAxis(a,b,d,r,s),c.projectConvexOntoAxis(e,h,i,r,t);var y=s,z=t,A=!1;s[0]>t[0]&&(z=s,y=t,A=!0);var B=z[0]-y[1];l=0>=B,(null===k||B>k)&&(f.copy(j,r),k=B,m=l)}}else for(var u=0;2!==u;u++){var v=a,w=d;1===u&&(v=e,w=i);for(var x=0;x!==v.vertices.length;x++){f.rotate(o,v.vertices[x],w),f.rotate(p,v.vertices[(x+1)%v.vertices.length],w),g(n,p,o),f.rotate90cw(r,n),f.normalize(r,r),c.projectConvexOntoAxis(a,b,d,r,s),c.projectConvexOntoAxis(e,h,i,r,t);var y=s,z=t,A=!1;s[0]>t[0]&&(z=s,y=t,A=!0);var B=z[0]-y[1];l=0>=B,(null===k||B>k)&&(f.copy(j,r),k=B,m=l)}}return m};var eb=f.fromValues(0,0),fb=f.fromValues(0,0),gb=f.fromValues(0,0);c.getClosestEdge=function(a,b,c,d){var e=eb,h=fb,j=gb;f.rotate(e,c,-b),d&&f.scale(e,e,-1);for(var k=-1,l=a.vertices.length,m=-1,n=0;n!==l;n++){g(h,a.vertices[(n+1)%l],a.vertices[n%l]),f.rotate90cw(j,h),f.normalize(j,j);var o=i(j,e);(-1===k||o>m)&&(k=n%l,m=o)}return k};var hb=f.create(),ib=f.create(),jb=f.create(),kb=f.create(),lb=f.create(),mb=f.create(),nb=f.create();c.prototype[p.CIRCLE|p.HEIGHTFIELD]=c.prototype.circleHeightfield=function(a,b,c,d,e,i,j,k,l,m){var n=i.heights,m=m||b.radius,o=i.elementWidth,p=ib,q=hb,r=lb,s=nb,t=mb,u=jb,v=kb,w=Math.floor((c[0]-m-j[0])/o),x=Math.ceil((c[0]+m-j[0])/o);0>w&&(w=0),x>=n.length&&(x=n.length-1);for(var y=n[w],z=n[x],A=w;x>A;A++)n[A]y&&(y=n[A]);if(c[1]-m>y)return l?!1:0;for(var B=!1,A=w;x>A;A++){f.set(u,A*o,n[A]),f.set(v,(A+1)*o,n[A+1]),f.add(u,u,j),f.add(v,v,j),f.sub(t,v,u),f.rotate(t,t,Math.PI/2),f.normalize(t,t),f.scale(q,t,-m),f.add(q,q,c),f.sub(p,q,u);var C=f.dot(p,t);if(q[0]>=u[0]&&q[0]=C){if(l)return!0;B=!0,f.scale(p,t,-C),f.add(r,q,p),f.copy(s,t);var D=this.createContactEquation(e,a,i,b);f.copy(D.normalA,s),f.scale(D.contactPointB,D.normalA,-m),h(D.contactPointB,D.contactPointB,c),g(D.contactPointB,D.contactPointB,a.position),f.copy(D.contactPointA,r),f.sub(D.contactPointA,D.contactPointA,e.position),this.contactEquations.push(D),this.enableFriction&&this.frictionEquations.push(this.createFrictionFromContact(D))}}if(B=!1,m>0)for(var A=w;x>=A;A++)if(f.set(u,A*o,n[A]),f.add(u,u,j),f.sub(p,c,u),f.squaredLength(p)q&&(q=0),r>=k.length&&(r=k.length-1);for(var s=k[q],t=k[r],u=q;r>u;u++)k[u]s&&(s=k[u]);if(a.aabb.lowerBound[1]>s)return j?!1:0;for(var v=0,u=q;r>u;u++){f.set(m,u*l,k[u]),f.set(n,(u+1)*l,k[u+1]),f.add(m,m,h),f.add(n,n,h);var w=100;f.set(o,.5*(n[0]+m[0]),.5*(n[1]+m[1]-w)),f.sub(p.vertices[0],n,o),f.sub(p.vertices[1],m,o),f.copy(p.vertices[2],p.vertices[1]),f.copy(p.vertices[3],p.vertices[0]),p.vertices[2][1]-=w,p.vertices[3][1]-=w,v+=this.convexConvex(a,b,c,d,e,p,o,0,j)}return v}},{"../equations/ContactEquation":21,"../equations/Equation":22,"../equations/FrictionEquation":23,"../math/vec2":30,"../objects/Body":31,"../shapes/Box":37,"../shapes/Circle":39,"../shapes/Convex":40,"../shapes/Shape":45,"../utils/ContactEquationPool":48,"../utils/FrictionEquationPool":49,"../utils/TupleDictionary":56,"../utils/Utils":57}],11:[function(a,b){function c(a){a=a||{},this.from=a.from?e.fromValues(a.from[0],a.from[1]):e.create(),this.to=a.to?e.fromValues(a.to[0],a.to[1]):e.create(),this.checkCollisionResponse=void 0!==a.checkCollisionResponse?a.checkCollisionResponse:!0,this.skipBackfaces=!!a.skipBackfaces,this.collisionMask=void 0!==a.collisionMask?a.collisionMask:-1,this.collisionGroup=void 0!==a.collisionGroup?a.collisionGroup:-1,this.mode=void 0!==a.mode?a.mode:c.ANY,this.callback=a.callback||function(){},this.direction=e.create(),this.length=1,this.update()}function d(a,b,c){e.sub(g,c,a);var d=e.dot(g,b);return e.scale(h,b,d),e.add(h,h,a),e.squaredDistance(c,h)}b.exports=c;{var e=a("../math/vec2");a("../collision/RaycastResult"),a("../shapes/Shape"),a("../collision/AABB")}c.prototype.constructor=c,c.CLOSEST=1,c.ANY=2,c.ALL=4,c.prototype.update=function(){var a=this.direction;e.sub(a,this.to,this.from),this.length=e.length(a),e.normalize(a,a)},c.prototype.intersectBodies=function(a,b){for(var c=0,d=b.length;!a.shouldStop(this)&&d>c;c++){var e=b[c],f=e.getAABB();(f.overlapsRay(this)>=0||f.containsPoint(this.from))&&this.intersectBody(a,e)}};var f=e.create();c.prototype.intersectBody=function(a,b){var c=this.checkCollisionResponse;if(!c||b.collisionResponse)for(var d=f,g=0,h=b.shapes.length;h>g;g++){var i=b.shapes[g];if((!c||i.collisionResponse)&&0!==(this.collisionGroup&i.collisionMask)&&0!==(i.collisionGroup&this.collisionMask)){e.rotate(d,i.position,b.angle),e.add(d,d,b.position);var j=i.angle+b.angle;if(this.intersectShape(a,i,j,d,b),a.shouldStop(this))break}}},c.prototype.intersectShape=function(a,b,c,e,f){var g=this.from,h=d(g,this.direction,e);h>b.boundingRadius*b.boundingRadius||(this._currentBody=f,this._currentShape=b,b.raycast(a,this,e,c),this._currentBody=this._currentShape=null)},c.prototype.getAABB=function(a){var b=this.to,c=this.from;e.set(a.lowerBound,Math.min(b[0],c[0]),Math.min(b[1],c[1])),e.set(a.upperBound,Math.max(b[0],c[0]),Math.max(b[1],c[1]))};e.create();c.prototype.reportIntersection=function(a,b,d,f){var g=(this.from,this.to,this._currentShape),h=this._currentBody;if(!(this.skipBackfaces&&e.dot(d,this.direction)>0))switch(this.mode){case c.ALL:a.set(d,g,h,b,f),this.callback(a);break;case c.CLOSEST:(bc;c++){for(var e=a[c],f=c-1;f>=0&&!(a[f].aabb.lowerBound[b]<=e.aabb.lowerBound[b]);f--)a[f+1]=a[f];a[f+1]=e}return a},c.prototype.sortList=function(){var a=this.axisList,b=this.axisIndex;c.sortAxisList(a,b)},c.prototype.getCollisionPairs=function(){var a=this.axisList,b=this.result,c=this.axisIndex;b.length=0;for(var d=a.length;d--;){var f=a[d];f.aabbNeedsUpdate&&f.updateAABB()}this.sortList();for(var g=0,h=0|a.length;g!==h;g++)for(var i=a[g],j=g+1;h>j;j++){var k=a[j],l=k.aabb.lowerBound[c]<=i.aabb.upperBound[c];if(!l)break;e.canCollide(i,k)&&this.boundingVolumeCheck(i,k)&&b.push(i,k)}return b},c.prototype.aabbQuery=function(a,b,c){c=c||[],this.sortList();var d=this.axisIndex,e="x";1===d&&(e="y"),2===d&&(e="z");for(var f=this.axisList,g=(b.lowerBound[e],b.upperBound[e],0);gthis.upperLimit&&(g.maxForce=0,g.minForce=-this.maxForce,this.distance=this.upperLimit,l=!0),this.lowerLimitEnabled&&this.positionc)g.scale(e.normalA,i,-1),g.sub(e.contactPointA,j,h.position),g.sub(e.contactPointB,k,o.position),g.scale(n,i,c),g.add(e.contactPointA,e.contactPointA,n),-1===a.indexOf(e)&&a.push(e);else{var u=a.indexOf(e);-1!==u&&a.splice(u,1)}if(this.lowerLimitEnabled&&d>s)g.scale(f.normalA,i,1),g.sub(f.contactPointA,j,h.position),g.sub(f.contactPointB,k,o.position),g.scale(n,i,d),g.sub(f.contactPointB,f.contactPointB,n),-1===a.indexOf(f)&&a.push(f);else{var u=a.indexOf(f);-1!==u&&a.splice(u,1)}},c.prototype.enableMotor=function(){this.motorEnabled||(this.equations.push(this.motorEquation),this.motorEnabled=!0)},c.prototype.disableMotor=function(){if(this.motorEnabled){var a=this.equations.indexOf(this.motorEquation);this.equations.splice(a,1),this.motorEnabled=!1}},c.prototype.setLimits=function(a,b){"number"==typeof a?(this.lowerLimit=a,this.lowerLimitEnabled=!0):(this.lowerLimit=a,this.lowerLimitEnabled=!1),"number"==typeof b?(this.upperLimit=b,this.upperLimitEnabled=!0):(this.upperLimit=b,this.upperLimitEnabled=!1)}},{"../equations/ContactEquation":21,"../equations/Equation":22,"../equations/RotationalLockEquation":24,"../math/vec2":30,"./Constraint":14}],19:[function(a,b){function c(a,b,c){c=c||{},d.call(this,a,b,d.REVOLUTE,c);var n=this.maxForce="undefined"!=typeof c.maxForce?c.maxForce:Number.MAX_VALUE;this.pivotA=h.create(),this.pivotB=h.create(),c.worldPivot?(h.sub(this.pivotA,c.worldPivot,a.position),h.sub(this.pivotB,c.worldPivot,b.position),h.rotate(this.pivotA,this.pivotA,-a.angle),h.rotate(this.pivotB,this.pivotB,-b.angle)):(h.copy(this.pivotA,c.localPivotA),h.copy(this.pivotB,c.localPivotB));var o=this.equations=[new e(a,b,-n,n),new e(a,b,-n,n)],p=o[0],q=o[1],r=this;p.computeGq=function(){return h.rotate(i,r.pivotA,a.angle),h.rotate(j,r.pivotB,b.angle),h.add(m,b.position,j),h.sub(m,m,a.position),h.sub(m,m,i),h.dot(m,k)},q.computeGq=function(){return h.rotate(i,r.pivotA,a.angle),h.rotate(j,r.pivotB,b.angle),h.add(m,b.position,j),h.sub(m,m,a.position),h.sub(m,m,i),h.dot(m,l)},q.minForce=p.minForce=-n,q.maxForce=p.maxForce=n,this.motorEquation=new f(a,b),this.motorEnabled=!1,this.angle=0,this.lowerLimitEnabled=!1,this.upperLimitEnabled=!1,this.lowerLimit=0,this.upperLimit=0,this.upperLimitEquation=new g(a,b),this.lowerLimitEquation=new g(a,b),this.upperLimitEquation.minForce=0,this.lowerLimitEquation.maxForce=0}var d=a("./Constraint"),e=a("../equations/Equation"),f=a("../equations/RotationalVelocityEquation"),g=a("../equations/RotationalLockEquation"),h=a("../math/vec2");b.exports=c;var i=h.create(),j=h.create(),k=h.fromValues(1,0),l=h.fromValues(0,1),m=h.create();c.prototype=new d,c.prototype.constructor=c,c.prototype.setLimits=function(a,b){"number"==typeof a?(this.lowerLimit=a,this.lowerLimitEnabled=!0):(this.lowerLimit=a,this.lowerLimitEnabled=!1),"number"==typeof b?(this.upperLimit=b,this.upperLimitEnabled=!0):(this.upperLimit=b,this.upperLimitEnabled=!1)},c.prototype.update=function(){var a=this.bodyA,b=this.bodyB,c=this.pivotA,d=this.pivotB,e=this.equations,f=(e[0],e[1],e[0]),g=e[1],m=this.upperLimit,n=this.lowerLimit,o=this.upperLimitEquation,p=this.lowerLimitEquation,q=this.angle=b.angle-a.angle;if(this.upperLimitEnabled&&q>m)o.angle=m,-1===e.indexOf(o)&&e.push(o);else{var r=e.indexOf(o);-1!==r&&e.splice(r,1)}if(this.lowerLimitEnabled&&n>q)p.angle=n,-1===e.indexOf(p)&&e.push(p);else{var r=e.indexOf(p);-1!==r&&e.splice(r,1)}h.rotate(i,c,a.angle),h.rotate(j,d,b.angle),f.G[0]=-1,f.G[1]=0,f.G[2]=-h.crossLength(i,k),f.G[3]=1,f.G[4]=0,f.G[5]=h.crossLength(j,k),g.G[0]=0,g.G[1]=-1,g.G[2]=-h.crossLength(i,l),g.G[3]=0,g.G[4]=1,g.G[5]=h.crossLength(j,l)},c.prototype.enableMotor=function(){this.motorEnabled||(this.equations.push(this.motorEquation),this.motorEnabled=!0)},c.prototype.disableMotor=function(){if(this.motorEnabled){var a=this.equations.indexOf(this.motorEquation);this.equations.splice(a,1),this.motorEnabled=!1}},c.prototype.motorIsEnabled=function(){return!!this.motorEnabled},c.prototype.setMotorSpeed=function(a){if(this.motorEnabled){var b=this.equations.indexOf(this.motorEquation);this.equations[b].relativeVelocity=a}},c.prototype.getMotorSpeed=function(){return this.motorEnabled?this.motorEquation.relativeVelocity:!1}},{"../equations/Equation":22,"../equations/RotationalLockEquation":24,"../equations/RotationalVelocityEquation":25,"../math/vec2":30,"./Constraint":14}],20:[function(a,b){function c(a,b,c){c=c||{},d.call(this,a,b,-Number.MAX_VALUE,Number.MAX_VALUE),this.angle=c.angle||0,this.ratio="number"==typeof c.ratio?c.ratio:1,this.setRatio(this.ratio)}{var d=a("./Equation");a("../math/vec2")}b.exports=c,c.prototype=new d,c.prototype.constructor=c,c.prototype.computeGq=function(){return this.ratio*this.bodyA.angle-this.bodyB.angle+this.angle},c.prototype.setRatio=function(a){var b=this.G;b[2]=a,b[5]=-1,this.ratio=a},c.prototype.setMaxTorque=function(a){this.maxForce=a,this.minForce=-a}},{"../math/vec2":30,"./Equation":22}],21:[function(a,b){function c(a,b){d.call(this,a,b,0,Number.MAX_VALUE),this.contactPointA=e.create(),this.penetrationVec=e.create(),this.contactPointB=e.create(),this.normalA=e.create(),this.restitution=0,this.firstImpact=!1,this.shapeA=null,this.shapeB=null}var d=a("./Equation"),e=a("../math/vec2");b.exports=c,c.prototype=new d,c.prototype.constructor=c,c.prototype.computeB=function(a,b,c){var d=this.bodyA,f=this.bodyB,g=this.contactPointA,h=this.contactPointB,i=d.position,j=f.position,k=this.penetrationVec,l=this.normalA,m=this.G,n=e.crossLength(g,l),o=e.crossLength(h,l);m[0]=-l[0],m[1]=-l[1],m[2]=-n,m[3]=l[0],m[4]=l[1],m[5]=o,e.add(k,j,h),e.sub(k,k,i),e.sub(k,k,g);var p,q;this.firstImpact&&0!==this.restitution?(q=0,p=1/b*(1+this.restitution)*this.computeGW()):(q=e.dot(l,k)+this.offset,p=this.computeGW());var r=this.computeGiMf(),s=-q*a-p*b-c*r;return s}},{"../math/vec2":30,"./Equation":22}],22:[function(a,b){function c(a,b,d,f){this.minForce="undefined"==typeof d?-Number.MAX_VALUE:d,this.maxForce="undefined"==typeof f?Number.MAX_VALUE:f,this.bodyA=a,this.bodyB=b,this.stiffness=c.DEFAULT_STIFFNESS,this.relaxation=c.DEFAULT_RELAXATION,this.G=new e.ARRAY_TYPE(6);for(var g=0;6>g;g++)this.G[g]=0;this.offset=0,this.a=0,this.b=0,this.epsilon=0,this.timeStep=1/60,this.needsUpdate=!0,this.multiplier=0,this.relativeVelocity=0,this.enabled=!0}b.exports=c;{var d=a("../math/vec2"),e=a("../utils/Utils");a("../objects/Body")}c.prototype.constructor=c,c.DEFAULT_STIFFNESS=1e6,c.DEFAULT_RELAXATION=4,c.prototype.update=function(){var a=this.stiffness,b=this.relaxation,c=this.timeStep;this.a=4/(c*(1+4*b)),this.b=4*b/(1+4*b),this.epsilon=4/(c*c*a*(1+4*b)),this.needsUpdate=!1},c.prototype.gmult=function(a,b,c,d,e){return a[0]*b[0]+a[1]*b[1]+a[2]*c+a[3]*d[0]+a[4]*d[1]+a[5]*e},c.prototype.computeB=function(a,b,c){var d=this.computeGW(),e=this.computeGq(),f=this.computeGiMf();return-e*a-d*b-f*c};var f=d.create(),g=d.create();c.prototype.computeGq=function(){var a=this.G,b=this.bodyA,c=this.bodyB,d=(b.position,c.position,b.angle),e=c.angle;return this.gmult(a,f,d,g,e)+this.offset},c.prototype.computeGW=function(){var a=this.G,b=this.bodyA,c=this.bodyB,d=b.velocity,e=c.velocity,f=b.angularVelocity,g=c.angularVelocity;return this.gmult(a,d,f,e,g)+this.relativeVelocity},c.prototype.computeGWlambda=function(){var a=this.G,b=this.bodyA,c=this.bodyB,d=b.vlambda,e=c.vlambda,f=b.wlambda,g=c.wlambda;return this.gmult(a,d,f,e,g)};var h=d.create(),i=d.create();c.prototype.computeGiMf=function(){var a=this.bodyA,b=this.bodyB,c=a.force,e=a.angularForce,f=b.force,g=b.angularForce,j=a.invMassSolve,k=b.invMassSolve,l=a.invInertiaSolve,m=b.invInertiaSolve,n=this.G;return d.scale(h,c,j),d.multiply(h,a.massMultiplier,h),d.scale(i,f,k),d.multiply(i,b.massMultiplier,i),this.gmult(n,h,e*l,i,g*m)},c.prototype.computeGiMGt=function(){var a=this.bodyA,b=this.bodyB,c=a.invMassSolve,d=b.invMassSolve,e=a.invInertiaSolve,f=b.invInertiaSolve,g=this.G;return g[0]*g[0]*c*a.massMultiplier[0]+g[1]*g[1]*c*a.massMultiplier[1]+g[2]*g[2]*e+g[3]*g[3]*d*b.massMultiplier[0]+g[4]*g[4]*d*b.massMultiplier[1]+g[5]*g[5]*f};{var j=d.create(),k=d.create(),l=d.create();d.create(),d.create(),d.create()}c.prototype.addToWlambda=function(a){var b=this.bodyA,c=this.bodyB,e=j,f=k,g=l,h=b.invMassSolve,i=c.invMassSolve,m=b.invInertiaSolve,n=c.invInertiaSolve,o=this.G;f[0]=o[0],f[1]=o[1],g[0]=o[3],g[1]=o[4],d.scale(e,f,h*a),d.multiply(e,e,b.massMultiplier),d.add(b.vlambda,b.vlambda,e),b.wlambda+=m*o[2]*a,d.scale(e,g,i*a),d.multiply(e,e,c.massMultiplier),d.add(c.vlambda,c.vlambda,e),c.wlambda+=n*o[5]*a},c.prototype.computeInvC=function(a){return 1/(this.computeGiMGt()+a)}},{"../math/vec2":30,"../objects/Body":31,"../utils/Utils":57}],23:[function(a,b){function c(a,b,c){e.call(this,a,b,-c,c),this.contactPointA=d.create(),this.contactPointB=d.create(),this.t=d.create(),this.contactEquations=[],this.shapeA=null,this.shapeB=null,this.frictionCoefficient=.3}{var d=a("../math/vec2"),e=a("./Equation");a("../utils/Utils")}b.exports=c,c.prototype=new e,c.prototype.constructor=c,c.prototype.setSlipForce=function(a){this.maxForce=a,this.minForce=-a},c.prototype.getSlipForce=function(){return this.maxForce},c.prototype.computeB=function(a,b,c){var e=(this.bodyA,this.bodyB,this.contactPointA),f=this.contactPointB,g=this.t,h=this.G;h[0]=-g[0],h[1]=-g[1],h[2]=-d.crossLength(e,g),h[3]=g[0],h[4]=g[1],h[5]=d.crossLength(f,g);var i=this.computeGW(),j=this.computeGiMf(),k=-i*b-c*j;return k}},{"../math/vec2":30,"../utils/Utils":57,"./Equation":22}],24:[function(a,b){function c(a,b,c){c=c||{},d.call(this,a,b,-Number.MAX_VALUE,Number.MAX_VALUE),this.angle=c.angle||0;var e=this.G;e[2]=1,e[5]=-1}var d=a("./Equation"),e=a("../math/vec2");b.exports=c,c.prototype=new d,c.prototype.constructor=c;var f=e.create(),g=e.create(),h=e.fromValues(1,0),i=e.fromValues(0,1);c.prototype.computeGq=function(){return e.rotate(f,h,this.bodyA.angle+this.angle),e.rotate(g,i,this.bodyB.angle),e.dot(f,g)}},{"../math/vec2":30,"./Equation":22}],25:[function(a,b){function c(a,b){d.call(this,a,b,-Number.MAX_VALUE,Number.MAX_VALUE),this.relativeVelocity=1,this.ratio=1}{var d=a("./Equation");a("../math/vec2")}b.exports=c,c.prototype=new d,c.prototype.constructor=c,c.prototype.computeB=function(a,b,c){var d=this.G;d[2]=-1,d[5]=this.ratio;var e=this.computeGiMf(),f=this.computeGW(),g=-f*b-c*e;return g}},{"../math/vec2":30,"./Equation":22}],26:[function(a,b){var c=function(){};b.exports=c,c.prototype={constructor:c,on:function(a,b,c){b.context=c||this,void 0===this._listeners&&(this._listeners={});var d=this._listeners;return void 0===d[a]&&(d[a]=[]),-1===d[a].indexOf(b)&&d[a].push(b),this},has:function(a,b){if(void 0===this._listeners)return!1;var c=this._listeners;if(b){if(void 0!==c[a]&&-1!==c[a].indexOf(b))return!0}else if(void 0!==c[a])return!0;return!1},off:function(a,b){if(void 0===this._listeners)return this;var c=this._listeners,d=c[a].indexOf(b);return-1!==d&&c[a].splice(d,1),this},emit:function(a){if(void 0===this._listeners)return this;var b=this._listeners,c=b[a.type];if(void 0!==c){a.target=this;for(var d=0,e=c.length;e>d;d++){var f=c[d];f.call(f.context,a)}}return this}}},{}],27:[function(a,b){function c(a,b,f){if(f=f||{},!(a instanceof d&&b instanceof d))throw new Error("First two arguments must be Material instances.");this.id=c.idCounter++,this.materialA=a,this.materialB=b,this.friction="undefined"!=typeof f.friction?Number(f.friction):.3,this.restitution="undefined"!=typeof f.restitution?Number(f.restitution):0,this.stiffness="undefined"!=typeof f.stiffness?Number(f.stiffness):e.DEFAULT_STIFFNESS,this.relaxation="undefined"!=typeof f.relaxation?Number(f.relaxation):e.DEFAULT_RELAXATION,this.frictionStiffness="undefined"!=typeof f.frictionStiffness?Number(f.frictionStiffness):e.DEFAULT_STIFFNESS,this.frictionRelaxation="undefined"!=typeof f.frictionRelaxation?Number(f.frictionRelaxation):e.DEFAULT_RELAXATION,this.surfaceVelocity="undefined"!=typeof f.surfaceVelocity?Number(f.surfaceVelocity):0,this.contactSkinSize=.005}var d=a("./Material"),e=a("../equations/Equation");b.exports=c,c.idCounter=0},{"../equations/Equation":22,"./Material":28}],28:[function(a,b){function c(a){this.id=a||c.idCounter++}b.exports=c,c.idCounter=0},{}],29:[function(a,b){var c={};c.GetArea=function(a){if(a.length<6)return 0;for(var b=a.length-2,c=0,d=0;b>d;d+=2)c+=(a[d+2]-a[d])*(a[d+1]+a[d+3]);return c+=(a[0]-a[b])*(a[b+1]+a[1]),.5*-c},c.Triangulate=function(a){var b=a.length>>1;if(3>b)return[];for(var d=[],e=[],f=0;b>f;f++)e.push(f);for(var f=0,g=b;g>3;){var h=e[(f+0)%g],i=e[(f+1)%g],j=e[(f+2)%g],k=a[2*h],l=a[2*h+1],m=a[2*i],n=a[2*i+1],o=a[2*j],p=a[2*j+1],q=!1;if(c._convex(k,l,m,n,o,p)){q=!0;for(var r=0;g>r;r++){var s=e[r];if(s!=h&&s!=i&&s!=j&&c._PointInTriangle(a[2*s],a[2*s+1],k,l,m,n,o,p)){q=!1;break}}}if(q)d.push(h,i,j),e.splice((f+1)%g,1),g--,f=0;else if(f++>3*g)break}return d.push(e[0],e[1],e[2]),d},c._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},c._convex=function(a,b,c,d,e,f){return(b-d)*(e-c)+(c-a)*(f-d)>=0},b.exports=c},{}],30:[function(a,b){var c=b.exports={},d=a("../utils/Utils");c.crossLength=function(a,b){return a[0]*b[1]-a[1]*b[0]},c.crossVZ=function(a,b,d){return c.rotate(a,b,-Math.PI/2),c.scale(a,a,d),a},c.crossZV=function(a,b,d){return c.rotate(a,d,Math.PI/2),c.scale(a,a,b),a},c.rotate=function(a,b,c){if(0!==c){var d=Math.cos(c),e=Math.sin(c),f=b[0],g=b[1];a[0]=d*f-e*g,a[1]=e*f+d*g}else a[0]=b[0],a[1]=b[1]},c.rotate90cw=function(a,b){var c=b[0],d=b[1];a[0]=d,a[1]=-c},c.toLocalFrame=function(a,b,d,e){c.copy(a,b),c.sub(a,a,d),c.rotate(a,a,-e)},c.toGlobalFrame=function(a,b,d,e){c.copy(a,b),c.rotate(a,a,e),c.add(a,a,d)},c.vectorToLocalFrame=function(a,b,d){c.rotate(a,b,-d)},c.vectorToGlobalFrame=function(a,b,d){c.rotate(a,b,d)},c.centroid=function(a,b,d,e){return c.add(a,b,d),c.add(a,a,e),c.scale(a,a,1/3),a},c.create=function(){var a=new d.ARRAY_TYPE(2);return a[0]=0,a[1]=0,a},c.clone=function(a){var b=new d.ARRAY_TYPE(2);return b[0]=a[0],b[1]=a[1],b},c.fromValues=function(a,b){var c=new d.ARRAY_TYPE(2);return c[0]=a,c[1]=b,c},c.copy=function(a,b){return a[0]=b[0],a[1]=b[1],a},c.set=function(a,b,c){return a[0]=b,a[1]=c,a},c.add=function(a,b,c){return a[0]=b[0]+c[0],a[1]=b[1]+c[1],a},c.subtract=function(a,b,c){return a[0]=b[0]-c[0],a[1]=b[1]-c[1],a},c.sub=c.subtract,c.multiply=function(a,b,c){return a[0]=b[0]*c[0],a[1]=b[1]*c[1],a},c.mul=c.multiply,c.divide=function(a,b,c){return a[0]=b[0]/c[0],a[1]=b[1]/c[1],a},c.div=c.divide,c.scale=function(a,b,c){return a[0]=b[0]*c,a[1]=b[1]*c,a},c.distance=function(a,b){var c=b[0]-a[0],d=b[1]-a[1];return Math.sqrt(c*c+d*d)},c.dist=c.distance,c.squaredDistance=function(a,b){var c=b[0]-a[0],d=b[1]-a[1];return c*c+d*d},c.sqrDist=c.squaredDistance,c.length=function(a){var b=a[0],c=a[1];return Math.sqrt(b*b+c*c)},c.len=c.length,c.squaredLength=function(a){var b=a[0],c=a[1];return b*b+c*c},c.sqrLen=c.squaredLength,c.negate=function(a,b){return a[0]=-b[0],a[1]=-b[1],a},c.normalize=function(a,b){var c=b[0],d=b[1],e=c*c+d*d;return e>0&&(e=1/Math.sqrt(e),a[0]=b[0]*e,a[1]=b[1]*e),a},c.dot=function(a,b){return a[0]*b[0]+a[1]*b[1]},c.str=function(a){return"vec2("+a[0]+", "+a[1]+")"},c.lerp=function(a,b,c,d){var e=b[0],f=b[1];return a[0]=e+d*(c[0]-e),a[1]=f+d*(c[1]-f),a},c.reflect=function(a,b,c){var d=b[0]*c[0]+b[1]*c[1];a[0]=b[0]-2*c[0]*d,a[1]=b[1]-2*c[1]*d},c.getLineSegmentsIntersection=function(a,b,d,e,f){var g=c.getLineSegmentsIntersectionFraction(b,d,e,f);return 0>g?!1:(a[0]=b[0]+g*(d[0]-b[0]),a[1]=b[1]+g*(d[1]-b[1]),!0)},c.getLineSegmentsIntersectionFraction=function(a,b,c,d){var e,f,g=b[0]-a[0],h=b[1]-a[1],i=d[0]-c[0],j=d[1]-c[1];return e=(-h*(a[0]-c[0])+g*(a[1]-c[1]))/(-i*h+g*j),f=(i*(a[1]-c[1])-j*(a[0]-c[0]))/(-i*h+g*j),e>=0&&1>=e&&f>=0&&1>=f?f:-1}},{"../utils/Utils":57}],31:[function(a,b){function c(a){a=a||{},j.call(this),this.id=a.id||++c._idCounter,this.world=null,this.shapes=[],this.mass=a.mass||0,this.invMass=0,this.inertia=0,this.invInertia=0,this.invMassSolve=0,this.invInertiaSolve=0,this.fixedRotation=!!a.fixedRotation,this.fixedX=!!a.fixedX,this.fixedY=!!a.fixedY,this.massMultiplier=d.create(),this.position=d.fromValues(0,0),a.position&&d.copy(this.position,a.position),this.interpolatedPosition=d.fromValues(0,0),this.interpolatedAngle=0,this.previousPosition=d.fromValues(0,0),this.previousAngle=0,this.velocity=d.fromValues(0,0),a.velocity&&d.copy(this.velocity,a.velocity),this.vlambda=d.fromValues(0,0),this.wlambda=0,this.angle=a.angle||0,this.angularVelocity=a.angularVelocity||0,this.force=d.create(),a.force&&d.copy(this.force,a.force),this.angularForce=a.angularForce||0,this.damping="number"==typeof a.damping?a.damping:.1,this.angularDamping="number"==typeof a.angularDamping?a.angularDamping:.1,this.type=c.STATIC,this.type="undefined"!=typeof a.type?a.type:a.mass?c.DYNAMIC:c.STATIC,this.boundingRadius=0,this.aabb=new i,this.aabbNeedsUpdate=!0,this.allowSleep=void 0!==a.allowSleep?a.allowSleep:!0,this.wantsToSleep=!1,this.sleepState=c.AWAKE,this.sleepSpeedLimit=void 0!==a.sleepSpeedLimit?a.sleepSpeedLimit:.2,this.sleepTimeLimit=void 0!==a.sleepTimeLimit?a.sleepTimeLimit:1,this.gravityScale=void 0!==a.gravityScale?a.gravityScale:1,this.collisionResponse=void 0!==a.collisionResponse?a.collisionResponse:!0,this.idleTime=0,this.timeLastSleepy=0,this.ccdSpeedThreshold=void 0!==a.ccdSpeedThreshold?a.ccdSpeedThreshold:-1,this.ccdIterations=void 0!==a.ccdIterations?a.ccdIterations:10,this.concavePath=null,this._wakeUpAfterNarrowphase=!1,this.updateMassProperties() +}var d=a("../math/vec2"),e=a("poly-decomp"),f=a("../shapes/Convex"),g=a("../collision/RaycastResult"),h=a("../collision/Ray"),i=a("../collision/AABB"),j=a("../events/EventEmitter");b.exports=c,c.prototype=new j,c.prototype.constructor=c,c._idCounter=0,c.prototype.updateSolveMassProperties=function(){this.sleepState===c.SLEEPING||this.type===c.KINEMATIC?(this.invMassSolve=0,this.invInertiaSolve=0):(this.invMassSolve=this.invMass,this.invInertiaSolve=this.invInertia)},c.prototype.setDensity=function(a){var b=this.getArea();this.mass=b*a,this.updateMassProperties()},c.prototype.getArea=function(){for(var a=0,b=0;bc&&(c=g+h)}this.boundingRadius=c},c.prototype.addShape=function(a,b,c){if(a.body)throw new Error("A shape can only be added to one body.");a.body=this,b?d.copy(a.position,b):d.set(a.position,0,0),a.angle=c||0,this.shapes.push(a),this.updateMassProperties(),this.updateBoundingRadius(),this.aabbNeedsUpdate=!0},c.prototype.removeShape=function(a){var b=this.shapes.indexOf(a);return-1!==b?(this.shapes.splice(b,1),this.aabbNeedsUpdate=!0,a.body=null,!0):!1},c.prototype.updateMassProperties=function(){if(this.type===c.STATIC||this.type===c.KINEMATIC)this.mass=Number.MAX_VALUE,this.invMass=0,this.inertia=Number.MAX_VALUE,this.invInertia=0;else{var a=this.shapes,b=a.length,e=this.mass/b,f=0;if(this.fixedRotation)this.inertia=Number.MAX_VALUE,this.invInertia=0;else{for(var g=0;b>g;g++){var h=a[g],i=d.squaredLength(h.position),j=h.computeMomentOfInertia(e);f+=j+e*i}this.inertia=f,this.invInertia=f>0?1/f:0}this.invMass=1/this.mass,d.set(this.massMultiplier,this.fixedX?0:1,this.fixedY?0:1)}};d.create();c.prototype.applyForce=function(a,b){if(d.add(this.force,this.force,a),b){var c=d.crossLength(b,a);this.angularForce+=c}};var m=d.create(),n=d.create(),o=d.create();c.prototype.applyForceLocal=function(a,b){b=b||o;var c=m,d=n;this.vectorToWorldFrame(c,a),this.vectorToWorldFrame(d,b),this.applyForce(c,d)};var p=d.create();c.prototype.applyImpulse=function(a,b){if(this.type===c.DYNAMIC){var e=p;if(d.scale(e,a,this.invMass),d.multiply(e,this.massMultiplier,e),d.add(this.velocity,e,this.velocity),b){var f=d.crossLength(b,a);f*=this.invInertia,this.angularVelocity+=f}}};var q=d.create(),r=d.create(),s=d.create();c.prototype.applyImpulseLocal=function(a,b){b=b||s;var c=q,d=r;this.vectorToWorldFrame(c,a),this.vectorToWorldFrame(d,b),this.applyImpulse(c,d)},c.prototype.toLocalFrame=function(a,b){d.toLocalFrame(a,b,this.position,this.angle)},c.prototype.toWorldFrame=function(a,b){d.toGlobalFrame(a,b,this.position,this.angle)},c.prototype.vectorToLocalFrame=function(a,b){d.vectorToLocalFrame(a,b,this.angle)},c.prototype.vectorToWorldFrame=function(a,b){d.vectorToGlobalFrame(a,b,this.angle)},c.prototype.fromPolygon=function(a,b){b=b||{};for(var c=this.shapes.length;c>=0;--c)this.removeShape(this.shapes[c]);var g=new e.Polygon;if(g.vertices=a,g.makeCCW(),"number"==typeof b.removeCollinearPoints&&g.removeCollinearPoints(b.removeCollinearPoints),"undefined"==typeof b.skipSimpleCheck&&!g.isSimple())return!1;this.concavePath=g.vertices.slice(0);for(var c=0;c=g?(this.idleTime=0,this.sleepState=c.AWAKE):(this.idleTime+=e,this.sleepState=c.SLEEPY),this.idleTime>this.sleepTimeLimit&&(b?this.wantsToSleep=!0:this.sleep())}},c.prototype.overlaps=function(a){return this.world.overlapKeeper.bodiesAreOverlapping(this,a)};var w=d.create(),x=d.create();c.prototype.integrate=function(a){var b=this.invMass,c=this.force,e=this.position,f=this.velocity;d.copy(this.previousPosition,this.position),this.previousAngle=this.angle,this.fixedRotation||(this.angularVelocity+=this.angularForce*this.invInertia*a),d.scale(w,c,a*b),d.multiply(w,this.massMultiplier,w),d.add(f,w,f),this.integrateToTimeOfImpact(a)||(d.scale(x,f,a),d.add(e,e,x),this.fixedRotation||(this.angle+=this.angularVelocity*a)),this.aabbNeedsUpdate=!0};var y=new g,z=new h({mode:h.ALL}),A=d.create(),B=d.create(),C=d.create(),D=d.create();c.prototype.integrateToTimeOfImpact=function(a){if(this.ccdSpeedThreshold<0||d.squaredLength(this.velocity)=j&&ir;r++){var s=this.radius*(2*r-1);e.set(o,-q,s),e.set(p,q,s),e.toGlobalFrame(o,o,c,d),e.toGlobalFrame(p,p,c,d);var t=e.getLineSegmentsIntersectionFraction(f,l,o,p);if(t>=0&&(e.rotate(n,k,d),e.scale(n,n,2*r-1),b.reportIntersection(a,t,n,-1),a.shouldStop(b)))return}for(var u=Math.pow(this.radius,2)+Math.pow(q,2),r=0;2>r;r++){e.set(o,q*(2*r-1),0),e.toGlobalFrame(o,o,c,d);var v=Math.pow(l[0]-f[0],2)+Math.pow(l[1]-f[1],2),w=2*((l[0]-f[0])*(f[0]-o[0])+(l[1]-f[1])*(f[1]-o[1])),x=Math.pow(f[0]-o[0],2)+Math.pow(f[1]-o[1],2)-Math.pow(this.radius,2),t=Math.pow(w,2)-4*v*x;if(!(0>t))if(0===t){if(e.lerp(m,f,l,t),e.squaredDistance(m,c)>u&&(e.sub(n,m,o),e.normalize(n,n),b.reportIntersection(a,t,n,-1),a.shouldStop(b)))return}else{var y=Math.sqrt(t),z=1/(2*v),A=(-w-y)*z,B=(-w+y)*z;if(A>=0&&1>=A&&(e.lerp(m,f,l,A),e.squaredDistance(m,c)>u&&(e.sub(n,m,o),e.normalize(n,n),b.reportIntersection(a,A,n,-1),a.shouldStop(b))))return;if(B>=0&&1>=B&&(e.lerp(m,f,l,B),e.squaredDistance(m,c)>u&&(e.sub(n,m,o),e.normalize(n,n),b.reportIntersection(a,B,n,-1),a.shouldStop(b))))return}}}},{"../math/vec2":30,"./Shape":45}],39:[function(a,b){function c(a){"number"==typeof arguments[0]&&(a={radius:arguments[0]},console.warn("The Circle constructor signature has changed. Please use the following format: new Circle({ radius: 1 })")),a=a||{},this.radius=a.radius||1,a.type=d.CIRCLE,d.call(this,a)}var d=a("./Shape"),e=a("../math/vec2");b.exports=c,c.prototype=new d,c.prototype.constructor=c,c.prototype.computeMomentOfInertia=function(a){var b=this.radius;return a*b*b/2},c.prototype.updateBoundingRadius=function(){this.boundingRadius=this.radius},c.prototype.updateArea=function(){this.area=Math.PI*this.radius*this.radius},c.prototype.computeAABB=function(a,b){var c=this.radius;e.set(a.upperBound,c,c),e.set(a.lowerBound,-c,-c),b&&(e.add(a.lowerBound,a.lowerBound,b),e.add(a.upperBound,a.upperBound,b))};var f=e.create(),g=e.create();c.prototype.raycast=function(a,b,c){var d=b.from,h=b.to,i=this.radius,j=Math.pow(h[0]-d[0],2)+Math.pow(h[1]-d[1],2),k=2*((h[0]-d[0])*(d[0]-c[0])+(h[1]-d[1])*(d[1]-c[1])),l=Math.pow(d[0]-c[0],2)+Math.pow(d[1]-c[1],2)-Math.pow(i,2),m=Math.pow(k,2)-4*j*l,n=f,o=g;if(!(0>m))if(0===m)e.lerp(n,d,h,m),e.sub(o,n,c),e.normalize(o,o),b.reportIntersection(a,m,o,-1);else{var p=Math.sqrt(m),q=1/(2*j),r=(-k-p)*q,s=(-k+p)*q;if(r>=0&&1>=r&&(e.lerp(n,d,h,r),e.sub(o,n,c),e.normalize(o,o),b.reportIntersection(a,r,o,-1),a.shouldStop(b)))return;s>=0&&1>=s&&(e.lerp(n,d,h,s),e.sub(o,n,c),e.normalize(o,o),b.reportIntersection(a,s,o,-1))}}},{"../math/vec2":30,"./Shape":45}],40:[function(a,b){function c(a){Array.isArray(arguments[0])&&(a={vertices:arguments[0],axes:arguments[1]},console.warn("The Convex constructor signature has changed. Please use the following format: new Convex({ vertices: [...], ... })")),a=a||{},this.vertices=[];for(var b=void 0!==a.vertices?a.vertices:[],c=0;cf)&&(f=d),(null===h||h>d)&&(h=d);if(h>f){var j=h;h=f,f=j}e.set(b,h,f)},c.prototype.projectOntoWorldAxis=function(a,b,c,d){var f=h;this.projectOntoLocalAxis(a,d),0!==c?e.rotate(f,a,c):f=a;var g=e.dot(b,f);e.set(d,d[0]+g,d[1]+g)},c.prototype.updateTriangles=function(){this.triangles.length=0;for(var a=[],b=0;bg;f=g,g++){var h=this.vertices[f],i=this.vertices[g],j=Math.abs(e.crossLength(h,i)),k=e.dot(i,i)+e.dot(i,h)+e.dot(h,h);b+=j*k,c+=j}return a/6*(b/c)},c.prototype.updateBoundingRadius=function(){for(var a=this.vertices,b=0,c=0;c!==a.length;c++){var d=e.squaredLength(a[c]);d>b&&(b=d)}this.boundingRadius=Math.sqrt(b)},c.triangleArea=function(a,b,c){return.5*((b[0]-a[0])*(c[1]-a[1])-(c[0]-a[0])*(b[1]-a[1]))},c.prototype.updateArea=function(){this.updateTriangles(),this.area=0;for(var a=this.triangles,b=this.vertices,d=0;d!==a.length;d++){var e=a[d],f=b[e[0]],g=b[e[1]],h=b[e[2]],i=c.triangleArea(f,g,h);this.area+=i}},c.prototype.computeAABB=function(a,b,c){a.setFromPoints(this.vertices,b,c,0)};var n=e.create(),o=e.create(),p=e.create();c.prototype.raycast=function(a,b,c,d){var f=n,g=o,h=p,i=this.vertices;e.toLocalFrame(f,b.from,c,d),e.toLocalFrame(g,b.to,c,d);for(var j=i.length,k=0;j>k&&!a.shouldStop(b);k++){var l=i[k],m=i[(k+1)%j],q=e.getLineSegmentsIntersectionFraction(f,g,l,m);q>=0&&(e.sub(h,m,l),e.rotate(h,h,-Math.PI/2+d),e.normalize(h,h),b.reportIntersection(a,q,h,k))}}},{"../math/polyk":29,"../math/vec2":30,"./Shape":45,"poly-decomp":5}],41:[function(a,b){function c(a){if(Array.isArray(arguments[0])){if(a={heights:arguments[0]},"object"==typeof arguments[1])for(var b in arguments[1])a[b]=arguments[1][b];console.warn("The Heightfield constructor signature has changed. Please use the following format: new Heightfield({ heights: [...], ... })")}a=a||{},this.heights=a.heights?a.heights.slice(0):[],this.maxValue=a.maxValue||null,this.minValue=a.minValue||null,this.elementWidth=a.elementWidth||.1,(void 0===a.maxValue||void 0===a.minValue)&&this.updateMaxMinValues(),a.type=d.HEIGHTFIELD,d.call(this,a)}{var d=a("./Shape"),e=a("../math/vec2");a("../utils/Utils")}b.exports=c,c.prototype=new d,c.prototype.constructor=c,c.prototype.updateMaxMinValues=function(){for(var a=this.heights,b=a[0],c=a[0],d=0;d!==a.length;d++){var e=a[d];e>b&&(b=e),c>e&&(c=e)}this.maxValue=b,this.minValue=c},c.prototype.computeMomentOfInertia=function(){return Number.MAX_VALUE},c.prototype.updateBoundingRadius=function(){this.boundingRadius=Number.MAX_VALUE},c.prototype.updateArea=function(){for(var a=this.heights,b=0,c=0;cs){var t=r;r=s,s=t}for(var u=0;u=0&&(e.sub(m,o,n),e.rotate(m,m,d+Math.PI/2),e.normalize(m,m),b.reportIntersection(a,v,m,-1),a.shouldStop(b)))return}}},{"../math/vec2":30,"../utils/Utils":57,"./Shape":45}],42:[function(a,b){function c(a){"number"==typeof arguments[0]&&(a={length:arguments[0]},console.warn("The Line constructor signature has changed. Please use the following format: new Line({ length: 1, ... })")),a=a||{},this.length=a.length||1,a.type=d.LINE,d.call(this,a)}var d=a("./Shape"),e=a("../math/vec2");b.exports=c,c.prototype=new d,c.prototype.constructor=c,c.prototype.computeMomentOfInertia=function(a){return a*Math.pow(this.length,2)/12},c.prototype.updateBoundingRadius=function(){this.boundingRadius=this.length/2};var f=[e.create(),e.create()];c.prototype.computeAABB=function(a,b,c){var d=this.length/2;e.set(f[0],-d,0),e.set(f[1],d,0),a.setFromPoints(f,b,c,0)};var g=(e.create(),e.create()),h=e.create(),i=e.create(),j=e.fromValues(0,1);c.prototype.raycast=function(a,b,c,d){var f=b.from,k=b.to,l=h,m=i,n=this.length/2;e.set(l,-n,0),e.set(m,n,0),e.toGlobalFrame(l,l,c,d),e.toGlobalFrame(m,m,c,d);var o=e.getLineSegmentsIntersectionFraction(l,m,f,k);if(o>=0){var p=g;e.rotate(p,j,d),b.reportIntersection(a,o,p,-1)}}},{"../math/vec2":30,"./Shape":45}],43:[function(a,b){function c(a){a=a||{},a.type=d.PARTICLE,d.call(this,a)}var d=a("./Shape"),e=a("../math/vec2");b.exports=c,c.prototype=new d,c.prototype.constructor=c,c.prototype.computeMomentOfInertia=function(){return 0},c.prototype.updateBoundingRadius=function(){this.boundingRadius=0},c.prototype.computeAABB=function(a,b){e.copy(a.lowerBound,b),e.copy(a.upperBound,b)}},{"../math/vec2":30,"./Shape":45}],44:[function(a,b){function c(a){a=a||{},a.type=d.PLANE,d.call(this,a)}{var d=a("./Shape"),e=a("../math/vec2");a("../utils/Utils")}b.exports=c,c.prototype=new d,c.prototype.constructor=c,c.prototype.computeMomentOfInertia=function(){return 0},c.prototype.updateBoundingRadius=function(){this.boundingRadius=Number.MAX_VALUE},c.prototype.computeAABB=function(a,b,c){var d=c%(2*Math.PI),f=e.set,g=Number.MAX_VALUE,h=a.lowerBound,i=a.upperBound;0===d?(f(h,-g,-g),f(i,g,0)):d===Math.PI/2?(f(h,0,-g),f(i,g,g)):d===Math.PI?(f(h,-g,0),f(i,g,g)):d===3*Math.PI/2?(f(h,-g,-g),f(i,0,g)):(f(h,-g,-g),f(i,g,g)),e.add(h,h,b),e.add(i,i,b)},c.prototype.updateArea=function(){this.area=Number.MAX_VALUE};var f=e.create(),g=(e.create(),e.create(),e.create()),h=e.create();c.prototype.raycast=function(a,b,c,d){var i=b.from,j=b.to,k=b.direction,l=f,m=g,n=h;e.set(m,0,1),e.rotate(m,m,d),e.sub(n,i,c);var o=e.dot(n,m);e.sub(n,j,c);var p=e.dot(n,m);if(!(o*p>0||e.squaredDistance(i,j)=w*w)break}for(c.updateMultipliers(k,q,1/a),x=0;x!==l;x++){var z=k[x];if(z instanceof h){for(var A=0,B=0;B!==z.contactEquations.length;B++)A+=z.contactEquations[B].multiplier;A*=z.frictionCoefficient/z.contactEquations.length,z.maxForce=A,z.minForce=-A}}}for(f=0;f!==i;f++){for(w=0,x=0;x!==l;x++){v=k[x];var y=c.iterateEquation(x,v,v.epsilon,u,t,q,p,a,f);w+=Math.abs(y)}if(this.usedIterations++,m>=w*w)break}for(r=0;r!==o;r++)n[r].addConstraintVelocity();c.updateMultipliers(k,q,1/a)}},c.updateMultipliers=function(a,b,c){for(var d=a.length;d--;)a[d].multiplier=b[d]*c},c.iterateEquation=function(a,b,c,d,e,f,g,h){var i=d[a],j=e[a],k=f[a],l=b.computeGWlambda(),m=b.maxForce,n=b.minForce;g&&(i=0);var o=j*(i-l-c*k),p=k+o;return n*h>p?o=n*h-k:p>m*h&&(o=m*h-k),f[a]+=o,b.addToWlambda(o),o}},{"../equations/FrictionEquation":23,"../math/vec2":30,"../utils/Utils":57,"./Solver":47}],47:[function(a,b){function c(a,b){a=a||{},d.call(this),this.type=b,this.equations=[],this.equationSortFunction=a.equationSortFunction||!1}var d=(a("../utils/Utils"),a("../events/EventEmitter"));b.exports=c,c.prototype=new d,c.prototype.constructor=c,c.prototype.solve=function(){throw new Error("Solver.solve should be implemented by subclasses!")};var e={bodies:[]};c.prototype.solveIsland=function(a,b){this.removeAllEquations(),b.equations.length&&(this.addEquations(b.equations),e.bodies.length=0,b.getBodies(e.bodies),e.bodies.length&&this.solve(a,e))},c.prototype.sortEquations=function(){this.equationSortFunction&&this.equations.sort(this.equationSortFunction)},c.prototype.addEquation=function(a){a.enabled&&this.equations.push(a)},c.prototype.addEquations=function(a){for(var b=0,c=a.length;b!==c;b++){var d=a[b];d.enabled&&this.equations.push(d)}},c.prototype.removeEquation=function(a){var b=this.equations.indexOf(a);-1!==b&&this.equations.splice(b,1)},c.prototype.removeAllEquations=function(){this.equations.length=0},c.GS=1,c.ISLAND=2},{"../events/EventEmitter":26,"../utils/Utils":57}],48:[function(a,b){function c(){e.apply(this,arguments)}var d=a("../equations/ContactEquation"),e=a("./Pool");b.exports=c,c.prototype=new e,c.prototype.constructor=c,c.prototype.create=function(){return new d},c.prototype.destroy=function(a){return a.bodyA=a.bodyB=null,this}},{"../equations/ContactEquation":21,"./Pool":55}],49:[function(a,b){function c(){e.apply(this,arguments)}var d=a("../equations/FrictionEquation"),e=a("./Pool");b.exports=c,c.prototype=new e,c.prototype.constructor=c,c.prototype.create=function(){return new d},c.prototype.destroy=function(a){return a.bodyA=a.bodyB=null,this}},{"../equations/FrictionEquation":23,"./Pool":55}],50:[function(a,b){function c(){e.apply(this,arguments)}var d=a("../world/IslandNode"),e=a("./Pool");b.exports=c,c.prototype=new e,c.prototype.constructor=c,c.prototype.create=function(){return new d},c.prototype.destroy=function(a){return a.reset(),this}},{"../world/IslandNode":60,"./Pool":55}],51:[function(a,b){function c(){e.apply(this,arguments)}var d=a("../world/Island"),e=a("./Pool");b.exports=c,c.prototype=new e,c.prototype.constructor=c,c.prototype.create=function(){return new d},c.prototype.destroy=function(a){return a.reset(),this}},{"../world/Island":58,"./Pool":55}],52:[function(a,b){function c(){this.overlappingShapesLastState=new d,this.overlappingShapesCurrentState=new d,this.recordPool=new e({size:16}),this.tmpDict=new d,this.tmpArray1=[]}{var d=a("./TupleDictionary"),e=(a("./OverlapKeeperRecord"),a("./OverlapKeeperRecordPool"));a("./Utils")}b.exports=c,c.prototype.tick=function(){for(var a=this.overlappingShapesLastState,b=this.overlappingShapesCurrentState,c=a.keys.length;c--;){{var d=a.keys[c],e=a.getByKey(d);b.getByKey(d)}e&&this.recordPool.release(e)}a.reset(),a.copy(b),b.reset()},c.prototype.setOverlapping=function(a,b,c,d){var e=(this.overlappingShapesLastState,this.overlappingShapesCurrentState);if(!e.get(b.id,d.id)){var f=this.recordPool.get();f.set(a,b,c,d),e.set(b.id,d.id,f)}},c.prototype.getNewOverlaps=function(a){return this.getDiff(this.overlappingShapesLastState,this.overlappingShapesCurrentState,a)},c.prototype.getEndOverlaps=function(a){return this.getDiff(this.overlappingShapesCurrentState,this.overlappingShapesLastState,a)},c.prototype.bodiesAreOverlapping=function(a,b){for(var c=this.overlappingShapesCurrentState,d=c.keys.length;d--;){var e=c.keys[d],f=c.data[e];if(f.bodyA===a&&f.bodyB===b||f.bodyA===b&&f.bodyB===a)return!0}return!1},c.prototype.getDiff=function(a,b,c){var c=c||[],d=a,e=b;c.length=0;for(var f=e.keys.length;f--;){var g=e.keys[f],h=e.data[g];if(!h)throw new Error("Key "+g+" had no data!");var i=d.data[g];i||c.push(h)}return c},c.prototype.isNewOverlap=function(a,b){var c=0|a.id,d=0|b.id,e=this.overlappingShapesLastState,f=this.overlappingShapesCurrentState;return!e.get(c,d)&&!!f.get(c,d)},c.prototype.getNewBodyOverlaps=function(a){this.tmpArray1.length=0;var b=this.getNewOverlaps(this.tmpArray1);return this.getBodyDiff(b,a)},c.prototype.getEndBodyOverlaps=function(a){this.tmpArray1.length=0;var b=this.getEndOverlaps(this.tmpArray1);return this.getBodyDiff(b,a)},c.prototype.getBodyDiff=function(a,b){b=b||[];for(var c=this.tmpDict,d=a.length;d--;){var e=a[d];c.set(0|e.bodyA.id,0|e.bodyB.id,e)}for(d=c.keys.length;d--;){var e=c.getByKey(c.keys[d]);e&&b.push(e.bodyA,e.bodyB)}return c.reset(),b}},{"./OverlapKeeperRecord":53,"./OverlapKeeperRecordPool":54,"./TupleDictionary":56,"./Utils":57}],53:[function(a,b){function c(a,b,c,d){this.shapeA=b,this.shapeB=d,this.bodyA=a,this.bodyB=c}b.exports=c,c.prototype.set=function(a,b,d,e){c.call(this,a,b,d,e)}},{}],54:[function(a,b){function c(){e.apply(this,arguments)}var d=a("./OverlapKeeperRecord"),e=a("./Pool");b.exports=c,c.prototype=new e,c.prototype.constructor=c,c.prototype.create=function(){return new d},c.prototype.destroy=function(a){return a.bodyA=a.bodyB=a.shapeA=a.shapeB=null,this}},{"./OverlapKeeperRecord":53,"./Pool":55}],55:[function(a,b){function c(a){a=a||{},this.objects=[],void 0!==a.size&&this.resize(a.size)}b.exports=c,c.prototype.resize=function(a){for(var b=this.objects;b.length>a;)b.pop();for(;b.length(0|b)?a<<16|65535&b:b<<16|65535&a)},c.prototype.getByKey=function(a){return a=0|a,this.data[a]},c.prototype.get=function(a,b){return this.data[this.getKey(a,b)]},c.prototype.set=function(a,b,c){if(!c)throw new Error("No data!");var d=this.getKey(a,b);return this.data[d]||this.keys.push(d),this.data[d]=c,d},c.prototype.reset=function(){for(var a=this.data,b=this.keys,c=b.length;c--;)delete a[b[c]];b.length=0},c.prototype.copy=function(a){this.reset(),d.appendArray(this.keys,a.keys);for(var b=a.keys.length;b--;){var c=a.keys[b];this.data[c]=a.data[c]}}},{"./Utils":57}],57:[function(a,b){function c(){}b.exports=c,c.appendArray=function(a,b){if(b.length<15e4)a.push.apply(a,b);else for(var c=0,d=b.length;c!==d;++c)a.push(b[c])},c.splice=function(a,b,c){c=c||1;for(var d=b,e=a.length-c;e>d;d++)a[d]=a[d+c];a.length=e},c.ARRAY_TYPE="undefined"!=typeof P2_ARRAY_TYPE?P2_ARRAY_TYPE:"undefined"!=typeof Float32Array?Float32Array:Array,c.extend=function(a,b){for(var c in b)a[c]=b[c]},c.defaults=function(a,b){a=a||{};for(var c in b)c in a||(a[c]=b[c]);return a}},{}],58:[function(a,b){function c(){this.equations=[],this.bodies=[]}var d=a("../objects/Body");b.exports=c,c.prototype.reset=function(){this.equations.length=this.bodies.length=0};var e=[];c.prototype.getBodies=function(a){var b=a||[],c=this.equations;e.length=0;for(var d=0;d!==c.length;d++){var f=c[d];-1===e.indexOf(f.bodyA.id)&&(b.push(f.bodyA),e.push(f.bodyA.id)),-1===e.indexOf(f.bodyB.id)&&(b.push(f.bodyB),e.push(f.bodyB.id))}return b},c.prototype.wantsToSleep=function(){for(var a=0;a=a&&c>d;)this.internalStep(a),this.time+=a,this.accumulator-=a,d++;for(var f=this.accumulator%a/a,g=0;g!==this.bodies.length;g++){var h=this.bodies[g];e.lerp(h.interpolatedPosition,h.previousPosition,h.position,f),h.interpolatedAngle=h.previousAngle+f*(h.angle-h.previousAngle)}}};var x=[];c.prototype.internalStep=function(a){this.stepping=!0;var b=this.springs.length,d=this.springs,f=this.bodies,g=this.gravity,h=this.solver,i=this.bodies.length,j=this.broadphase,k=this.narrowphase,m=this.constraints,n=u,o=(e.scale,e.add),p=(e.rotate,this.islandManager);if(this.overlapKeeper.tick(),this.lastTimeStep=a,this.useWorldGravityAsFrictionGravity){var q=e.length(this.gravity);0===q&&this.useFrictionGravityOnZeroGravity||(this.frictionGravity=q)}if(this.applyGravity)for(var s=0;s!==i;s++){var t=f[s],v=t.force;t.type===l.DYNAMIC&&t.sleepState!==l.SLEEPING&&(e.scale(n,g,t.mass*t.gravityScale),o(v,v,n))}if(this.applySpringForces)for(var s=0;s!==b;s++){var w=d[s];w.applyForce()}if(this.applyDamping)for(var s=0;s!==i;s++){var t=f[s];t.type===l.DYNAMIC&&t.applyDamping(a)}for(var y=j.getCollisionPairs(this),z=this.disabledBodyCollisionPairs,s=z.length-2;s>=0;s-=2)for(var A=y.length-2;A>=0;A-=2)(z[s]===y[A]&&z[s+1]===y[A+1]||z[s+1]===y[A]&&z[s]===y[A+1])&&y.splice(A,2);var B=m.length;for(s=0;s!==B;s++){var C=m[s];if(!C.collideConnected)for(var A=y.length-2;A>=0;A-=2)(C.bodyA===y[A]&&C.bodyB===y[A+1]||C.bodyB===y[A]&&C.bodyA===y[A+1])&&y.splice(A,2)}this.postBroadphaseEvent.pairs=y,this.emit(this.postBroadphaseEvent),this.postBroadphaseEvent.pairs=null,k.reset(this);for(var s=0,D=y.length;s!==D;s+=2)for(var E=y[s],F=y[s+1],G=0,H=E.shapes.length;G!==H;G++)for(var I=E.shapes[G],J=I.position,K=I.angle,L=0,M=F.shapes.length;L!==M;L++){var N=F.shapes[L],O=N.position,P=N.angle,Q=this.defaultContactMaterial;if(I.material&&N.material){var R=this.getContactMaterial(I.material,N.material);R&&(Q=R)}this.runNarrowphase(k,E,I,J,K,F,N,O,P,Q,this.frictionGravity)}for(var s=0;s!==i;s++){var S=f[s];S._wakeUpAfterNarrowphase&&(S.wakeUp(),S._wakeUpAfterNarrowphase=!1)}if(this.has("endContact")){this.overlapKeeper.getEndOverlaps(x);for(var T=this.endContactEvent,L=x.length;L--;){var U=x[L];T.shapeA=U.shapeA,T.shapeB=U.shapeB,T.bodyA=U.bodyA,T.bodyB=U.bodyB,this.emit(T)}x.length=0}var V=this.preSolveEvent;V.contactEquations=k.contactEquations,V.frictionEquations=k.frictionEquations,this.emit(V),V.contactEquations=V.frictionEquations=null;var B=m.length;for(s=0;s!==B;s++)m[s].update();if(k.contactEquations.length||k.frictionEquations.length||B)if(this.islandSplit){for(p.equations.length=0,r.appendArray(p.equations,k.contactEquations),r.appendArray(p.equations,k.frictionEquations),s=0;s!==B;s++)r.appendArray(p.equations,m[s].equations);p.split(this);for(var s=0;s!==p.islands.length;s++){var W=p.islands[s];W.equations.length&&h.solveIsland(a,W)}}else{for(h.addEquations(k.contactEquations),h.addEquations(k.frictionEquations),s=0;s!==B;s++)h.addEquations(m[s].equations);this.solveConstraints&&h.solve(a,this),h.removeAllEquations()}for(var s=0;s!==i;s++){var S=f[s];S.integrate(a)}for(var s=0;s!==i;s++)f[s].setZeroForce();if(this.emitImpactEvent&&this.has("impact"))for(var X=this.impactEvent,s=0;s!==k.contactEquations.length;s++){var Y=k.contactEquations[s];Y.firstImpact&&(X.bodyA=Y.bodyA,X.bodyB=Y.bodyB,X.shapeA=Y.shapeA,X.shapeB=Y.shapeB,X.contactEquation=Y,this.emit(X))}if(this.sleepMode===c.BODY_SLEEPING)for(s=0;s!==i;s++)f[s].sleepTick(this.time,!1,a);else if(this.sleepMode===c.ISLAND_SLEEPING&&this.islandSplit){for(s=0;s!==i;s++)f[s].sleepTick(this.time,!0,a);for(var s=0;s0,a.frictionCoefficient=k.friction;var p;p=b.type===l.STATIC||b.type===l.KINEMATIC?g.mass:g.type===l.STATIC||g.type===l.KINEMATIC?b.mass:b.mass*g.mass/(b.mass+g.mass),a.slipForce=k.friction*m*p,a.restitution=k.restitution,a.surfaceVelocity=k.surfaceVelocity,a.frictionStiffness=k.frictionStiffness,a.frictionRelaxation=k.frictionRelaxation,a.stiffness=k.stiffness,a.relaxation=k.relaxation,a.contactSkinSize=k.contactSkinSize,a.enabledEquations=b.collisionResponse&&g.collisionResponse&&c.collisionResponse&&h.collisionResponse;var q=a[c.type|h.type],r=0;if(q){var s=c.sensor||h.sensor,t=a.frictionEquations.length;r=c.type=2*y&&(b._wakeUpAfterNarrowphase=!0)}if(g.allowSleep&&g.type===l.DYNAMIC&&g.sleepState===l.SLEEPING&&b.sleepState===l.AWAKE&&b.type!==l.STATIC){var z=e.squaredLength(b.velocity)+Math.pow(b.angularVelocity,2),A=Math.pow(b.sleepSpeedLimit,2);z>=2*A&&(g._wakeUpAfterNarrowphase=!0)}if(this.overlapKeeper.setOverlapping(b,c,g,h),this.has("beginContact")&&this.overlapKeeper.isNewOverlap(c,h)){var B=this.beginContactEvent;if(B.shapeA=c,B.shapeB=h,B.bodyA=b,B.bodyB=g,B.contactEquations.length=0,"number"==typeof r)for(var C=a.contactEquations.length-r;C1)for(var C=a.frictionEquations.length-u;C=0;b--)this.removeConstraint(a[b]);for(var d=this.bodies,b=d.length-1;b>=0;b--)this.removeBody(d[b]);for(var e=this.springs,b=e.length-1;b>=0;b--)this.removeSpring(e[b]);for(var f=this.contactMaterials,b=f.length-1;b>=0;b--)this.removeContactMaterial(f[b]);c.apply(this)};var y=e.create(),z=(e.fromValues(0,0),e.fromValues(0,0));c.prototype.hitTest=function(a,b,c){c=c||0;var d=new l({position:a}),k=new j,m=a,n=0,o=y,p=z;d.addShape(k);for(var q=this.narrowphase,r=[],s=0,t=b.length;s!==t;s++)for(var u=b[s],v=0,w=u.shapes.length;v!==w;v++){var x=u.shapes[v];e.rotate(o,x.position,u.angle),e.add(o,o,u.position);var A=x.angle+u.angle;(x instanceof f&&q.circleParticle(u,x,o,A,d,k,m,n,!0)||x instanceof g&&q.particleConvex(d,k,m,n,u,x,o,A,!0)||x instanceof h&&q.particlePlane(d,k,m,n,u,x,o,A,!0)||x instanceof i&&q.particleCapsule(d,k,m,n,u,x,o,A,!0)||x instanceof j&&e.squaredLength(e.sub(p,o,a))=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;gj;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;for(var b=0;bi&&(i*=-1),0>l&&(l*=-1),q=i*e+m,o=i*d+m,r=l*g+n,p=l*f+n;else{var s=i*e+k*g+m,t=l*g+j*e+n,u=i*d+k*g+m,v=l*g+j*d+n,w=i*d+k*f+m,x=l*f+j*d+n,y=i*e+k*f+m,z=l*f+j*e+n;q=q>s?s:q,q=q>u?u:q,q=q>w?w:q,q=q>y?y:q,r=r>t?t:r,r=r>v?v:r,r=r>x?x:r,r=r>z?z:r,o=s>o?s:o,o=u>o?u:o,o=w>o?w:o,o=y>o?y:o,p=t>p?t:p,p=v>p?v:p,p=x>p?x:p,p=z>p?z:p}var A=this._bounds;return A.x=q,A.width=o-q,A.y=r,A.height=p-r,this._currentBounds=A,A},b.Sprite.prototype._renderWebGL=function(a,b){if(this.visible&&!(this.alpha<=0)&&this.renderable){var c=this.worldTransform;if(b&&(c=b),this._mask||this._filters){var d=a.spriteBatch;this._filters&&(d.flush(),a.filterManager.pushFilter(this._filterBlock)),this._mask&&(d.stop(),a.maskManager.pushMask(this.mask,a),d.start()),d.render(this);for(var e=0;e>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]},b.canUseNewCanvasBlendModes=function(){if(void 0===document)return!1;var a="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAQAAAABAQMAAADD8p2OAAAAA1BMVEX/",b="AAAACklEQVQI12NgAAAAAgAB4iG8MwAAAABJRU5ErkJggg==",c=new Image;c.src=a+"AP804Oa6"+b;var d=new Image;d.src=a+"/wCKxvRF"+b;var e=document.createElement("canvas");e.width=6,e.height=1;var f=e.getContext("2d");if(f.globalCompositeOperation="multiply",f.drawImage(c,0,0),f.drawImage(d,2,0),!f.getImageData(2,0,1,1))return!1;var g=f.getImageData(2,0,1,1).data;return 255===g[0]&&0===g[1]&&0===g[2]},b.getNextPowerOfTwo=function(a){if(a>0&&0===(a&a-1))return a;for(var b=1;a>b;)b<<=1;return b},b.isPowerOfTwo=function(a,b){return a>0&&0===(a&a-1)&&b>0&&0===(b&b-1)},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;Array.isArray(b)&&(d=b.join("\n"));var 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;"," vColor = vec4(aColor.rgb * aColor.a, aColor.a);","}"],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 float flipY;","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 * -flipY) + flipY , 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.flipY=a.getUniformLocation(c,"flipY"),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;","uniform float flipY;","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 * -flipY) + flipY , 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.flipY=a.getUniformLocation(c,"flipY"),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.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=[]},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)void 0===d[e]&&(d[e]=b.defaultRenderOptions[e]);else d=b.defaultRenderOptions;b.defaultRenderer||(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._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&&(this.__stage=a),a.updateTransform();var b=this.gl;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,e){this.renderSession.blendModeManager.setBlendMode(b.blendModes.NORMAL),this.renderSession.drawCount=0,this.renderSession.flipY=d?-1:1,this.renderSession.projection=c,this.renderSession.offset=this.offset,this.spriteBatch.begin(this.renderSession),this.filterManager.begin(this.renderSession,d),a._renderWebGL(this.renderSession,e),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),a.mipmap&&b.isPowerOfTwo(a.width,a.height)?(c.texParameteri(c.TEXTURE_2D,c.TEXTURE_MIN_FILTER,a.scaleMode===b.scaleModes.LINEAR?c.LINEAR_MIPMAP_LINEAR:c.NEAREST_MIPMAP_NEAREST),c.generateMipmap(c.TEXTURE_2D)):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.destroy=function(){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.instances[this.glContextId]=null,b.WebGLRenderer.glContextId--},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.uniform1f(e.flipY,d.flipY),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.uniform1f(e.flipY,d.flipY),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,b){var c=a.texture,d=a.worldTransform;b&&(d=b),this.currentBatchSize>=this.size&&(this.flush(),this.currentBaseTexture=c.baseTexture);var e=c._uvs;if(e){var f,g,h,i,j=a.anchor.x,k=a.anchor.y;if(c.trim){var l=c.trim;g=l.x-j*l.width,f=g+c.crop.width,i=l.y-k*l.height,h=i+c.crop.height}else f=c.frame.width*(1-j),g=c.frame.width*-j,h=c.frame.height*(1-k),i=c.frame.height*-k;var m=4*this.currentBatchSize*this.vertSize,n=c.baseTexture.resolution,o=d.a/n,p=d.b/n,q=d.c/n,r=d.d/n,s=d.tx,t=d.ty,u=this.colors,v=this.positions;this.renderSession.roundPixels?(v[m]=o*g+q*i+s|0,v[m+1]=r*i+p*g+t|0,v[m+5]=o*f+q*i+s|0,v[m+6]=r*i+p*f+t|0,v[m+10]=o*f+q*h+s|0,v[m+11]=r*h+p*f+t|0,v[m+15]=o*g+q*h+s|0,v[m+16]=r*h+p*g+t|0):(v[m]=o*g+q*i+s,v[m+1]=r*i+p*g+t,v[m+5]=o*f+q*i+s,v[m+6]=r*i+p*f+t,v[m+10]=o*f+q*h+s,v[m+11]=r*h+p*f+t,v[m+15]=o*g+q*h+s,v[m+16]=r*h+p*g+t),v[m+2]=e.x0,v[m+3]=e.y0,v[m+7]=e.x1,v[m+8]=e.y1,v[m+12]=e.x2,v[m+13]=e.y2,v[m+17]=e.x3,v[m+18]=e.y3;var w=a.tint;u[m+4]=u[m+9]=u[m+14]=u[m+19]=(w>>16)+(65280&w)+((255&w)<<16)+(255*a.worldAlpha<<24),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,e=c.baseTexture.width,f=c.baseTexture.height;a.tilePosition.x%=e*a.tileScaleOffset.x,a.tilePosition.y%=f*a.tileScaleOffset.y;var g=a.tilePosition.x/(e*a.tileScaleOffset.x),h=a.tilePosition.y/(f*a.tileScaleOffset.y),i=a.width/e/(a.tileScale.x*a.tileScaleOffset.x),j=a.height/f/(a.tileScale.y*a.tileScaleOffset.y);d.x0=0-g,d.y0=0-h,d.x1=1*i-g,d.y1=0-h,d.x2=1*i-g,d.y2=1*j-h,d.x3=0-g,d.y3=1*j-h;var k=a.tint,l=(k>>16)+(65280&k)+((255&k)<<16)+(255*a.worldAlpha<<24),m=this.positions,n=this.colors,o=a.width,p=a.height,q=a.anchor.x,r=a.anchor.y,s=o*(1-q),t=o*-q,u=p*(1-r),v=p*-r,w=4*this.currentBatchSize*this.vertSize,x=c.baseTexture.resolution,y=a.worldTransform,z=y.a/x,A=y.b/x,B=y.c/x,C=y.d/x,D=y.tx,E=y.ty;m[w++]=z*t+B*v+D,m[w++]=C*v+A*t+E,m[w++]=d.x0,m[w++]=d.y0,n[w++]=l,m[w++]=z*s+B*v+D,m[w++]=C*v+A*s+E,m[w++]=d.x1,m[w++]=d.y1,n[w++]=l,m[w++]=z*s+B*u+D,m[w++]=C*u+A*s+E,m[w++]=d.x2,m[w++]=d.y2,n[w++]=l,m[w++]=z*t+B*u+D,m[w++]=C*u+A*t+E,m[w++]=d.x3,m[w++]=d.y3,n[w++]=l,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,4,c.UNSIGNED_BYTE,!0,d,16)}if(this.currentBatchSize>.5*this.size)c.bufferSubData(c.ARRAY_BUFFER,0,this.vertices);else{var e=this.positions.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.tilingTexture?i.tilingTexture.baseTexture: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;jB?B:A,c.beginPath(),c.moveTo(w,x+A),c.lineTo(w,x+z-A),c.quadraticCurveTo(w,x+z,w+A,x+z),c.lineTo(w+y-A,x+z),c.quadraticCurveTo(w+y,x+z,w+y,x+z-A),c.lineTo(w+y,x+A),c.quadraticCurveTo(w+y,x,w+y-A,x),c.lineTo(w+A,x),c.quadraticCurveTo(w,x,w,x+A),c.closePath(),(f.fillColor||0===f.fillColor)&&(c.globalAlpha=f.fillAlpha*d,c.fillStyle="#"+("00000"+(0|h).toString(16)).substr(-6),c.fill()),f.lineWidth&&(c.globalAlpha=f.lineAlpha*d,c.strokeStyle="#"+("00000"+(0|i).toString(16)).substr(-6),c.stroke())}}},b.CanvasGraphics.renderGraphicsMask=function(a,c){var d=a.graphicsData.length;if(0!==d){c.beginPath();for(var e=0;d>e;e++){var f=a.graphicsData[e],g=f.shape;if(f.type===b.Graphics.POLY){var h=g.points;c.moveTo(h[0],h[1]);for(var i=1;iz?z:y,c.moveTo(u,v+y),c.lineTo(u,v+x-y),c.quadraticCurveTo(u,v+x,u+y,v+x),c.lineTo(u+w-y,v+x),c.quadraticCurveTo(u+w,v+x,u+w,v+x-y),c.lineTo(u+w,v+y),c.quadraticCurveTo(u+w,v,u+w-y,v),c.lineTo(u+y,v),c.quadraticCurveTo(u,v,u,v+y),c.closePath()}}}},b.CanvasGraphics.updateGraphicsTint=function(a){if(16777215!==a.tint)for(var b=(a.tint>>16&255)/255,c=(a.tint>>8&255)/255,d=(255&a.tint)/255,e=0;e>16&255)/255*b*255<<16)+((g>>8&255)/255*c*255<<8)+(255&g)/255*d*255,f._lineTint=((h>>16&255)/255*b*255<<16)+((h>>8&255)/255*c*255<<8)+(255&h)/255*d*255}},b.BaseTextureCache={},b.BaseTextureCacheIdGenerator=0,b.BaseTexture=function(a,c){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.mipmap=!1,this._dirty=[!0,!0,!0,!0],a&&((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()),this.imageUrl=null,this._powerOf2=!1)},b.BaseTexture.prototype.constructor=b.BaseTexture,b.BaseTexture.prototype.forceLoaded=function(a,b){this.hasLoaded=!0,this.width=a,this.height=b,this.dirty()},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++),0===a.width&&(a.width=1),0===a.height&&(a.height=1);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.TextureSilentFail=!1,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.isTiling=!1,this.requiresUpdate=!1,this.requiresReTint=!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))},b.Texture.prototype.constructor=b.Texture,b.Texture.prototype.onBaseTextureLoaded=function(){var a=this.baseTexture;this.noFrame&&(this.frame=new b.Rectangle(0,0,a.width,a.height)),this.setFrame(this.frame)},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)){if(!b.TextureSilentFail)throw new Error("Texture Error: frame does not fit inside the base Texture dimensions "+this);return void(this.valid=!1)}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.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.resolution,this.height*this.resolution)),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.height,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.tempMatrix=new Phaser.Matrix,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=a,this.height=c,this.frame.width=this.crop.width=a*this.resolution,this.frame.height=this.crop.height=c*this.resolution,d&&(this.baseTexture.width=this.width*this.resolution,this.baseTexture.height=this.height*this.resolution),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.height))},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&&0!==a.alpha){var d=a.worldTransform;d.identity(),d.translate(0,2*this.projection.y),b&&d.append(b),d.scale(1,-1);for(var e=0;ea;a++)this.shaders[a].dirty=!0},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.vertices=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.canvasPadding=0,this.drawMode=b.Strip.DrawModes.TRIANGLE_STRIP},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.vertices,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 c=a.gl,d=a.projection,e=a.offset,f=a.shaderManager.stripShader,g=this.drawMode===b.Strip.DrawModes.TRIANGLE_STRIP?c.TRIANGLE_STRIP:c.TRIANGLES;a.blendModeManager.setBlendMode(this.blendMode),c.uniformMatrix3fv(f.translationMatrix,!1,this.worldTransform.toArray(!0)),c.uniform2f(f.projectionVector,d.x,-d.y),c.uniform2f(f.offsetVector,-e.x,-e.y),c.uniform1f(f.alpha,this.worldAlpha),this.dirty?(this.dirty=!1,c.bindBuffer(c.ARRAY_BUFFER,this._vertexBuffer),c.bufferData(c.ARRAY_BUFFER,this.vertices,c.STATIC_DRAW),c.vertexAttribPointer(f.aVertexPosition,2,c.FLOAT,!1,0,0),c.bindBuffer(c.ARRAY_BUFFER,this._uvBuffer),c.bufferData(c.ARRAY_BUFFER,this.uvs,c.STATIC_DRAW),c.vertexAttribPointer(f.aTextureCoord,2,c.FLOAT,!1,0,0),c.activeTexture(c.TEXTURE0),this.texture.baseTexture._dirty[c.id]?a.renderer.updateTexture(this.texture.baseTexture):c.bindTexture(c.TEXTURE_2D,this.texture.baseTexture._glTextures[c.id]),c.bindBuffer(c.ELEMENT_ARRAY_BUFFER,this._indexBuffer),c.bufferData(c.ELEMENT_ARRAY_BUFFER,this.indices,c.STATIC_DRAW)):(c.bindBuffer(c.ARRAY_BUFFER,this._vertexBuffer),c.bufferSubData(c.ARRAY_BUFFER,0,this.vertices),c.vertexAttribPointer(f.aVertexPosition,2,c.FLOAT,!1,0,0),c.bindBuffer(c.ARRAY_BUFFER,this._uvBuffer),c.vertexAttribPointer(f.aTextureCoord,2,c.FLOAT,!1,0,0),c.activeTexture(c.TEXTURE0),this.texture.baseTexture._dirty[c.id]?a.renderer.updateTexture(this.texture.baseTexture):c.bindTexture(c.TEXTURE_2D,this.texture.baseTexture._glTextures[c.id]),c.bindBuffer(c.ELEMENT_ARRAY_BUFFER,this._indexBuffer)),c.drawElements(g,this.indices.length,c.UNSIGNED_SHORT,0)},b.Strip.prototype._renderCanvas=function(a){var c=a.context,d=this.worldTransform;a.roundPixels?c.setTransform(d.a,d.b,d.c,d.d,0|d.tx,0|d.ty):c.setTransform(d.a,d.b,d.c,d.d,d.tx,d.ty),this.drawMode===b.Strip.DrawModes.TRIANGLE_STRIP?this._renderCanvasTriangleStrip(c):this._renderCanvasTriangles(c)},b.Strip.prototype._renderCanvasTriangleStrip=function(a){var b=this.vertices,c=this.uvs,d=b.length/2;this.count++;for(var e=0;d-2>e;e++){var f=2*e;this._renderCanvasDrawTriangle(a,b,c,f,f+2,f+4)}},b.Strip.prototype._renderCanvasTriangles=function(a){var b=this.vertices,c=this.uvs,d=this.indices,e=d.length;this.count++;for(var f=0;e>f;f+=3){var g=2*d[f],h=2*d[f+1],i=2*d[f+2];this._renderCanvasDrawTriangle(a,b,c,g,h,i)}},b.Strip.prototype._renderCanvasDrawTriangle=function(a,b,c,d,e,f){var g=this.texture.baseTexture.source,h=this.texture.width,i=this.texture.height,j=b[d],k=b[e],l=b[f],m=b[d+1],n=b[e+1],o=b[f+1],p=c[d]*h,q=c[e]*h,r=c[f]*h,s=c[d+1]*i,t=c[e+1]*i,u=c[f+1]*i;if(this.canvasPadding>0){var v=this.canvasPadding/this.worldTransform.a,w=this.canvasPadding/this.worldTransform.d,x=(j+k+l)/3,y=(m+n+o)/3,z=j-x,A=m-y,B=Math.sqrt(z*z+A*A);j=x+z/B*(B+v),m=y+A/B*(B+w),z=k-x,A=n-y,B=Math.sqrt(z*z+A*A),k=x+z/B*(B+v),n=y+A/B*(B+w),z=l-x,A=o-y,B=Math.sqrt(z*z+A*A),l=x+z/B*(B+v),o=y+A/B*(B+w)}a.save(),a.beginPath(),a.moveTo(j,m),a.lineTo(k,n),a.lineTo(l,o),a.closePath(),a.clip();var C=p*t+s*r+q*u-t*r-s*q-p*u,D=j*t+s*l+k*u-t*l-s*k-j*u,E=p*k+j*r+q*l-k*r-j*q-p*l,F=p*t*l+s*k*r+j*q*u-j*t*r-s*q*l-p*k*u,G=m*t+s*o+n*u-t*o-s*n-m*u,H=p*n+m*r+q*o-n*r-m*q-p*o,I=p*t*o+s*n*r+m*q*u-m*t*r-s*q*o-p*n*u;a.transform(D/C,G/C,E/C,H/C,F/C,I/C),a.drawImage(g,0,0),a.restore()},b.Strip.prototype.renderStripFlat=function(a){var b=this.context,c=a.vertices,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.Strip.prototype.getBounds=function(a){for(var c=a||this.worldTransform,d=c.a,e=c.b,f=c.c,g=c.d,h=c.tx,i=c.ty,j=-1/0,k=-1/0,l=1/0,m=1/0,n=this.vertices,o=0,p=n.length;p>o;o+=2){var q=n[o],r=n[o+1],s=d*q+f*r+h,t=g*r+e*q+i;l=l>s?s:l,m=m>t?t:m,j=s>j?s:j,k=t>k?t:k}if(l===-1/0||1/0===k)return b.EmptyRectangle;var u=this._bounds;return u.x=l,u.width=j-l,u.y=m,u.height=k-m,this._currentBounds=u,u},b.Strip.DrawModes={TRIANGLE_STRIP:0,TRIANGLES:1},b.Rope=function(a,c){b.Strip.call(this,a),this.points=c,this.vertices=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.vertices,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||128,this._height=d||128,this.tileScale=new b.Point(1,1),this.tileScaleOffset=new b.Point(1,1),this.tilePosition=new b.Point,this.renderable=!0,this.tint=16777215,this.textureDebug=!1,this.blendMode=b.blendModes.NORMAL,this.canvasBuffer=null,this.tilingTexture=null,this.tilePattern=null,this.refreshTexture=!0,this.frameWidth=0,this.frameHeight=0},b.TilingSprite.prototype=Object.create(b.Sprite.prototype),b.TilingSprite.prototype.constructor=b.TilingSprite,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){if(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.refreshTexture){if(this.generateTilingTexture(!0),!this.tilingTexture)return;this.tilingTexture.needsUpdate&&(a.renderer.updateTexture(this.tilingTexture.baseTexture),this.tilingTexture.needsUpdate=!1)}a.spriteBatch.renderTilingSprite(this);for(var b=0;bn?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.destroy=function(){b.Sprite.prototype.destroy.call(this),this.tileScale=null,this.tileScaleOffset=null,this.tilePosition=null,this.tilingTexture&&(this.tilingTexture.destroy(!0),this.tilingTexture=null)},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}}),"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,b}.call(this),function(){function a(a,b){this._scaleFactor=a,this._deltaMode=b,this.originalEvent=null}var b=this,c=c||{VERSION:"2.4.1",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,CIRCLE:21,RECTANGLE:22,LINE:23,MATRIX:24,POINT:25,ROUNDEDRECTANGLE:26,CREATURE:27,VIDEO:28,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:PIXI||{}};if(Math.trunc||(Math.trunc=function(a){return 0>a?Math.ceil(a):Math.floor(a)}),Function.prototype.bind||(Function.prototype.bind=function(){var a=Array.prototype.slice;return function(b){function c(){var f=e.concat(a.call(arguments));d.apply(this instanceof c?this:b,f)}var d=this,e=a.call(arguments,1);if("function"!=typeof d)throw new TypeError;return c.prototype=function f(a){return a&&(f.prototype=a),this instanceof f?void 0:new f}(d.prototype),c}}()),Array.isArray||(Array.isArray=function(a){return"[object Array]"==Object.prototype.toString.call(a)}),Array.prototype.forEach||(Array.prototype.forEach=function(a){"use strict";if(void 0===this||null===this)throw new TypeError;var b=Object(this),c=b.length>>>0;if("function"!=typeof a)throw new TypeError;for(var d=arguments.length>=2?arguments[1]:void 0,e=0;c>e;e++)e in b&&a.call(d,b[e],e,b)}),"function"!=typeof window.Uint32Array&&"object"!=typeof window.Uint32Array){var d=function(a){var b=new Array;window[a]=function(a){if("number"==typeof a){Array.call(this,a),this.length=a;for(var b=0;bf&&(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 void 0===a&&(a=50),a>0&&100*Math.random()<=a},randomChoice:function(a,b){return Math.random()<.5?a:b},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(void 0===b)var b=0;if(void 0===c)var c=" ";if(void 0===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},mixinPrototype:function(a,b,c){void 0===c&&(c=!1);for(var d=Object.keys(b),e=0;e0&&(this._radius=.5*d),this.type=c.CIRCLE},c.Circle.prototype={circumference:function(){return 2*Math.PI*this._radius},random:function(a){void 0===a&&(a=new c.Point);var b=2*Math.PI*Math.random(),d=Math.random()+Math.random(),e=d>1?2-d:d,f=e*Math.cos(b),g=e*Math.sin(b);return a.x=this.x+f*this.radius,a.y=this.y+g*this.radius,a},getBounds:function(){return new c.Rectangle(this.x-this.radius,this.y-this.radius,this.diameter,this.diameter)},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 void 0===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 void 0===d&&(d=!1),void 0===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.Ellipse=function(a,b,d,e){a=a||0,b=b||0,d=d||0,e=e||0,this.x=a,this.y=b,this.width=d,this.height=e,this.type=c.ELLIPSE},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 void 0===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)},random:function(a){void 0===a&&(a=new c.Point);var b=Math.random()*Math.PI*2,d=Math.random();return a.x=Math.sqrt(d)*Math.cos(b),a.y=Math.sqrt(d)*Math.sin(b),a.x=this.x+a.x*this.width/2,a.y=this.y+a.y*this.height/2,a},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},PIXI.Ellipse=c.Ellipse,c.Line=function(a,b,d,e){a=a||0,b=b||0,d=d||0,e=e||0,this.start=new c.Point(a,b),this.end=new c.Point(d,e),this.type=c.LINE},c.Line.prototype={setTo:function(a,b,c,d){return this.start.setTo(a,b),this.end.setTo(c,d),this},fromSprite:function(a,b,c){return void 0===c&&(c=!1),c?this.setTo(a.center.x,a.center.y,b.center.x,b.center.y):this.setTo(a.x,a.y,b.x,b.y)},fromAngle:function(a,b,c,d){return this.start.setTo(a,b),this.end.setTo(a+Math.cos(c)*d,b+Math.sin(c)*d),this},rotate:function(a,b){var c=this.start.x,d=this.start.y;return this.start.rotate(this.end.x,this.end.y,a,b,this.length),this.end.rotate(c,d,a,b,this.length),this},intersects:function(a,b,d){return c.Line.intersectsPoints(this.start,this.end,a.start,a.end,b,d)},reflect:function(a){return c.Line.reflect(this,a)},pointOnLine:function(a,b){return(a-this.start.x)*(this.end.y-this.start.y)===(this.end.x-this.start.x)*(b-this.start.y)},pointOnSegment:function(a,b){var c=Math.min(this.start.x,this.end.x),d=Math.max(this.start.x,this.end.x),e=Math.min(this.start.y,this.end.y),f=Math.max(this.start.y,this.end.y);return this.pointOnLine(a,b)&&a>=c&&d>=a&&b>=e&&f>=b},random:function(a){void 0===a&&(a=new c.Point);var b=Math.random();return a.x=this.start.x+b*(this.end.x-this.start.x),a.y=this.start.y+b*(this.end.y-this.start.y),a},coordinatesOnLine:function(a,b){void 0===a&&(a=1),void 0===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 void 0===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)}}),Object.defineProperty(c.Line.prototype,"normalX",{get:function(){return Math.cos(this.angle-1.5707963267948966)}}),Object.defineProperty(c.Line.prototype,"normalY",{get:function(){return Math.sin(this.angle-1.5707963267948966)}}),Object.defineProperty(c.Line.prototype,"normalAngle",{get:function(){return c.Math.wrap(this.angle-1.5707963267948966,-Math.PI,Math.PI)}}),c.Line.intersectsPoints=function(a,b,d,e,f,g){void 0===f&&(f=!0),void 0===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.Line.reflect=function(a,b){return 2*b.normalAngle-3.141592653589793-a.angle},c.Matrix=function(a,b,d,e,f,g){a=a||1,b=b||0,d=d||0,e=e||1,f=f||0,g=g||0,this.a=a,this.b=b,this.c=d,this.d=e,this.tx=f,this.ty=g,this.type=c.MATRIX},c.Matrix.prototype={fromArray:function(a){return this.setTo(a[0],a[1],a[3],a[4],a[2],a[5])},setTo:function(a,b,c,d,e,f){return this.a=a,this.b=b,this.c=c,this.d=d,this.tx=e,this.ty=f,this},clone:function(a){return void 0===a||null===a?a=new c.Matrix(this.a,this.b,this.c,this.d,this.tx,this.ty):(a.a=this.a,a.b=this.b,a.c=this.c,a.d=this.d,a.tx=this.tx,a.ty=this.ty),a},copyTo:function(a){return a.copyFrom(this),a},copyFrom:function(a){return this.a=a.a,this.b=a.b,this.c=a.c,this.d=a.d,this.tx=a.tx,this.ty=a.ty,this},toArray:function(a,b){return void 0===b&&(b=new PIXI.Float32Array(9)),a?(b[0]=this.a,b[1]=this.b,b[2]=0,b[3]=this.c,b[4]=this.d,b[5]=0,b[6]=this.tx,b[7]=this.ty,b[8]=1):(b[0]=this.a,b[1]=this.c,b[2]=this.tx,b[3]=this.b,b[4]=this.d,b[5]=this.ty,b[6]=0,b[7]=0,b[8]=1),b},apply:function(a,b){return void 0===b&&(b=new c.Point),b.x=this.a*a.x+this.c*a.y+this.tx,b.y=this.b*a.x+this.d*a.y+this.ty,b},applyInverse:function(a,b){void 0===b&&(b=new c.Point);var d=1/(this.a*this.d+this.c*-this.b),e=a.x,f=a.y;return b.x=this.d*d*e+-this.c*d*f+(this.ty*this.c-this.tx*this.d)*d,b.y=this.a*d*f+-this.b*d*e+(-this.ty*this.a+this.tx*this.b)*d,b},translate:function(a,b){return this.tx+=a,this.ty+=b,this},scale:function(a,b){return this.a*=a,this.d*=b,this.c*=a,this.b*=b,this.tx*=a,this.ty*=b,this},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},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},identity:function(){return this.setTo(1,0,0,1,0,0)}},c.identityMatrix=new c.Matrix,PIXI.Matrix=c.Matrix,PIXI.identityMatrix=c.identityMatrix,c.Point=function(a,b){a=a||0,b=b||0,this.x=a,this.y=b,this.type=c.POINT},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 void 0===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 void 0===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)},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 void 0===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 void 0===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 void 0===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 void 0===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.negative=function(a,b){return void 0===b&&(b=new c.Point),b.setTo(-a.x,-a.y)},c.Point.multiplyAdd=function(a,b,d,e){return void 0===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 void 0===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 void 0===b&&(b=new c.Point),b.setTo(-a.y,a.x)},c.Point.rperp=function(a,b){return void 0===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){void 0===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){void 0===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 void 0===b&&(b=new c.Point),b.setTo(-1*a.y,a.x)},c.Point.normalize=function(a,b){void 0===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){void 0===f&&(f=!1),void 0===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.x=b+g*Math.cos(h),a.y=d+g*Math.sin(h),a},c.Point.centroid=function(a,b){if(void 0===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.Polygon=function(){this.area=0,this._points=[],arguments.length>0&&this.setTo.apply(this,arguments),this.closed=!0,this.type=c.POLYGON},c.Polygon.prototype={toNumberArray:function(a){void 0===a&&(a=[]);for(var b=0;b=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,c=0,d=a.length;d>c;c++){if("number"==typeof a[c]){var e=new PIXI.Point(a[c],a[c+1]);c++}else var e=new PIXI.Point(a[c].x,a[c].y);this._points.push(e),e.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.Polygon=c.Polygon,c.Rectangle=function(a,b,d,e){a=a||0,b=b||0,d=d||0,e=e||0,this.x=a,this.y=b,this.width=d,this.height=e,this.type=c.RECTANGLE},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 void 0===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)},ceil:function(){this.x=Math.ceil(this.x),this.y=Math.ceil(this.y)},ceilAll:function(){this.x=Math.ceil(this.x),this.y=Math.ceil(this.y),this.width=Math.ceil(this.width),this.height=Math.ceil(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)},resize:function(a,b){return this.width=a,this.height=b,this},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){return c.Rectangle.intersects(this,a)},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)},random:function(a){return void 0===a&&(a=new c.Point),a.x=this.randomX,a.y=this.randomY,a},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,"bottomLeft",{get:function(){return new c.Point(this.x,this.bottom)},set:function(a){this.x=a.x,this.bottom=a.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 void 0===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 void 0===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 void 0===f&&(f=0),!(b>a.right+f||ca.bottom+f||ed&&(d=a.x),a.xf&&(f=a.y),a.y=c&&a<=c+this.width){var d=this.y;if(b>=d&&b<=d+this.height)return!0}return!1}},c.RoundedRectangle.prototype.constructor=c.RoundedRectangle,PIXI.RoundedRectangle=c.RoundedRectangle,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.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.displayObject=null,this.scale=null,this.totalInView=0,this._targetPosition=new c.Point,this._edge=0,this._position=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={preUpdate:function(){this.totalInView=0},follow:function(a,b){void 0===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),this.target.parent&&this._targetPosition.multiply(this.target.parent.worldTransform.a,this.target.parent.worldTransform.d),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.copyFrom(this.game.world.bounds)},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.Create=function(a){this.game=a,this.bmd=a.make.bitmapData(),this.canvas=this.bmd.canvas,this.ctx=this.bmd.context,this.palettes=[{0:"#000",1:"#9D9D9D",2:"#FFF",3:"#BE2633",4:"#E06F8B",5:"#493C2B",6:"#A46422",7:"#EB8931",8:"#F7E26B",9:"#2F484E",A:"#44891A",B:"#A3CE27",C:"#1B2632",D:"#005784",E:"#31A2F2",F:"#B2DCEF"},{0:"#000",1:"#191028",2:"#46af45",3:"#a1d685",4:"#453e78",5:"#7664fe",6:"#833129",7:"#9ec2e8",8:"#dc534b",9:"#e18d79",A:"#d6b97b",B:"#e9d8a1",C:"#216c4b",D:"#d365c8",E:"#afaab9",F:"#f5f4eb"},{0:"#000",1:"#2234d1",2:"#0c7e45",3:"#44aacc",4:"#8a3622",5:"#5c2e78",6:"#aa5c3d",7:"#b5b5b5",8:"#5e606e",9:"#4c81fb",A:"#6cd947",B:"#7be2f9",C:"#eb8a60",D:"#e23d69",E:"#ffd93f",F:"#fff"},{0:"#000",1:"#fff",2:"#8b4131",3:"#7bbdc5",4:"#8b41ac",5:"#6aac41",6:"#3931a4",7:"#d5de73",8:"#945a20",9:"#5a4100",A:"#bd736a",B:"#525252",C:"#838383",D:"#acee8b",E:"#7b73de",F:"#acacac"},{0:"#000",1:"#191028",2:"#46af45",3:"#a1d685",4:"#453e78",5:"#7664fe",6:"#833129",7:"#9ec2e8",8:"#dc534b",9:"#e18d79",A:"#d6b97b",B:"#e9d8a1",C:"#216c4b",D:"#d365c8",E:"#afaab9",F:"#fff"}]},c.Create.PALETTE_ARNE=0,c.Create.PALETTE_JMP=1,c.Create.PALETTE_CGA=2,c.Create.PALETTE_C64=3,c.Create.PALETTE_JAPANESE_MACHINE=4,c.Create.prototype={texture:function(a,b,c,d,e){void 0===c&&(c=8),void 0===d&&(d=c),void 0===e&&(e=0);var f=b[0].length*c,g=b.length*d;this.bmd.resize(f,g),this.bmd.clear();for(var h=0;hg;g+=e)this.ctx.fillRect(0,g,b,1);for(var h=0;b>h;h+=d)this.ctx.fillRect(h,0,1,c);return this.bmd.generateTexture(a)}},c.Create.prototype.constructor=c.Create,c.State=function(){this.game=null,this.key="",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={init:function(){},preload:function(){},loadUpdate:function(){},loadRender:function(){},create:function(){},update:function(){},preRender:function(){},render:function(){},resize:function(){},paused:function(){},resumed: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.onStateChange=new c.Signal,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),null!==this._pendingState&&"string"!=typeof this._pendingState&&this.add("default",this._pendingState,!0)},add:function(a,b,d){void 0===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.onPreRenderCallback=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){void 0===b&&(b=!0),void 0===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){void 0===a&&(a=!0),void 0===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){var a=this.current;if(this.clearCurrentState(),this.setCurrentState(this._pendingState),this.onStateChange.dispatch(this.current,a),this.current!==this._pendingState)return;this._pendingState=null,this.onPreloadCallback?(this.game.load.reset(!0),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||this.states[a].create||this.states[a].update||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,this.states[a].key=a},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&&this.game.physics.reset(),this.current=a,this._created=!1,this.onInitCallback.apply(this.callbackContext,this._args),a===this._pendingState&&(this._args=[]),this.game._kickstart=!0},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(a){this._created&&this.onPreRenderCallback&&this.onPreRenderCallback.call(this.callbackContext,this.game,a)},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.context.restore()):this.onRenderCallback.call(this.callbackContext,this.game)):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,this.current=""}},c.StateManager.prototype.constructor=c.StateManager,Object.defineProperty(c.StateManager.prototype,"created",{get:function(){return this._created}}),c.Signal=function(){},c.Signal.prototype={_bindings:null,_prevParams:null,memorize:!1,_shouldPropagate:!0,active:!0,_boundDispatch:!0,validateListener:function(a,b){if("function"!=typeof a)throw new Error("Phaser.Signal: listener is a required param of {fn}() and should be a Function.".replace("{fn}",b))},_registerListener:function(a,b,d,e,f){var g,h=this._indexOfListener(a,d);if(-1!==h){if(g=this._bindings[h],g.isOnce()!==b)throw new Error("You cannot add"+(b?"":"Once")+"() then add"+(b?"Once":"")+"() the same listener without removing the relationship first.")}else g=new c.SignalBinding(this,a,b,d,e,f),this._addBinding(g);return this.memorize&&this._prevParams&&g.execute(this._prevParams),g},_addBinding:function(a){this._bindings||(this._bindings=[]);var b=this._bindings.length;do b--;while(this._bindings[b]&&a._priority<=this._bindings[b]._priority);this._bindings.splice(b+1,0,a)},_indexOfListener:function(a,b){if(!this._bindings)return-1;void 0===b&&(b=null);for(var c,d=this._bindings.length;d--;)if(c=this._bindings[d],c._listener===a&&c.context===b)return d;return-1},has:function(a,b){return-1!==this._indexOfListener(a,b)},add:function(a,b,c){this.validateListener(a,"add");var d=[];if(arguments.length>3)for(var e=3;e3)for(var e=3;ea||a>=this.children.length?-1:this.getChildAt(a)},c.Group.prototype.create=function(a,b,c,d,e){void 0===e&&(e=!0);var f=new this.classType(this.game,a,b,c,d);return f.exists=e,f.visible=e,f.alive=e,this.addChild(f),f.z=this.children.length,this.enableBody&&this.game.physics.enable(f,this.physicsBodyType,this.enableBodyDebug),f.events&&f.events.onAddedToGroup$dispatch(f,this),null===this.cursor&&(this.cursor=f),f},c.Group.prototype.createMultiple=function(a,b,c,d){void 0===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 void 0===a&&(a=0),a>this.children.length-1&&(a=0),this.cursor?(this.cursorIndex=a,this.cursor=this.children[this.cursorIndex],this.cursor):void 0},c.Group.prototype.next=function(){return this.cursor?(this.cursorIndex>=this.children.length-1?this.cursorIndex=0:this.cursorIndex++,this.cursor=this.children[this.cursorIndex],this.cursor):void 0},c.Group.prototype.previous=function(){return this.cursor?(0===this.cursorIndex?this.cursorIndex=this.children.length-1:this.cursorIndex--,this.cursor=this.children[this.cursorIndex],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);return-1!==d?(b.parent&&(b.parent instanceof c.Group?b.parent.remove(b):b.parent.removeChild(b)),this.remove(a),this.addAt(b,d),a):void 0},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(void 0===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 void 0===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 void 0===g&&(g=!1),b=b.split("."),void 0===d&&(d=!1),void 0===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){void 0===c&&(c=!1),void 0===d&&(d=!1),void 0===f&&(f=!1),a=a.split("."),e=e||0;for(var g=0;g2){c=[];for(var d=2;d2){e=[];for(var f=2;f2){d=[null];for(var e=2;e2){d=[null];for(var e=2;e2){d=[null];for(var e=2;eb[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;for(var h=0,i=0;i0?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(void 0===b&&(b=!1),void 0===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.removeFromHash(a),this.updateZ(),this.cursor===a&&this.next(),b&&d&&d.destroy(!0),!0},c.Group.prototype.moveAll=function(a,b){if(void 0===b&&(b=!1),this.children.length>0&&a instanceof c.Group){do a.add(this.children[0],b);while(this.children.length>0);this.hash=[],this.cursor=null}return a},c.Group.prototype.removeAll=function(a,b){if(void 0===a&&(a=!1),void 0===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]);this.removeFromHash(c),a&&c&&c.destroy(!0)}while(this.children.length>0);this.hash=[],this.cursor=null}},c.Group.prototype.removeBetween=function(a,b,c,d){if(void 0===b&&(b=this.children.length-1),void 0===c&&(c=!1),void 0===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]);this.removeFromHash(f),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||(void 0===a&&(a=!0),void 0===b&&(b=!1),this.onDestroy.dispatch(this,a,b),this.removeAll(a),this.cursor=null,this.filters=null,this.pendingDestroy=!1,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)}}),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,this.game.state.onStateChange.add(this.stateChange,this) +},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.stateChange=function(){this.x=0,this.y=0,this.camera.reset()},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.x=a,this.y=b,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,this.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();(f||g)&&(this.onResize&&this.onResize.call(this.onResizeContext,this,e),this.updateLayout(),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,Object.defineProperty(c.ScaleManager.prototype,"boundingParent",{get:function(){if(this.parentIsWindow||this.isFullScreen&&!this._createdFullScreenTarget)return null;var a=this.game.canvas&&this.game.canvas.parentNode;return a||null}}),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,"isGamePortrait",{get:function(){return this.height>this.width}}),Object.defineProperty(c.ScaleManager.prototype,"isGameLandscape",{get:function(){return this.width>this.height}}),c.Game=function(a,b,d,e,f,g,h,i){return this.id=c.GAMES.push(this)-1,this.config=null,this.physicsConfig=i,this.parent="",this.width=800,this.height=600,this.resolution=1,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.plugins=null,this.rnd=null,this.device=c.Device,this.camera=null,this.canvas=null,this.context=null,this.debug=null,this.particles=null,this.create=null,this.lockRender=!1,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.currentUpdateID=0,this.updatesThisFrame=1,this._deltaTime=0,this._lastCount=0,this._spiraling=0,this._kickstart=!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)),this.device.whenReady(this.boot,this),this},c.Game.prototype={parseConfig:function(a){this.config=a,void 0===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.resolution&&(this.resolution=a.resolution),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||(this.onPause=new c.Signal,this.onResume=new c.Signal,this.onBlur=new c.Signal,this.onFocus=new c.Signal,this.isBooted=!0,this.math=c.Math,this.scale=new c.ScaleManager(this,this._width,this._height),this.stage=new c.Stage(this),this.setUpRenderer(),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.create=new c.Create(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.debug={preUpdate:function(){},update:function(){},reset:function(){}},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._kickstart=!0,window.focus&&(!window.PhaserGlobal||window.PhaserGlobal&&!window.PhaserGlobal.stopFocus)&&window.focus(),this.raf.start())},showDebugHeader:function(){if(!window.PhaserGlobal||!window.PhaserGlobal.hideBanner){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: #9854d8","background: #6c2ca7","color: #ffffff; background: #450f78;","background: #6c2ca7","background: #9854d8","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:this.resolution,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:this.resolution,antialias:this.antialias,preserveDrawingBuffer:this.preserveDrawingBuffer}),this.context=null,this.canvas.addEventListener("webglcontextlost",this.contextLost.bind(this),!1),this.canvas.addEventListener("webglcontextrestored",this.contextRestored.bind(this),!1);this.renderType!==c.HEADLESS&&(this.stage.smoothed=this.antialias,c.Canvas.addToDOM(this.canvas,this.parent,!1),c.Canvas.setTouchAction(this.canvas))},contextLost:function(a){a.preventDefault(),this.renderer.contextLost=!0},contextRestored:function(){this.renderer.initContext(),this.cache.clearGLTextures(),this.renderer.contextLost=!1 +},update:function(a){if(this.time.update(a),this._kickstart)return this.updateLogic(1/this.time.desiredFps),this.stage.updateTransform(),this.updateRender(this.time.slowMotion*this.time.desiredFps),void(this._kickstart=!1);if(this._spiraling>1&&!this.forceSingleUpdate)this.time.time>this._nextFpsNotification&&(this._nextFpsNotification=this.time.time+1e4,this.fpsProblemNotifier.dispatch()),this._deltaTime=0,this._spiraling=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);var c=0;for(this.updatesThisFrame=Math.floor(this._deltaTime/b),this.forceSingleUpdate&&(this.updatesThisFrame=Math.min(1,this.updatesThisFrame));this._deltaTime>=b&&(this._deltaTime-=b,this.currentUpdateID=c,this.updateLogic(1/this.time.desiredFps),this.stage.updateTransform(),c++,!this.forceSingleUpdate||1!==c););c>this._lastCount?this._spiraling++:c=c.Input.MAX_POINTERS)return console.warn("Phaser.Input.addPointer: Maximum limit of "+c.Input.MAX_POINTERS+" pointers reached."),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&&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 a-b},getPointer:function(a){void 0===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._pollCounterthis.game.time.time},justReleased:function(a){return a=a||250,this.isUp&&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,this.altKey=!1,this.shiftKey=!1,this.ctrlKey=!1},destroy:function(){this.onDown.dispose(),this.onUp.dispose(),this.onFloat.dispose(),this.parent=null,this.game=null}},c.DeviceButton.prototype.constructor=c.DeviceButton,Object.defineProperty(c.DeviceButton.prototype,"duration",{get:function(){return this.isUp?-1:this.game.time.time-this.timeDown}}),c.Pointer=function(a,b){this.game=a,this.id=b,this.type=c.POINTER,this.exists=!0,this.identifier=0,this.pointerId=null,this.target=null,this.button=null,this.leftButton=new c.DeviceButton(this,c.Pointer.LEFT_BUTTON),this.middleButton=new c.DeviceButton(this,c.Pointer.MIDDLE_BUTTON),this.rightButton=new c.DeviceButton(this,c.Pointer.RIGHT_BUTTON),this.backButton=new c.DeviceButton(this,c.Pointer.BACK_BUTTON),this.forwardButton=new c.DeviceButton(this,c.Pointer.FORWARD_BUTTON),this.eraserButton=new c.DeviceButton(this,c.Pointer.ERASER_BUTTON),this._holdSent=!1,this._history=[],this._nextDrop=0,this._stateReset=!1,this.withinGame=!1,this.clientX=-1,this.clientY=-1,this.pageX=-1,this.pageY=-1,this.screenX=-1,this.screenY=-1,this.rawMovementX=0,this.rawMovementY=0,this.movementX=0,this.movementY=0,this.x=-1,this.y=-1,this.isMouse=0===b,this.isDown=!1,this.isUp=!0,this.timeDown=0,this.timeUp=0,this.previousTapTime=0,this.totalTouches=0,this.msSinceLastClick=Number.MAX_VALUE,this.targetObject=null,this.active=!1,this.dirty=!1,this.position=new c.Point,this.positionDown=new c.Point,this.positionUp=new c.Point,this.circle=new c.Circle(0,0,44),this._clickTrampolines=null,this._trampolineTargetObject=null},c.Pointer.NO_BUTTON=0,c.Pointer.LEFT_BUTTON=1,c.Pointer.RIGHT_BUTTON=2,c.Pointer.MIDDLE_BUTTON=4,c.Pointer.BACK_BUTTON=8,c.Pointer.FORWARD_BUTTON=16,c.Pointer.ERASER_BUTTON=32,c.Pointer.prototype={resetButtons:function(){this.isDown=!1,this.isUp=!0,this.isMouse&&(this.leftButton.reset(),this.middleButton.reset(),this.rightButton.reset(),this.backButton.reset(),this.forwardButton.reset(),this.eraserButton.reset())},updateButtons:function(a){this.button=a.button;var b=a.buttons;void 0!==b&&(c.Pointer.LEFT_BUTTON&b?this.leftButton.start(a):this.leftButton.stop(a),c.Pointer.RIGHT_BUTTON&b?this.rightButton.start(a):this.rightButton.stop(a),c.Pointer.MIDDLE_BUTTON&b?this.middleButton.start(a):this.middleButton.stop(a),c.Pointer.BACK_BUTTON&b?this.backButton.start(a):this.backButton.stop(a),c.Pointer.FORWARD_BUTTON&b?this.forwardButton.start(a):this.forwardButton.stop(a),c.Pointer.ERASER_BUTTON&b?this.eraserButton.start(a):this.eraserButton.stop(a),a.ctrlKey&&this.leftButton.isDown&&this.rightButton.start(a),this.isUp=!0,this.isDown=!1,(this.leftButton.isDown||this.rightButton.isDown||this.middleButton.isDown||this.backButton.isDown||this.forwardButton.isDown||this.eraserButton.isDown)&&(this.isUp=!1,this.isDown=!0))},start:function(a){return a.pointerId&&(this.pointerId=a.pointerId),this.identifier=a.identifier,this.target=a.target,this.isMouse?this.updateButtons(a):(this.isDown=!0,this.isUp=!1),this._history=[],this.active=!0,this.withinGame=!0,this.dirty=!1,this._clickTrampolines=null,this._trampolineTargetObject=null,this.msSinceLastClick=this.game.time.time-this.timeDown,this.timeDown=this.game.time.time,this._holdSent=!1,this.move(a,!0),this.positionDown.setTo(this.x,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.totalActivePointers)&&(this.game.input.x=this.x,this.game.input.y=this.y,this.game.input.position.setTo(this.x,this.y),this.game.input.onDown.dispatch(this,a),this.game.input.resetSpeed(this.x,this.y)),this._stateReset=!1,this.totalTouches++,null!==this.targetObject&&this.targetObject._touchedHandler(this),this},update:function(){this.active&&(this.dirty&&(this.game.input.interactiveItems.total>0&&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.totalActivePointers)&&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(void 0===b&&(b=!1),void 0!==a.button&&(this.button=a.button),b&&this.updateButtons(a),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.totalActivePointers)&&(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.renderOrderID,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.renderOrderID,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&&this.withinGame?void a.preventDefault():(this.isMouse?this.updateButtons(a):(this.isDown=!1,this.isUp=!0),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.totalActivePointers)&&(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.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&&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;fd;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}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 void 0===c&&(c=!0),0===this.sprite.scale.x||0===this.sprite.scale.y||this.priorityIDa||this.priorityID===a&&this.sprite.renderOrderIDb;b++)if(this._pointerData[b].isOver)return!0}return!1},pointerOut:function(a){if(this.enabled){if(void 0!==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)?(void 0===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)?(void 0===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&&this._pointerData[a.id].isOver){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.snapPoint.set(this.sprite.cameraOffset.x,this.sprite.cameraOffset.y))):(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,this.snapPoint.set(this.sprite.x,this.sprite.y))),this.sprite.events.onDragUpdate.dispatch(this.sprite,a,b,c,this.snapPoint),!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){var b=this.sprite.x,c=this.sprite.y;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 d=this.sprite.getBounds();this.sprite.x=this.globalToLocalX(a.x)+(this.sprite.x-d.centerX),this.sprite.y=this.globalToLocalY(a.y)+(this.sprite.y-d.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.dragStartPoint.set(b,c),this.sprite.events.onDragStart$dispatch(this.sprite,a,b,c)},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){void 0===a&&(a=!0),void 0===b&&(b=!0),this.allowHorizontalDrag=a,this.allowVerticalDrag=b},enableSnap:function(a,b,c,d,e,f){void 0===c&&(c=!0),void 0===d&&(d=!1),void 0===e&&(e=0),void 0===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.leftthis.boundsRect.right&&(this.sprite.x=this.boundsRect.right-(this.sprite.width-this.sprite.offsetX)),this.sprite.topthis.boundsRect.bottom&&(this.sprite.y=this.boundsRect.bottom-(this.sprite.height-this.sprite.offsetY)))},checkBoundsSprite:function(){this.sprite.fixedToCamera&&this.boundsSprite.fixedToCamera?(this.sprite.cameraOffset.xthis.boundsSprite.cameraOffset.x+this.boundsSprite.width&&(this.sprite.cameraOffset.x=this.boundsSprite.cameraOffset.x+this.boundsSprite.width-this.sprite.width),this.sprite.cameraOffset.ythis.boundsSprite.cameraOffset.y+this.boundsSprite.height&&(this.sprite.cameraOffset.y=this.boundsSprite.cameraOffset.y+this.boundsSprite.height-this.sprite.height)):(this.sprite.leftthis.boundsSprite.right&&(this.sprite.x=this.boundsSprite.right-(this.sprite.width-this.sprite.offsetX)),this.sprite.topthis.boundsSprite.bottom&&(this.sprite.y=this.boundsSprite.bottom-(this.sprite.height-this.sprite.offsetY)))}},c.InputHandler.prototype.constructor=c.InputHandler,c.Gamepad=function(a){this.game=a,this._gamepadIndexMap={},this._rawPads=[],this._active=!1,this.enabled=!0,this._gamepadSupportAvailable=!!navigator.webkitGetGamepads||!!navigator.webkitGamepads||-1!=navigator.userAgent.indexOf("Firefox/")||!!navigator.getGamepads,this._prevRawGamepadTypes=[],this._prevTimestamps=[],this.callbackContext=this,this.onConnectCallback=null,this.onDisconnectCallback=null,this.onDownCallback=null,this.onUpCallback=null,this.onAxisCallback=null,this.onFloatCallback=null,this._ongamepadconnected=null,this._gamepaddisconnected=null,this._gamepads=[new c.SinglePad(a,this),new c.SinglePad(a,this),new c.SinglePad(a,this),new c.SinglePad(a,this)]},c.Gamepad.prototype={addCallbacks:function(a,b){"undefined"!=typeof b&&(this.onConnectCallback="function"==typeof b.onConnect?b.onConnect:this.onConnectCallback,this.onDisconnectCallback="function"==typeof b.onDisconnect?b.onDisconnect:this.onDisconnectCallback,this.onDownCallback="function"==typeof b.onDown?b.onDown:this.onDownCallback,this.onUpCallback="function"==typeof b.onUp?b.onUp:this.onUpCallback,this.onAxisCallback="function"==typeof b.onAxis?b.onAxis:this.onAxisCallback,this.onFloatCallback="function"==typeof b.onFloat?b.onFloat:this.onFloatCallback,this.callbackContext=a)},start:function(){if(!this._active){this._active=!0;var a=this;this._onGamepadConnected=function(b){return a.onGamepadConnected(b)},this._onGamepadDisconnected=function(b){return a.onGamepadDisconnected(b)},window.addEventListener("gamepadconnected",this._onGamepadConnected,!1),window.addEventListener("gamepaddisconnected",this._onGamepadDisconnected,!1)}},onGamepadConnected:function(a){var b=a.gamepad;this._rawPads.push(b),this._gamepads[b.index].connect(b)},onGamepadDisconnected:function(a){var b=a.gamepad;for(var c in this._rawPads)this._rawPads[c].index===b.index&&this._rawPads.splice(c,1);this._gamepads[b.index].disconnect()},update:function(){this._pollGamepads(),this.pad1.pollStatus(),this.pad2.pollStatus(),this.pad3.pollStatus(),this.pad4.pollStatus()},_pollGamepads:function(){if(navigator.getGamepads)var a=navigator.getGamepads();else if(navigator.webkitGetGamepads)var a=navigator.webkitGetGamepads();else if(navigator.webkitGamepads)var a=navigator.webkitGamepads();if(a){this._rawPads=[];for(var b=!1,c=0;c0&&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.maxHealth&&(this.health=this.maxHealth)),this}},c.Component.InCamera=function(){},c.Component.InCamera.prototype={inCamera:{get:function(){return this.game.world.camera.view.intersects(this._bounds)}}},c.Component.InputEnabled=function(){},c.Component.InputEnabled.prototype={input:null,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()}}},c.Component.InWorld=function(){},c.Component.InWorld.preUpdate=function(){if((this.autoCull||this.checkWorldBounds)&&(this._bounds.copyFrom(this.getBounds()),this._bounds.x+=this.game.camera.view.x,this._bounds.y+=this.game.camera.view.y,this.autoCull&&(this.game.world.camera.view.intersects(this._bounds)?(this.renderable=!0,this.game.world.camera.totalInView++):this.renderable=!1),this.checkWorldBounds))if(this._outOfBoundsFired&&this.game.world.bounds.intersects(this._bounds))this._outOfBoundsFired=!1,this.events.onEnterBounds$dispatch(this);else if(!this._outOfBoundsFired&&!this.game.world.bounds.intersects(this._bounds)&&(this._outOfBoundsFired=!0,this.events.onOutOfBounds$dispatch(this),this.outOfBoundsKill))return this.kill(),!1;return!0},c.Component.InWorld.prototype={checkWorldBounds:!1,outOfBoundsKill:!1,_outOfBoundsFired:!1,inWorld:{get:function(){return this.game.world.bounds.intersects(this.getBounds())}}},c.Component.LifeSpan=function(){},c.Component.LifeSpan.preUpdate=function(){return this.lifespan>0&&(this.lifespan-=this.game.time.physicsElapsedMS,this.lifespan<=0)?(this.kill(),!1):!0},c.Component.LifeSpan.prototype={alive:!0,lifespan:0,revive:function(a){return void 0===a&&(a=1),this.alive=!0,this.exists=!0,this.visible=!0,"number"==typeof this.health&&(this.health=a),this.events&&this.events.onRevived$dispatch(this),this},kill:function(){return this.alive=!1,this.exists=!1,this.visible=!1,this.events&&this.events.onKilled$dispatch(this),this}},c.Component.LoadTexture=function(){},c.Component.LoadTexture.prototype={customRender:!1,_frame:null,loadTexture:function(a,b,d){b=b||0,(d||void 0===d)&&this.animations&&this.animations.stop(),this.key=a,this.customRender=!1;var e=this.game.cache,f=!0,g=!this.texture.baseTexture.scaleMode;if(c.RenderTexture&&a instanceof c.RenderTexture)this.key=a.key,this.setTexture(a);else if(c.BitmapData&&a instanceof c.BitmapData)this.customRender=!0,this.setTexture(a.texture),e.hasFrameData(a.key,c.Cache.BITMAPDATA)&&(f=!this.animations.loadFrameData(e.getFrameData(a.key,c.Cache.BITMAPDATA),b));else if(c.Video&&a instanceof c.Video){this.customRender=!0;var h=a.texture.valid;this.setTexture(a.texture),this.setFrame(a.texture.frame.clone()),a.onChangeSource.add(this.resizeFrame,this),this.texture.valid=h}else if(a instanceof PIXI.Texture)this.setTexture(a);else{var i=e.getImage(a,!0);this.key=i.key,this.setTexture(new PIXI.Texture(i.base)),f=!this.animations.loadFrameData(i.frameData,b)}f&&(this._frame=c.Rectangle.clone(this.texture.frame)),g||(this.texture.baseTexture.scaleMode=1)},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.requiresReTint=!0,this.texture._updateUvs(),this.tilingTexture&&(this.refreshTexture=!0)},resizeFrame:function(a,b,c){this.texture.frame.resize(b,c),this.texture.setFrame(this.texture.frame)},resetFrame:function(){this._frame&&this.setFrame(this._frame)},frame:{get:function(){return this.animations.frame},set:function(a){this.animations.frame=a}},frameName:{get:function(){return this.animations.frameName},set:function(a){this.animations.frameName=a}}},c.Component.Overlap=function(){},c.Component.Overlap.prototype={overlap:function(a){return c.Rectangle.intersects(this.getBounds(),a.getBounds())}},c.Component.PhysicsBody=function(){},c.Component.PhysicsBody.preUpdate=function(){return this.fresh&&this.exists?(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.previousPosition.set(this.world.x,this.world.y),this.previousRotation=this.rotation,this.body&&this.body.preUpdate(),this.fresh=!1,!1):(this.previousPosition.set(this.world.x,this.world.y),this.previousRotation=this.rotation,this._exists&&this.parent.exists?!0:(this.renderOrderID=-1,!1))},c.Component.PhysicsBody.postUpdate=function(){this.exists&&this.body&&this.body.postUpdate()},c.Component.PhysicsBody.prototype={body:null,x:{get:function(){return this.position.x},set:function(a){this.position.x=a,this.body&&!this.body.dirty&&(this.body._reset=!0)}},y:{get:function(){return this.position.y},set:function(a){this.position.y=a,this.body&&!this.body.dirty&&(this.body._reset=!0)}}},c.Component.Reset=function(){},c.Component.Reset.prototype.reset=function(a,b,c){return void 0===c&&(c=1),this.world.set(a,b),this.position.set(a,b),this.fresh=!0,this.exists=!0,this.visible=!0,this.renderable=!0,this.components.InWorld&&(this._outOfBoundsFired=!1),this.components.LifeSpan&&(this.alive=!0,this.health=c),this.components.PhysicsBody&&this.body&&this.body.reset(a,b,!1,!1),this},c.Component.ScaleMinMax=function(){},c.Component.ScaleMinMax.prototype={transformCallback:this.checkTransform,transformCallbackContext:this,scaleMin:null,scaleMax:null,checkTransform:function(a){this.scaleMin&&(a.athis.scaleMax.x&&(a.a=this.scaleMax.x),a.d>this.scaleMax.y&&(a.d=this.scaleMax.y))},setScaleMinMax:function(a,b,d,e){void 0===b?b=d=e=a:void 0===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)}},c.Component.Smoothed=function(){},c.Component.Smoothed.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)}}},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 void 0===f&&(f=this.world),f.add(new c.Image(this.game,a,b,d,e))},sprite:function(a,b,c,d,e){return void 0===e&&(e=this.world),e.create(a,b,c,d)},creature:function(a,b,d,e,f){void 0===f&&(f=this.world);var g=new c.Creature(this.game,a,b,d,e);return f.add(g),g},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 void 0===a&&(a=null),void 0===b&&(b="group"),void 0===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 void 0===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 void 0===g&&(g=this.world),g.add(new c.Rope(this.game,a,b,d,e,f))},text:function(a,b,d,e,f){return void 0===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 void 0===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 void 0===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 void 0===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){(void 0===d||""===d)&&(d=this.game.rnd.uuid()),void 0===e&&(e=!1);var f=new c.RenderTexture(this.game,a,b,d);return e&&this.game.cache.addRenderTexture(d,f),f},video:function(a,b){return new c.Video(this.game,a,b)},bitmapData:function(a,b,d,e){void 0===e&&(e=!1),(void 0===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,this.game.tweens)},group:function(a,b,d,e,f){return new c.Group(this.game,a,b,d,e,f)},spriteBatch:function(a,b,d){return void 0===b&&(b="group"),void 0===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,g){return new c.BitmapText(this.game,a,b,d,e,f,g)},tilemap:function(a,b,d,e,f){return new c.Tilemap(this.game,a,b,d,e,f)},renderTexture:function(a,b,d,e){(void 0===d||""===d)&&(d=this.game.rnd.uuid()),void 0===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){void 0===e&&(e=!1),(void 0===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.Sprite=function(a,b,d,e,f){b=b||0,d=d||0,e=e||null,f=f||null,this.type=c.SPRITE,this.physicsType=c.SPRITE,PIXI.Sprite.call(this,PIXI.TextureCache.__default),c.Component.Core.init.call(this,a,b,d,e,f)},c.Sprite.prototype=Object.create(PIXI.Sprite.prototype),c.Sprite.prototype.constructor=c.Sprite,c.Component.Core.install.call(c.Sprite.prototype,["Angle","Animation","AutoCull","Bounds","BringToTop","Crop","Delta","Destroy","FixedToCamera","Health","InCamera","InputEnabled","InWorld","LifeSpan","LoadTexture","Overlap","PhysicsBody","Reset","ScaleMinMax","Smoothed"]),c.Sprite.prototype.preUpdatePhysics=c.Component.PhysicsBody.preUpdate,c.Sprite.prototype.preUpdateLifeSpan=c.Component.LifeSpan.preUpdate,c.Sprite.prototype.preUpdateInWorld=c.Component.InWorld.preUpdate,c.Sprite.prototype.preUpdateCore=c.Component.Core.preUpdate,c.Sprite.prototype.preUpdate=function(){return this.preUpdatePhysics()&&this.preUpdateLifeSpan()&&this.preUpdateInWorld()?this.preUpdateCore():!1},c.Image=function(a,b,d,e,f){b=b||0,d=d||0,e=e||null,f=f||null,this.type=c.IMAGE,PIXI.Sprite.call(this,PIXI.TextureCache.__default),c.Component.Core.init.call(this,a,b,d,e,f)},c.Image.prototype=Object.create(PIXI.Sprite.prototype),c.Image.prototype.constructor=c.Image,c.Component.Core.install.call(c.Image.prototype,["Angle","Animation","AutoCull","Bounds","BringToTop","Crop","Destroy","FixedToCamera","InputEnabled","LifeSpan","LoadTexture","Overlap","Reset","Smoothed"]),c.Image.prototype.preUpdateInWorld=c.Component.InWorld.preUpdate,c.Image.prototype.preUpdateCore=c.Component.Core.preUpdate,c.Image.prototype.preUpdate=function(){return this.preUpdateInWorld()?this.preUpdateCore():!1},c.TileSprite=function(a,b,d,e,f,g,h){b=b||0,d=d||0,e=e||256,f=f||256,g=g||null,h=h||null,this.type=c.TILESPRITE,this.physicsType=c.SPRITE,this._scroll=new c.Point;var i=a.cache.getImage("__default",!0);PIXI.TilingSprite.call(this,new PIXI.Texture(i.base),e,f),c.Component.Core.init.call(this,a,b,d,g,h)},c.TileSprite.prototype=Object.create(PIXI.TilingSprite.prototype),c.TileSprite.prototype.constructor=c.TileSprite,c.Component.Core.install.call(c.TileSprite.prototype,["Angle","Animation","AutoCull","Bounds","BringToTop","Destroy","FixedToCamera","Health","InCamera","InputEnabled","InWorld","LifeSpan","LoadTexture","Overlap","PhysicsBody","Reset","Smoothed"]),c.TileSprite.prototype.preUpdatePhysics=c.Component.PhysicsBody.preUpdate,c.TileSprite.prototype.preUpdateLifeSpan=c.Component.LifeSpan.preUpdate,c.TileSprite.prototype.preUpdateInWorld=c.Component.InWorld.preUpdate,c.TileSprite.prototype.preUpdateCore=c.Component.Core.preUpdate,c.TileSprite.prototype.preUpdate=function(){return 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.preUpdatePhysics()&&this.preUpdateLifeSpan()&&this.preUpdateInWorld()?this.preUpdateCore():!1},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.destroy=function(a){c.Component.Destroy.prototype.destroy.call(this,a),PIXI.TilingSprite.prototype.destroy.call(this)},c.TileSprite.prototype.reset=function(a,b){return c.Component.Reset.prototype.reset.call(this,a,b),this.tilePosition.x=0,this.tilePosition.y=0,this},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.type=c.ROPE,this._scroll=new c.Point,PIXI.Rope.call(this,PIXI.TextureCache.__default,this.points),c.Component.Core.init.call(this,a,b,d,e,f)},c.Rope.prototype=Object.create(PIXI.Rope.prototype),c.Rope.prototype.constructor=c.Rope,c.Component.Core.install.call(c.Rope.prototype,["Angle","Animation","AutoCull","Bounds","BringToTop","Crop","Delta","Destroy","FixedToCamera","InputEnabled","InWorld","LifeSpan","LoadTexture","Overlap","PhysicsBody","Reset","ScaleMinMax","Smoothed"]),c.Rope.prototype.preUpdatePhysics=c.Component.PhysicsBody.preUpdate,c.Rope.prototype.preUpdateLifeSpan=c.Component.LifeSpan.preUpdate,c.Rope.prototype.preUpdateInWorld=c.Component.InWorld.preUpdate,c.Rope.prototype.preUpdateCore=c.Component.Core.preUpdate,c.Rope.prototype.preUpdate=function(){return 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.preUpdatePhysics()&&this.preUpdateLifeSpan()&&this.preUpdateInWorld()?this.preUpdateCore():!1},c.Rope.prototype.update=function(){this._hasUpdateAnimation&&this.updateAnimation.call(this)},c.Rope.prototype.reset=function(a,b){return c.Component.Reset.prototype.reset.call(this,a,b),this.tilePosition.x=0,this.tilePosition.y=0,this},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=Math.abs(a);var f=this.width-a;c.drawImage(e,0,0,a,d,f,0,a,d),c.drawImage(e,a,0,f,d,0,0,f,d)}else{var f=this.width-a;c.drawImage(e,f,0,a,d,0,0,a,d),c.drawImage(e,0,0,f,d,a,0,f,d)}return this.clear(),this.copy(this._swapCanvas)},moveV:function(a){var b=this._swapCanvas,c=b.getContext("2d"),d=this.width,e=this.canvas;if(c.clearRect(0,0,this.width,this.height),0>a){a=Math.abs(a);var f=this.height-a;c.drawImage(e,0,0,d,a,0,f,d,a),c.drawImage(e,0,a,d,f,0,0,d,f)}else{var f=this.height-a;c.drawImage(e,0,f,d,a,0,0,d,a),c.drawImage(e,0,0,d,f,0,a,d,f)}return this.clear(),this.copy(this._swapCanvas)},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){void 0===c&&(c=0),void 0===d&&(d=0),void 0===e&&(e=this.width),void 0===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((void 0===a||null===a)&&(a=!1),(void 0===b||null===b)&&(b=!1),(void 0===d||null===d)&&(d=!1),a||b||d){void 0===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){void 0===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 void 0===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((void 0===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,(void 0===g||null===g)&&(g=a.x),(void 0===h||null===h)&&(h=a.y),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(void 0===b||null===b)&&(b=0),(void 0===d||null===d)&&(d=0),e&&(this._size.x=e),f&&(this._size.y=f),(void 0===g||null===g)&&(g=b),(void 0===h||null===h)&&(h=d),(void 0===i||null===i)&&(i=this._size.x),(void 0===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),void 0===q&&(q=null),void 0===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)},drawGroup:function(a,b,c){return a.total>0&&a.forEachExists(this.copy,this,null,null,null,null,null,null,null,null,null,null,null,null,null,null,b,c),this},shadow:function(a,b,c,d){void 0===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 void 0===d||null===d?this.draw(b).blendSourceAtop():this.draw(b,d.x,d.y,d.width,d.height).blendSourceAtop(),void 0===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 void 0===e&&(e=255),void 0===f&&(f=!1),void 0===g&&(g=b),void 0===h&&(h=c),void 0===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},text:function(a,b,c,d,e,f){void 0===b&&(b=0),void 0===c&&(c=0),void 0===d&&(d="14px Courier"),void 0===e&&(e="rgb(255,255,255)"),void 0===f&&(f=!0);var g=this.context.font;this.context.font=d,f&&(this.context.fillStyle="rgb(0,0,0)",this.context.fillText(a,b+1,c+1)),this.context.fillStyle=e,this.context.fillText(a,b,c),this.context.font=g},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(void 0===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,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,PIXI.Graphics.prototype.lineStyle=function(a,b,c){return this.lineWidth=a||0,this.lineColor=b||0,this.lineAlpha=void 0===c?1:c,this.currentPath&&(this.currentPath.shape.points.length?this.drawShape(new PIXI.Polygon(this.currentPath.shape.points.slice(-2))):(this.currentPath.lineWidth=this.lineWidth,this.currentPath.lineColor=this.lineColor,this.currentPath.lineAlpha=this.lineAlpha)),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||this.moveTo(0,0),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){if(d===e)return this;void 0===f&&(f=!1),!f&&d>=e?e+=2*Math.PI:f&&e>=d&&(d+=2*Math.PI);var g=f?-1*(d-e):e-d,h=40*Math.ceil(Math.abs(g)/(2*Math.PI));if(0===g)return this;var i=a+Math.cos(d)*c,j=b+Math.sin(d)*c;f&&this.filling?this.moveTo(a,b):this.moveTo(i,j);for(var k=this.currentPath.shape.points,l=g/(2*h),m=2*l,n=Math.cos(l),o=Math.sin(l),p=h-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);k.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){(a instanceof c.Polygon||a instanceof PIXI.Polygon)&&(a=a.points);var b=a;if(!Array.isArray(b)){b=new Array(arguments.length);for(var d=0;dp?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._currentBounds=this._bounds}return this._currentBounds},PIXI.Graphics.prototype.containsPoint=function(a){this.worldTransform.applyInverse(a,tempPoint);for(var b=this.graphicsData,c=0;ch?h:a,b=h+j>b?h+j:b,d=d>i?i:d,e=i+k>e?i+k:e;else if(n===PIXI.Graphics.CIRC)h=f.x,i=f.y,j=f.radius+o/2,k=f.radius+o/2,a=a>h-j?h-j:a,b=h+j>b?h+j:b,d=d>i-k?i-k:d,e=i+k>e?i+k:e;else if(n===PIXI.Graphics.ELIP)h=f.x,i=f.y,j=f.width+o/2,k=f.height+o/2,a=a>h-j?h-j:a,b=h+j>b?h+j:b,d=d>i-k?i-k:d,e=i+k>e?i+k:e;else{g=f.points;for(var p=0;ph-o?h-o:a,b=h+o>b?h+o:b,d=d>i-o?i-o:d,e=i+o>e?i+o:e}}else a=0,b=0,d=0,e=0;var q=this.boundsPadding;this._localBounds.x=a-q,this._localBounds.width=b-a+2*q,this._localBounds.y=d-q,this._localBounds.height=e-d+2*q},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,a instanceof c.Polygon&&(a=a.clone(),a.flatten());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},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.GraphicsData=function(a,b,c,d,e,f,g){this.lineWidth=a,this.lineColor=b,this.lineAlpha=c,this._lineTint=b,this.fillColor=d,this.fillAlpha=e,this._fillTint=d,this.fill=f,this.shape=g,this.type=g.type},PIXI.GraphicsData.prototype.constructor=PIXI.GraphicsData,PIXI.GraphicsData.prototype.clone=function(){return new GraphicsData(this.lineWidth,this.lineColor,this.lineAlpha,this.fillColor,this.fillAlpha,this.fill,this.shape)},c.Graphics=function(a,b,d){void 0===b&&(b=0),void 0===d&&(d=0),this.type=c.GRAPHICS,this.physicsType=c.SPRITE,PIXI.Graphics.call(this),c.Component.Core.init.call(this,a,b,d,"",null)},c.Graphics.prototype=Object.create(PIXI.Graphics.prototype),c.Graphics.prototype.constructor=c.Graphics,c.Component.Core.install.call(c.Graphics.prototype,["Angle","AutoCull","Bounds","Destroy","FixedToCamera","InputEnabled","InWorld","LifeSpan","PhysicsBody","Reset"]),c.Graphics.prototype.preUpdatePhysics=c.Component.PhysicsBody.preUpdate,c.Graphics.prototype.preUpdateLifeSpan=c.Component.LifeSpan.preUpdate,c.Graphics.prototype.preUpdateInWorld=c.Component.InWorld.preUpdate,c.Graphics.prototype.preUpdateCore=c.Component.Core.preUpdate,c.Graphics.prototype.preUpdate=function(){return this.preUpdatePhysics()&&this.preUpdateLifeSpan()&&this.preUpdateInWorld()?this.preUpdateCore():!1},c.Graphics.prototype.destroy=function(a){this.clear(),c.Component.Destroy.prototype.destroy.call(this,a)},c.Graphics.prototype.drawTriangle=function(a,b){void 0===b&&(b=!1);var d=new c.Polygon(a);if(b){var e=new c.Point(this.game.camera.x-a[0].x,this.game.camera.y-a[0].y),f=new c.Point(a[1].x-a[0].x,a[1].y-a[0].y),g=new c.Point(a[1].x-a[2].x,a[1].y-a[2].y),h=g.cross(f);e.dot(h)>0&&this.drawPolygon(d)}else this.drawPolygon(d)},c.Graphics.prototype.drawTriangles=function(a,b,d){void 0===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;e0&&(j+=c[k-1]),h=j+l}else for(var k=0;kq&&Math.abs(q)>o&&(q=-o),0!==q){var m=q*(b.length-1);p+=m}this.canvas.height=p*this._res,this.context.scale(this._res,this._res),navigator.isCocoonJS&&this.context.clearRect(0,0,this.canvas.width,this.canvas.height),this.style.backgroundColor&&(this.context.fillStyle=this.style.backgroundColor,this.context.fillRect(0,0,this.canvas.width,this.canvas.height)),this.context.fillStyle=this.style.fill,this.context.font=this.style.font,this.context.strokeStyle=this.style.stroke,this.context.textBaseline="alphabetic",this.context.lineWidth=this.style.strokeThickness,this.context.lineCap="round",this.context.lineJoin="round";var r,s;for(this._charCount=0,g=0;g0&&(s+=q*g),"right"===this.style.align?r+=e-d[g]:"center"===this.style.align&&(r+=(e-d[g])/2),this.autoRound&&(r=Math.round(r),s=Math.round(s)),this.colors.length>0||this.strokeColors.length>0?this.updateLine(b[g],r,s):(this.style.stroke&&this.style.strokeThickness&&(this.updateShadow(this.style.shadowStroke),0===c?this.context.strokeText(b[g],r,s):this.renderTabLine(b[g],r,s,!1)),this.style.fill&&(this.updateShadow(this.style.shadowFill),0===c?this.context.fillText(b[g],r,s):this.renderTabLine(b[g],r,s,!0)));this.updateTexture()},c.Text.prototype.renderTabLine=function(a,b,c,d){var e=a.split(/(?:\t)/),f=this.style.tabs,g=0;if(Array.isArray(f))for(var h=0,i=0;i0&&(h+=f[i-1]),g=b+h,d?this.context.fillText(e[i],g,c):this.context.strokeText(e[i],g,c);else for(var i=0;ie?(g>0&&(b+="\n"),b+=f[g]+" ",e=this.style.wordWrapWidth-h):(e-=i,b+=f[g]+" ")}dd&&(this.style.wordWrapWidth=d)),this.updateTexture(),this},c.Text.prototype.updateTexture=function(){var a=this.texture.baseTexture,b=this.texture.crop,c=this.texture.frame,d=this.canvas.width,e=this.canvas.height;if(a.width=d,a.height=e,b.width=d,b.height=e,c.width=d,c.height=e,this.texture.width=d,this.texture.height=e,this._width=d,this._height=e,this.textBounds){var f=this.textBounds.x,g=this.textBounds.y;"right"===this.style.boundsAlignH?f=this.textBounds.width-this.canvas.width:"center"===this.style.boundsAlignH&&(f=this.textBounds.halfWidth-this.canvas.width/2),"bottom"===this.style.boundsAlignV?g=this.textBounds.height-this.canvas.height:"middle"===this.style.boundsAlignV&&(g=this.textBounds.halfHeight-this.canvas.height/2),this.pivot.x=-f,this.pivot.y=-g}this.renderable=0!==d&&0!==e,this.texture.baseTexture.dirty()},c.Text.prototype._renderWebGL=function(a){this.dirty&&(this.updateText(),this.dirty=!1),PIXI.Sprite.prototype._renderWebGL.call(this,a)},c.Text.prototype._renderCanvas=function(a){this.dirty&&(this.updateText(),this.dirty=!1),PIXI.Sprite.prototype._renderCanvas.call(this,a)},c.Text.prototype.determineFontProperties=function(a){var b=c.Text.fontPropertiesCache[a];if(!b){b={};var d=c.Text.fontPropertiesCanvas,e=c.Text.fontPropertiesContext;e.font=a;var f=Math.ceil(e.measureText("|MÉq").width),g=Math.ceil(e.measureText("|MÉq").width),h=2*g;if(g=1.4*g|0,d.width=f,d.height=h,e.fillStyle="#f00",e.fillRect(0,0,f,h),e.font=a,e.textBaseline="alphabetic",e.fillStyle="#000",e.fillText("|MÉq",0,g),!e.getImageData(0,0,f,h))return b.ascent=g,b.descent=g+6,b.fontSize=b.ascent+b.descent,c.Text.fontPropertiesCache[a]=b,b;var i,j,k=e.getImageData(0,0,f,h).data,l=k.length,m=4*f,n=0,o=!1;for(i=0;g>i;i++){for(j=0;m>j;j+=4)if(255!==k[n+j]){o=!0;break}if(o)break;n+=m}for(b.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}b.descent=i-g,b.descent+=6,b.fontSize=b.ascent+b.descent,c.Text.fontPropertiesCache[a]=b}return b},c.Text.prototype.getBounds=function(a){return this.dirty&&(this.updateText(),this.dirty=!1),PIXI.Sprite.prototype.getBounds.call(this,a)},Object.defineProperty(c.Text.prototype,"text",{get:function(){return this._text},set:function(a){a!==this._text&&(this._text=a.toString()||"",this.dirty=!0,this.parent&&this.updateTransform())}}),Object.defineProperty(c.Text.prototype,"cssFont",{get:function(){return this.componentsToFont(this._fontComponents)},set:function(a){a=a||"bold 20pt Arial",this._fontComponents=this.fontToComponents(a),this.updateFont(this._fontComponents)}}),Object.defineProperty(c.Text.prototype,"font",{get:function(){return this._fontComponents.fontFamily},set:function(a){a=a||"Arial",a=a.trim(),/^(?:inherit|serif|sans-serif|cursive|fantasy|monospace)$/.exec(a)||/['",]/.exec(a)||(a="'"+a+"'"),this._fontComponents.fontFamily=a,this.updateFont(this._fontComponents)}}),Object.defineProperty(c.Text.prototype,"fontSize",{get:function(){var a=this._fontComponents.fontSize;return a&&/(?:^0$|px$)/.exec(a)?parseInt(a,10):a},set:function(a){a=a||"0","number"==typeof a&&(a+="px"),this._fontComponents.fontSize=a,this.updateFont(this._fontComponents)}}),Object.defineProperty(c.Text.prototype,"fontWeight",{get:function(){return this._fontComponents.fontWeight||"normal"},set:function(a){a=a||"normal",this._fontComponents.fontWeight=a,this.updateFont(this._fontComponents)}}),Object.defineProperty(c.Text.prototype,"fontStyle",{get:function(){return this._fontComponents.fontStyle||"normal"},set:function(a){a=a||"normal",this._fontComponents.fontStyle=a,this.updateFont(this._fontComponents)}}),Object.defineProperty(c.Text.prototype,"fontVariant",{get:function(){return this._fontComponents.fontVariant||"normal"},set:function(a){a=a||"normal",this._fontComponents.fontVariant=a,this.updateFont(this._fontComponents)}}),Object.defineProperty(c.Text.prototype,"fill",{get:function(){return this.style.fill},set:function(a){a!==this.style.fill&&(this.style.fill=a,this.dirty=!0)}}),Object.defineProperty(c.Text.prototype,"align",{get:function(){return this.style.align},set:function(a){a!==this.style.align&&(this.style.align=a,this.dirty=!0)}}),Object.defineProperty(c.Text.prototype,"resolution",{get:function(){return this._res},set:function(a){a!==this._res&&(this._res=a,this.dirty=!0)}}),Object.defineProperty(c.Text.prototype,"tabs",{get:function(){return this.style.tabs},set:function(a){a!==this.style.tabs&&(this.style.tabs=a,this.dirty=!0)}}),Object.defineProperty(c.Text.prototype,"boundsAlignH",{get:function(){return this.style.boundsAlignH},set:function(a){a!==this.style.boundsAlignH&&(this.style.boundsAlignH=a,this.dirty=!0)}}),Object.defineProperty(c.Text.prototype,"boundsAlignV",{get:function(){return this.style.boundsAlignV},set:function(a){a!==this.style.boundsAlignV&&(this.style.boundsAlignV=a,this.dirty=!0)}}),Object.defineProperty(c.Text.prototype,"stroke",{get:function(){return this.style.stroke},set:function(a){a!==this.style.stroke&&(this.style.stroke=a,this.dirty=!0)}}),Object.defineProperty(c.Text.prototype,"strokeThickness",{get:function(){return this.style.strokeThickness},set:function(a){a!==this.style.strokeThickness&&(this.style.strokeThickness=a,this.dirty=!0)}}),Object.defineProperty(c.Text.prototype,"wordWrap",{get:function(){return this.style.wordWrap},set:function(a){a!==this.style.wordWrap&&(this.style.wordWrap=a,this.dirty=!0)}}),Object.defineProperty(c.Text.prototype,"wordWrapWidth",{get:function(){return this.style.wordWrapWidth},set:function(a){a!==this.style.wordWrapWidth&&(this.style.wordWrapWidth=a,this.dirty=!0)}}),Object.defineProperty(c.Text.prototype,"lineSpacing",{get:function(){return this._lineSpacing},set:function(a){a!==this._lineSpacing&&(this._lineSpacing=parseFloat(a),this.dirty=!0,this.parent&&this.updateTransform())}}),Object.defineProperty(c.Text.prototype,"shadowOffsetX",{get:function(){return this.style.shadowOffsetX},set:function(a){a!==this.style.shadowOffsetX&&(this.style.shadowOffsetX=a,this.dirty=!0)}}),Object.defineProperty(c.Text.prototype,"shadowOffsetY",{get:function(){return this.style.shadowOffsetY},set:function(a){a!==this.style.shadowOffsetY&&(this.style.shadowOffsetY=a,this.dirty=!0)}}),Object.defineProperty(c.Text.prototype,"shadowColor",{get:function(){return this.style.shadowColor},set:function(a){a!==this.style.shadowColor&&(this.style.shadowColor=a,this.dirty=!0)}}),Object.defineProperty(c.Text.prototype,"shadowBlur",{get:function(){return this.style.shadowBlur},set:function(a){a!==this.style.shadowBlur&&(this.style.shadowBlur=a,this.dirty=!0)}}),Object.defineProperty(c.Text.prototype,"shadowStroke",{get:function(){return this.style.shadowStroke},set:function(a){a!==this.style.shadowStroke&&(this.style.shadowStroke=a,this.dirty=!0)}}),Object.defineProperty(c.Text.prototype,"shadowFill",{get:function(){return this.style.shadowFill},set:function(a){a!==this.style.shadowFill&&(this.style.shadowFill=a,this.dirty=!0)}}),Object.defineProperty(c.Text.prototype,"width",{get:function(){return this.dirty&&(this.updateText(),this.dirty=!1),this.scale.x*this.texture.frame.width},set:function(a){this.scale.x=a/this.texture.frame.width,this._width=a}}),Object.defineProperty(c.Text.prototype,"height",{get:function(){return this.dirty&&(this.updateText(),this.dirty=!1),this.scale.y*this.texture.frame.height},set:function(a){this.scale.y=a/this.texture.frame.height,this._height=a}}),c.Text.fontPropertiesCache={},c.Text.fontPropertiesCanvas=document.createElement("canvas"),c.Text.fontPropertiesContext=c.Text.fontPropertiesCanvas.getContext("2d"),c.BitmapText=function(a,b,d,e,f,g,h){b=b||0,d=d||0,e=e||"",f=f||"",g=g||32,h=h||"left",PIXI.DisplayObjectContainer.call(this),this.type=c.BITMAPTEXT,this.physicsType=c.SPRITE,this.textWidth=0,this.textHeight=0,this.anchor=new c.Point,this._prevAnchor=new c.Point,this._glyphs=[],this._maxWidth=0,this._text=f,this._data=a.cache.getBitmapFont(e),this._font=e,this._fontSize=g,this._align=h,this._tint=16777215,this.updateText(),this.dirty=!1,c.Component.Core.init.call(this,a,b,d,"",null)},c.BitmapText.prototype=Object.create(PIXI.DisplayObjectContainer.prototype),c.BitmapText.prototype.constructor=c.BitmapText,c.Component.Core.install.call(c.BitmapText.prototype,["Angle","AutoCull","Bounds","Destroy","FixedToCamera","InputEnabled","InWorld","LifeSpan","PhysicsBody","Reset"]),c.BitmapText.prototype.preUpdatePhysics=c.Component.PhysicsBody.preUpdate,c.BitmapText.prototype.preUpdateLifeSpan=c.Component.LifeSpan.preUpdate,c.BitmapText.prototype.preUpdateInWorld=c.Component.InWorld.preUpdate,c.BitmapText.prototype.preUpdateCore=c.Component.Core.preUpdate,c.BitmapText.prototype.preUpdate=function(){return this.preUpdatePhysics()&&this.preUpdateLifeSpan()&&this.preUpdateInWorld()?this.preUpdateCore():!1},c.BitmapText.prototype.postUpdate=function(){c.Component.PhysicsBody.postUpdate.call(this),c.Component.FixedToCamera.postUpdate.call(this),this.body&&this.body.type===c.Physics.ARCADE&&(this.textWidth!==this.body.sourceWidth||this.textHeight!==this.body.sourceHeight)&&this.body.setSize(this.textWidth,this.textHeight)},c.BitmapText.prototype.setText=function(a){this.text=a},c.BitmapText.prototype.scanLine=function(a,b,c){for(var d=0,e=0,f=-1,g=null,h=this._maxWidth>0?this._maxWidth:null,i=[],j=0;j=h&&f>-1)return{width:e,text:c.substr(0,j-(j-f)),end:k,chars:i};e+=m.xAdvance*b,i.push(d+m.xOffset*b),d+=m.xAdvance*b,g=l}}return{width:e,text:c,end:k,chars:i}},c.BitmapText.prototype.updateText=function(){var a=this._data.font;if(a){var b=this.text,c=this._fontSize/a.size,d=[],e=0;this.textWidth=0;do{var f=this.scanLine(a,c,b);f.y=e,d.push(f),f.width>this.textWidth&&(this.textWidth=f.width),e+=a.lineHeight*c,b=b.substr(f.text.length+1)}while(f.end===!1);this.textHeight=e;for(var g=0,h=0,i=this.textWidth*this.anchor.x,j=this.textHeight*this.anchor.y,k=0;k0&&(this._fontSize=a,this.updateText())}}),Object.defineProperty(c.BitmapText.prototype,"text",{get:function(){return this._text},set:function(a){a!==this._text&&(this._text=a.toString()||"",this.updateText())}}),Object.defineProperty(c.BitmapText.prototype,"maxWidth",{get:function(){return this._maxWidth},set:function(a){a!==this._maxWidth&&(this._maxWidth=a,this.updateText())}}),c.RetroFont=function(a,b,d,e,f,g,h,i,j,k){if(!a.cache.checkImageKey(b))return!1;(void 0===g||null===g)&&(g=a.cache.getImage(b).width/d),this.characterWidth=d,this.characterHeight=e,this.characterSpacingX=h||0,this.characterSpacingY=i||0,this.characterPerRow=g,this.offsetX=j||0,this.offsetY=k||0,this.align="left",this.multiLine=!1,this.autoUpperCase=!0,this.customSpacingX=0,this.customSpacingY=0,this.fixedWidth=0,this.fontSet=a.cache.getImage(b),this._text="",this.grabData=[],this.frameData=new c.FrameData;for(var l=this.offsetX,m=this.offsetY,n=0,o=0;o?@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){void 0===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 this.fixedWidth>0?this.resize(this.fixedWidth,this.characterHeight,!0):this.resize(this._text.length*(this.characterWidth+this.customSpacingX),this.characterHeight,!0),a=0,this.align===c.RetroFont.ALIGN_RIGHT?a=this.width-this._text.length*(this.characterWidth+this.customSpacingX):this.align===c.RetroFont.ALIGN_CENTER&&(a=this.width/2-this._text.length*(this.characterWidth+this.customSpacingX)/2,a+=this.customSpacingX/2),0>a&&(a=0),this.pasteLine(this._text,a,0,this.customSpacingX);this.requiresReTint=!0},c.RetroFont.prototype.pasteLine=function(a,b,c,d){for(var e=0;e=0&&(this.stamp.frame=this.grabData[a.charCodeAt(e)],this.renderXY(this.stamp,b,c,!1),b+=this.characterWidth+d,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;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.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.type=c.ROPE,this._scroll=new c.Point,PIXI.Rope.call(this,PIXI.TextureCache.__default,this.points),c.Component.Core.init.call(this,a,b,d,e,f)},c.Rope.prototype=Object.create(PIXI.Rope.prototype),c.Rope.prototype.constructor=c.Rope,c.Component.Core.install.call(c.Rope.prototype,["Angle","Animation","AutoCull","Bounds","BringToTop","Crop","Delta","Destroy","FixedToCamera","InputEnabled","InWorld","LifeSpan","LoadTexture","Overlap","PhysicsBody","Reset","ScaleMinMax","Smoothed"]),c.Rope.prototype.preUpdatePhysics=c.Component.PhysicsBody.preUpdate,c.Rope.prototype.preUpdateLifeSpan=c.Component.LifeSpan.preUpdate,c.Rope.prototype.preUpdateInWorld=c.Component.InWorld.preUpdate,c.Rope.prototype.preUpdateCore=c.Component.Core.preUpdate,c.Rope.prototype.preUpdate=function(){return 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.preUpdatePhysics()&&this.preUpdateLifeSpan()&&this.preUpdateInWorld()?this.preUpdateCore():!1},c.Rope.prototype.update=function(){this._hasUpdateAnimation&&this.updateAnimation.call(this)},c.Rope.prototype.reset=function(a,b){return c.Component.Reset.prototype.reset.call(this,a,b),this.tilePosition.x=0,this.tilePosition.y=0,this},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;k=1)&&(l.touch=!0),(window.navigator.msPointerEnabled||window.navigator.pointerEnabled)&&(l.mspointer=!0),l.cocoonJS||("onwheel"in window||l.ie&&"WheelEvent"in window?l.wheelEvent="wheel":"onmousewheel"in window?l.wheelEvent="mousewheel":l.firefox&&"MouseScrollEvent"in window&&(l.wheelEvent="DOMMouseScroll"))}function d(){for(var a=["requestFullscreen","requestFullScreen","webkitRequestFullscreen","webkitRequestFullScreen","msRequestFullscreen","msRequestFullScreen","mozRequestFullScreen","mozRequestFullscreen"],b=document.createElement("div"),c=0;c0&&"none"!==a}var l=this;a(),g(),f(),e(),k(),h(),b(),d(),c()},c.Device.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},c.Device.canPlayVideo=function(a){return"webm"===a&&(this.webmVideo||this.vp9Video)?!0:"mp4"===a&&(this.mp4Video||this.h264Video)?!0:"ogg"===a&&this.oggVideo?!0:"mpeg"===a&&this.hlsVideo?!0:!1},c.Device.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.isAndroidStockBrowser=function(){var a=window.navigator.userAgent.match(/Android.*AppleWebKit\/([\d.]+)/);return a&&a[1]<537},c.DOM={getOffset:function(a,b){b=b||new c.Point;var d=a.getBoundingClientRect(),e=c.DOM.scrollY,f=c.DOM.scrollX,g=document.documentElement.clientTop,h=document.documentElement.clientLeft;return b.x=d.left+f-h,b.y=d.top+e-g,b},getBounds:function(a,b){return void 0===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.visualBounds:1===a.nodeType?this.getBounds(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},inLayoutViewport:function(a,b){var c=this.getBounds(a,b);return!!c&&c.bottom>=0&&c.right>=0&&c.top<=this.layoutBounds.width&&c.left<=this.layoutBounds.height},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.visualBounds.height>this.visualBounds.width?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.visualBounds.height>this.visualBounds.width?d:e},visualBounds:new c.Rectangle,layoutBounds:new c.Rectangle,documentBounds:new c.Rectangle},c.Device.whenReady(function(a){var b=window&&"pageXOffset"in window?function(){return window.pageXOffset}:function(){return document.documentElement.scrollLeft},d=window&&"pageYOffset"in window?function(){return window.pageYOffset}:function(){return document.documentElement.scrollTop};Object.defineProperty(c.DOM,"scrollX",{get:b}),Object.defineProperty(c.DOM,"scrollY",{get:d}),Object.defineProperty(c.DOM.visualBounds,"x",{get:b}),Object.defineProperty(c.DOM.visualBounds,"y",{get:d}),Object.defineProperty(c.DOM.layoutBounds,"x",{value:0}),Object.defineProperty(c.DOM.layoutBounds,"y",{value:0});var e=a.desktop&&document.documentElement.clientWidth<=window.innerWidth&&document.documentElement.clientHeight<=window.innerHeight;if(e){var f=function(){return Math.max(window.innerWidth,document.documentElement.clientWidth)},g=function(){return Math.max(window.innerHeight,document.documentElement.clientHeight)};Object.defineProperty(c.DOM.visualBounds,"width",{get:f}),Object.defineProperty(c.DOM.visualBounds,"height",{get:g}),Object.defineProperty(c.DOM.layoutBounds,"width",{get:f}),Object.defineProperty(c.DOM.layoutBounds,"height",{get:g})}else Object.defineProperty(c.DOM.visualBounds,"width",{get:function(){return window.innerWidth}}),Object.defineProperty(c.DOM.visualBounds,"height",{get:function(){return window.innerHeight}}),Object.defineProperty(c.DOM.layoutBounds,"width",{get:function(){var a=document.documentElement.clientWidth,b=window.innerWidth;return b>a?b:a}}),Object.defineProperty(c.DOM.layoutBounds,"height",{get:function(){var a=document.documentElement.clientHeight,b=window.innerHeight;return b>a?b:a}});Object.defineProperty(c.DOM.documentBounds,"x",{value:0}),Object.defineProperty(c.DOM.documentBounds,"y",{value:0}),Object.defineProperty(c.DOM.documentBounds,"width",{get:function(){var a=document.documentElement;return Math.max(a.clientWidth,a.offsetWidth,a.scrollWidth)}}),Object.defineProperty(c.DOM.documentBounds,"height",{get:function(){var a=document.documentElement;return Math.max(a.clientHeight,a.offsetHeight,a.scrollHeight)}})},null,!0),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 void 0===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){var c=["i","mozI","oI","webkitI","msI"];for(var d in c){var e=c[d]+"mageSmoothingEnabled";if(e in a)return a[e]=b,a}return 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.RequestAnimationFrame=function(a,b){void 0===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 void 0===c&&(c=1e-4),a>b-c},fuzzyCeil:function(a,b){return void 0===b&&(b=1e-4),Math.ceil(a-b)},fuzzyFloor:function(a,b){return void 0===b&&(b=1e-4),Math.floor(a+b)},average:function(){for(var a=0,b=0;b=0?a:a+2*Math.PI},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},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)},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)},roundAwayFromZero:function(a){return a>0?Math.ceil(a):Math.floor(a)},sinCosGenerator:function(a,b,c,d){void 0===b&&(b=1),void 0===c&&(c=1),void 0===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}},distance:function(a,b,c,d){var e=a-c,f=b-d;return Math.sqrt(e*e+f*f)},distanceSq:function(a,b,c,d){var e=a-c,f=b-d;return e*e+f*f},distancePow:function(a,b,c,d,e){return void 0===e&&(e=2),Math.sqrt(Math.pow(c-a,e)+Math.pow(d-b,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 void 0===c&&(c=0),a>b||c>b?1:c>a||c>a?0:(a-c)/b}};var j=Math.PI/180,k=180/Math.PI;c.Math.degToRad=function(a){return a*j},c.Math.radToDeg=function(a){return a*k},c.RandomDataGenerator=function(a){void 0===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){if(this.s0=this.hash(" "),this.s1=this.hash(this.s0),this.s2=this.hash(this.s1),this.c=1,a)for(var b=0;b>>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)+.5)]},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){void 0===c&&(c=!1),(void 0===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){void 0===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.easeMap={Power0:c.Easing.Power0,Power1:c.Easing.Power1,Power2:c.Easing.Power2,Power3:c.Easing.Power3,Power4:c.Easing.Power4,Linear:c.Easing.Linear.None,Quad:c.Easing.Quadratic.Out,Cubic:c.Easing.Cubic.Out,Quart:c.Easing.Quartic.Out,Quint:c.Easing.Quintic.Out,Sine:c.Easing.Sinusoidal.Out,Expo:c.Easing.Exponential.Out,Circ:c.Easing.Circular.Out,Elastic:c.Easing.Elastic.Out,Back:c.Easing.Back.Out,Bounce:c.Easing.Bounce.Out,"Quad.easeIn":c.Easing.Quadratic.In,"Cubic.easeIn":c.Easing.Cubic.In,"Quart.easeIn":c.Easing.Quartic.In,"Quint.easeIn":c.Easing.Quintic.In,"Sine.easeIn":c.Easing.Sinusoidal.In,"Expo.easeIn":c.Easing.Exponential.In,"Circ.easeIn":c.Easing.Circular.In,"Elastic.easeIn":c.Easing.Elastic.In,"Back.easeIn":c.Easing.Back.In,"Bounce.easeIn":c.Easing.Bounce.In,"Quad.easeOut":c.Easing.Quadratic.Out,"Cubic.easeOut":c.Easing.Cubic.Out,"Quart.easeOut":c.Easing.Quartic.Out,"Quint.easeOut":c.Easing.Quintic.Out,"Sine.easeOut":c.Easing.Sinusoidal.Out,"Expo.easeOut":c.Easing.Exponential.Out,"Circ.easeOut":c.Easing.Circular.Out,"Elastic.easeOut":c.Easing.Elastic.Out,"Back.easeOut":c.Easing.Back.Out,"Bounce.easeOut":c.Easing.Bounce.Out,"Quad.easeInOut":c.Easing.Quadratic.InOut,"Cubic.easeInOut":c.Easing.Cubic.InOut,"Quart.easeInOut":c.Easing.Quartic.InOut,"Quint.easeInOut":c.Easing.Quintic.InOut,"Sine.easeInOut":c.Easing.Sinusoidal.InOut,"Expo.easeInOut":c.Easing.Exponential.InOut,"Circ.easeInOut":c.Easing.Circular.InOut,"Elastic.easeInOut":c.Easing.Elastic.InOut,"Back.easeInOut":c.Easing.Back.InOut,"Bounce.easeInOut":c.Easing.Bounce.InOut},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;ad;d++)this.removeFrom(a[d]);else if(a.type===c.GROUP&&b)for(var d=0,e=a.children.length;e>d;d++)this.removeFrom(a.children[d]);else{for(d=0,e=this._tweens.length;e>d;d++)a===this._tweens[d].target&&this.remove(this._tweens[d]);for(d=0,e=this._add.length;e>d;d++)a===this._add[d].target&&this.remove(this._add[d])}},add:function(a){a._manager=this,this._add.push(a)},create:function(a){return new c.Tween(a,this.game,this)},remove:function(a){var b=this._tweens.indexOf(a);-1!==b?this._tweens[b].pendingDelete=!0:(b=this._add.indexOf(a),-1!==b&&(this._add[b].pendingDelete=!0))},update:function(){var a=this._add.length,b=this._tweens.length;if(0===b&&0===a)return!1;for(var c=0;b>c;)this._tweens[c].update(this.game.time.time)?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.target===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.game=b,this.target=a,this.manager=d,this.timeline=[],this.reverse=!1,this.timeScale=1,this.repeatCounter=0,this.pendingDelete=!1,this.onStart=new c.Signal,this.onLoop=new c.Signal,this.onRepeat=new c.Signal,this.onChildComplete=new c.Signal,this.onComplete=new c.Signal,this.isRunning=!1,this.current=0,this.properties={},this.chainedTween=null,this.isPaused=!1,this._onUpdateCallback=null,this._onUpdateCallbackContext=null,this._pausedTime=0,this._codePaused=!1,this._hasStarted=!1},c.Tween.prototype={to:function(a,b,d,e,f,g,h){return(void 0===b||0>=b)&&(b=1e3),(void 0===d||null===d)&&(d=c.Easing.Default),void 0===e&&(e=!1),void 0===f&&(f=0),void 0===g&&(g=0),void 0===h&&(h=!1),"string"==typeof d&&this.manager.easeMap[d]&&(d=this.manager.easeMap[d]),this.isRunning?(console.warn("Phaser.Tween.to cannot be called after Tween.start"),this):(this.timeline.push(new c.TweenData(this).to(a,b,d,f,g,h)),e&&this.start(),this)},from:function(a,b,d,e,f,g,h){return void 0===b&&(b=1e3),(void 0===d||null===d)&&(d=c.Easing.Default),void 0===e&&(e=!1),void 0===f&&(f=0),void 0===g&&(g=0),void 0===h&&(h=!1),"string"==typeof d&&this.manager.easeMap[d]&&(d=this.manager.easeMap[d]),this.isRunning?(console.warn("Phaser.Tween.from cannot be called after Tween.start"),this):(this.timeline.push(new c.TweenData(this).from(a,b,d,f,g,h)),e&&this.start(),this)},start:function(a){if(void 0===a&&(a=0),null===this.game||null===this.target||0===this.timeline.length||this.isRunning)return this;for(var b=0;ba||a>this.timeline.length-1)&&(a=0),this.current=a,this.timeline[this.current].start(),this},stop:function(a){return void 0===a&&(a=!1),this.isRunning=!1,this._onUpdateCallback=null,this._onUpdateCallbackContext=null,a&&(this.onComplete.dispatch(this.target,this),this.chainedTween&&this.chainedTween.start()),this.manager.remove(this),this},updateTweenData:function(a,b,c){if(0===this.timeline.length)return this;if(void 0===c&&(c=0),-1===c)for(var d=0;d0?arguments[a-1].chainedTween=arguments[a]:this.chainedTween=arguments[a];return this},loop:function(a){return void 0===a&&(a=!0),a?this.repeatAll(-1):this.repeatCounter=0,this},onUpdateCallback:function(a,b){return this._onUpdateCallback=a,this._onUpdateCallbackContext=b,this},pause:function(){this.isPaused=!0,this._codePaused=!0,this._pausedTime=this.game.time.time},_pause:function(){this._codePaused||(this.isPaused=!0,this._pausedTime=this.game.time.time)},resume:function(){if(this.isPaused){this.isPaused=!1,this._codePaused=!1;for(var a=0;a0?(this.repeatCounter--,this.timeline[this.current].start(),this.onRepeat.dispatch(this.target,this),!0):(this.isRunning=!1,this.onComplete.dispatch(this.target,this),this.chainedTween&&this.chainedTween.start(),!1):(this.onChildComplete.dispatch(this.target,this),this.timeline[this.current].start(),!0)}},generateData:function(a,b){if(null===this.game||null===this.target)return null;void 0===a&&(a=60),void 0===b&&(b=[]);for(var c=0;c0?!1:!0,this.isFrom)for(var a in this.vStartCache)this.vStart[a]=this.vEndCache[a],this.vEnd[a]=this.vStartCache[a],this.parent.target[a]=this.vStart[a];return this.value=0,this.yoyoCounter=0,this},loadValues:function(){for(var a in this.parent.properties){if(this.vStart[a]=this.parent.properties[a],Array.isArray(this.vEnd[a])){if(0===this.vEnd[a].length)continue;0===this.percent&&(this.vEnd[a]=[this.vStart[a]].concat(this.vEnd[a]))}"undefined"!=typeof this.vEnd[a]?("string"==typeof this.vEnd[a]&&(this.vEnd[a]=this.vStart[a]+parseFloat(this.vEnd[a],10)),this.parent.properties[a]=this.vEnd[a]):this.vEnd[a]=this.vStart[a],this.vStartCache[a]=this.vStart[a],this.vEndCache[a]=this.vEnd[a]}return this},update:function(a){if(this.isRunning){if(a=this.startTime))return c.TweenData.PENDING;this.isRunning=!0}this.parent.reverse?(this.dt-=this.game.time.elapsedMS*this.parent.timeScale,this.dt=Math.max(this.dt,0)):(this.dt+=this.game.time.elapsedMS*this.parent.timeScale,this.dt=Math.min(this.dt,this.duration)),this.percent=this.dt/this.duration,this.value=this.easingFunction(this.percent);for(var b in this.vEnd){var d=this.vStart[b],e=this.vEnd[b];this.parent.target[b]=Array.isArray(e)?this.interpolationFunction.call(this.interpolationContext,e,this.value):d+(e-d)*this.value}return!this.parent.reverse&&1===this.percent||this.parent.reverse&&0===this.percent?this.repeat():c.TweenData.RUNNING},generateData:function(a){this.dt=this.parent.reverse?this.duration:0;var b=[],c=!1,d=1/a*1e3;do{this.parent.reverse?(this.dt-=d,this.dt=Math.max(this.dt,0)):(this.dt+=d,this.dt=Math.min(this.dt,this.duration)),this.percent=this.dt/this.duration,this.value=this.easingFunction(this.percent);var e={};for(var f in this.vEnd){var g=this.vStart[f],h=this.vEnd[f];e[f]=Array.isArray(h)?this.interpolationFunction(h,this.value):g+(h-g)*this.value}b.push(e),(!this.parent.reverse&&1===this.percent||this.parent.reverse&&0===this.percent)&&(c=!0)}while(!c);if(this.yoyo){var i=b.slice();i.reverse(),b=b.concat(i)}return b},repeat:function(){if(this.yoyo){if(this.inReverse&&0===this.repeatCounter)return c.TweenData.COMPLETE;this.inReverse=!this.inReverse}else if(0===this.repeatCounter)return c.TweenData.COMPLETE;if(this.inReverse)for(var a in this.vStartCache)this.vStart[a]=this.vEndCache[a],this.vEnd[a]=this.vStartCache[a];else{for(var a in this.vStartCache)this.vStart[a]=this.vStartCache[a],this.vEnd[a]=this.vEndCache[a];this.repeatCounter>0&&this.repeatCounter--}return this.startTime=this.game.time.time,this.yoyo&&this.inReverse?this.startTime+=this.yoyoDelay:this.inReverse||(this.startTime+=this.repeatDelay),this.dt=this.parent.reverse?this.duration:0,c.TweenData.LOOPED}},c.TweenData.prototype.constructor=c.TweenData,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 0===a?0:1===a?1:1-Math.cos(a*Math.PI/2)},Out:function(a){return 0===a?0:1===a?1:Math.sin(a*Math.PI/2)},InOut:function(a){return 0===a?0:1===a?1:.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.Easing.Power0=c.Easing.Linear.None,c.Easing.Power1=c.Easing.Quadratic.Out,c.Easing.Power2=c.Easing.Cubic.Out,c.Easing.Power3=c.Easing.Quartic.Out,c.Easing.Power4=c.Easing.Quintic.Out,c.Time=function(a){this.game=a,this.time=0,this.prevTime=0,this.now=0,this.elapsed=0,this.elapsedMS=0,this.physicsElapsed=0,this.physicsElapsedMS=0,this.desiredFps=60,this.suggestedFps=null,this.slowMotion=1,this.advancedTiming=!1,this.frames=0,this.fps=0,this.fpsMin=1e3,this.fpsMax=0,this.msMin=1e3,this.msMax=0,this.pauseDuration=0,this.timeToCall=0,this.timeExpected=0,this.events=new c.Timer(this.game,!1),this._frameCount=0,this._elapsedAccumulator=0,this._started=0,this._timeLastSecond=0,this._pauseStarted=0,this._justResumed=!1,this._timers=[]},c.Time.prototype={boot:function(){this._started=Date.now(),this.time=Date.now(),this.events.start()},add:function(a){return this._timers.push(a),a},create:function(a){void 0===a&&(a=!0);var b=new c.Timer(this.game,a);return this._timers.push(b),b},removeAll:function(){for(var a=0;aa;)this._timers[a].update(this.time)?a++:(this._timers.splice(a,1),b--)},updateAdvancedTiming:function(){this._frameCount++,this._elapsedAccumulator+=this.elapsed,this._frameCount>=2*this.desiredFps&&(this.suggestedFps=5*Math.floor(200/(this._elapsedAccumulator/this._frameCount)),this._frameCount=0,this._elapsedAccumulator=0),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)},gamePaused:function(){this._pauseStarted=Date.now(),this.events.pause();for(var a=this._timers.length;a--;)this._timers[a]._pause()},gameResumed:function(){this.time=Date.now(),this.pauseDuration=this.time-this._pauseStarted,this.events.resume();for(var a=this._timers.length;a--;)this._timers[a]._resume()},totalElapsedSeconds:function(){return.001*(this.time-this._started)},elapsedSince:function(a){return this.time-a},elapsedSecondsSince:function(a){return.001*(this.time-a)},reset:function(){this._started=this.time,this.removeAll()}},c.Time.prototype.constructor=c.Time,c.Timer=function(a,b){void 0===b&&(b=!0),this.game=a,this.running=!1,this.autoDestroy=b,this.expired=!1,this.elapsed=0,this.events=[],this.onComplete=new c.Signal,this.nextTick=0,this.timeCap=1e3,this.paused=!1,this._codePaused=!1,this._started=0,this._pauseStarted=0,this._pauseTotal=0,this._now=Date.now(),this._len=0,this._marked=0,this._i=0,this._diff=0,this._newTick=0},c.Timer.MINUTE=6e4,c.Timer.SECOND=1e3,c.Timer.HALF=500,c.Timer.QUARTER=250,c.Timer.prototype={create:function(a,b,d,e,f,g){a=Math.round(a);var h=a;h+=0===this._now?this.game.time.time:this._now;var i=new c.TimerEvent(this,a,h,d,b,e,f,g);return this.events.push(i),this.order(),this.expired=!1,i},add:function(a,b,c){return this.create(a,!1,0,b,c,Array.prototype.splice.call(arguments,3))},repeat:function(a,b,c,d){return this.create(a,!1,b,c,d,Array.prototype.splice.call(arguments,4))},loop:function(a,b,c){return this.create(a,!0,0,b,c,Array.prototype.splice.call(arguments,3))},start:function(a){if(!this.running){this._started=this.game.time.time+(a||0),this.running=!0;for(var b=0;b0&&(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.events[this._i].pendingDelete;)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},destroy:function(){this.onComplete.removeAll(),this.running=!1,this.events=[],this._len=0,this._i=0}},Object.defineProperty(c.Timer.prototype,"next",{get:function(){return this.nextTick}}),Object.defineProperty(c.Timer.prototype,"duration",{get:function(){return this.running&&this.nextTick>this._now?this.nextTick-this._now:0}}),Object.defineProperty(c.Timer.prototype,"length",{get:function(){return this.events.length}}),Object.defineProperty(c.Timer.prototype,"ms",{get:function(){return this.running?this._now-this._started-this._pauseTotal:0}}),Object.defineProperty(c.Timer.prototype,"seconds",{get:function(){return this.running?.001*this.ms:0}}),c.Timer.prototype.constructor=c.Timer,c.TimerEvent=function(a,b,c,d,e,f,g,h){this.timer=a,this.delay=b,this.tick=c,this.repeatCount=d-1,this.loop=e,this.callback=f,this.callbackContext=g,this.args=h,this.pendingDelete=!1},c.TimerEvent.prototype.constructor=c.TimerEvent,c.AnimationManager=function(a){this.sprite=a,this.game=a.game,this.currentFrame=null,this.currentAnim=null,this.updateIfVisible=!0,this.isLoaded=!1,this._frameData=null,this._anims={},this._outputFrames=[]},c.AnimationManager.prototype={loadFrameData:function(a,b){if(void 0===a)return!1;if(this.isLoaded)for(var c in this._anims)this._anims[c].updateFrameData(a);return this._frameData=a,void 0===b||null===b?this.frame=0:"string"==typeof b?this.frameName=b:this.frame=b,this.isLoaded=!0,!0},copyFrameData:function(a,b){if(this._frameData=a.clone(),this.isLoaded)for(var c in this._anims)this._anims[c].updateFrameData(this._frameData);return void 0===b||null===b?this.frame=0:"string"==typeof b?this.frameName=b:this.frame=b,this.isLoaded=!0,!0},add:function(a,b,d,e,f){return b=b||[],d=d||60,void 0===e&&(e=!1),void 0===f&&(f=b&&"number"==typeof b[0]?!0:!1),this._outputFrames=[],this._frameData.getFrameIndexes(b,f,this._outputFrames),this._anims[a]=new c.Animation(this.game,this.sprite,a,this._frameData,this._outputFrames,d,e),this.currentAnim=this._anims[a],this.sprite.tilingTexture&&(this.sprite.refreshTexture=!0),this._anims[a]},validateFrames:function(a,b){void 0===b&&(b=!0);for(var c=0;cthis._frameData.total)return!1}else if(this._frameData.checkFrameName(a[c])===!1)return!1;return!0},play:function(a,b,c,d){return this._anims[a]?this.currentAnim===this._anims[a]?this.currentAnim.isPlaying===!1?(this.currentAnim.paused=!1,this.currentAnim.play(b,c,d)):this.currentAnim:(this.currentAnim&&this.currentAnim.isPlaying&&this.currentAnim.stop(),this.currentAnim=this._anims[a],this.currentAnim.paused=!1,this.currentFrame=this.currentAnim.currentFrame,this.currentAnim.play(b,c,d)):void 0},stop:function(a,b){void 0===b&&(b=!1),"string"==typeof a?this._anims[a]&&(this.currentAnim=this._anims[a],this.currentAnim.stop(b)):this.currentAnim&&this.currentAnim.stop(b)},update:function(){return this.updateIfVisible&&!this.sprite.visible?!1:this.currentAnim&&this.currentAnim.update()?(this.currentFrame=this.currentAnim.currentFrame,!0):!1},next:function(a){this.currentAnim&&(this.currentAnim.next(a),this.currentFrame=this.currentAnim.currentFrame)},previous:function(a){this.currentAnim&&(this.currentAnim.previous(a),this.currentFrame=this.currentAnim.currentFrame)},getAnimation:function(a){return"string"==typeof a&&this._anims[a]?this._anims[a]:null},refreshFrame:function(){this.sprite.setTexture(PIXI.TextureCache[this.currentFrame.uuid])},destroy:function(){var a=null;for(var a in this._anims)this._anims.hasOwnProperty(a)&&this._anims[a].destroy();this._anims={},this._outputFrames=[],this._frameData=null,this.currentAnim=null,this.currentFrame=null,this.sprite=null,this.game=null}},c.AnimationManager.prototype.constructor=c.AnimationManager,Object.defineProperty(c.AnimationManager.prototype,"frameData",{get:function(){return this._frameData}}),Object.defineProperty(c.AnimationManager.prototype,"frameTotal",{get:function(){return this._frameData.total}}),Object.defineProperty(c.AnimationManager.prototype,"paused",{get:function(){return this.currentAnim.isPaused},set:function(a){this.currentAnim.paused=a}}),Object.defineProperty(c.AnimationManager.prototype,"name",{get:function(){return this.currentAnim?this.currentAnim.name:void 0}}),Object.defineProperty(c.AnimationManager.prototype,"frame",{get:function(){return this.currentFrame?this.currentFrame.index:void 0},set:function(a){"number"==typeof a&&this._frameData&&null!==this._frameData.getFrame(a)&&(this.currentFrame=this._frameData.getFrame(a),this.currentFrame&&this.sprite.setFrame(this.currentFrame))}}),Object.defineProperty(c.AnimationManager.prototype,"frameName",{get:function(){return this.currentFrame?this.currentFrame.name:void 0},set:function(a){"string"==typeof a&&this._frameData&&null!==this._frameData.getFrameByName(a)?(this.currentFrame=this._frameData.getFrameByName(a),this.currentFrame&&(this._frameIndex=this.currentFrame.index,this.sprite.setFrame(this.currentFrame))):console.warn("Cannot set frameName: "+a)}}),c.Animation=function(a,b,d,e,f,g,h){void 0===h&&(h=!1),this.game=a,this._parent=b,this._frameData=e,this.name=d,this._frames=[],this._frames=this._frames.concat(f),this.delay=1e3/g,this.loop=h,this.loopCount=0,this.killOnComplete=!1,this.isFinished=!1,this.isPlaying=!1,this.isPaused=!1,this._pauseStartTime=0,this._frameIndex=0,this._frameDiff=0,this._frameSkip=1,this.currentFrame=this._frameData.getFrame(this._frames[this._frameIndex]),this.onStart=new c.Signal,this.onUpdate=null,this.onComplete=new c.Signal,this.onLoop=new c.Signal,this.game.onPause.add(this.onPause,this),this.game.onResume.add(this.onResume,this)},c.Animation.prototype={play:function(a,b,c){return"number"==typeof a&&(this.delay=1e3/a),"boolean"==typeof b&&(this.loop=b),"undefined"!=typeof c&&(this.killOnComplete=c),this.isPlaying=!0,this.isFinished=!1,this.paused=!1,this.loopCount=0,this._timeLastFrame=this.game.time.time,this._timeNextFrame=this.game.time.time+this.delay,this._frameIndex=0,this.updateCurrentFrame(!1,!0),this._parent.events.onAnimationStart$dispatch(this._parent,this),this.onStart.dispatch(this._parent,this),this._parent.animations.currentAnim=this,this._parent.animations.currentFrame=this.currentFrame,this},restart:function(){this.isPlaying=!0,this.isFinished=!1,this.paused=!1,this.loopCount=0,this._timeLastFrame=this.game.time.time,this._timeNextFrame=this.game.time.time+this.delay,this._frameIndex=0,this.currentFrame=this._frameData.getFrame(this._frames[this._frameIndex]),this._parent.setFrame(this.currentFrame),this._parent.animations.currentAnim=this,this._parent.animations.currentFrame=this.currentFrame,this.onStart.dispatch(this._parent,this)},setFrame:function(a,b){var c;if(void 0===b&&(b=!1),"string"==typeof a)for(var d=0;d=this._timeNextFrame?(this._frameSkip=1,this._frameDiff=this.game.time.time-this._timeNextFrame,this._timeLastFrame=this.game.time.time,this._frameDiff>this.delay&&(this._frameSkip=Math.floor(this._frameDiff/this.delay),this._frameDiff-=this._frameSkip*this.delay),this._timeNextFrame=this.game.time.time+(this.delay-this._frameDiff),this._frameIndex+=this._frameSkip,this._frameIndex>=this._frames.length?this.loop?(this._frameIndex%=this._frames.length,this.currentFrame=this._frameData.getFrame(this._frames[this._frameIndex]),this.currentFrame&&this._parent.setFrame(this.currentFrame),this.loopCount++,this._parent.events.onAnimationLoop$dispatch(this._parent,this),this.onLoop.dispatch(this._parent,this),this.onUpdate?(this.onUpdate.dispatch(this,this.currentFrame),!!this._frameData):!0):(this.complete(),!1):this.updateCurrentFrame(!0)):!1},updateCurrentFrame:function(a,b){if(void 0===b&&(b=!1),!this._frameData)return!1;var c=this.currentFrame.index;return this.currentFrame=this._frameData.getFrame(this._frames[this._frameIndex]),this.currentFrame&&(b||!b&&c!==this.currentFrame.index)&&this._parent.setFrame(this.currentFrame),this.onUpdate&&a?(this.onUpdate.dispatch(this,this.currentFrame),!!this._frameData):!0},next:function(a){void 0===a&&(a=1);var b=this._frameIndex+a;b>=this._frames.length&&(this.loop?b%=this._frames.length:b=this._frames.length-1),b!==this._frameIndex&&(this._frameIndex=b,this.updateCurrentFrame(!0))},previous:function(a){void 0===a&&(a=1);var b=this._frameIndex-a;0>b&&(this.loop?b=this._frames.length+b:b++),b!==this._frameIndex&&(this._frameIndex=b,this.updateCurrentFrame(!0))},updateFrameData:function(a){this._frameData=a,this.currentFrame=this._frameData?this._frameData.getFrame(this._frames[this._frameIndex%this._frames.length]):null},destroy:function(){this._frameData&&(this.game.onPause.remove(this.onPause,this),this.game.onResume.remove(this.onResume,this),this.game=null,this._parent=null,this._frames=null,this._frameData=null,this.currentFrame=null,this.isPlaying=!1,this.onStart.dispose(),this.onLoop.dispose(),this.onComplete.dispose(),this.onUpdate&&this.onUpdate.dispose())},complete:function(){this._frameIndex=this._frames.length-1,this.currentFrame=this._frameData.getFrame(this._frames[this._frameIndex]),this.isPlaying=!1,this.isFinished=!0,this.paused=!1,this._parent.events.onAnimationComplete$dispatch(this._parent,this),this.onComplete.dispatch(this._parent,this),this.killOnComplete&&this._parent.kill()}},c.Animation.prototype.constructor=c.Animation,Object.defineProperty(c.Animation.prototype,"paused",{get:function(){return this.isPaused},set:function(a){this.isPaused=a,a?this._pauseStartTime=this.game.time.time:this.isPlaying&&(this._timeNextFrame=this.game.time.time+this.delay)}}),Object.defineProperty(c.Animation.prototype,"frameTotal",{get:function(){return this._frames.length}}),Object.defineProperty(c.Animation.prototype,"frame",{get:function(){return null!==this.currentFrame?this.currentFrame.index:this._frameIndex},set:function(a){this.currentFrame=this._frameData.getFrame(this._frames[a]),null!==this.currentFrame&&(this._frameIndex=a,this._parent.setFrame(this.currentFrame),this.onUpdate&&this.onUpdate.dispatch(this,this.currentFrame))}}),Object.defineProperty(c.Animation.prototype,"speed",{get:function(){return Math.round(1e3/this.delay)},set:function(a){a>=1&&(this.delay=1e3/a)}}),Object.defineProperty(c.Animation.prototype,"enableUpdate",{get:function(){return null!==this.onUpdate},set:function(a){a&&null===this.onUpdate?this.onUpdate=new c.Signal:a||null===this.onUpdate||(this.onUpdate.dispose(),this.onUpdate=null)}}),c.Animation.generateFrameNames=function(a,b,d,e,f){void 0===e&&(e="");var g=[],h="";if(d>b)for(var i=b;d>=i;i++)h="number"==typeof f?c.Utils.pad(i.toString(),f,"0",1):i.toString(),h=a+h+e,g.push(h);else for(var i=b;i>=d;i--)h="number"==typeof f?c.Utils.pad(i.toString(),f,"0",1):i.toString(),h=a+h+e,g.push(h);return g},c.Frame=function(a,b,d,e,f,g){this.index=a,this.x=b,this.y=d,this.width=e,this.height=f,this.name=g,this.centerX=Math.floor(e/2),this.centerY=Math.floor(f/2),this.distance=c.Math.distance(0,0,e,f),this.rotated=!1,this.rotationDirection="cw",this.trimmed=!1,this.sourceSizeW=e,this.sourceSizeH=f,this.spriteSourceSizeX=0,this.spriteSourceSizeY=0,this.spriteSourceSizeW=0,this.spriteSourceSizeH=0,this.right=this.x+this.width,this.bottom=this.y+this.height},c.Frame.prototype={resize:function(a,b){this.width=a,this.height=b,this.centerX=Math.floor(a/2),this.centerY=Math.floor(b/2),this.distance=c.Math.distance(0,0,a,b),this.sourceSizeW=a,this.sourceSizeH=b,this.right=this.x+a,this.bottom=this.y+b},setTrim:function(a,b,c,d,e,f,g){this.trimmed=a,a&&(this.sourceSizeW=b,this.sourceSizeH=c,this.centerX=Math.floor(b/2),this.centerY=Math.floor(c/2),this.spriteSourceSizeX=d,this.spriteSourceSizeY=e,this.spriteSourceSizeW=f,this.spriteSourceSizeH=g)},clone:function(){var a=new c.Frame(this.index,this.x,this.y,this.width,this.height,this.name);for(var b in this)this.hasOwnProperty(b)&&(a[b]=this[b]);return a},getRect:function(a){return void 0===a?a=new c.Rectangle(this.x,this.y,this.width,this.height):a.setTo(this.x,this.y,this.width,this.height),a}},c.Frame.prototype.constructor=c.Frame,c.FrameData=function(){this._frames=[],this._frameNames=[]},c.FrameData.prototype={addFrame:function(a){return a.index=this._frames.length,this._frames.push(a),""!==a.name&&(this._frameNames[a.name]=a.index),a},getFrame:function(a){return a>=this._frames.length&&(a=0),this._frames[a]},getFrameByName:function(a){return"number"==typeof this._frameNames[a]?this._frames[this._frameNames[a]]:null},checkFrameName:function(a){return null==this._frameNames[a]?!1:!0},clone:function(){for(var a=new c.FrameData,b=0;b=d;d++)c.push(this._frames[d]);return c},getFrames:function(a,b,c){if(void 0===b&&(b=!0),void 0===c&&(c=[]),void 0===a||0===a.length)for(var d=0;d=d&&(d=Math.floor(-j/Math.min(-1,d))),0>=e&&(e=Math.floor(-k/Math.min(-1,e)));var l=Math.floor((j-g)/(d+h)),m=Math.floor((k-g)/(e+h)),n=l*m;if(-1!==f&&(n=f),0===j||0===k||d>j||e>k||0===n)return console.warn("Phaser.AnimationParser.spriteSheet: '"+b+"'s width/height zero or width/height < given frameWidth/frameHeight"),null;for(var o=new c.FrameData,p=g,q=g,r=0;n>r;r++)o.addFrame(new c.Frame(r,p,q,d,e,"")),p+=d+h,p+d>j&&(p=g,q+=e+h);return o},JSONData:function(a,b){if(!b.frames)return console.warn("Phaser.AnimationParser.JSONData: Invalid Texture Atlas JSON given, missing 'frames' array"),void console.log(b);for(var d,e=new c.FrameData,f=b.frames,g=0;g tag");for(var d,e,f,g,h,i,j,k,l,m,n,o=new c.FrameData,p=b.getElementsByTagName("SubTexture"),q=0;q-1},getAssetIndex:function(a,b){for(var c=-1,d=0;d-1?{index:c,file:this._fileList[c]}:!1},reset:function(a,b){void 0===b&&(b=!1),this.resetLocked||(a&&(this.preloadSprite=null),this.isLoading=!1,this._processingHead=0,this._fileList.length=0,this._flightQueue.length=0,this._fileLoadStarted=!1,this._totalFileCount=0,this._totalPackCount=0,this._loadedPackCount=0,this._loadedFileCount=0,b&&(this.onLoadStart.removeAll(),this.onLoadComplete.removeAll(),this.onPackComplete.removeAll(),this.onFileStart.removeAll(),this.onFileComplete.removeAll(),this.onFileError.removeAll()))},addToFileList:function(a,b,c,d,e,f){if(void 0===e&&(e=!1),void 0===b||""===b)return console.warn("Phaser.Loader: Invalid or no key given of type "+a),this;if(void 0===c||null===c){if(!f)return console.warn("Phaser.Loader: No URL given for file type: "+a+" key: "+b),this;c=b+f}var g={type:a,key:b,path:this.path,url:c,syncPoint:this._withSyncPointDepth>0,data:null,loading:!1,loaded:!1,error:!1};if(d)for(var h in d)g[h]=d[h];var i=this.getAssetIndex(a,b);if(e&&i>-1){var j=this._fileList[i];j.loading||j.loaded?(this._fileList.push(g),this._totalFileCount++):this._fileList[i]=g}else-1===i&&(this._fileList.push(g),this._totalFileCount++);return this},replaceInFileList:function(a,b,c,d){return this.addToFileList(a,b,c,d,!0)},pack:function(a,b,c,d){if(void 0===b&&(b=null),void 0===c&&(c=null),void 0===d&&(d=null),!b&&!c)return console.warn("Phaser.Loader.pack - Both url and data are null. One must be set."),this;var e={type:"packfile",key:a,url:b,path:this.path,syncPoint:!0,data:null,loading:!1,loaded:!1,error:!1,callbackContext:d};c&&("string"==typeof c&&(c=JSON.parse(c)),e.data=c||{},e.loaded=!0);for(var f=0;f=e||d&&this._loadedPackCount===this._totalPackCount)break}if(this.updateProgress(),this._processingHead>=this._fileList.length)this.finishedLoading();else if(!this._flightQueue.length){console.warn("Phaser.Loader - aborting: processing queue empty, loading may have stalled");var f=this;setTimeout(function(){f.finishedLoading(!0)},2e3)}},finishedLoading:function(a){this.hasLoaded||(this.hasLoaded=!0,this.isLoading=!1,a||this._fileLoadStarted||(this._fileLoadStarted=!0,this.onLoadStart.dispatch()),this.onLoadComplete.dispatch(),this.reset(),this.game.state.loadComplete())},asyncComplete:function(a,b){void 0===b&&(b=""),a.loaded=!0,a.error=!!b,b&&(a.errorMessage=b,console.warn("Phaser.Loader - "+a.type+"["+a.key+"]: "+b)),this.processLoadQueue()},processPack:function(a){var b=a.data[a.key];if(!b)return void console.warn("Phaser.Loader - "+a.key+": pack has data, but not for pack key");for(var d=0;d=10)||(this._warnedAboutXDomainRequest=!0,console.warn("Phaser.Loader - using XDomainRequest outside of IE 9"));var f=new window.XDomainRequest;f.open("GET",b,!0),f.responseType=c,f.timeout=3e3,e=e||this.fileError;var g=this;f.onerror=function(){try{return e.call(g,a,f)}catch(b){g.asyncComplete(a,b.message||"Exception")}},f.ontimeout=function(){try{return e.call(g,a,f)}catch(b){g.asyncComplete(a,b.message||"Exception")}},f.onprogress=function(){},f.onload=function(){try{return d.call(g,a,f)}catch(b){g.asyncComplete(a,b.message||"Exception")}},a.requestObject=f,a.requestUrl=b,setTimeout(function(){f.send()},0)},getVideoURL:function(a){for(var b=0;b=0&&(d=d.substr(0,d.indexOf("?")));var e=d.substr((Math.max(0,d.lastIndexOf("."))||1/0)+1);c=e.toLowerCase()}if(this.game.device.canPlayVideo(c))return a[b]}return null},getAudioURL:function(a){if(this.game.sound.noAudio)return null;for(var b=0;b=0&&(d=d.substr(0,d.indexOf("?")));var e=d.substr((Math.max(0,d.lastIndexOf("."))||1/0)+1);c=e.toLowerCase()}if(this.game.device.canPlayAudio(c))return a[b]}return null},fileError:function(a,b,c){var d=a.requestUrl||this.transformUrl(a.url,a),e="error loading asset from URL "+d;!c&&b&&(c=b.status),c&&(e=e+" ("+c+")"),this.asyncComplete(a,e)},fileComplete:function(a,b){var d=!0;switch(a.type){case"packfile":var e=JSON.parse(b.responseText);a.data=e||{};break;case"image":this.cache.addImage(a.key,a.url,a.data);break;case"spritesheet":this.cache.addSpriteSheet(a.key,a.url,a.data,a.frameWidth,a.frameHeight,a.frameMax,a.margin,a.spacing);break;case"textureatlas":if(null==a.atlasURL)this.cache.addTextureAtlas(a.key,a.url,a.data,a.atlasData,a.format);else if(d=!1,a.format==c.Loader.TEXTURE_ATLAS_JSON_ARRAY||a.format==c.Loader.TEXTURE_ATLAS_JSON_HASH)this.xhrLoad(a,this.transformUrl(a.atlasURL,a),"text",this.jsonLoadComplete);else{if(a.format!=c.Loader.TEXTURE_ATLAS_XML_STARLING)throw new Error("Phaser.Loader. Invalid Texture Atlas format: "+a.format);this.xhrLoad(a,this.transformUrl(a.atlasURL,a),"text",this.xmlLoadComplete)}break;case"bitmapfont":a.atlasURL?(d=!1,this.xhrLoad(a,this.transformUrl(a.atlasURL,a),"text",function(a,b){var c;try{c=JSON.parse(b.responseText)}catch(d){}c?(a.atlasType="json",this.jsonLoadComplete(a,b)):(a.atlasType="xml",this.xmlLoadComplete(a,b))})):this.cache.addBitmapFont(a.key,a.url,a.data,a.atlasData,a.atlasType,a.xSpacing,a.ySpacing);break;case"video":if(a.asBlob)try{a.data=new Blob([new Uint8Array(b.response)])}catch(f){throw new Error("Phaser.Loader. Unable to parse video file as Blob: "+a.key)}this.cache.addVideo(a.key,a.url,a.data,a.asBlob);break;case"audio":this.game.sound.usingWebAudio?(a.data=b.response,this.cache.addSound(a.key,a.url,a.data,!0,!1),a.autoDecode&&this.game.sound.decode(a.key)):this.cache.addSound(a.key,a.url,a.data,!1,!0);break;case"text":a.data=b.responseText,this.cache.addText(a.key,a.url,a.data);break;case"shader":a.data=b.responseText,this.cache.addShader(a.key,a.url,a.data);break;case"physics":var e=JSON.parse(b.responseText);this.cache.addPhysicsData(a.key,a.url,e,a.format);break;case"script":a.data=document.createElement("script"),a.data.language="javascript",a.data.type="text/javascript",a.data.defer=!1,a.data.text=b.responseText,document.head.appendChild(a.data),a.callback&&(a.data=a.callback.call(a.callbackContext,a.key,b.responseText));break;case"binary":a.data=a.callback?a.callback.call(a.callbackContext,a.key,b.response):b.response,this.cache.addBinary(a.key,a.data)}d&&this.asyncComplete(a)},jsonLoadComplete:function(a,b){var c=JSON.parse(b.responseText);"tilemap"===a.type?this.cache.addTilemap(a.key,a.url,c,a.format):"bitmapfont"===a.type?this.cache.addBitmapFont(a.key,a.url,a.data,c,a.atlasType,a.xSpacing,a.ySpacing):"json"===a.type?this.cache.addJSON(a.key,a.url,c):this.cache.addTextureAtlas(a.key,a.url,a.data,c,a.format),this.asyncComplete(a)},csvLoadComplete:function(a,b){var c=b.responseText;this.cache.addTilemap(a.key,a.url,c,a.format),this.asyncComplete(a)},xmlLoadComplete:function(a,b){var c=b.responseText,d=this.parseXml(c);if(!d){var e=b.responseType||b.contentType;return console.warn("Phaser.Loader - "+a.key+": invalid XML ("+e+")"),void this.asyncComplete(a,"invalid XML")}"bitmapfont"===a.type?this.cache.addBitmapFont(a.key,a.url,a.data,d,a.atlasType,a.xSpacing,a.ySpacing):"textureatlas"===a.type?this.cache.addTextureAtlas(a.key,a.url,a.data,d,a.format):"xml"===a.type&&this.cache.addXML(a.key,a.url,d),this.asyncComplete(a)},parseXml:function(a){var b;try{if(window.DOMParser){var c=new DOMParser;b=c.parseFromString(a,"text/xml")}else b=new ActiveXObject("Microsoft.XMLDOM"),b.async="false",b.loadXML(a)}catch(d){b=null}return b&&b.documentElement&&!b.getElementsByTagName("parsererror").length?b:null},updateProgress:function(){this.preloadSprite&&(0===this.preloadSprite.direction?this.preloadSprite.rect.width=Math.floor(this.preloadSprite.width/100*this.progress):this.preloadSprite.rect.height=Math.floor(this.preloadSprite.height/100*this.progress),this.preloadSprite.sprite?this.preloadSprite.sprite.updateCrop():this.preloadSprite=null)},totalLoadedFiles:function(){return this._loadedFileCount},totalQueuedFiles:function(){return this._totalFileCount-this._loadedFileCount},totalLoadedPacks:function(){return this._totalPackCount},totalQueuedPacks:function(){return this._totalPackCount-this._loadedPackCount}},Object.defineProperty(c.Loader.prototype,"progressFloat",{get:function(){var a=this._loadedFileCount/this._totalFileCount*100;return c.Math.clamp(a||0,0,100)}}),Object.defineProperty(c.Loader.prototype,"progress",{get:function(){return Math.round(this.progressFloat)}}),c.Loader.prototype.constructor=c.Loader,c.LoaderParser={bitmapFont:function(a,b,c,d){return this.xmlBitmapFont(a,b,c,d)},xmlBitmapFont:function(a,b,c,d){var e={},f=a.getElementsByTagName("info")[0],g=a.getElementsByTagName("common")[0];e.font=f.getAttribute("face"),e.size=parseInt(f.getAttribute("size"),10),e.lineHeight=parseInt(g.getAttribute("lineHeight"),10)+d,e.chars={};for(var h=a.getElementsByTagName("char"),i=0;i=this.durationMS&&(this.usingWebAudio?this.loop?(this.onLoop.dispatch(this),""===this.currentMarker?(this.currentTime=0,this.startTime=this.game.time.time):(this.onMarkerComplete.dispatch(this.currentMarker,this),this.play(this.currentMarker,0,this.volume,!0,!0))):""!==this.currentMarker&&this.stop():this.loop?(this.onLoop.dispatch(this),this.play(this.currentMarker,0,this.volume,!0,!0)):this.stop()))},loopFull:function(a){this.play(null,0,a,!0)},play:function(a,b,c,d,e){if((void 0===a||a===!1||null===a)&&(a=""),void 0===e&&(e=!0),this.isPlaying&&!this.allowMultiple&&!e&&!this.override)return this;if(this._sound&&this.isPlaying&&!this.allowMultiple&&(this.override||e))if(this.usingWebAudio)if(this._sound.disconnect(this.externalNode?this.externalNode:this.gainNode),void 0===this._sound.stop)this._sound.noteOff(0);else try{this._sound.stop(0)}catch(f){}else this.usingAudioTag&&(this._sound.pause(),this._sound.currentTime=0);if(""===a&&Object.keys(this.markers).length>0)return this;if(""!==a){if(this.currentMarker=a,!this.markers[a])return this;this.position=this.markers[a].start,this.volume=this.markers[a].volume,this.loop=this.markers[a].loop,this.duration=this.markers[a].duration,this.durationMS=this.markers[a].durationMS,"undefined"!=typeof c&&(this.volume=c),"undefined"!=typeof d&&(this.loop=d),this._tempMarker=a,this._tempPosition=this.position,this._tempVolume=this.volume,this._tempLoop=this.loop}else b=b||0,void 0===c&&(c=this._volume),void 0===d&&(d=this.loop),this.position=b,this.volume=c,this.loop=d,this.duration=0,this.durationMS=0,this._tempMarker=a,this._tempPosition=b,this._tempVolume=c,this._tempLoop=d;return this.usingWebAudio?this.game.cache.isSoundDecoded(this.key)?(this._sound=this.context.createBufferSource(),this._sound.connect(this.externalNode?this.externalNode:this.gainNode),this._buffer=this.game.cache.getSoundData(this.key),this._sound.buffer=this._buffer,this.loop&&""===a&&(this._sound.loop=!0),this.loop||""!==a||(this._sound.onended=this.onEndedHandler.bind(this)),this.totalDuration=this._sound.buffer.duration,0===this.duration&&(this.duration=this.totalDuration,this.durationMS=Math.ceil(1e3*this.totalDuration)),void 0===this._sound.start?this._sound.noteGrainOn(0,this.position,this.duration):this.loop&&""===a?this._sound.start(0,0):this._sound.start(0,this.position,this.duration),this.isPlaying=!0,this.startTime=this.game.time.time,this.currentTime=0,this.stopTime=this.startTime+this.durationMS,this.onPlay.dispatch(this)):(this.pendingPlayback=!0,this.game.cache.getSound(this.key)&&this.game.cache.getSound(this.key).isDecoding===!1&&this.game.sound.decode(this.key,this)):this.game.cache.getSound(this.key)&&this.game.cache.getSound(this.key).locked?(this.game.cache.reloadSound(this.key),this.pendingPlayback=!0):this._sound&&(this.game.device.cocoonJS||4===this._sound.readyState)?(this._sound.play(),this.totalDuration=this._sound.duration,0===this.duration&&(this.duration=this.totalDuration,this.durationMS=1e3*this.totalDuration),this._sound.currentTime=this.position,this._sound.muted=this._muted,this._sound.volume=this._muted?0:this._volume,this.isPlaying=!0,this.startTime=this.game.time.time,this.currentTime=0,this.stopTime=this.startTime+this.durationMS,this.onPlay.dispatch(this)):this.pendingPlayback=!0,this},restart:function(a,b,c,d){a=a||"",b=b||0,c=c||1,void 0===d&&(d=!1),this.play(a,b,c,d,!0)},pause:function(){this.isPlaying&&this._sound&&(this.paused=!0,this.pausedPosition=this.currentTime,this.pausedTime=this.game.time.time,this.onPause.dispatch(this),this.stop())},resume:function(){if(this.paused&&this._sound){if(this.usingWebAudio){var a=this.position+this.pausedPosition/1e3;this._sound=this.context.createBufferSource(),this._sound.buffer=this._buffer,this._sound.connect(this.externalNode?this.externalNode:this.gainNode),this.loop&&(this._sound.loop=!0),this.loop||""!==this.currentMarker||(this._sound.onended=this.onEndedHandler.bind(this));var b=this.duration-this.pausedPosition/1e3;void 0===this._sound.start?this._sound.noteGrainOn(0,a,b):this.loop&&this.game.device.chrome?42===this.game.device.chromeVersion?this._sound.start(0):this._sound.start(0,a):this._sound.start(0,a,b)}else this._sound.play();this.isPlaying=!0,this.paused=!1,this.startTime+=this.game.time.time-this.pausedTime,this.onResume.dispatch(this)}},stop:function(){if(this.isPlaying&&this._sound)if(this.usingWebAudio)if(this._sound.disconnect(this.externalNode?this.externalNode:this.gainNode),void 0===this._sound.stop)this._sound.noteOff(0);else try{this._sound.stop(0)}catch(a){}else this.usingAudioTag&&(this._sound.pause(),this._sound.currentTime=0);this.pendingPlayback=!1,this.isPlaying=!1;var b=this.currentMarker;""!==this.currentMarker&&this.onMarkerComplete.dispatch(this.currentMarker,this),this.currentMarker="",null!==this.fadeTween&&this.fadeTween.stop(),this.paused||this.onStop.dispatch(this,b)},fadeIn:function(a,b,c){void 0===b&&(b=!1),void 0===c&&(c=this.currentMarker),this.paused||(this.play(c,0,0,b),this.fadeTo(a,1))},fadeOut:function(a){this.fadeTo(a,0)},fadeTo:function(a,b){if(this.isPlaying&&!this.paused&&b!==this.volume){if(void 0===a&&(a=1e3),void 0===b)return void console.warn("Phaser.Sound.fadeTo: No Volume Specified.");this.fadeTween=this.game.add.tween(this).to({volume:b},a,c.Easing.Linear.None,!0),this.fadeTween.onComplete.add(this.fadeComplete,this)}},fadeComplete:function(){this.onFadeComplete.dispatch(this,this.volume),0===this.volume&&this.stop()},destroy:function(a){void 0===a&&(a=!0),this.stop(),a?this.game.sound.remove(this):(this.markers={},this.context=null,this._buffer=null,this.externalNode=null,this.onDecoded.dispose(),this.onPlay.dispose(),this.onPause.dispose(),this.onResume.dispose(),this.onLoop.dispose(),this.onStop.dispose(),this.onMute.dispose(),this.onMarkerComplete.dispose())}},c.Sound.prototype.constructor=c.Sound,Object.defineProperty(c.Sound.prototype,"isDecoding",{get:function(){return this.game.cache.getSound(this.key).isDecoding}}),Object.defineProperty(c.Sound.prototype,"isDecoded",{get:function(){return this.game.cache.isSoundDecoded(this.key)}}),Object.defineProperty(c.Sound.prototype,"mute",{get:function(){return this._muted||this.game.sound.mute},set:function(a){a=a||!1,a!==this._muted&&(a?(this._muted=!0,this._muteVolume=this._tempVolume,this.usingWebAudio?this.gainNode.gain.value=0:this.usingAudioTag&&this._sound&&(this._sound.volume=0)):(this._muted=!1,this.usingWebAudio?this.gainNode.gain.value=this._muteVolume:this.usingAudioTag&&this._sound&&(this._sound.volume=this._muteVolume)),this.onMute.dispatch(this))}}),Object.defineProperty(c.Sound.prototype,"volume",{get:function(){return this._volume},set:function(a){return this.game.device.firefox&&this.usingAudioTag&&(a=this.game.math.clamp(a,0,1)),this._muted?void(this._muteVolume=a):(this._tempVolume=a,this._volume=a,void(this.usingWebAudio?this.gainNode.gain.value=a:this.usingAudioTag&&this._sound&&(this._sound.volume=a)))}}),c.SoundManager=function(a){this.game=a,this.onSoundDecode=new c.Signal,this.onVolumeChange=new c.Signal,this.onMute=new c.Signal,this.onUnMute=new c.Signal,this.context=null,this.usingWebAudio=!1,this.usingAudioTag=!1,this.noAudio=!1,this.connectToMaster=!0,this.touchLocked=!1,this.channels=32,this._codeMuted=!1,this._muted=!1,this._unlockSource=null,this._volume=1,this._sounds=[],this._watchList=new c.ArraySet,this._watching=!1,this._watchCallback=null,this._watchContext=null},c.SoundManager.prototype={boot:function(){if(this.game.device.iOS&&this.game.device.webAudio===!1&&(this.channels=1),window.PhaserGlobal){if(window.PhaserGlobal.disableAudio===!0)return this.noAudio=!0,void(this.touchLocked=!1);if(window.PhaserGlobal.disableWebAudio===!0)return this.usingAudioTag=!0,void(this.touchLocked=!1)}if(window.PhaserGlobal&&window.PhaserGlobal.audioContext)this.context=window.PhaserGlobal.audioContext;else if(window.AudioContext)try{this.context=new window.AudioContext}catch(a){this.context=null,this.usingWebAudio=!1,this.touchLocked=!1}else if(window.webkitAudioContext)try{this.context=new window.webkitAudioContext}catch(a){this.context=null,this.usingWebAudio=!1,this.touchLocked=!1}if(null===this.context){if(void 0===window.Audio)return void(this.noAudio=!0);this.usingAudioTag=!0}else this.usingWebAudio=!0,this.masterGain=void 0===this.context.createGain?this.context.createGainNode():this.context.createGain(),this.masterGain.gain.value=1,this.masterGain.connect(this.context.destination);this.noAudio||(!this.game.device.cocoonJS&&this.game.device.iOS||window.PhaserGlobal&&window.PhaserGlobal.fakeiOSTouchLock)&&this.setTouchLock()},setTouchLock:function(){this.game.input.touch.addTouchLockCallback(this.unlock,this),this.touchLocked=!0},unlock:function(){if(this.noAudio||!this.touchLocked||null!==this._unlockSource)return!0;if(this.usingAudioTag)this.touchLocked=!1,this._unlockSource=null;else if(this.usingWebAudio){var a=this.context.createBuffer(1,1,22050);this._unlockSource=this.context.createBufferSource(),this._unlockSource.buffer=a,this._unlockSource.connect(this.context.destination),void 0===this._unlockSource.start?this._unlockSource.noteOn(0):this._unlockSource.start(0)}return!0},stopAll:function(){if(!this.noAudio)for(var a=0;aa?a=0:a>1&&(a=1),this._volume!==a){if(this._volume=a,this.usingWebAudio)this.masterGain.gain.value=a;else for(var b=0;b-1},reset:function(){this.list.length=0},remove:function(a){var b=this.list.indexOf(a);return b>-1?(this.list.splice(b,1),a):void 0},setAll:function(a,b){for(var c=this.list.length;c--;)this.list[c]&&(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)},removeAll:function(a){void 0===a&&(a=!1);for(var b=this.list.length;b--;)if(this.list[b]){var c=this.remove(this.list[b]);a&&c.destroy()}this.position=0,this.list=[]}},Object.defineProperty(c.ArraySet.prototype,"total",{get:function(){return this.list.length}}),Object.defineProperty(c.ArraySet.prototype,"first",{get:function(){return this.position=0,this.list.length>0?this.list[0]:null}}),Object.defineProperty(c.ArraySet.prototype,"next",{get:function(){return this.position0;b--){var c=Math.floor(Math.random()*(b+1)),d=a[b];a[b]=a[c],a[c]=d}return a},transposeMatrix:function(a){for(var b=a.length,c=a[0].length,d=new Array(c),e=0;c>e;e++){d[e]=new Array(b);for(var f=b-1;f>-1;f--)d[e][f]=a[f][e]}return d},rotateMatrix:function(a,b){if("string"!=typeof b&&(b=(b%360+360)%360),90===b||-270===b||"rotateLeft"===b)a=c.ArrayUtils.transposeMatrix(a),a=a.reverse();else if(-90===b||270===b||"rotateRight"===b)a=a.reverse(),a=c.ArrayUtils.transposeMatrix(a);else if(180===Math.abs(b)||"rotate180"===b){for(var d=0;d=e-a?e:d},rotate:function(a){var b=a.shift();return a.push(b),b},numberArray:function(a,b){for(var c=[],d=a;b>=d;d++)c.push(d);return c},numberArrayStep:function(a,b,d){a=+a||0;var e=typeof b;"number"!==e&&"string"!==e||!d||d[b]!==a||(b=d=null),d=null==d?1:+d||0,null===b?(b=a,a=0):b=+b||0;for(var f=-1,g=Math.max(c.Math.roundAwayFromZero((b-a)/(d||1)),0),h=new Array(g);++f>>0:(a<<24|b<<16|d<<8|e)>>>0},unpackPixel:function(a,b,d,e){return(void 0===b||null===b)&&(b=c.Color.createColor()),(void 0===d||null===d)&&(d=!1),(void 0===e||null===e)&&(e=!1),c.Device.LITTLE_ENDIAN?(b.a=(4278190080&a)>>>24,b.b=(16711680&a)>>>16,b.g=(65280&a)>>>8,b.r=255&a):(b.r=(4278190080&a)>>>24,b.g=(16711680&a)>>>16,b.b=(65280&a)>>>8,b.a=255&a),b.color=a,b.rgba="rgba("+b.r+","+b.g+","+b.b+","+b.a/255+")",d&&c.Color.RGBtoHSL(b.r,b.g,b.b,b),e&&c.Color.RGBtoHSV(b.r,b.g,b.b,b),b},fromRGBA:function(a,b){return b||(b=c.Color.createColor()),b.r=(4278190080&a)>>>24,b.g=(16711680&a)>>>16,b.b=(65280&a)>>>8,b.a=255&a,b.rgba="rgba("+b.r+","+b.g+","+b.b+","+b.a+")",b},toRGBA:function(a,b,c,d){return a<<24|b<<16|c<<8|d},RGBtoHSL:function(a,b,d,e){e||(e=c.Color.createColor(a,b,d,1)),a/=255,b/=255,d/=255;var f=Math.min(a,b,d),g=Math.max(a,b,d);if(e.h=0,e.s=0,e.l=(g+f)/2,g!==f){var h=g-f;e.s=e.l>.5?h/(2-g-f):h/(g+f),g===a?e.h=(b-d)/h+(d>b?6:0):g===b?e.h=(d-a)/h+2:g===d&&(e.h=(a-b)/h+4),e.h/=6}return e},HSLtoRGB:function(a,b,d,e){if(e?(e.r=d,e.g=d,e.b=d):e=c.Color.createColor(d,d,d),0!==b){var f=.5>d?d*(1+b):d+b-d*b,g=2*d-f;e.r=c.Color.hueToColor(g,f,a+1/3),e.g=c.Color.hueToColor(g,f,a),e.b=c.Color.hueToColor(g,f,a-1/3)}return e.r=Math.floor(255*e.r|0),e.g=Math.floor(255*e.g|0),e.b=Math.floor(255*e.b|0),c.Color.updateColor(e),e},RGBtoHSV:function(a,b,d,e){e||(e=c.Color.createColor(a,b,d,255)),a/=255,b/=255,d/=255;var f=Math.min(a,b,d),g=Math.max(a,b,d),h=g-f;return e.h=0,e.s=0===g?0:h/g,e.v=g,g!==f&&(g===a?e.h=(b-d)/h+(d>b?6:0):g===b?e.h=(d-a)/h+2:g===d&&(e.h=(a-b)/h+4),e.h/=6),e},HSVtoRGB:function(a,b,d,e){void 0===e&&(e=c.Color.createColor(0,0,0,1,a,b,0,d));var f,g,h,i=Math.floor(6*a),j=6*a-i,k=d*(1-b),l=d*(1-j*b),m=d*(1-(1-j)*b);switch(i%6){case 0:f=d,g=m,h=k;break;case 1:f=l,g=d,h=k;break;case 2:f=k,g=d,h=m;break;case 3:f=k,g=l,h=d;break;case 4:f=m,g=k,h=d;break;case 5:f=d,g=k,h=l}return e.r=Math.floor(255*f),e.g=Math.floor(255*g),e.b=Math.floor(255*h),c.Color.updateColor(e),e},hueToColor:function(a,b,c){return 0>c&&(c+=1),c>1&&(c-=1),1/6>c?a+6*(b-a)*c:.5>c?b:2/3>c?a+(b-a)*(2/3-c)*6:a},createColor:function(a,b,d,e,f,g,h,i){var j={r:a||0,g:b||0,b:d||0,a:e||1,h:f||0,s:g||0,l:h||0,v:i||0,color:0,color32:0,rgba:""};return c.Color.updateColor(j)},updateColor:function(a){return a.rgba="rgba("+a.r.toString()+","+a.g.toString()+","+a.b.toString()+","+a.a.toString()+")",a.color=c.Color.getColor(a.r,a.g,a.b),a.color32=c.Color.getColor32(a.a,a.r,a.g,a.b),a},getColor32:function(a,b,c,d){return a<<24|b<<16|c<<8|d},getColor:function(a,b,c){return a<<16|b<<8|c},RGBtoString:function(a,b,d,e,f){return void 0===e&&(e=255),void 0===f&&(f="#"),"#"===f?"#"+((1<<24)+(a<<16)+(b<<8)+d).toString(16).slice(1):"0x"+c.Color.componentToHex(e)+c.Color.componentToHex(a)+c.Color.componentToHex(b)+c.Color.componentToHex(d)},hexToRGB:function(a){var b=c.Color.hexToColor(a);return b?c.Color.getColor32(b.a,b.r,b.g,b.b):void 0},hexToColor:function(a,b){a=a.replace(/^(?:#|0x)?([a-f\d])([a-f\d])([a-f\d])$/i,function(a,b,c,d){return b+b+c+c+d+d});var d=/^(?:#|0x)?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i.exec(a);if(d){var e=parseInt(d[1],16),f=parseInt(d[2],16),g=parseInt(d[3],16);b?(b.r=e,b.g=f,b.b=g):b=c.Color.createColor(e,f,g)}return b},webToColor:function(a,b){b||(b=c.Color.createColor());var d=/^rgba?\(\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d+)\s*(?:,\s*(\d+(?:\.\d+)?))?\s*\)$/.exec(a);return d&&(b.r=parseInt(d[1],10),b.g=parseInt(d[2],10),b.b=parseInt(d[3],10),b.a=void 0!==d[4]?parseFloat(d[4]):1,c.Color.updateColor(b)),b},valueToColor:function(a,b){if(b||(b=c.Color.createColor()),"string"==typeof a)return 0===a.indexOf("rgb")?c.Color.webToColor(a,b):(b.a=1,c.Color.hexToColor(a,b));if("number"==typeof a){var d=c.Color.getRGB(a);return b.r=d.r,b.g=d.g,b.b=d.b,b.a=d.a/255,b +}return b},componentToHex:function(a){var b=a.toString(16);return 1==b.length?"0"+b:b},HSVColorWheel:function(a,b){void 0===a&&(a=1),void 0===b&&(b=1);for(var d=[],e=0;359>=e;e++)d.push(c.Color.HSVtoRGB(e/359,a,b));return d},HSLColorWheel:function(a,b){void 0===a&&(a=.5),void 0===b&&(b=.5);for(var d=[],e=0;359>=e;e++)d.push(c.Color.HSLtoRGB(e/359,a,b));return d},interpolateColor:function(a,b,d,e,f){void 0===f&&(f=255);var g=c.Color.getRGB(a),h=c.Color.getRGB(b),i=(h.red-g.red)*e/d+g.red,j=(h.green-g.green)*e/d+g.green,k=(h.blue-g.blue)*e/d+g.blue;return c.Color.getColor32(f,i,j,k)},interpolateColorWithRGB:function(a,b,d,e,f,g){var h=c.Color.getRGB(a),i=(b-h.red)*g/f+h.red,j=(d-h.green)*g/f+h.green,k=(e-h.blue)*g/f+h.blue;return c.Color.getColor(i,j,k)},interpolateRGB:function(a,b,d,e,f,g,h,i){var j=(e-a)*i/h+a,k=(f-b)*i/h+b,l=(g-d)*i/h+d;return c.Color.getColor(j,k,l)},getRandomColor:function(a,b,d){if(void 0===a&&(a=0),void 0===b&&(b=255),void 0===d&&(d=255),b>255||a>b)return c.Color.getColor(255,255,255);var e=a+Math.round(Math.random()*(b-a)),f=a+Math.round(Math.random()*(b-a)),g=a+Math.round(Math.random()*(b-a));return c.Color.getColor32(d,e,f,g)},getRGB:function(a){return a>16777215?{alpha:a>>>24,red:a>>16&255,green:a>>8&255,blue:255&a,a:a>>>24,r:a>>16&255,g:a>>8&255,b:255&a}:{alpha:255,red:a>>16&255,green:a>>8&255,blue:255&a,a:255,r:a>>16&255,g:a>>8&255,b:255&a}},getWebRGB:function(a){if("object"==typeof a)return"rgba("+a.r.toString()+","+a.g.toString()+","+a.b.toString()+","+(a.a/255).toString()+")";var b=c.Color.getRGB(a);return"rgba("+b.r.toString()+","+b.g.toString()+","+b.b.toString()+","+(b.a/255).toString()+")"},getAlpha:function(a){return a>>>24},getAlphaFloat:function(a){return(a>>>24)/255},getRed:function(a){return a>>16&255},getGreen:function(a){return a>>8&255},getBlue:function(a){return 255&a},blendNormal:function(a){return a},blendLighten:function(a,b){return b>a?b:a},blendDarken:function(a,b){return b>a?a:b},blendMultiply:function(a,b){return a*b/255},blendAverage:function(a,b){return(a+b)/2},blendAdd:function(a,b){return Math.min(255,a+b)},blendSubtract:function(a,b){return Math.max(0,a+b-255)},blendDifference:function(a,b){return Math.abs(a-b)},blendNegation:function(a,b){return 255-Math.abs(255-a-b)},blendScreen:function(a,b){return 255-((255-a)*(255-b)>>8)},blendExclusion:function(a,b){return a+b-2*a*b/255},blendOverlay:function(a,b){return 128>b?2*a*b/255:255-2*(255-a)*(255-b)/255},blendSoftLight:function(a,b){return 128>b?2*((a>>1)+64)*(b/255):255-2*(255-((a>>1)+64))*(255-b)/255},blendHardLight:function(a,b){return c.Color.blendOverlay(b,a)},blendColorDodge:function(a,b){return 255===b?b:Math.min(255,(a<<8)/(255-b))},blendColorBurn:function(a,b){return 0===b?b:Math.max(0,255-(255-a<<8)/b)},blendLinearDodge:function(a,b){return c.Color.blendAdd(a,b)},blendLinearBurn:function(a,b){return c.Color.blendSubtract(a,b)},blendLinearLight:function(a,b){return 128>b?c.Color.blendLinearBurn(a,2*b):c.Color.blendLinearDodge(a,2*(b-128))},blendVividLight:function(a,b){return 128>b?c.Color.blendColorBurn(a,2*b):c.Color.blendColorDodge(a,2*(b-128))},blendPinLight:function(a,b){return 128>b?c.Color.blendDarken(a,2*b):c.Color.blendLighten(a,2*(b-128))},blendHardMix:function(a,b){return c.Color.blendVividLight(a,b)<128?0:255},blendReflect:function(a,b){return 255===b?b:Math.min(255,a*a/(255-b))},blendGlow:function(a,b){return c.Color.blendReflect(b,a)},blendPhoenix:function(a,b){return Math.min(a,b)-Math.max(a,b)+255}},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.Physics=function(a,b){b=b||{},this.game=a,this.config=b,this.arcade=null,this.p2=null,this.ninja=null,this.box2d=null,this.chipmunk=null,this.matter=null,this.parseConfig()},c.Physics.ARCADE=0,c.Physics.P2JS=1,c.Physics.NINJA=2,c.Physics.BOX2D=3,c.Physics.CHIPMUNK=4,c.Physics.MATTERJS=5,c.Physics.prototype={parseConfig:function(){this.config.hasOwnProperty("arcade")&&this.config.arcade!==!0||!c.Physics.hasOwnProperty("Arcade")||(this.arcade=new c.Physics.Arcade(this.game)),this.config.hasOwnProperty("ninja")&&this.config.ninja===!0&&c.Physics.hasOwnProperty("Ninja")&&(this.ninja=new c.Physics.Ninja(this.game)),this.config.hasOwnProperty("p2")&&this.config.p2===!0&&c.Physics.hasOwnProperty("P2")&&(this.p2=new c.Physics.P2(this.game,this.config)),this.config.hasOwnProperty("box2d")&&this.config.box2d===!0&&c.Physics.hasOwnProperty("BOX2D")&&(this.box2d=new c.Physics.BOX2D(this.game,this.config)),this.config.hasOwnProperty("matter")&&this.config.matter===!0&&c.Physics.hasOwnProperty("Matter")&&(this.matter=new c.Physics.Matter(this.game,this.config))},startSystem:function(a){a===c.Physics.ARCADE?this.arcade=new c.Physics.Arcade(this.game):a===c.Physics.P2JS?null===this.p2?this.p2=new c.Physics.P2(this.game,this.config):this.p2.reset():a===c.Physics.NINJA?this.ninja=new c.Physics.Ninja(this.game):a===c.Physics.BOX2D?null===this.box2d?this.box2d=new c.Physics.Box2D(this.game,this.config):this.box2d.reset():a===c.Physics.MATTERJS&&(null===this.matter?this.matter=new c.Physics.Matter(this.game,this.config):this.matter.reset())},enable:function(a,b,d){void 0===b&&(b=c.Physics.ARCADE),void 0===d&&(d=!1),b===c.Physics.ARCADE?this.arcade.enable(a):b===c.Physics.P2JS&&this.p2?this.p2.enable(a,d):b===c.Physics.NINJA&&this.ninja?this.ninja.enableAABB(a):b===c.Physics.BOX2D&&this.box2d?this.box2d.enable(a):b===c.Physics.MATTERJS&&this.matter&&this.matter.enable(a)},preUpdate:function(){this.p2&&this.p2.preUpdate(),this.box2d&&this.box2d.preUpdate(),this.matter&&this.matter.preUpdate()},update:function(){this.p2&&this.p2.update(),this.box2d&&this.box2d.update(),this.matter&&this.matter.update()},setBoundsToWorld:function(){this.arcade&&this.arcade.setBoundsToWorld(),this.ninja&&this.ninja.setBoundsToWorld(),this.p2&&this.p2.setBoundsToWorld(),this.box2d&&this.box2d.setBoundsToWorld(),this.matter&&this.matter.setBoundsToWorld()},clear:function(){this.p2&&this.p2.clear(),this.box2d&&this.box2d.clear(),this.matter&&this.matter.clear()},reset:function(){this.p2&&this.p2.reset(),this.box2d&&this.box2d.reset(),this.matter&&this.matter.reset()},destroy:function(){this.p2&&this.p2.destroy(),this.box2d&&this.box2d.destroy(),this.matter&&this.matter.destroy(),this.arcade=null,this.ninja=null,this.p2=null,this.box2d=null,this.matter=null}},c.Physics.prototype.constructor=c.Physics,c.Physics.Arcade=function(a){this.game=a,this.gravity=new c.Point,this.bounds=new c.Rectangle(0,0,a.world.width,a.world.height),this.checkCollision={up:!0,down:!0,left:!0,right:!0},this.maxObjects=10,this.maxLevels=4,this.OVERLAP_BIAS=4,this.forceX=!1,this.sortDirection=c.Physics.Arcade.LEFT_RIGHT,this.skipQuadTree=!0,this.isPaused=!1,this.quadTree=new c.QuadTree(this.game.world.bounds.x,this.game.world.bounds.y,this.game.world.bounds.width,this.game.world.bounds.height,this.maxObjects,this.maxLevels),this._total=0,this.setBoundsToWorld()},c.Physics.Arcade.prototype.constructor=c.Physics.Arcade,c.Physics.Arcade.SORT_NONE=0,c.Physics.Arcade.LEFT_RIGHT=1,c.Physics.Arcade.RIGHT_LEFT=2,c.Physics.Arcade.TOP_BOTTOM=3,c.Physics.Arcade.BOTTOM_TOP=4,c.Physics.Arcade.prototype={setBounds:function(a,b,c,d){this.bounds.setTo(a,b,c,d)},setBoundsToWorld:function(){this.bounds.copyFrom(this.game.world.bounds)},enable:function(a,b){void 0===b&&(b=!0);var d=1;if(Array.isArray(a))for(d=a.length;d--;)a[d]instanceof c.Group?this.enable(a[d].children,b):(this.enableBody(a[d]),b&&a[d].hasOwnProperty("children")&&a[d].children.length>0&&this.enable(a[d],!0));else a instanceof c.Group?this.enable(a.children,b):(this.enableBody(a),b&&a.hasOwnProperty("children")&&a.children.length>0&&this.enable(a.children,!0))},enableBody:function(a){a.hasOwnProperty("body")&&null===a.body&&(a.body=new c.Physics.Arcade.Body(a),a.parent&&a.parent instanceof c.Group&&a.parent.addToHash(a))},updateMotion:function(a){var b=this.computeVelocity(0,a,a.angularVelocity,a.angularAcceleration,a.angularDrag,a.maxAngular)-a.angularVelocity;a.angularVelocity+=b,a.rotation+=a.angularVelocity*this.game.time.physicsElapsed,a.velocity.x=this.computeVelocity(1,a,a.velocity.x,a.acceleration.x,a.drag.x,a.maxVelocity.x),a.velocity.y=this.computeVelocity(2,a,a.velocity.y,a.acceleration.y,a.drag.y,a.maxVelocity.y)},computeVelocity:function(a,b,c,d,e,f){return void 0===f&&(f=1e4),1===a&&b.allowGravity?c+=(this.gravity.x+b.gravity.x)*this.game.time.physicsElapsed:2===a&&b.allowGravity&&(c+=(this.gravity.y+b.gravity.y)*this.game.time.physicsElapsed),d?c+=d*this.game.time.physicsElapsed:e&&(e*=this.game.time.physicsElapsed,c-e>0?c-=e:0>c+e?c+=e:c=0),c>f?c=f:-f>c&&(c=-f),c},overlap:function(a,b,c,d,e){if(c=c||null,d=d||null,e=e||c,this._total=0,!Array.isArray(a)&&Array.isArray(b))for(var f=0;f0},collide:function(a,b,c,d,e){if(c=c||null,d=d||null,e=e||c,this._total=0,!Array.isArray(a)&&Array.isArray(b))for(var f=0;f0},sortLeftRight:function(a,b){return a.body&&b.body?a.body.x-b.body.x:0},sortRightLeft:function(a,b){return a.body&&b.body?b.body.x-a.body.x:0},sortTopBottom:function(a,b){return a.body&&b.body?a.body.y-b.body.y:0},sortBottomTop:function(a,b){return a.body&&b.body?b.body.y-a.body.y:0},sort:function(a,b){null!==a.physicsSortDirection?b=a.physicsSortDirection:void 0===b&&(b=this.sortDirection),b===c.Physics.Arcade.LEFT_RIGHT?a.hash.sort(this.sortLeftRight):b===c.Physics.Arcade.RIGHT_LEFT?a.hash.sort(this.sortRightLeft):b===c.Physics.Arcade.TOP_BOTTOM?a.hash.sort(this.sortTopBottom):b===c.Physics.Arcade.BOTTOM_TOP&&a.hash.sort(this.sortBottomTop)},collideHandler:function(a,b,d,e,f,g){return void 0===b&&a.physicsType===c.GROUP?(this.sort(a),void this.collideGroupVsSelf(a,d,e,f,g)):void(a&&b&&a.exists&&b.exists&&(this.sortDirection!==c.Physics.Arcade.SORT_NONE&&(a.physicsType===c.GROUP&&this.sort(a),b.physicsType===c.GROUP&&this.sort(b)),a.physicsType===c.SPRITE?b.physicsType===c.SPRITE?this.collideSpriteVsSprite(a,b,d,e,f,g):b.physicsType===c.GROUP?this.collideSpriteVsGroup(a,b,d,e,f,g):b.physicsType===c.TILEMAPLAYER&&this.collideSpriteVsTilemapLayer(a,b,d,e,f,g):a.physicsType===c.GROUP?b.physicsType===c.SPRITE?this.collideSpriteVsGroup(b,a,d,e,f,g):b.physicsType===c.GROUP?this.collideGroupVsGroup(a,b,d,e,f,g):b.physicsType===c.TILEMAPLAYER&&this.collideGroupVsTilemapLayer(a,b,d,e,f,g):a.physicsType===c.TILEMAPLAYER&&(b.physicsType===c.SPRITE?this.collideSpriteVsTilemapLayer(b,a,d,e,f,g):b.physicsType===c.GROUP&&this.collideGroupVsTilemapLayer(b,a,d,e,f,g))))},collideSpriteVsSprite:function(a,b,c,d,e,f){return a.body&&b.body?(this.separate(a.body,b.body,d,e,f)&&(c&&c.call(e,a,b),this._total++),!0):!1},collideSpriteVsGroup:function(a,b,d,e,f,g){if(0!==b.length&&a.body){var h;if(this.skipQuadTree||a.body.skipQuadTree){for(var i=0;ih.right)break;if(h.x>a.body.right)continue}else if(this.sortDirection===c.Physics.Arcade.TOP_BOTTOM){if(a.body.bottomh.bottom)break;if(h.y>a.body.bottom)continue}this.collideSpriteVsSprite(a,b.hash[i],d,e,f,g)}}else{this.quadTree.clear(),this.quadTree.reset(this.game.world.bounds.x,this.game.world.bounds.y,this.game.world.bounds.width,this.game.world.bounds.height,this.maxObjects,this.maxLevels),this.quadTree.populate(b);for(var j=this.quadTree.retrieve(a),i=0;ij.body.right)continue;if(j.body.x>h.body.right)break}else if(this.sortDirection===c.Physics.Arcade.TOP_BOTTOM){if(h.body.bottomj.body.bottom)continue;if(j.body.y>h.body.bottom)break}this.collideSpriteVsSprite(h,j,b,d,e,f)}},collideGroupVsGroup:function(a,b,d,e,f,g){if(0!==a.length&&0!==b.length)for(var h=0;h=b.right?!1:a.position.y>=b.bottom?!1:!0},separateX:function(a,b,c){if(a.immovable&&b.immovable)return!1;var d=0;if(this.intersects(a,b)){var e=a.deltaAbsX()+b.deltaAbsX()+this.OVERLAP_BIAS;if(0===a.deltaX()&&0===b.deltaX()?(a.embedded=!0,b.embedded=!0):a.deltaX()>b.deltaX()?(d=a.right-b.x,d>e||a.checkCollision.right===!1||b.checkCollision.left===!1?d=0:(a.touching.none=!1,a.touching.right=!0,b.touching.none=!1,b.touching.left=!0)):a.deltaX()e||a.checkCollision.left===!1||b.checkCollision.right===!1?d=0:(a.touching.none=!1,a.touching.left=!0,b.touching.none=!1,b.touching.right=!0)),a.overlapX=d,b.overlapX=d,0!==d){if(c||a.customSeparateX||b.customSeparateX)return!0;var f=a.velocity.x,g=b.velocity.x;if(a.immovable||b.immovable)a.immovable?b.immovable||(b.x+=d,b.velocity.x=f-g*b.bounce.x,a.moves&&(b.y+=(a.y-a.prev.y)*a.friction.y)):(a.x=a.x-d,a.velocity.x=g-f*a.bounce.x,b.moves&&(a.y+=(b.y-b.prev.y)*b.friction.y));else{d*=.5,a.x=a.x-d,b.x+=d;var h=Math.sqrt(g*g*b.mass/a.mass)*(g>0?1:-1),i=Math.sqrt(f*f*a.mass/b.mass)*(f>0?1:-1),j=.5*(h+i);h-=j,i-=j,a.velocity.x=j+h*a.bounce.x,b.velocity.x=j+i*b.bounce.x}return!0}}return!1},separateY:function(a,b,c){if(a.immovable&&b.immovable)return!1;var d=0;if(this.intersects(a,b)){var e=a.deltaAbsY()+b.deltaAbsY()+this.OVERLAP_BIAS;if(0===a.deltaY()&&0===b.deltaY()?(a.embedded=!0,b.embedded=!0):a.deltaY()>b.deltaY()?(d=a.bottom-b.y,d>e||a.checkCollision.down===!1||b.checkCollision.up===!1?d=0:(a.touching.none=!1,a.touching.down=!0,b.touching.none=!1,b.touching.up=!0)):a.deltaY()e||a.checkCollision.up===!1||b.checkCollision.down===!1?d=0:(a.touching.none=!1,a.touching.up=!0,b.touching.none=!1,b.touching.down=!0)),a.overlapY=d,b.overlapY=d,0!==d){if(c||a.customSeparateY||b.customSeparateY)return!0;var f=a.velocity.y,g=b.velocity.y;if(a.immovable||b.immovable)a.immovable?b.immovable||(b.y+=d,b.velocity.y=f-g*b.bounce.y,a.moves&&(b.x+=(a.x-a.prev.x)*a.friction.x)):(a.y=a.y-d,a.velocity.y=g-f*a.bounce.y,b.moves&&(a.x+=(b.x-b.prev.x)*b.friction.x));else{d*=.5,a.y=a.y-d,b.y+=d;var h=Math.sqrt(g*g*b.mass/a.mass)*(g>0?1:-1),i=Math.sqrt(f*f*a.mass/b.mass)*(f>0?1:-1),j=.5*(h+i);h-=j,i-=j,a.velocity.y=j+h*a.bounce.y,b.velocity.y=j+i*b.bounce.y}return!0}}return!1},getObjectsUnderPointer:function(a,b,c,d){return 0!==b.length&&a.exists?this.getObjectsAtLocation(a.x,a.y,b,c,d,a):void 0},getObjectsAtLocation:function(a,b,d,e,f,g){this.quadTree.clear(),this.quadTree.reset(this.game.world.bounds.x,this.game.world.bounds.y,this.game.world.bounds.width,this.game.world.bounds.height,this.maxObjects,this.maxLevels),this.quadTree.populate(d);for(var h=new c.Rectangle(a,b,1,1),i=[],j=this.quadTree.retrieve(h),k=0;k0&&(c=this.distanceBetween(a,b)/(d/1e3)),a.body.velocity.x=Math.cos(e)*c,a.body.velocity.y=Math.sin(e)*c,e},moveToPointer:function(a,b,c,d){void 0===b&&(b=60),c=c||this.game.input.activePointer,void 0===d&&(d=0);var e=this.angleToPointer(a,c);return d>0&&(b=this.distanceToPointer(a,c)/(d/1e3)),a.body.velocity.x=Math.cos(e)*b,a.body.velocity.y=Math.sin(e)*b,e},moveToXY:function(a,b,c,d,e){void 0===d&&(d=60),void 0===e&&(e=0);var f=Math.atan2(c-a.y,b-a.x);return e>0&&(d=this.distanceToXY(a,b,c)/(e/1e3)),a.body.velocity.x=Math.cos(f)*d,a.body.velocity.y=Math.sin(f)*d,f},velocityFromAngle:function(a,b,d){return void 0===b&&(b=60),d=d||new c.Point,d.setTo(Math.cos(this.game.math.degToRad(a))*b,Math.sin(this.game.math.degToRad(a))*b)},velocityFromRotation:function(a,b,d){return void 0===b&&(b=60),d=d||new c.Point,d.setTo(Math.cos(a)*b,Math.sin(a)*b)},accelerationFromRotation:function(a,b,d){return void 0===b&&(b=60),d=d||new c.Point,d.setTo(Math.cos(a)*b,Math.sin(a)*b)},accelerateToObject:function(a,b,c,d,e){void 0===c&&(c=60),void 0===d&&(d=1e3),void 0===e&&(e=1e3);var f=this.angleBetween(a,b);return a.body.acceleration.setTo(Math.cos(f)*c,Math.sin(f)*c),a.body.maxVelocity.setTo(d,e),f},accelerateToPointer:function(a,b,c,d,e){void 0===c&&(c=60),void 0===b&&(b=this.game.input.activePointer),void 0===d&&(d=1e3),void 0===e&&(e=1e3);var f=this.angleToPointer(a,b);return a.body.acceleration.setTo(Math.cos(f)*c,Math.sin(f)*c),a.body.maxVelocity.setTo(d,e),f},accelerateToXY:function(a,b,c,d,e,f){void 0===d&&(d=60),void 0===e&&(e=1e3),void 0===f&&(f=1e3);var g=this.angleToXY(a,b,c);return a.body.acceleration.setTo(Math.cos(g)*d,Math.sin(g)*d),a.body.maxVelocity.setTo(e,f),g},distanceBetween:function(a,b){var c=a.x-b.x,d=a.y-b.y;return Math.sqrt(c*c+d*d)},distanceToXY:function(a,b,c){var d=a.x-b,e=a.y-c;return Math.sqrt(d*d+e*e)},distanceToPointer:function(a,b){b=b||this.game.input.activePointer;var c=a.x-b.worldX,d=a.y-b.worldY;return Math.sqrt(c*c+d*d)},angleBetween:function(a,b){var c=b.x-a.x,d=b.y-a.y;return Math.atan2(d,c)},angleToXY:function(a,b,c){var d=b-a.x,e=c-a.y;return Math.atan2(e,d)},angleToPointer:function(a,b){b=b||this.game.input.activePointer;var c=b.worldX-a.x,d=b.worldY-a.y;return Math.atan2(d,c)}},c.Physics.Arcade.Body=function(a){this.sprite=a,this.game=a.game,this.type=c.Physics.ARCADE,this.enable=!0,this.offset=new c.Point,this.position=new c.Point(a.x,a.y),this.prev=new c.Point(this.position.x,this.position.y),this.allowRotation=!0,this.rotation=a.rotation,this.preRotation=a.rotation,this.width=a.width,this.height=a.height,this.sourceWidth=a.width,this.sourceHeight=a.height,a.texture&&(this.sourceWidth=a.texture.frame.width,this.sourceHeight=a.texture.frame.height),this.halfWidth=Math.abs(a.width/2),this.halfHeight=Math.abs(a.height/2),this.center=new c.Point(a.x+this.halfWidth,a.y+this.halfHeight),this.velocity=new c.Point,this.newVelocity=new c.Point(0,0),this.deltaMax=new c.Point(0,0),this.acceleration=new c.Point,this.drag=new c.Point,this.allowGravity=!0,this.gravity=new c.Point(0,0),this.bounce=new c.Point,this.maxVelocity=new c.Point(1e4,1e4),this.friction=new c.Point(1,0),this.angularVelocity=0,this.angularAcceleration=0,this.angularDrag=0,this.maxAngular=1e3,this.mass=1,this.angle=0,this.speed=0,this.facing=c.NONE,this.immovable=!1,this.moves=!0,this.customSeparateX=!1,this.customSeparateY=!1,this.overlapX=0,this.overlapY=0,this.embedded=!1,this.collideWorldBounds=!1,this.checkCollision={none:!1,any:!0,up:!0,down:!0,left:!0,right:!0},this.touching={none:!0,up:!1,down:!1,left:!1,right:!1},this.wasTouching={none:!0,up:!1,down:!1,left:!1,right:!1},this.blocked={up:!1,down:!1,left:!1,right:!1},this.tilePadding=new c.Point,this.dirty=!1,this.skipQuadTree=!1,this.syncBounds=!1,this._reset=!0,this._sx=a.scale.x,this._sy=a.scale.y,this._dx=0,this._dy=0},c.Physics.Arcade.Body.prototype={updateBounds:function(){if(this.syncBounds){var a=this.sprite.getBounds();a.ceilAll(),(a.width!==this.width||a.height!==this.height)&&(this.width=a.width,this.height=a.height,this._reset=!0)}else{var b=Math.abs(this.sprite.scale.x),c=Math.abs(this.sprite.scale.y);(b!==this._sx||c!==this._sy)&&(this.width=this.sourceWidth*b,this.height=this.sourceHeight*c,this._sx=b,this._sy=c,this._reset=!0)}this._reset&&(this.halfWidth=Math.floor(this.width/2),this.halfHeight=Math.floor(this.height/2),this.center.setTo(this.position.x+this.halfWidth,this.position.y+this.halfHeight))},preUpdate:function(){this.enable&&!this.game.physics.arcade.isPaused&&(this.dirty=!0,this.wasTouching.none=this.touching.none,this.wasTouching.up=this.touching.up,this.wasTouching.down=this.touching.down,this.wasTouching.left=this.touching.left,this.wasTouching.right=this.touching.right,this.touching.none=!0,this.touching.up=!1,this.touching.down=!1,this.touching.left=!1,this.touching.right=!1,this.blocked.up=!1,this.blocked.down=!1,this.blocked.left=!1,this.blocked.right=!1,this.embedded=!1,this.updateBounds(),this.position.x=this.sprite.world.x-this.sprite.anchor.x*this.width+this.offset.x,this.position.y=this.sprite.world.y-this.sprite.anchor.y*this.height+this.offset.y,this.rotation=this.sprite.angle,this.preRotation=this.rotation,(this._reset||this.sprite.fresh)&&(this.prev.x=this.position.x,this.prev.y=this.position.y),this.moves&&(this.game.physics.arcade.updateMotion(this),this.newVelocity.set(this.velocity.x*this.game.time.physicsElapsed,this.velocity.y*this.game.time.physicsElapsed),this.position.x+=this.newVelocity.x,this.position.y+=this.newVelocity.y,(this.position.x!==this.prev.x||this.position.y!==this.prev.y)&&(this.speed=Math.sqrt(this.velocity.x*this.velocity.x+this.velocity.y*this.velocity.y),this.angle=Math.atan2(this.velocity.y,this.velocity.x)),this.collideWorldBounds&&this.checkWorldBounds()),this._dx=this.deltaX(),this._dy=this.deltaY(),this._reset=!1)},postUpdate:function(){this.enable&&this.dirty&&(this.dirty=!1,this.deltaX()<0?this.facing=c.LEFT:this.deltaX()>0&&(this.facing=c.RIGHT),this.deltaY()<0?this.facing=c.UP:this.deltaY()>0&&(this.facing=c.DOWN),this.moves&&(this._dx=this.deltaX(),this._dy=this.deltaY(),0!==this.deltaMax.x&&0!==this._dx&&(this._dx<0&&this._dx<-this.deltaMax.x?this._dx=-this.deltaMax.x:this._dx>0&&this._dx>this.deltaMax.x&&(this._dx=this.deltaMax.x)),0!==this.deltaMax.y&&0!==this._dy&&(this._dy<0&&this._dy<-this.deltaMax.y?this._dy=-this.deltaMax.y:this._dy>0&&this._dy>this.deltaMax.y&&(this._dy=this.deltaMax.y)),this.sprite.position.x+=this._dx,this.sprite.position.y+=this._dy,this._reset=!0),this.center.setTo(this.position.x+this.halfWidth,this.position.y+this.halfHeight),this.allowRotation&&(this.sprite.angle+=this.deltaZ()),this.prev.x=this.position.x,this.prev.y=this.position.y)},destroy:function(){this.sprite.parent&&this.sprite.parent instanceof c.Group&&this.sprite.parent.removeFromHash(this.sprite),this.sprite.body=null,this.sprite=null},checkWorldBounds:function(){var a=this.position,b=this.game.physics.arcade.bounds,c=this.game.physics.arcade.checkCollision;a.xb.right&&c.right&&(a.x=b.right-this.width,this.velocity.x*=-this.bounce.x,this.blocked.right=!0),a.yb.bottom&&c.down&&(a.y=b.bottom-this.height,this.velocity.y*=-this.bounce.y,this.blocked.down=!0)},setSize:function(a,b,c,d){void 0===c&&(c=this.offset.x),void 0===d&&(d=this.offset.y),this.sourceWidth=a,this.sourceHeight=b,this.width=this.sourceWidth*this._sx,this.height=this.sourceHeight*this._sy,this.halfWidth=Math.floor(this.width/2),this.halfHeight=Math.floor(this.height/2),this.offset.setTo(c,d),this.center.setTo(this.position.x+this.halfWidth,this.position.y+this.halfHeight)},reset:function(a,b){this.velocity.set(0),this.acceleration.set(0),this.speed=0,this.angularVelocity=0,this.angularAcceleration=0,this.position.x=a-this.sprite.anchor.x*this.width+this.offset.x,this.position.y=b-this.sprite.anchor.y*this.height+this.offset.y,this.prev.x=this.position.x,this.prev.y=this.position.y,this.rotation=this.sprite.angle,this.preRotation=this.rotation,this._sx=this.sprite.scale.x,this._sy=this.sprite.scale.y,this.center.setTo(this.position.x+this.halfWidth,this.position.y+this.halfHeight)},hitTest:function(a,b){return c.Rectangle.contains(this,a,b)},onFloor:function(){return this.blocked.down},onWall:function(){return this.blocked.left||this.blocked.right},deltaAbsX:function(){return this.deltaX()>0?this.deltaX():-this.deltaX()},deltaAbsY:function(){return this.deltaY()>0?this.deltaY():-this.deltaY()},deltaX:function(){return this.position.x-this.prev.x},deltaY:function(){return this.position.y-this.prev.y},deltaZ:function(){return this.rotation-this.preRotation}},Object.defineProperty(c.Physics.Arcade.Body.prototype,"bottom",{get:function(){return this.position.y+this.height}}),Object.defineProperty(c.Physics.Arcade.Body.prototype,"right",{get:function(){return this.position.x+this.width}}),Object.defineProperty(c.Physics.Arcade.Body.prototype,"x",{get:function(){return this.position.x},set:function(a){this.position.x=a}}),Object.defineProperty(c.Physics.Arcade.Body.prototype,"y",{get:function(){return this.position.y},set:function(a){this.position.y=a}}),c.Physics.Arcade.Body.render=function(a,b,c,d){void 0===d&&(d=!0),c=c||"rgba(0,255,0,0.4)",d?(a.fillStyle=c,a.fillRect(b.position.x-b.game.camera.x,b.position.y-b.game.camera.y,b.width,b.height)):(a.strokeStyle=c,a.strokeRect(b.position.x-b.game.camera.x,b.position.y-b.game.camera.y,b.width,b.height))},c.Physics.Arcade.Body.renderBodyInfo=function(a,b){a.line("x: "+b.x.toFixed(2),"y: "+b.y.toFixed(2),"width: "+b.width,"height: "+b.height),a.line("velocity x: "+b.velocity.x.toFixed(2),"y: "+b.velocity.y.toFixed(2),"deltaX: "+b._dx.toFixed(2),"deltaY: "+b._dy.toFixed(2)),a.line("acceleration x: "+b.acceleration.x.toFixed(2),"y: "+b.acceleration.y.toFixed(2),"speed: "+b.speed.toFixed(2),"angle: "+b.angle.toFixed(2)),a.line("gravity x: "+b.gravity.x,"y: "+b.gravity.y,"bounce x: "+b.bounce.x.toFixed(2),"y: "+b.bounce.y.toFixed(2)),a.line("touching left: "+b.touching.left,"right: "+b.touching.right,"up: "+b.touching.up,"down: "+b.touching.down),a.line("blocked left: "+b.blocked.left,"right: "+b.blocked.right,"up: "+b.blocked.up,"down: "+b.blocked.down)},c.Physics.Arcade.Body.prototype.constructor=c.Physics.Arcade.Body,c.Physics.Arcade.TilemapCollision=function(){},c.Physics.Arcade.TilemapCollision.prototype={TILE_BIAS:16,collideSpriteVsTilemapLayer:function(a,b,c,d,e,f){if(a.body){var g=b.getTiles(a.body.position.x-a.body.tilePadding.x,a.body.position.y-a.body.tilePadding.y,a.body.width+a.body.tilePadding.x,a.body.height+a.body.tilePadding.y,!1,!1);if(0!==g.length)for(var h=0;hb.deltaAbsY()?g=-1:b.deltaAbsX()g){if((c.faceLeft||c.faceRight)&&(e=this.tileCheckX(b,c),0!==e&&!c.intersects(b.position.x,b.position.y,b.right,b.bottom)))return!0;(c.faceTop||c.faceBottom)&&(f=this.tileCheckY(b,c))}else{if((c.faceTop||c.faceBottom)&&(f=this.tileCheckY(b,c),0!==f&&!c.intersects(b.position.x,b.position.y,b.right,b.bottom)))return!0;(c.faceLeft||c.faceRight)&&(e=this.tileCheckX(b,c))}return 0!==e||0!==f},tileCheckX:function(a,b){var c=0;return a.deltaX()<0&&!a.blocked.left&&b.collideRight&&a.checkCollision.left?b.faceRight&&a.x0&&!a.blocked.right&&b.collideLeft&&a.checkCollision.right&&b.faceLeft&&a.right>b.left&&(c=a.right-b.left,c>this.TILE_BIAS&&(c=0)),0!==c&&(a.customSeparateX?a.overlapX=c:this.processTileSeparationX(a,c)),c},tileCheckY:function(a,b){var c=0;return a.deltaY()<0&&!a.blocked.up&&b.collideDown&&a.checkCollision.up?b.faceBottom&&a.y0&&!a.blocked.down&&b.collideUp&&a.checkCollision.down&&b.faceTop&&a.bottom>b.top&&(c=a.bottom-b.top,c>this.TILE_BIAS&&(c=0)),0!==c&&(a.customSeparateY?a.overlapY=c:this.processTileSeparationY(a,c)),c},processTileSeparationX:function(a,b){0>b?a.blocked.left=!0:b>0&&(a.blocked.right=!0),a.position.x-=b,a.velocity.x=0===a.bounce.x?0:-a.velocity.x*a.bounce.x},processTileSeparationY:function(a,b){0>b?a.blocked.up=!0:b>0&&(a.blocked.down=!0),a.position.y-=b,a.velocity.y=0===a.bounce.y?0:-a.velocity.y*a.bounce.y}},c.Utils.mixinPrototype(c.Physics.Arcade.prototype,c.Physics.Arcade.TilemapCollision.prototype),p2.Body.prototype.parent=null,p2.Spring.prototype.parent=null,c.Physics.P2=function(a,b){this.game=a,void 0===b?b={gravity:[0,0],broadphase:new p2.SAPBroadphase}:(b.hasOwnProperty("gravity")||(b.gravity=[0,0]),b.hasOwnProperty("broadphase")||(b.broadphase=new p2.SAPBroadphase)),this.config=b,this.world=new p2.World(this.config),this.frameRate=1/60,this.useElapsedTime=!1,this.paused=!1,this.materials=[],this.gravity=new c.Physics.P2.InversePointProxy(this,this.world.gravity),this.walls={left:null,right:null,top:null,bottom:null},this.onBodyAdded=new c.Signal,this.onBodyRemoved=new c.Signal,this.onSpringAdded=new c.Signal,this.onSpringRemoved=new c.Signal,this.onConstraintAdded=new c.Signal,this.onConstraintRemoved=new c.Signal,this.onContactMaterialAdded=new c.Signal,this.onContactMaterialRemoved=new c.Signal,this.postBroadphaseCallback=null,this.callbackContext=null,this.onBeginContact=new c.Signal,this.onEndContact=new c.Signal,b.hasOwnProperty("mpx")&&b.hasOwnProperty("pxm")&&b.hasOwnProperty("mpxi")&&b.hasOwnProperty("pxmi")&&(this.mpx=b.mpx,this.mpxi=b.mpxi,this.pxm=b.pxm,this.pxmi=b.pxmi),this.world.on("beginContact",this.beginContactHandler,this),this.world.on("endContact",this.endContactHandler,this),this.collisionGroups=[],this.nothingCollisionGroup=new c.Physics.P2.CollisionGroup(1),this.boundsCollisionGroup=new c.Physics.P2.CollisionGroup(2),this.everythingCollisionGroup=new c.Physics.P2.CollisionGroup(2147483648),this.boundsCollidesWith=[],this._toRemove=[],this._collisionGroupID=2,this._boundsLeft=!0,this._boundsRight=!0,this._boundsTop=!0,this._boundsBottom=!0,this._boundsOwnGroup=!1,this.setBoundsToWorld(!0,!0,!0,!0,!1) +},c.Physics.P2.prototype={removeBodyNextStep:function(a){this._toRemove.push(a)},preUpdate:function(){for(var a=this._toRemove.length;a--;)this.removeBody(this._toRemove[a]);this._toRemove.length=0},enable:function(a,b,d){void 0===b&&(b=!1),void 0===d&&(d=!0);var e=1;if(Array.isArray(a))for(e=a.length;e--;)a[e]instanceof c.Group?this.enable(a[e].children,b,d):(this.enableBody(a[e],b),d&&a[e].hasOwnProperty("children")&&a[e].children.length>0&&this.enable(a[e],b,!0));else a instanceof c.Group?this.enable(a.children,b,d):(this.enableBody(a,b),d&&a.hasOwnProperty("children")&&a.children.length>0&&this.enable(a.children,b,!0))},enableBody:function(a,b){a.hasOwnProperty("body")&&null===a.body&&(a.body=new c.Physics.P2.Body(this.game,a,a.x,a.y,1),a.body.debug=b,"undefined"!=typeof a.anchor&&a.anchor.set(.5))},setImpactEvents:function(a){a?this.world.on("impact",this.impactHandler,this):this.world.off("impact",this.impactHandler,this)},setPostBroadphaseCallback:function(a,b){this.postBroadphaseCallback=a,this.callbackContext=b,null!==a?this.world.on("postBroadphase",this.postBroadphaseHandler,this):this.world.off("postBroadphase",this.postBroadphaseHandler,this)},postBroadphaseHandler:function(a){if(this.postBroadphaseCallback&&0!==a.pairs.length)for(var b=a.pairs.length-2;b>=0;b-=2)a.pairs[b].parent&&a.pairs[b+1].parent&&!this.postBroadphaseCallback.call(this.callbackContext,a.pairs[b].parent,a.pairs[b+1].parent)&&a.pairs.splice(b,2)},impactHandler:function(a){if(a.bodyA.parent&&a.bodyB.parent){var b=a.bodyA.parent,c=a.bodyB.parent;b._bodyCallbacks[a.bodyB.id]&&b._bodyCallbacks[a.bodyB.id].call(b._bodyCallbackContext[a.bodyB.id],b,c,a.shapeA,a.shapeB),c._bodyCallbacks[a.bodyA.id]&&c._bodyCallbacks[a.bodyA.id].call(c._bodyCallbackContext[a.bodyA.id],c,b,a.shapeB,a.shapeA),b._groupCallbacks[a.shapeB.collisionGroup]&&b._groupCallbacks[a.shapeB.collisionGroup].call(b._groupCallbackContext[a.shapeB.collisionGroup],b,c,a.shapeA,a.shapeB),c._groupCallbacks[a.shapeA.collisionGroup]&&c._groupCallbacks[a.shapeA.collisionGroup].call(c._groupCallbackContext[a.shapeA.collisionGroup],c,b,a.shapeB,a.shapeA)}},beginContactHandler:function(a){a.bodyA&&a.bodyB&&(this.onBeginContact.dispatch(a.bodyA,a.bodyB,a.shapeA,a.shapeB,a.contactEquations),a.bodyA.parent&&a.bodyA.parent.onBeginContact.dispatch(a.bodyB.parent,a.bodyB,a.shapeA,a.shapeB,a.contactEquations),a.bodyB.parent&&a.bodyB.parent.onBeginContact.dispatch(a.bodyA.parent,a.bodyA,a.shapeB,a.shapeA,a.contactEquations))},endContactHandler:function(a){a.bodyA&&a.bodyB&&(this.onEndContact.dispatch(a.bodyA,a.bodyB,a.shapeA,a.shapeB),a.bodyA.parent&&a.bodyA.parent.onEndContact.dispatch(a.bodyB.parent,a.bodyB,a.shapeA,a.shapeB),a.bodyB.parent&&a.bodyB.parent.onEndContact.dispatch(a.bodyA.parent,a.bodyA,a.shapeB,a.shapeA))},setBoundsToWorld:function(a,b,c,d,e){this.setBounds(this.game.world.bounds.x,this.game.world.bounds.y,this.game.world.bounds.width,this.game.world.bounds.height,a,b,c,d,e)},setWorldMaterial:function(a,b,c,d,e){void 0===b&&(b=!0),void 0===c&&(c=!0),void 0===d&&(d=!0),void 0===e&&(e=!0),b&&this.walls.left&&(this.walls.left.shapes[0].material=a),c&&this.walls.right&&(this.walls.right.shapes[0].material=a),d&&this.walls.top&&(this.walls.top.shapes[0].material=a),e&&this.walls.bottom&&(this.walls.bottom.shapes[0].material=a)},updateBoundsCollisionGroup:function(a){var b=this.everythingCollisionGroup.mask;void 0===a&&(b=this.boundsCollisionGroup.mask),this.walls.left&&(this.walls.left.shapes[0].collisionGroup=b),this.walls.right&&(this.walls.right.shapes[0].collisionGroup=b),this.walls.top&&(this.walls.top.shapes[0].collisionGroup=b),this.walls.bottom&&(this.walls.bottom.shapes[0].collisionGroup=b)},setBounds:function(a,b,c,d,e,f,g,h,i){void 0===e&&(e=this._boundsLeft),void 0===f&&(f=this._boundsRight),void 0===g&&(g=this._boundsTop),void 0===h&&(h=this._boundsBottom),void 0===i&&(i=this._boundsOwnGroup),this.walls.left&&this.world.removeBody(this.walls.left),this.walls.right&&this.world.removeBody(this.walls.right),this.walls.top&&this.world.removeBody(this.walls.top),this.walls.bottom&&this.world.removeBody(this.walls.bottom),e&&(this.walls.left=new p2.Body({mass:0,position:[this.pxmi(a),this.pxmi(b)],angle:1.5707963267948966}),this.walls.left.addShape(new p2.Plane),i&&(this.walls.left.shapes[0].collisionGroup=this.boundsCollisionGroup.mask),this.world.addBody(this.walls.left)),f&&(this.walls.right=new p2.Body({mass:0,position:[this.pxmi(a+c),this.pxmi(b)],angle:-1.5707963267948966}),this.walls.right.addShape(new p2.Plane),i&&(this.walls.right.shapes[0].collisionGroup=this.boundsCollisionGroup.mask),this.world.addBody(this.walls.right)),g&&(this.walls.top=new p2.Body({mass:0,position:[this.pxmi(a),this.pxmi(b)],angle:-3.141592653589793}),this.walls.top.addShape(new p2.Plane),i&&(this.walls.top.shapes[0].collisionGroup=this.boundsCollisionGroup.mask),this.world.addBody(this.walls.top)),h&&(this.walls.bottom=new p2.Body({mass:0,position:[this.pxmi(a),this.pxmi(b+d)]}),this.walls.bottom.addShape(new p2.Plane),i&&(this.walls.bottom.shapes[0].collisionGroup=this.boundsCollisionGroup.mask),this.world.addBody(this.walls.bottom)),this._boundsLeft=e,this._boundsRight=f,this._boundsTop=g,this._boundsBottom=h,this._boundsOwnGroup=i},pause:function(){this.paused=!0},resume:function(){this.paused=!1},update:function(){this.paused||this.world.step(this.useElapsedTime?this.game.time.physicsElapsed:this.frameRate)},reset:function(){this.world.on("beginContact",this.beginContactHandler,this),this.world.on("endContact",this.endContactHandler,this),this.nothingCollisionGroup=new c.Physics.P2.CollisionGroup(1),this.boundsCollisionGroup=new c.Physics.P2.CollisionGroup(2),this.everythingCollisionGroup=new c.Physics.P2.CollisionGroup(2147483648),this._collisionGroupID=2,this.setBoundsToWorld(!0,!0,!0,!0,!1)},clear:function(){this.world.time=0,this.world.fixedStepTime=0,this.world.solver&&this.world.solver.equations.length&&this.world.solver.removeAllEquations();for(var a=this.world.constraints,b=a.length-1;b>=0;b--)this.world.removeConstraint(a[b]);for(var c=this.world.bodies,b=c.length-1;b>=0;b--)this.world.removeBody(c[b]);for(var d=this.world.springs,b=d.length-1;b>=0;b--)this.world.removeSpring(d[b]);for(var e=this.world.contactMaterials,b=e.length-1;b>=0;b--)this.world.removeContactMaterial(e[b]);this.world.off("beginContact",this.beginContactHandler,this),this.world.off("endContact",this.endContactHandler,this),this.postBroadphaseCallback=null,this.callbackContext=null,this.impactCallback=null,this.collisionGroups=[],this._toRemove=[],this.boundsCollidesWith=[]},destroy:function(){this.clear(),this.game=null},addBody:function(a){return a.data.world?!1:(this.world.addBody(a.data),this.onBodyAdded.dispatch(a),!0)},removeBody:function(a){return a.data.world==this.world&&(this.world.removeBody(a.data),this.onBodyRemoved.dispatch(a)),a},addSpring:function(a){return this.world.addSpring(a instanceof c.Physics.P2.Spring||a instanceof c.Physics.P2.RotationalSpring?a.data:a),this.onSpringAdded.dispatch(a),a},removeSpring:function(a){return this.world.removeSpring(a instanceof c.Physics.P2.Spring||a instanceof c.Physics.P2.RotationalSpring?a.data:a),this.onSpringRemoved.dispatch(a),a},createDistanceConstraint:function(a,b,d,e,f,g){return a=this.getBody(a),b=this.getBody(b),a&&b?this.addConstraint(new c.Physics.P2.DistanceConstraint(this,a,b,d,e,f,g)):void console.warn("Cannot create Constraint, invalid body objects given")},createGearConstraint:function(a,b,d,e){return a=this.getBody(a),b=this.getBody(b),a&&b?this.addConstraint(new c.Physics.P2.GearConstraint(this,a,b,d,e)):void console.warn("Cannot create Constraint, invalid body objects given")},createRevoluteConstraint:function(a,b,d,e,f,g){return a=this.getBody(a),d=this.getBody(d),a&&d?this.addConstraint(new c.Physics.P2.RevoluteConstraint(this,a,b,d,e,f,g)):void console.warn("Cannot create Constraint, invalid body objects given")},createLockConstraint:function(a,b,d,e,f){return a=this.getBody(a),b=this.getBody(b),a&&b?this.addConstraint(new c.Physics.P2.LockConstraint(this,a,b,d,e,f)):void console.warn("Cannot create Constraint, invalid body objects given")},createPrismaticConstraint:function(a,b,d,e,f,g,h){return a=this.getBody(a),b=this.getBody(b),a&&b?this.addConstraint(new c.Physics.P2.PrismaticConstraint(this,a,b,d,e,f,g,h)):void console.warn("Cannot create Constraint, invalid body objects given")},addConstraint:function(a){return this.world.addConstraint(a),this.onConstraintAdded.dispatch(a),a},removeConstraint:function(a){return this.world.removeConstraint(a),this.onConstraintRemoved.dispatch(a),a},addContactMaterial:function(a){return this.world.addContactMaterial(a),this.onContactMaterialAdded.dispatch(a),a},removeContactMaterial:function(a){return this.world.removeContactMaterial(a),this.onContactMaterialRemoved.dispatch(a),a},getContactMaterial:function(a,b){return this.world.getContactMaterial(a,b)},setMaterial:function(a,b){for(var c=b.length;c--;)b[c].setMaterial(a)},createMaterial:function(a,b){a=a||"";var d=new c.Physics.P2.Material(a);return this.materials.push(d),"undefined"!=typeof b&&b.setMaterial(d),d},createContactMaterial:function(a,b,d){void 0===a&&(a=this.createMaterial()),void 0===b&&(b=this.createMaterial());var e=new c.Physics.P2.ContactMaterial(a,b,d);return this.addContactMaterial(e)},getBodies:function(){for(var a=[],b=this.world.bodies.length;b--;)a.push(this.world.bodies[b].parent);return a},getBody:function(a){return a instanceof p2.Body?a:a instanceof c.Physics.P2.Body?a.data:a.body&&a.body.type===c.Physics.P2JS?a.body.data:null},getSprings:function(){for(var a=[],b=this.world.springs.length;b--;)a.push(this.world.springs[b].parent);return a},getConstraints:function(){for(var a=[],b=this.world.constraints.length;b--;)a.push(this.world.constraints[b]);return a},hitTest:function(a,b,d,e){void 0===b&&(b=this.world.bodies),void 0===d&&(d=5),void 0===e&&(e=!1);for(var f=[this.pxmi(a.x),this.pxmi(a.y)],g=[],h=b.length;h--;)b[h]instanceof c.Physics.P2.Body&&(!e||b[h].data.type!==p2.Body.STATIC)?g.push(b[h].data):b[h]instanceof p2.Body&&b[h].parent&&(!e||b[h].type!==p2.Body.STATIC)?g.push(b[h]):b[h]instanceof c.Sprite&&b[h].hasOwnProperty("body")&&(!e||b[h].body.data.type!==p2.Body.STATIC)&&g.push(b[h].body.data);return this.world.hitTest(f,g,d)},toJSON:function(){return this.world.toJSON()},createCollisionGroup:function(a){var b=Math.pow(2,this._collisionGroupID);this.walls.left&&(this.walls.left.shapes[0].collisionMask=this.walls.left.shapes[0].collisionMask|b),this.walls.right&&(this.walls.right.shapes[0].collisionMask=this.walls.right.shapes[0].collisionMask|b),this.walls.top&&(this.walls.top.shapes[0].collisionMask=this.walls.top.shapes[0].collisionMask|b),this.walls.bottom&&(this.walls.bottom.shapes[0].collisionMask=this.walls.bottom.shapes[0].collisionMask|b),this._collisionGroupID++;var d=new c.Physics.P2.CollisionGroup(b);return this.collisionGroups.push(d),a&&this.setCollisionGroup(a,d),d},setCollisionGroup:function(a,b){if(a instanceof c.Group)for(var d=0;de;e++){var g=a.collision[b][e],h=this.createBody(g.x,g.y,0,c,{},g.polyline);h&&d.push(h)}return d},clearTilemapLayerBodies:function(a,b){b=a.getLayer(b);for(var c=a.layers[b].bodies.length;c--;)a.layers[b].bodies[c].destroy();a.layers[b].bodies.length=0},convertTilemap:function(a,b,c,d){b=a.getLayer(b),void 0===c&&(c=!0),void 0===d&&(d=!0),this.clearTilemapLayerBodies(a,b);for(var e=0,f=0,g=0,h=0,i=a.layers[b].height;i>h;h++){e=0;for(var j=0,k=a.layers[b].width;k>j;j++){var l=a.layers[b].data[h][j];if(l&&l.index>-1&&l.collides)if(d){var m=a.getTileRight(b,j,h);if(0===e&&(f=l.x*l.width,g=l.y*l.height,e=l.width),m&&m.collides)e+=l.width;else{var n=this.createBody(f,g,0,!1);n.addRectangle(e,l.height,e/2,l.height/2,0),c&&this.addBody(n),a.layers[b].bodies.push(n),e=0}}else{var n=this.createBody(l.x*l.width,l.y*l.height,0,!1);n.addRectangle(l.width,l.height,l.width/2,l.height/2,0),c&&this.addBody(n),a.layers[b].bodies.push(n)}}}return a.layers[b].bodies},mpx:function(a){return a*=20},pxm:function(a){return.05*a},mpxi:function(a){return a*=-20},pxmi:function(a){return a*-.05}},Object.defineProperty(c.Physics.P2.prototype,"friction",{get:function(){return this.world.defaultContactMaterial.friction},set:function(a){this.world.defaultContactMaterial.friction=a}}),Object.defineProperty(c.Physics.P2.prototype,"restitution",{get:function(){return this.world.defaultContactMaterial.restitution},set:function(a){this.world.defaultContactMaterial.restitution=a}}),Object.defineProperty(c.Physics.P2.prototype,"contactMaterial",{get:function(){return this.world.defaultContactMaterial},set:function(a){this.world.defaultContactMaterial=a}}),Object.defineProperty(c.Physics.P2.prototype,"applySpringForces",{get:function(){return this.world.applySpringForces},set:function(a){this.world.applySpringForces=a}}),Object.defineProperty(c.Physics.P2.prototype,"applyDamping",{get:function(){return this.world.applyDamping},set:function(a){this.world.applyDamping=a}}),Object.defineProperty(c.Physics.P2.prototype,"applyGravity",{get:function(){return this.world.applyGravity},set:function(a){this.world.applyGravity=a}}),Object.defineProperty(c.Physics.P2.prototype,"solveConstraints",{get:function(){return this.world.solveConstraints},set:function(a){this.world.solveConstraints=a}}),Object.defineProperty(c.Physics.P2.prototype,"time",{get:function(){return this.world.time}}),Object.defineProperty(c.Physics.P2.prototype,"emitImpactEvent",{get:function(){return this.world.emitImpactEvent},set:function(a){this.world.emitImpactEvent=a}}),Object.defineProperty(c.Physics.P2.prototype,"sleepMode",{get:function(){return this.world.sleepMode},set:function(a){this.world.sleepMode=a}}),Object.defineProperty(c.Physics.P2.prototype,"total",{get:function(){return this.world.bodies.length}}),c.Physics.P2.FixtureList=function(a){Array.isArray(a)||(a=[a]),this.rawList=a,this.init(),this.parse(this.rawList)},c.Physics.P2.FixtureList.prototype={init:function(){this.namedFixtures={},this.groupedFixtures=[],this.allFixtures=[]},setCategory:function(a,b){var c=function(b){b.collisionGroup=a};this.getFixtures(b).forEach(c)},setMask:function(a,b){var c=function(b){b.collisionMask=a};this.getFixtures(b).forEach(c)},setSensor:function(a,b){var c=function(b){b.sensor=a};this.getFixtures(b).forEach(c)},setMaterial:function(a,b){var c=function(b){b.material=a};this.getFixtures(b).forEach(c)},getFixtures:function(a){var b=[];if(a){a instanceof Array||(a=[a]);var c=this;return a.forEach(function(a){c.namedFixtures[a]&&b.push(c.namedFixtures[a])}),this.flatten(b)}return this.allFixtures},getFixtureByKey:function(a){return this.namedFixtures[a]},getGroup:function(a){return this.groupedFixtures[a]},parse:function(){var a,b,c,d;c=this.rawList,d=[];for(a in c)b=c[a],isNaN(a-0)?this.namedFixtures[a]=this.flatten(b):(this.groupedFixtures[a]=this.groupedFixtures[a]||[],this.groupedFixtures[a]=this.groupedFixtures[a].concat(b)),d.push(this.allFixtures=this.flatten(this.groupedFixtures))},flatten:function(a){var b,c;return b=[],c=arguments.callee,a.forEach(function(a){return Array.prototype.push.apply(b,Array.isArray(a)?c(a):[a])}),b}},c.Physics.P2.PointProxy=function(a,b){this.world=a,this.destination=b},c.Physics.P2.PointProxy.prototype.constructor=c.Physics.P2.PointProxy,Object.defineProperty(c.Physics.P2.PointProxy.prototype,"x",{get:function(){return this.world.mpx(this.destination[0])},set:function(a){this.destination[0]=this.world.pxm(a)}}),Object.defineProperty(c.Physics.P2.PointProxy.prototype,"y",{get:function(){return this.world.mpx(this.destination[1])},set:function(a){this.destination[1]=this.world.pxm(a)}}),Object.defineProperty(c.Physics.P2.PointProxy.prototype,"mx",{get:function(){return this.destination[0]},set:function(a){this.destination[0]=a}}),Object.defineProperty(c.Physics.P2.PointProxy.prototype,"my",{get:function(){return this.destination[1]},set:function(a){this.destination[1]=a}}),c.Physics.P2.InversePointProxy=function(a,b){this.world=a,this.destination=b},c.Physics.P2.InversePointProxy.prototype.constructor=c.Physics.P2.InversePointProxy,Object.defineProperty(c.Physics.P2.InversePointProxy.prototype,"x",{get:function(){return this.world.mpxi(this.destination[0])},set:function(a){this.destination[0]=this.world.pxmi(a)}}),Object.defineProperty(c.Physics.P2.InversePointProxy.prototype,"y",{get:function(){return this.world.mpxi(this.destination[1])},set:function(a){this.destination[1]=this.world.pxmi(a)}}),Object.defineProperty(c.Physics.P2.InversePointProxy.prototype,"mx",{get:function(){return this.destination[0]},set:function(a){this.destination[0]=-a}}),Object.defineProperty(c.Physics.P2.InversePointProxy.prototype,"my",{get:function(){return this.destination[1]},set:function(a){this.destination[1]=-a}}),c.Physics.P2.Body=function(a,b,d,e,f){b=b||null,d=d||0,e=e||0,void 0===f&&(f=1),this.game=a,this.world=a.physics.p2,this.sprite=b,this.type=c.Physics.P2JS,this.offset=new c.Point,this.data=new p2.Body({position:[this.world.pxmi(d),this.world.pxmi(e)],mass:f}),this.data.parent=this,this.velocity=new c.Physics.P2.InversePointProxy(this.world,this.data.velocity),this.force=new c.Physics.P2.InversePointProxy(this.world,this.data.force),this.gravity=new c.Point,this.onBeginContact=new c.Signal,this.onEndContact=new c.Signal,this.collidesWith=[],this.removeNextStep=!1,this.debugBody=null,this.dirty=!1,this._collideWorldBounds=!0,this._bodyCallbacks={},this._bodyCallbackContext={},this._groupCallbacks={},this._groupCallbackContext={},this._reset=!1,b&&(this.setRectangleFromSprite(b),b.exists&&this.game.physics.p2.addBody(this))},c.Physics.P2.Body.prototype={createBodyCallback:function(a,b,c){var d=-1;a.id?d=a.id:a.body&&(d=a.body.id),d>-1&&(null===b?(delete this._bodyCallbacks[d],delete this._bodyCallbackContext[d]):(this._bodyCallbacks[d]=b,this._bodyCallbackContext[d]=c))},createGroupCallback:function(a,b,c){null===b?(delete this._groupCallbacks[a.mask],delete this._groupCallbackContext[a.mask]):(this._groupCallbacks[a.mask]=b,this._groupCallbackContext[a.mask]=c)},getCollisionMask:function(){var a=0;this._collideWorldBounds&&(a=this.game.physics.p2.boundsCollisionGroup.mask);for(var b=0;b=0;c--)this.data.shapes[c].collisionMask=b;else a.collisionMask=b},setCollisionGroup:function(a,b){var c=this.getCollisionMask();if(void 0===b)for(var d=this.data.shapes.length-1;d>=0;d--)this.data.shapes[d].collisionGroup=a.mask,this.data.shapes[d].collisionMask=c;else b.collisionGroup=a.mask,b.collisionMask=c},clearCollision:function(a,b,c){if(void 0===a&&(a=!0),void 0===b&&(b=!0),void 0===c)for(var d=this.data.shapes.length-1;d>=0;d--)a&&(this.data.shapes[d].collisionGroup=null),b&&(this.data.shapes[d].collisionMask=null);else a&&(c.collisionGroup=null),b&&(c.collisionMask=null);a&&(this.collidesWith.length=0)},collides:function(a,b,c,d){if(Array.isArray(a))for(var e=0;e=0;e--)this.data.shapes[e].collisionMask=f;else d.collisionMask=f},adjustCenterOfMass:function(){this.data.adjustCenterOfMass(),this.shapeChanged()},getVelocityAtPoint:function(a,b){return this.data.getVelocityAtPoint(a,b)},applyDamping:function(a){this.data.applyDamping(a)},applyImpulse:function(a,b,c){this.data.applyImpulse(a,[this.world.pxmi(b),this.world.pxmi(c)])},applyImpulseLocal:function(a,b,c){this.data.applyImpulseLocal(a,[this.world.pxmi(b),this.world.pxmi(c)])},applyForce:function(a,b,c){this.data.applyForce(a,[this.world.pxmi(b),this.world.pxmi(c)])},setZeroForce:function(){this.data.setZeroForce()},setZeroRotation:function(){this.data.angularVelocity=0},setZeroVelocity:function(){this.data.velocity[0]=0,this.data.velocity[1]=0},setZeroDamping:function(){this.data.damping=0,this.data.angularDamping=0},toLocalFrame:function(a,b){return this.data.toLocalFrame(a,b)},toWorldFrame:function(a,b){return this.data.toWorldFrame(a,b)},rotateLeft:function(a){this.data.angularVelocity=this.world.pxm(-a)},rotateRight:function(a){this.data.angularVelocity=this.world.pxm(a)},moveForward:function(a){var b=this.world.pxmi(-a),c=this.data.angle+Math.PI/2;this.data.velocity[0]=b*Math.cos(c),this.data.velocity[1]=b*Math.sin(c)},moveBackward:function(a){var b=this.world.pxmi(-a),c=this.data.angle+Math.PI/2;this.data.velocity[0]=-(b*Math.cos(c)),this.data.velocity[1]=-(b*Math.sin(c))},thrust:function(a){var b=this.world.pxmi(-a),c=this.data.angle+Math.PI/2;this.data.force[0]+=b*Math.cos(c),this.data.force[1]+=b*Math.sin(c)},reverse:function(a){var b=this.world.pxmi(-a),c=this.data.angle+Math.PI/2;this.data.force[0]-=b*Math.cos(c),this.data.force[1]-=b*Math.sin(c)},moveLeft:function(a){this.data.velocity[0]=this.world.pxmi(-a)},moveRight:function(a){this.data.velocity[0]=this.world.pxmi(a)},moveUp:function(a){this.data.velocity[1]=this.world.pxmi(-a)},moveDown:function(a){this.data.velocity[1]=this.world.pxmi(a)},preUpdate:function(){this.dirty=!0,this.removeNextStep&&(this.removeFromWorld(),this.removeNextStep=!1)},postUpdate:function(){this.sprite.x=this.world.mpxi(this.data.position[0]),this.sprite.y=this.world.mpxi(this.data.position[1]),this.fixedRotation||(this.sprite.rotation=this.data.angle),this.debugBody&&this.debugBody.updateSpriteTransform(),this.dirty=!1},reset:function(a,b,c,d){void 0===c&&(c=!1),void 0===d&&(d=!1),this.setZeroForce(),this.setZeroVelocity(),this.setZeroRotation(),c&&this.setZeroDamping(),d&&(this.mass=1),this.x=a,this.y=b},addToWorld:function(){if(this.game.physics.p2._toRemove)for(var a=0;ad;d+=2)c.push([b[d],b[d+1]]);var f=c.length-1;c[f][0]===c[0][0]&&c[f][1]===c[0][1]&&c.pop();for(var g=0;g=0;c--)this.data.shapes[c].material=a;else b.material=a},shapeChanged:function(){this.debugBody&&this.debugBody.draw()},addPhaserPolygon:function(a,b){for(var c=this.game.cache.getPhysicsData(a,b),d=[],e=0;e=0?o>n:n>o;e=o>=0?++n:--n)k=b.vertices[e],p2.vec2.rotate(m,k,a),l.push([(m[0]+i[0])*this.ppu,-(m[1]+i[1])*this.ppu]);this.drawConvex(j,l,b.triangles,f,c,g,this.settings.debugPolygons,[i[0]*this.ppu,-i[1]*this.ppu])}d++}}},drawRectangle:function(a,b,c,d,e,f,g,h,i){void 0===i&&(i=1),void 0===g&&(g=0),a.lineStyle(i,g,1),a.beginFill(h),a.drawRect(b-e/2,c-f/2,e,f)},drawCircle:function(a,b,c,d,e,f,g){void 0===g&&(g=1),void 0===f&&(f=16777215),a.lineStyle(g,0,1),a.beginFill(f,1),a.drawCircle(b,c,2*-e),a.endFill(),a.moveTo(b,c),a.lineTo(b+e*Math.cos(-d),c+e*Math.sin(-d))},drawLine:function(a,b,c,d){void 0===d&&(d=1),void 0===c&&(c=0),a.lineStyle(5*d,c,1),a.moveTo(-b/2,0),a.lineTo(b/2,0)},drawConvex:function(a,b,c,d,e,f,g,h){var i,j,k,l,m,n,o,p,q,r,s;if(void 0===f&&(f=1),void 0===d&&(d=0),g){for(i=[16711680,65280,255],j=0;j!==b.length+1;)l=b[j%b.length],m=b[(j+1)%b.length],o=l[0],r=l[1],p=m[0],s=m[1],a.lineStyle(f,i[j%i.length],1),a.moveTo(o,-r),a.lineTo(p,-s),a.drawCircle(o,-r,2*f),j++;return a.lineStyle(f,0,1),a.drawCircle(h[0],h[1],2*f)}for(a.lineStyle(f,d,1),a.beginFill(e),j=0;j!==b.length;)k=b[j],n=k[0],q=k[1],0===j?a.moveTo(n,-q):a.lineTo(n,-q),j++;return a.endFill(),b.length>2?(a.moveTo(b[b.length-1][0],-b[b.length-1][1]),a.lineTo(b[0][0],-b[0][1])):void 0},drawPath:function(a,b,c,d,e){var f,g,h,i,j,k,l,m,n,o,p,q,r;for(void 0===e&&(e=1),void 0===c&&(c=0),a.lineStyle(e,c,1),"number"==typeof d&&a.beginFill(d),h=null,i=null,g=0;g2&&"number"==typeof d&&(a.moveTo(b[b.length-1][0],b[b.length-1][1]),a.lineTo(b[0][0],b[0][1]))},drawPlane:function(a,b,c,d,e,f,g,h,i,j){var k,l,m;void 0===f&&(f=1),void 0===d&&(d=16777215),a.lineStyle(f,e,11),a.beginFill(d),k=i,a.moveTo(b,-c),l=b+Math.cos(j)*this.game.width,m=c+Math.sin(j)*this.game.height,a.lineTo(l,-m),a.moveTo(b,-c),l=b+Math.cos(j)*-this.game.width,m=c+Math.sin(j)*-this.game.height,a.lineTo(l,-m)},drawCapsule:function(a,b,c,d,e,f,g,h,i){void 0===i&&(i=1),void 0===g&&(g=0),a.lineStyle(i,g,1);var j=Math.cos(d),k=Math.sin(d);a.beginFill(h,1),a.drawCircle(-e/2*j+b,-e/2*k+c,2*-f),a.drawCircle(e/2*j+b,e/2*k+c,2*-f),a.endFill(),a.lineStyle(i,g,0),a.beginFill(h,1),a.moveTo(-e/2*j+f*k+b,-e/2*k+f*j+c),a.lineTo(e/2*j+f*k+b,e/2*k+f*j+c),a.lineTo(e/2*j-f*k+b,e/2*k-f*j+c),a.lineTo(-e/2*j-f*k+b,-e/2*k-f*j+c),a.endFill(),a.lineStyle(i,g,1),a.moveTo(-e/2*j+f*k+b,-e/2*k+f*j+c),a.lineTo(e/2*j+f*k+b,e/2*k+f*j+c),a.moveTo(-e/2*j-f*k+b,-e/2*k-f*j+c),a.lineTo(e/2*j-f*k+b,e/2*k-f*j+c)},randomPastelHex:function(){var a,b,c,d;return c=[255,255,255],d=Math.floor(256*Math.random()),b=Math.floor(256*Math.random()),a=Math.floor(256*Math.random()),d=Math.floor((d+3*c[0])/4),b=Math.floor((b+3*c[1])/4),a=Math.floor((a+3*c[2])/4),this.rgbToHex(d,b,a)},rgbToHex:function(a,b,c){return this.componentToHex(a)+this.componentToHex(b)+this.componentToHex(c)},componentToHex:function(a){var b;return b=a.toString(16),2===b.len?b:b+"0"}}),c.Physics.P2.Spring=function(a,b,c,d,e,f,g,h,i,j){this.game=a.game,this.world=a,void 0===d&&(d=1),void 0===e&&(e=100),void 0===f&&(f=1),d=a.pxm(d);var k={restLength:d,stiffness:e,damping:f};"undefined"!=typeof g&&null!==g&&(k.worldAnchorA=[a.pxm(g[0]),a.pxm(g[1])]),"undefined"!=typeof h&&null!==h&&(k.worldAnchorB=[a.pxm(h[0]),a.pxm(h[1])]),"undefined"!=typeof i&&null!==i&&(k.localAnchorA=[a.pxm(i[0]),a.pxm(i[1])]),"undefined"!=typeof j&&null!==j&&(k.localAnchorB=[a.pxm(j[0]),a.pxm(j[1])]),this.data=new p2.LinearSpring(b,c,k),this.data.parent=this},c.Physics.P2.Spring.prototype.constructor=c.Physics.P2.Spring,c.Physics.P2.RotationalSpring=function(a,b,c,d,e,f){this.game=a.game,this.world=a,void 0===d&&(d=null),void 0===e&&(e=100),void 0===f&&(f=1),d&&(d=a.pxm(d));var g={restAngle:d,stiffness:e,damping:f};this.data=new p2.RotationalSpring(b,c,g),this.data.parent=this},c.Physics.P2.Spring.prototype.constructor=c.Physics.P2.Spring,c.Physics.P2.Material=function(a){this.name=a,p2.Material.call(this)},c.Physics.P2.Material.prototype=Object.create(p2.Material.prototype),c.Physics.P2.Material.prototype.constructor=c.Physics.P2.Material,c.Physics.P2.ContactMaterial=function(a,b,c){p2.ContactMaterial.call(this,a,b,c)},c.Physics.P2.ContactMaterial.prototype=Object.create(p2.ContactMaterial.prototype),c.Physics.P2.ContactMaterial.prototype.constructor=c.Physics.P2.ContactMaterial,c.Physics.P2.CollisionGroup=function(a){this.mask=a},c.Physics.P2.DistanceConstraint=function(a,b,c,d,e,f,g){void 0===d&&(d=100),void 0===e&&(e=[0,0]),void 0===f&&(f=[0,0]),void 0===g&&(g=Number.MAX_VALUE),this.game=a.game,this.world=a,d=a.pxm(d),e=[a.pxmi(e[0]),a.pxmi(e[1])],f=[a.pxmi(f[0]),a.pxmi(f[1])];var h={distance:d,localAnchorA:e,localAnchorB:f,maxForce:g};p2.DistanceConstraint.call(this,b,c,h)},c.Physics.P2.DistanceConstraint.prototype=Object.create(p2.DistanceConstraint.prototype),c.Physics.P2.DistanceConstraint.prototype.constructor=c.Physics.P2.DistanceConstraint,c.Physics.P2.GearConstraint=function(a,b,c,d,e){void 0===d&&(d=0),void 0===e&&(e=1),this.game=a.game,this.world=a;var f={angle:d,ratio:e};p2.GearConstraint.call(this,b,c,f)},c.Physics.P2.GearConstraint.prototype=Object.create(p2.GearConstraint.prototype),c.Physics.P2.GearConstraint.prototype.constructor=c.Physics.P2.GearConstraint,c.Physics.P2.LockConstraint=function(a,b,c,d,e,f){void 0===d&&(d=[0,0]),void 0===e&&(e=0),void 0===f&&(f=Number.MAX_VALUE),this.game=a.game,this.world=a,d=[a.pxm(d[0]),a.pxm(d[1])];var g={localOffsetB:d,localAngleB:e,maxForce:f};p2.LockConstraint.call(this,b,c,g)},c.Physics.P2.LockConstraint.prototype=Object.create(p2.LockConstraint.prototype),c.Physics.P2.LockConstraint.prototype.constructor=c.Physics.P2.LockConstraint,c.Physics.P2.PrismaticConstraint=function(a,b,c,d,e,f,g,h){void 0===d&&(d=!0),void 0===e&&(e=[0,0]),void 0===f&&(f=[0,0]),void 0===g&&(g=[0,0]),void 0===h&&(h=Number.MAX_VALUE),this.game=a.game,this.world=a,e=[a.pxmi(e[0]),a.pxmi(e[1])],f=[a.pxmi(f[0]),a.pxmi(f[1])];var i={localAnchorA:e,localAnchorB:f,localAxisA:g,maxForce:h,disableRotationalLock:!d};p2.PrismaticConstraint.call(this,b,c,i)},c.Physics.P2.PrismaticConstraint.prototype=Object.create(p2.PrismaticConstraint.prototype),c.Physics.P2.PrismaticConstraint.prototype.constructor=c.Physics.P2.PrismaticConstraint,c.Physics.P2.RevoluteConstraint=function(a,b,c,d,e,f,g){void 0===f&&(f=Number.MAX_VALUE),void 0===g&&(g=null),this.game=a.game,this.world=a,c=[a.pxmi(c[0]),a.pxmi(c[1])],e=[a.pxmi(e[0]),a.pxmi(e[1])],g&&(g=[a.pxmi(g[0]),a.pxmi(g[1])]);var h={worldPivot:g,localPivotA:c,localPivotB:e,maxForce:f};p2.RevoluteConstraint.call(this,b,d,h)},c.Physics.P2.RevoluteConstraint.prototype=Object.create(p2.RevoluteConstraint.prototype),c.Physics.P2.RevoluteConstraint.prototype.constructor=c.Physics.P2.RevoluteConstraint,c.ImageCollection=function(a,b,c,d,e,f,g){(void 0===c||0>=c)&&(c=32),(void 0===d||0>=d)&&(d=32),void 0===e&&(e=0),void 0===f&&(f=0),this.name=a,this.firstgid=0|b,this.imageWidth=0|c,this.imageHeight=0|d,this.imageMargin=0|e,this.imageSpacing=0|f,this.properties=g||{},this.images=[],this.total=0},c.ImageCollection.prototype={containsImageIndex:function(a){return a>=this.firstgid&&athis.right||b>this.bottom)},intersects:function(a,b,c,d){return c<=this.worldX?!1:d<=this.worldY?!1:a>=this.worldX+this.width?!1:b>=this.worldY+this.height?!1:!0},setCollisionCallback:function(a,b){this.collisionCallback=a,this.collisionCallbackContext=b},destroy:function(){this.collisionCallback=null,this.collisionCallbackContext=null,this.properties=null},setCollision:function(a,b,c,d){this.collideLeft=a,this.collideRight=b,this.collideUp=c,this.collideDown=d,this.faceLeft=a,this.faceRight=b,this.faceTop=c,this.faceBottom=d},resetCollision:function(){this.collideLeft=!1,this.collideRight=!1,this.collideUp=!1,this.collideDown=!1,this.faceTop=!1,this.faceBottom=!1,this.faceLeft=!1,this.faceRight=!1},isInteresting:function(a,b){return a&&b?this.collideLeft||this.collideRight||this.collideUp||this.collideDown||this.faceTop||this.faceBottom||this.faceLeft||this.faceRight||this.collisionCallback:a?this.collideLeft||this.collideRight||this.collideUp||this.collideDown:b?this.faceTop||this.faceBottom||this.faceLeft||this.faceRight:!1},copy:function(a){this.index=a.index,this.alpha=a.alpha,this.properties=a.properties,this.collideUp=a.collideUp,this.collideDown=a.collideDown,this.collideLeft=a.collideLeft,this.collideRight=a.collideRight,this.collisionCallback=a.collisionCallback,this.collisionCallbackContext=a.collisionCallbackContext}},c.Tile.prototype.constructor=c.Tile,Object.defineProperty(c.Tile.prototype,"collides",{get:function(){return this.collideLeft||this.collideRight||this.collideUp||this.collideDown}}),Object.defineProperty(c.Tile.prototype,"canCollide",{get:function(){return this.collideLeft||this.collideRight||this.collideUp||this.collideDown||this.collisionCallback}}),Object.defineProperty(c.Tile.prototype,"left",{get:function(){return this.worldX}}),Object.defineProperty(c.Tile.prototype,"right",{get:function(){return this.worldX+this.width}}),Object.defineProperty(c.Tile.prototype,"top",{get:function(){return this.worldY}}),Object.defineProperty(c.Tile.prototype,"bottom",{get:function(){return this.worldY+this.height}}),c.Tilemap=function(a,b,d,e,f,g){this.game=a,this.key=b;var h=c.TilemapParser.parse(this.game,b,d,e,f,g);null!==h&&(this.width=h.width,this.height=h.height,this.tileWidth=h.tileWidth,this.tileHeight=h.tileHeight,this.orientation=h.orientation,this.format=h.format,this.version=h.version,this.properties=h.properties,this.widthInPixels=h.widthInPixels,this.heightInPixels=h.heightInPixels,this.layers=h.layers,this.tilesets=h.tilesets,this.imagecollections=h.imagecollections,this.tiles=h.tiles,this.objects=h.objects,this.collideIndexes=[],this.collision=h.collision,this.images=h.images,this.currentLayer=0,this.debugMap=[],this._results=[],this._tempA=0,this._tempB=0)},c.Tilemap.CSV=0,c.Tilemap.TILED_JSON=1,c.Tilemap.NORTH=0,c.Tilemap.EAST=1,c.Tilemap.SOUTH=2,c.Tilemap.WEST=3,c.Tilemap.prototype={create:function(a,b,c,d,e,f){return void 0===f&&(f=this.game.world),this.width=b,this.height=c,this.setTileSize(d,e),this.layers.length=0,this.createBlankLayer(a,b,c,d,e,f)},setTileSize:function(a,b){this.tileWidth=a,this.tileHeight=b,this.widthInPixels=this.width*a,this.heightInPixels=this.height*b},addTilesetImage:function(a,b,d,e,f,g,h){if(void 0===a)return null;void 0===d&&(d=this.tileWidth),void 0===e&&(e=this.tileHeight),void 0===f&&(f=0),void 0===g&&(g=0),void 0===h&&(h=0),0===d&&(d=32),0===e&&(e=32);var i=null;if((void 0===b||null===b)&&(b=a),b instanceof c.BitmapData)i=b.canvas;else{if(!this.game.cache.checkImageKey(b))return console.warn('Phaser.Tilemap.addTilesetImage: Invalid image key given: "'+b+'"'),null;i=this.game.cache.getImage(b)}var j=this.getTilesetIndex(a);if(null===j&&this.format===c.Tilemap.TILED_JSON)return console.warn('Phaser.Tilemap.addTilesetImage: No data found in the JSON matching the tileset name: "'+b+'"'),null;if(this.tilesets[j])return this.tilesets[j].setImage(i),this.tilesets[j];var k=new c.Tileset(a,h,d,e,f,g,{});k.setImage(i),this.tilesets.push(k);for(var l=this.tilesets.length-1,m=f,n=f,o=0,p=0,q=0,r=h;rm;m++)if("undefined"!=typeof this.objects[a][m].gid&&"number"==typeof b&&this.objects[a][m].gid===b&&(l=!0),"undefined"!=typeof this.objects[a][m].id&&"number"==typeof b&&this.objects[a][m].id===b&&(l=!0),"undefined"!=typeof this.objects[a][m].name&&"string"==typeof b&&this.objects[a][m].name===b&&(l=!0),l){k=new i(this.game,this.objects[a][m].x,this.objects[a][m].y,d,e),k.name=this.objects[a][m].name,k.visible=this.objects[a][m].visible,k.autoCull=g,k.exists=f,k.width=this.objects[a][m].width,k.height=this.objects[a][m].height,this.objects[a][m].rotation&&(k.angle=this.objects[a][m].rotation),j&&(k.y-=k.height),h.add(k);for(var o in this.objects[a][m].properties)h.set(k,o,this.objects[a][m].properties[o],!1,!1,0,!0)}},createFromTiles:function(a,b,d,e,f,g){"number"==typeof a&&(a=[a]),void 0===b||null===b?b=[]:"number"==typeof b&&(b=[b]),e=this.getLayer(e),void 0===f&&(f=this.game.world),void 0===g&&(g={}),void 0===g.customClass&&(g.customClass=c.Sprite),void 0===g.adjustY&&(g.adjustY=!0);var h=this.layers[e].width,i=this.layers[e].height;if(this.copy(0,0,h,i,e),this._results.length<2)return 0;for(var j,k=0,l=1,m=this._results.length;m>l;l++)if(-1!==a.indexOf(this._results[l].index)){j=new g.customClass(this.game,this._results[l].worldX,this._results[l].worldY,d);for(var n in g)j[n]=g[n];f.add(j),k++}if(1===b.length)for(l=0;l1)for(l=0;lthis.layers.length?void console.warn("Tilemap.createLayer: Invalid layer ID given: "+f):e.add(new c.TilemapLayer(this.game,this,f,b,d))},createBlankLayer:function(a,b,d,e,f,g){if(void 0===g&&(g=this.game.world),null!==this.getLayerIndex(a))return void console.warn("Tilemap.createBlankLayer: Layer with matching name already exists");for(var h,i={name:a,x:0,y:0,width:b,height:d,widthInPixels:b*e,heightInPixels:d*f,alpha:1,visible:!0,properties:{},indexes:[],callbacks:[],bodies:[],data:null},j=[],k=0;d>k;k++){h=[];for(var l=0;b>l;l++)h.push(new c.Tile(i,-1,l,k,e,f));j.push(h)}i.data=j,this.layers.push(i),this.currentLayer=this.layers.length-1;var m=i.widthInPixels,n=i.heightInPixels;m>this.game.width&&(m=this.game.width),n>this.game.height&&(n=this.game.height);var j=new c.TilemapLayer(this.game,this,this.layers.length-1,m,n);return j.name=a,g.add(j)},getIndex:function(a,b){for(var c=0;ce;e++)this.layers[d].callbacks[a[e]]={callback:b,callbackContext:c}},setTileLocationCallback:function(a,b,c,d,e,f,g){if(g=this.getLayer(g),this.copy(a,b,c,d,g),!(this._results.length<2))for(var h=1;hb)){for(var f=a;b>=f;f++)this.setCollisionByIndex(f,c,d,!1);e&&this.calculateFaces(d)}},setCollisionByExclusion:function(a,b,c,d){void 0===b&&(b=!0),void 0===d&&(d=!0),c=this.getLayer(c);for(var e=0,f=this.tiles.length;f>e;e++)-1===a.indexOf(e)&&this.setCollisionByIndex(e,b,c,!1);d&&this.calculateFaces(c)},setCollisionByIndex:function(a,b,c,d){if(void 0===b&&(b=!0),void 0===c&&(c=this.currentLayer),void 0===d&&(d=!0),b)this.collideIndexes.push(a);else{var e=this.collideIndexes.indexOf(a);e>-1&&this.collideIndexes.splice(e,1)}for(var f=0;ff;f++)for(var h=0,i=this.layers[a].width;i>h;h++){var j=this.layers[a].data[f][h];j&&(b=this.getTileAbove(a,h,f),c=this.getTileBelow(a,h,f),d=this.getTileLeft(a,h,f),e=this.getTileRight(a,h,f),j.collides&&(j.faceTop=!0,j.faceBottom=!0,j.faceLeft=!0,j.faceRight=!0),b&&b.collides&&(j.faceTop=!1),c&&c.collides&&(j.faceBottom=!1),d&&d.collides&&(j.faceLeft=!1),e&&e.collides&&(j.faceRight=!1))}},getTileAbove:function(a,b,c){return c>0?this.layers[a].data[c-1][b]:null},getTileBelow:function(a,b,c){return c0?this.layers[a].data[c][b-1]:null},getTileRight:function(a,b,c){return b-1},removeTile:function(a,b,d){if(d=this.getLayer(d),a>=0&&a=0&&b=0&&b=0&&d-1?this.layers[e].data[d][b].setCollision(!0,!0,!0,!0):this.layers[e].data[d][b].resetCollision(),this.layers[e].dirty=!0,this.calculateFaces(e),this.layers[e].data[d][b]}return null},putTileWorldXY:function(a,b,c,d,e,f){return f=this.getLayer(f),b=this.game.math.snapToFloor(b,d)/d,c=this.game.math.snapToFloor(c,e)/e,this.putTile(a,b,c,f)},searchTileIndex:function(a,b,c,d){void 0===b&&(b=0),void 0===c&&(c=!1),d=this.getLayer(d);var e=0;if(c){for(var f=this.layers[d].height-1;f>=0;f--)for(var g=this.layers[d].width-1;g>=0;g--)if(this.layers[d].data[f][g].index===a){if(e===b)return this.layers[d].data[f][g];e++}}else for(var f=0;f=0&&a=0&&ba&&(a=0),0>b&&(b=0),c>this.layers[e].width&&(c=this.layers[e].width),d>this.layers[e].height&&(d=this.layers[e].height),this._results.length=0,this._results.push({x:a,y:b,width:c,height:d,layer:e});for(var f=b;b+d>f;f++)for(var g=a;a+c>g;g++)this._results.push(this.layers[e].data[f][g]);return this._results},paste:function(a,b,c,d){if(void 0===a&&(a=0),void 0===b&&(b=0),d=this.getLayer(d),c&&!(c.length<2)){for(var e=a-c[1].x,f=b-c[1].y,g=1;g1?this.debugMap[this.layers[this.currentLayer].data[c][d]]?"background: "+this.debugMap[this.layers[this.currentLayer].data[c][d]]:"background: #ffffff":"background: rgb(0, 0, 0)");a+="\n"}b[0]=a,console.log.apply(console,b)},destroy:function(){this.removeAllLayers(),this.data=[],this.game=null}},c.Tilemap.prototype.constructor=c.Tilemap,Object.defineProperty(c.Tilemap.prototype,"layer",{get:function(){return this.layers[this.currentLayer]},set:function(a){a!==this.currentLayer&&this.setLayer(a)}}),c.TilemapLayer=function(a,b,d,e,f){e|=0,f|=0,c.Sprite.call(this,a,0,0),this.map=b,this.index=d,this.layer=b.layers[d],this.canvas=c.Canvas.create(e,f),this.context=this.canvas.getContext("2d"),this.setTexture(new PIXI.Texture(new PIXI.BaseTexture(this.canvas))),this.type=c.TILEMAPLAYER,this.physicsType=c.TILEMAPLAYER,this.renderSettings={enableScrollDelta:!1,overdrawRatio:.2,copyCanvas:null},this.debug=!1,this.exists=!0,this.debugSettings={missingImageFill:"rgb(255,255,255)",debuggedTileOverfill:"rgba(0,255,0,0.4)",forceFullRedraw:!0,debugAlpha:.5,facingEdgeStroke:"rgba(0,255,0,1)",collidingTileOverfill:"rgba(0,255,0,0.2)"},this.scrollFactorX=1,this.scrollFactorY=1,this.dirty=!0,this.rayStepRate=4,this._wrap=!1,this._mc={scrollX:0,scrollY:0,renderWidth:0,renderHeight:0,tileWidth:b.tileWidth,tileHeight:b.tileHeight,cw:b.tileWidth,ch:b.tileHeight,tilesets:[]},this._scrollX=0,this._scrollY=0,this._results=[],a.device.canvasBitBltShift||(this.renderSettings.copyCanvas=c.TilemapLayer.ensureSharedCopyCanvas()),this.fixedToCamera=!0},c.TilemapLayer.prototype=Object.create(c.Sprite.prototype),c.TilemapLayer.prototype.constructor=c.TilemapLayer,c.TilemapLayer.prototype.preUpdateCore=c.Component.Core.preUpdate,c.TilemapLayer.sharedCopyCanvas=null,c.TilemapLayer.ensureSharedCopyCanvas=function(){return this.sharedCopyCanvas||(this.sharedCopyCanvas=c.Canvas.create(2,2)),this.sharedCopyCanvas},c.TilemapLayer.prototype.preUpdate=function(){return this.preUpdateCore()},c.TilemapLayer.prototype.postUpdate=function(){c.Component.FixedToCamera.postUpdate.call(this);var a=this.game.camera;this.scrollX=a.x*this.scrollFactorX/this.scale.x,this.scrollY=a.y*this.scrollFactorY/this.scale.y,this.render()},c.TilemapLayer.prototype.resize=function(a,b){this.canvas.width=a,this.canvas.height=b,this.texture.frame.resize(a,b),this.texture.width=a,this.texture.height=b,this.texture.crop.width=a,this.texture.crop.height=b,this.texture.baseTexture.width=a,this.texture.baseTexture.height=b,this.texture.baseTexture.dirty(),this.texture.requiresUpdate=!0,this.texture._updateUvs(),this.dirty=!0},c.TilemapLayer.prototype.resizeWorld=function(){this.game.world.setBounds(0,0,this.layer.widthInPixels*this.scale.x,this.layer.heightInPixels*this.scale.y)},c.TilemapLayer.prototype._fixX=function(a){return 0>a&&(a=0),1===this.scrollFactorX?a:this._scrollX+(a-this._scrollX/this.scrollFactorX)},c.TilemapLayer.prototype._unfixX=function(a){return 1===this.scrollFactorX?a:this._scrollX/this.scrollFactorX+(a-this._scrollX)},c.TilemapLayer.prototype._fixY=function(a){return 0>a&&(a=0),1===this.scrollFactorY?a:this._scrollY+(a-this._scrollY/this.scrollFactorY)},c.TilemapLayer.prototype._unfixY=function(a){return 1===this.scrollFactorY?a:this._scrollY/this.scrollFactorY+(a-this._scrollY)},c.TilemapLayer.prototype.getTileX=function(a){return Math.floor(this._fixX(a)/this._mc.tileWidth)},c.TilemapLayer.prototype.getTileY=function(a){return Math.floor(this._fixY(a)/this._mc.tileHeight)},c.TilemapLayer.prototype.getTileXY=function(a,b,c){return c.x=this.getTileX(a),c.y=this.getTileY(b),c},c.TilemapLayer.prototype.getRayCastTiles=function(a,b,c,d){b||(b=this.rayStepRate),void 0===c&&(c=!1),void 0===d&&(d=!1);var e=this.getTiles(a.x,a.y,a.width,a.height,c,d);if(0===e.length)return[];for(var f=a.coordinatesOnLine(b),g=[],h=0;hl;l++)for(var m=h;h+j>m;m++){var n=this.layer.data[l];n&&n[m]&&(g||n[m].isInteresting(e,f))&&this._results.push(n[m])}return this._results.slice()},c.TilemapLayer.prototype.resolveTileset=function(a){var b=this._mc.tilesets;if(2e3>a)for(;b.lengthb&&(g=-b,i=0),0>c&&(h=-c,j=0);var k=this.renderSettings.copyCanvas;if(k){(k.width=c&&(c=Math.max(0,c),e=Math.min(h-1,e)),f>=d&&(d=Math.max(0,d),f=Math.min(i-1,f)));var n,o,p,q,r,s,t=c*j-a,u=d*k-b,v=(c+(1<<20)*h)%h,w=(d+(1<<20)*i)%i;for(g.fillStyle=this.tileColor,q=w,s=f-d,o=u;s>=0;q++,s--,o+=k){q>=i&&(q-=i);var x=this.layer.data[q];for(p=v,r=e-c,n=t;r>=0;p++,r--,n+=j){p>=h&&(p-=h);var y=x[p];if(y&&!(y.index<0)){var z=y.index,A=l[z];void 0===A&&(A=this.resolveTileset(z)),y.alpha===m||this.debug||(g.globalAlpha=y.alpha,m=y.alpha),A?y.rotation||y.flipped?(g.save(),g.translate(n+y.centerX,o+y.centerY),g.rotate(y.rotation),y.flipped&&g.scale(-1,1),A.draw(g,-y.centerX,-y.centerY,z),g.restore()):A.draw(g,n,o,z):this.debugSettings.missingImageFill&&(g.fillStyle=this.debugSettings.missingImageFill,g.fillRect(n,o,j,k)),y.debug&&this.debugSettings.debuggedTileOverfill&&(g.fillStyle=this.debugSettings.debuggedTileOverfill,g.fillRect(n,o,j,k))}}}},c.TilemapLayer.prototype.renderDeltaScroll=function(a,b){var c=this._mc.scrollX,d=this._mc.scrollY,e=this.canvas.width,f=this.canvas.height,g=this._mc.tileWidth,h=this._mc.tileHeight,i=0,j=-g,k=0,l=-h;if(0>a?(i=e+a,j=e-1):a>0&&(j=a),0>b?(k=f+b,l=f-1):b>0&&(l=b),this.shiftCanvas(this.context,a,b),i=Math.floor((i+c)/g),j=Math.floor((j+c)/g),k=Math.floor((k+d)/h),l=Math.floor((l+d)/h),j>=i){this.context.clearRect(i*g-c,0,(j-i+1)*g,f);var m=Math.floor((0+d)/h),n=Math.floor((f-1+d)/h); +this.renderRegion(c,d,i,m,j,n)}if(l>=k){this.context.clearRect(0,k*h-d,e,(l-k+1)*h);var o=Math.floor((0+c)/g),p=Math.floor((e-1+c)/g);this.renderRegion(c,d,o,k,p,l)}},c.TilemapLayer.prototype.renderFull=function(){var a=this._mc.scrollX,b=this._mc.scrollY,c=this.canvas.width,d=this.canvas.height,e=this._mc.tileWidth,f=this._mc.tileHeight,g=Math.floor(a/e),h=Math.floor((c-1+a)/e),i=Math.floor(b/f),j=Math.floor((d-1+b)/f);this.context.clearRect(0,0,c,d),this.renderRegion(a,b,g,i,h,j)},c.TilemapLayer.prototype.render=function(){var a=!1;if(this.visible){this.context.save(),(this.dirty||this.layer.dirty)&&(this.layer.dirty=!1,a=!0);var b=this.canvas.width,c=this.canvas.height,d=0|this._scrollX,e=0|this._scrollY,f=this._mc,g=f.scrollX-d,h=f.scrollY-e;if(a||0!==g||0!==h||f.renderWidth!==b||f.renderHeight!==c)return f.scrollX=d,f.scrollY=e,(f.renderWidth!==b||f.renderHeight!==c)&&(f.renderWidth=b,f.renderHeight=c),this.debug&&(this.context.globalAlpha=this.debugSettings.debugAlpha,this.debugSettings.forceFullRedraw&&(a=!0)),!a&&this.renderSettings.enableScrollDelta&&Math.abs(g)+Math.abs(h)=0;d++,f--,b+=o){d>=m&&(d-=m);var x=this.layer.data[d];for(c=v,e=q-p,a=t;e>=0;c++,e--,a+=n){c>=l&&(c-=l);var y=x[c];!y||y.index<0||!y.collides||(this.debugSettings.collidingTileOverfill&&(i.fillStyle=this.debugSettings.collidingTileOverfill,i.fillRect(a,b,this._mc.cw,this._mc.ch)),this.debugSettings.facingEdgeStroke&&(i.beginPath(),y.faceTop&&(i.moveTo(a,b),i.lineTo(a+this._mc.cw,b)),y.faceBottom&&(i.moveTo(a,b+this._mc.ch),i.lineTo(a+this._mc.cw,b+this._mc.ch)),y.faceLeft&&(i.moveTo(a,b),i.lineTo(a,b+this._mc.ch)),y.faceRight&&(i.moveTo(a+this._mc.cw,b),i.lineTo(a+this._mc.cw,b+this._mc.ch)),i.stroke()))}}},Object.defineProperty(c.TilemapLayer.prototype,"wrap",{get:function(){return this._wrap},set:function(a){this._wrap=a,this.dirty=!0}}),Object.defineProperty(c.TilemapLayer.prototype,"scrollX",{get:function(){return this._scrollX},set:function(a){this._scrollX=a}}),Object.defineProperty(c.TilemapLayer.prototype,"scrollY",{get:function(){return this._scrollY},set:function(a){this._scrollY=a}}),Object.defineProperty(c.TilemapLayer.prototype,"collisionWidth",{get:function(){return this._mc.cw},set:function(a){this._mc.cw=0|a,this.dirty=!0}}),Object.defineProperty(c.TilemapLayer.prototype,"collisionHeight",{get:function(){return this._mc.ch},set:function(a){this._mc.ch=0|a,this.dirty=!0}}),c.TilemapParser={parse:function(a,b,d,e,f,g){if(void 0===d&&(d=32),void 0===e&&(e=32),void 0===f&&(f=10),void 0===g&&(g=10),void 0===b)return this.getEmptyData();if(null===b)return this.getEmptyData(d,e,f,g);var h=a.cache.getTilemapData(b);if(h){if(h.format===c.Tilemap.CSV)return this.parseCSV(b,h.data,d,e);if(!h.format||h.format===c.Tilemap.TILED_JSON)return this.parseTiledJSON(h.data)}else console.warn("Phaser.TilemapParser.parse - No map data found for key "+b)},parseCSV:function(a,b,d,e){var f=this.getEmptyData();b=b.trim();for(var g=[],h=b.split("\n"),i=h.length,j=0,k=0;ko;o++){if(h=0,i=!1,k=a.layers[f].data[o],k>536870912)switch(j=0,k>2147483648&&(k-=2147483648,j+=4),k>1073741824&&(k-=1073741824,j+=2),k>536870912&&(k-=536870912,j+=1),j){case 5:h=Math.PI/2;break;case 6:h=Math.PI;break;case 3:h=3*Math.PI/2;break;case 4:h=0,i=!0;break;case 7:h=Math.PI/2,i=!0;break;case 2:h=Math.PI,i=!0;break;case 1:h=3*Math.PI/2,i=!0}k>0?(m.push(new c.Tile(g,k,l,n.length,a.tilewidth,a.tileheight)),m[m.length-1].rotation=h,m[m.length-1].flipped=i):m.push(new c.Tile(g,-1,l,n.length,a.tilewidth,a.tileheight)),l++,l===a.layers[f].width&&(n.push(m),l=0,m=[])}g.data=n,e.push(g)}d.layers=e;for(var q=[],f=0;fz;z++)if(a.layers[f].objects[z].gid){var A={gid:a.layers[f].objects[z].gid,name:a.layers[f].objects[z].name,type:a.layers[f].objects[z].hasOwnProperty("type")?a.layers[f].objects[z].type:"",x:a.layers[f].objects[z].x,y:a.layers[f].objects[z].y,visible:a.layers[f].objects[z].visible,properties:a.layers[f].objects[z].properties};a.layers[f].objects[z].rotation&&(A.rotation=a.layers[f].objects[z].rotation),x[a.layers[f].name].push(A)}else if(a.layers[f].objects[z].polyline){var A={name:a.layers[f].objects[z].name,type:a.layers[f].objects[z].type,x:a.layers[f].objects[z].x,y:a.layers[f].objects[z].y,width:a.layers[f].objects[z].width,height:a.layers[f].objects[z].height,visible:a.layers[f].objects[z].visible,properties:a.layers[f].objects[z].properties};a.layers[f].objects[z].rotation&&(A.rotation=a.layers[f].objects[z].rotation),A.polyline=[];for(var B=0;B=c)&&(c=32),(void 0===d||0>=d)&&(d=32),void 0===e&&(e=0),void 0===f&&(f=0),this.name=a,this.firstgid=0|b,this.tileWidth=0|c,this.tileHeight=0|d,this.tileMargin=0|e,this.tileSpacing=0|f,this.properties=g||{},this.image=null,this.rows=0,this.columns=0,this.total=0,this.drawCoords=[]},c.Tileset.prototype={draw:function(a,b,c,d){var e=d-this.firstgid<<1;e>=0&&e+1=this.firstgid&&a=this._timer)if(this._timer=this.game.time.time+this.frequency*this.game.time.slowMotion,0!==this._flowTotal)if(this._flowQuantity>0){for(var a=0;a=this._flowTotal)){this.on=!1;break}}else this.emitParticle()&&(this._counter++,-1!==this._flowTotal&&this._counter>=this._flowTotal&&(this.on=!1));else this.emitParticle()&&(this._counter++,this._quantity>0&&this._counter>=this._quantity&&(this.on=!1));for(var a=this.children.length;a--;)this.children[a].exists&&this.children[a].update()},c.Particles.Arcade.Emitter.prototype.makeParticles=function(a,b,c,d,e){void 0===b&&(b=0),void 0===c&&(c=this.maxParticles),void 0===d&&(d=!1),void 0===e&&(e=!1);var f,g=0,h=a,i=b;for(this._frames=b,c>this.maxParticles&&(this.maxParticles=c);c>g;)Array.isArray(a)&&(h=this.game.rnd.pick(a)),Array.isArray(b)&&(i=this.game.rnd.pick(b)),f=new this.particleClass(this.game,0,0,h,i),this.game.physics.arcade.enable(f,!1),d?(f.body.checkCollision.any=!0,f.body.checkCollision.none=!1):f.body.checkCollision.none=!0,f.body.collideWorldBounds=e,f.body.skipQuadTree=!0,f.exists=!1,f.visible=!1,f.anchor.copyFrom(this.particleAnchor),this.add(f),g++;return this},c.Particles.Arcade.Emitter.prototype.kill=function(){this.on=!1,this.alive=!1,this.exists=!1},c.Particles.Arcade.Emitter.prototype.revive=function(){this.alive=!0,this.exists=!0},c.Particles.Arcade.Emitter.prototype.explode=function(a,b){this._flowTotal=0,this.start(!0,a,0,b,!1)},c.Particles.Arcade.Emitter.prototype.flow=function(a,b,c,d,e){(void 0===c||0===c)&&(c=1),void 0===d&&(d=-1),void 0===e&&(e=!0),c>this.maxParticles&&(c=this.maxParticles),this._counter=0,this._flowQuantity=c,this._flowTotal=d,e?(this.start(!0,a,b,c),this._counter+=c,this.on=!0,this._timer=this.game.time.time+b*this.game.time.slowMotion):this.start(!1,a,b,c)},c.Particles.Arcade.Emitter.prototype.start=function(a,b,c,d,e){if(void 0===a&&(a=!0),void 0===b&&(b=0),(void 0===c||null===c)&&(c=250),void 0===d&&(d=0),void 0===e&&(e=!1),d>this.maxParticles&&(d=this.maxParticles),this.revive(),this.visible=!0,this.lifespan=b,this.frequency=c,a||e)for(var f=0;d>f;f++)this.emitParticle();else this.on=!0,this._quantity+=d,this._counter=0,this._timer=this.game.time.time+c*this.game.time.slowMotion},c.Particles.Arcade.Emitter.prototype.emitParticle=function(){var a=this.getFirstExists(!1);return null===a?!1:(this.width>1||this.height>1?a.reset(this.game.rnd.integerInRange(this.left,this.right),this.game.rnd.integerInRange(this.top,this.bottom)):a.reset(this.emitX,this.emitY),a.angle=0,a.lifespan=this.lifespan,this.particleBringToTop?this.bringToTop(a):this.particleSendToBack&&this.sendToBack(a),this.autoScale?a.setScaleData(this.scaleData):1!==this.minParticleScale||1!==this.maxParticleScale?a.scale.set(this.game.rnd.realInRange(this.minParticleScale,this.maxParticleScale)):(this._minParticleScale.x!==this._maxParticleScale.x||this._minParticleScale.y!==this._maxParticleScale.y)&&a.scale.set(this.game.rnd.realInRange(this._minParticleScale.x,this._maxParticleScale.x),this.game.rnd.realInRange(this._minParticleScale.y,this._maxParticleScale.y)),a.frame=Array.isArray("object"===this._frames)?this.game.rnd.pick(this._frames):this._frames,this.autoAlpha?a.setAlphaData(this.alphaData):a.alpha=this.game.rnd.realInRange(this.minParticleAlpha,this.maxParticleAlpha),a.blendMode=this.blendMode,a.body.updateBounds(),a.body.bounce.setTo(this.bounce.x,this.bounce.y),a.body.velocity.x=this.game.rnd.between(this.minParticleSpeed.x,this.maxParticleSpeed.x),a.body.velocity.y=this.game.rnd.between(this.minParticleSpeed.y,this.maxParticleSpeed.y),a.body.angularVelocity=this.game.rnd.between(this.minRotation,this.maxRotation),a.body.gravity.y=this.gravity,a.body.drag.x=this.particleDrag.x,a.body.drag.y=this.particleDrag.y,a.body.angularDrag=this.angularDrag,a.onEmit(),!0)},c.Particles.Arcade.Emitter.prototype.destroy=function(){this.game.particles.remove(this),c.Group.prototype.destroy.call(this,!0,!1)},c.Particles.Arcade.Emitter.prototype.setSize=function(a,b){this.area.width=a,this.area.height=b},c.Particles.Arcade.Emitter.prototype.setXSpeed=function(a,b){a=a||0,b=b||0,this.minParticleSpeed.x=a,this.maxParticleSpeed.x=b},c.Particles.Arcade.Emitter.prototype.setYSpeed=function(a,b){a=a||0,b=b||0,this.minParticleSpeed.y=a,this.maxParticleSpeed.y=b},c.Particles.Arcade.Emitter.prototype.setRotation=function(a,b){a=a||0,b=b||0,this.minRotation=a,this.maxRotation=b},c.Particles.Arcade.Emitter.prototype.setAlpha=function(a,b,d,e,f){if(void 0===a&&(a=1),void 0===b&&(b=1),void 0===d&&(d=0),void 0===e&&(e=c.Easing.Linear.None),void 0===f&&(f=!1),this.minParticleAlpha=a,this.maxParticleAlpha=b,this.autoAlpha=!1,d>0&&a!==b){var g={v:a},h=this.game.make.tween(g).to({v:b},d,e);h.yoyo(f),this.alphaData=h.generateData(60),this.alphaData.reverse(),this.autoAlpha=!0}},c.Particles.Arcade.Emitter.prototype.setScale=function(a,b,d,e,f,g,h){if(void 0===a&&(a=1),void 0===b&&(b=1),void 0===d&&(d=1),void 0===e&&(e=1),void 0===f&&(f=0),void 0===g&&(g=c.Easing.Linear.None),void 0===h&&(h=!1),this.minParticleScale=1,this.maxParticleScale=1,this._minParticleScale.set(a,d),this._maxParticleScale.set(b,e),this.autoScale=!1,f>0&&(a!==b||d!==e)){var i={x:a,y:d},j=this.game.make.tween(i).to({x:b,y:e},f,g);j.yoyo(h),this.scaleData=j.generateData(60),this.scaleData.reverse(),this.autoScale=!0}},c.Particles.Arcade.Emitter.prototype.at=function(a){a.center?(this.emitX=a.center.x,this.emitY=a.center.y):(this.emitX=a.world.x+a.anchor.x*a.width,this.emitY=a.world.y+a.anchor.y*a.height)},Object.defineProperty(c.Particles.Arcade.Emitter.prototype,"width",{get:function(){return this.area.width},set:function(a){this.area.width=a}}),Object.defineProperty(c.Particles.Arcade.Emitter.prototype,"height",{get:function(){return this.area.height},set:function(a){this.area.height=a}}),Object.defineProperty(c.Particles.Arcade.Emitter.prototype,"x",{get:function(){return this.emitX},set:function(a){this.emitX=a}}),Object.defineProperty(c.Particles.Arcade.Emitter.prototype,"y",{get:function(){return this.emitY},set:function(a){this.emitY=a}}),Object.defineProperty(c.Particles.Arcade.Emitter.prototype,"left",{get:function(){return Math.floor(this.x-this.area.width/2)}}),Object.defineProperty(c.Particles.Arcade.Emitter.prototype,"right",{get:function(){return Math.floor(this.x+this.area.width/2)}}),Object.defineProperty(c.Particles.Arcade.Emitter.prototype,"top",{get:function(){return Math.floor(this.y-this.area.height/2)}}),Object.defineProperty(c.Particles.Arcade.Emitter.prototype,"bottom",{get:function(){return Math.floor(this.y+this.area.height/2)}}),c.Video=function(a,b,d){if(void 0===b&&(b=null),void 0===d&&(d=null),this.game=a,this.key=b,this.width=0,this.height=0,this.type=c.VIDEO,this.disableTextureUpload=!1,this.touchLocked=!1,this.onPlay=new c.Signal,this.onChangeSource=new c.Signal,this.onComplete=new c.Signal,this.onAccess=new c.Signal,this.onError=new c.Signal,this.onTimeout=new c.Signal,this.timeout=15e3,this._timeOutID=null,this.video=null,this.videoStream=null,this.isStreaming=!1,this.retryLimit=20,this.retry=0,this.retryInterval=500,this._retryID=null,this._codeMuted=!1,this._muted=!1,this._codePaused=!1,this._paused=!1,this._pending=!1,this._autoplay=!1,b&&this.game.cache.checkVideoKey(b)){var e=this.game.cache.getVideo(b);e.isBlob?this.createVideoFromBlob(e.data):this.video=e.data,this.width=this.video.videoWidth,this.height=this.video.videoHeight}else d&&this.createVideoFromURL(d,!1);this.video&&!d?(this.baseTexture=new PIXI.BaseTexture(this.video),this.baseTexture.forceLoaded(this.width,this.height)):(this.baseTexture=new PIXI.BaseTexture(PIXI.TextureCache.__default.baseTexture.source),this.baseTexture.forceLoaded(this.width,this.height)),this.texture=new PIXI.Texture(this.baseTexture),this.textureFrame=new c.Frame(0,0,0,this.width,this.height,"video"),this.texture.setFrame(this.textureFrame),this.texture.valid=!1,null!==b&&this.video&&(this.texture.valid=this.video.canplay),this.snapshot=null,c.BitmapData&&(this.snapshot=new c.BitmapData(this.game,"",this.width,this.height)),!this.game.device.cocoonJS&&(this.game.device.iOS||this.game.device.android)||window.PhaserGlobal&&window.PhaserGlobal.fakeiOSTouchLock?this.setTouchLock():e&&(e.locked=!1)},c.Video.prototype={connectToMediaStream:function(a,b){return a&&b&&(this.video=a,this.videoStream=b,this.isStreaming=!0,this.baseTexture.source=this.video,this.updateTexture(null,this.video.videoWidth,this.video.videoHeight),this.onAccess.dispatch(this)),this},startMediaStream:function(a,b,c){if(void 0===a&&(a=!1),void 0===b&&(b=null),void 0===c&&(c=null),!this.game.device.getUserMedia)return this.onError.dispatch(this,"No getUserMedia"),!1;null!==this.videoStream&&this.videoStream.stop(),this.removeVideoElement(),this.video=document.createElement("video"),this.video.setAttribute("autoplay","autoplay"),null!==b&&(this.video.width=b),null!==c&&(this.video.height=c),this._timeOutID=window.setTimeout(this.getUserMediaTimeout.bind(this),this.timeout);try{navigator.getUserMedia({audio:a,video:!0},this.getUserMediaSuccess.bind(this),this.getUserMediaError.bind(this))}catch(d){this.getUserMediaError(d)}return this},getUserMediaTimeout:function(){clearTimeout(this._timeOutID),this.onTimeout.dispatch(this)},getUserMediaError:function(a){clearTimeout(this._timeOutID),this.onError.dispatch(this,a)},getUserMediaSuccess:function(a){clearTimeout(this._timeOutID),this.videoStream=a,void 0!==this.video.mozSrcObject?this.video.mozSrcObject=a:this.video.src=window.URL&&window.URL.createObjectURL(a)||a;var b=this;this.video.onloadeddata=function(){function a(){if(c>0)if(b.video.videoWidth>0){var d=b.video.videoWidth,e=b.video.videoHeight;isNaN(b.video.videoHeight)&&(e=d/(4/3)),b.video.play(),b.isStreaming=!0,b.baseTexture.source=b.video,b.updateTexture(null,d,e),b.onAccess.dispatch(b)}else window.setTimeout(a,500);else console.warn("Unable to connect to video stream. Webcam error?");c--}var c=10;a()}},createVideoFromBlob:function(a){var b=this;return this.video=document.createElement("video"),this.video.controls=!1,this.video.setAttribute("autoplay","autoplay"),this.video.addEventListener("loadeddata",function(a){b.updateTexture(a)},!0),this.video.src=window.URL.createObjectURL(a),this.video.canplay=!0,this},createVideoFromURL:function(a,b){return void 0===b&&(b=!1),this.texture&&(this.texture.valid=!1),this.video=document.createElement("video"),this.video.controls=!1,b&&this.video.setAttribute("autoplay","autoplay"),this.video.src=a,this.video.canplay=!0,this.video.load(),this.retry=this.retryLimit,this._retryID=window.setTimeout(this.checkVideoProgress.bind(this),this.retryInterval),this.key=a,this},updateTexture:function(a,b,c){var d=!1;(void 0===b||null===b)&&(b=this.video.videoWidth,d=!0),(void 0===c||null===c)&&(c=this.video.videoHeight),this.width=b,this.height=c,this.baseTexture.source!==this.video&&(this.baseTexture.source=this.video),this.baseTexture.forceLoaded(b,c),this.texture.frame.resize(b,c),this.texture.width=b,this.texture.height=c,this.texture.valid=!0,this.snapshot&&this.snapshot.resize(b,c),d&&null!==this.key&&(this.onChangeSource.dispatch(this,b,c),this._autoplay&&(this.video.play(),this.onPlay.dispatch(this,this.loop,this.playbackRate)))},complete:function(){this.onComplete.dispatch(this)},play:function(a,b){return void 0===a&&(a=!1),void 0===b&&(b=1),this.game.sound.onMute&&(this.game.sound.onMute.add(this.setMute,this),this.game.sound.onUnMute.add(this.unsetMute,this),this.game.sound.mute&&this.setMute()),this.game.onPause.add(this.setPause,this),this.game.onResume.add(this.setResume,this),this.video.addEventListener("ended",this.complete.bind(this),!0),this.video.loop=a?"loop":"",this.video.playbackRate=b,this.touchLocked?this._pending=!0:(this._pending=!1,null!==this.key&&(4!==this.video.readyState?(this.retry=this.retryLimit,this._retryID=window.setTimeout(this.checkVideoProgress.bind(this),this.retryInterval)):this.video.addEventListener("playing",this.playHandler.bind(this),!0)),this.video.play(),this.onPlay.dispatch(this,a,b)),this},playHandler:function(){this.video.removeEventListener("playing",this.playHandler.bind(this)),this.updateTexture()},stop:function(){return this.game.sound.onMute&&(this.game.sound.onMute.remove(this.setMute,this),this.game.sound.onUnMute.remove(this.unsetMute,this)),this.game.onPause.remove(this.setPause,this),this.game.onResume.remove(this.setResume,this),this.isStreaming?(this.video.mozSrcObject?(this.video.mozSrcObject.stop(),this.video.src=null):(this.video.src="",this.videoStream.stop()),this.videoStream=null,this.isStreaming=!1):(this.video.removeEventListener("ended",this.complete.bind(this)),this.touchLocked?this._pending=!1:this.video.pause()),this},add:function(a){if(Array.isArray(a))for(var b=0;b0?this._retryID=window.setTimeout(this.checkVideoProgress.bind(this),this.retryInterval):console.warn("Phaser.Video: Unable to start downloading video in time",this.isStreaming))},setTouchLock:function(){this.game.input.touch.addTouchLockCallback(this.unlock,this),this.touchLocked=!0},unlock:function(){if(this.touchLocked=!1,this.video.play(),this.onPlay.dispatch(this,this.loop,this.playbackRate),this.key){var a=this.game.cache.getVideo(this.key);a&&!a.isBlob&&(a.locked=!1)}return!0},grab:function(a,b,c){return void 0===a&&(a=!1),void 0===b&&(b=1),void 0===c&&(c=null),null===this.snapshot?void console.warn("Video.grab cannot run because Phaser.BitmapData is unavailable"):(a&&this.snapshot.cls(),this.snapshot.copy(this.video,0,0,this.width,this.height,0,0,this.width,this.height,0,0,0,1,1,b,c),this.snapshot)},removeVideoElement:function(){if(this.video){for(this.video.parentNode&&this.video.parentNode.removeChild(this.video);this.video.hasChildNodes();)this.video.removeChild(this.video.firstChild);this.video.removeAttribute("autoplay"),this.video.removeAttribute("src"),this.video=null}},destroy:function(){this.stop(),this.removeVideoElement(),this.touchLocked&&this.game.input.touch.removeTouchLockCallback(this.unlock,this),this._retryID&&window.clearTimeout(this._retryID)}},Object.defineProperty(c.Video.prototype,"currentTime",{get:function(){return this.video?this.video.currentTime:0},set:function(a){this.video.currentTime=a}}),Object.defineProperty(c.Video.prototype,"duration",{get:function(){return this.video?this.video.duration:0}}),Object.defineProperty(c.Video.prototype,"progress",{get:function(){return this.video?this.video.currentTime/this.video.duration:0}}),Object.defineProperty(c.Video.prototype,"mute",{get:function(){return this._muted},set:function(a){if(a=a||null){if(this._muted)return;this._codeMuted=!0,this.setMute()}else{if(!this._muted)return;this._codeMuted=!1,this.unsetMute()}}}),Object.defineProperty(c.Video.prototype,"paused",{get:function(){return this._paused},set:function(a){if(a=a||null,!this.touchLocked)if(a){if(this._paused)return;this._codePaused=!0,this.setPause()}else{if(!this._paused)return;this._codePaused=!1,this.setResume()}}}),Object.defineProperty(c.Video.prototype,"volume",{get:function(){return this.video?this.video.volume:1},set:function(a){0>a?a=0:a>1&&(a=1),this.video&&(this.video.volume=a)}}),Object.defineProperty(c.Video.prototype,"playbackRate",{get:function(){return this.video?this.video.playbackRate:1},set:function(a){this.video&&(this.video.playbackRate=a)}}),Object.defineProperty(c.Video.prototype,"loop",{get:function(){return this.video?this.video.loop:!1},set:function(a){a&&this.video?this.video.loop="loop":this.video&&(this.video.loop="")}}),Object.defineProperty(c.Video.prototype,"playing",{get:function(){return!(this.video.paused&&this.video.ended)}}),c.Video.prototype.constructor=c.Video,void 0===PIXI.blendModes&&(PIXI.blendModes=c.blendModes),void 0===PIXI.scaleModes&&(PIXI.scaleModes=c.scaleModes),void 0===PIXI.Texture.emptyTexture&&(PIXI.Texture.emptyTexture=new PIXI.Texture(new PIXI.BaseTexture)),void 0===PIXI.DisplayObject._tempMatrix&&(PIXI.DisplayObject._tempMatrix=new PIXI.Matrix),void 0===PIXI.RenderTexture.tempMatrix&&(PIXI.RenderTexture.tempMatrix=new PIXI.Matrix),void 0===PIXI.Graphics.POLY&&(PIXI.Graphics.POLY=c.POLYGON,PIXI.Graphics.RECT=c.RECTANGLE,PIXI.Graphics.CIRC=c.CIRCLE,PIXI.Graphics.ELIP=c.ELLIPSE,PIXI.Graphics.RREC=c.ROUNDEDRECTANGLE),PIXI.TextureSilentFail=!0,"undefined"!=typeof exports?("undefined"!=typeof module&&module.exports&&(exports=module.exports=c),exports.Phaser=c):"undefined"!=typeof define&&define.amd?define("Phaser",function(){return b.Phaser=c}()):b.Phaser=c}.call(this); //# sourceMappingURL=phaser.map \ No newline at end of file From 20ce29fea13a33f5de427ab0e9c8681c16c76b0a Mon Sep 17 00:00:00 2001 From: Richard Davey Date: Wed, 22 Jul 2015 21:06:11 +0100 Subject: [PATCH 10/17] Phaser 2.4.1 build files. --- package.json | 28 ++++++++++++++-------------- 1 file changed, 14 insertions(+), 14 deletions(-) diff --git a/package.json b/package.json index 7ce20b43d..179246b4f 100644 --- a/package.json +++ b/package.json @@ -15,36 +15,36 @@ "url": "https://photonstorm@github.com/photonstorm/phaser.git" }, "scripts": { - "test": "NODE_ENV=test grunt jshint", - "prepublish": "grunt build" + "prepublish": "grunt build", + "test": "NODE_ENV=test grunt jshint" }, "keywords": [ - "HTML5", - "game", - "canvas", "2d", + "HTML5", "WebGL", - "web audio", + "canvas", + "game", + "javascript", "physics", "tweens", - "javascript", - "typescript" + "typescript", + "web audio" ], "devDependencies": { - "grunt": "^0.4.1", + "grunt": "^0.4.5", "grunt-contrib-clean": "^0.5.0", "grunt-contrib-concat": "^0.4.0", "grunt-contrib-connect": "^0.7.1", "grunt-contrib-copy": "^0.5.0", "grunt-contrib-jshint": "^0.9.2", "grunt-contrib-uglify": "^0.4.0", + "grunt-git": "^0.3.3", + "grunt-jsdoc": "~0.6.2-beta", "grunt-notify": "^0.3.0", "grunt-text-replace": "^0.3.11", - "load-grunt-config": "~0.7.2", - "yuidocjs": "^0.3.50", - "grunt-jsdoc": "~0.6.2-beta", "jsdoc": "~3.3.0-alpha10", - "grunt-git": "^0.3.3", - "typescript": "^1.4.1" + "load-grunt-config": "~0.7.2", + "typescript": "^1.4.1", + "yuidocjs": "^0.3.50" } } From aeda04414379a3bd8845c58df8af19500cc53495 Mon Sep 17 00:00:00 2001 From: Richard Davey Date: Thu, 23 Jul 2015 20:54:59 +0100 Subject: [PATCH 11/17] Safari on OSX wouldn't recognise button presses on trackpads (thanks JakeCake) --- README.md | 3 +- build/config.php | 73 ++++++++++++++++++++------- src/input/Pointer.js | 116 ++++++++++++++++++++++++------------------- 3 files changed, 120 insertions(+), 72 deletions(-) diff --git a/README.md b/README.md index 8c7bcf9a5..06a97a86c 100644 --- a/README.md +++ b/README.md @@ -39,7 +39,7 @@ Thousands of developers worldwide use it. From indies and multi-national digital
-> 23rd July 2015 +> 24th July 2015 Phaser 2.4 is another huge update. We had to bump the version number from 2.3 directly to 2.4 because of some API adjustments, all of which are fully detailed in the [Change Log](#change-log). While it's true we could have released it over a few smaller point releases, that just isn't how the cookie crumbled this time. _Be sure to pay attention to the previous deprecated API calls that have been removed in 2.4._ @@ -258,6 +258,7 @@ It also modifies the Grunt build scripts so that all third party libs (such as C ### Bug Fixes * Fixed Cache.getKeys to use the `_cacheMap` (thanks @jamesgroat #1929) +* Safari on OSX wouldn't recognise button presses on trackpads (thanks JakeCake) ## Version 2.4.0 - "Katar" - 22nd July 2015 diff --git a/build/config.php b/build/config.php index 7d735c8e6..54a384e08 100644 --- a/build/config.php +++ b/build/config.php @@ -23,24 +23,28 @@ 'box2d' => false, 'creature' => false, 'video' => true, + 'rope' => true, + 'tilesprite' => true ); } + if ($modules['creature']) + { + echo " "; + echo " "; + } + if ($modules['p2']) { echo " "; } - if ($modules['creature']) - { - echo " "; - } - if ($modules['box2d'] && isset($box2dpath)) { echo " "; } + // PIXI Intro echo << @@ -78,9 +82,22 @@ - - - + +EOL; + + if ($modules['rope']) + { + echo " "; + echo " "; + } + + if ($modules['tilesprite']) + { + echo " "; + } + + // PIXI Outro + Phaser Global + echo << @@ -178,8 +195,6 @@ EOL; - - @@ -187,6 +202,33 @@ EOL; EOL; + if ($modules['rope']) + { + echo << + + +EOL; + } + + if ($modules['tilesprite']) + { + echo << + + +EOL; + } + + if ($modules['creature']) + { + echo << + + +EOL; + } + if ($modules['bitmapdata']) { echo << - - - -EOL; - } if ($modules['sound']) { @@ -449,6 +482,8 @@ EOL; echo << + + EOL; if (isset($custom)) diff --git a/src/input/Pointer.js b/src/input/Pointer.js index 2aa07fee1..bf7e90d4c 100644 --- a/src/input/Pointer.js +++ b/src/input/Pointer.js @@ -435,65 +435,77 @@ Phaser.Pointer.prototype = { // If you find one, please tell us! var buttons = event.buttons; - if (buttons === undefined) + if (buttons !== undefined) { - return; - } + // Note: These are bitwise checks, not booleans - // Note: These are bitwise checks, not booleans + if (Phaser.Pointer.LEFT_BUTTON & buttons) + { + this.leftButton.start(event); + } + else + { + this.leftButton.stop(event); + } - if (Phaser.Pointer.LEFT_BUTTON & buttons) - { - this.leftButton.start(event); + if (Phaser.Pointer.RIGHT_BUTTON & buttons) + { + this.rightButton.start(event); + } + else + { + this.rightButton.stop(event); + } + + if (Phaser.Pointer.MIDDLE_BUTTON & buttons) + { + this.middleButton.start(event); + } + else + { + this.middleButton.stop(event); + } + + if (Phaser.Pointer.BACK_BUTTON & buttons) + { + this.backButton.start(event); + } + else + { + this.backButton.stop(event); + } + + if (Phaser.Pointer.FORWARD_BUTTON & buttons) + { + this.forwardButton.start(event); + } + else + { + this.forwardButton.stop(event); + } + + if (Phaser.Pointer.ERASER_BUTTON & buttons) + { + this.eraserButton.start(event); + } + else + { + this.eraserButton.stop(event); + } } else { - this.leftButton.stop(event); - } + // No buttons property (like Safari on OSX when using a trackpad) - if (Phaser.Pointer.RIGHT_BUTTON & buttons) - { - this.rightButton.start(event); - } - else - { - this.rightButton.stop(event); - } - - if (Phaser.Pointer.MIDDLE_BUTTON & buttons) - { - this.middleButton.start(event); - } - else - { - this.middleButton.stop(event); - } - - if (Phaser.Pointer.BACK_BUTTON & buttons) - { - this.backButton.start(event); - } - else - { - this.backButton.stop(event); - } - - if (Phaser.Pointer.FORWARD_BUTTON & buttons) - { - this.forwardButton.start(event); - } - else - { - this.forwardButton.stop(event); - } - - if (Phaser.Pointer.ERASER_BUTTON & buttons) - { - this.eraserButton.start(event); - } - else - { - this.eraserButton.stop(event); + if (event.type === 'mousedown') + { + this.leftButton.start(event); + } + else + { + this.leftButton.stop(event); + this.rightButton.stop(event); + } } // On OS X (and other devices with trackpads) you have to press CTRL + the pad From 478d005f0bfc8412b5ebea977f0a2cc615400ec5 Mon Sep 17 00:00:00 2001 From: Richard Davey Date: Fri, 24 Jul 2015 09:43:44 +0100 Subject: [PATCH 12/17] Testing new UMD wrapper. --- src/Intro.js | 18 +++++++++++++++--- src/Outro.js | 15 ++++----------- 2 files changed, 19 insertions(+), 14 deletions(-) diff --git a/src/Intro.js b/src/Intro.js index 2294a0a67..2480cf042 100644 --- a/src/Intro.js +++ b/src/Intro.js @@ -4,6 +4,18 @@ * @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License} */ -(function(){ - - var root = this; +(function (root, factory) { + if (typeof define === 'function' && define.amd) { + // AMD. Register as an anonymous module. + define(['exports', 'Phaser'], function (exports, Phaser) { + factory((root.commonJsStrictGlobal = exports), Phaser); + }); + } else if (typeof exports === 'object' && typeof exports.nodeName !== 'string') { + // CommonJS + factory(exports, require('Phaser')); + } else { + // Browser globals + factory((root.commonJsStrictGlobal = {}), root.Phaser); + } +}(this, function (exports, Phaser) { + \ No newline at end of file diff --git a/src/Outro.js b/src/Outro.js index 3c812594a..fd59944a1 100644 --- a/src/Outro.js +++ b/src/Outro.js @@ -4,17 +4,10 @@ * @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License} */ - if (typeof exports !== 'undefined') { - if (typeof module !== 'undefined' && module.exports) { - exports = module.exports = Phaser; - } - exports.Phaser = Phaser; - } else if (typeof define !== 'undefined' && define.amd) { - define('Phaser', (function() { return root.Phaser = Phaser; }) ()); - } else { - root.Phaser = Phaser; - } -}).call(this); + // attach properties to the exports object to define + // the exported module properties. + exports.action = function () {}; +})); /* * "What matters in this life is not what we do but what we do for others, the legacy we leave and the imprint we make." - Eric Meyer From 328fd322902f2d73a6400c5f3e63e14610cc9fd7 Mon Sep 17 00:00:00 2001 From: photonstorm Date: Fri, 24 Jul 2015 13:21:18 +0100 Subject: [PATCH 13/17] Cache.removeImage now calls destroy on the image BaseTexture, removing it from the PIXI global caches without throwing a warning. --- src/loader/Cache.js | 16 ++++++++++------ src/pixi/textures/BaseTexture.js | 3 +++ 2 files changed, 13 insertions(+), 6 deletions(-) diff --git a/src/loader/Cache.js b/src/loader/Cache.js index 55cef1cfc..5401dd0eb 100644 --- a/src/loader/Cache.js +++ b/src/loader/Cache.js @@ -1667,26 +1667,30 @@ Phaser.Cache.prototype = { }, /** - * Removes an image from the cache and optionally from the Pixi.BaseTextureCache as well. + * Removes an image from the cache. + * + * You can optionally elect to destroy it as well. This calls BaseTexture.destroy on it. * - * Note that this only removes it from the Phaser.Cache. If you still have references to the data elsewhere + * Note that this only removes it from the Phaser and PIXI Caches. If you still have references to the data elsewhere * then it will persist in memory. * * @method Phaser.Cache#removeImage * @param {string} key - Key of the asset you want to remove. - * @param {boolean} [removeFromPixi=true] - Should this image also be removed from the Pixi BaseTextureCache? + * @param {boolean} [removeFromPixi=true] - Should this image also be destroyed? Removing it from the PIXI.BaseTextureCache? */ removeImage: function (key, removeFromPixi) { if (removeFromPixi === undefined) { removeFromPixi = true; } - delete this._cache.image[key]; + var img = this.getImage(key, true); - if (removeFromPixi) + if (removeFromPixi && img.base) { - PIXI.BaseTextureCache[key].destroy(); + img.base.destroy(); } + delete this._cache.image[key]; + }, /** diff --git a/src/pixi/textures/BaseTexture.js b/src/pixi/textures/BaseTexture.js index 3bfafc81a..e8b442e23 100644 --- a/src/pixi/textures/BaseTexture.js +++ b/src/pixi/textures/BaseTexture.js @@ -164,13 +164,16 @@ PIXI.BaseTexture.prototype.destroy = function() { delete PIXI.BaseTextureCache[this.imageUrl]; delete PIXI.TextureCache[this.imageUrl]; + this.imageUrl = null; + if (!navigator.isCocoonJS) this.source.src = ''; } else if (this.source && this.source._pixiId) { delete PIXI.BaseTextureCache[this.source._pixiId]; } + this.source = null; this.unloadFromGPU(); From 444e2cffe5d2bab4e1d7712e508508a437a72e59 Mon Sep 17 00:00:00 2001 From: photonstorm Date: Fri, 24 Jul 2015 13:21:33 +0100 Subject: [PATCH 14/17] More tests with the UMD wrapper. --- Gruntfile.js | 4 ++-- README.md | 1 + src/Intro.js | 18 +++--------------- src/Outro.js | 17 +++++++++++++---- 4 files changed, 19 insertions(+), 21 deletions(-) diff --git a/Gruntfile.js b/Gruntfile.js index f56e8874f..31ac16b2e 100644 --- a/Gruntfile.js +++ b/Gruntfile.js @@ -322,8 +322,8 @@ module.exports = function (grunt) { grunt.registerTask('test', 'Phaser Test Build (all libs)', function() { - grunt.option('exclude', 'ninja'); - grunt.option('filename', 'phaser'); + grunt.option('exclude', 'ninja,creature'); + grunt.option('filename', 'phaser-test'); grunt.option('sourcemap', false); grunt.option('copy', false); grunt.option('uglify', false); diff --git a/README.md b/README.md index 06a97a86c..afa3b0382 100644 --- a/README.md +++ b/README.md @@ -259,6 +259,7 @@ It also modifies the Grunt build scripts so that all third party libs (such as C * Fixed Cache.getKeys to use the `_cacheMap` (thanks @jamesgroat #1929) * Safari on OSX wouldn't recognise button presses on trackpads (thanks JakeCake) +* Cache.removeImage now calls destroy on the image BaseTexture, removing it from the PIXI global caches without throwing a warning. ## Version 2.4.0 - "Katar" - 22nd July 2015 diff --git a/src/Intro.js b/src/Intro.js index 2480cf042..2294a0a67 100644 --- a/src/Intro.js +++ b/src/Intro.js @@ -4,18 +4,6 @@ * @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License} */ -(function (root, factory) { - if (typeof define === 'function' && define.amd) { - // AMD. Register as an anonymous module. - define(['exports', 'Phaser'], function (exports, Phaser) { - factory((root.commonJsStrictGlobal = exports), Phaser); - }); - } else if (typeof exports === 'object' && typeof exports.nodeName !== 'string') { - // CommonJS - factory(exports, require('Phaser')); - } else { - // Browser globals - factory((root.commonJsStrictGlobal = {}), root.Phaser); - } -}(this, function (exports, Phaser) { - \ No newline at end of file +(function(){ + + var root = this; diff --git a/src/Outro.js b/src/Outro.js index fd59944a1..9be8897c0 100644 --- a/src/Outro.js +++ b/src/Outro.js @@ -4,10 +4,19 @@ * @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License} */ - // attach properties to the exports object to define - // the exported module properties. - exports.action = function () {}; -})); + if (typeof exports !== 'undefined') { + if (typeof module !== 'undefined' && module.exports) { + exports = module.exports = Phaser; + } + exports.Phaser = Phaser; + } else if (typeof define !== 'undefined' && define.amd) { + define('Phaser', (function() { return root.Phaser = Phaser; })() ); + } else { + root.Phaser = Phaser; + } + + return Phaser; +}).call(this); /* * "What matters in this life is not what we do but what we do for others, the legacy we leave and the imprint we make." - Eric Meyer From 205fe5844ded239eb1af186bc522758a703add3a Mon Sep 17 00:00:00 2001 From: photonstorm Date: Fri, 24 Jul 2015 13:25:28 +0100 Subject: [PATCH 15/17] 2.4.1 readme. --- CHANGELOG.md | 19 +++++++++++++++++++ README.md | 2 +- 2 files changed, 20 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index c0c817f07..f73cdca56 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,24 @@ # Change Log +## Version 2.4.1 - "Ionin Spring" - 24th July 2015 + +This is a small point release that updates the Creature runtimes and fixes a couple of small cache issues. + +It also modifies the Grunt build scripts so that all third party libs (such as Creature, P2, gl-matrix and PIXI) are now kept well and truly outside of Phaser. They are defined and placed first in the build files. So no more PIXI hiding within the Phaser namespace or UMD patching for Phaser required. + +### Updates + +* The Creature Runtimes have been updated to the latest versions and the `Phaser.Creature` class updated to use them. +* GameObjectFactory.creature is a new method to help with quick Creature animation object creation. +* Cache.getPixiTexture will now search the image cache if it couldn't find a texture in the PIXI.TextureCache global array, if it finds a matching image in the image cache then it returns a new PIXI.Texture based on it. +* Cache.getPixiBaseTexture will now search the image cache if it couldn't find a BaseTexture in the PIXI.BaseTextureCache global array. + +### Bug Fixes + +* Fixed Cache.getKeys to use the `_cacheMap` (thanks @jamesgroat #1929) +* Safari on OSX wouldn't recognise button presses on trackpads (thanks JakeCake) +* Cache.removeImage now calls destroy on the image BaseTexture, removing it from the PIXI global caches without throwing a warning. + ## Version 2.4 - "Katar" - 22nd July 2015 ### API Changes diff --git a/README.md b/README.md index afa3b0382..0c8aad5ce 100644 --- a/README.md +++ b/README.md @@ -242,7 +242,7 @@ If you are an exceptional JavaScript developer and would like to join the Phaser ## Change Log -## Version 2.4.1 - "Ionin Spring" - 23rd July 2015 +## Version 2.4.1 - "Ionin Spring" - 24th July 2015 This is a small point release that updates the Creature runtimes and fixes a couple of small cache issues. From b7c49fb7a33ce665401f50c52d2e7e906d86e01a Mon Sep 17 00:00:00 2001 From: photonstorm Date: Fri, 24 Jul 2015 13:28:55 +0100 Subject: [PATCH 16/17] Phaser 2.4.1 build files. --- build/custom/phaser-arcade-physics.js | 141 +++++++++++++--------- build/custom/phaser-arcade-physics.map | 2 +- build/custom/phaser-arcade-physics.min.js | 22 ++-- build/custom/phaser-minimum.js | 141 +++++++++++++--------- build/custom/phaser-minimum.map | 2 +- build/custom/phaser-minimum.min.js | 6 +- build/custom/phaser-no-physics.js | 141 +++++++++++++--------- build/custom/phaser-no-physics.map | 2 +- build/custom/phaser-no-physics.min.js | 20 +-- build/phaser.js | 141 +++++++++++++--------- build/phaser.map | 2 +- build/phaser.min.js | 12 +- 12 files changed, 358 insertions(+), 274 deletions(-) diff --git a/build/custom/phaser-arcade-physics.js b/build/custom/phaser-arcade-physics.js index e592eeb05..e727b5422 100644 --- a/build/custom/phaser-arcade-physics.js +++ b/build/custom/phaser-arcade-physics.js @@ -7,7 +7,7 @@ * * Phaser - http://phaser.io * -* v2.4.1 "Ionin Spring" - Built: Thu Jul 23 2015 16:01:45 +* v2.4.1 "Ionin Spring" - Built: Fri Jul 24 2015 13:26:42 * * By Richard Davey http://www.photonstorm.com @photonstorm * @@ -8221,13 +8221,16 @@ PIXI.BaseTexture.prototype.destroy = function() { delete PIXI.BaseTextureCache[this.imageUrl]; delete PIXI.TextureCache[this.imageUrl]; + this.imageUrl = null; + if (!navigator.isCocoonJS) this.source.src = ''; } else if (this.source && this.source._pixiId) { delete PIXI.BaseTextureCache[this.source._pixiId]; } + this.source = null; this.unloadFromGPU(); @@ -28232,65 +28235,77 @@ Phaser.Pointer.prototype = { // If you find one, please tell us! var buttons = event.buttons; - if (buttons === undefined) + if (buttons !== undefined) { - return; - } + // Note: These are bitwise checks, not booleans - // Note: These are bitwise checks, not booleans + if (Phaser.Pointer.LEFT_BUTTON & buttons) + { + this.leftButton.start(event); + } + else + { + this.leftButton.stop(event); + } - if (Phaser.Pointer.LEFT_BUTTON & buttons) - { - this.leftButton.start(event); + if (Phaser.Pointer.RIGHT_BUTTON & buttons) + { + this.rightButton.start(event); + } + else + { + this.rightButton.stop(event); + } + + if (Phaser.Pointer.MIDDLE_BUTTON & buttons) + { + this.middleButton.start(event); + } + else + { + this.middleButton.stop(event); + } + + if (Phaser.Pointer.BACK_BUTTON & buttons) + { + this.backButton.start(event); + } + else + { + this.backButton.stop(event); + } + + if (Phaser.Pointer.FORWARD_BUTTON & buttons) + { + this.forwardButton.start(event); + } + else + { + this.forwardButton.stop(event); + } + + if (Phaser.Pointer.ERASER_BUTTON & buttons) + { + this.eraserButton.start(event); + } + else + { + this.eraserButton.stop(event); + } } else { - this.leftButton.stop(event); - } + // No buttons property (like Safari on OSX when using a trackpad) - if (Phaser.Pointer.RIGHT_BUTTON & buttons) - { - this.rightButton.start(event); - } - else - { - this.rightButton.stop(event); - } - - if (Phaser.Pointer.MIDDLE_BUTTON & buttons) - { - this.middleButton.start(event); - } - else - { - this.middleButton.stop(event); - } - - if (Phaser.Pointer.BACK_BUTTON & buttons) - { - this.backButton.start(event); - } - else - { - this.backButton.stop(event); - } - - if (Phaser.Pointer.FORWARD_BUTTON & buttons) - { - this.forwardButton.start(event); - } - else - { - this.forwardButton.stop(event); - } - - if (Phaser.Pointer.ERASER_BUTTON & buttons) - { - this.eraserButton.start(event); - } - else - { - this.eraserButton.stop(event); + if (event.type === 'mousedown') + { + this.leftButton.start(event); + } + else + { + this.leftButton.stop(event); + this.rightButton.stop(event); + } } // On OS X (and other devices with trackpads) you have to press CTRL + the pad @@ -57157,26 +57172,30 @@ Phaser.Cache.prototype = { }, /** - * Removes an image from the cache and optionally from the Pixi.BaseTextureCache as well. + * Removes an image from the cache. + * + * You can optionally elect to destroy it as well. This calls BaseTexture.destroy on it. * - * Note that this only removes it from the Phaser.Cache. If you still have references to the data elsewhere + * Note that this only removes it from the Phaser and PIXI Caches. If you still have references to the data elsewhere * then it will persist in memory. * * @method Phaser.Cache#removeImage * @param {string} key - Key of the asset you want to remove. - * @param {boolean} [removeFromPixi=true] - Should this image also be removed from the Pixi BaseTextureCache? + * @param {boolean} [removeFromPixi=true] - Should this image also be destroyed? Removing it from the PIXI.BaseTextureCache? */ removeImage: function (key, removeFromPixi) { if (removeFromPixi === undefined) { removeFromPixi = true; } - delete this._cache.image[key]; + var img = this.getImage(key, true); - if (removeFromPixi) + if (removeFromPixi && img.base) { - PIXI.BaseTextureCache[key].destroy(); + img.base.destroy(); } + delete this._cache.image[key]; + }, /** @@ -76133,10 +76152,12 @@ PIXI.TextureSilentFail = true; } exports.Phaser = Phaser; } else if (typeof define !== 'undefined' && define.amd) { - define('Phaser', (function() { return root.Phaser = Phaser; }) ()); + define('Phaser', (function() { return root.Phaser = Phaser; })() ); } else { root.Phaser = Phaser; } + + return Phaser; }).call(this); /* diff --git a/build/custom/phaser-arcade-physics.map b/build/custom/phaser-arcade-physics.map index ef35c8392..eab28dc6f 100644 --- a/build/custom/phaser-arcade-physics.map +++ b/build/custom/phaser-arcade-physics.map @@ -1 +1 @@ -{"version":3,"file":"phaser-arcade-physics.min.js","sources":["phaser-arcade-physics.js"],"names":["root","this","PIXI","WEBGL_RENDERER","CANVAS_RENDERER","VERSION","_UID","Float32Array","Uint16Array","Uint32Array","ArrayBuffer","Array","PI_2","Math","PI","RAD_TO_DEG","DEG_TO_RAD","RETINA_PREFIX","defaultRenderOptions","view","transparent","antialias","preserveDrawingBuffer","resolution","clearBeforeRender","autoResize","DisplayObject","position","Point","scale","transformCallback","transformCallbackContext","pivot","rotation","alpha","visible","hitArea","renderable","parent","stage","worldAlpha","worldTransform","Matrix","worldPosition","worldScale","worldRotation","_sr","_cr","filterArea","_bounds","Rectangle","_currentBounds","_mask","_cacheAsBitmap","_cacheIsDirty","prototype","constructor","destroy","children","i","length","_destroyCachedSprite","Object","defineProperty","get","item","set","value","isMask","_filters","passes","filterPasses","j","push","_filterBlock","target","_generateCachedSprite","updateTransform","game","p","world","a","b","c","d","tx","ty","pt","wt","rotationCache","sin","cos","x","y","sqrt","atan2","call","displayObjectUpdateTransform","getBounds","matrix","EmptyRectangle","getLocalBounds","identityMatrix","setStageReference","preUpdate","generateTexture","scaleMode","renderer","bounds","renderTexture","RenderTexture","width","height","_tempMatrix","render","updateCache","toGlobal","apply","toLocal","from","applyInverse","_renderCachedSprite","renderSession","_cachedSprite","gl","Sprite","_renderWebGL","_renderCanvas","texture","resize","tempFilters","filters","anchor","DisplayObjectContainer","create","_width","_height","addChild","child","addChildAt","index","removeChild","splice","Error","swapChildren","child2","index1","getChildIndex","index2","indexOf","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","Texture","emptyTexture","tint","cachedTint","tintedTexture","blendMode","blendModes","NORMAL","shader","baseTexture","hasLoaded","onTextureUpdate","frame","setTexture","valid","w0","w1","h0","h1","x1","y1","x2","y2","x3","y3","x4","y4","crop","currentBlendMode","context","globalCompositeOperation","blendModesCanvas","globalAlpha","smoothProperty","scaleModes","LINEAR","dx","trim","dy","roundPixels","setTransform","cw","ch","requiresReTint","CanvasTinter","getTintedTexture","drawImage","cx","cy","source","fromFrame","frameId","TextureCache","fromImage","imageId","crossorigin","SpriteBatch","textureThing","ready","initWebGL","fastSpriteBatch","WebGLFastSpriteBatch","setContext","shaderManager","setShader","fastShader","transform","isRotated","childTransform","Stage","backgroundColor","setBackgroundColor","backgroundColorSplit","hex2rgb","hex","toString","substr","backgroundColorString","rgb2hex","rgb","canUseNewCanvasBlendModes","document","pngHead","pngEnd","magenta","Image","src","yellow","canvas","createElement","getContext","getImageData","data","getNextPowerOfTwo","number","result","isPowerOfTwo","PolyK","Triangulate","sign","n","tgs","avl","al","i0","i1","i2","ax","ay","bx","by","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","isArray","join","createShader","shaderSource","compileShader","getShaderParameter","COMPILE_STATUS","window","console","log","getShaderInfoLog","compileProgram","vertexSrc","fragmentSrc","fragmentShader","vertexShader","shaderProgram","createProgram","attachShader","linkProgram","getProgramParameter","LINK_STATUS","PixiShader","program","textureCount","firstRun","dirty","attributes","init","defaultVertexSrc","useProgram","uSampler","getUniformLocation","projectionVector","offsetVector","dimensions","aVertexPosition","getAttribLocation","aTextureCoord","colorAttribute","key","uniforms","uniformLocation","initUniforms","uniform","type","_init","initSampler2D","glMatrix","glValueLength","glFunc","uniformMatrix2fv","uniformMatrix3fv","uniformMatrix4fv","activeTexture","bindTexture","TEXTURE_2D","_glTextures","id","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","transpose","z","w","_dirty","instances","updateTexture","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","toArray","uniform1f","uniform2f","uniform3fv","bindBuffer","ARRAY_BUFFER","buffer","vertexAttribPointer","FLOAT","ELEMENT_ARRAY_BUFFER","indexBuffer","TRIANGLE_STRIP","lastIndex","clearDirty","graphicsData","reset","graphicsDataPool","Graphics","POLY","points","shape","slice","closed","fill","switchMode","canDrawUsingSimple","buildPoly","buildComplexPoly","lineWidth","buildLine","RECT","buildRectangle","CIRC","ELIP","buildCircle","RREC","buildRoundedRectangle","upload","pop","WebGLGraphicsData","rectData","fillColor","fillAlpha","r","g","verts","vertPos","tempPoints","rrectData","radius","recPoints","concat","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","a1","b1","c1","a2","b2","c2","denom","pdist","dist","indexCount","indexStart","lineColor","lineAlpha","abs","createBuffer","glPoints","bufferData","STATIC_DRAW","glIndicies","glContexts","WebGLRenderer","options","defaultRenderer","_contextOptions","premultipliedAlpha","stencil","WebGLShaderManager","WebGLSpriteBatch","WebGLMaskManager","WebGLFilterManager","WebGLStencilManager","blendModeManager","WebGLBlendModeManager","drawCount","initContext","mapBlendModes","glContextId","disable","DEPTH_TEST","CULL_FACE","enable","BLEND","contextLost","__stage","viewport","bindFramebuffer","FRAMEBUFFER","clearColor","clear","COLOR_BUFFER_BIT","renderDisplayObject","displayObject","setBlendMode","style","createTexture","UNPACK_PREMULTIPLY_ALPHA_WEBGL","NEAREST","mipmap","LINEAR_MIPMAP_LINEAR","NEAREST_MIPMAP_NEAREST","generateMipmap","_powerOf2","blendModesWebGL","ONE","ONE_MINUS_SRC_ALPHA","ADD","SRC_ALPHA","DST_ALPHA","MULTIPLY","DST_COLOR","SCREEN","OVERLAY","DARKEN","LIGHTEN","COLOR_DODGE","COLOR_BURN","HARD_LIGHT","SOFT_LIGHT","DIFFERENCE","EXCLUSION","HUE","SATURATION","COLOR","LUMINOSITY","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","size","numVerts","numIndices","vertices","positions","colors","lastIndexCount","drawing","currentBatchSize","currentBaseTexture","textures","shaders","sprites","AbstractFilter","vertexBuffer","DYNAMIC_DRAW","sprite","uvs","_uvs","aX","aY","x0","y0","renderTilingSprite","tilingTexture","TextureUvs","h","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","DEFAULT","framebufferTexture2D","COLOR_ATTACHMENT0","renderBuffer","createRenderbuffer","bindRenderbuffer","RENDERBUFFER","framebufferRenderbuffer","DEPTH_STENCIL_ATTACHMENT","renderbufferStorage","DEPTH_STENCIL","deleteFramebuffer","deleteTexture","CanvasBuffer","clearRect","CanvasMaskManager","save","cacheAlpha","CanvasGraphics","renderGraphicsMask","clip","restore","tintMethod","tintWithMultiply","fillStyle","fillRect","tintWithPerPixel","rgbValues","pixelData","pixels","canHandleAlpha","putImageData","checkInverseAlpha","s1","s2","canUseMultiply","CanvasRenderer","refresh","navigator","isCocoonJS","screencanvas","removeView","updateGraphicsTint","_fillTint","_lineTint","beginPath","moveTo","lineTo","closePath","strokeStyle","stroke","strokeRect","arc","kappa","ox","oy","xe","ye","xm","ym","bezierCurveTo","rx","ry","maxRadius","min","quadraticCurveTo","len","rect","tintR","tintG","tintB","BaseTextureCache","BaseTextureCacheIdGenerator","BaseTexture","complete","naturalWidth","naturalHeight","imageUrl","forceLoaded","_pixiId","unloadFromGPU","updateSourceImage","newSrc","glTexture","image","crossOrigin","fromCanvas","TextureCacheIdGenerator","FrameCache","TextureSilentFail","noFrame","isTiling","requiresUpdate","setFrame","onBaseTextureLoaded","destroyBase","_updateUvs","tw","th","addTextureToCache","removeTextureFromCache","textureBuffer","renderWebGL","renderCanvas","tempMatrix","Phaser","updateBase","identity","translate","append","realResolution","getImage","getBase64","getCanvas","toDataURL","webGLPixels","Uint8Array","readPixels","tempCanvas","canvasData","Strip","canvasPadding","drawMode","DrawModes","_vertexBuffer","_initWebGL","_renderStrip","_indexBuffer","_uvBuffer","_colorBuffer","_renderCanvasTriangleStrip","_renderCanvasTriangles","_renderCanvasDrawTriangle","index0","textureSource","textureWidth","textureHeight","u0","u1","u2","v0","v1","v2","paddingX","paddingY","centerX","centerY","normX","normY","delta","deltaA","deltaB","deltaC","deltaD","deltaE","deltaF","renderStripFlat","strip","updateFrame","rawX","rawY","Rope","point","amount","total","nextPoint","perp","ratio","perpLength","num","TilingSprite","textureDebug","canvasBuffer","tilePattern","refreshTexture","frameWidth","frameHeight","generateTilingTexture","needsUpdate","createPattern","sessionBlendMode","forcePowerOfTwo","targetWidth","_frame","sourceSizeW","targetHeight","sourceSizeH","trimmed","spriteSourceSizeX","spriteSourceSizeY","exports","module","define","amd","WheelEventProxy","scaleFactor","deltaMode","_scaleFactor","_deltaMode","originalEvent","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","CIRCLE","RECTANGLE","LINE","MATRIX","POINT","ROUNDEDRECTANGLE","CREATURE","VIDEO","trunc","ceil","floor","Function","bind","thisArg","bound","args","boundArgs","arguments","TypeError","F","proto","arg","forEach","fun","t","CheapArray","assert","warn","Utils","getProperty","obj","prop","parts","split","last","l","current","setProperty","chanceRoll","chance","random","randomChoice","choice1","choice2","parseDimension","dimension","f","parseInt","innerWidth","innerHeight","pad","str","dir","padlen","right","left","isPlainObject","nodeType","hasOwnProperty","e","extend","name","copy","copyIsArray","clone","deep","mixinPrototype","mixin","replace","mixinKeys","keys","to","o","childNodes","cloneNode","Circle","diameter","_diameter","_radius","circumference","out","setTo","copyFrom","copyTo","dest","distance","round","output","contains","circumferencePoint","angle","asDegrees","offsetPoint","top","bottom","equals","intersects","degToRad","intersectsRectangle","halfWidth","xDist","halfHeight","yDist","xCornerDist","yCornerDist","xCornerDistSq","yCornerDistSq","maxCornerDistSq","Ellipse","normx","normy","Line","fromSprite","startSprite","endSprite","useCenter","center","fromAngle","rotate","line","asSegment","intersectsPoints","reflect","pointOnLine","pointOnSegment","xMin","xMax","max","yMin","yMax","coordinatesOnLine","stepRate","results","sx","sy","err","e2","wrap","uc","ua","ub","normalAngle","fromArray","array","pos","newPos","tx1","d1","invert","add","subtract","multiply","divide","clampX","clamp","clampY","radToDeg","getMagnitude","getMagnitudeSq","setMagnitude","magnitude","normalize","isZero","m","dot","cross","rperp","normalRightHand","negative","multiplyAdd","s","interpolate","project","amt","projectUnit","centroid","pointslength","parse","xProp","yProp","Polygon","area","_points","toNumberArray","flatten","inside","ix","iy","jx","jy","Number","MAX_VALUE","calculateArea","p1","p2","avgHeight","centerOn","floorAll","ceilAll","inflate","containsRect","intersection","intersectsRaw","tolerance","union","randomX","randomY","empty","inflatePoint","containsRaw","rw","rh","containsPoint","volume","sameDimensions","aabb","MIN_VALUE","RoundedRectangle","Camera","deadzone","roundPx","atLimit","totalInView","_targetPosition","_edge","_position","FOLLOW_LOCKON","FOLLOW_PLATFORMER","FOLLOW_TOPDOWN","FOLLOW_TOPDOWN_TIGHT","follow","helper","unfollow","focusOn","setPosition","focusOnXY","update","updateTarget","checkBounds","setBoundsToWorld","setSize","Create","bmd","make","bitmapData","ctx","palettes",1,2,3,4,5,6,7,8,9,"A","B","C","D","E","PALETTE_ARNE","PALETTE_JMP","PALETTE_CGA","PALETTE_C64","PALETTE_JAPANESE_MACHINE","pixelWidth","pixelHeight","palette","row","grid","cellWidth","cellHeight","State","camera","cache","input","load","math","sound","time","tweens","particles","physics","rnd","preload","loadUpdate","loadRender","preRender","paused","resumed","pauseUpdate","shutdown","StateManager","pendingState","states","_pendingState","_clearWorld","_clearCache","_created","_args","onStateChange","Signal","onInitCallback","onPreloadCallback","onCreateCallback","onUpdateCallback","onRenderCallback","onResizeCallback","onPreRenderCallback","onLoadUpdateCallback","onLoadRenderCallback","onPausedCallback","onResumedCallback","onPauseUpdateCallback","onShutDownCallback","boot","onPause","pause","onResume","resume","state","autoStart","newState","isBooted","remove","callbackContext","clearWorld","clearCache","checkState","restart","dummy","previousStateKey","clearCurrentState","setCurrentState","dispatch","totalQueuedFiles","totalQueuedPacks","loadComplete","removeAll","debug","link","unlink","_kickstart","getCurrentState","elapsedTime","renderType","_bindings","_prevParams","memorize","_shouldPropagate","active","_boundDispatch","validateListener","listener","fnName","_registerListener","isOnce","listenerContext","priority","binding","prevIndex","_indexOfListener","SignalBinding","_addBinding","execute","_priority","cur","_listener","has","addOnce","_destroy","getNumListeners","halt","bindings","paramsArr","forget","dispose","_this","signal","_isOnce","_signal","callCount","params","handlerReturn","detach","isBound","getListener","getSignal","Filter","prevPoint","Date","mouse","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","exists","currentRenderOrderID","_hiddenVar","_onChange","_backgroundColor","config","parseConfig","DOM","getOffset","Canvas","setUserSelect","setTouchAction","checkVisibility","webkitHidden","mozHidden","msHidden","hidden","event","visibilityChange","addEventListener","onblur","onfocus","onpagehide","onpageshow","device","cocoonJSApp","CocoonJS","App","onSuspended","onActivated","focusLoss","focusGain","gamePaused","gameResumed","Color","valueToColor","getColor","RGBtoString","removeEventListener","Group","addToStage","enableBody","physicsBodyType","Physics","ARCADE","physicsType","alive","ignoreDestroy","pendingDestroy","classType","cursor","enableBodyDebug","physicsSortDirection","onDestroy","cursorIndex","fixedToCamera","cameraOffset","hash","_sortProperty","RETURN_NONE","RETURN_TOTAL","RETURN_CHILD","SORT_ASCENDING","SORT_DESCENDING","silent","body","addToHash","events","onAddedToGroup$dispatch","removeFromHash","addMultiple","moveAll","addAt","updateZ","getAt","createMultiple","quantity","resetCursor","next","previous","swap","child1","bringToTop","getIndex","sendToBack","moveUp","moveDown","xy","oldChild","newChild","hasProperty","operation","force","checkProperty","checkAlive","checkVisible","setAll","setAllChildren","checkAll","addAll","property","subAll","multiplyAll","divideAll","callAllExists","callback","existsValue","callbackFromArray","callAll","method","methodLength","contextLength","renderOrderID","predicate","checkExists","ArraySet","forEachExists","iterate","forEachAlive","forEachDead","sort","order","ascendingSortHandler","descendingSortHandler","customSort","sortHandler","returnType","getFirstExists","getFirstAlive","getFirstDead","getTop","getBottom","countLiving","countDead","getRandom","ArrayUtils","getRandomItem","destroyPhase","onRemovedFromGroup$dispatch","group","removeBetween","destroyChildren","soft","World","_definedSize","stateChange","setBounds","useBounds","horizontal","vertical","between","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","text","geom","uuid","topLeft","topMiddle","topRight","bottomLeft","bottomMiddle","bottomRight","ScaleManager","dom","minWidth","maxWidth","minHeight","maxHeight","forceLandscape","forcePortrait","incorrectOrientation","_pageAlignHorizontally","_pageAlignVertically","onOrientationChange","enterIncorrectOrientation","leaveIncorrectOrientation","fullScreenTarget","_createdFullScreenTarget","onFullScreenInit","onFullScreenChange","onFullScreenError","screenOrientation","getScreenOrientation","scaleFactorInversed","margin","aspectRatio","sourceAspectRatio","windowConstraints","compatibility","supportsFullScreen","orientationFallback","noMargins","scrollTo","forceMinimumDocumentHeight","canExpandParent","clickTrampoline","_scaleMode","NO_SCALE","_fullScreenScaleMode","parentIsWindow","parentNode","parentScaleFactor","trackParentInterval","onSizeChange","onResizeContext","_pendingScaleMode","_fullScreenRestore","_gameSize","_userScaleFactor","_userScaleTrim","_lastUpdate","_updateThrottle","_updateThrottleReset","_parentBounds","_tempBounds","_lastReportedCanvasSize","_lastReportedGameSize","_booted","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","visualBounds","newWidth","newHeight","updateDimensions","queueUpdate","currentScaleMode","setUserScale","hScale","vScale","hTrim","vTrim","setResizeCallback","signalSizeChange","setMinMax","prevThrottle","prevWidth","prevHeight","boundsChanged","orientationChanged","updateOrientationState","updateLayout","throttle","updateScalingAndBounds","forceOrientation","classifyOrientation","orientation","previousOrientation","previouslyIncorrect","isLandscape","isPortrait","changed","correctnessChanged","scrollTop","reflowGame","documentElement","setMaximum","setExactFit","isFullScreen","boundingParent","setShowAll","resetCanvas","reflowCanvas","layoutBounds","clientRect","getBoundingClientRect","wc","windowBounds","alignCanvas","parentBounds","canvasBounds","currentEdge","targetEdge","marginLeft","marginRight","marginTop","marginBottom","pageAlignHorizontally","pageAlignVertically","cssWidth","cssHeight","expanding","createFullScreenTarget","fsTarget","background","startFullScreen","allowTrampoline","setTimeout","activePointer","mousePointer","addClickTrampoline","smoothed","cleanupCreatedTarget","initData","targetElement","insertBefore","appendChild","fullscreenKeyboard","requestFullscreen","Element","ALLOW_KEYBOARD_INPUT","stopFullScreen","cancelFullscreen","prepScreenMode","enteringFullscreen","createdTarget","enterFullScreen","leaveFullScreen","letterBox","scaleX1","scaleY1","scaleX2","scaleY2","scaleOnWidth","Game","physicsConfig","isRunning","raf","net","Device","lockRender","stepping","pendingStep","stepCount","onBlur","onFocus","_paused","_codePaused","currentUpdateID","updatesThisFrame","_deltaTime","_lastCount","_spiraling","fpsProblemNotifier","forceSingleUpdate","_nextFpsNotification","enableDebug","RandomDataGenerator","now","whenReady","seed","setUpRenderer","GameObjectFactory","GameObjectCreator","Cache","Loader","Time","TweenManager","Input","SoundManager","Particles","Net","Debug","showDebugHeader","RequestAnimationFrame","stopFocus","focus","hideBanner","webAudio","contextRestored","addToDOM","preventDefault","clearGLTextures","updateLogic","desiredFps","updateRender","slowMotion","slowStep","elapsed","timeStep","enableStep","disableStep","step","removeFromDOM","setMute","cordova","iOS","unsetMute","hitCanvas","hitContext","moveCallbacks","pollRate","enabled","multiInputOverride","MOUSE_TOUCH_COMBINE","speed","circle","maxPointers","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","Touch","MSPointer","Keyboard","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","mouseDownCallback","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","BACK_BUTTON","FORWARD_BUTTON","WHEEL_UP","WHEEL_DOWN","onMouseDown","onMouseMove","onMouseUp","_onMouseUpGlobal","onMouseUpGlobal","onMouseOut","onMouseOver","onMouseWheel","wheelEvent","mouseMoveCallback","withinGame","bindEvent","deltaY","requestPointerLock","element","mozRequestPointerLock","webkitRequestPointerLock","_pointerLockChange","pointerLockChange","pointerLockElement","mozPointerLockElement","webkitPointerLockElement","releasePointerLock","exitPointerLock","mozExitPointerLock","webkitExitPointerLock","_stubsGenerated","makeBinder","defineProperties","detail","deltaX","wheelDeltaX","deltaZ","pointerDownCallback","pointerMoveCallback","pointerUpCallback","_onMSPointerDown","_onMSPointerMove","_onMSPointerUp","onPointerDown","onPointerMove","onPointerUp","pointerType","DeviceButton","buttonCode","isDown","isUp","timeDown","duration","timeUp","repeats","altKey","shiftKey","ctrlKey","onFloat","padFloat","justPressed","justReleased","leftButton","middleButton","rightButton","backButton","forwardButton","eraserButton","ERASER_BUTTON","_holdSent","_history","_nextDrop","_stateReset","clientX","clientY","pageX","pageY","screenX","screenY","rawMovementX","rawMovementY","movementX","movementY","isMouse","previousTapTime","totalTouches","msSinceLastClick","targetObject","positionDown","positionUp","_clickTrampolines","_trampolineTargetObject","resetButtons","updateButtons","buttons","totalActivePointers","_touchedHandler","processInteractiveObjects","shift","fromClick","pollLocked","mozMovementX","webkitMovementX","mozMovementY","webkitMovementY","isDragged","highestRenderOrderID","highestInputPriorityID","candidateTarget","currentNode","first","checked","validForInput","checkPointerDown","checkPointerOver","priorityID","_pointerOutHandler","_pointerOverHandler","leave","currentPointers","callbackArgs","trampolines","trampoline","_releasedHandler","resetMovement","touchLockCallbacks","touchStartCallback","touchMoveCallback","touchEndCallback","touchEnterCallback","touchLeaveCallback","touchCancelCallback","_onTouchStart","_onTouchMove","_onTouchEnd","_onTouchEnter","_onTouchLeave","_onTouchCancel","onTouchStart","onTouchMove","onTouchEnd","onTouchEnter","onTouchLeave","onTouchCancel","consumeDocumentTouches","_documentTouchMove","addTouchLockCallback","removeTouchLockCallback","changedTouches","InputHandler","useHandCursor","_setHandCursor","allowHorizontalDrag","allowVerticalDrag","snapOffset","snapOnDrag","snapOnRelease","snapX","snapY","snapOffsetX","snapOffsetY","pixelPerfectOver","pixelPerfectClick","pixelPerfectAlpha","draggable","boundsRect","boundsSprite","consumePointerEvent","scaleLayer","dragOffset","dragFromCenter","dragStartPoint","snapPoint","_dragPoint","_dragPhase","_wasEnabled","_tempPoint","_pointerData","isOver","isOut","timeOver","timeOut","downDuration","onAddedToGroup","addedToGroup","onRemovedFromGroup","removedFromGroup","flagged","highestID","highestRenderID","includePixelPerfect","isPixelPerfect","pointerX","pointerY","pointerDown","pointerUp","pointerTimeDown","pointerTimeUp","pointerOver","pointerOut","pointerTimeOver","pointerTimeOut","pointerDragged","fastTest","checkPixel","_dx","_dy","_draggedPointerID","updateDrag","onInputOver$dispatch","onInputOut$dispatch","onInputDown$dispatch","startDrag","onInputUp$dispatch","stopDrag","globalToLocalX","globalToLocalY","checkBoundsRect","checkBoundsSprite","onDragUpdate","justOver","delay","overDuration","justOut","enableDrag","lockCenter","pixelPerfect","alphaThreshold","disableDrag","onDragStart$dispatch","onDragStop$dispatch","setDragLock","allowHorizontal","allowVertical","enableSnap","onDrag","onRelease","disableSnap","_gamepadIndexMap","_rawPads","_active","_gamepadSupportAvailable","webkitGetGamepads","webkitGamepads","userAgent","getGamepads","_prevRawGamepadTypes","_prevTimestamps","onConnectCallback","onDisconnectCallback","onDownCallback","onUpCallback","onAxisCallback","onFloatCallback","_ongamepadconnected","_gamepaddisconnected","_gamepads","SinglePad","addCallbacks","callbacks","onConnect","onDisconnect","onAxis","_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","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","processButtonDown","processButtonUp","processButtonFloat","axes","processAxisChange","triggerCallback","disconnectingIndex","axis","axisCode","buttonValue","Key","keycode","_enabled","keyCode","onHoldCallback","onHoldContext","_justDown","_justUp","processKeyDown","processKeyUp","upDuration","pressEvent","onPressCallback","_keys","_capture","_onKeyDown","_onKeyPress","_onKeyUp","_k","onPress","addKey","addKeyCapture","addKeys","removeKey","removeKeyCapture","createCursorKeys","up","down","processKeyPress","clearCaptures","String","fromCharCode","charCode","charCodeAt","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","COMMA","UNDERSCORE","PERIOD","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","PLUS","MINUS","INSERT","DELETE","HELP","NUM_LOCK","Component","Angle","wrapAngle","Animation","play","frameRate","loop","killOnComplete","animations","AutoCull","autoCull","inCamera","checkWorldBounds","Bounds","BringToTop","Core","install","components","previousPosition","Events","PhysicsBody","AnimationManager","LoadTexture","loadTexture","FixedToCamera","previousRotation","fresh","_exists","P2JS","removeFromWorld","customRender","Crop","cropRect","_crop","updateCrop","resetFrame","Delta","Destroy","onDestroy$dispatch","Video","onChangeSource","resizeFrame","BitmapText","_glyphs","_parent","_onDestroy","_onAddedToGroup","_onRemovedFromGroup","_onRemovedFromWorld","_onKilled","_onRevived","_onEnterBounds","_onOutOfBounds","_onInputOver","_onInputOut","_onInputDown","_onInputUp","_onDragStart","_onDragUpdate","_onDragStop","_onAnimationStart","_onAnimationComplete","_onAnimationLoop","onRemovedFromWorld","onKilled","onRevived","onOutOfBounds","onEnterBounds","onInputOver","onInputOut","onInputDown","onInputUp","onDragStart","onDragStop","onAnimationStart","onAnimationComplete","onAnimationLoop","backing","_fixedToCamera","Health","health","maxHealth","damage","kill","heal","InCamera","InputEnabled","inputEnabled","InWorld","_outOfBoundsFired","onEnterBounds$dispatch","onOutOfBounds$dispatch","outOfBoundsKill","inWorld","LifeSpan","lifespan","physicsElapsedMS","revive","onRevived$dispatch","onKilled$dispatch","stopAnimation","BitmapData","hasFrameData","loadFrameData","getFrameData","img","base","frameData","frameName","Overlap","overlap","_reset","Reset","ScaleMinMax","checkTransform","scaleMin","scaleMax","setScaleMinMax","Smoothed","existing","object","creature","mesh","Creature","tween","physicsGroup","audio","audioSprite","addSprite","tileSprite","rope","Text","overFrame","outFrame","downFrame","upFrame","Button","emitter","maxParticles","Arcade","Emitter","retroFont","font","characterWidth","characterHeight","chars","charsPerRow","xSpacing","ySpacing","xOffset","yOffset","RetroFont","bitmapText","tilemap","tileWidth","tileHeight","Tilemap","addToCache","addRenderTexture","video","url","addBitmapData","Tween","align","preUpdatePhysics","preUpdateLifeSpan","preUpdateInWorld","preUpdateCore","_scroll","def","physicsElapsed","autoScroll","stopScroll","_hasUpdateAnimation","_updateAnimationCallback","updateAnimation","_updateAnimation","segments","difference","_onOverFrame","_onOutFrame","_onDownFrame","_onUpFrame","onOverSound","onOutSound","onDownSound","onUpSound","onOverSoundMarker","onOutSoundMarker","onDownSoundMarker","onUpSoundMarker","onOverMouseOnly","freezeFrames","forceOut","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","Particle","autoScale","scaleData","_s","autoAlpha","alphaData","_a","onEmit","setAlphaData","setScaleData","imageData","textureFrame","Frame","disableTextureUpload","cls","_image","_pos","_size","_scale","_rotate","_alpha","prev","_anchor","_tempR","_tempG","_tempB","_circle","_swapCanvas","moveH","moveV","draw","addImage","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","direction","scan","anchorX","anchorY","copyRect","drawGroup","shadow","blur","shadowColor","shadowBlur","shadowOffsetX","shadowOffsetY","alphaMask","sourceRect","maskRect","blendSourceAtop","blendReset","extract","destination","prevFont","fillText","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","currentPath","boundsPadding","_localBounds","webGLDirty","cachedSpriteDirty","lineStyle","drawShape","cpX2","cpY2","dt","dt2","dt3","t2","t3","arcTo","mm","dd","cc","tt","k1","k2","j1","j2","qx","qy","startAngle","endAngle","anticlockwise","sweep","segs","startX","startY","filling","theta","theta2","cTheta","sTheta","segMinus","remainder","real","beginFill","endFill","drawRect","drawRoundedRect","drawCircle","drawEllipse","drawPolygon","path","updateCachedSpriteTexture","_prevTint","updateLocalBounds","tempPoint","cachedSprite","destroyCachedSprite","GraphicsData","drawTriangle","cull","triangle","cameraToFace","ab","cb","faceNormal","drawTriangles","point1","point2","point3","renderXY","renderRawXY","textBounds","strokeColors","autoRound","_res","_text","_fontComponents","_lineSpacing","_charCount","setStyle","updateText","setShadow","shadowStroke","shadowFill","boundsAlignH","boundsAlignV","strokeThickness","wordWrap","wordWrapWidth","tabs","fontToComponents","fontStyle","fontVariant","fontWeight","fontSize","componentsToFont","outputText","runWordWrap","lines","lineWidths","maxLineWidth","fontProperties","determineFontProperties","measureText","tab","section","snapToCeil","lineHeight","lineSpacing","textBaseline","lineCap","lineJoin","linePositionX","linePositionY","ascent","updateLine","updateShadow","strokeText","renderTabLine","snap","letter","clearColors","addColor","addStrokeColor","spaceLeft","words","wordWidth","wordWidthWithSpace","updateFont","match","fontFamily","setText","parseList","list","setTextBounds","properties","fontPropertiesCache","fontPropertiesCanvas","fontPropertiesContext","baseline","descent","imagedata","idx","exec","parseFloat","textWidth","textHeight","_prevAnchor","_maxWidth","_data","getBitmapFont","_font","_fontSize","_align","_tint","sourceWidth","sourceHeight","scanLine","lastSpace","prevCharCode","test","charAt","charData","kerning","xAdvance","purgeGlyphs","kept","checkImageKey","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","content","characterSpacing","allowLowerCase","buildRetroFontText","getLongestLine","pasteLine","longestLine","removeUnsupportedCharacters","stripCR","newString","aChar","code","updateOffset","diffX","diffY","frames","getFrames","newText","toUpperCase","deviceReadyAt","initialized","node","nodeWebkit","electron","ejecta","crosswalk","chromeOS","linux","macOS","windows","windowsPhone","canvasBitBltShift","file","fileSystem","localStorage","worker","css3D","typedArray","vibration","getUserMedia","quirksMode","arora","chromeVersion","epiphany","firefox","firefoxVersion","ie","ieVersion","trident","tridentVersion","mobileSafari","midori","opera","safari","silk","audioData","ogg","opus","mp3","wav","m4a","webm","oggVideo","h264Video","mp4Video","webmVideo","vp9Video","hlsVideo","iPhone","iPhone4","pixelRatio","littleEndian","support32bit","onInitialized","nonPrimer","readyCheck","_readyCheck","_monitor","_queue","readyState","_initialize","_checkOS","vita","kindle","_checkFeatures","getItem","error","WebGLRenderingContext","compatMode","webkitGetUserMedia","mozGetUserMedia","msGetUserMedia","oGetUserMedia","URL","webkitURL","mozURL","msURL","_checkInput","maxTouchPoints","msPointerEnabled","pointerEnabled","_checkFullScreenSupport","fs","cfs","_checkBrowser","RegExp","$1","$3","process","require","versions","_checkVideo","videoElement","canPlayType","_checkAudio","audioElement","_checkDevice","toLowerCase","Int8Array","_checkIsLittleEndian","Uint8ClampedArray","Int32Array","_checkIsUint8ClampedImageData","vibrate","webkitVibrate","mozVibrate","msVibrate","elem","createImageData","_checkCSS3D","has3d","el","transforms","webkitTransform","OTransform","msTransform","MozTransform","getComputedStyle","getPropertyValue","canPlayAudio","canPlayVideo","isConsoleOpen","profile","profileEnd","isAndroidStockBrowser","matches","box","scrollY","scrollLeft","scrollX","clientTop","clientLeft","cushion","calibrate","coords","getAspectRatio","inLayoutViewport","primaryFallback","screen","mozOrientation","msOrientation","PORTRAIT","LANDSCAPE","matchMedia","documentBounds","pageXOffset","pageYOffset","treatAsDesktop","clientWidth","clientHeight","offsetWidth","scrollWidth","offsetHeight","scrollHeight","display","msTouchAction","overflowHidden","overflow","vendor","prefix","setImageRenderingCrisp","msInterpolationMode","setImageRenderingBicubic","forceSetTimeOut","vendors","requestAnimationFrame","cancelAnimationFrame","_isSetTimeOut","_onLoop","_timeOutID","updateSetTimeout","updateRAF","rafTime","timeToCall","clearTimeout","isSetTimeOut","isRAF","PI2","fuzzyEqual","epsilon","fuzzyLessThan","fuzzyGreaterThan","fuzzyCeil","val","fuzzyFloor","average","sum","shear","snapTo","gap","snapToFloor","roundTo","place","pow","floorTo","ceilTo","angleBetween","angleBetweenY","angleBetweenPoints","angleBetweenPointsY","reverseAngle","angleRad","normalizeAngle","maxAdd","minSub","wrapValue","isOdd","isEven","minProperty","maxProperty","radians","linearInterpolation","linear","bezierInterpolation","bernstein","catmullRomInterpolation","catmullRom","p0","factorial","res","p3","roundAwayFromZero","sinCosGenerator","sinAmplitude","cosAmplitude","frequency","frq","cosTable","sinTable","distanceSq","distancePow","clampBottom","within","mapLinear","smoothstep","smootherstep","percent","degreeToRadiansFactor","radianToDegreesFactor","degrees","seeds","s0","sow","integer","frac","integerInRange","realInRange","normal","pick","ary","weightedPick","QuadTree","maxObjects","maxLevels","objects","nodes","_empty","subWidth","subHeight","populate","populateHandler","insert","retrieve","returnObjects","getHostName","location","hostname","checkDomainName","domain","updateQueryString","redirect","href","re","separator","getQueryString","parameter","keyValues","search","substring","decodeURI","decodeURIComponent","_tweens","_add","easeMap","Power0","Easing","Power1","Power2","Power3","Power4","Linear","None","Quad","Quadratic","Out","Cubic","Quart","Quartic","Quint","Quintic","Sine","Sinusoidal","Expo","Exponential","Circ","Circular","Elastic","Back","Bounce","Quad.easeIn","In","Cubic.easeIn","Quart.easeIn","Quint.easeIn","Sine.easeIn","Expo.easeIn","Circ.easeIn","Elastic.easeIn","Back.easeIn","Bounce.easeIn","Quad.easeOut","Cubic.easeOut","Quart.easeOut","Quint.easeOut","Sine.easeOut","Expo.easeOut","Circ.easeOut","Elastic.easeOut","Back.easeOut","Bounce.easeOut","Quad.easeInOut","InOut","Cubic.easeInOut","Quart.easeInOut","Quint.easeInOut","Sine.easeInOut","Expo.easeInOut","Circ.easeInOut","Elastic.easeInOut","Back.easeInOut","Bounce.easeInOut","_pauseAll","_resumeAll","getAll","pendingDelete","removeFrom","_manager","addTweens","numTweens","isTweening","some","_pause","_resume","pauseAll","resumeAll","timeline","timeScale","repeatCounter","onStart","onLoop","onRepeat","onChildComplete","onComplete","chainedTween","isPaused","_onUpdateCallback","_onUpdateCallbackContext","_pausedTime","_hasStarted","ease","yoyo","Default","TweenData","vEnd","loadValues","updateTweenData","repeatDelay","yoyoDelay","easing","interpolation","repeatAll","chain","startTime","status","PENDING","RUNNING","LOOPED","COMPLETE","generateData","vStart","vStartCache","vEndCache","inReverse","easingFunction","interpolationFunction","interpolationContext","isFrom","yoyoCounter","elapsedMS","fps","blob","reversed","asin","prevTime","suggestedFps","advancedTiming","fpsMin","fpsMax","msMin","msMax","pauseDuration","timeExpected","Timer","_frameCount","_elapsedAccumulator","_started","_timeLastSecond","_pauseStarted","_justResumed","_timers","timer","autoDestroy","updateAdvancedTiming","updateTimers","previousDateNow","timeCallExpected","elapsedSince","since","elapsedSecondsSince","running","expired","nextTick","timeCap","_pauseTotal","_now","_marked","_diff","_newTick","MINUTE","SECOND","HALF","QUARTER","repeatCount","tick","TimerEvent","clearEvents","clearPendingEvents","adjustEvents","baseTime","ms","currentFrame","currentAnim","updateIfVisible","isLoaded","_frameData","_anims","_outputFrames","anim","copyFrameData","useNumericIndex","getFrameIndexes","validateFrames","checkFrameName","isPlaying","getAnimation","refreshFrame","getFrame","getFrameByName","_frameIndex","_frames","loopCount","isFinished","_pauseStartTime","_frameDiff","_frameSkip","onUpdate","_timeLastFrame","_timeNextFrame","updateCurrentFrame","onAnimationStart$dispatch","useLocalFrameIndex","frameIndex","dispatchComplete","onAnimationComplete$dispatch","onAnimationLoop$dispatch","signalUpdate","fromPlay","generateFrameNames","suffix","zeroPad","rotated","rotationDirection","spriteSourceSizeW","spriteSourceSizeH","setTrim","actualWidth","actualHeight","destX","destY","destWidth","destHeight","getRect","_frameNames","getFrameRange","AnimationParser","spriteSheet","frameMax","spacing","column","JSONData","json","newFrame","filename","sourceSize","spriteSourceSize","JSONDataHash","XMLData","xml","getElementsByTagName","frameX","frameY","autoResolveURL","_cache","binary","bitmapFont","_urlMap","_urlResolver","_urlTemp","onSoundUnlock","_cacheMap","TEXTURE","SOUND","PHYSICS","BINARY","BITMAPFONT","JSON","XML","SHADER","RENDER_TEXTURE","addDefaultImage","addMissingImage","addCanvas","removeImage","_resolveURL","addSound","audioTag","decoded","isDecoding","touchLocked","addText","addPhysicsData","addTilemap","mapData","addBinary","binaryData","addBitmapFont","atlasData","atlasType","LoaderParser","jsonBitmapFont","xmlBitmapFont","addJSON","addXML","addVideo","isBlob","addShader","addSpriteSheet","addTextureAtlas","TEXTURE_ATLAS_XML_STARLING","reloadSound","getSound","reloadSoundComplete","updateSound","decodedSound","isSoundDecoded","isSoundReady","checkKey","checkURL","checkCanvasKey","checkTextureKey","checkSoundKey","checkTextKey","checkPhysicsKey","checkTilemapKey","checkBinaryKey","checkBitmapDataKey","checkBitmapFontKey","checkJSONKey","checkXMLKey","checkVideoKey","checkShaderKey","checkRenderTextureKey","full","getTextureFrame","getSoundData","getText","getPhysicsData","fixtureKey","fixtures","fixture","getTilemapData","getBinary","getBitmapData","getJSON","getXML","getVideo","getShader","getRenderTexture","getBaseTexture","getFrameCount","getFrameByIndex","getPixiTexture","getPixiBaseTexture","getURL","getKeys","removeCanvas","removeFromPixi","removeSound","removeText","removePhysics","removeTilemap","removeBinary","removeBitmapData","removeBitmapFont","removeJSON","removeXML","removeVideo","removeShader","removeRenderTexture","removeSpriteSheet","removeTextureAtlas","atlas","baseURL","isLoading","preloadSprite","onLoadStart","onLoadComplete","onPackComplete","onFileStart","onFileComplete","onFileError","useXDomainRequest","_warnedAboutXDomainRequest","enableParallel","maxParallelDownloads","_withSyncPointDepth","_fileList","_flightQueue","_processingHead","_fileLoadStarted","_totalPackCount","_totalFileCount","_loadedPackCount","_loadedFileCount","TEXTURE_ATLAS_JSON_ARRAY","TEXTURE_ATLAS_JSON_HASH","PHYSICS_LIME_CORONA_JSON","PHYSICS_PHASER_JSON","setPreloadSprite","checkKeyExists","getAssetIndex","bestFound","loaded","loading","getAsset","fileIndex","addToFileList","overwrite","extension","syncPoint","currentFile","replaceInFileList","pack","script","spritesheet","urls","autoDecode","noAudio","audiosprite","jsonURL","jsonData","loadEvent","asBlob","CSV","TILED_JSON","LIME_CORONA_JSON","textureURL","atlasURL","parseXml","atlasJSONArray","atlasJSONHash","atlasXML","withSyncPoint","addSyncPoint","asset","removeFile","updateProgress","processLoadQueue","finishedLoading","requestUrl","requestObject","progress","syncblock","inflightLimit","processPack","loadFile","abnormal","asyncComplete","errorMessage","packData","transformUrl","xhrLoad","fileComplete","loadImageTag","getAudioURL","usingWebAudio","usingAudioTag","loadAudioTag","fileError","getVideoURL","loadVideoTag","jsonLoadComplete","xmlLoadComplete","csvLoadComplete","onload","onerror","controls","autoplay","videoLoadEvent","canplay","Audio","playThroughEvent","XDomainRequest","xhrLoadWithXDR","xhr","XMLHttpRequest","open","responseType","message","send","timeout","ontimeout","onprogress","videoType","uri","lastIndexOf","audioType","reason","loadNext","responseText","Blob","response","decode","language","defer","head","contentType","domparser","DOMParser","parseFromString","ActiveXObject","async","loadXML","totalLoadedFiles","totalLoadedPacks","progressFloat","info","common","getAttribute","letters","kernings","second","finalizeBitmapFont","_face","_lineHeight","_id","_xoffset","_yoffset","_xadvance","_second","_first","_amount","bitmapFontData","autoplayKey","sounds","spritemap","addMarker","connectToMaster","markers","totalDuration","currentTime","durationMS","stopTime","pausedPosition","pausedTime","currentMarker","fadeTween","pendingPlayback","override","allowMultiple","externalNode","masterGainNode","gainNode","_sound","masterGain","createGain","createGainNode","gain","soundHasUnlocked","onDecoded","onPlay","onStop","onMute","onMarkerComplete","onFadeComplete","_volume","_buffer","_muted","_tempMarker","_tempPosition","_tempVolume","_muteVolume","_tempLoop","_onDecodedEventDispatched","removeMarker","onEndedHandler","isDecoded","loopFull","forceRestart","noteOff","createBufferSource","onended","noteGrainOn","muted","prevMarker","fadeIn","fadeTo","fadeOut","fadeComplete","mute","onSoundDecode","onVolumeChange","onUnMute","channels","_codeMuted","_unlockSource","_sounds","_watchList","_watching","_watchCallback","_watchContext","disableAudio","disableWebAudio","audioContext","fakeiOSTouchLock","setTouchLock","unlock","noteOn","stopAll","soundData","decodeAudioData","setDecodedCallback","files","playbackState","PLAYING_STATE","FINISHED_STATE","removeByKey","columnWidth","renderShadow","currentAlpha","currentColor","soundInfo","cameraInfo","hideIfUp","downColor","upColor","worldX","worldY","spriteInputInfo","justDown","justUp","inputInfo","spriteBounds","filled","rectangle","ropeSegments","self","segment","spriteInfo","spriteCoords","lineInfo","forceType","quadTree","quadtree","Body","NINJA","Ninja","BOX2D","Box2D","renderBody","bodyInfo","renderBodyInfo","box2d","box2dWorld","renderDebugDraw","box2dBody","getByKey","randomIndex","removeRandomItem","shuffle","transposeMatrix","sourceRowCount","sourceColCount","rotateMatrix","findClosest","arr","NaN","low","high","POSITIVE_INFINITY","numberArray","numberArrayStep","rgba","RGBtoHSL","RGBtoHSV","fromRGBA","toRGBA","q","hueToColor","updateColor","HSVtoRGB","color32","getColor32","componentToHex","hexToRGB","hexToColor","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","blendNormal","blendAverage","blendSubtract","blendNegation","blendLinearDodge","blendLinearBurn","blendLinearLight","blendVividLight","blendPinLight","blendHardMix","blendReflect","blendGlow","blendPhoenix","LinkedList","entity","arcade","ninja","chipmunk","matter","CHIPMUNK","MATTERJS","P2","Matter","startSystem","system","enableAABB","gravity","checkCollision","OVERLAP_BIAS","forceX","sortDirection","LEFT_RIGHT","skipQuadTree","_total","SORT_NONE","RIGHT_LEFT","TOP_BOTTOM","BOTTOM_TOP","updateMotion","velocityDelta","computeVelocity","angularVelocity","angularAcceleration","angularDrag","maxAngular","velocity","acceleration","drag","maxVelocity","allowGravity","object1","object2","overlapCallback","processCallback","collideHandler","collide","collideCallback","sortLeftRight","sortRightLeft","sortTopBottom","sortBottomTop","overlapOnly","collideGroupVsSelf","collideSpriteVsSprite","collideSpriteVsGroup","collideSpriteVsTilemapLayer","collideGroupVsGroup","collideGroupVsTilemapLayer","sprite1","sprite2","separate","items","group1","group2","body1","body2","separateX","separateY","immovable","maxOverlap","deltaAbsX","embedded","touching","none","overlapX","customSeparateX","bounce","moves","friction","nv1","mass","nv2","avg","deltaAbsY","overlapY","customSeparateY","getObjectsUnderPointer","getObjectsAtLocation","callbackArg","moveToObject","maxTime","distanceBetween","moveToPointer","angleToPointer","distanceToPointer","moveToXY","distanceToXY","velocityFromAngle","velocityFromRotation","accelerationFromRotation","accelerateToObject","xSpeedMax","ySpeedMax","accelerateToPointer","accelerateToXY","angleToXY","allowRotation","preRotation","newVelocity","deltaMax","facing","collideWorldBounds","any","wasTouching","blocked","tilePadding","syncBounds","_sx","_sy","updateBounds","asx","asy","check","onFloor","onWall","TilemapCollision","TILE_BIAS","tilemapLayer","getTiles","separateTile","tile","collisionCallback","collisionCallbackContext","faceLeft","faceRight","faceTop","faceBottom","tileCheckX","tileCheckY","collideRight","collideLeft","processTileSeparationX","collideDown","collideUp","processTileSeparationY","ImageCollection","firstgid","imageWidth","imageHeight","imageMargin","imageSpacing","images","containsImageIndex","imageIndex","gid","Tile","flipped","scanned","setCollisionCallback","setCollision","resetCollision","isInteresting","collides","faces","TilemapParser","version","widthInPixels","heightInPixels","tilesets","imagecollections","tiles","collideIndexes","collision","currentLayer","debugMap","_results","_tempA","NORTH","EAST","SOUTH","WEST","setTileSize","createBlankLayer","addTilesetImage","tileset","tileMargin","tileSpacing","getTilesetIndex","setImage","newSet","Tileset","countX","countY","columns","rows","createFromObjects","CustomClass","adjustY","found","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","map","renderSettings","enableScrollDelta","overdrawRatio","copyCanvas","debugSettings","missingImageFill","debuggedTileOverfill","forceFullRedraw","debugAlpha","facingEdgeStroke","collidingTileOverfill","scrollFactorX","scrollFactorY","rayStepRate","_wrap","_mc","renderWidth","renderHeight","_scrollX","_scrollY","ensureSharedCopyCanvas","sharedCopyCanvas","resizeWorld","_fixX","_unfixX","_fixY","_unfixY","getTileX","getTileY","getTileXY","getRayCastTiles","interestingFace","coord","fetchAll","wy","wx","resolveTileset","tileIndex","setIndex","containsTileIndex","resetTilesetCache","setScale","xScale","yScale","shiftCanvas","copyW","copyH","copyContext","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","flippedVal","tileproperties","tileProperties","updateTileData","imagewidth","imageheight","newCollection","polyline","polygon","ellipse","sid","drawCoords","coordIndex","setSpacing","rowCount","colCount","emitters","ID","minParticleSpeed","maxParticleSpeed","minParticleScale","maxParticleScale","minRotation","maxRotation","minParticleAlpha","maxParticleAlpha","particleClass","particleDrag","on","particleAnchor","emitX","emitY","particleBringToTop","particleSendToBack","_minParticleScale","_maxParticleScale","_quantity","_timer","_counter","_flowQuantity","_flowTotal","_explode","emitParticle","makeParticles","particle","rndKey","rndFrame","explode","flow","forceQuantity","setXSpeed","setYSpeed","setRotation","setAlpha","rate","tweenData","at","onAccess","onError","onTimeout","videoStream","isStreaming","retryLimit","retry","retryInterval","_retryID","_pending","_autoplay","_video","createVideoFromBlob","videoWidth","videoHeight","createVideoFromURL","snapshot","connectToMediaStream","stream","startMediaStream","captureAudio","removeVideoElement","setAttribute","getUserMediaTimeout","getUserMediaSuccess","getUserMediaError","mozSrcObject","createObjectURL","onloadeddata","checkStream","checkVideoProgress","change","playbackRate","setPause","setResume","playHandler","playing","ended","changeSource","grab","hasChildNodes","firstChild","removeAttribute"],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"phaser-arcade-physics.min.js","sources":["phaser-arcade-physics.js"],"names":["root","this","PIXI","WEBGL_RENDERER","CANVAS_RENDERER","VERSION","_UID","Float32Array","Uint16Array","Uint32Array","ArrayBuffer","Array","PI_2","Math","PI","RAD_TO_DEG","DEG_TO_RAD","RETINA_PREFIX","defaultRenderOptions","view","transparent","antialias","preserveDrawingBuffer","resolution","clearBeforeRender","autoResize","DisplayObject","position","Point","scale","transformCallback","transformCallbackContext","pivot","rotation","alpha","visible","hitArea","renderable","parent","stage","worldAlpha","worldTransform","Matrix","worldPosition","worldScale","worldRotation","_sr","_cr","filterArea","_bounds","Rectangle","_currentBounds","_mask","_cacheAsBitmap","_cacheIsDirty","prototype","constructor","destroy","children","i","length","_destroyCachedSprite","Object","defineProperty","get","item","set","value","isMask","_filters","passes","filterPasses","j","push","_filterBlock","target","_generateCachedSprite","updateTransform","game","p","world","a","b","c","d","tx","ty","pt","wt","rotationCache","sin","cos","x","y","sqrt","atan2","call","displayObjectUpdateTransform","getBounds","matrix","EmptyRectangle","getLocalBounds","identityMatrix","setStageReference","preUpdate","generateTexture","scaleMode","renderer","bounds","renderTexture","RenderTexture","width","height","_tempMatrix","render","updateCache","toGlobal","apply","toLocal","from","applyInverse","_renderCachedSprite","renderSession","_cachedSprite","gl","Sprite","_renderWebGL","_renderCanvas","texture","resize","tempFilters","filters","anchor","DisplayObjectContainer","create","_width","_height","addChild","child","addChildAt","index","removeChild","splice","Error","swapChildren","child2","index1","getChildIndex","index2","indexOf","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","Texture","emptyTexture","tint","cachedTint","tintedTexture","blendMode","blendModes","NORMAL","shader","baseTexture","hasLoaded","onTextureUpdate","frame","setTexture","valid","w0","w1","h0","h1","x1","y1","x2","y2","x3","y3","x4","y4","crop","currentBlendMode","context","globalCompositeOperation","blendModesCanvas","globalAlpha","smoothProperty","scaleModes","LINEAR","dx","trim","dy","roundPixels","setTransform","cw","ch","requiresReTint","CanvasTinter","getTintedTexture","drawImage","cx","cy","source","fromFrame","frameId","TextureCache","fromImage","imageId","crossorigin","SpriteBatch","textureThing","ready","initWebGL","fastSpriteBatch","WebGLFastSpriteBatch","setContext","shaderManager","setShader","fastShader","transform","isRotated","childTransform","Stage","backgroundColor","setBackgroundColor","backgroundColorSplit","hex2rgb","hex","toString","substr","backgroundColorString","rgb2hex","rgb","canUseNewCanvasBlendModes","document","pngHead","pngEnd","magenta","Image","src","yellow","canvas","createElement","getContext","getImageData","data","getNextPowerOfTwo","number","result","isPowerOfTwo","PolyK","Triangulate","sign","n","tgs","avl","al","i0","i1","i2","ax","ay","bx","by","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","isArray","join","createShader","shaderSource","compileShader","getShaderParameter","COMPILE_STATUS","window","console","log","getShaderInfoLog","compileProgram","vertexSrc","fragmentSrc","fragmentShader","vertexShader","shaderProgram","createProgram","attachShader","linkProgram","getProgramParameter","LINK_STATUS","PixiShader","program","textureCount","firstRun","dirty","attributes","init","defaultVertexSrc","useProgram","uSampler","getUniformLocation","projectionVector","offsetVector","dimensions","aVertexPosition","getAttribLocation","aTextureCoord","colorAttribute","key","uniforms","uniformLocation","initUniforms","uniform","type","_init","initSampler2D","glMatrix","glValueLength","glFunc","uniformMatrix2fv","uniformMatrix3fv","uniformMatrix4fv","activeTexture","bindTexture","TEXTURE_2D","_glTextures","id","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","transpose","z","w","_dirty","instances","updateTexture","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","toArray","uniform1f","uniform2f","uniform3fv","bindBuffer","ARRAY_BUFFER","buffer","vertexAttribPointer","FLOAT","ELEMENT_ARRAY_BUFFER","indexBuffer","TRIANGLE_STRIP","lastIndex","clearDirty","graphicsData","reset","graphicsDataPool","Graphics","POLY","points","shape","slice","closed","fill","switchMode","canDrawUsingSimple","buildPoly","buildComplexPoly","lineWidth","buildLine","RECT","buildRectangle","CIRC","ELIP","buildCircle","RREC","buildRoundedRectangle","upload","pop","WebGLGraphicsData","rectData","fillColor","fillAlpha","r","g","verts","vertPos","tempPoints","rrectData","radius","recPoints","concat","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","a1","b1","c1","a2","b2","c2","denom","pdist","dist","indexCount","indexStart","lineColor","lineAlpha","abs","createBuffer","glPoints","bufferData","STATIC_DRAW","glIndicies","glContexts","WebGLRenderer","options","defaultRenderer","_contextOptions","premultipliedAlpha","stencil","WebGLShaderManager","WebGLSpriteBatch","WebGLMaskManager","WebGLFilterManager","WebGLStencilManager","blendModeManager","WebGLBlendModeManager","drawCount","initContext","mapBlendModes","glContextId","disable","DEPTH_TEST","CULL_FACE","enable","BLEND","contextLost","__stage","viewport","bindFramebuffer","FRAMEBUFFER","clearColor","clear","COLOR_BUFFER_BIT","renderDisplayObject","displayObject","setBlendMode","style","createTexture","UNPACK_PREMULTIPLY_ALPHA_WEBGL","NEAREST","mipmap","LINEAR_MIPMAP_LINEAR","NEAREST_MIPMAP_NEAREST","generateMipmap","_powerOf2","blendModesWebGL","ONE","ONE_MINUS_SRC_ALPHA","ADD","SRC_ALPHA","DST_ALPHA","MULTIPLY","DST_COLOR","SCREEN","OVERLAY","DARKEN","LIGHTEN","COLOR_DODGE","COLOR_BURN","HARD_LIGHT","SOFT_LIGHT","DIFFERENCE","EXCLUSION","HUE","SATURATION","COLOR","LUMINOSITY","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","size","numVerts","numIndices","vertices","positions","colors","lastIndexCount","drawing","currentBatchSize","currentBaseTexture","textures","shaders","sprites","AbstractFilter","vertexBuffer","DYNAMIC_DRAW","sprite","uvs","_uvs","aX","aY","x0","y0","renderTilingSprite","tilingTexture","TextureUvs","h","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","DEFAULT","framebufferTexture2D","COLOR_ATTACHMENT0","renderBuffer","createRenderbuffer","bindRenderbuffer","RENDERBUFFER","framebufferRenderbuffer","DEPTH_STENCIL_ATTACHMENT","renderbufferStorage","DEPTH_STENCIL","deleteFramebuffer","deleteTexture","CanvasBuffer","clearRect","CanvasMaskManager","save","cacheAlpha","CanvasGraphics","renderGraphicsMask","clip","restore","tintMethod","tintWithMultiply","fillStyle","fillRect","tintWithPerPixel","rgbValues","pixelData","pixels","canHandleAlpha","putImageData","checkInverseAlpha","s1","s2","canUseMultiply","CanvasRenderer","refresh","navigator","isCocoonJS","screencanvas","removeView","updateGraphicsTint","_fillTint","_lineTint","beginPath","moveTo","lineTo","closePath","strokeStyle","stroke","strokeRect","arc","kappa","ox","oy","xe","ye","xm","ym","bezierCurveTo","rx","ry","maxRadius","min","quadraticCurveTo","len","rect","tintR","tintG","tintB","BaseTextureCache","BaseTextureCacheIdGenerator","BaseTexture","complete","naturalWidth","naturalHeight","imageUrl","forceLoaded","_pixiId","unloadFromGPU","updateSourceImage","newSrc","glTexture","image","crossOrigin","fromCanvas","TextureCacheIdGenerator","FrameCache","TextureSilentFail","noFrame","isTiling","requiresUpdate","setFrame","onBaseTextureLoaded","destroyBase","_updateUvs","tw","th","addTextureToCache","removeTextureFromCache","textureBuffer","renderWebGL","renderCanvas","tempMatrix","Phaser","updateBase","identity","translate","append","realResolution","getImage","getBase64","getCanvas","toDataURL","webGLPixels","Uint8Array","readPixels","tempCanvas","canvasData","Strip","canvasPadding","drawMode","DrawModes","_vertexBuffer","_initWebGL","_renderStrip","_indexBuffer","_uvBuffer","_colorBuffer","_renderCanvasTriangleStrip","_renderCanvasTriangles","_renderCanvasDrawTriangle","index0","textureSource","textureWidth","textureHeight","u0","u1","u2","v0","v1","v2","paddingX","paddingY","centerX","centerY","normX","normY","delta","deltaA","deltaB","deltaC","deltaD","deltaE","deltaF","renderStripFlat","strip","updateFrame","rawX","rawY","Rope","point","amount","total","nextPoint","perp","ratio","perpLength","num","TilingSprite","textureDebug","canvasBuffer","tilePattern","refreshTexture","frameWidth","frameHeight","generateTilingTexture","needsUpdate","createPattern","sessionBlendMode","forcePowerOfTwo","targetWidth","_frame","sourceSizeW","targetHeight","sourceSizeH","trimmed","spriteSourceSizeX","spriteSourceSizeY","exports","module","define","amd","WheelEventProxy","scaleFactor","deltaMode","_scaleFactor","_deltaMode","originalEvent","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","CIRCLE","RECTANGLE","LINE","MATRIX","POINT","ROUNDEDRECTANGLE","CREATURE","VIDEO","trunc","ceil","floor","Function","bind","thisArg","bound","args","boundArgs","arguments","TypeError","F","proto","arg","forEach","fun","t","CheapArray","assert","warn","Utils","getProperty","obj","prop","parts","split","last","l","current","setProperty","chanceRoll","chance","random","randomChoice","choice1","choice2","parseDimension","dimension","f","parseInt","innerWidth","innerHeight","pad","str","dir","padlen","right","left","isPlainObject","nodeType","hasOwnProperty","e","extend","name","copy","copyIsArray","clone","deep","mixinPrototype","mixin","replace","mixinKeys","keys","to","o","childNodes","cloneNode","Circle","diameter","_diameter","_radius","circumference","out","setTo","copyFrom","copyTo","dest","distance","round","output","contains","circumferencePoint","angle","asDegrees","offsetPoint","top","bottom","equals","intersects","degToRad","intersectsRectangle","halfWidth","xDist","halfHeight","yDist","xCornerDist","yCornerDist","xCornerDistSq","yCornerDistSq","maxCornerDistSq","Ellipse","normx","normy","Line","fromSprite","startSprite","endSprite","useCenter","center","fromAngle","rotate","line","asSegment","intersectsPoints","reflect","pointOnLine","pointOnSegment","xMin","xMax","max","yMin","yMax","coordinatesOnLine","stepRate","results","sx","sy","err","e2","wrap","uc","ua","ub","normalAngle","fromArray","array","pos","newPos","tx1","d1","invert","add","subtract","multiply","divide","clampX","clamp","clampY","radToDeg","getMagnitude","getMagnitudeSq","setMagnitude","magnitude","normalize","isZero","m","dot","cross","rperp","normalRightHand","negative","multiplyAdd","s","interpolate","project","amt","projectUnit","centroid","pointslength","parse","xProp","yProp","Polygon","area","_points","toNumberArray","flatten","inside","ix","iy","jx","jy","Number","MAX_VALUE","calculateArea","p1","p2","avgHeight","centerOn","floorAll","ceilAll","inflate","containsRect","intersection","intersectsRaw","tolerance","union","randomX","randomY","empty","inflatePoint","containsRaw","rw","rh","containsPoint","volume","sameDimensions","aabb","MIN_VALUE","RoundedRectangle","Camera","deadzone","roundPx","atLimit","totalInView","_targetPosition","_edge","_position","FOLLOW_LOCKON","FOLLOW_PLATFORMER","FOLLOW_TOPDOWN","FOLLOW_TOPDOWN_TIGHT","follow","helper","unfollow","focusOn","setPosition","focusOnXY","update","updateTarget","checkBounds","setBoundsToWorld","setSize","Create","bmd","make","bitmapData","ctx","palettes",1,2,3,4,5,6,7,8,9,"A","B","C","D","E","PALETTE_ARNE","PALETTE_JMP","PALETTE_CGA","PALETTE_C64","PALETTE_JAPANESE_MACHINE","pixelWidth","pixelHeight","palette","row","grid","cellWidth","cellHeight","State","camera","cache","input","load","math","sound","time","tweens","particles","physics","rnd","preload","loadUpdate","loadRender","preRender","paused","resumed","pauseUpdate","shutdown","StateManager","pendingState","states","_pendingState","_clearWorld","_clearCache","_created","_args","onStateChange","Signal","onInitCallback","onPreloadCallback","onCreateCallback","onUpdateCallback","onRenderCallback","onResizeCallback","onPreRenderCallback","onLoadUpdateCallback","onLoadRenderCallback","onPausedCallback","onResumedCallback","onPauseUpdateCallback","onShutDownCallback","boot","onPause","pause","onResume","resume","state","autoStart","newState","isBooted","remove","callbackContext","clearWorld","clearCache","checkState","restart","dummy","previousStateKey","clearCurrentState","setCurrentState","dispatch","totalQueuedFiles","totalQueuedPacks","loadComplete","removeAll","debug","link","unlink","_kickstart","getCurrentState","elapsedTime","renderType","_bindings","_prevParams","memorize","_shouldPropagate","active","_boundDispatch","validateListener","listener","fnName","_registerListener","isOnce","listenerContext","priority","binding","prevIndex","_indexOfListener","SignalBinding","_addBinding","execute","_priority","cur","_listener","has","addOnce","_destroy","getNumListeners","halt","bindings","paramsArr","forget","dispose","_this","signal","_isOnce","_signal","callCount","params","handlerReturn","detach","isBound","getListener","getSignal","Filter","prevPoint","Date","mouse","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","exists","currentRenderOrderID","_hiddenVar","_onChange","_backgroundColor","config","parseConfig","DOM","getOffset","Canvas","setUserSelect","setTouchAction","checkVisibility","webkitHidden","mozHidden","msHidden","hidden","event","visibilityChange","addEventListener","onblur","onfocus","onpagehide","onpageshow","device","cocoonJSApp","CocoonJS","App","onSuspended","onActivated","focusLoss","focusGain","gamePaused","gameResumed","Color","valueToColor","getColor","RGBtoString","removeEventListener","Group","addToStage","enableBody","physicsBodyType","Physics","ARCADE","physicsType","alive","ignoreDestroy","pendingDestroy","classType","cursor","enableBodyDebug","physicsSortDirection","onDestroy","cursorIndex","fixedToCamera","cameraOffset","hash","_sortProperty","RETURN_NONE","RETURN_TOTAL","RETURN_CHILD","SORT_ASCENDING","SORT_DESCENDING","silent","body","addToHash","events","onAddedToGroup$dispatch","removeFromHash","addMultiple","moveAll","addAt","updateZ","getAt","createMultiple","quantity","resetCursor","next","previous","swap","child1","bringToTop","getIndex","sendToBack","moveUp","moveDown","xy","oldChild","newChild","hasProperty","operation","force","checkProperty","checkAlive","checkVisible","setAll","setAllChildren","checkAll","addAll","property","subAll","multiplyAll","divideAll","callAllExists","callback","existsValue","callbackFromArray","callAll","method","methodLength","contextLength","renderOrderID","predicate","checkExists","ArraySet","forEachExists","iterate","forEachAlive","forEachDead","sort","order","ascendingSortHandler","descendingSortHandler","customSort","sortHandler","returnType","getFirstExists","getFirstAlive","getFirstDead","getTop","getBottom","countLiving","countDead","getRandom","ArrayUtils","getRandomItem","destroyPhase","onRemovedFromGroup$dispatch","group","removeBetween","destroyChildren","soft","World","_definedSize","stateChange","setBounds","useBounds","horizontal","vertical","between","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","text","geom","uuid","topLeft","topMiddle","topRight","bottomLeft","bottomMiddle","bottomRight","ScaleManager","dom","minWidth","maxWidth","minHeight","maxHeight","forceLandscape","forcePortrait","incorrectOrientation","_pageAlignHorizontally","_pageAlignVertically","onOrientationChange","enterIncorrectOrientation","leaveIncorrectOrientation","fullScreenTarget","_createdFullScreenTarget","onFullScreenInit","onFullScreenChange","onFullScreenError","screenOrientation","getScreenOrientation","scaleFactorInversed","margin","aspectRatio","sourceAspectRatio","windowConstraints","compatibility","supportsFullScreen","orientationFallback","noMargins","scrollTo","forceMinimumDocumentHeight","canExpandParent","clickTrampoline","_scaleMode","NO_SCALE","_fullScreenScaleMode","parentIsWindow","parentNode","parentScaleFactor","trackParentInterval","onSizeChange","onResizeContext","_pendingScaleMode","_fullScreenRestore","_gameSize","_userScaleFactor","_userScaleTrim","_lastUpdate","_updateThrottle","_updateThrottleReset","_parentBounds","_tempBounds","_lastReportedCanvasSize","_lastReportedGameSize","_booted","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","visualBounds","newWidth","newHeight","updateDimensions","queueUpdate","currentScaleMode","setUserScale","hScale","vScale","hTrim","vTrim","setResizeCallback","signalSizeChange","setMinMax","prevThrottle","prevWidth","prevHeight","boundsChanged","orientationChanged","updateOrientationState","updateLayout","throttle","updateScalingAndBounds","forceOrientation","classifyOrientation","orientation","previousOrientation","previouslyIncorrect","isLandscape","isPortrait","changed","correctnessChanged","scrollTop","reflowGame","documentElement","setMaximum","setExactFit","isFullScreen","boundingParent","setShowAll","resetCanvas","reflowCanvas","layoutBounds","clientRect","getBoundingClientRect","wc","windowBounds","alignCanvas","parentBounds","canvasBounds","currentEdge","targetEdge","marginLeft","marginRight","marginTop","marginBottom","pageAlignHorizontally","pageAlignVertically","cssWidth","cssHeight","expanding","createFullScreenTarget","fsTarget","background","startFullScreen","allowTrampoline","setTimeout","activePointer","mousePointer","addClickTrampoline","smoothed","cleanupCreatedTarget","initData","targetElement","insertBefore","appendChild","fullscreenKeyboard","requestFullscreen","Element","ALLOW_KEYBOARD_INPUT","stopFullScreen","cancelFullscreen","prepScreenMode","enteringFullscreen","createdTarget","enterFullScreen","leaveFullScreen","letterBox","scaleX1","scaleY1","scaleX2","scaleY2","scaleOnWidth","Game","physicsConfig","isRunning","raf","net","Device","lockRender","stepping","pendingStep","stepCount","onBlur","onFocus","_paused","_codePaused","currentUpdateID","updatesThisFrame","_deltaTime","_lastCount","_spiraling","fpsProblemNotifier","forceSingleUpdate","_nextFpsNotification","enableDebug","RandomDataGenerator","now","whenReady","seed","setUpRenderer","GameObjectFactory","GameObjectCreator","Cache","Loader","Time","TweenManager","Input","SoundManager","Particles","Net","Debug","showDebugHeader","RequestAnimationFrame","stopFocus","focus","hideBanner","webAudio","contextRestored","addToDOM","preventDefault","clearGLTextures","updateLogic","desiredFps","updateRender","slowMotion","slowStep","elapsed","timeStep","enableStep","disableStep","step","removeFromDOM","setMute","cordova","iOS","unsetMute","hitCanvas","hitContext","moveCallbacks","pollRate","enabled","multiInputOverride","MOUSE_TOUCH_COMBINE","speed","circle","maxPointers","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","Touch","MSPointer","Keyboard","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","mouseDownCallback","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","BACK_BUTTON","FORWARD_BUTTON","WHEEL_UP","WHEEL_DOWN","onMouseDown","onMouseMove","onMouseUp","_onMouseUpGlobal","onMouseUpGlobal","onMouseOut","onMouseOver","onMouseWheel","wheelEvent","mouseMoveCallback","withinGame","bindEvent","deltaY","requestPointerLock","element","mozRequestPointerLock","webkitRequestPointerLock","_pointerLockChange","pointerLockChange","pointerLockElement","mozPointerLockElement","webkitPointerLockElement","releasePointerLock","exitPointerLock","mozExitPointerLock","webkitExitPointerLock","_stubsGenerated","makeBinder","defineProperties","detail","deltaX","wheelDeltaX","deltaZ","pointerDownCallback","pointerMoveCallback","pointerUpCallback","_onMSPointerDown","_onMSPointerMove","_onMSPointerUp","onPointerDown","onPointerMove","onPointerUp","pointerType","DeviceButton","buttonCode","isDown","isUp","timeDown","duration","timeUp","repeats","altKey","shiftKey","ctrlKey","onFloat","padFloat","justPressed","justReleased","leftButton","middleButton","rightButton","backButton","forwardButton","eraserButton","ERASER_BUTTON","_holdSent","_history","_nextDrop","_stateReset","clientX","clientY","pageX","pageY","screenX","screenY","rawMovementX","rawMovementY","movementX","movementY","isMouse","previousTapTime","totalTouches","msSinceLastClick","targetObject","positionDown","positionUp","_clickTrampolines","_trampolineTargetObject","resetButtons","updateButtons","buttons","totalActivePointers","_touchedHandler","processInteractiveObjects","shift","fromClick","pollLocked","mozMovementX","webkitMovementX","mozMovementY","webkitMovementY","isDragged","highestRenderOrderID","highestInputPriorityID","candidateTarget","currentNode","first","checked","validForInput","checkPointerDown","checkPointerOver","priorityID","_pointerOutHandler","_pointerOverHandler","leave","currentPointers","callbackArgs","trampolines","trampoline","_releasedHandler","resetMovement","touchLockCallbacks","touchStartCallback","touchMoveCallback","touchEndCallback","touchEnterCallback","touchLeaveCallback","touchCancelCallback","_onTouchStart","_onTouchMove","_onTouchEnd","_onTouchEnter","_onTouchLeave","_onTouchCancel","onTouchStart","onTouchMove","onTouchEnd","onTouchEnter","onTouchLeave","onTouchCancel","consumeDocumentTouches","_documentTouchMove","addTouchLockCallback","removeTouchLockCallback","changedTouches","InputHandler","useHandCursor","_setHandCursor","allowHorizontalDrag","allowVerticalDrag","snapOffset","snapOnDrag","snapOnRelease","snapX","snapY","snapOffsetX","snapOffsetY","pixelPerfectOver","pixelPerfectClick","pixelPerfectAlpha","draggable","boundsRect","boundsSprite","consumePointerEvent","scaleLayer","dragOffset","dragFromCenter","dragStartPoint","snapPoint","_dragPoint","_dragPhase","_wasEnabled","_tempPoint","_pointerData","isOver","isOut","timeOver","timeOut","downDuration","onAddedToGroup","addedToGroup","onRemovedFromGroup","removedFromGroup","flagged","highestID","highestRenderID","includePixelPerfect","isPixelPerfect","pointerX","pointerY","pointerDown","pointerUp","pointerTimeDown","pointerTimeUp","pointerOver","pointerOut","pointerTimeOver","pointerTimeOut","pointerDragged","fastTest","checkPixel","_dx","_dy","_draggedPointerID","updateDrag","onInputOver$dispatch","onInputOut$dispatch","onInputDown$dispatch","startDrag","onInputUp$dispatch","stopDrag","globalToLocalX","globalToLocalY","checkBoundsRect","checkBoundsSprite","onDragUpdate","justOver","delay","overDuration","justOut","enableDrag","lockCenter","pixelPerfect","alphaThreshold","disableDrag","onDragStart$dispatch","onDragStop$dispatch","setDragLock","allowHorizontal","allowVertical","enableSnap","onDrag","onRelease","disableSnap","_gamepadIndexMap","_rawPads","_active","_gamepadSupportAvailable","webkitGetGamepads","webkitGamepads","userAgent","getGamepads","_prevRawGamepadTypes","_prevTimestamps","onConnectCallback","onDisconnectCallback","onDownCallback","onUpCallback","onAxisCallback","onFloatCallback","_ongamepadconnected","_gamepaddisconnected","_gamepads","SinglePad","addCallbacks","callbacks","onConnect","onDisconnect","onAxis","_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","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","processButtonDown","processButtonUp","processButtonFloat","axes","processAxisChange","triggerCallback","disconnectingIndex","axis","axisCode","buttonValue","Key","keycode","_enabled","keyCode","onHoldCallback","onHoldContext","_justDown","_justUp","processKeyDown","processKeyUp","upDuration","pressEvent","onPressCallback","_keys","_capture","_onKeyDown","_onKeyPress","_onKeyUp","_k","onPress","addKey","addKeyCapture","addKeys","removeKey","removeKeyCapture","createCursorKeys","up","down","processKeyPress","clearCaptures","String","fromCharCode","charCode","charCodeAt","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","COMMA","UNDERSCORE","PERIOD","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","PLUS","MINUS","INSERT","DELETE","HELP","NUM_LOCK","Component","Angle","wrapAngle","Animation","play","frameRate","loop","killOnComplete","animations","AutoCull","autoCull","inCamera","checkWorldBounds","Bounds","BringToTop","Core","install","components","previousPosition","Events","PhysicsBody","AnimationManager","LoadTexture","loadTexture","FixedToCamera","previousRotation","fresh","_exists","P2JS","removeFromWorld","customRender","Crop","cropRect","_crop","updateCrop","resetFrame","Delta","Destroy","onDestroy$dispatch","Video","onChangeSource","resizeFrame","BitmapText","_glyphs","_parent","_onDestroy","_onAddedToGroup","_onRemovedFromGroup","_onRemovedFromWorld","_onKilled","_onRevived","_onEnterBounds","_onOutOfBounds","_onInputOver","_onInputOut","_onInputDown","_onInputUp","_onDragStart","_onDragUpdate","_onDragStop","_onAnimationStart","_onAnimationComplete","_onAnimationLoop","onRemovedFromWorld","onKilled","onRevived","onOutOfBounds","onEnterBounds","onInputOver","onInputOut","onInputDown","onInputUp","onDragStart","onDragStop","onAnimationStart","onAnimationComplete","onAnimationLoop","backing","_fixedToCamera","Health","health","maxHealth","damage","kill","heal","InCamera","InputEnabled","inputEnabled","InWorld","_outOfBoundsFired","onEnterBounds$dispatch","onOutOfBounds$dispatch","outOfBoundsKill","inWorld","LifeSpan","lifespan","physicsElapsedMS","revive","onRevived$dispatch","onKilled$dispatch","stopAnimation","BitmapData","hasFrameData","loadFrameData","getFrameData","img","base","frameData","frameName","Overlap","overlap","_reset","Reset","ScaleMinMax","checkTransform","scaleMin","scaleMax","setScaleMinMax","Smoothed","existing","object","creature","mesh","Creature","tween","physicsGroup","audio","audioSprite","addSprite","tileSprite","rope","Text","overFrame","outFrame","downFrame","upFrame","Button","emitter","maxParticles","Arcade","Emitter","retroFont","font","characterWidth","characterHeight","chars","charsPerRow","xSpacing","ySpacing","xOffset","yOffset","RetroFont","bitmapText","tilemap","tileWidth","tileHeight","Tilemap","addToCache","addRenderTexture","video","url","addBitmapData","Tween","align","preUpdatePhysics","preUpdateLifeSpan","preUpdateInWorld","preUpdateCore","_scroll","def","physicsElapsed","autoScroll","stopScroll","_hasUpdateAnimation","_updateAnimationCallback","updateAnimation","_updateAnimation","segments","difference","_onOverFrame","_onOutFrame","_onDownFrame","_onUpFrame","onOverSound","onOutSound","onDownSound","onUpSound","onOverSoundMarker","onOutSoundMarker","onDownSoundMarker","onUpSoundMarker","onOverMouseOnly","freezeFrames","forceOut","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","Particle","autoScale","scaleData","_s","autoAlpha","alphaData","_a","onEmit","setAlphaData","setScaleData","imageData","textureFrame","Frame","disableTextureUpload","cls","_image","_pos","_size","_scale","_rotate","_alpha","prev","_anchor","_tempR","_tempG","_tempB","_circle","_swapCanvas","moveH","moveV","draw","addImage","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","direction","scan","anchorX","anchorY","copyRect","drawGroup","shadow","blur","shadowColor","shadowBlur","shadowOffsetX","shadowOffsetY","alphaMask","sourceRect","maskRect","blendSourceAtop","blendReset","extract","destination","prevFont","fillText","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","currentPath","boundsPadding","_localBounds","webGLDirty","cachedSpriteDirty","lineStyle","drawShape","cpX2","cpY2","dt","dt2","dt3","t2","t3","arcTo","mm","dd","cc","tt","k1","k2","j1","j2","qx","qy","startAngle","endAngle","anticlockwise","sweep","segs","startX","startY","filling","theta","theta2","cTheta","sTheta","segMinus","remainder","real","beginFill","endFill","drawRect","drawRoundedRect","drawCircle","drawEllipse","drawPolygon","path","updateCachedSpriteTexture","_prevTint","updateLocalBounds","tempPoint","cachedSprite","destroyCachedSprite","GraphicsData","drawTriangle","cull","triangle","cameraToFace","ab","cb","faceNormal","drawTriangles","point1","point2","point3","renderXY","renderRawXY","textBounds","strokeColors","autoRound","_res","_text","_fontComponents","_lineSpacing","_charCount","setStyle","updateText","setShadow","shadowStroke","shadowFill","boundsAlignH","boundsAlignV","strokeThickness","wordWrap","wordWrapWidth","tabs","fontToComponents","fontStyle","fontVariant","fontWeight","fontSize","componentsToFont","outputText","runWordWrap","lines","lineWidths","maxLineWidth","fontProperties","determineFontProperties","measureText","tab","section","snapToCeil","lineHeight","lineSpacing","textBaseline","lineCap","lineJoin","linePositionX","linePositionY","ascent","updateLine","updateShadow","strokeText","renderTabLine","snap","letter","clearColors","addColor","addStrokeColor","spaceLeft","words","wordWidth","wordWidthWithSpace","updateFont","match","fontFamily","setText","parseList","list","setTextBounds","properties","fontPropertiesCache","fontPropertiesCanvas","fontPropertiesContext","baseline","descent","imagedata","idx","exec","parseFloat","textWidth","textHeight","_prevAnchor","_maxWidth","_data","getBitmapFont","_font","_fontSize","_align","_tint","sourceWidth","sourceHeight","scanLine","lastSpace","prevCharCode","test","charAt","charData","kerning","xAdvance","purgeGlyphs","kept","checkImageKey","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","content","characterSpacing","allowLowerCase","buildRetroFontText","getLongestLine","pasteLine","longestLine","removeUnsupportedCharacters","stripCR","newString","aChar","code","updateOffset","diffX","diffY","frames","getFrames","newText","toUpperCase","deviceReadyAt","initialized","node","nodeWebkit","electron","ejecta","crosswalk","chromeOS","linux","macOS","windows","windowsPhone","canvasBitBltShift","file","fileSystem","localStorage","worker","css3D","typedArray","vibration","getUserMedia","quirksMode","arora","chromeVersion","epiphany","firefox","firefoxVersion","ie","ieVersion","trident","tridentVersion","mobileSafari","midori","opera","safari","silk","audioData","ogg","opus","mp3","wav","m4a","webm","oggVideo","h264Video","mp4Video","webmVideo","vp9Video","hlsVideo","iPhone","iPhone4","pixelRatio","littleEndian","support32bit","onInitialized","nonPrimer","readyCheck","_readyCheck","_monitor","_queue","readyState","_initialize","_checkOS","vita","kindle","_checkFeatures","getItem","error","WebGLRenderingContext","compatMode","webkitGetUserMedia","mozGetUserMedia","msGetUserMedia","oGetUserMedia","URL","webkitURL","mozURL","msURL","_checkInput","maxTouchPoints","msPointerEnabled","pointerEnabled","_checkFullScreenSupport","fs","cfs","_checkBrowser","RegExp","$1","$3","process","require","versions","_checkVideo","videoElement","canPlayType","_checkAudio","audioElement","_checkDevice","toLowerCase","Int8Array","_checkIsLittleEndian","Uint8ClampedArray","Int32Array","_checkIsUint8ClampedImageData","vibrate","webkitVibrate","mozVibrate","msVibrate","elem","createImageData","_checkCSS3D","has3d","el","transforms","webkitTransform","OTransform","msTransform","MozTransform","getComputedStyle","getPropertyValue","canPlayAudio","canPlayVideo","isConsoleOpen","profile","profileEnd","isAndroidStockBrowser","matches","box","scrollY","scrollLeft","scrollX","clientTop","clientLeft","cushion","calibrate","coords","getAspectRatio","inLayoutViewport","primaryFallback","screen","mozOrientation","msOrientation","PORTRAIT","LANDSCAPE","matchMedia","documentBounds","pageXOffset","pageYOffset","treatAsDesktop","clientWidth","clientHeight","offsetWidth","scrollWidth","offsetHeight","scrollHeight","display","msTouchAction","overflowHidden","overflow","vendor","prefix","setImageRenderingCrisp","msInterpolationMode","setImageRenderingBicubic","forceSetTimeOut","vendors","requestAnimationFrame","cancelAnimationFrame","_isSetTimeOut","_onLoop","_timeOutID","updateSetTimeout","updateRAF","rafTime","timeToCall","clearTimeout","isSetTimeOut","isRAF","PI2","fuzzyEqual","epsilon","fuzzyLessThan","fuzzyGreaterThan","fuzzyCeil","val","fuzzyFloor","average","sum","shear","snapTo","gap","snapToFloor","roundTo","place","pow","floorTo","ceilTo","angleBetween","angleBetweenY","angleBetweenPoints","angleBetweenPointsY","reverseAngle","angleRad","normalizeAngle","maxAdd","minSub","wrapValue","isOdd","isEven","minProperty","maxProperty","radians","linearInterpolation","linear","bezierInterpolation","bernstein","catmullRomInterpolation","catmullRom","p0","factorial","res","p3","roundAwayFromZero","sinCosGenerator","sinAmplitude","cosAmplitude","frequency","frq","cosTable","sinTable","distanceSq","distancePow","clampBottom","within","mapLinear","smoothstep","smootherstep","percent","degreeToRadiansFactor","radianToDegreesFactor","degrees","seeds","s0","sow","integer","frac","integerInRange","realInRange","normal","pick","ary","weightedPick","QuadTree","maxObjects","maxLevels","objects","nodes","_empty","subWidth","subHeight","populate","populateHandler","insert","retrieve","returnObjects","getHostName","location","hostname","checkDomainName","domain","updateQueryString","redirect","href","re","separator","getQueryString","parameter","keyValues","search","substring","decodeURI","decodeURIComponent","_tweens","_add","easeMap","Power0","Easing","Power1","Power2","Power3","Power4","Linear","None","Quad","Quadratic","Out","Cubic","Quart","Quartic","Quint","Quintic","Sine","Sinusoidal","Expo","Exponential","Circ","Circular","Elastic","Back","Bounce","Quad.easeIn","In","Cubic.easeIn","Quart.easeIn","Quint.easeIn","Sine.easeIn","Expo.easeIn","Circ.easeIn","Elastic.easeIn","Back.easeIn","Bounce.easeIn","Quad.easeOut","Cubic.easeOut","Quart.easeOut","Quint.easeOut","Sine.easeOut","Expo.easeOut","Circ.easeOut","Elastic.easeOut","Back.easeOut","Bounce.easeOut","Quad.easeInOut","InOut","Cubic.easeInOut","Quart.easeInOut","Quint.easeInOut","Sine.easeInOut","Expo.easeInOut","Circ.easeInOut","Elastic.easeInOut","Back.easeInOut","Bounce.easeInOut","_pauseAll","_resumeAll","getAll","pendingDelete","removeFrom","_manager","addTweens","numTweens","isTweening","some","_pause","_resume","pauseAll","resumeAll","timeline","timeScale","repeatCounter","onStart","onLoop","onRepeat","onChildComplete","onComplete","chainedTween","isPaused","_onUpdateCallback","_onUpdateCallbackContext","_pausedTime","_hasStarted","ease","yoyo","Default","TweenData","vEnd","loadValues","updateTweenData","repeatDelay","yoyoDelay","easing","interpolation","repeatAll","chain","startTime","status","PENDING","RUNNING","LOOPED","COMPLETE","generateData","vStart","vStartCache","vEndCache","inReverse","easingFunction","interpolationFunction","interpolationContext","isFrom","yoyoCounter","elapsedMS","fps","blob","reversed","asin","prevTime","suggestedFps","advancedTiming","fpsMin","fpsMax","msMin","msMax","pauseDuration","timeExpected","Timer","_frameCount","_elapsedAccumulator","_started","_timeLastSecond","_pauseStarted","_justResumed","_timers","timer","autoDestroy","updateAdvancedTiming","updateTimers","previousDateNow","timeCallExpected","elapsedSince","since","elapsedSecondsSince","running","expired","nextTick","timeCap","_pauseTotal","_now","_marked","_diff","_newTick","MINUTE","SECOND","HALF","QUARTER","repeatCount","tick","TimerEvent","clearEvents","clearPendingEvents","adjustEvents","baseTime","ms","currentFrame","currentAnim","updateIfVisible","isLoaded","_frameData","_anims","_outputFrames","anim","copyFrameData","useNumericIndex","getFrameIndexes","validateFrames","checkFrameName","isPlaying","getAnimation","refreshFrame","getFrame","getFrameByName","_frameIndex","_frames","loopCount","isFinished","_pauseStartTime","_frameDiff","_frameSkip","onUpdate","_timeLastFrame","_timeNextFrame","updateCurrentFrame","onAnimationStart$dispatch","useLocalFrameIndex","frameIndex","dispatchComplete","onAnimationComplete$dispatch","onAnimationLoop$dispatch","signalUpdate","fromPlay","generateFrameNames","suffix","zeroPad","rotated","rotationDirection","spriteSourceSizeW","spriteSourceSizeH","setTrim","actualWidth","actualHeight","destX","destY","destWidth","destHeight","getRect","_frameNames","getFrameRange","AnimationParser","spriteSheet","frameMax","spacing","column","JSONData","json","newFrame","filename","sourceSize","spriteSourceSize","JSONDataHash","XMLData","xml","getElementsByTagName","frameX","frameY","autoResolveURL","_cache","binary","bitmapFont","_urlMap","_urlResolver","_urlTemp","onSoundUnlock","_cacheMap","TEXTURE","SOUND","PHYSICS","BINARY","BITMAPFONT","JSON","XML","SHADER","RENDER_TEXTURE","addDefaultImage","addMissingImage","addCanvas","removeImage","_resolveURL","addSound","audioTag","decoded","isDecoding","touchLocked","addText","addPhysicsData","addTilemap","mapData","addBinary","binaryData","addBitmapFont","atlasData","atlasType","LoaderParser","jsonBitmapFont","xmlBitmapFont","addJSON","addXML","addVideo","isBlob","addShader","addSpriteSheet","addTextureAtlas","TEXTURE_ATLAS_XML_STARLING","reloadSound","getSound","reloadSoundComplete","updateSound","decodedSound","isSoundDecoded","isSoundReady","checkKey","checkURL","checkCanvasKey","checkTextureKey","checkSoundKey","checkTextKey","checkPhysicsKey","checkTilemapKey","checkBinaryKey","checkBitmapDataKey","checkBitmapFontKey","checkJSONKey","checkXMLKey","checkVideoKey","checkShaderKey","checkRenderTextureKey","full","getTextureFrame","getSoundData","getText","getPhysicsData","fixtureKey","fixtures","fixture","getTilemapData","getBinary","getBitmapData","getJSON","getXML","getVideo","getShader","getRenderTexture","getBaseTexture","getFrameCount","getFrameByIndex","getPixiTexture","getPixiBaseTexture","getURL","getKeys","removeCanvas","removeFromPixi","removeSound","removeText","removePhysics","removeTilemap","removeBinary","removeBitmapData","removeBitmapFont","removeJSON","removeXML","removeVideo","removeShader","removeRenderTexture","removeSpriteSheet","removeTextureAtlas","atlas","baseURL","isLoading","preloadSprite","onLoadStart","onLoadComplete","onPackComplete","onFileStart","onFileComplete","onFileError","useXDomainRequest","_warnedAboutXDomainRequest","enableParallel","maxParallelDownloads","_withSyncPointDepth","_fileList","_flightQueue","_processingHead","_fileLoadStarted","_totalPackCount","_totalFileCount","_loadedPackCount","_loadedFileCount","TEXTURE_ATLAS_JSON_ARRAY","TEXTURE_ATLAS_JSON_HASH","PHYSICS_LIME_CORONA_JSON","PHYSICS_PHASER_JSON","setPreloadSprite","checkKeyExists","getAssetIndex","bestFound","loaded","loading","getAsset","fileIndex","addToFileList","overwrite","extension","syncPoint","currentFile","replaceInFileList","pack","script","spritesheet","urls","autoDecode","noAudio","audiosprite","jsonURL","jsonData","loadEvent","asBlob","CSV","TILED_JSON","LIME_CORONA_JSON","textureURL","atlasURL","parseXml","atlasJSONArray","atlasJSONHash","atlasXML","withSyncPoint","addSyncPoint","asset","removeFile","updateProgress","processLoadQueue","finishedLoading","requestUrl","requestObject","progress","syncblock","inflightLimit","processPack","loadFile","abnormal","asyncComplete","errorMessage","packData","transformUrl","xhrLoad","fileComplete","loadImageTag","getAudioURL","usingWebAudio","usingAudioTag","loadAudioTag","fileError","getVideoURL","loadVideoTag","jsonLoadComplete","xmlLoadComplete","csvLoadComplete","onload","onerror","controls","autoplay","videoLoadEvent","canplay","Audio","playThroughEvent","XDomainRequest","xhrLoadWithXDR","xhr","XMLHttpRequest","open","responseType","message","send","timeout","ontimeout","onprogress","videoType","uri","lastIndexOf","audioType","reason","loadNext","responseText","Blob","response","decode","language","defer","head","contentType","domparser","DOMParser","parseFromString","ActiveXObject","async","loadXML","totalLoadedFiles","totalLoadedPacks","progressFloat","info","common","getAttribute","letters","kernings","second","finalizeBitmapFont","_face","_lineHeight","_id","_xoffset","_yoffset","_xadvance","_second","_first","_amount","bitmapFontData","autoplayKey","sounds","spritemap","addMarker","connectToMaster","markers","totalDuration","currentTime","durationMS","stopTime","pausedPosition","pausedTime","currentMarker","fadeTween","pendingPlayback","override","allowMultiple","externalNode","masterGainNode","gainNode","_sound","masterGain","createGain","createGainNode","gain","soundHasUnlocked","onDecoded","onPlay","onStop","onMute","onMarkerComplete","onFadeComplete","_volume","_buffer","_muted","_tempMarker","_tempPosition","_tempVolume","_muteVolume","_tempLoop","_onDecodedEventDispatched","removeMarker","onEndedHandler","isDecoded","loopFull","forceRestart","noteOff","createBufferSource","onended","noteGrainOn","muted","prevMarker","fadeIn","fadeTo","fadeOut","fadeComplete","mute","onSoundDecode","onVolumeChange","onUnMute","channels","_codeMuted","_unlockSource","_sounds","_watchList","_watching","_watchCallback","_watchContext","disableAudio","disableWebAudio","audioContext","fakeiOSTouchLock","setTouchLock","unlock","noteOn","stopAll","soundData","decodeAudioData","setDecodedCallback","files","playbackState","PLAYING_STATE","FINISHED_STATE","removeByKey","columnWidth","renderShadow","currentAlpha","currentColor","soundInfo","cameraInfo","hideIfUp","downColor","upColor","worldX","worldY","spriteInputInfo","justDown","justUp","inputInfo","spriteBounds","filled","rectangle","ropeSegments","self","segment","spriteInfo","spriteCoords","lineInfo","forceType","quadTree","quadtree","Body","NINJA","Ninja","BOX2D","Box2D","renderBody","bodyInfo","renderBodyInfo","box2d","box2dWorld","renderDebugDraw","box2dBody","getByKey","randomIndex","removeRandomItem","shuffle","transposeMatrix","sourceRowCount","sourceColCount","rotateMatrix","findClosest","arr","NaN","low","high","POSITIVE_INFINITY","numberArray","numberArrayStep","rgba","RGBtoHSL","RGBtoHSV","fromRGBA","toRGBA","q","hueToColor","updateColor","HSVtoRGB","color32","getColor32","componentToHex","hexToRGB","hexToColor","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","blendNormal","blendAverage","blendSubtract","blendNegation","blendLinearDodge","blendLinearBurn","blendLinearLight","blendVividLight","blendPinLight","blendHardMix","blendReflect","blendGlow","blendPhoenix","LinkedList","entity","arcade","ninja","chipmunk","matter","CHIPMUNK","MATTERJS","P2","Matter","startSystem","system","enableAABB","gravity","checkCollision","OVERLAP_BIAS","forceX","sortDirection","LEFT_RIGHT","skipQuadTree","_total","SORT_NONE","RIGHT_LEFT","TOP_BOTTOM","BOTTOM_TOP","updateMotion","velocityDelta","computeVelocity","angularVelocity","angularAcceleration","angularDrag","maxAngular","velocity","acceleration","drag","maxVelocity","allowGravity","object1","object2","overlapCallback","processCallback","collideHandler","collide","collideCallback","sortLeftRight","sortRightLeft","sortTopBottom","sortBottomTop","overlapOnly","collideGroupVsSelf","collideSpriteVsSprite","collideSpriteVsGroup","collideSpriteVsTilemapLayer","collideGroupVsGroup","collideGroupVsTilemapLayer","sprite1","sprite2","separate","items","group1","group2","body1","body2","separateX","separateY","immovable","maxOverlap","deltaAbsX","embedded","touching","none","overlapX","customSeparateX","bounce","moves","friction","nv1","mass","nv2","avg","deltaAbsY","overlapY","customSeparateY","getObjectsUnderPointer","getObjectsAtLocation","callbackArg","moveToObject","maxTime","distanceBetween","moveToPointer","angleToPointer","distanceToPointer","moveToXY","distanceToXY","velocityFromAngle","velocityFromRotation","accelerationFromRotation","accelerateToObject","xSpeedMax","ySpeedMax","accelerateToPointer","accelerateToXY","angleToXY","allowRotation","preRotation","newVelocity","deltaMax","facing","collideWorldBounds","any","wasTouching","blocked","tilePadding","syncBounds","_sx","_sy","updateBounds","asx","asy","check","onFloor","onWall","TilemapCollision","TILE_BIAS","tilemapLayer","getTiles","separateTile","tile","collisionCallback","collisionCallbackContext","faceLeft","faceRight","faceTop","faceBottom","tileCheckX","tileCheckY","collideRight","collideLeft","processTileSeparationX","collideDown","collideUp","processTileSeparationY","ImageCollection","firstgid","imageWidth","imageHeight","imageMargin","imageSpacing","images","containsImageIndex","imageIndex","gid","Tile","flipped","scanned","setCollisionCallback","setCollision","resetCollision","isInteresting","collides","faces","TilemapParser","version","widthInPixels","heightInPixels","tilesets","imagecollections","tiles","collideIndexes","collision","currentLayer","debugMap","_results","_tempA","NORTH","EAST","SOUTH","WEST","setTileSize","createBlankLayer","addTilesetImage","tileset","tileMargin","tileSpacing","getTilesetIndex","setImage","newSet","Tileset","countX","countY","columns","rows","createFromObjects","CustomClass","adjustY","found","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","map","renderSettings","enableScrollDelta","overdrawRatio","copyCanvas","debugSettings","missingImageFill","debuggedTileOverfill","forceFullRedraw","debugAlpha","facingEdgeStroke","collidingTileOverfill","scrollFactorX","scrollFactorY","rayStepRate","_wrap","_mc","renderWidth","renderHeight","_scrollX","_scrollY","ensureSharedCopyCanvas","sharedCopyCanvas","resizeWorld","_fixX","_unfixX","_fixY","_unfixY","getTileX","getTileY","getTileXY","getRayCastTiles","interestingFace","coord","fetchAll","wy","wx","resolveTileset","tileIndex","setIndex","containsTileIndex","resetTilesetCache","setScale","xScale","yScale","shiftCanvas","copyW","copyH","copyContext","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","flippedVal","tileproperties","tileProperties","updateTileData","imagewidth","imageheight","newCollection","polyline","polygon","ellipse","sid","drawCoords","coordIndex","setSpacing","rowCount","colCount","emitters","ID","minParticleSpeed","maxParticleSpeed","minParticleScale","maxParticleScale","minRotation","maxRotation","minParticleAlpha","maxParticleAlpha","particleClass","particleDrag","on","particleAnchor","emitX","emitY","particleBringToTop","particleSendToBack","_minParticleScale","_maxParticleScale","_quantity","_timer","_counter","_flowQuantity","_flowTotal","_explode","emitParticle","makeParticles","particle","rndKey","rndFrame","explode","flow","forceQuantity","setXSpeed","setYSpeed","setRotation","setAlpha","rate","tweenData","at","onAccess","onError","onTimeout","videoStream","isStreaming","retryLimit","retry","retryInterval","_retryID","_pending","_autoplay","_video","createVideoFromBlob","videoWidth","videoHeight","createVideoFromURL","snapshot","connectToMediaStream","stream","startMediaStream","captureAudio","removeVideoElement","setAttribute","getUserMediaTimeout","getUserMediaSuccess","getUserMediaError","mozSrcObject","createObjectURL","onloadeddata","checkStream","checkVideoProgress","change","playbackRate","setPause","setResume","playHandler","playing","ended","changeSource","grab","hasChildNodes","firstChild","removeAttribute"],"mappings":"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"} \ No newline at end of file diff --git a/build/custom/phaser-arcade-physics.min.js b/build/custom/phaser-arcade-physics.min.js index 3e63deb18..53cb968ff 100644 --- a/build/custom/phaser-arcade-physics.min.js +++ b/build/custom/phaser-arcade-physics.min.js @@ -6,16 +6,16 @@ a.bindFramebuffer(a.FRAMEBUFFER,i.frameBuffer),a.activeTexture(a.TEXTURE0),a.bin },b.TilingSprite.prototype=Object.create(b.Sprite.prototype),b.TilingSprite.prototype.constructor=b.TilingSprite,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){if(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.refreshTexture){if(this.generateTilingTexture(!0),!this.tilingTexture)return;this.tilingTexture.needsUpdate&&(a.renderer.updateTexture(this.tilingTexture.baseTexture),this.tilingTexture.needsUpdate=!1)}a.spriteBatch.renderTilingSprite(this);for(var b=0;bn?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.destroy=function(){b.Sprite.prototype.destroy.call(this),this.tileScale=null,this.tileScaleOffset=null,this.tilePosition=null,this.tilingTexture&&(this.tilingTexture.destroy(!0),this.tilingTexture=null)},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}}),"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,b}).call(this),function(){function a(a,b){this._scaleFactor=a,this._deltaMode=b,this.originalEvent=null}var b=this,c=c||{VERSION:"2.4.1",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,CIRCLE:21,RECTANGLE:22,LINE:23,MATRIX:24,POINT:25,ROUNDEDRECTANGLE:26,CREATURE:27,VIDEO:28,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:PIXI||{}};if(Math.trunc||(Math.trunc=function(a){return 0>a?Math.ceil(a):Math.floor(a)}),Function.prototype.bind||(Function.prototype.bind=function(){var a=Array.prototype.slice;return function(b){function c(){var f=e.concat(a.call(arguments));d.apply(this instanceof c?this:b,f)}var d=this,e=a.call(arguments,1);if("function"!=typeof d)throw new TypeError;return c.prototype=function f(a){return a&&(f.prototype=a),this instanceof f?void 0:new f}(d.prototype),c}}()),Array.isArray||(Array.isArray=function(a){return"[object Array]"==Object.prototype.toString.call(a)}),Array.prototype.forEach||(Array.prototype.forEach=function(a){"use strict";if(void 0===this||null===this)throw new TypeError;var b=Object(this),c=b.length>>>0;if("function"!=typeof a)throw new TypeError;for(var d=arguments.length>=2?arguments[1]:void 0,e=0;c>e;e++)e in b&&a.call(d,b[e],e,b)}),"function"!=typeof window.Uint32Array&&"object"!=typeof window.Uint32Array){var d=function(a){var b=new Array;window[a]=function(a){if("number"==typeof a){Array.call(this,a),this.length=a;for(var b=0;bf&&(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 void 0===a&&(a=50),a>0&&100*Math.random()<=a},randomChoice:function(a,b){return Math.random()<.5?a:b},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(void 0===b)var b=0;if(void 0===c)var c=" ";if(void 0===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},mixinPrototype:function(a,b,c){void 0===c&&(c=!1);for(var d=Object.keys(b),e=0;e0&&(this._radius=.5*d),this.type=c.CIRCLE},c.Circle.prototype={circumference:function(){return 2*Math.PI*this._radius},random:function(a){void 0===a&&(a=new c.Point);var b=2*Math.PI*Math.random(),d=Math.random()+Math.random(),e=d>1?2-d:d,f=e*Math.cos(b),g=e*Math.sin(b);return a.x=this.x+f*this.radius,a.y=this.y+g*this.radius,a},getBounds:function(){return new c.Rectangle(this.x-this.radius,this.y-this.radius,this.diameter,this.diameter)},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 void 0===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 void 0===d&&(d=!1),void 0===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.Ellipse=function(a,b,d,e){a=a||0,b=b||0,d=d||0,e=e||0,this.x=a,this.y=b,this.width=d,this.height=e,this.type=c.ELLIPSE},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 void 0===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)},random:function(a){void 0===a&&(a=new c.Point);var b=Math.random()*Math.PI*2,d=Math.random();return a.x=Math.sqrt(d)*Math.cos(b),a.y=Math.sqrt(d)*Math.sin(b),a.x=this.x+a.x*this.width/2,a.y=this.y+a.y*this.height/2,a},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},PIXI.Ellipse=c.Ellipse,c.Line=function(a,b,d,e){a=a||0,b=b||0,d=d||0,e=e||0,this.start=new c.Point(a,b),this.end=new c.Point(d,e),this.type=c.LINE},c.Line.prototype={setTo:function(a,b,c,d){return this.start.setTo(a,b),this.end.setTo(c,d),this},fromSprite:function(a,b,c){return void 0===c&&(c=!1),c?this.setTo(a.center.x,a.center.y,b.center.x,b.center.y):this.setTo(a.x,a.y,b.x,b.y)},fromAngle:function(a,b,c,d){return this.start.setTo(a,b),this.end.setTo(a+Math.cos(c)*d,b+Math.sin(c)*d),this},rotate:function(a,b){var c=this.start.x,d=this.start.y;return this.start.rotate(this.end.x,this.end.y,a,b,this.length),this.end.rotate(c,d,a,b,this.length),this},intersects:function(a,b,d){return c.Line.intersectsPoints(this.start,this.end,a.start,a.end,b,d)},reflect:function(a){return c.Line.reflect(this,a)},pointOnLine:function(a,b){return(a-this.start.x)*(this.end.y-this.start.y)===(this.end.x-this.start.x)*(b-this.start.y)},pointOnSegment:function(a,b){var c=Math.min(this.start.x,this.end.x),d=Math.max(this.start.x,this.end.x),e=Math.min(this.start.y,this.end.y),f=Math.max(this.start.y,this.end.y);return this.pointOnLine(a,b)&&a>=c&&d>=a&&b>=e&&f>=b},random:function(a){void 0===a&&(a=new c.Point);var b=Math.random();return a.x=this.start.x+b*(this.end.x-this.start.x),a.y=this.start.y+b*(this.end.y-this.start.y),a},coordinatesOnLine:function(a,b){void 0===a&&(a=1),void 0===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 void 0===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)}}),Object.defineProperty(c.Line.prototype,"normalX",{get:function(){return Math.cos(this.angle-1.5707963267948966)}}),Object.defineProperty(c.Line.prototype,"normalY",{get:function(){return Math.sin(this.angle-1.5707963267948966)}}),Object.defineProperty(c.Line.prototype,"normalAngle",{get:function(){return c.Math.wrap(this.angle-1.5707963267948966,-Math.PI,Math.PI)}}),c.Line.intersectsPoints=function(a,b,d,e,f,g){void 0===f&&(f=!0),void 0===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.Line.reflect=function(a,b){return 2*b.normalAngle-3.141592653589793-a.angle},c.Matrix=function(a,b,d,e,f,g){a=a||1,b=b||0,d=d||0,e=e||1,f=f||0,g=g||0,this.a=a,this.b=b,this.c=d,this.d=e,this.tx=f,this.ty=g,this.type=c.MATRIX},c.Matrix.prototype={fromArray:function(a){return this.setTo(a[0],a[1],a[3],a[4],a[2],a[5])},setTo:function(a,b,c,d,e,f){return this.a=a,this.b=b,this.c=c,this.d=d,this.tx=e,this.ty=f,this},clone:function(a){return void 0===a||null===a?a=new c.Matrix(this.a,this.b,this.c,this.d,this.tx,this.ty):(a.a=this.a,a.b=this.b,a.c=this.c,a.d=this.d,a.tx=this.tx,a.ty=this.ty),a},copyTo:function(a){return a.copyFrom(this),a},copyFrom:function(a){return this.a=a.a,this.b=a.b,this.c=a.c,this.d=a.d,this.tx=a.tx,this.ty=a.ty,this},toArray:function(a,b){return void 0===b&&(b=new PIXI.Float32Array(9)),a?(b[0]=this.a,b[1]=this.b,b[2]=0,b[3]=this.c,b[4]=this.d,b[5]=0,b[6]=this.tx,b[7]=this.ty,b[8]=1):(b[0]=this.a,b[1]=this.c,b[2]=this.tx,b[3]=this.b,b[4]=this.d,b[5]=this.ty,b[6]=0,b[7]=0,b[8]=1),b},apply:function(a,b){return void 0===b&&(b=new c.Point),b.x=this.a*a.x+this.c*a.y+this.tx,b.y=this.b*a.x+this.d*a.y+this.ty,b},applyInverse:function(a,b){void 0===b&&(b=new c.Point);var d=1/(this.a*this.d+this.c*-this.b),e=a.x,f=a.y;return b.x=this.d*d*e+-this.c*d*f+(this.ty*this.c-this.tx*this.d)*d,b.y=this.a*d*f+-this.b*d*e+(-this.ty*this.a+this.tx*this.b)*d,b},translate:function(a,b){return this.tx+=a,this.ty+=b,this},scale:function(a,b){return this.a*=a,this.d*=b,this.c*=a,this.b*=b,this.tx*=a,this.ty*=b,this},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},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},identity:function(){return this.setTo(1,0,0,1,0,0)}},c.identityMatrix=new c.Matrix,PIXI.Matrix=c.Matrix,PIXI.identityMatrix=c.identityMatrix,c.Point=function(a,b){a=a||0,b=b||0,this.x=a,this.y=b,this.type=c.POINT},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 void 0===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 void 0===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)},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 void 0===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 void 0===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 void 0===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 void 0===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.negative=function(a,b){return void 0===b&&(b=new c.Point),b.setTo(-a.x,-a.y)},c.Point.multiplyAdd=function(a,b,d,e){return void 0===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 void 0===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 void 0===b&&(b=new c.Point),b.setTo(-a.y,a.x)},c.Point.rperp=function(a,b){return void 0===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){void 0===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){void 0===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 void 0===b&&(b=new c.Point),b.setTo(-1*a.y,a.x)},c.Point.normalize=function(a,b){void 0===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){void 0===f&&(f=!1),void 0===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.x=b+g*Math.cos(h),a.y=d+g*Math.sin(h),a},c.Point.centroid=function(a,b){if(void 0===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.Polygon=function(){this.area=0,this._points=[],arguments.length>0&&this.setTo.apply(this,arguments),this.closed=!0,this.type=c.POLYGON},c.Polygon.prototype={toNumberArray:function(a){void 0===a&&(a=[]);for(var b=0;b=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,c=0,d=a.length;d>c;c++){if("number"==typeof a[c]){var e=new PIXI.Point(a[c],a[c+1]);c++}else var e=new PIXI.Point(a[c].x,a[c].y);this._points.push(e),e.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.Polygon=c.Polygon,c.Rectangle=function(a,b,d,e){a=a||0,b=b||0,d=d||0,e=e||0,this.x=a,this.y=b,this.width=d,this.height=e,this.type=c.RECTANGLE},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 void 0===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)},ceil:function(){this.x=Math.ceil(this.x),this.y=Math.ceil(this.y)},ceilAll:function(){this.x=Math.ceil(this.x),this.y=Math.ceil(this.y),this.width=Math.ceil(this.width),this.height=Math.ceil(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)},resize:function(a,b){return this.width=a,this.height=b,this},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){return c.Rectangle.intersects(this,a)},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)},random:function(a){return void 0===a&&(a=new c.Point),a.x=this.randomX,a.y=this.randomY,a},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,"bottomLeft",{get:function(){return new c.Point(this.x,this.bottom)},set:function(a){this.x=a.x,this.bottom=a.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 void 0===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 void 0===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 void 0===f&&(f=0),!(b>a.right+f||ca.bottom+f||ed&&(d=a.x),a.xf&&(f=a.y),a.y=c&&a<=c+this.width){var d=this.y;if(b>=d&&b<=d+this.height)return!0}return!1}},c.RoundedRectangle.prototype.constructor=c.RoundedRectangle,PIXI.RoundedRectangle=c.RoundedRectangle,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.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.displayObject=null,this.scale=null,this.totalInView=0,this._targetPosition=new c.Point,this._edge=0,this._position=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={preUpdate:function(){this.totalInView=0},follow:function(a,b){void 0===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),this.target.parent&&this._targetPosition.multiply(this.target.parent.worldTransform.a,this.target.parent.worldTransform.d),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.copyFrom(this.game.world.bounds)},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.Create=function(a){this.game=a,this.bmd=a.make.bitmapData(),this.canvas=this.bmd.canvas,this.ctx=this.bmd.context,this.palettes=[{0:"#000",1:"#9D9D9D",2:"#FFF",3:"#BE2633",4:"#E06F8B",5:"#493C2B",6:"#A46422",7:"#EB8931",8:"#F7E26B",9:"#2F484E",A:"#44891A",B:"#A3CE27",C:"#1B2632",D:"#005784",E:"#31A2F2",F:"#B2DCEF"},{0:"#000",1:"#191028",2:"#46af45",3:"#a1d685",4:"#453e78",5:"#7664fe",6:"#833129",7:"#9ec2e8",8:"#dc534b",9:"#e18d79",A:"#d6b97b",B:"#e9d8a1",C:"#216c4b",D:"#d365c8",E:"#afaab9",F:"#f5f4eb"},{0:"#000",1:"#2234d1",2:"#0c7e45",3:"#44aacc",4:"#8a3622",5:"#5c2e78",6:"#aa5c3d",7:"#b5b5b5",8:"#5e606e",9:"#4c81fb",A:"#6cd947",B:"#7be2f9",C:"#eb8a60",D:"#e23d69",E:"#ffd93f",F:"#fff"},{0:"#000",1:"#fff",2:"#8b4131",3:"#7bbdc5",4:"#8b41ac",5:"#6aac41",6:"#3931a4",7:"#d5de73",8:"#945a20",9:"#5a4100",A:"#bd736a",B:"#525252",C:"#838383",D:"#acee8b",E:"#7b73de",F:"#acacac"},{0:"#000",1:"#191028",2:"#46af45",3:"#a1d685",4:"#453e78",5:"#7664fe",6:"#833129",7:"#9ec2e8",8:"#dc534b",9:"#e18d79",A:"#d6b97b",B:"#e9d8a1",C:"#216c4b",D:"#d365c8",E:"#afaab9",F:"#fff"}]},c.Create.PALETTE_ARNE=0,c.Create.PALETTE_JMP=1,c.Create.PALETTE_CGA=2,c.Create.PALETTE_C64=3,c.Create.PALETTE_JAPANESE_MACHINE=4,c.Create.prototype={texture:function(a,b,c,d,e){void 0===c&&(c=8),void 0===d&&(d=c),void 0===e&&(e=0);var f=b[0].length*c,g=b.length*d;this.bmd.resize(f,g),this.bmd.clear();for(var h=0;hg;g+=e)this.ctx.fillRect(0,g,b,1);for(var h=0;b>h;h+=d)this.ctx.fillRect(h,0,1,c);return this.bmd.generateTexture(a)}},c.Create.prototype.constructor=c.Create,c.State=function(){this.game=null,this.key="",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={init:function(){},preload:function(){},loadUpdate:function(){},loadRender:function(){},create:function(){},update:function(){},preRender:function(){},render:function(){},resize:function(){},paused:function(){},resumed: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.onStateChange=new c.Signal,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),null!==this._pendingState&&"string"!=typeof this._pendingState&&this.add("default",this._pendingState,!0)},add:function(a,b,d){void 0===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.onPreRenderCallback=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){void 0===b&&(b=!0),void 0===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){void 0===a&&(a=!0),void 0===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){var a=this.current;if(this.clearCurrentState(),this.setCurrentState(this._pendingState),this.onStateChange.dispatch(this.current,a),this.current!==this._pendingState)return;this._pendingState=null,this.onPreloadCallback?(this.game.load.reset(!0),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||this.states[a].create||this.states[a].update||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,this.states[a].key=a},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&&this.game.physics.reset(),this.current=a,this._created=!1,this.onInitCallback.apply(this.callbackContext,this._args),a===this._pendingState&&(this._args=[]),this.game._kickstart=!0},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(a){this._created&&this.onPreRenderCallback&&this.onPreRenderCallback.call(this.callbackContext,this.game,a)},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.context.restore()):this.onRenderCallback.call(this.callbackContext,this.game)):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,this.current=""}},c.StateManager.prototype.constructor=c.StateManager,Object.defineProperty(c.StateManager.prototype,"created",{get:function(){return this._created}}),c.Signal=function(){},c.Signal.prototype={_bindings:null,_prevParams:null,memorize:!1,_shouldPropagate:!0,active:!0,_boundDispatch:!0,validateListener:function(a,b){if("function"!=typeof a)throw new Error("Phaser.Signal: listener is a required param of {fn}() and should be a Function.".replace("{fn}",b))},_registerListener:function(a,b,d,e,f){var g,h=this._indexOfListener(a,d);if(-1!==h){if(g=this._bindings[h],g.isOnce()!==b)throw new Error("You cannot add"+(b?"":"Once")+"() then add"+(b?"Once":"")+"() the same listener without removing the relationship first.")}else g=new c.SignalBinding(this,a,b,d,e,f),this._addBinding(g);return this.memorize&&this._prevParams&&g.execute(this._prevParams),g},_addBinding:function(a){this._bindings||(this._bindings=[]);var b=this._bindings.length;do b--;while(this._bindings[b]&&a._priority<=this._bindings[b]._priority);this._bindings.splice(b+1,0,a)},_indexOfListener:function(a,b){if(!this._bindings)return-1;void 0===b&&(b=null);for(var c,d=this._bindings.length;d--;)if(c=this._bindings[d],c._listener===a&&c.context===b)return d;return-1},has:function(a,b){return-1!==this._indexOfListener(a,b)},add:function(a,b,c){this.validateListener(a,"add");var d=[];if(arguments.length>3)for(var e=3;e3)for(var e=3;ea||a>=this.children.length?-1:this.getChildAt(a)},c.Group.prototype.create=function(a,b,c,d,e){void 0===e&&(e=!0);var f=new this.classType(this.game,a,b,c,d);return f.exists=e,f.visible=e,f.alive=e,this.addChild(f),f.z=this.children.length,this.enableBody&&this.game.physics.enable(f,this.physicsBodyType,this.enableBodyDebug),f.events&&f.events.onAddedToGroup$dispatch(f,this),null===this.cursor&&(this.cursor=f),f},c.Group.prototype.createMultiple=function(a,b,c,d){void 0===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 void 0===a&&(a=0),a>this.children.length-1&&(a=0),this.cursor?(this.cursorIndex=a,this.cursor=this.children[this.cursorIndex],this.cursor):void 0},c.Group.prototype.next=function(){return this.cursor?(this.cursorIndex>=this.children.length-1?this.cursorIndex=0:this.cursorIndex++,this.cursor=this.children[this.cursorIndex],this.cursor):void 0},c.Group.prototype.previous=function(){return this.cursor?(0===this.cursorIndex?this.cursorIndex=this.children.length-1:this.cursorIndex--,this.cursor=this.children[this.cursorIndex],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);return-1!==d?(b.parent&&(b.parent instanceof c.Group?b.parent.remove(b):b.parent.removeChild(b)),this.remove(a),this.addAt(b,d),a):void 0},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(void 0===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 void 0===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 void 0===g&&(g=!1),b=b.split("."),void 0===d&&(d=!1),void 0===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){void 0===c&&(c=!1),void 0===d&&(d=!1),void 0===f&&(f=!1),a=a.split("."),e=e||0;for(var g=0;g2){c=[];for(var d=2;d2){e=[];for(var f=2;f2){d=[null];for(var e=2;e2){d=[null];for(var e=2;e2){d=[null];for(var e=2;eb[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;for(var h=0,i=0;i0?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(void 0===b&&(b=!1),void 0===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.removeFromHash(a),this.updateZ(),this.cursor===a&&this.next(),b&&d&&d.destroy(!0),!0},c.Group.prototype.moveAll=function(a,b){if(void 0===b&&(b=!1),this.children.length>0&&a instanceof c.Group){do a.add(this.children[0],b);while(this.children.length>0);this.hash=[],this.cursor=null}return a},c.Group.prototype.removeAll=function(a,b){if(void 0===a&&(a=!1),void 0===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]);this.removeFromHash(c),a&&c&&c.destroy(!0)}while(this.children.length>0);this.hash=[],this.cursor=null}},c.Group.prototype.removeBetween=function(a,b,c,d){if(void 0===b&&(b=this.children.length-1),void 0===c&&(c=!1),void 0===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]);this.removeFromHash(f),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||(void 0===a&&(a=!0),void 0===b&&(b=!1),this.onDestroy.dispatch(this,a,b),this.removeAll(a),this.cursor=null,this.filters=null,this.pendingDestroy=!1,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)}}),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,this.game.state.onStateChange.add(this.stateChange,this)},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.stateChange=function(){this.x=0,this.y=0,this.camera.reset()},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.x=a,this.y=b,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,this.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();(f||g)&&(this.onResize&&this.onResize.call(this.onResizeContext,this,e),this.updateLayout(),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,Object.defineProperty(c.ScaleManager.prototype,"boundingParent",{get:function(){if(this.parentIsWindow||this.isFullScreen&&!this._createdFullScreenTarget)return null;var a=this.game.canvas&&this.game.canvas.parentNode;return a||null}}),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,"isGamePortrait",{get:function(){return this.height>this.width}}),Object.defineProperty(c.ScaleManager.prototype,"isGameLandscape",{get:function(){return this.width>this.height}}),c.Game=function(a,b,d,e,f,g,h,i){return this.id=c.GAMES.push(this)-1,this.config=null,this.physicsConfig=i,this.parent="",this.width=800,this.height=600,this.resolution=1,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.plugins=null,this.rnd=null,this.device=c.Device,this.camera=null,this.canvas=null,this.context=null,this.debug=null,this.particles=null,this.create=null,this.lockRender=!1,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.currentUpdateID=0,this.updatesThisFrame=1,this._deltaTime=0,this._lastCount=0,this._spiraling=0,this._kickstart=!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)),this.device.whenReady(this.boot,this),this},c.Game.prototype={parseConfig:function(a){this.config=a,void 0===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.resolution&&(this.resolution=a.resolution),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||(this.onPause=new c.Signal,this.onResume=new c.Signal,this.onBlur=new c.Signal,this.onFocus=new c.Signal,this.isBooted=!0,this.math=c.Math,this.scale=new c.ScaleManager(this,this._width,this._height),this.stage=new c.Stage(this),this.setUpRenderer(),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.create=new c.Create(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.debug={preUpdate:function(){},update:function(){},reset:function(){}},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._kickstart=!0,window.focus&&(!window.PhaserGlobal||window.PhaserGlobal&&!window.PhaserGlobal.stopFocus)&&window.focus(),this.raf.start())},showDebugHeader:function(){if(!window.PhaserGlobal||!window.PhaserGlobal.hideBanner){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: #9854d8","background: #6c2ca7","color: #ffffff; background: #450f78;","background: #6c2ca7","background: #9854d8","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:this.resolution,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:this.resolution,antialias:this.antialias,preserveDrawingBuffer:this.preserveDrawingBuffer}),this.context=null,this.canvas.addEventListener("webglcontextlost",this.contextLost.bind(this),!1),this.canvas.addEventListener("webglcontextrestored",this.contextRestored.bind(this),!1);this.renderType!==c.HEADLESS&&(this.stage.smoothed=this.antialias,c.Canvas.addToDOM(this.canvas,this.parent,!1),c.Canvas.setTouchAction(this.canvas))},contextLost:function(a){a.preventDefault(),this.renderer.contextLost=!0},contextRestored:function(){this.renderer.initContext(),this.cache.clearGLTextures(),this.renderer.contextLost=!1},update:function(a){if(this.time.update(a),this._kickstart)return this.updateLogic(1/this.time.desiredFps),this.stage.updateTransform(),this.updateRender(this.time.slowMotion*this.time.desiredFps),void(this._kickstart=!1);if(this._spiraling>1&&!this.forceSingleUpdate)this.time.time>this._nextFpsNotification&&(this._nextFpsNotification=this.time.time+1e4,this.fpsProblemNotifier.dispatch()),this._deltaTime=0,this._spiraling=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);var c=0;for(this.updatesThisFrame=Math.floor(this._deltaTime/b),this.forceSingleUpdate&&(this.updatesThisFrame=Math.min(1,this.updatesThisFrame));this._deltaTime>=b&&(this._deltaTime-=b,this.currentUpdateID=c,this.updateLogic(1/this.time.desiredFps),this.stage.updateTransform(),c++,!this.forceSingleUpdate||1!==c););c>this._lastCount?this._spiraling++:c=c.Input.MAX_POINTERS)return console.warn("Phaser.Input.addPointer: Maximum limit of "+c.Input.MAX_POINTERS+" pointers reached."),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&&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 a-b},getPointer:function(a){void 0===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._pollCounterthis.game.time.time},justReleased:function(a){return a=a||250,this.isUp&&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,this.altKey=!1,this.shiftKey=!1,this.ctrlKey=!1},destroy:function(){this.onDown.dispose(),this.onUp.dispose(),this.onFloat.dispose(),this.parent=null,this.game=null}},c.DeviceButton.prototype.constructor=c.DeviceButton,Object.defineProperty(c.DeviceButton.prototype,"duration",{get:function(){return this.isUp?-1:this.game.time.time-this.timeDown}}),c.Pointer=function(a,b){this.game=a,this.id=b,this.type=c.POINTER,this.exists=!0,this.identifier=0,this.pointerId=null,this.target=null,this.button=null,this.leftButton=new c.DeviceButton(this,c.Pointer.LEFT_BUTTON),this.middleButton=new c.DeviceButton(this,c.Pointer.MIDDLE_BUTTON),this.rightButton=new c.DeviceButton(this,c.Pointer.RIGHT_BUTTON),this.backButton=new c.DeviceButton(this,c.Pointer.BACK_BUTTON),this.forwardButton=new c.DeviceButton(this,c.Pointer.FORWARD_BUTTON),this.eraserButton=new c.DeviceButton(this,c.Pointer.ERASER_BUTTON),this._holdSent=!1,this._history=[],this._nextDrop=0,this._stateReset=!1,this.withinGame=!1,this.clientX=-1,this.clientY=-1,this.pageX=-1,this.pageY=-1,this.screenX=-1,this.screenY=-1,this.rawMovementX=0,this.rawMovementY=0,this.movementX=0,this.movementY=0,this.x=-1,this.y=-1,this.isMouse=0===b,this.isDown=!1,this.isUp=!0,this.timeDown=0,this.timeUp=0,this.previousTapTime=0,this.totalTouches=0,this.msSinceLastClick=Number.MAX_VALUE,this.targetObject=null,this.active=!1,this.dirty=!1,this.position=new c.Point,this.positionDown=new c.Point,this.positionUp=new c.Point,this.circle=new c.Circle(0,0,44),this._clickTrampolines=null,this._trampolineTargetObject=null},c.Pointer.NO_BUTTON=0,c.Pointer.LEFT_BUTTON=1,c.Pointer.RIGHT_BUTTON=2,c.Pointer.MIDDLE_BUTTON=4,c.Pointer.BACK_BUTTON=8,c.Pointer.FORWARD_BUTTON=16,c.Pointer.ERASER_BUTTON=32,c.Pointer.prototype={resetButtons:function(){this.isDown=!1,this.isUp=!0,this.isMouse&&(this.leftButton.reset(),this.middleButton.reset(),this.rightButton.reset(),this.backButton.reset(),this.forwardButton.reset(),this.eraserButton.reset())},updateButtons:function(a){this.button=a.button;var b=a.buttons;void 0!==b&&(c.Pointer.LEFT_BUTTON&b?this.leftButton.start(a):this.leftButton.stop(a),c.Pointer.RIGHT_BUTTON&b?this.rightButton.start(a):this.rightButton.stop(a),c.Pointer.MIDDLE_BUTTON&b?this.middleButton.start(a):this.middleButton.stop(a),c.Pointer.BACK_BUTTON&b?this.backButton.start(a):this.backButton.stop(a),c.Pointer.FORWARD_BUTTON&b?this.forwardButton.start(a):this.forwardButton.stop(a),c.Pointer.ERASER_BUTTON&b?this.eraserButton.start(a):this.eraserButton.stop(a),a.ctrlKey&&this.leftButton.isDown&&this.rightButton.start(a),this.isUp=!0,this.isDown=!1,(this.leftButton.isDown||this.rightButton.isDown||this.middleButton.isDown||this.backButton.isDown||this.forwardButton.isDown||this.eraserButton.isDown)&&(this.isUp=!1,this.isDown=!0))},start:function(a){return a.pointerId&&(this.pointerId=a.pointerId),this.identifier=a.identifier,this.target=a.target,this.isMouse?this.updateButtons(a):(this.isDown=!0,this.isUp=!1),this._history=[],this.active=!0,this.withinGame=!0,this.dirty=!1,this._clickTrampolines=null,this._trampolineTargetObject=null,this.msSinceLastClick=this.game.time.time-this.timeDown,this.timeDown=this.game.time.time,this._holdSent=!1,this.move(a,!0),this.positionDown.setTo(this.x,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.totalActivePointers)&&(this.game.input.x=this.x,this.game.input.y=this.y,this.game.input.position.setTo(this.x,this.y),this.game.input.onDown.dispatch(this,a),this.game.input.resetSpeed(this.x,this.y)),this._stateReset=!1,this.totalTouches++,null!==this.targetObject&&this.targetObject._touchedHandler(this),this -},update:function(){this.active&&(this.dirty&&(this.game.input.interactiveItems.total>0&&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.totalActivePointers)&&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(void 0===b&&(b=!1),void 0!==a.button&&(this.button=a.button),b&&this.updateButtons(a),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.totalActivePointers)&&(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.renderOrderID,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.renderOrderID,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&&this.withinGame?void a.preventDefault():(this.isMouse?this.updateButtons(a):(this.isDown=!1,this.isUp=!0),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.totalActivePointers)&&(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.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&&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;fd;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}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 void 0===c&&(c=!0),0===this.sprite.scale.x||0===this.sprite.scale.y||this.priorityIDa||this.priorityID===a&&this.sprite.renderOrderIDb;b++)if(this._pointerData[b].isOver)return!0}return!1},pointerOut:function(a){if(this.enabled){if(void 0!==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)?(void 0===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)?(void 0===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&&this._pointerData[a.id].isOver){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.snapPoint.set(this.sprite.cameraOffset.x,this.sprite.cameraOffset.y))):(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,this.snapPoint.set(this.sprite.x,this.sprite.y))),this.sprite.events.onDragUpdate.dispatch(this.sprite,a,b,c,this.snapPoint),!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){var b=this.sprite.x,c=this.sprite.y;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 d=this.sprite.getBounds();this.sprite.x=this.globalToLocalX(a.x)+(this.sprite.x-d.centerX),this.sprite.y=this.globalToLocalY(a.y)+(this.sprite.y-d.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.dragStartPoint.set(b,c),this.sprite.events.onDragStart$dispatch(this.sprite,a,b,c)},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){void 0===a&&(a=!0),void 0===b&&(b=!0),this.allowHorizontalDrag=a,this.allowVerticalDrag=b},enableSnap:function(a,b,c,d,e,f){void 0===c&&(c=!0),void 0===d&&(d=!1),void 0===e&&(e=0),void 0===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.leftthis.boundsRect.right&&(this.sprite.x=this.boundsRect.right-(this.sprite.width-this.sprite.offsetX)),this.sprite.topthis.boundsRect.bottom&&(this.sprite.y=this.boundsRect.bottom-(this.sprite.height-this.sprite.offsetY)))},checkBoundsSprite:function(){this.sprite.fixedToCamera&&this.boundsSprite.fixedToCamera?(this.sprite.cameraOffset.xthis.boundsSprite.cameraOffset.x+this.boundsSprite.width&&(this.sprite.cameraOffset.x=this.boundsSprite.cameraOffset.x+this.boundsSprite.width-this.sprite.width),this.sprite.cameraOffset.ythis.boundsSprite.cameraOffset.y+this.boundsSprite.height&&(this.sprite.cameraOffset.y=this.boundsSprite.cameraOffset.y+this.boundsSprite.height-this.sprite.height)):(this.sprite.leftthis.boundsSprite.right&&(this.sprite.x=this.boundsSprite.right-(this.sprite.width-this.sprite.offsetX)),this.sprite.topthis.boundsSprite.bottom&&(this.sprite.y=this.boundsSprite.bottom-(this.sprite.height-this.sprite.offsetY)))}},c.InputHandler.prototype.constructor=c.InputHandler,c.Gamepad=function(a){this.game=a,this._gamepadIndexMap={},this._rawPads=[],this._active=!1,this.enabled=!0,this._gamepadSupportAvailable=!!navigator.webkitGetGamepads||!!navigator.webkitGamepads||-1!=navigator.userAgent.indexOf("Firefox/")||!!navigator.getGamepads,this._prevRawGamepadTypes=[],this._prevTimestamps=[],this.callbackContext=this,this.onConnectCallback=null,this.onDisconnectCallback=null,this.onDownCallback=null,this.onUpCallback=null,this.onAxisCallback=null,this.onFloatCallback=null,this._ongamepadconnected=null,this._gamepaddisconnected=null,this._gamepads=[new c.SinglePad(a,this),new c.SinglePad(a,this),new c.SinglePad(a,this),new c.SinglePad(a,this)]},c.Gamepad.prototype={addCallbacks:function(a,b){"undefined"!=typeof b&&(this.onConnectCallback="function"==typeof b.onConnect?b.onConnect:this.onConnectCallback,this.onDisconnectCallback="function"==typeof b.onDisconnect?b.onDisconnect:this.onDisconnectCallback,this.onDownCallback="function"==typeof b.onDown?b.onDown:this.onDownCallback,this.onUpCallback="function"==typeof b.onUp?b.onUp:this.onUpCallback,this.onAxisCallback="function"==typeof b.onAxis?b.onAxis:this.onAxisCallback,this.onFloatCallback="function"==typeof b.onFloat?b.onFloat:this.onFloatCallback,this.callbackContext=a)},start:function(){if(!this._active){this._active=!0;var a=this;this._onGamepadConnected=function(b){return a.onGamepadConnected(b)},this._onGamepadDisconnected=function(b){return a.onGamepadDisconnected(b)},window.addEventListener("gamepadconnected",this._onGamepadConnected,!1),window.addEventListener("gamepaddisconnected",this._onGamepadDisconnected,!1)}},onGamepadConnected:function(a){var b=a.gamepad;this._rawPads.push(b),this._gamepads[b.index].connect(b)},onGamepadDisconnected:function(a){var b=a.gamepad;for(var c in this._rawPads)this._rawPads[c].index===b.index&&this._rawPads.splice(c,1);this._gamepads[b.index].disconnect()},update:function(){this._pollGamepads(),this.pad1.pollStatus(),this.pad2.pollStatus(),this.pad3.pollStatus(),this.pad4.pollStatus()},_pollGamepads:function(){if(navigator.getGamepads)var a=navigator.getGamepads();else if(navigator.webkitGetGamepads)var a=navigator.webkitGetGamepads();else if(navigator.webkitGamepads)var a=navigator.webkitGamepads();if(a){this._rawPads=[];for(var b=!1,c=0;c0&&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.maxHealth&&(this.health=this.maxHealth)),this}},c.Component.InCamera=function(){},c.Component.InCamera.prototype={inCamera:{get:function(){return this.game.world.camera.view.intersects(this._bounds)}}},c.Component.InputEnabled=function(){},c.Component.InputEnabled.prototype={input:null,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()}}},c.Component.InWorld=function(){},c.Component.InWorld.preUpdate=function(){if((this.autoCull||this.checkWorldBounds)&&(this._bounds.copyFrom(this.getBounds()),this._bounds.x+=this.game.camera.view.x,this._bounds.y+=this.game.camera.view.y,this.autoCull&&(this.game.world.camera.view.intersects(this._bounds)?(this.renderable=!0,this.game.world.camera.totalInView++):this.renderable=!1),this.checkWorldBounds))if(this._outOfBoundsFired&&this.game.world.bounds.intersects(this._bounds))this._outOfBoundsFired=!1,this.events.onEnterBounds$dispatch(this);else if(!this._outOfBoundsFired&&!this.game.world.bounds.intersects(this._bounds)&&(this._outOfBoundsFired=!0,this.events.onOutOfBounds$dispatch(this),this.outOfBoundsKill))return this.kill(),!1;return!0},c.Component.InWorld.prototype={checkWorldBounds:!1,outOfBoundsKill:!1,_outOfBoundsFired:!1,inWorld:{get:function(){return this.game.world.bounds.intersects(this.getBounds())}}},c.Component.LifeSpan=function(){},c.Component.LifeSpan.preUpdate=function(){return this.lifespan>0&&(this.lifespan-=this.game.time.physicsElapsedMS,this.lifespan<=0)?(this.kill(),!1):!0},c.Component.LifeSpan.prototype={alive:!0,lifespan:0,revive:function(a){return void 0===a&&(a=1),this.alive=!0,this.exists=!0,this.visible=!0,"number"==typeof this.health&&(this.health=a),this.events&&this.events.onRevived$dispatch(this),this},kill:function(){return this.alive=!1,this.exists=!1,this.visible=!1,this.events&&this.events.onKilled$dispatch(this),this}},c.Component.LoadTexture=function(){},c.Component.LoadTexture.prototype={customRender:!1,_frame:null,loadTexture:function(a,b,d){b=b||0,(d||void 0===d)&&this.animations&&this.animations.stop(),this.key=a,this.customRender=!1;var e=this.game.cache,f=!0,g=!this.texture.baseTexture.scaleMode;if(c.RenderTexture&&a instanceof c.RenderTexture)this.key=a.key,this.setTexture(a);else if(c.BitmapData&&a instanceof c.BitmapData)this.customRender=!0,this.setTexture(a.texture),e.hasFrameData(a.key,c.Cache.BITMAPDATA)&&(f=!this.animations.loadFrameData(e.getFrameData(a.key,c.Cache.BITMAPDATA),b));else if(c.Video&&a instanceof c.Video){this.customRender=!0;var h=a.texture.valid;this.setTexture(a.texture),this.setFrame(a.texture.frame.clone()),a.onChangeSource.add(this.resizeFrame,this),this.texture.valid=h}else if(a instanceof PIXI.Texture)this.setTexture(a);else{var i=e.getImage(a,!0);this.key=i.key,this.setTexture(new PIXI.Texture(i.base)),f=!this.animations.loadFrameData(i.frameData,b)}f&&(this._frame=c.Rectangle.clone(this.texture.frame)),g||(this.texture.baseTexture.scaleMode=1)},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.requiresReTint=!0,this.texture._updateUvs(),this.tilingTexture&&(this.refreshTexture=!0)},resizeFrame:function(a,b,c){this.texture.frame.resize(b,c),this.texture.setFrame(this.texture.frame)},resetFrame:function(){this._frame&&this.setFrame(this._frame)},frame:{get:function(){return this.animations.frame},set:function(a){this.animations.frame=a}},frameName:{get:function(){return this.animations.frameName},set:function(a){this.animations.frameName=a}}},c.Component.Overlap=function(){},c.Component.Overlap.prototype={overlap:function(a){return c.Rectangle.intersects(this.getBounds(),a.getBounds())}},c.Component.PhysicsBody=function(){},c.Component.PhysicsBody.preUpdate=function(){return this.fresh&&this.exists?(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.previousPosition.set(this.world.x,this.world.y),this.previousRotation=this.rotation,this.body&&this.body.preUpdate(),this.fresh=!1,!1):(this.previousPosition.set(this.world.x,this.world.y),this.previousRotation=this.rotation,this._exists&&this.parent.exists?!0:(this.renderOrderID=-1,!1))},c.Component.PhysicsBody.postUpdate=function(){this.exists&&this.body&&this.body.postUpdate()},c.Component.PhysicsBody.prototype={body:null,x:{get:function(){return this.position.x},set:function(a){this.position.x=a,this.body&&!this.body.dirty&&(this.body._reset=!0)}},y:{get:function(){return this.position.y},set:function(a){this.position.y=a,this.body&&!this.body.dirty&&(this.body._reset=!0)}}},c.Component.Reset=function(){},c.Component.Reset.prototype.reset=function(a,b,c){return void 0===c&&(c=1),this.world.set(a,b),this.position.set(a,b),this.fresh=!0,this.exists=!0,this.visible=!0,this.renderable=!0,this.components.InWorld&&(this._outOfBoundsFired=!1),this.components.LifeSpan&&(this.alive=!0,this.health=c),this.components.PhysicsBody&&this.body&&this.body.reset(a,b,!1,!1),this},c.Component.ScaleMinMax=function(){},c.Component.ScaleMinMax.prototype={transformCallback:this.checkTransform,transformCallbackContext:this,scaleMin:null,scaleMax:null,checkTransform:function(a){this.scaleMin&&(a.athis.scaleMax.x&&(a.a=this.scaleMax.x),a.d>this.scaleMax.y&&(a.d=this.scaleMax.y))},setScaleMinMax:function(a,b,d,e){void 0===b?b=d=e=a:void 0===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)}},c.Component.Smoothed=function(){},c.Component.Smoothed.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)}}},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 void 0===f&&(f=this.world),f.add(new c.Image(this.game,a,b,d,e))},sprite:function(a,b,c,d,e){return void 0===e&&(e=this.world),e.create(a,b,c,d)},creature:function(a,b,d,e,f){void 0===f&&(f=this.world);var g=new c.Creature(this.game,a,b,d,e);return f.add(g),g},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 void 0===a&&(a=null),void 0===b&&(b="group"),void 0===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 void 0===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 void 0===g&&(g=this.world),g.add(new c.Rope(this.game,a,b,d,e,f))},text:function(a,b,d,e,f){return void 0===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 void 0===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 void 0===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 void 0===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){(void 0===d||""===d)&&(d=this.game.rnd.uuid()),void 0===e&&(e=!1);var f=new c.RenderTexture(this.game,a,b,d);return e&&this.game.cache.addRenderTexture(d,f),f},video:function(a,b){return new c.Video(this.game,a,b)},bitmapData:function(a,b,d,e){void 0===e&&(e=!1),(void 0===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,this.game.tweens)},group:function(a,b,d,e,f){return new c.Group(this.game,a,b,d,e,f)},spriteBatch:function(a,b,d){return void 0===b&&(b="group"),void 0===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,g){return new c.BitmapText(this.game,a,b,d,e,f,g)},tilemap:function(a,b,d,e,f){return new c.Tilemap(this.game,a,b,d,e,f)},renderTexture:function(a,b,d,e){(void 0===d||""===d)&&(d=this.game.rnd.uuid()),void 0===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){void 0===e&&(e=!1),(void 0===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.Sprite=function(a,b,d,e,f){b=b||0,d=d||0,e=e||null,f=f||null,this.type=c.SPRITE,this.physicsType=c.SPRITE,PIXI.Sprite.call(this,PIXI.TextureCache.__default),c.Component.Core.init.call(this,a,b,d,e,f)},c.Sprite.prototype=Object.create(PIXI.Sprite.prototype),c.Sprite.prototype.constructor=c.Sprite,c.Component.Core.install.call(c.Sprite.prototype,["Angle","Animation","AutoCull","Bounds","BringToTop","Crop","Delta","Destroy","FixedToCamera","Health","InCamera","InputEnabled","InWorld","LifeSpan","LoadTexture","Overlap","PhysicsBody","Reset","ScaleMinMax","Smoothed"]),c.Sprite.prototype.preUpdatePhysics=c.Component.PhysicsBody.preUpdate,c.Sprite.prototype.preUpdateLifeSpan=c.Component.LifeSpan.preUpdate,c.Sprite.prototype.preUpdateInWorld=c.Component.InWorld.preUpdate,c.Sprite.prototype.preUpdateCore=c.Component.Core.preUpdate,c.Sprite.prototype.preUpdate=function(){return this.preUpdatePhysics()&&this.preUpdateLifeSpan()&&this.preUpdateInWorld()?this.preUpdateCore():!1 -},c.Image=function(a,b,d,e,f){b=b||0,d=d||0,e=e||null,f=f||null,this.type=c.IMAGE,PIXI.Sprite.call(this,PIXI.TextureCache.__default),c.Component.Core.init.call(this,a,b,d,e,f)},c.Image.prototype=Object.create(PIXI.Sprite.prototype),c.Image.prototype.constructor=c.Image,c.Component.Core.install.call(c.Image.prototype,["Angle","Animation","AutoCull","Bounds","BringToTop","Crop","Destroy","FixedToCamera","InputEnabled","LifeSpan","LoadTexture","Overlap","Reset","Smoothed"]),c.Image.prototype.preUpdateInWorld=c.Component.InWorld.preUpdate,c.Image.prototype.preUpdateCore=c.Component.Core.preUpdate,c.Image.prototype.preUpdate=function(){return this.preUpdateInWorld()?this.preUpdateCore():!1},c.TileSprite=function(a,b,d,e,f,g,h){b=b||0,d=d||0,e=e||256,f=f||256,g=g||null,h=h||null,this.type=c.TILESPRITE,this.physicsType=c.SPRITE,this._scroll=new c.Point;var i=a.cache.getImage("__default",!0);PIXI.TilingSprite.call(this,new PIXI.Texture(i.base),e,f),c.Component.Core.init.call(this,a,b,d,g,h)},c.TileSprite.prototype=Object.create(PIXI.TilingSprite.prototype),c.TileSprite.prototype.constructor=c.TileSprite,c.Component.Core.install.call(c.TileSprite.prototype,["Angle","Animation","AutoCull","Bounds","BringToTop","Destroy","FixedToCamera","Health","InCamera","InputEnabled","InWorld","LifeSpan","LoadTexture","Overlap","PhysicsBody","Reset","Smoothed"]),c.TileSprite.prototype.preUpdatePhysics=c.Component.PhysicsBody.preUpdate,c.TileSprite.prototype.preUpdateLifeSpan=c.Component.LifeSpan.preUpdate,c.TileSprite.prototype.preUpdateInWorld=c.Component.InWorld.preUpdate,c.TileSprite.prototype.preUpdateCore=c.Component.Core.preUpdate,c.TileSprite.prototype.preUpdate=function(){return 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.preUpdatePhysics()&&this.preUpdateLifeSpan()&&this.preUpdateInWorld()?this.preUpdateCore():!1},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.destroy=function(a){c.Component.Destroy.prototype.destroy.call(this,a),PIXI.TilingSprite.prototype.destroy.call(this)},c.TileSprite.prototype.reset=function(a,b){return c.Component.Reset.prototype.reset.call(this,a,b),this.tilePosition.x=0,this.tilePosition.y=0,this},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.type=c.ROPE,this._scroll=new c.Point,PIXI.Rope.call(this,PIXI.TextureCache.__default,this.points),c.Component.Core.init.call(this,a,b,d,e,f)},c.Rope.prototype=Object.create(PIXI.Rope.prototype),c.Rope.prototype.constructor=c.Rope,c.Component.Core.install.call(c.Rope.prototype,["Angle","Animation","AutoCull","Bounds","BringToTop","Crop","Delta","Destroy","FixedToCamera","InputEnabled","InWorld","LifeSpan","LoadTexture","Overlap","PhysicsBody","Reset","ScaleMinMax","Smoothed"]),c.Rope.prototype.preUpdatePhysics=c.Component.PhysicsBody.preUpdate,c.Rope.prototype.preUpdateLifeSpan=c.Component.LifeSpan.preUpdate,c.Rope.prototype.preUpdateInWorld=c.Component.InWorld.preUpdate,c.Rope.prototype.preUpdateCore=c.Component.Core.preUpdate,c.Rope.prototype.preUpdate=function(){return 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.preUpdatePhysics()&&this.preUpdateLifeSpan()&&this.preUpdateInWorld()?this.preUpdateCore():!1},c.Rope.prototype.update=function(){this._hasUpdateAnimation&&this.updateAnimation.call(this)},c.Rope.prototype.reset=function(a,b){return c.Component.Reset.prototype.reset.call(this,a,b),this.tilePosition.x=0,this.tilePosition.y=0,this},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=Math.abs(a);var f=this.width-a;c.drawImage(e,0,0,a,d,f,0,a,d),c.drawImage(e,a,0,f,d,0,0,f,d)}else{var f=this.width-a;c.drawImage(e,f,0,a,d,0,0,a,d),c.drawImage(e,0,0,f,d,a,0,f,d)}return this.clear(),this.copy(this._swapCanvas)},moveV:function(a){var b=this._swapCanvas,c=b.getContext("2d"),d=this.width,e=this.canvas;if(c.clearRect(0,0,this.width,this.height),0>a){a=Math.abs(a);var f=this.height-a;c.drawImage(e,0,0,d,a,0,f,d,a),c.drawImage(e,0,a,d,f,0,0,d,f)}else{var f=this.height-a;c.drawImage(e,0,f,d,a,0,0,d,a),c.drawImage(e,0,0,d,f,0,a,d,f)}return this.clear(),this.copy(this._swapCanvas)},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){void 0===c&&(c=0),void 0===d&&(d=0),void 0===e&&(e=this.width),void 0===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((void 0===a||null===a)&&(a=!1),(void 0===b||null===b)&&(b=!1),(void 0===d||null===d)&&(d=!1),a||b||d){void 0===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){void 0===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 void 0===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((void 0===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,(void 0===g||null===g)&&(g=a.x),(void 0===h||null===h)&&(h=a.y),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(void 0===b||null===b)&&(b=0),(void 0===d||null===d)&&(d=0),e&&(this._size.x=e),f&&(this._size.y=f),(void 0===g||null===g)&&(g=b),(void 0===h||null===h)&&(h=d),(void 0===i||null===i)&&(i=this._size.x),(void 0===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),void 0===q&&(q=null),void 0===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)},drawGroup:function(a,b,c){return a.total>0&&a.forEachExists(this.copy,this,null,null,null,null,null,null,null,null,null,null,null,null,null,null,b,c),this},shadow:function(a,b,c,d){void 0===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 void 0===d||null===d?this.draw(b).blendSourceAtop():this.draw(b,d.x,d.y,d.width,d.height).blendSourceAtop(),void 0===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 void 0===e&&(e=255),void 0===f&&(f=!1),void 0===g&&(g=b),void 0===h&&(h=c),void 0===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},text:function(a,b,c,d,e,f){void 0===b&&(b=0),void 0===c&&(c=0),void 0===d&&(d="14px Courier"),void 0===e&&(e="rgb(255,255,255)"),void 0===f&&(f=!0);var g=this.context.font;this.context.font=d,f&&(this.context.fillStyle="rgb(0,0,0)",this.context.fillText(a,b+1,c+1)),this.context.fillStyle=e,this.context.fillText(a,b,c),this.context.font=g},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(void 0===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,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,PIXI.Graphics.prototype.lineStyle=function(a,b,c){return this.lineWidth=a||0,this.lineColor=b||0,this.lineAlpha=void 0===c?1:c,this.currentPath&&(this.currentPath.shape.points.length?this.drawShape(new PIXI.Polygon(this.currentPath.shape.points.slice(-2))):(this.currentPath.lineWidth=this.lineWidth,this.currentPath.lineColor=this.lineColor,this.currentPath.lineAlpha=this.lineAlpha)),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||this.moveTo(0,0),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){if(d===e)return this;void 0===f&&(f=!1),!f&&d>=e?e+=2*Math.PI:f&&e>=d&&(d+=2*Math.PI);var g=f?-1*(d-e):e-d,h=40*Math.ceil(Math.abs(g)/(2*Math.PI));if(0===g)return this;var i=a+Math.cos(d)*c,j=b+Math.sin(d)*c;f&&this.filling?this.moveTo(a,b):this.moveTo(i,j);for(var k=this.currentPath.shape.points,l=g/(2*h),m=2*l,n=Math.cos(l),o=Math.sin(l),p=h-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);k.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){(a instanceof c.Polygon||a instanceof PIXI.Polygon)&&(a=a.points);var b=a;if(!Array.isArray(b)){b=new Array(arguments.length);for(var d=0;dp?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._currentBounds=this._bounds}return this._currentBounds},PIXI.Graphics.prototype.containsPoint=function(a){this.worldTransform.applyInverse(a,tempPoint);for(var b=this.graphicsData,c=0;ch?h:a,b=h+j>b?h+j:b,d=d>i?i:d,e=i+k>e?i+k:e;else if(n===PIXI.Graphics.CIRC)h=f.x,i=f.y,j=f.radius+o/2,k=f.radius+o/2,a=a>h-j?h-j:a,b=h+j>b?h+j:b,d=d>i-k?i-k:d,e=i+k>e?i+k:e;else if(n===PIXI.Graphics.ELIP)h=f.x,i=f.y,j=f.width+o/2,k=f.height+o/2,a=a>h-j?h-j:a,b=h+j>b?h+j:b,d=d>i-k?i-k:d,e=i+k>e?i+k:e;else{g=f.points;for(var p=0;ph-o?h-o:a,b=h+o>b?h+o:b,d=d>i-o?i-o:d,e=i+o>e?i+o:e}}else a=0,b=0,d=0,e=0;var q=this.boundsPadding;this._localBounds.x=a-q,this._localBounds.width=b-a+2*q,this._localBounds.y=d-q,this._localBounds.height=e-d+2*q},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,a instanceof c.Polygon&&(a=a.clone(),a.flatten());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},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.GraphicsData=function(a,b,c,d,e,f,g){this.lineWidth=a,this.lineColor=b,this.lineAlpha=c,this._lineTint=b,this.fillColor=d,this.fillAlpha=e,this._fillTint=d,this.fill=f,this.shape=g,this.type=g.type},PIXI.GraphicsData.prototype.constructor=PIXI.GraphicsData,PIXI.GraphicsData.prototype.clone=function(){return new GraphicsData(this.lineWidth,this.lineColor,this.lineAlpha,this.fillColor,this.fillAlpha,this.fill,this.shape)},c.Graphics=function(a,b,d){void 0===b&&(b=0),void 0===d&&(d=0),this.type=c.GRAPHICS,this.physicsType=c.SPRITE,PIXI.Graphics.call(this),c.Component.Core.init.call(this,a,b,d,"",null)},c.Graphics.prototype=Object.create(PIXI.Graphics.prototype),c.Graphics.prototype.constructor=c.Graphics,c.Component.Core.install.call(c.Graphics.prototype,["Angle","AutoCull","Bounds","Destroy","FixedToCamera","InputEnabled","InWorld","LifeSpan","PhysicsBody","Reset"]),c.Graphics.prototype.preUpdatePhysics=c.Component.PhysicsBody.preUpdate,c.Graphics.prototype.preUpdateLifeSpan=c.Component.LifeSpan.preUpdate,c.Graphics.prototype.preUpdateInWorld=c.Component.InWorld.preUpdate,c.Graphics.prototype.preUpdateCore=c.Component.Core.preUpdate,c.Graphics.prototype.preUpdate=function(){return this.preUpdatePhysics()&&this.preUpdateLifeSpan()&&this.preUpdateInWorld()?this.preUpdateCore():!1},c.Graphics.prototype.destroy=function(a){this.clear(),c.Component.Destroy.prototype.destroy.call(this,a)},c.Graphics.prototype.drawTriangle=function(a,b){void 0===b&&(b=!1);var d=new c.Polygon(a);if(b){var e=new c.Point(this.game.camera.x-a[0].x,this.game.camera.y-a[0].y),f=new c.Point(a[1].x-a[0].x,a[1].y-a[0].y),g=new c.Point(a[1].x-a[2].x,a[1].y-a[2].y),h=g.cross(f);e.dot(h)>0&&this.drawPolygon(d)}else this.drawPolygon(d)},c.Graphics.prototype.drawTriangles=function(a,b,d){void 0===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;e0&&(j+=c[k-1]),h=j+l}else for(var k=0;kq&&Math.abs(q)>o&&(q=-o),0!==q){var m=q*(b.length-1);p+=m}this.canvas.height=p*this._res,this.context.scale(this._res,this._res),navigator.isCocoonJS&&this.context.clearRect(0,0,this.canvas.width,this.canvas.height),this.style.backgroundColor&&(this.context.fillStyle=this.style.backgroundColor,this.context.fillRect(0,0,this.canvas.width,this.canvas.height)),this.context.fillStyle=this.style.fill,this.context.font=this.style.font,this.context.strokeStyle=this.style.stroke,this.context.textBaseline="alphabetic",this.context.lineWidth=this.style.strokeThickness,this.context.lineCap="round",this.context.lineJoin="round";var r,s;for(this._charCount=0,g=0;g0&&(s+=q*g),"right"===this.style.align?r+=e-d[g]:"center"===this.style.align&&(r+=(e-d[g])/2),this.autoRound&&(r=Math.round(r),s=Math.round(s)),this.colors.length>0||this.strokeColors.length>0?this.updateLine(b[g],r,s):(this.style.stroke&&this.style.strokeThickness&&(this.updateShadow(this.style.shadowStroke),0===c?this.context.strokeText(b[g],r,s):this.renderTabLine(b[g],r,s,!1)),this.style.fill&&(this.updateShadow(this.style.shadowFill),0===c?this.context.fillText(b[g],r,s):this.renderTabLine(b[g],r,s,!0)));this.updateTexture()},c.Text.prototype.renderTabLine=function(a,b,c,d){var e=a.split(/(?:\t)/),f=this.style.tabs,g=0;if(Array.isArray(f))for(var h=0,i=0;i0&&(h+=f[i-1]),g=b+h,d?this.context.fillText(e[i],g,c):this.context.strokeText(e[i],g,c);else for(var i=0;ie?(g>0&&(b+="\n"),b+=f[g]+" ",e=this.style.wordWrapWidth-h):(e-=i,b+=f[g]+" ")}dd&&(this.style.wordWrapWidth=d)),this.updateTexture(),this},c.Text.prototype.updateTexture=function(){var a=this.texture.baseTexture,b=this.texture.crop,c=this.texture.frame,d=this.canvas.width,e=this.canvas.height;if(a.width=d,a.height=e,b.width=d,b.height=e,c.width=d,c.height=e,this.texture.width=d,this.texture.height=e,this._width=d,this._height=e,this.textBounds){var f=this.textBounds.x,g=this.textBounds.y;"right"===this.style.boundsAlignH?f=this.textBounds.width-this.canvas.width:"center"===this.style.boundsAlignH&&(f=this.textBounds.halfWidth-this.canvas.width/2),"bottom"===this.style.boundsAlignV?g=this.textBounds.height-this.canvas.height:"middle"===this.style.boundsAlignV&&(g=this.textBounds.halfHeight-this.canvas.height/2),this.pivot.x=-f,this.pivot.y=-g}this.renderable=0!==d&&0!==e,this.texture.baseTexture.dirty()},c.Text.prototype._renderWebGL=function(a){this.dirty&&(this.updateText(),this.dirty=!1),PIXI.Sprite.prototype._renderWebGL.call(this,a)},c.Text.prototype._renderCanvas=function(a){this.dirty&&(this.updateText(),this.dirty=!1),PIXI.Sprite.prototype._renderCanvas.call(this,a)},c.Text.prototype.determineFontProperties=function(a){var b=c.Text.fontPropertiesCache[a];if(!b){b={};var d=c.Text.fontPropertiesCanvas,e=c.Text.fontPropertiesContext;e.font=a;var f=Math.ceil(e.measureText("|MÉq").width),g=Math.ceil(e.measureText("|MÉq").width),h=2*g;if(g=1.4*g|0,d.width=f,d.height=h,e.fillStyle="#f00",e.fillRect(0,0,f,h),e.font=a,e.textBaseline="alphabetic",e.fillStyle="#000",e.fillText("|MÉq",0,g),!e.getImageData(0,0,f,h))return b.ascent=g,b.descent=g+6,b.fontSize=b.ascent+b.descent,c.Text.fontPropertiesCache[a]=b,b;var i,j,k=e.getImageData(0,0,f,h).data,l=k.length,m=4*f,n=0,o=!1;for(i=0;g>i;i++){for(j=0;m>j;j+=4)if(255!==k[n+j]){o=!0;break}if(o)break;n+=m}for(b.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}b.descent=i-g,b.descent+=6,b.fontSize=b.ascent+b.descent,c.Text.fontPropertiesCache[a]=b}return b},c.Text.prototype.getBounds=function(a){return this.dirty&&(this.updateText(),this.dirty=!1),PIXI.Sprite.prototype.getBounds.call(this,a)},Object.defineProperty(c.Text.prototype,"text",{get:function(){return this._text},set:function(a){a!==this._text&&(this._text=a.toString()||"",this.dirty=!0,this.parent&&this.updateTransform())}}),Object.defineProperty(c.Text.prototype,"cssFont",{get:function(){return this.componentsToFont(this._fontComponents)},set:function(a){a=a||"bold 20pt Arial",this._fontComponents=this.fontToComponents(a),this.updateFont(this._fontComponents)}}),Object.defineProperty(c.Text.prototype,"font",{get:function(){return this._fontComponents.fontFamily},set:function(a){a=a||"Arial",a=a.trim(),/^(?:inherit|serif|sans-serif|cursive|fantasy|monospace)$/.exec(a)||/['",]/.exec(a)||(a="'"+a+"'"),this._fontComponents.fontFamily=a,this.updateFont(this._fontComponents)}}),Object.defineProperty(c.Text.prototype,"fontSize",{get:function(){var a=this._fontComponents.fontSize;return a&&/(?:^0$|px$)/.exec(a)?parseInt(a,10):a},set:function(a){a=a||"0","number"==typeof a&&(a+="px"),this._fontComponents.fontSize=a,this.updateFont(this._fontComponents)}}),Object.defineProperty(c.Text.prototype,"fontWeight",{get:function(){return this._fontComponents.fontWeight||"normal"},set:function(a){a=a||"normal",this._fontComponents.fontWeight=a,this.updateFont(this._fontComponents)}}),Object.defineProperty(c.Text.prototype,"fontStyle",{get:function(){return this._fontComponents.fontStyle||"normal"},set:function(a){a=a||"normal",this._fontComponents.fontStyle=a,this.updateFont(this._fontComponents)}}),Object.defineProperty(c.Text.prototype,"fontVariant",{get:function(){return this._fontComponents.fontVariant||"normal"},set:function(a){a=a||"normal",this._fontComponents.fontVariant=a,this.updateFont(this._fontComponents)}}),Object.defineProperty(c.Text.prototype,"fill",{get:function(){return this.style.fill},set:function(a){a!==this.style.fill&&(this.style.fill=a,this.dirty=!0)}}),Object.defineProperty(c.Text.prototype,"align",{get:function(){return this.style.align},set:function(a){a!==this.style.align&&(this.style.align=a,this.dirty=!0)}}),Object.defineProperty(c.Text.prototype,"resolution",{get:function(){return this._res},set:function(a){a!==this._res&&(this._res=a,this.dirty=!0)}}),Object.defineProperty(c.Text.prototype,"tabs",{get:function(){return this.style.tabs},set:function(a){a!==this.style.tabs&&(this.style.tabs=a,this.dirty=!0)}}),Object.defineProperty(c.Text.prototype,"boundsAlignH",{get:function(){return this.style.boundsAlignH},set:function(a){a!==this.style.boundsAlignH&&(this.style.boundsAlignH=a,this.dirty=!0)}}),Object.defineProperty(c.Text.prototype,"boundsAlignV",{get:function(){return this.style.boundsAlignV},set:function(a){a!==this.style.boundsAlignV&&(this.style.boundsAlignV=a,this.dirty=!0)}}),Object.defineProperty(c.Text.prototype,"stroke",{get:function(){return this.style.stroke},set:function(a){a!==this.style.stroke&&(this.style.stroke=a,this.dirty=!0)}}),Object.defineProperty(c.Text.prototype,"strokeThickness",{get:function(){return this.style.strokeThickness},set:function(a){a!==this.style.strokeThickness&&(this.style.strokeThickness=a,this.dirty=!0)}}),Object.defineProperty(c.Text.prototype,"wordWrap",{get:function(){return this.style.wordWrap},set:function(a){a!==this.style.wordWrap&&(this.style.wordWrap=a,this.dirty=!0)}}),Object.defineProperty(c.Text.prototype,"wordWrapWidth",{get:function(){return this.style.wordWrapWidth},set:function(a){a!==this.style.wordWrapWidth&&(this.style.wordWrapWidth=a,this.dirty=!0)}}),Object.defineProperty(c.Text.prototype,"lineSpacing",{get:function(){return this._lineSpacing},set:function(a){a!==this._lineSpacing&&(this._lineSpacing=parseFloat(a),this.dirty=!0,this.parent&&this.updateTransform())}}),Object.defineProperty(c.Text.prototype,"shadowOffsetX",{get:function(){return this.style.shadowOffsetX},set:function(a){a!==this.style.shadowOffsetX&&(this.style.shadowOffsetX=a,this.dirty=!0)}}),Object.defineProperty(c.Text.prototype,"shadowOffsetY",{get:function(){return this.style.shadowOffsetY},set:function(a){a!==this.style.shadowOffsetY&&(this.style.shadowOffsetY=a,this.dirty=!0)}}),Object.defineProperty(c.Text.prototype,"shadowColor",{get:function(){return this.style.shadowColor},set:function(a){a!==this.style.shadowColor&&(this.style.shadowColor=a,this.dirty=!0)}}),Object.defineProperty(c.Text.prototype,"shadowBlur",{get:function(){return this.style.shadowBlur},set:function(a){a!==this.style.shadowBlur&&(this.style.shadowBlur=a,this.dirty=!0)}}),Object.defineProperty(c.Text.prototype,"shadowStroke",{get:function(){return this.style.shadowStroke},set:function(a){a!==this.style.shadowStroke&&(this.style.shadowStroke=a,this.dirty=!0)}}),Object.defineProperty(c.Text.prototype,"shadowFill",{get:function(){return this.style.shadowFill},set:function(a){a!==this.style.shadowFill&&(this.style.shadowFill=a,this.dirty=!0)}}),Object.defineProperty(c.Text.prototype,"width",{get:function(){return this.dirty&&(this.updateText(),this.dirty=!1),this.scale.x*this.texture.frame.width},set:function(a){this.scale.x=a/this.texture.frame.width,this._width=a}}),Object.defineProperty(c.Text.prototype,"height",{get:function(){return this.dirty&&(this.updateText(),this.dirty=!1),this.scale.y*this.texture.frame.height},set:function(a){this.scale.y=a/this.texture.frame.height,this._height=a}}),c.Text.fontPropertiesCache={},c.Text.fontPropertiesCanvas=document.createElement("canvas"),c.Text.fontPropertiesContext=c.Text.fontPropertiesCanvas.getContext("2d"),c.BitmapText=function(a,b,d,e,f,g,h){b=b||0,d=d||0,e=e||"",f=f||"",g=g||32,h=h||"left",PIXI.DisplayObjectContainer.call(this),this.type=c.BITMAPTEXT,this.physicsType=c.SPRITE,this.textWidth=0,this.textHeight=0,this.anchor=new c.Point,this._prevAnchor=new c.Point,this._glyphs=[],this._maxWidth=0,this._text=f,this._data=a.cache.getBitmapFont(e),this._font=e,this._fontSize=g,this._align=h,this._tint=16777215,this.updateText(),this.dirty=!1,c.Component.Core.init.call(this,a,b,d,"",null)},c.BitmapText.prototype=Object.create(PIXI.DisplayObjectContainer.prototype),c.BitmapText.prototype.constructor=c.BitmapText,c.Component.Core.install.call(c.BitmapText.prototype,["Angle","AutoCull","Bounds","Destroy","FixedToCamera","InputEnabled","InWorld","LifeSpan","PhysicsBody","Reset"]),c.BitmapText.prototype.preUpdatePhysics=c.Component.PhysicsBody.preUpdate,c.BitmapText.prototype.preUpdateLifeSpan=c.Component.LifeSpan.preUpdate,c.BitmapText.prototype.preUpdateInWorld=c.Component.InWorld.preUpdate,c.BitmapText.prototype.preUpdateCore=c.Component.Core.preUpdate,c.BitmapText.prototype.preUpdate=function(){return this.preUpdatePhysics()&&this.preUpdateLifeSpan()&&this.preUpdateInWorld()?this.preUpdateCore():!1},c.BitmapText.prototype.postUpdate=function(){c.Component.PhysicsBody.postUpdate.call(this),c.Component.FixedToCamera.postUpdate.call(this),this.body&&this.body.type===c.Physics.ARCADE&&(this.textWidth!==this.body.sourceWidth||this.textHeight!==this.body.sourceHeight)&&this.body.setSize(this.textWidth,this.textHeight)},c.BitmapText.prototype.setText=function(a){this.text=a},c.BitmapText.prototype.scanLine=function(a,b,c){for(var d=0,e=0,f=-1,g=null,h=this._maxWidth>0?this._maxWidth:null,i=[],j=0;j=h&&f>-1)return{width:e,text:c.substr(0,j-(j-f)),end:k,chars:i};e+=m.xAdvance*b,i.push(d+m.xOffset*b),d+=m.xAdvance*b,g=l}}return{width:e,text:c,end:k,chars:i}},c.BitmapText.prototype.updateText=function(){var a=this._data.font;if(a){var b=this.text,c=this._fontSize/a.size,d=[],e=0;this.textWidth=0;do{var f=this.scanLine(a,c,b);f.y=e,d.push(f),f.width>this.textWidth&&(this.textWidth=f.width),e+=a.lineHeight*c,b=b.substr(f.text.length+1)}while(f.end===!1);this.textHeight=e;for(var g=0,h=0,i=this.textWidth*this.anchor.x,j=this.textHeight*this.anchor.y,k=0;k0&&(this._fontSize=a,this.updateText())}}),Object.defineProperty(c.BitmapText.prototype,"text",{get:function(){return this._text},set:function(a){a!==this._text&&(this._text=a.toString()||"",this.updateText())}}),Object.defineProperty(c.BitmapText.prototype,"maxWidth",{get:function(){return this._maxWidth},set:function(a){a!==this._maxWidth&&(this._maxWidth=a,this.updateText())}}),c.RetroFont=function(a,b,d,e,f,g,h,i,j,k){if(!a.cache.checkImageKey(b))return!1;(void 0===g||null===g)&&(g=a.cache.getImage(b).width/d),this.characterWidth=d,this.characterHeight=e,this.characterSpacingX=h||0,this.characterSpacingY=i||0,this.characterPerRow=g,this.offsetX=j||0,this.offsetY=k||0,this.align="left",this.multiLine=!1,this.autoUpperCase=!0,this.customSpacingX=0,this.customSpacingY=0,this.fixedWidth=0,this.fontSet=a.cache.getImage(b),this._text="",this.grabData=[],this.frameData=new c.FrameData;for(var l=this.offsetX,m=this.offsetY,n=0,o=0;o?@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){void 0===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 this.fixedWidth>0?this.resize(this.fixedWidth,this.characterHeight,!0):this.resize(this._text.length*(this.characterWidth+this.customSpacingX),this.characterHeight,!0),a=0,this.align===c.RetroFont.ALIGN_RIGHT?a=this.width-this._text.length*(this.characterWidth+this.customSpacingX):this.align===c.RetroFont.ALIGN_CENTER&&(a=this.width/2-this._text.length*(this.characterWidth+this.customSpacingX)/2,a+=this.customSpacingX/2),0>a&&(a=0),this.pasteLine(this._text,a,0,this.customSpacingX);this.requiresReTint=!0},c.RetroFont.prototype.pasteLine=function(a,b,c,d){for(var e=0;e=0&&(this.stamp.frame=this.grabData[a.charCodeAt(e)],this.renderXY(this.stamp,b,c,!1),b+=this.characterWidth+d,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;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.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.type=c.ROPE,this._scroll=new c.Point,PIXI.Rope.call(this,PIXI.TextureCache.__default,this.points),c.Component.Core.init.call(this,a,b,d,e,f)},c.Rope.prototype=Object.create(PIXI.Rope.prototype),c.Rope.prototype.constructor=c.Rope,c.Component.Core.install.call(c.Rope.prototype,["Angle","Animation","AutoCull","Bounds","BringToTop","Crop","Delta","Destroy","FixedToCamera","InputEnabled","InWorld","LifeSpan","LoadTexture","Overlap","PhysicsBody","Reset","ScaleMinMax","Smoothed"]),c.Rope.prototype.preUpdatePhysics=c.Component.PhysicsBody.preUpdate,c.Rope.prototype.preUpdateLifeSpan=c.Component.LifeSpan.preUpdate,c.Rope.prototype.preUpdateInWorld=c.Component.InWorld.preUpdate,c.Rope.prototype.preUpdateCore=c.Component.Core.preUpdate,c.Rope.prototype.preUpdate=function(){return 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.preUpdatePhysics()&&this.preUpdateLifeSpan()&&this.preUpdateInWorld()?this.preUpdateCore():!1 -},c.Rope.prototype.update=function(){this._hasUpdateAnimation&&this.updateAnimation.call(this)},c.Rope.prototype.reset=function(a,b){return c.Component.Reset.prototype.reset.call(this,a,b),this.tilePosition.x=0,this.tilePosition.y=0,this},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;k=1)&&(l.touch=!0),(window.navigator.msPointerEnabled||window.navigator.pointerEnabled)&&(l.mspointer=!0),l.cocoonJS||("onwheel"in window||l.ie&&"WheelEvent"in window?l.wheelEvent="wheel":"onmousewheel"in window?l.wheelEvent="mousewheel":l.firefox&&"MouseScrollEvent"in window&&(l.wheelEvent="DOMMouseScroll"))}function d(){for(var a=["requestFullscreen","requestFullScreen","webkitRequestFullscreen","webkitRequestFullScreen","msRequestFullscreen","msRequestFullScreen","mozRequestFullScreen","mozRequestFullscreen"],b=document.createElement("div"),c=0;c0&&"none"!==a}var l=this;a(),g(),f(),e(),k(),h(),b(),d(),c()},c.Device.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},c.Device.canPlayVideo=function(a){return"webm"===a&&(this.webmVideo||this.vp9Video)?!0:"mp4"===a&&(this.mp4Video||this.h264Video)?!0:"ogg"===a&&this.oggVideo?!0:"mpeg"===a&&this.hlsVideo?!0:!1},c.Device.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.isAndroidStockBrowser=function(){var a=window.navigator.userAgent.match(/Android.*AppleWebKit\/([\d.]+)/);return a&&a[1]<537},c.DOM={getOffset:function(a,b){b=b||new c.Point;var d=a.getBoundingClientRect(),e=c.DOM.scrollY,f=c.DOM.scrollX,g=document.documentElement.clientTop,h=document.documentElement.clientLeft;return b.x=d.left+f-h,b.y=d.top+e-g,b},getBounds:function(a,b){return void 0===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.visualBounds:1===a.nodeType?this.getBounds(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},inLayoutViewport:function(a,b){var c=this.getBounds(a,b);return!!c&&c.bottom>=0&&c.right>=0&&c.top<=this.layoutBounds.width&&c.left<=this.layoutBounds.height},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.visualBounds.height>this.visualBounds.width?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.visualBounds.height>this.visualBounds.width?d:e},visualBounds:new c.Rectangle,layoutBounds:new c.Rectangle,documentBounds:new c.Rectangle},c.Device.whenReady(function(a){var b=window&&"pageXOffset"in window?function(){return window.pageXOffset}:function(){return document.documentElement.scrollLeft},d=window&&"pageYOffset"in window?function(){return window.pageYOffset}:function(){return document.documentElement.scrollTop};Object.defineProperty(c.DOM,"scrollX",{get:b}),Object.defineProperty(c.DOM,"scrollY",{get:d}),Object.defineProperty(c.DOM.visualBounds,"x",{get:b}),Object.defineProperty(c.DOM.visualBounds,"y",{get:d}),Object.defineProperty(c.DOM.layoutBounds,"x",{value:0}),Object.defineProperty(c.DOM.layoutBounds,"y",{value:0});var e=a.desktop&&document.documentElement.clientWidth<=window.innerWidth&&document.documentElement.clientHeight<=window.innerHeight;if(e){var f=function(){return Math.max(window.innerWidth,document.documentElement.clientWidth)},g=function(){return Math.max(window.innerHeight,document.documentElement.clientHeight)};Object.defineProperty(c.DOM.visualBounds,"width",{get:f}),Object.defineProperty(c.DOM.visualBounds,"height",{get:g}),Object.defineProperty(c.DOM.layoutBounds,"width",{get:f}),Object.defineProperty(c.DOM.layoutBounds,"height",{get:g})}else Object.defineProperty(c.DOM.visualBounds,"width",{get:function(){return window.innerWidth}}),Object.defineProperty(c.DOM.visualBounds,"height",{get:function(){return window.innerHeight}}),Object.defineProperty(c.DOM.layoutBounds,"width",{get:function(){var a=document.documentElement.clientWidth,b=window.innerWidth;return b>a?b:a}}),Object.defineProperty(c.DOM.layoutBounds,"height",{get:function(){var a=document.documentElement.clientHeight,b=window.innerHeight;return b>a?b:a}});Object.defineProperty(c.DOM.documentBounds,"x",{value:0}),Object.defineProperty(c.DOM.documentBounds,"y",{value:0}),Object.defineProperty(c.DOM.documentBounds,"width",{get:function(){var a=document.documentElement;return Math.max(a.clientWidth,a.offsetWidth,a.scrollWidth)}}),Object.defineProperty(c.DOM.documentBounds,"height",{get:function(){var a=document.documentElement;return Math.max(a.clientHeight,a.offsetHeight,a.scrollHeight)}})},null,!0),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 void 0===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){var c=["i","mozI","oI","webkitI","msI"];for(var d in c){var e=c[d]+"mageSmoothingEnabled";if(e in a)return a[e]=b,a}return 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.RequestAnimationFrame=function(a,b){void 0===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 void 0===c&&(c=1e-4),a>b-c},fuzzyCeil:function(a,b){return void 0===b&&(b=1e-4),Math.ceil(a-b)},fuzzyFloor:function(a,b){return void 0===b&&(b=1e-4),Math.floor(a+b)},average:function(){for(var a=0,b=0;b=0?a:a+2*Math.PI},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},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)},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)},roundAwayFromZero:function(a){return a>0?Math.ceil(a):Math.floor(a)},sinCosGenerator:function(a,b,c,d){void 0===b&&(b=1),void 0===c&&(c=1),void 0===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}},distance:function(a,b,c,d){var e=a-c,f=b-d;return Math.sqrt(e*e+f*f)},distanceSq:function(a,b,c,d){var e=a-c,f=b-d;return e*e+f*f},distancePow:function(a,b,c,d,e){return void 0===e&&(e=2),Math.sqrt(Math.pow(c-a,e)+Math.pow(d-b,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 void 0===c&&(c=0),a>b||c>b?1:c>a||c>a?0:(a-c)/b}};var j=Math.PI/180,k=180/Math.PI;c.Math.degToRad=function(a){return a*j},c.Math.radToDeg=function(a){return a*k},c.RandomDataGenerator=function(a){void 0===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){if(this.s0=this.hash(" "),this.s1=this.hash(this.s0),this.s2=this.hash(this.s1),this.c=1,a)for(var b=0;b>>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)+.5)]},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){void 0===c&&(c=!1),(void 0===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){void 0===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.easeMap={Power0:c.Easing.Power0,Power1:c.Easing.Power1,Power2:c.Easing.Power2,Power3:c.Easing.Power3,Power4:c.Easing.Power4,Linear:c.Easing.Linear.None,Quad:c.Easing.Quadratic.Out,Cubic:c.Easing.Cubic.Out,Quart:c.Easing.Quartic.Out,Quint:c.Easing.Quintic.Out,Sine:c.Easing.Sinusoidal.Out,Expo:c.Easing.Exponential.Out,Circ:c.Easing.Circular.Out,Elastic:c.Easing.Elastic.Out,Back:c.Easing.Back.Out,Bounce:c.Easing.Bounce.Out,"Quad.easeIn":c.Easing.Quadratic.In,"Cubic.easeIn":c.Easing.Cubic.In,"Quart.easeIn":c.Easing.Quartic.In,"Quint.easeIn":c.Easing.Quintic.In,"Sine.easeIn":c.Easing.Sinusoidal.In,"Expo.easeIn":c.Easing.Exponential.In,"Circ.easeIn":c.Easing.Circular.In,"Elastic.easeIn":c.Easing.Elastic.In,"Back.easeIn":c.Easing.Back.In,"Bounce.easeIn":c.Easing.Bounce.In,"Quad.easeOut":c.Easing.Quadratic.Out,"Cubic.easeOut":c.Easing.Cubic.Out,"Quart.easeOut":c.Easing.Quartic.Out,"Quint.easeOut":c.Easing.Quintic.Out,"Sine.easeOut":c.Easing.Sinusoidal.Out,"Expo.easeOut":c.Easing.Exponential.Out,"Circ.easeOut":c.Easing.Circular.Out,"Elastic.easeOut":c.Easing.Elastic.Out,"Back.easeOut":c.Easing.Back.Out,"Bounce.easeOut":c.Easing.Bounce.Out,"Quad.easeInOut":c.Easing.Quadratic.InOut,"Cubic.easeInOut":c.Easing.Cubic.InOut,"Quart.easeInOut":c.Easing.Quartic.InOut,"Quint.easeInOut":c.Easing.Quintic.InOut,"Sine.easeInOut":c.Easing.Sinusoidal.InOut,"Expo.easeInOut":c.Easing.Exponential.InOut,"Circ.easeInOut":c.Easing.Circular.InOut,"Elastic.easeInOut":c.Easing.Elastic.InOut,"Back.easeInOut":c.Easing.Back.InOut,"Bounce.easeInOut":c.Easing.Bounce.InOut},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;ad;d++)this.removeFrom(a[d]);else if(a.type===c.GROUP&&b)for(var d=0,e=a.children.length;e>d;d++)this.removeFrom(a.children[d]);else{for(d=0,e=this._tweens.length;e>d;d++)a===this._tweens[d].target&&this.remove(this._tweens[d]);for(d=0,e=this._add.length;e>d;d++)a===this._add[d].target&&this.remove(this._add[d])}},add:function(a){a._manager=this,this._add.push(a) -},create:function(a){return new c.Tween(a,this.game,this)},remove:function(a){var b=this._tweens.indexOf(a);-1!==b?this._tweens[b].pendingDelete=!0:(b=this._add.indexOf(a),-1!==b&&(this._add[b].pendingDelete=!0))},update:function(){var a=this._add.length,b=this._tweens.length;if(0===b&&0===a)return!1;for(var c=0;b>c;)this._tweens[c].update(this.game.time.time)?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.target===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.game=b,this.target=a,this.manager=d,this.timeline=[],this.reverse=!1,this.timeScale=1,this.repeatCounter=0,this.pendingDelete=!1,this.onStart=new c.Signal,this.onLoop=new c.Signal,this.onRepeat=new c.Signal,this.onChildComplete=new c.Signal,this.onComplete=new c.Signal,this.isRunning=!1,this.current=0,this.properties={},this.chainedTween=null,this.isPaused=!1,this._onUpdateCallback=null,this._onUpdateCallbackContext=null,this._pausedTime=0,this._codePaused=!1,this._hasStarted=!1},c.Tween.prototype={to:function(a,b,d,e,f,g,h){return(void 0===b||0>=b)&&(b=1e3),(void 0===d||null===d)&&(d=c.Easing.Default),void 0===e&&(e=!1),void 0===f&&(f=0),void 0===g&&(g=0),void 0===h&&(h=!1),"string"==typeof d&&this.manager.easeMap[d]&&(d=this.manager.easeMap[d]),this.isRunning?(console.warn("Phaser.Tween.to cannot be called after Tween.start"),this):(this.timeline.push(new c.TweenData(this).to(a,b,d,f,g,h)),e&&this.start(),this)},from:function(a,b,d,e,f,g,h){return void 0===b&&(b=1e3),(void 0===d||null===d)&&(d=c.Easing.Default),void 0===e&&(e=!1),void 0===f&&(f=0),void 0===g&&(g=0),void 0===h&&(h=!1),"string"==typeof d&&this.manager.easeMap[d]&&(d=this.manager.easeMap[d]),this.isRunning?(console.warn("Phaser.Tween.from cannot be called after Tween.start"),this):(this.timeline.push(new c.TweenData(this).from(a,b,d,f,g,h)),e&&this.start(),this)},start:function(a){if(void 0===a&&(a=0),null===this.game||null===this.target||0===this.timeline.length||this.isRunning)return this;for(var b=0;ba||a>this.timeline.length-1)&&(a=0),this.current=a,this.timeline[this.current].start(),this},stop:function(a){return void 0===a&&(a=!1),this.isRunning=!1,this._onUpdateCallback=null,this._onUpdateCallbackContext=null,a&&(this.onComplete.dispatch(this.target,this),this.chainedTween&&this.chainedTween.start()),this.manager.remove(this),this},updateTweenData:function(a,b,c){if(0===this.timeline.length)return this;if(void 0===c&&(c=0),-1===c)for(var d=0;d0?arguments[a-1].chainedTween=arguments[a]:this.chainedTween=arguments[a];return this},loop:function(a){return void 0===a&&(a=!0),a?this.repeatAll(-1):this.repeatCounter=0,this},onUpdateCallback:function(a,b){return this._onUpdateCallback=a,this._onUpdateCallbackContext=b,this},pause:function(){this.isPaused=!0,this._codePaused=!0,this._pausedTime=this.game.time.time},_pause:function(){this._codePaused||(this.isPaused=!0,this._pausedTime=this.game.time.time)},resume:function(){if(this.isPaused){this.isPaused=!1,this._codePaused=!1;for(var a=0;a0?(this.repeatCounter--,this.timeline[this.current].start(),this.onRepeat.dispatch(this.target,this),!0):(this.isRunning=!1,this.onComplete.dispatch(this.target,this),this.chainedTween&&this.chainedTween.start(),!1):(this.onChildComplete.dispatch(this.target,this),this.timeline[this.current].start(),!0)}},generateData:function(a,b){if(null===this.game||null===this.target)return null;void 0===a&&(a=60),void 0===b&&(b=[]);for(var c=0;c0?!1:!0,this.isFrom)for(var a in this.vStartCache)this.vStart[a]=this.vEndCache[a],this.vEnd[a]=this.vStartCache[a],this.parent.target[a]=this.vStart[a];return this.value=0,this.yoyoCounter=0,this},loadValues:function(){for(var a in this.parent.properties){if(this.vStart[a]=this.parent.properties[a],Array.isArray(this.vEnd[a])){if(0===this.vEnd[a].length)continue;0===this.percent&&(this.vEnd[a]=[this.vStart[a]].concat(this.vEnd[a]))}"undefined"!=typeof this.vEnd[a]?("string"==typeof this.vEnd[a]&&(this.vEnd[a]=this.vStart[a]+parseFloat(this.vEnd[a],10)),this.parent.properties[a]=this.vEnd[a]):this.vEnd[a]=this.vStart[a],this.vStartCache[a]=this.vStart[a],this.vEndCache[a]=this.vEnd[a]}return this},update:function(a){if(this.isRunning){if(a=this.startTime))return c.TweenData.PENDING;this.isRunning=!0}this.parent.reverse?(this.dt-=this.game.time.elapsedMS*this.parent.timeScale,this.dt=Math.max(this.dt,0)):(this.dt+=this.game.time.elapsedMS*this.parent.timeScale,this.dt=Math.min(this.dt,this.duration)),this.percent=this.dt/this.duration,this.value=this.easingFunction(this.percent);for(var b in this.vEnd){var d=this.vStart[b],e=this.vEnd[b];this.parent.target[b]=Array.isArray(e)?this.interpolationFunction.call(this.interpolationContext,e,this.value):d+(e-d)*this.value}return!this.parent.reverse&&1===this.percent||this.parent.reverse&&0===this.percent?this.repeat():c.TweenData.RUNNING},generateData:function(a){this.dt=this.parent.reverse?this.duration:0;var b=[],c=!1,d=1/a*1e3;do{this.parent.reverse?(this.dt-=d,this.dt=Math.max(this.dt,0)):(this.dt+=d,this.dt=Math.min(this.dt,this.duration)),this.percent=this.dt/this.duration,this.value=this.easingFunction(this.percent);var e={};for(var f in this.vEnd){var g=this.vStart[f],h=this.vEnd[f];e[f]=Array.isArray(h)?this.interpolationFunction(h,this.value):g+(h-g)*this.value}b.push(e),(!this.parent.reverse&&1===this.percent||this.parent.reverse&&0===this.percent)&&(c=!0)}while(!c);if(this.yoyo){var i=b.slice();i.reverse(),b=b.concat(i)}return b},repeat:function(){if(this.yoyo){if(this.inReverse&&0===this.repeatCounter)return c.TweenData.COMPLETE;this.inReverse=!this.inReverse}else if(0===this.repeatCounter)return c.TweenData.COMPLETE;if(this.inReverse)for(var a in this.vStartCache)this.vStart[a]=this.vEndCache[a],this.vEnd[a]=this.vStartCache[a];else{for(var a in this.vStartCache)this.vStart[a]=this.vStartCache[a],this.vEnd[a]=this.vEndCache[a];this.repeatCounter>0&&this.repeatCounter--}return this.startTime=this.game.time.time,this.yoyo&&this.inReverse?this.startTime+=this.yoyoDelay:this.inReverse||(this.startTime+=this.repeatDelay),this.dt=this.parent.reverse?this.duration:0,c.TweenData.LOOPED}},c.TweenData.prototype.constructor=c.TweenData,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 0===a?0:1===a?1:1-Math.cos(a*Math.PI/2)},Out:function(a){return 0===a?0:1===a?1:Math.sin(a*Math.PI/2)},InOut:function(a){return 0===a?0:1===a?1:.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.Easing.Power0=c.Easing.Linear.None,c.Easing.Power1=c.Easing.Quadratic.Out,c.Easing.Power2=c.Easing.Cubic.Out,c.Easing.Power3=c.Easing.Quartic.Out,c.Easing.Power4=c.Easing.Quintic.Out,c.Time=function(a){this.game=a,this.time=0,this.prevTime=0,this.now=0,this.elapsed=0,this.elapsedMS=0,this.physicsElapsed=0,this.physicsElapsedMS=0,this.desiredFps=60,this.suggestedFps=null,this.slowMotion=1,this.advancedTiming=!1,this.frames=0,this.fps=0,this.fpsMin=1e3,this.fpsMax=0,this.msMin=1e3,this.msMax=0,this.pauseDuration=0,this.timeToCall=0,this.timeExpected=0,this.events=new c.Timer(this.game,!1),this._frameCount=0,this._elapsedAccumulator=0,this._started=0,this._timeLastSecond=0,this._pauseStarted=0,this._justResumed=!1,this._timers=[]},c.Time.prototype={boot:function(){this._started=Date.now(),this.time=Date.now(),this.events.start()},add:function(a){return this._timers.push(a),a},create:function(a){void 0===a&&(a=!0);var b=new c.Timer(this.game,a);return this._timers.push(b),b},removeAll:function(){for(var a=0;aa;)this._timers[a].update(this.time)?a++:(this._timers.splice(a,1),b--)},updateAdvancedTiming:function(){this._frameCount++,this._elapsedAccumulator+=this.elapsed,this._frameCount>=2*this.desiredFps&&(this.suggestedFps=5*Math.floor(200/(this._elapsedAccumulator/this._frameCount)),this._frameCount=0,this._elapsedAccumulator=0),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)},gamePaused:function(){this._pauseStarted=Date.now(),this.events.pause();for(var a=this._timers.length;a--;)this._timers[a]._pause()},gameResumed:function(){this.time=Date.now(),this.pauseDuration=this.time-this._pauseStarted,this.events.resume();for(var a=this._timers.length;a--;)this._timers[a]._resume()},totalElapsedSeconds:function(){return.001*(this.time-this._started)},elapsedSince:function(a){return this.time-a},elapsedSecondsSince:function(a){return.001*(this.time-a)},reset:function(){this._started=this.time,this.removeAll()}},c.Time.prototype.constructor=c.Time,c.Timer=function(a,b){void 0===b&&(b=!0),this.game=a,this.running=!1,this.autoDestroy=b,this.expired=!1,this.elapsed=0,this.events=[],this.onComplete=new c.Signal,this.nextTick=0,this.timeCap=1e3,this.paused=!1,this._codePaused=!1,this._started=0,this._pauseStarted=0,this._pauseTotal=0,this._now=Date.now(),this._len=0,this._marked=0,this._i=0,this._diff=0,this._newTick=0},c.Timer.MINUTE=6e4,c.Timer.SECOND=1e3,c.Timer.HALF=500,c.Timer.QUARTER=250,c.Timer.prototype={create:function(a,b,d,e,f,g){a=Math.round(a);var h=a;h+=0===this._now?this.game.time.time:this._now;var i=new c.TimerEvent(this,a,h,d,b,e,f,g);return this.events.push(i),this.order(),this.expired=!1,i},add:function(a,b,c){return this.create(a,!1,0,b,c,Array.prototype.splice.call(arguments,3))},repeat:function(a,b,c,d){return this.create(a,!1,b,c,d,Array.prototype.splice.call(arguments,4))},loop:function(a,b,c){return this.create(a,!0,0,b,c,Array.prototype.splice.call(arguments,3))},start:function(a){if(!this.running){this._started=this.game.time.time+(a||0),this.running=!0;for(var b=0;b0&&(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.events[this._i].pendingDelete;)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},destroy:function(){this.onComplete.removeAll(),this.running=!1,this.events=[],this._len=0,this._i=0}},Object.defineProperty(c.Timer.prototype,"next",{get:function(){return this.nextTick}}),Object.defineProperty(c.Timer.prototype,"duration",{get:function(){return this.running&&this.nextTick>this._now?this.nextTick-this._now:0}}),Object.defineProperty(c.Timer.prototype,"length",{get:function(){return this.events.length}}),Object.defineProperty(c.Timer.prototype,"ms",{get:function(){return this.running?this._now-this._started-this._pauseTotal:0}}),Object.defineProperty(c.Timer.prototype,"seconds",{get:function(){return this.running?.001*this.ms:0}}),c.Timer.prototype.constructor=c.Timer,c.TimerEvent=function(a,b,c,d,e,f,g,h){this.timer=a,this.delay=b,this.tick=c,this.repeatCount=d-1,this.loop=e,this.callback=f,this.callbackContext=g,this.args=h,this.pendingDelete=!1},c.TimerEvent.prototype.constructor=c.TimerEvent,c.AnimationManager=function(a){this.sprite=a,this.game=a.game,this.currentFrame=null,this.currentAnim=null,this.updateIfVisible=!0,this.isLoaded=!1,this._frameData=null,this._anims={},this._outputFrames=[]},c.AnimationManager.prototype={loadFrameData:function(a,b){if(void 0===a)return!1;if(this.isLoaded)for(var c in this._anims)this._anims[c].updateFrameData(a);return this._frameData=a,void 0===b||null===b?this.frame=0:"string"==typeof b?this.frameName=b:this.frame=b,this.isLoaded=!0,!0},copyFrameData:function(a,b){if(this._frameData=a.clone(),this.isLoaded)for(var c in this._anims)this._anims[c].updateFrameData(this._frameData);return void 0===b||null===b?this.frame=0:"string"==typeof b?this.frameName=b:this.frame=b,this.isLoaded=!0,!0},add:function(a,b,d,e,f){return b=b||[],d=d||60,void 0===e&&(e=!1),void 0===f&&(f=b&&"number"==typeof b[0]?!0:!1),this._outputFrames=[],this._frameData.getFrameIndexes(b,f,this._outputFrames),this._anims[a]=new c.Animation(this.game,this.sprite,a,this._frameData,this._outputFrames,d,e),this.currentAnim=this._anims[a],this.sprite.tilingTexture&&(this.sprite.refreshTexture=!0),this._anims[a]},validateFrames:function(a,b){void 0===b&&(b=!0);for(var c=0;cthis._frameData.total)return!1}else if(this._frameData.checkFrameName(a[c])===!1)return!1;return!0},play:function(a,b,c,d){return this._anims[a]?this.currentAnim===this._anims[a]?this.currentAnim.isPlaying===!1?(this.currentAnim.paused=!1,this.currentAnim.play(b,c,d)):this.currentAnim:(this.currentAnim&&this.currentAnim.isPlaying&&this.currentAnim.stop(),this.currentAnim=this._anims[a],this.currentAnim.paused=!1,this.currentFrame=this.currentAnim.currentFrame,this.currentAnim.play(b,c,d)):void 0},stop:function(a,b){void 0===b&&(b=!1),"string"==typeof a?this._anims[a]&&(this.currentAnim=this._anims[a],this.currentAnim.stop(b)):this.currentAnim&&this.currentAnim.stop(b)},update:function(){return this.updateIfVisible&&!this.sprite.visible?!1:this.currentAnim&&this.currentAnim.update()?(this.currentFrame=this.currentAnim.currentFrame,!0):!1},next:function(a){this.currentAnim&&(this.currentAnim.next(a),this.currentFrame=this.currentAnim.currentFrame)},previous:function(a){this.currentAnim&&(this.currentAnim.previous(a),this.currentFrame=this.currentAnim.currentFrame)},getAnimation:function(a){return"string"==typeof a&&this._anims[a]?this._anims[a]:null},refreshFrame:function(){this.sprite.setTexture(PIXI.TextureCache[this.currentFrame.uuid])},destroy:function(){var a=null;for(var a in this._anims)this._anims.hasOwnProperty(a)&&this._anims[a].destroy();this._anims={},this._outputFrames=[],this._frameData=null,this.currentAnim=null,this.currentFrame=null,this.sprite=null,this.game=null}},c.AnimationManager.prototype.constructor=c.AnimationManager,Object.defineProperty(c.AnimationManager.prototype,"frameData",{get:function(){return this._frameData}}),Object.defineProperty(c.AnimationManager.prototype,"frameTotal",{get:function(){return this._frameData.total}}),Object.defineProperty(c.AnimationManager.prototype,"paused",{get:function(){return this.currentAnim.isPaused},set:function(a){this.currentAnim.paused=a}}),Object.defineProperty(c.AnimationManager.prototype,"name",{get:function(){return this.currentAnim?this.currentAnim.name:void 0}}),Object.defineProperty(c.AnimationManager.prototype,"frame",{get:function(){return this.currentFrame?this.currentFrame.index:void 0},set:function(a){"number"==typeof a&&this._frameData&&null!==this._frameData.getFrame(a)&&(this.currentFrame=this._frameData.getFrame(a),this.currentFrame&&this.sprite.setFrame(this.currentFrame))}}),Object.defineProperty(c.AnimationManager.prototype,"frameName",{get:function(){return this.currentFrame?this.currentFrame.name:void 0},set:function(a){"string"==typeof a&&this._frameData&&null!==this._frameData.getFrameByName(a)?(this.currentFrame=this._frameData.getFrameByName(a),this.currentFrame&&(this._frameIndex=this.currentFrame.index,this.sprite.setFrame(this.currentFrame))):console.warn("Cannot set frameName: "+a)}}),c.Animation=function(a,b,d,e,f,g,h){void 0===h&&(h=!1),this.game=a,this._parent=b,this._frameData=e,this.name=d,this._frames=[],this._frames=this._frames.concat(f),this.delay=1e3/g,this.loop=h,this.loopCount=0,this.killOnComplete=!1,this.isFinished=!1,this.isPlaying=!1,this.isPaused=!1,this._pauseStartTime=0,this._frameIndex=0,this._frameDiff=0,this._frameSkip=1,this.currentFrame=this._frameData.getFrame(this._frames[this._frameIndex]),this.onStart=new c.Signal,this.onUpdate=null,this.onComplete=new c.Signal,this.onLoop=new c.Signal,this.game.onPause.add(this.onPause,this),this.game.onResume.add(this.onResume,this)},c.Animation.prototype={play:function(a,b,c){return"number"==typeof a&&(this.delay=1e3/a),"boolean"==typeof b&&(this.loop=b),"undefined"!=typeof c&&(this.killOnComplete=c),this.isPlaying=!0,this.isFinished=!1,this.paused=!1,this.loopCount=0,this._timeLastFrame=this.game.time.time,this._timeNextFrame=this.game.time.time+this.delay,this._frameIndex=0,this.updateCurrentFrame(!1,!0),this._parent.events.onAnimationStart$dispatch(this._parent,this),this.onStart.dispatch(this._parent,this),this._parent.animations.currentAnim=this,this._parent.animations.currentFrame=this.currentFrame,this},restart:function(){this.isPlaying=!0,this.isFinished=!1,this.paused=!1,this.loopCount=0,this._timeLastFrame=this.game.time.time,this._timeNextFrame=this.game.time.time+this.delay,this._frameIndex=0,this.currentFrame=this._frameData.getFrame(this._frames[this._frameIndex]),this._parent.setFrame(this.currentFrame),this._parent.animations.currentAnim=this,this._parent.animations.currentFrame=this.currentFrame,this.onStart.dispatch(this._parent,this)},setFrame:function(a,b){var c;if(void 0===b&&(b=!1),"string"==typeof a)for(var d=0;d=this._timeNextFrame?(this._frameSkip=1,this._frameDiff=this.game.time.time-this._timeNextFrame,this._timeLastFrame=this.game.time.time,this._frameDiff>this.delay&&(this._frameSkip=Math.floor(this._frameDiff/this.delay),this._frameDiff-=this._frameSkip*this.delay),this._timeNextFrame=this.game.time.time+(this.delay-this._frameDiff),this._frameIndex+=this._frameSkip,this._frameIndex>=this._frames.length?this.loop?(this._frameIndex%=this._frames.length,this.currentFrame=this._frameData.getFrame(this._frames[this._frameIndex]),this.currentFrame&&this._parent.setFrame(this.currentFrame),this.loopCount++,this._parent.events.onAnimationLoop$dispatch(this._parent,this),this.onLoop.dispatch(this._parent,this),this.onUpdate?(this.onUpdate.dispatch(this,this.currentFrame),!!this._frameData):!0):(this.complete(),!1):this.updateCurrentFrame(!0)):!1},updateCurrentFrame:function(a,b){if(void 0===b&&(b=!1),!this._frameData)return!1;var c=this.currentFrame.index;return this.currentFrame=this._frameData.getFrame(this._frames[this._frameIndex]),this.currentFrame&&(b||!b&&c!==this.currentFrame.index)&&this._parent.setFrame(this.currentFrame),this.onUpdate&&a?(this.onUpdate.dispatch(this,this.currentFrame),!!this._frameData):!0},next:function(a){void 0===a&&(a=1);var b=this._frameIndex+a;b>=this._frames.length&&(this.loop?b%=this._frames.length:b=this._frames.length-1),b!==this._frameIndex&&(this._frameIndex=b,this.updateCurrentFrame(!0))},previous:function(a){void 0===a&&(a=1);var b=this._frameIndex-a;0>b&&(this.loop?b=this._frames.length+b:b++),b!==this._frameIndex&&(this._frameIndex=b,this.updateCurrentFrame(!0))},updateFrameData:function(a){this._frameData=a,this.currentFrame=this._frameData?this._frameData.getFrame(this._frames[this._frameIndex%this._frames.length]):null},destroy:function(){this._frameData&&(this.game.onPause.remove(this.onPause,this),this.game.onResume.remove(this.onResume,this),this.game=null,this._parent=null,this._frames=null,this._frameData=null,this.currentFrame=null,this.isPlaying=!1,this.onStart.dispose(),this.onLoop.dispose(),this.onComplete.dispose(),this.onUpdate&&this.onUpdate.dispose())},complete:function(){this._frameIndex=this._frames.length-1,this.currentFrame=this._frameData.getFrame(this._frames[this._frameIndex]),this.isPlaying=!1,this.isFinished=!0,this.paused=!1,this._parent.events.onAnimationComplete$dispatch(this._parent,this),this.onComplete.dispatch(this._parent,this),this.killOnComplete&&this._parent.kill()}},c.Animation.prototype.constructor=c.Animation,Object.defineProperty(c.Animation.prototype,"paused",{get:function(){return this.isPaused},set:function(a){this.isPaused=a,a?this._pauseStartTime=this.game.time.time:this.isPlaying&&(this._timeNextFrame=this.game.time.time+this.delay)}}),Object.defineProperty(c.Animation.prototype,"frameTotal",{get:function(){return this._frames.length}}),Object.defineProperty(c.Animation.prototype,"frame",{get:function(){return null!==this.currentFrame?this.currentFrame.index:this._frameIndex},set:function(a){this.currentFrame=this._frameData.getFrame(this._frames[a]),null!==this.currentFrame&&(this._frameIndex=a,this._parent.setFrame(this.currentFrame),this.onUpdate&&this.onUpdate.dispatch(this,this.currentFrame))}}),Object.defineProperty(c.Animation.prototype,"speed",{get:function(){return Math.round(1e3/this.delay)},set:function(a){a>=1&&(this.delay=1e3/a)}}),Object.defineProperty(c.Animation.prototype,"enableUpdate",{get:function(){return null!==this.onUpdate},set:function(a){a&&null===this.onUpdate?this.onUpdate=new c.Signal:a||null===this.onUpdate||(this.onUpdate.dispose(),this.onUpdate=null)}}),c.Animation.generateFrameNames=function(a,b,d,e,f){void 0===e&&(e="");var g=[],h="";if(d>b)for(var i=b;d>=i;i++)h="number"==typeof f?c.Utils.pad(i.toString(),f,"0",1):i.toString(),h=a+h+e,g.push(h);else for(var i=b;i>=d;i--)h="number"==typeof f?c.Utils.pad(i.toString(),f,"0",1):i.toString(),h=a+h+e,g.push(h);return g},c.Frame=function(a,b,d,e,f,g){this.index=a,this.x=b,this.y=d,this.width=e,this.height=f,this.name=g,this.centerX=Math.floor(e/2),this.centerY=Math.floor(f/2),this.distance=c.Math.distance(0,0,e,f),this.rotated=!1,this.rotationDirection="cw",this.trimmed=!1,this.sourceSizeW=e,this.sourceSizeH=f,this.spriteSourceSizeX=0,this.spriteSourceSizeY=0,this.spriteSourceSizeW=0,this.spriteSourceSizeH=0,this.right=this.x+this.width,this.bottom=this.y+this.height},c.Frame.prototype={resize:function(a,b){this.width=a,this.height=b,this.centerX=Math.floor(a/2),this.centerY=Math.floor(b/2),this.distance=c.Math.distance(0,0,a,b),this.sourceSizeW=a,this.sourceSizeH=b,this.right=this.x+a,this.bottom=this.y+b -},setTrim:function(a,b,c,d,e,f,g){this.trimmed=a,a&&(this.sourceSizeW=b,this.sourceSizeH=c,this.centerX=Math.floor(b/2),this.centerY=Math.floor(c/2),this.spriteSourceSizeX=d,this.spriteSourceSizeY=e,this.spriteSourceSizeW=f,this.spriteSourceSizeH=g)},clone:function(){var a=new c.Frame(this.index,this.x,this.y,this.width,this.height,this.name);for(var b in this)this.hasOwnProperty(b)&&(a[b]=this[b]);return a},getRect:function(a){return void 0===a?a=new c.Rectangle(this.x,this.y,this.width,this.height):a.setTo(this.x,this.y,this.width,this.height),a}},c.Frame.prototype.constructor=c.Frame,c.FrameData=function(){this._frames=[],this._frameNames=[]},c.FrameData.prototype={addFrame:function(a){return a.index=this._frames.length,this._frames.push(a),""!==a.name&&(this._frameNames[a.name]=a.index),a},getFrame:function(a){return a>=this._frames.length&&(a=0),this._frames[a]},getFrameByName:function(a){return"number"==typeof this._frameNames[a]?this._frames[this._frameNames[a]]:null},checkFrameName:function(a){return null==this._frameNames[a]?!1:!0},clone:function(){for(var a=new c.FrameData,b=0;b=d;d++)c.push(this._frames[d]);return c},getFrames:function(a,b,c){if(void 0===b&&(b=!0),void 0===c&&(c=[]),void 0===a||0===a.length)for(var d=0;d=d&&(d=Math.floor(-j/Math.min(-1,d))),0>=e&&(e=Math.floor(-k/Math.min(-1,e)));var l=Math.floor((j-g)/(d+h)),m=Math.floor((k-g)/(e+h)),n=l*m;if(-1!==f&&(n=f),0===j||0===k||d>j||e>k||0===n)return console.warn("Phaser.AnimationParser.spriteSheet: '"+b+"'s width/height zero or width/height < given frameWidth/frameHeight"),null;for(var o=new c.FrameData,p=g,q=g,r=0;n>r;r++)o.addFrame(new c.Frame(r,p,q,d,e,"")),p+=d+h,p+d>j&&(p=g,q+=e+h);return o},JSONData:function(a,b){if(!b.frames)return console.warn("Phaser.AnimationParser.JSONData: Invalid Texture Atlas JSON given, missing 'frames' array"),void console.log(b);for(var d,e=new c.FrameData,f=b.frames,g=0;g tag");for(var d,e,f,g,h,i,j,k,l,m,n,o=new c.FrameData,p=b.getElementsByTagName("SubTexture"),q=0;q-1},getAssetIndex:function(a,b){for(var c=-1,d=0;d-1?{index:c,file:this._fileList[c]}:!1},reset:function(a,b){void 0===b&&(b=!1),this.resetLocked||(a&&(this.preloadSprite=null),this.isLoading=!1,this._processingHead=0,this._fileList.length=0,this._flightQueue.length=0,this._fileLoadStarted=!1,this._totalFileCount=0,this._totalPackCount=0,this._loadedPackCount=0,this._loadedFileCount=0,b&&(this.onLoadStart.removeAll(),this.onLoadComplete.removeAll(),this.onPackComplete.removeAll(),this.onFileStart.removeAll(),this.onFileComplete.removeAll(),this.onFileError.removeAll()))},addToFileList:function(a,b,c,d,e,f){if(void 0===e&&(e=!1),void 0===b||""===b)return console.warn("Phaser.Loader: Invalid or no key given of type "+a),this;if(void 0===c||null===c){if(!f)return console.warn("Phaser.Loader: No URL given for file type: "+a+" key: "+b),this;c=b+f}var g={type:a,key:b,path:this.path,url:c,syncPoint:this._withSyncPointDepth>0,data:null,loading:!1,loaded:!1,error:!1};if(d)for(var h in d)g[h]=d[h];var i=this.getAssetIndex(a,b);if(e&&i>-1){var j=this._fileList[i];j.loading||j.loaded?(this._fileList.push(g),this._totalFileCount++):this._fileList[i]=g}else-1===i&&(this._fileList.push(g),this._totalFileCount++);return this},replaceInFileList:function(a,b,c,d){return this.addToFileList(a,b,c,d,!0)},pack:function(a,b,c,d){if(void 0===b&&(b=null),void 0===c&&(c=null),void 0===d&&(d=null),!b&&!c)return console.warn("Phaser.Loader.pack - Both url and data are null. One must be set."),this;var e={type:"packfile",key:a,url:b,path:this.path,syncPoint:!0,data:null,loading:!1,loaded:!1,error:!1,callbackContext:d};c&&("string"==typeof c&&(c=JSON.parse(c)),e.data=c||{},e.loaded=!0);for(var f=0;f=e||d&&this._loadedPackCount===this._totalPackCount)break}if(this.updateProgress(),this._processingHead>=this._fileList.length)this.finishedLoading();else if(!this._flightQueue.length){console.warn("Phaser.Loader - aborting: processing queue empty, loading may have stalled");var f=this;setTimeout(function(){f.finishedLoading(!0)},2e3)}},finishedLoading:function(a){this.hasLoaded||(this.hasLoaded=!0,this.isLoading=!1,a||this._fileLoadStarted||(this._fileLoadStarted=!0,this.onLoadStart.dispatch()),this.onLoadComplete.dispatch(),this.reset(),this.game.state.loadComplete())},asyncComplete:function(a,b){void 0===b&&(b=""),a.loaded=!0,a.error=!!b,b&&(a.errorMessage=b,console.warn("Phaser.Loader - "+a.type+"["+a.key+"]: "+b)),this.processLoadQueue()},processPack:function(a){var b=a.data[a.key];if(!b)return void console.warn("Phaser.Loader - "+a.key+": pack has data, but not for pack key");for(var d=0;d=10)||(this._warnedAboutXDomainRequest=!0,console.warn("Phaser.Loader - using XDomainRequest outside of IE 9"));var f=new window.XDomainRequest;f.open("GET",b,!0),f.responseType=c,f.timeout=3e3,e=e||this.fileError;var g=this;f.onerror=function(){try{return e.call(g,a,f)}catch(b){g.asyncComplete(a,b.message||"Exception")}},f.ontimeout=function(){try{return e.call(g,a,f)}catch(b){g.asyncComplete(a,b.message||"Exception")}},f.onprogress=function(){},f.onload=function(){try{return d.call(g,a,f)}catch(b){g.asyncComplete(a,b.message||"Exception")}},a.requestObject=f,a.requestUrl=b,setTimeout(function(){f.send()},0)},getVideoURL:function(a){for(var b=0;b=0&&(d=d.substr(0,d.indexOf("?")));var e=d.substr((Math.max(0,d.lastIndexOf("."))||1/0)+1);c=e.toLowerCase()}if(this.game.device.canPlayVideo(c))return a[b]}return null},getAudioURL:function(a){if(this.game.sound.noAudio)return null;for(var b=0;b=0&&(d=d.substr(0,d.indexOf("?")));var e=d.substr((Math.max(0,d.lastIndexOf("."))||1/0)+1);c=e.toLowerCase()}if(this.game.device.canPlayAudio(c))return a[b]}return null},fileError:function(a,b,c){var d=a.requestUrl||this.transformUrl(a.url,a),e="error loading asset from URL "+d;!c&&b&&(c=b.status),c&&(e=e+" ("+c+")"),this.asyncComplete(a,e)},fileComplete:function(a,b){var d=!0;switch(a.type){case"packfile":var e=JSON.parse(b.responseText);a.data=e||{};break;case"image":this.cache.addImage(a.key,a.url,a.data);break;case"spritesheet":this.cache.addSpriteSheet(a.key,a.url,a.data,a.frameWidth,a.frameHeight,a.frameMax,a.margin,a.spacing);break;case"textureatlas":if(null==a.atlasURL)this.cache.addTextureAtlas(a.key,a.url,a.data,a.atlasData,a.format);else if(d=!1,a.format==c.Loader.TEXTURE_ATLAS_JSON_ARRAY||a.format==c.Loader.TEXTURE_ATLAS_JSON_HASH)this.xhrLoad(a,this.transformUrl(a.atlasURL,a),"text",this.jsonLoadComplete);else{if(a.format!=c.Loader.TEXTURE_ATLAS_XML_STARLING)throw new Error("Phaser.Loader. Invalid Texture Atlas format: "+a.format);this.xhrLoad(a,this.transformUrl(a.atlasURL,a),"text",this.xmlLoadComplete)}break;case"bitmapfont":a.atlasURL?(d=!1,this.xhrLoad(a,this.transformUrl(a.atlasURL,a),"text",function(a,b){var c;try{c=JSON.parse(b.responseText)}catch(d){}c?(a.atlasType="json",this.jsonLoadComplete(a,b)):(a.atlasType="xml",this.xmlLoadComplete(a,b))})):this.cache.addBitmapFont(a.key,a.url,a.data,a.atlasData,a.atlasType,a.xSpacing,a.ySpacing);break;case"video":if(a.asBlob)try{a.data=new Blob([new Uint8Array(b.response)])}catch(f){throw new Error("Phaser.Loader. Unable to parse video file as Blob: "+a.key)}this.cache.addVideo(a.key,a.url,a.data,a.asBlob);break;case"audio":this.game.sound.usingWebAudio?(a.data=b.response,this.cache.addSound(a.key,a.url,a.data,!0,!1),a.autoDecode&&this.game.sound.decode(a.key)):this.cache.addSound(a.key,a.url,a.data,!1,!0);break;case"text":a.data=b.responseText,this.cache.addText(a.key,a.url,a.data);break;case"shader":a.data=b.responseText,this.cache.addShader(a.key,a.url,a.data);break;case"physics":var e=JSON.parse(b.responseText);this.cache.addPhysicsData(a.key,a.url,e,a.format);break;case"script":a.data=document.createElement("script"),a.data.language="javascript",a.data.type="text/javascript",a.data.defer=!1,a.data.text=b.responseText,document.head.appendChild(a.data),a.callback&&(a.data=a.callback.call(a.callbackContext,a.key,b.responseText));break;case"binary":a.data=a.callback?a.callback.call(a.callbackContext,a.key,b.response):b.response,this.cache.addBinary(a.key,a.data)}d&&this.asyncComplete(a)},jsonLoadComplete:function(a,b){var c=JSON.parse(b.responseText);"tilemap"===a.type?this.cache.addTilemap(a.key,a.url,c,a.format):"bitmapfont"===a.type?this.cache.addBitmapFont(a.key,a.url,a.data,c,a.atlasType,a.xSpacing,a.ySpacing):"json"===a.type?this.cache.addJSON(a.key,a.url,c):this.cache.addTextureAtlas(a.key,a.url,a.data,c,a.format),this.asyncComplete(a)},csvLoadComplete:function(a,b){var c=b.responseText;this.cache.addTilemap(a.key,a.url,c,a.format),this.asyncComplete(a)},xmlLoadComplete:function(a,b){var c=b.responseText,d=this.parseXml(c);if(!d){var e=b.responseType||b.contentType;return console.warn("Phaser.Loader - "+a.key+": invalid XML ("+e+")"),void this.asyncComplete(a,"invalid XML")}"bitmapfont"===a.type?this.cache.addBitmapFont(a.key,a.url,a.data,d,a.atlasType,a.xSpacing,a.ySpacing):"textureatlas"===a.type?this.cache.addTextureAtlas(a.key,a.url,a.data,d,a.format):"xml"===a.type&&this.cache.addXML(a.key,a.url,d),this.asyncComplete(a)},parseXml:function(a){var b;try{if(window.DOMParser){var c=new DOMParser;b=c.parseFromString(a,"text/xml")}else b=new ActiveXObject("Microsoft.XMLDOM"),b.async="false",b.loadXML(a)}catch(d){b=null}return b&&b.documentElement&&!b.getElementsByTagName("parsererror").length?b:null},updateProgress:function(){this.preloadSprite&&(0===this.preloadSprite.direction?this.preloadSprite.rect.width=Math.floor(this.preloadSprite.width/100*this.progress):this.preloadSprite.rect.height=Math.floor(this.preloadSprite.height/100*this.progress),this.preloadSprite.sprite?this.preloadSprite.sprite.updateCrop():this.preloadSprite=null)},totalLoadedFiles:function(){return this._loadedFileCount},totalQueuedFiles:function(){return this._totalFileCount-this._loadedFileCount},totalLoadedPacks:function(){return this._totalPackCount},totalQueuedPacks:function(){return this._totalPackCount-this._loadedPackCount}},Object.defineProperty(c.Loader.prototype,"progressFloat",{get:function(){var a=this._loadedFileCount/this._totalFileCount*100;return c.Math.clamp(a||0,0,100)}}),Object.defineProperty(c.Loader.prototype,"progress",{get:function(){return Math.round(this.progressFloat)}}),c.Loader.prototype.constructor=c.Loader,c.LoaderParser={bitmapFont:function(a,b,c,d){return this.xmlBitmapFont(a,b,c,d)},xmlBitmapFont:function(a,b,c,d){var e={},f=a.getElementsByTagName("info")[0],g=a.getElementsByTagName("common")[0];e.font=f.getAttribute("face"),e.size=parseInt(f.getAttribute("size"),10),e.lineHeight=parseInt(g.getAttribute("lineHeight"),10)+d,e.chars={};for(var h=a.getElementsByTagName("char"),i=0;i=this.durationMS&&(this.usingWebAudio?this.loop?(this.onLoop.dispatch(this),""===this.currentMarker?(this.currentTime=0,this.startTime=this.game.time.time):(this.onMarkerComplete.dispatch(this.currentMarker,this),this.play(this.currentMarker,0,this.volume,!0,!0))):""!==this.currentMarker&&this.stop():this.loop?(this.onLoop.dispatch(this),this.play(this.currentMarker,0,this.volume,!0,!0)):this.stop()))},loopFull:function(a){this.play(null,0,a,!0)},play:function(a,b,c,d,e){if((void 0===a||a===!1||null===a)&&(a=""),void 0===e&&(e=!0),this.isPlaying&&!this.allowMultiple&&!e&&!this.override)return this;if(this._sound&&this.isPlaying&&!this.allowMultiple&&(this.override||e))if(this.usingWebAudio)if(this._sound.disconnect(this.externalNode?this.externalNode:this.gainNode),void 0===this._sound.stop)this._sound.noteOff(0);else try{this._sound.stop(0)}catch(f){}else this.usingAudioTag&&(this._sound.pause(),this._sound.currentTime=0);if(""===a&&Object.keys(this.markers).length>0)return this;if(""!==a){if(this.currentMarker=a,!this.markers[a])return this;this.position=this.markers[a].start,this.volume=this.markers[a].volume,this.loop=this.markers[a].loop,this.duration=this.markers[a].duration,this.durationMS=this.markers[a].durationMS,"undefined"!=typeof c&&(this.volume=c),"undefined"!=typeof d&&(this.loop=d),this._tempMarker=a,this._tempPosition=this.position,this._tempVolume=this.volume,this._tempLoop=this.loop}else b=b||0,void 0===c&&(c=this._volume),void 0===d&&(d=this.loop),this.position=b,this.volume=c,this.loop=d,this.duration=0,this.durationMS=0,this._tempMarker=a,this._tempPosition=b,this._tempVolume=c,this._tempLoop=d;return this.usingWebAudio?this.game.cache.isSoundDecoded(this.key)?(this._sound=this.context.createBufferSource(),this._sound.connect(this.externalNode?this.externalNode:this.gainNode),this._buffer=this.game.cache.getSoundData(this.key),this._sound.buffer=this._buffer,this.loop&&""===a&&(this._sound.loop=!0),this.loop||""!==a||(this._sound.onended=this.onEndedHandler.bind(this)),this.totalDuration=this._sound.buffer.duration,0===this.duration&&(this.duration=this.totalDuration,this.durationMS=Math.ceil(1e3*this.totalDuration)),void 0===this._sound.start?this._sound.noteGrainOn(0,this.position,this.duration):this.loop&&""===a?this._sound.start(0,0):this._sound.start(0,this.position,this.duration),this.isPlaying=!0,this.startTime=this.game.time.time,this.currentTime=0,this.stopTime=this.startTime+this.durationMS,this.onPlay.dispatch(this)):(this.pendingPlayback=!0,this.game.cache.getSound(this.key)&&this.game.cache.getSound(this.key).isDecoding===!1&&this.game.sound.decode(this.key,this)):this.game.cache.getSound(this.key)&&this.game.cache.getSound(this.key).locked?(this.game.cache.reloadSound(this.key),this.pendingPlayback=!0):this._sound&&(this.game.device.cocoonJS||4===this._sound.readyState)?(this._sound.play(),this.totalDuration=this._sound.duration,0===this.duration&&(this.duration=this.totalDuration,this.durationMS=1e3*this.totalDuration),this._sound.currentTime=this.position,this._sound.muted=this._muted,this._sound.volume=this._muted?0:this._volume,this.isPlaying=!0,this.startTime=this.game.time.time,this.currentTime=0,this.stopTime=this.startTime+this.durationMS,this.onPlay.dispatch(this)):this.pendingPlayback=!0,this},restart:function(a,b,c,d){a=a||"",b=b||0,c=c||1,void 0===d&&(d=!1),this.play(a,b,c,d,!0)},pause:function(){this.isPlaying&&this._sound&&(this.paused=!0,this.pausedPosition=this.currentTime,this.pausedTime=this.game.time.time,this.onPause.dispatch(this),this.stop())},resume:function(){if(this.paused&&this._sound){if(this.usingWebAudio){var a=this.position+this.pausedPosition/1e3;this._sound=this.context.createBufferSource(),this._sound.buffer=this._buffer,this._sound.connect(this.externalNode?this.externalNode:this.gainNode),this.loop&&(this._sound.loop=!0),this.loop||""!==this.currentMarker||(this._sound.onended=this.onEndedHandler.bind(this));var b=this.duration-this.pausedPosition/1e3;void 0===this._sound.start?this._sound.noteGrainOn(0,a,b):this.loop&&this.game.device.chrome?42===this.game.device.chromeVersion?this._sound.start(0):this._sound.start(0,a):this._sound.start(0,a,b)}else this._sound.play();this.isPlaying=!0,this.paused=!1,this.startTime+=this.game.time.time-this.pausedTime,this.onResume.dispatch(this)}},stop:function(){if(this.isPlaying&&this._sound)if(this.usingWebAudio)if(this._sound.disconnect(this.externalNode?this.externalNode:this.gainNode),void 0===this._sound.stop)this._sound.noteOff(0);else try{this._sound.stop(0)}catch(a){}else this.usingAudioTag&&(this._sound.pause(),this._sound.currentTime=0);this.pendingPlayback=!1,this.isPlaying=!1;var b=this.currentMarker;""!==this.currentMarker&&this.onMarkerComplete.dispatch(this.currentMarker,this),this.currentMarker="",null!==this.fadeTween&&this.fadeTween.stop(),this.paused||this.onStop.dispatch(this,b)},fadeIn:function(a,b,c){void 0===b&&(b=!1),void 0===c&&(c=this.currentMarker),this.paused||(this.play(c,0,0,b),this.fadeTo(a,1))},fadeOut:function(a){this.fadeTo(a,0)},fadeTo:function(a,b){if(this.isPlaying&&!this.paused&&b!==this.volume){if(void 0===a&&(a=1e3),void 0===b)return void console.warn("Phaser.Sound.fadeTo: No Volume Specified.");this.fadeTween=this.game.add.tween(this).to({volume:b},a,c.Easing.Linear.None,!0),this.fadeTween.onComplete.add(this.fadeComplete,this)}},fadeComplete:function(){this.onFadeComplete.dispatch(this,this.volume),0===this.volume&&this.stop()},destroy:function(a){void 0===a&&(a=!0),this.stop(),a?this.game.sound.remove(this):(this.markers={},this.context=null,this._buffer=null,this.externalNode=null,this.onDecoded.dispose(),this.onPlay.dispose(),this.onPause.dispose(),this.onResume.dispose(),this.onLoop.dispose(),this.onStop.dispose(),this.onMute.dispose(),this.onMarkerComplete.dispose())}},c.Sound.prototype.constructor=c.Sound,Object.defineProperty(c.Sound.prototype,"isDecoding",{get:function(){return this.game.cache.getSound(this.key).isDecoding}}),Object.defineProperty(c.Sound.prototype,"isDecoded",{get:function(){return this.game.cache.isSoundDecoded(this.key)}}),Object.defineProperty(c.Sound.prototype,"mute",{get:function(){return this._muted||this.game.sound.mute},set:function(a){a=a||!1,a!==this._muted&&(a?(this._muted=!0,this._muteVolume=this._tempVolume,this.usingWebAudio?this.gainNode.gain.value=0:this.usingAudioTag&&this._sound&&(this._sound.volume=0)):(this._muted=!1,this.usingWebAudio?this.gainNode.gain.value=this._muteVolume:this.usingAudioTag&&this._sound&&(this._sound.volume=this._muteVolume)),this.onMute.dispatch(this))}}),Object.defineProperty(c.Sound.prototype,"volume",{get:function(){return this._volume},set:function(a){return this.game.device.firefox&&this.usingAudioTag&&(a=this.game.math.clamp(a,0,1)),this._muted?void(this._muteVolume=a):(this._tempVolume=a,this._volume=a,void(this.usingWebAudio?this.gainNode.gain.value=a:this.usingAudioTag&&this._sound&&(this._sound.volume=a)))}}),c.SoundManager=function(a){this.game=a,this.onSoundDecode=new c.Signal,this.onVolumeChange=new c.Signal,this.onMute=new c.Signal,this.onUnMute=new c.Signal,this.context=null,this.usingWebAudio=!1,this.usingAudioTag=!1,this.noAudio=!1,this.connectToMaster=!0,this.touchLocked=!1,this.channels=32,this._codeMuted=!1,this._muted=!1,this._unlockSource=null,this._volume=1,this._sounds=[],this._watchList=new c.ArraySet,this._watching=!1,this._watchCallback=null,this._watchContext=null},c.SoundManager.prototype={boot:function(){if(this.game.device.iOS&&this.game.device.webAudio===!1&&(this.channels=1),window.PhaserGlobal){if(window.PhaserGlobal.disableAudio===!0)return this.noAudio=!0,void(this.touchLocked=!1);if(window.PhaserGlobal.disableWebAudio===!0)return this.usingAudioTag=!0,void(this.touchLocked=!1)}if(window.PhaserGlobal&&window.PhaserGlobal.audioContext)this.context=window.PhaserGlobal.audioContext;else if(window.AudioContext)try{this.context=new window.AudioContext}catch(a){this.context=null,this.usingWebAudio=!1,this.touchLocked=!1}else if(window.webkitAudioContext)try{this.context=new window.webkitAudioContext}catch(a){this.context=null,this.usingWebAudio=!1,this.touchLocked=!1}if(null===this.context){if(void 0===window.Audio)return void(this.noAudio=!0);this.usingAudioTag=!0}else this.usingWebAudio=!0,this.masterGain=void 0===this.context.createGain?this.context.createGainNode():this.context.createGain(),this.masterGain.gain.value=1,this.masterGain.connect(this.context.destination);this.noAudio||(!this.game.device.cocoonJS&&this.game.device.iOS||window.PhaserGlobal&&window.PhaserGlobal.fakeiOSTouchLock)&&this.setTouchLock()},setTouchLock:function(){this.game.input.touch.addTouchLockCallback(this.unlock,this),this.touchLocked=!0},unlock:function(){if(this.noAudio||!this.touchLocked||null!==this._unlockSource)return!0;if(this.usingAudioTag)this.touchLocked=!1,this._unlockSource=null;else if(this.usingWebAudio){var a=this.context.createBuffer(1,1,22050);this._unlockSource=this.context.createBufferSource(),this._unlockSource.buffer=a,this._unlockSource.connect(this.context.destination),void 0===this._unlockSource.start?this._unlockSource.noteOn(0):this._unlockSource.start(0)}return!0},stopAll:function(){if(!this.noAudio)for(var a=0;aa?a=0:a>1&&(a=1),this._volume!==a){if(this._volume=a,this.usingWebAudio)this.masterGain.gain.value=a;else for(var b=0;b-1},reset:function(){this.list.length=0},remove:function(a){var b=this.list.indexOf(a);return b>-1?(this.list.splice(b,1),a):void 0},setAll:function(a,b){for(var c=this.list.length;c--;)this.list[c]&&(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)},removeAll:function(a){void 0===a&&(a=!1);for(var b=this.list.length;b--;)if(this.list[b]){var c=this.remove(this.list[b]);a&&c.destroy()}this.position=0,this.list=[]}},Object.defineProperty(c.ArraySet.prototype,"total",{get:function(){return this.list.length}}),Object.defineProperty(c.ArraySet.prototype,"first",{get:function(){return this.position=0,this.list.length>0?this.list[0]:null}}),Object.defineProperty(c.ArraySet.prototype,"next",{get:function(){return this.position0;b--){var c=Math.floor(Math.random()*(b+1)),d=a[b];a[b]=a[c],a[c]=d}return a},transposeMatrix:function(a){for(var b=a.length,c=a[0].length,d=new Array(c),e=0;c>e;e++){d[e]=new Array(b);for(var f=b-1;f>-1;f--)d[e][f]=a[f][e]}return d},rotateMatrix:function(a,b){if("string"!=typeof b&&(b=(b%360+360)%360),90===b||-270===b||"rotateLeft"===b)a=c.ArrayUtils.transposeMatrix(a),a=a.reverse();else if(-90===b||270===b||"rotateRight"===b)a=a.reverse(),a=c.ArrayUtils.transposeMatrix(a);else if(180===Math.abs(b)||"rotate180"===b){for(var d=0;d=e-a?e:d},rotate:function(a){var b=a.shift();return a.push(b),b},numberArray:function(a,b){for(var c=[],d=a;b>=d;d++)c.push(d);return c},numberArrayStep:function(a,b,d){a=+a||0;var e=typeof b;"number"!==e&&"string"!==e||!d||d[b]!==a||(b=d=null),d=null==d?1:+d||0,null===b?(b=a,a=0):b=+b||0;for(var f=-1,g=Math.max(c.Math.roundAwayFromZero((b-a)/(d||1)),0),h=new Array(g);++f>>0:(a<<24|b<<16|d<<8|e)>>>0},unpackPixel:function(a,b,d,e){return(void 0===b||null===b)&&(b=c.Color.createColor()),(void 0===d||null===d)&&(d=!1),(void 0===e||null===e)&&(e=!1),c.Device.LITTLE_ENDIAN?(b.a=(4278190080&a)>>>24,b.b=(16711680&a)>>>16,b.g=(65280&a)>>>8,b.r=255&a):(b.r=(4278190080&a)>>>24,b.g=(16711680&a)>>>16,b.b=(65280&a)>>>8,b.a=255&a),b.color=a,b.rgba="rgba("+b.r+","+b.g+","+b.b+","+b.a/255+")",d&&c.Color.RGBtoHSL(b.r,b.g,b.b,b),e&&c.Color.RGBtoHSV(b.r,b.g,b.b,b),b},fromRGBA:function(a,b){return b||(b=c.Color.createColor()),b.r=(4278190080&a)>>>24,b.g=(16711680&a)>>>16,b.b=(65280&a)>>>8,b.a=255&a,b.rgba="rgba("+b.r+","+b.g+","+b.b+","+b.a+")",b},toRGBA:function(a,b,c,d){return a<<24|b<<16|c<<8|d},RGBtoHSL:function(a,b,d,e){e||(e=c.Color.createColor(a,b,d,1)),a/=255,b/=255,d/=255;var f=Math.min(a,b,d),g=Math.max(a,b,d);if(e.h=0,e.s=0,e.l=(g+f)/2,g!==f){var h=g-f;e.s=e.l>.5?h/(2-g-f):h/(g+f),g===a?e.h=(b-d)/h+(d>b?6:0):g===b?e.h=(d-a)/h+2:g===d&&(e.h=(a-b)/h+4),e.h/=6}return e},HSLtoRGB:function(a,b,d,e){if(e?(e.r=d,e.g=d,e.b=d):e=c.Color.createColor(d,d,d),0!==b){var f=.5>d?d*(1+b):d+b-d*b,g=2*d-f;e.r=c.Color.hueToColor(g,f,a+1/3),e.g=c.Color.hueToColor(g,f,a),e.b=c.Color.hueToColor(g,f,a-1/3)}return e.r=Math.floor(255*e.r|0),e.g=Math.floor(255*e.g|0),e.b=Math.floor(255*e.b|0),c.Color.updateColor(e),e},RGBtoHSV:function(a,b,d,e){e||(e=c.Color.createColor(a,b,d,255)),a/=255,b/=255,d/=255;var f=Math.min(a,b,d),g=Math.max(a,b,d),h=g-f;return e.h=0,e.s=0===g?0:h/g,e.v=g,g!==f&&(g===a?e.h=(b-d)/h+(d>b?6:0):g===b?e.h=(d-a)/h+2:g===d&&(e.h=(a-b)/h+4),e.h/=6),e},HSVtoRGB:function(a,b,d,e){void 0===e&&(e=c.Color.createColor(0,0,0,1,a,b,0,d));var f,g,h,i=Math.floor(6*a),j=6*a-i,k=d*(1-b),l=d*(1-j*b),m=d*(1-(1-j)*b);switch(i%6){case 0:f=d,g=m,h=k;break;case 1:f=l,g=d,h=k;break;case 2:f=k,g=d,h=m;break;case 3:f=k,g=l,h=d;break;case 4:f=m,g=k,h=d;break;case 5:f=d,g=k,h=l}return e.r=Math.floor(255*f),e.g=Math.floor(255*g),e.b=Math.floor(255*h),c.Color.updateColor(e),e},hueToColor:function(a,b,c){return 0>c&&(c+=1),c>1&&(c-=1),1/6>c?a+6*(b-a)*c:.5>c?b:2/3>c?a+(b-a)*(2/3-c)*6:a},createColor:function(a,b,d,e,f,g,h,i){var j={r:a||0,g:b||0,b:d||0,a:e||1,h:f||0,s:g||0,l:h||0,v:i||0,color:0,color32:0,rgba:""};return c.Color.updateColor(j)},updateColor:function(a){return a.rgba="rgba("+a.r.toString()+","+a.g.toString()+","+a.b.toString()+","+a.a.toString()+")",a.color=c.Color.getColor(a.r,a.g,a.b),a.color32=c.Color.getColor32(a.a,a.r,a.g,a.b),a},getColor32:function(a,b,c,d){return a<<24|b<<16|c<<8|d},getColor:function(a,b,c){return a<<16|b<<8|c},RGBtoString:function(a,b,d,e,f){return void 0===e&&(e=255),void 0===f&&(f="#"),"#"===f?"#"+((1<<24)+(a<<16)+(b<<8)+d).toString(16).slice(1):"0x"+c.Color.componentToHex(e)+c.Color.componentToHex(a)+c.Color.componentToHex(b)+c.Color.componentToHex(d)},hexToRGB:function(a){var b=c.Color.hexToColor(a);return b?c.Color.getColor32(b.a,b.r,b.g,b.b):void 0},hexToColor:function(a,b){a=a.replace(/^(?:#|0x)?([a-f\d])([a-f\d])([a-f\d])$/i,function(a,b,c,d){return b+b+c+c+d+d});var d=/^(?:#|0x)?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i.exec(a);if(d){var e=parseInt(d[1],16),f=parseInt(d[2],16),g=parseInt(d[3],16);b?(b.r=e,b.g=f,b.b=g):b=c.Color.createColor(e,f,g)}return b},webToColor:function(a,b){b||(b=c.Color.createColor());var d=/^rgba?\(\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d+)\s*(?:,\s*(\d+(?:\.\d+)?))?\s*\)$/.exec(a);return d&&(b.r=parseInt(d[1],10),b.g=parseInt(d[2],10),b.b=parseInt(d[3],10),b.a=void 0!==d[4]?parseFloat(d[4]):1,c.Color.updateColor(b)),b},valueToColor:function(a,b){if(b||(b=c.Color.createColor()),"string"==typeof a)return 0===a.indexOf("rgb")?c.Color.webToColor(a,b):(b.a=1,c.Color.hexToColor(a,b));if("number"==typeof a){var d=c.Color.getRGB(a);return b.r=d.r,b.g=d.g,b.b=d.b,b.a=d.a/255,b}return b},componentToHex:function(a){var b=a.toString(16);return 1==b.length?"0"+b:b},HSVColorWheel:function(a,b){void 0===a&&(a=1),void 0===b&&(b=1);for(var d=[],e=0;359>=e;e++)d.push(c.Color.HSVtoRGB(e/359,a,b));return d},HSLColorWheel:function(a,b){void 0===a&&(a=.5),void 0===b&&(b=.5);for(var d=[],e=0;359>=e;e++)d.push(c.Color.HSLtoRGB(e/359,a,b));return d},interpolateColor:function(a,b,d,e,f){void 0===f&&(f=255);var g=c.Color.getRGB(a),h=c.Color.getRGB(b),i=(h.red-g.red)*e/d+g.red,j=(h.green-g.green)*e/d+g.green,k=(h.blue-g.blue)*e/d+g.blue;return c.Color.getColor32(f,i,j,k)},interpolateColorWithRGB:function(a,b,d,e,f,g){var h=c.Color.getRGB(a),i=(b-h.red)*g/f+h.red,j=(d-h.green)*g/f+h.green,k=(e-h.blue)*g/f+h.blue;return c.Color.getColor(i,j,k)},interpolateRGB:function(a,b,d,e,f,g,h,i){var j=(e-a)*i/h+a,k=(f-b)*i/h+b,l=(g-d)*i/h+d;return c.Color.getColor(j,k,l)},getRandomColor:function(a,b,d){if(void 0===a&&(a=0),void 0===b&&(b=255),void 0===d&&(d=255),b>255||a>b)return c.Color.getColor(255,255,255);var e=a+Math.round(Math.random()*(b-a)),f=a+Math.round(Math.random()*(b-a)),g=a+Math.round(Math.random()*(b-a));return c.Color.getColor32(d,e,f,g)},getRGB:function(a){return a>16777215?{alpha:a>>>24,red:a>>16&255,green:a>>8&255,blue:255&a,a:a>>>24,r:a>>16&255,g:a>>8&255,b:255&a}:{alpha:255,red:a>>16&255,green:a>>8&255,blue:255&a,a:255,r:a>>16&255,g:a>>8&255,b:255&a}},getWebRGB:function(a){if("object"==typeof a)return"rgba("+a.r.toString()+","+a.g.toString()+","+a.b.toString()+","+(a.a/255).toString()+")";var b=c.Color.getRGB(a);return"rgba("+b.r.toString()+","+b.g.toString()+","+b.b.toString()+","+(b.a/255).toString()+")"},getAlpha:function(a){return a>>>24},getAlphaFloat:function(a){return(a>>>24)/255},getRed:function(a){return a>>16&255},getGreen:function(a){return a>>8&255},getBlue:function(a){return 255&a},blendNormal:function(a){return a},blendLighten:function(a,b){return b>a?b:a},blendDarken:function(a,b){return b>a?a:b},blendMultiply:function(a,b){return a*b/255},blendAverage:function(a,b){return(a+b)/2},blendAdd:function(a,b){return Math.min(255,a+b)},blendSubtract:function(a,b){return Math.max(0,a+b-255)},blendDifference:function(a,b){return Math.abs(a-b)},blendNegation:function(a,b){return 255-Math.abs(255-a-b)},blendScreen:function(a,b){return 255-((255-a)*(255-b)>>8)},blendExclusion:function(a,b){return a+b-2*a*b/255},blendOverlay:function(a,b){return 128>b?2*a*b/255:255-2*(255-a)*(255-b)/255},blendSoftLight:function(a,b){return 128>b?2*((a>>1)+64)*(b/255):255-2*(255-((a>>1)+64))*(255-b)/255},blendHardLight:function(a,b){return c.Color.blendOverlay(b,a)},blendColorDodge:function(a,b){return 255===b?b:Math.min(255,(a<<8)/(255-b))},blendColorBurn:function(a,b){return 0===b?b:Math.max(0,255-(255-a<<8)/b)},blendLinearDodge:function(a,b){return c.Color.blendAdd(a,b)},blendLinearBurn:function(a,b){return c.Color.blendSubtract(a,b)},blendLinearLight:function(a,b){return 128>b?c.Color.blendLinearBurn(a,2*b):c.Color.blendLinearDodge(a,2*(b-128))},blendVividLight:function(a,b){return 128>b?c.Color.blendColorBurn(a,2*b):c.Color.blendColorDodge(a,2*(b-128))},blendPinLight:function(a,b){return 128>b?c.Color.blendDarken(a,2*b):c.Color.blendLighten(a,2*(b-128))},blendHardMix:function(a,b){return c.Color.blendVividLight(a,b)<128?0:255},blendReflect:function(a,b){return 255===b?b:Math.min(255,a*a/(255-b))},blendGlow:function(a,b){return c.Color.blendReflect(b,a)},blendPhoenix:function(a,b){return Math.min(a,b)-Math.max(a,b)+255}},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.Physics=function(a,b){b=b||{},this.game=a,this.config=b,this.arcade=null,this.p2=null,this.ninja=null,this.box2d=null,this.chipmunk=null,this.matter=null,this.parseConfig()},c.Physics.ARCADE=0,c.Physics.P2JS=1,c.Physics.NINJA=2,c.Physics.BOX2D=3,c.Physics.CHIPMUNK=4,c.Physics.MATTERJS=5,c.Physics.prototype={parseConfig:function(){this.config.hasOwnProperty("arcade")&&this.config.arcade!==!0||!c.Physics.hasOwnProperty("Arcade")||(this.arcade=new c.Physics.Arcade(this.game)),this.config.hasOwnProperty("ninja")&&this.config.ninja===!0&&c.Physics.hasOwnProperty("Ninja")&&(this.ninja=new c.Physics.Ninja(this.game)),this.config.hasOwnProperty("p2")&&this.config.p2===!0&&c.Physics.hasOwnProperty("P2")&&(this.p2=new c.Physics.P2(this.game,this.config)),this.config.hasOwnProperty("box2d")&&this.config.box2d===!0&&c.Physics.hasOwnProperty("BOX2D")&&(this.box2d=new c.Physics.BOX2D(this.game,this.config)),this.config.hasOwnProperty("matter")&&this.config.matter===!0&&c.Physics.hasOwnProperty("Matter")&&(this.matter=new c.Physics.Matter(this.game,this.config))},startSystem:function(a){a===c.Physics.ARCADE?this.arcade=new c.Physics.Arcade(this.game):a===c.Physics.P2JS?null===this.p2?this.p2=new c.Physics.P2(this.game,this.config):this.p2.reset():a===c.Physics.NINJA?this.ninja=new c.Physics.Ninja(this.game):a===c.Physics.BOX2D?null===this.box2d?this.box2d=new c.Physics.Box2D(this.game,this.config):this.box2d.reset():a===c.Physics.MATTERJS&&(null===this.matter?this.matter=new c.Physics.Matter(this.game,this.config):this.matter.reset())},enable:function(a,b,d){void 0===b&&(b=c.Physics.ARCADE),void 0===d&&(d=!1),b===c.Physics.ARCADE?this.arcade.enable(a):b===c.Physics.P2JS&&this.p2?this.p2.enable(a,d):b===c.Physics.NINJA&&this.ninja?this.ninja.enableAABB(a):b===c.Physics.BOX2D&&this.box2d?this.box2d.enable(a):b===c.Physics.MATTERJS&&this.matter&&this.matter.enable(a)},preUpdate:function(){this.p2&&this.p2.preUpdate(),this.box2d&&this.box2d.preUpdate(),this.matter&&this.matter.preUpdate()},update:function(){this.p2&&this.p2.update(),this.box2d&&this.box2d.update(),this.matter&&this.matter.update()},setBoundsToWorld:function(){this.arcade&&this.arcade.setBoundsToWorld(),this.ninja&&this.ninja.setBoundsToWorld(),this.p2&&this.p2.setBoundsToWorld(),this.box2d&&this.box2d.setBoundsToWorld(),this.matter&&this.matter.setBoundsToWorld()},clear:function(){this.p2&&this.p2.clear(),this.box2d&&this.box2d.clear(),this.matter&&this.matter.clear()},reset:function(){this.p2&&this.p2.reset(),this.box2d&&this.box2d.reset(),this.matter&&this.matter.reset()},destroy:function(){this.p2&&this.p2.destroy(),this.box2d&&this.box2d.destroy(),this.matter&&this.matter.destroy(),this.arcade=null,this.ninja=null,this.p2=null,this.box2d=null,this.matter=null}},c.Physics.prototype.constructor=c.Physics,c.Physics.Arcade=function(a){this.game=a,this.gravity=new c.Point,this.bounds=new c.Rectangle(0,0,a.world.width,a.world.height),this.checkCollision={up:!0,down:!0,left:!0,right:!0},this.maxObjects=10,this.maxLevels=4,this.OVERLAP_BIAS=4,this.forceX=!1,this.sortDirection=c.Physics.Arcade.LEFT_RIGHT,this.skipQuadTree=!0,this.isPaused=!1,this.quadTree=new c.QuadTree(this.game.world.bounds.x,this.game.world.bounds.y,this.game.world.bounds.width,this.game.world.bounds.height,this.maxObjects,this.maxLevels),this._total=0,this.setBoundsToWorld()},c.Physics.Arcade.prototype.constructor=c.Physics.Arcade,c.Physics.Arcade.SORT_NONE=0,c.Physics.Arcade.LEFT_RIGHT=1,c.Physics.Arcade.RIGHT_LEFT=2,c.Physics.Arcade.TOP_BOTTOM=3,c.Physics.Arcade.BOTTOM_TOP=4,c.Physics.Arcade.prototype={setBounds:function(a,b,c,d){this.bounds.setTo(a,b,c,d)},setBoundsToWorld:function(){this.bounds.copyFrom(this.game.world.bounds)},enable:function(a,b){void 0===b&&(b=!0);var d=1;if(Array.isArray(a))for(d=a.length;d--;)a[d]instanceof c.Group?this.enable(a[d].children,b):(this.enableBody(a[d]),b&&a[d].hasOwnProperty("children")&&a[d].children.length>0&&this.enable(a[d],!0));else a instanceof c.Group?this.enable(a.children,b):(this.enableBody(a),b&&a.hasOwnProperty("children")&&a.children.length>0&&this.enable(a.children,!0))},enableBody:function(a){a.hasOwnProperty("body")&&null===a.body&&(a.body=new c.Physics.Arcade.Body(a),a.parent&&a.parent instanceof c.Group&&a.parent.addToHash(a))},updateMotion:function(a){var b=this.computeVelocity(0,a,a.angularVelocity,a.angularAcceleration,a.angularDrag,a.maxAngular)-a.angularVelocity;a.angularVelocity+=b,a.rotation+=a.angularVelocity*this.game.time.physicsElapsed,a.velocity.x=this.computeVelocity(1,a,a.velocity.x,a.acceleration.x,a.drag.x,a.maxVelocity.x),a.velocity.y=this.computeVelocity(2,a,a.velocity.y,a.acceleration.y,a.drag.y,a.maxVelocity.y)},computeVelocity:function(a,b,c,d,e,f){return void 0===f&&(f=1e4),1===a&&b.allowGravity?c+=(this.gravity.x+b.gravity.x)*this.game.time.physicsElapsed:2===a&&b.allowGravity&&(c+=(this.gravity.y+b.gravity.y)*this.game.time.physicsElapsed),d?c+=d*this.game.time.physicsElapsed:e&&(e*=this.game.time.physicsElapsed,c-e>0?c-=e:0>c+e?c+=e:c=0),c>f?c=f:-f>c&&(c=-f),c},overlap:function(a,b,c,d,e){if(c=c||null,d=d||null,e=e||c,this._total=0,!Array.isArray(a)&&Array.isArray(b))for(var f=0;f0},collide:function(a,b,c,d,e){if(c=c||null,d=d||null,e=e||c,this._total=0,!Array.isArray(a)&&Array.isArray(b))for(var f=0;f0},sortLeftRight:function(a,b){return a.body&&b.body?a.body.x-b.body.x:0},sortRightLeft:function(a,b){return a.body&&b.body?b.body.x-a.body.x:0},sortTopBottom:function(a,b){return a.body&&b.body?a.body.y-b.body.y:0},sortBottomTop:function(a,b){return a.body&&b.body?b.body.y-a.body.y:0},sort:function(a,b){null!==a.physicsSortDirection?b=a.physicsSortDirection:void 0===b&&(b=this.sortDirection),b===c.Physics.Arcade.LEFT_RIGHT?a.hash.sort(this.sortLeftRight):b===c.Physics.Arcade.RIGHT_LEFT?a.hash.sort(this.sortRightLeft):b===c.Physics.Arcade.TOP_BOTTOM?a.hash.sort(this.sortTopBottom):b===c.Physics.Arcade.BOTTOM_TOP&&a.hash.sort(this.sortBottomTop)},collideHandler:function(a,b,d,e,f,g){return void 0===b&&a.physicsType===c.GROUP?(this.sort(a),void this.collideGroupVsSelf(a,d,e,f,g)):void(a&&b&&a.exists&&b.exists&&(this.sortDirection!==c.Physics.Arcade.SORT_NONE&&(a.physicsType===c.GROUP&&this.sort(a),b.physicsType===c.GROUP&&this.sort(b)),a.physicsType===c.SPRITE?b.physicsType===c.SPRITE?this.collideSpriteVsSprite(a,b,d,e,f,g):b.physicsType===c.GROUP?this.collideSpriteVsGroup(a,b,d,e,f,g):b.physicsType===c.TILEMAPLAYER&&this.collideSpriteVsTilemapLayer(a,b,d,e,f,g):a.physicsType===c.GROUP?b.physicsType===c.SPRITE?this.collideSpriteVsGroup(b,a,d,e,f,g):b.physicsType===c.GROUP?this.collideGroupVsGroup(a,b,d,e,f,g):b.physicsType===c.TILEMAPLAYER&&this.collideGroupVsTilemapLayer(a,b,d,e,f,g):a.physicsType===c.TILEMAPLAYER&&(b.physicsType===c.SPRITE?this.collideSpriteVsTilemapLayer(b,a,d,e,f,g):b.physicsType===c.GROUP&&this.collideGroupVsTilemapLayer(b,a,d,e,f,g))))},collideSpriteVsSprite:function(a,b,c,d,e,f){return a.body&&b.body?(this.separate(a.body,b.body,d,e,f)&&(c&&c.call(e,a,b),this._total++),!0):!1},collideSpriteVsGroup:function(a,b,d,e,f,g){if(0!==b.length&&a.body){var h;if(this.skipQuadTree||a.body.skipQuadTree){for(var i=0;ih.right)break;if(h.x>a.body.right)continue}else if(this.sortDirection===c.Physics.Arcade.TOP_BOTTOM){if(a.body.bottomh.bottom)break;if(h.y>a.body.bottom)continue}this.collideSpriteVsSprite(a,b.hash[i],d,e,f,g)}}else{this.quadTree.clear(),this.quadTree.reset(this.game.world.bounds.x,this.game.world.bounds.y,this.game.world.bounds.width,this.game.world.bounds.height,this.maxObjects,this.maxLevels),this.quadTree.populate(b);for(var j=this.quadTree.retrieve(a),i=0;ij.body.right)continue;if(j.body.x>h.body.right)break}else if(this.sortDirection===c.Physics.Arcade.TOP_BOTTOM){if(h.body.bottomj.body.bottom)continue;if(j.body.y>h.body.bottom)break}this.collideSpriteVsSprite(h,j,b,d,e,f)}},collideGroupVsGroup:function(a,b,d,e,f,g){if(0!==a.length&&0!==b.length)for(var h=0;h=b.right?!1:a.position.y>=b.bottom?!1:!0},separateX:function(a,b,c){if(a.immovable&&b.immovable)return!1;var d=0;if(this.intersects(a,b)){var e=a.deltaAbsX()+b.deltaAbsX()+this.OVERLAP_BIAS;if(0===a.deltaX()&&0===b.deltaX()?(a.embedded=!0,b.embedded=!0):a.deltaX()>b.deltaX()?(d=a.right-b.x,d>e||a.checkCollision.right===!1||b.checkCollision.left===!1?d=0:(a.touching.none=!1,a.touching.right=!0,b.touching.none=!1,b.touching.left=!0)):a.deltaX()e||a.checkCollision.left===!1||b.checkCollision.right===!1?d=0:(a.touching.none=!1,a.touching.left=!0,b.touching.none=!1,b.touching.right=!0)),a.overlapX=d,b.overlapX=d,0!==d){if(c||a.customSeparateX||b.customSeparateX)return!0;var f=a.velocity.x,g=b.velocity.x;if(a.immovable||b.immovable)a.immovable?b.immovable||(b.x+=d,b.velocity.x=f-g*b.bounce.x,a.moves&&(b.y+=(a.y-a.prev.y)*a.friction.y)):(a.x=a.x-d,a.velocity.x=g-f*a.bounce.x,b.moves&&(a.y+=(b.y-b.prev.y)*b.friction.y));else{d*=.5,a.x=a.x-d,b.x+=d;var h=Math.sqrt(g*g*b.mass/a.mass)*(g>0?1:-1),i=Math.sqrt(f*f*a.mass/b.mass)*(f>0?1:-1),j=.5*(h+i);h-=j,i-=j,a.velocity.x=j+h*a.bounce.x,b.velocity.x=j+i*b.bounce.x}return!0}}return!1},separateY:function(a,b,c){if(a.immovable&&b.immovable)return!1;var d=0;if(this.intersects(a,b)){var e=a.deltaAbsY()+b.deltaAbsY()+this.OVERLAP_BIAS;if(0===a.deltaY()&&0===b.deltaY()?(a.embedded=!0,b.embedded=!0):a.deltaY()>b.deltaY()?(d=a.bottom-b.y,d>e||a.checkCollision.down===!1||b.checkCollision.up===!1?d=0:(a.touching.none=!1,a.touching.down=!0,b.touching.none=!1,b.touching.up=!0)):a.deltaY()e||a.checkCollision.up===!1||b.checkCollision.down===!1?d=0:(a.touching.none=!1,a.touching.up=!0,b.touching.none=!1,b.touching.down=!0)),a.overlapY=d,b.overlapY=d,0!==d){if(c||a.customSeparateY||b.customSeparateY)return!0;var f=a.velocity.y,g=b.velocity.y;if(a.immovable||b.immovable)a.immovable?b.immovable||(b.y+=d,b.velocity.y=f-g*b.bounce.y,a.moves&&(b.x+=(a.x-a.prev.x)*a.friction.x)):(a.y=a.y-d,a.velocity.y=g-f*a.bounce.y,b.moves&&(a.x+=(b.x-b.prev.x)*b.friction.x));else{d*=.5,a.y=a.y-d,b.y+=d;var h=Math.sqrt(g*g*b.mass/a.mass)*(g>0?1:-1),i=Math.sqrt(f*f*a.mass/b.mass)*(f>0?1:-1),j=.5*(h+i);h-=j,i-=j,a.velocity.y=j+h*a.bounce.y,b.velocity.y=j+i*b.bounce.y}return!0}}return!1},getObjectsUnderPointer:function(a,b,c,d){return 0!==b.length&&a.exists?this.getObjectsAtLocation(a.x,a.y,b,c,d,a):void 0},getObjectsAtLocation:function(a,b,d,e,f,g){this.quadTree.clear(),this.quadTree.reset(this.game.world.bounds.x,this.game.world.bounds.y,this.game.world.bounds.width,this.game.world.bounds.height,this.maxObjects,this.maxLevels),this.quadTree.populate(d);for(var h=new c.Rectangle(a,b,1,1),i=[],j=this.quadTree.retrieve(h),k=0;k0&&(c=this.distanceBetween(a,b)/(d/1e3)),a.body.velocity.x=Math.cos(e)*c,a.body.velocity.y=Math.sin(e)*c,e},moveToPointer:function(a,b,c,d){void 0===b&&(b=60),c=c||this.game.input.activePointer,void 0===d&&(d=0);var e=this.angleToPointer(a,c);return d>0&&(b=this.distanceToPointer(a,c)/(d/1e3)),a.body.velocity.x=Math.cos(e)*b,a.body.velocity.y=Math.sin(e)*b,e},moveToXY:function(a,b,c,d,e){void 0===d&&(d=60),void 0===e&&(e=0);var f=Math.atan2(c-a.y,b-a.x);return e>0&&(d=this.distanceToXY(a,b,c)/(e/1e3)),a.body.velocity.x=Math.cos(f)*d,a.body.velocity.y=Math.sin(f)*d,f},velocityFromAngle:function(a,b,d){return void 0===b&&(b=60),d=d||new c.Point,d.setTo(Math.cos(this.game.math.degToRad(a))*b,Math.sin(this.game.math.degToRad(a))*b)},velocityFromRotation:function(a,b,d){return void 0===b&&(b=60),d=d||new c.Point,d.setTo(Math.cos(a)*b,Math.sin(a)*b)},accelerationFromRotation:function(a,b,d){return void 0===b&&(b=60),d=d||new c.Point,d.setTo(Math.cos(a)*b,Math.sin(a)*b)},accelerateToObject:function(a,b,c,d,e){void 0===c&&(c=60),void 0===d&&(d=1e3),void 0===e&&(e=1e3);var f=this.angleBetween(a,b);return a.body.acceleration.setTo(Math.cos(f)*c,Math.sin(f)*c),a.body.maxVelocity.setTo(d,e),f},accelerateToPointer:function(a,b,c,d,e){void 0===c&&(c=60),void 0===b&&(b=this.game.input.activePointer),void 0===d&&(d=1e3),void 0===e&&(e=1e3);var f=this.angleToPointer(a,b);return a.body.acceleration.setTo(Math.cos(f)*c,Math.sin(f)*c),a.body.maxVelocity.setTo(d,e),f},accelerateToXY:function(a,b,c,d,e,f){void 0===d&&(d=60),void 0===e&&(e=1e3),void 0===f&&(f=1e3);var g=this.angleToXY(a,b,c);return a.body.acceleration.setTo(Math.cos(g)*d,Math.sin(g)*d),a.body.maxVelocity.setTo(e,f),g},distanceBetween:function(a,b){var c=a.x-b.x,d=a.y-b.y;return Math.sqrt(c*c+d*d)},distanceToXY:function(a,b,c){var d=a.x-b,e=a.y-c;return Math.sqrt(d*d+e*e)},distanceToPointer:function(a,b){b=b||this.game.input.activePointer;var c=a.x-b.worldX,d=a.y-b.worldY;return Math.sqrt(c*c+d*d)},angleBetween:function(a,b){var c=b.x-a.x,d=b.y-a.y;return Math.atan2(d,c)},angleToXY:function(a,b,c){var d=b-a.x,e=c-a.y;return Math.atan2(e,d)},angleToPointer:function(a,b){b=b||this.game.input.activePointer;var c=b.worldX-a.x,d=b.worldY-a.y;return Math.atan2(d,c)}},c.Physics.Arcade.Body=function(a){this.sprite=a,this.game=a.game,this.type=c.Physics.ARCADE,this.enable=!0,this.offset=new c.Point,this.position=new c.Point(a.x,a.y),this.prev=new c.Point(this.position.x,this.position.y),this.allowRotation=!0,this.rotation=a.rotation,this.preRotation=a.rotation,this.width=a.width,this.height=a.height,this.sourceWidth=a.width,this.sourceHeight=a.height,a.texture&&(this.sourceWidth=a.texture.frame.width,this.sourceHeight=a.texture.frame.height),this.halfWidth=Math.abs(a.width/2),this.halfHeight=Math.abs(a.height/2),this.center=new c.Point(a.x+this.halfWidth,a.y+this.halfHeight),this.velocity=new c.Point,this.newVelocity=new c.Point(0,0),this.deltaMax=new c.Point(0,0),this.acceleration=new c.Point,this.drag=new c.Point,this.allowGravity=!0,this.gravity=new c.Point(0,0),this.bounce=new c.Point,this.maxVelocity=new c.Point(1e4,1e4),this.friction=new c.Point(1,0),this.angularVelocity=0,this.angularAcceleration=0,this.angularDrag=0,this.maxAngular=1e3,this.mass=1,this.angle=0,this.speed=0,this.facing=c.NONE,this.immovable=!1,this.moves=!0,this.customSeparateX=!1,this.customSeparateY=!1,this.overlapX=0,this.overlapY=0,this.embedded=!1,this.collideWorldBounds=!1,this.checkCollision={none:!1,any:!0,up:!0,down:!0,left:!0,right:!0},this.touching={none:!0,up:!1,down:!1,left:!1,right:!1},this.wasTouching={none:!0,up:!1,down:!1,left:!1,right:!1},this.blocked={up:!1,down:!1,left:!1,right:!1},this.tilePadding=new c.Point,this.dirty=!1,this.skipQuadTree=!1,this.syncBounds=!1,this._reset=!0,this._sx=a.scale.x,this._sy=a.scale.y,this._dx=0,this._dy=0},c.Physics.Arcade.Body.prototype={updateBounds:function(){if(this.syncBounds){var a=this.sprite.getBounds();a.ceilAll(),(a.width!==this.width||a.height!==this.height)&&(this.width=a.width,this.height=a.height,this._reset=!0)}else{var b=Math.abs(this.sprite.scale.x),c=Math.abs(this.sprite.scale.y);(b!==this._sx||c!==this._sy)&&(this.width=this.sourceWidth*b,this.height=this.sourceHeight*c,this._sx=b,this._sy=c,this._reset=!0)}this._reset&&(this.halfWidth=Math.floor(this.width/2),this.halfHeight=Math.floor(this.height/2),this.center.setTo(this.position.x+this.halfWidth,this.position.y+this.halfHeight))},preUpdate:function(){this.enable&&!this.game.physics.arcade.isPaused&&(this.dirty=!0,this.wasTouching.none=this.touching.none,this.wasTouching.up=this.touching.up,this.wasTouching.down=this.touching.down,this.wasTouching.left=this.touching.left,this.wasTouching.right=this.touching.right,this.touching.none=!0,this.touching.up=!1,this.touching.down=!1,this.touching.left=!1,this.touching.right=!1,this.blocked.up=!1,this.blocked.down=!1,this.blocked.left=!1,this.blocked.right=!1,this.embedded=!1,this.updateBounds(),this.position.x=this.sprite.world.x-this.sprite.anchor.x*this.width+this.offset.x,this.position.y=this.sprite.world.y-this.sprite.anchor.y*this.height+this.offset.y,this.rotation=this.sprite.angle,this.preRotation=this.rotation,(this._reset||this.sprite.fresh)&&(this.prev.x=this.position.x,this.prev.y=this.position.y),this.moves&&(this.game.physics.arcade.updateMotion(this),this.newVelocity.set(this.velocity.x*this.game.time.physicsElapsed,this.velocity.y*this.game.time.physicsElapsed),this.position.x+=this.newVelocity.x,this.position.y+=this.newVelocity.y,(this.position.x!==this.prev.x||this.position.y!==this.prev.y)&&(this.speed=Math.sqrt(this.velocity.x*this.velocity.x+this.velocity.y*this.velocity.y),this.angle=Math.atan2(this.velocity.y,this.velocity.x)),this.collideWorldBounds&&this.checkWorldBounds()),this._dx=this.deltaX(),this._dy=this.deltaY(),this._reset=!1)},postUpdate:function(){this.enable&&this.dirty&&(this.dirty=!1,this.deltaX()<0?this.facing=c.LEFT:this.deltaX()>0&&(this.facing=c.RIGHT),this.deltaY()<0?this.facing=c.UP:this.deltaY()>0&&(this.facing=c.DOWN),this.moves&&(this._dx=this.deltaX(),this._dy=this.deltaY(),0!==this.deltaMax.x&&0!==this._dx&&(this._dx<0&&this._dx<-this.deltaMax.x?this._dx=-this.deltaMax.x:this._dx>0&&this._dx>this.deltaMax.x&&(this._dx=this.deltaMax.x)),0!==this.deltaMax.y&&0!==this._dy&&(this._dy<0&&this._dy<-this.deltaMax.y?this._dy=-this.deltaMax.y:this._dy>0&&this._dy>this.deltaMax.y&&(this._dy=this.deltaMax.y)),this.sprite.position.x+=this._dx,this.sprite.position.y+=this._dy,this._reset=!0),this.center.setTo(this.position.x+this.halfWidth,this.position.y+this.halfHeight),this.allowRotation&&(this.sprite.angle+=this.deltaZ()),this.prev.x=this.position.x,this.prev.y=this.position.y)},destroy:function(){this.sprite.parent&&this.sprite.parent instanceof c.Group&&this.sprite.parent.removeFromHash(this.sprite),this.sprite.body=null,this.sprite=null},checkWorldBounds:function(){var a=this.position,b=this.game.physics.arcade.bounds,c=this.game.physics.arcade.checkCollision;a.xb.right&&c.right&&(a.x=b.right-this.width,this.velocity.x*=-this.bounce.x,this.blocked.right=!0),a.yb.bottom&&c.down&&(a.y=b.bottom-this.height,this.velocity.y*=-this.bounce.y,this.blocked.down=!0) +}},c.ScaleManager.prototype.constructor=c.ScaleManager,Object.defineProperty(c.ScaleManager.prototype,"boundingParent",{get:function(){if(this.parentIsWindow||this.isFullScreen&&!this._createdFullScreenTarget)return null;var a=this.game.canvas&&this.game.canvas.parentNode;return a||null}}),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,"isGamePortrait",{get:function(){return this.height>this.width}}),Object.defineProperty(c.ScaleManager.prototype,"isGameLandscape",{get:function(){return this.width>this.height}}),c.Game=function(a,b,d,e,f,g,h,i){return this.id=c.GAMES.push(this)-1,this.config=null,this.physicsConfig=i,this.parent="",this.width=800,this.height=600,this.resolution=1,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.plugins=null,this.rnd=null,this.device=c.Device,this.camera=null,this.canvas=null,this.context=null,this.debug=null,this.particles=null,this.create=null,this.lockRender=!1,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.currentUpdateID=0,this.updatesThisFrame=1,this._deltaTime=0,this._lastCount=0,this._spiraling=0,this._kickstart=!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)),this.device.whenReady(this.boot,this),this},c.Game.prototype={parseConfig:function(a){this.config=a,void 0===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.resolution&&(this.resolution=a.resolution),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||(this.onPause=new c.Signal,this.onResume=new c.Signal,this.onBlur=new c.Signal,this.onFocus=new c.Signal,this.isBooted=!0,this.math=c.Math,this.scale=new c.ScaleManager(this,this._width,this._height),this.stage=new c.Stage(this),this.setUpRenderer(),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.create=new c.Create(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.debug={preUpdate:function(){},update:function(){},reset:function(){}},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._kickstart=!0,window.focus&&(!window.PhaserGlobal||window.PhaserGlobal&&!window.PhaserGlobal.stopFocus)&&window.focus(),this.raf.start())},showDebugHeader:function(){if(!window.PhaserGlobal||!window.PhaserGlobal.hideBanner){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: #9854d8","background: #6c2ca7","color: #ffffff; background: #450f78;","background: #6c2ca7","background: #9854d8","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:this.resolution,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:this.resolution,antialias:this.antialias,preserveDrawingBuffer:this.preserveDrawingBuffer}),this.context=null,this.canvas.addEventListener("webglcontextlost",this.contextLost.bind(this),!1),this.canvas.addEventListener("webglcontextrestored",this.contextRestored.bind(this),!1);this.renderType!==c.HEADLESS&&(this.stage.smoothed=this.antialias,c.Canvas.addToDOM(this.canvas,this.parent,!1),c.Canvas.setTouchAction(this.canvas))},contextLost:function(a){a.preventDefault(),this.renderer.contextLost=!0},contextRestored:function(){this.renderer.initContext(),this.cache.clearGLTextures(),this.renderer.contextLost=!1},update:function(a){if(this.time.update(a),this._kickstart)return this.updateLogic(1/this.time.desiredFps),this.stage.updateTransform(),this.updateRender(this.time.slowMotion*this.time.desiredFps),void(this._kickstart=!1);if(this._spiraling>1&&!this.forceSingleUpdate)this.time.time>this._nextFpsNotification&&(this._nextFpsNotification=this.time.time+1e4,this.fpsProblemNotifier.dispatch()),this._deltaTime=0,this._spiraling=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);var c=0;for(this.updatesThisFrame=Math.floor(this._deltaTime/b),this.forceSingleUpdate&&(this.updatesThisFrame=Math.min(1,this.updatesThisFrame));this._deltaTime>=b&&(this._deltaTime-=b,this.currentUpdateID=c,this.updateLogic(1/this.time.desiredFps),this.stage.updateTransform(),c++,!this.forceSingleUpdate||1!==c););c>this._lastCount?this._spiraling++:c=c.Input.MAX_POINTERS)return console.warn("Phaser.Input.addPointer: Maximum limit of "+c.Input.MAX_POINTERS+" pointers reached."),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&&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 a-b},getPointer:function(a){void 0===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._pollCounterthis.game.time.time},justReleased:function(a){return a=a||250,this.isUp&&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,this.altKey=!1,this.shiftKey=!1,this.ctrlKey=!1},destroy:function(){this.onDown.dispose(),this.onUp.dispose(),this.onFloat.dispose(),this.parent=null,this.game=null}},c.DeviceButton.prototype.constructor=c.DeviceButton,Object.defineProperty(c.DeviceButton.prototype,"duration",{get:function(){return this.isUp?-1:this.game.time.time-this.timeDown}}),c.Pointer=function(a,b){this.game=a,this.id=b,this.type=c.POINTER,this.exists=!0,this.identifier=0,this.pointerId=null,this.target=null,this.button=null,this.leftButton=new c.DeviceButton(this,c.Pointer.LEFT_BUTTON),this.middleButton=new c.DeviceButton(this,c.Pointer.MIDDLE_BUTTON),this.rightButton=new c.DeviceButton(this,c.Pointer.RIGHT_BUTTON),this.backButton=new c.DeviceButton(this,c.Pointer.BACK_BUTTON),this.forwardButton=new c.DeviceButton(this,c.Pointer.FORWARD_BUTTON),this.eraserButton=new c.DeviceButton(this,c.Pointer.ERASER_BUTTON),this._holdSent=!1,this._history=[],this._nextDrop=0,this._stateReset=!1,this.withinGame=!1,this.clientX=-1,this.clientY=-1,this.pageX=-1,this.pageY=-1,this.screenX=-1,this.screenY=-1,this.rawMovementX=0,this.rawMovementY=0,this.movementX=0,this.movementY=0,this.x=-1,this.y=-1,this.isMouse=0===b,this.isDown=!1,this.isUp=!0,this.timeDown=0,this.timeUp=0,this.previousTapTime=0,this.totalTouches=0,this.msSinceLastClick=Number.MAX_VALUE,this.targetObject=null,this.active=!1,this.dirty=!1,this.position=new c.Point,this.positionDown=new c.Point,this.positionUp=new c.Point,this.circle=new c.Circle(0,0,44),this._clickTrampolines=null,this._trampolineTargetObject=null},c.Pointer.NO_BUTTON=0,c.Pointer.LEFT_BUTTON=1,c.Pointer.RIGHT_BUTTON=2,c.Pointer.MIDDLE_BUTTON=4,c.Pointer.BACK_BUTTON=8,c.Pointer.FORWARD_BUTTON=16,c.Pointer.ERASER_BUTTON=32,c.Pointer.prototype={resetButtons:function(){this.isDown=!1,this.isUp=!0,this.isMouse&&(this.leftButton.reset(),this.middleButton.reset(),this.rightButton.reset(),this.backButton.reset(),this.forwardButton.reset(),this.eraserButton.reset())},updateButtons:function(a){this.button=a.button;var b=a.buttons;void 0!==b?(c.Pointer.LEFT_BUTTON&b?this.leftButton.start(a):this.leftButton.stop(a),c.Pointer.RIGHT_BUTTON&b?this.rightButton.start(a):this.rightButton.stop(a),c.Pointer.MIDDLE_BUTTON&b?this.middleButton.start(a):this.middleButton.stop(a),c.Pointer.BACK_BUTTON&b?this.backButton.start(a):this.backButton.stop(a),c.Pointer.FORWARD_BUTTON&b?this.forwardButton.start(a):this.forwardButton.stop(a),c.Pointer.ERASER_BUTTON&b?this.eraserButton.start(a):this.eraserButton.stop(a)):"mousedown"===a.type?this.leftButton.start(a):(this.leftButton.stop(a),this.rightButton.stop(a)),a.ctrlKey&&this.leftButton.isDown&&this.rightButton.start(a),this.isUp=!0,this.isDown=!1,(this.leftButton.isDown||this.rightButton.isDown||this.middleButton.isDown||this.backButton.isDown||this.forwardButton.isDown||this.eraserButton.isDown)&&(this.isUp=!1,this.isDown=!0) +},start:function(a){return a.pointerId&&(this.pointerId=a.pointerId),this.identifier=a.identifier,this.target=a.target,this.isMouse?this.updateButtons(a):(this.isDown=!0,this.isUp=!1),this._history=[],this.active=!0,this.withinGame=!0,this.dirty=!1,this._clickTrampolines=null,this._trampolineTargetObject=null,this.msSinceLastClick=this.game.time.time-this.timeDown,this.timeDown=this.game.time.time,this._holdSent=!1,this.move(a,!0),this.positionDown.setTo(this.x,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.totalActivePointers)&&(this.game.input.x=this.x,this.game.input.y=this.y,this.game.input.position.setTo(this.x,this.y),this.game.input.onDown.dispatch(this,a),this.game.input.resetSpeed(this.x,this.y)),this._stateReset=!1,this.totalTouches++,null!==this.targetObject&&this.targetObject._touchedHandler(this),this},update:function(){this.active&&(this.dirty&&(this.game.input.interactiveItems.total>0&&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.totalActivePointers)&&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(void 0===b&&(b=!1),void 0!==a.button&&(this.button=a.button),b&&this.updateButtons(a),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.totalActivePointers)&&(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.renderOrderID,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.renderOrderID,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&&this.withinGame?void a.preventDefault():(this.isMouse?this.updateButtons(a):(this.isDown=!1,this.isUp=!0),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.totalActivePointers)&&(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.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&&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;fd;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}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 void 0===c&&(c=!0),0===this.sprite.scale.x||0===this.sprite.scale.y||this.priorityIDa||this.priorityID===a&&this.sprite.renderOrderIDb;b++)if(this._pointerData[b].isOver)return!0}return!1},pointerOut:function(a){if(this.enabled){if(void 0!==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)?(void 0===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)?(void 0===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&&this._pointerData[a.id].isOver){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.snapPoint.set(this.sprite.cameraOffset.x,this.sprite.cameraOffset.y))):(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,this.snapPoint.set(this.sprite.x,this.sprite.y))),this.sprite.events.onDragUpdate.dispatch(this.sprite,a,b,c,this.snapPoint),!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){var b=this.sprite.x,c=this.sprite.y;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 d=this.sprite.getBounds();this.sprite.x=this.globalToLocalX(a.x)+(this.sprite.x-d.centerX),this.sprite.y=this.globalToLocalY(a.y)+(this.sprite.y-d.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.dragStartPoint.set(b,c),this.sprite.events.onDragStart$dispatch(this.sprite,a,b,c)},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){void 0===a&&(a=!0),void 0===b&&(b=!0),this.allowHorizontalDrag=a,this.allowVerticalDrag=b},enableSnap:function(a,b,c,d,e,f){void 0===c&&(c=!0),void 0===d&&(d=!1),void 0===e&&(e=0),void 0===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.leftthis.boundsRect.right&&(this.sprite.x=this.boundsRect.right-(this.sprite.width-this.sprite.offsetX)),this.sprite.topthis.boundsRect.bottom&&(this.sprite.y=this.boundsRect.bottom-(this.sprite.height-this.sprite.offsetY)))},checkBoundsSprite:function(){this.sprite.fixedToCamera&&this.boundsSprite.fixedToCamera?(this.sprite.cameraOffset.xthis.boundsSprite.cameraOffset.x+this.boundsSprite.width&&(this.sprite.cameraOffset.x=this.boundsSprite.cameraOffset.x+this.boundsSprite.width-this.sprite.width),this.sprite.cameraOffset.ythis.boundsSprite.cameraOffset.y+this.boundsSprite.height&&(this.sprite.cameraOffset.y=this.boundsSprite.cameraOffset.y+this.boundsSprite.height-this.sprite.height)):(this.sprite.leftthis.boundsSprite.right&&(this.sprite.x=this.boundsSprite.right-(this.sprite.width-this.sprite.offsetX)),this.sprite.topthis.boundsSprite.bottom&&(this.sprite.y=this.boundsSprite.bottom-(this.sprite.height-this.sprite.offsetY)))}},c.InputHandler.prototype.constructor=c.InputHandler,c.Gamepad=function(a){this.game=a,this._gamepadIndexMap={},this._rawPads=[],this._active=!1,this.enabled=!0,this._gamepadSupportAvailable=!!navigator.webkitGetGamepads||!!navigator.webkitGamepads||-1!=navigator.userAgent.indexOf("Firefox/")||!!navigator.getGamepads,this._prevRawGamepadTypes=[],this._prevTimestamps=[],this.callbackContext=this,this.onConnectCallback=null,this.onDisconnectCallback=null,this.onDownCallback=null,this.onUpCallback=null,this.onAxisCallback=null,this.onFloatCallback=null,this._ongamepadconnected=null,this._gamepaddisconnected=null,this._gamepads=[new c.SinglePad(a,this),new c.SinglePad(a,this),new c.SinglePad(a,this),new c.SinglePad(a,this)]},c.Gamepad.prototype={addCallbacks:function(a,b){"undefined"!=typeof b&&(this.onConnectCallback="function"==typeof b.onConnect?b.onConnect:this.onConnectCallback,this.onDisconnectCallback="function"==typeof b.onDisconnect?b.onDisconnect:this.onDisconnectCallback,this.onDownCallback="function"==typeof b.onDown?b.onDown:this.onDownCallback,this.onUpCallback="function"==typeof b.onUp?b.onUp:this.onUpCallback,this.onAxisCallback="function"==typeof b.onAxis?b.onAxis:this.onAxisCallback,this.onFloatCallback="function"==typeof b.onFloat?b.onFloat:this.onFloatCallback,this.callbackContext=a)},start:function(){if(!this._active){this._active=!0;var a=this;this._onGamepadConnected=function(b){return a.onGamepadConnected(b)},this._onGamepadDisconnected=function(b){return a.onGamepadDisconnected(b)},window.addEventListener("gamepadconnected",this._onGamepadConnected,!1),window.addEventListener("gamepaddisconnected",this._onGamepadDisconnected,!1)}},onGamepadConnected:function(a){var b=a.gamepad;this._rawPads.push(b),this._gamepads[b.index].connect(b)},onGamepadDisconnected:function(a){var b=a.gamepad;for(var c in this._rawPads)this._rawPads[c].index===b.index&&this._rawPads.splice(c,1);this._gamepads[b.index].disconnect()},update:function(){this._pollGamepads(),this.pad1.pollStatus(),this.pad2.pollStatus(),this.pad3.pollStatus(),this.pad4.pollStatus()},_pollGamepads:function(){if(navigator.getGamepads)var a=navigator.getGamepads();else if(navigator.webkitGetGamepads)var a=navigator.webkitGetGamepads();else if(navigator.webkitGamepads)var a=navigator.webkitGamepads();if(a){this._rawPads=[];for(var b=!1,c=0;c0&&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.maxHealth&&(this.health=this.maxHealth)),this}},c.Component.InCamera=function(){},c.Component.InCamera.prototype={inCamera:{get:function(){return this.game.world.camera.view.intersects(this._bounds)}}},c.Component.InputEnabled=function(){},c.Component.InputEnabled.prototype={input:null,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()}}},c.Component.InWorld=function(){},c.Component.InWorld.preUpdate=function(){if((this.autoCull||this.checkWorldBounds)&&(this._bounds.copyFrom(this.getBounds()),this._bounds.x+=this.game.camera.view.x,this._bounds.y+=this.game.camera.view.y,this.autoCull&&(this.game.world.camera.view.intersects(this._bounds)?(this.renderable=!0,this.game.world.camera.totalInView++):this.renderable=!1),this.checkWorldBounds))if(this._outOfBoundsFired&&this.game.world.bounds.intersects(this._bounds))this._outOfBoundsFired=!1,this.events.onEnterBounds$dispatch(this);else if(!this._outOfBoundsFired&&!this.game.world.bounds.intersects(this._bounds)&&(this._outOfBoundsFired=!0,this.events.onOutOfBounds$dispatch(this),this.outOfBoundsKill))return this.kill(),!1;return!0},c.Component.InWorld.prototype={checkWorldBounds:!1,outOfBoundsKill:!1,_outOfBoundsFired:!1,inWorld:{get:function(){return this.game.world.bounds.intersects(this.getBounds())}}},c.Component.LifeSpan=function(){},c.Component.LifeSpan.preUpdate=function(){return this.lifespan>0&&(this.lifespan-=this.game.time.physicsElapsedMS,this.lifespan<=0)?(this.kill(),!1):!0},c.Component.LifeSpan.prototype={alive:!0,lifespan:0,revive:function(a){return void 0===a&&(a=1),this.alive=!0,this.exists=!0,this.visible=!0,"number"==typeof this.health&&(this.health=a),this.events&&this.events.onRevived$dispatch(this),this},kill:function(){return this.alive=!1,this.exists=!1,this.visible=!1,this.events&&this.events.onKilled$dispatch(this),this}},c.Component.LoadTexture=function(){},c.Component.LoadTexture.prototype={customRender:!1,_frame:null,loadTexture:function(a,b,d){b=b||0,(d||void 0===d)&&this.animations&&this.animations.stop(),this.key=a,this.customRender=!1;var e=this.game.cache,f=!0,g=!this.texture.baseTexture.scaleMode;if(c.RenderTexture&&a instanceof c.RenderTexture)this.key=a.key,this.setTexture(a);else if(c.BitmapData&&a instanceof c.BitmapData)this.customRender=!0,this.setTexture(a.texture),e.hasFrameData(a.key,c.Cache.BITMAPDATA)&&(f=!this.animations.loadFrameData(e.getFrameData(a.key,c.Cache.BITMAPDATA),b));else if(c.Video&&a instanceof c.Video){this.customRender=!0;var h=a.texture.valid;this.setTexture(a.texture),this.setFrame(a.texture.frame.clone()),a.onChangeSource.add(this.resizeFrame,this),this.texture.valid=h}else if(a instanceof PIXI.Texture)this.setTexture(a);else{var i=e.getImage(a,!0);this.key=i.key,this.setTexture(new PIXI.Texture(i.base)),f=!this.animations.loadFrameData(i.frameData,b)}f&&(this._frame=c.Rectangle.clone(this.texture.frame)),g||(this.texture.baseTexture.scaleMode=1)},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.requiresReTint=!0,this.texture._updateUvs(),this.tilingTexture&&(this.refreshTexture=!0)},resizeFrame:function(a,b,c){this.texture.frame.resize(b,c),this.texture.setFrame(this.texture.frame)},resetFrame:function(){this._frame&&this.setFrame(this._frame)},frame:{get:function(){return this.animations.frame},set:function(a){this.animations.frame=a}},frameName:{get:function(){return this.animations.frameName},set:function(a){this.animations.frameName=a}}},c.Component.Overlap=function(){},c.Component.Overlap.prototype={overlap:function(a){return c.Rectangle.intersects(this.getBounds(),a.getBounds())}},c.Component.PhysicsBody=function(){},c.Component.PhysicsBody.preUpdate=function(){return this.fresh&&this.exists?(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.previousPosition.set(this.world.x,this.world.y),this.previousRotation=this.rotation,this.body&&this.body.preUpdate(),this.fresh=!1,!1):(this.previousPosition.set(this.world.x,this.world.y),this.previousRotation=this.rotation,this._exists&&this.parent.exists?!0:(this.renderOrderID=-1,!1))},c.Component.PhysicsBody.postUpdate=function(){this.exists&&this.body&&this.body.postUpdate()},c.Component.PhysicsBody.prototype={body:null,x:{get:function(){return this.position.x},set:function(a){this.position.x=a,this.body&&!this.body.dirty&&(this.body._reset=!0)}},y:{get:function(){return this.position.y},set:function(a){this.position.y=a,this.body&&!this.body.dirty&&(this.body._reset=!0)}}},c.Component.Reset=function(){},c.Component.Reset.prototype.reset=function(a,b,c){return void 0===c&&(c=1),this.world.set(a,b),this.position.set(a,b),this.fresh=!0,this.exists=!0,this.visible=!0,this.renderable=!0,this.components.InWorld&&(this._outOfBoundsFired=!1),this.components.LifeSpan&&(this.alive=!0,this.health=c),this.components.PhysicsBody&&this.body&&this.body.reset(a,b,!1,!1),this},c.Component.ScaleMinMax=function(){},c.Component.ScaleMinMax.prototype={transformCallback:this.checkTransform,transformCallbackContext:this,scaleMin:null,scaleMax:null,checkTransform:function(a){this.scaleMin&&(a.athis.scaleMax.x&&(a.a=this.scaleMax.x),a.d>this.scaleMax.y&&(a.d=this.scaleMax.y))},setScaleMinMax:function(a,b,d,e){void 0===b?b=d=e=a:void 0===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)}},c.Component.Smoothed=function(){},c.Component.Smoothed.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)}}},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 void 0===f&&(f=this.world),f.add(new c.Image(this.game,a,b,d,e))},sprite:function(a,b,c,d,e){return void 0===e&&(e=this.world),e.create(a,b,c,d)},creature:function(a,b,d,e,f){void 0===f&&(f=this.world);var g=new c.Creature(this.game,a,b,d,e);return f.add(g),g},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 void 0===a&&(a=null),void 0===b&&(b="group"),void 0===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 void 0===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 void 0===g&&(g=this.world),g.add(new c.Rope(this.game,a,b,d,e,f))},text:function(a,b,d,e,f){return void 0===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 void 0===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 void 0===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 void 0===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){(void 0===d||""===d)&&(d=this.game.rnd.uuid()),void 0===e&&(e=!1);var f=new c.RenderTexture(this.game,a,b,d);return e&&this.game.cache.addRenderTexture(d,f),f},video:function(a,b){return new c.Video(this.game,a,b)},bitmapData:function(a,b,d,e){void 0===e&&(e=!1),(void 0===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,this.game.tweens)},group:function(a,b,d,e,f){return new c.Group(this.game,a,b,d,e,f)},spriteBatch:function(a,b,d){return void 0===b&&(b="group"),void 0===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,g){return new c.BitmapText(this.game,a,b,d,e,f,g)},tilemap:function(a,b,d,e,f){return new c.Tilemap(this.game,a,b,d,e,f)},renderTexture:function(a,b,d,e){(void 0===d||""===d)&&(d=this.game.rnd.uuid()),void 0===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){void 0===e&&(e=!1),(void 0===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.Sprite=function(a,b,d,e,f){b=b||0,d=d||0,e=e||null,f=f||null,this.type=c.SPRITE,this.physicsType=c.SPRITE,PIXI.Sprite.call(this,PIXI.TextureCache.__default),c.Component.Core.init.call(this,a,b,d,e,f)},c.Sprite.prototype=Object.create(PIXI.Sprite.prototype),c.Sprite.prototype.constructor=c.Sprite,c.Component.Core.install.call(c.Sprite.prototype,["Angle","Animation","AutoCull","Bounds","BringToTop","Crop","Delta","Destroy","FixedToCamera","Health","InCamera","InputEnabled","InWorld","LifeSpan","LoadTexture","Overlap","PhysicsBody","Reset","ScaleMinMax","Smoothed"]),c.Sprite.prototype.preUpdatePhysics=c.Component.PhysicsBody.preUpdate,c.Sprite.prototype.preUpdateLifeSpan=c.Component.LifeSpan.preUpdate,c.Sprite.prototype.preUpdateInWorld=c.Component.InWorld.preUpdate,c.Sprite.prototype.preUpdateCore=c.Component.Core.preUpdate,c.Sprite.prototype.preUpdate=function(){return this.preUpdatePhysics()&&this.preUpdateLifeSpan()&&this.preUpdateInWorld()?this.preUpdateCore():!1},c.Image=function(a,b,d,e,f){b=b||0,d=d||0,e=e||null,f=f||null,this.type=c.IMAGE,PIXI.Sprite.call(this,PIXI.TextureCache.__default),c.Component.Core.init.call(this,a,b,d,e,f)},c.Image.prototype=Object.create(PIXI.Sprite.prototype),c.Image.prototype.constructor=c.Image,c.Component.Core.install.call(c.Image.prototype,["Angle","Animation","AutoCull","Bounds","BringToTop","Crop","Destroy","FixedToCamera","InputEnabled","LifeSpan","LoadTexture","Overlap","Reset","Smoothed"]),c.Image.prototype.preUpdateInWorld=c.Component.InWorld.preUpdate,c.Image.prototype.preUpdateCore=c.Component.Core.preUpdate,c.Image.prototype.preUpdate=function(){return this.preUpdateInWorld()?this.preUpdateCore():!1},c.TileSprite=function(a,b,d,e,f,g,h){b=b||0,d=d||0,e=e||256,f=f||256,g=g||null,h=h||null,this.type=c.TILESPRITE,this.physicsType=c.SPRITE,this._scroll=new c.Point;var i=a.cache.getImage("__default",!0);PIXI.TilingSprite.call(this,new PIXI.Texture(i.base),e,f),c.Component.Core.init.call(this,a,b,d,g,h)},c.TileSprite.prototype=Object.create(PIXI.TilingSprite.prototype),c.TileSprite.prototype.constructor=c.TileSprite,c.Component.Core.install.call(c.TileSprite.prototype,["Angle","Animation","AutoCull","Bounds","BringToTop","Destroy","FixedToCamera","Health","InCamera","InputEnabled","InWorld","LifeSpan","LoadTexture","Overlap","PhysicsBody","Reset","Smoothed"]),c.TileSprite.prototype.preUpdatePhysics=c.Component.PhysicsBody.preUpdate,c.TileSprite.prototype.preUpdateLifeSpan=c.Component.LifeSpan.preUpdate,c.TileSprite.prototype.preUpdateInWorld=c.Component.InWorld.preUpdate,c.TileSprite.prototype.preUpdateCore=c.Component.Core.preUpdate,c.TileSprite.prototype.preUpdate=function(){return 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.preUpdatePhysics()&&this.preUpdateLifeSpan()&&this.preUpdateInWorld()?this.preUpdateCore():!1},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.destroy=function(a){c.Component.Destroy.prototype.destroy.call(this,a),PIXI.TilingSprite.prototype.destroy.call(this)},c.TileSprite.prototype.reset=function(a,b){return c.Component.Reset.prototype.reset.call(this,a,b),this.tilePosition.x=0,this.tilePosition.y=0,this},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.type=c.ROPE,this._scroll=new c.Point,PIXI.Rope.call(this,PIXI.TextureCache.__default,this.points),c.Component.Core.init.call(this,a,b,d,e,f)},c.Rope.prototype=Object.create(PIXI.Rope.prototype),c.Rope.prototype.constructor=c.Rope,c.Component.Core.install.call(c.Rope.prototype,["Angle","Animation","AutoCull","Bounds","BringToTop","Crop","Delta","Destroy","FixedToCamera","InputEnabled","InWorld","LifeSpan","LoadTexture","Overlap","PhysicsBody","Reset","ScaleMinMax","Smoothed"]),c.Rope.prototype.preUpdatePhysics=c.Component.PhysicsBody.preUpdate,c.Rope.prototype.preUpdateLifeSpan=c.Component.LifeSpan.preUpdate,c.Rope.prototype.preUpdateInWorld=c.Component.InWorld.preUpdate,c.Rope.prototype.preUpdateCore=c.Component.Core.preUpdate,c.Rope.prototype.preUpdate=function(){return 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.preUpdatePhysics()&&this.preUpdateLifeSpan()&&this.preUpdateInWorld()?this.preUpdateCore():!1},c.Rope.prototype.update=function(){this._hasUpdateAnimation&&this.updateAnimation.call(this)},c.Rope.prototype.reset=function(a,b){return c.Component.Reset.prototype.reset.call(this,a,b),this.tilePosition.x=0,this.tilePosition.y=0,this},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=Math.abs(a);var f=this.width-a;c.drawImage(e,0,0,a,d,f,0,a,d),c.drawImage(e,a,0,f,d,0,0,f,d)}else{var f=this.width-a;c.drawImage(e,f,0,a,d,0,0,a,d),c.drawImage(e,0,0,f,d,a,0,f,d)}return this.clear(),this.copy(this._swapCanvas)},moveV:function(a){var b=this._swapCanvas,c=b.getContext("2d"),d=this.width,e=this.canvas;if(c.clearRect(0,0,this.width,this.height),0>a){a=Math.abs(a);var f=this.height-a;c.drawImage(e,0,0,d,a,0,f,d,a),c.drawImage(e,0,a,d,f,0,0,d,f)}else{var f=this.height-a;c.drawImage(e,0,f,d,a,0,0,d,a),c.drawImage(e,0,0,d,f,0,a,d,f)}return this.clear(),this.copy(this._swapCanvas)},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){void 0===c&&(c=0),void 0===d&&(d=0),void 0===e&&(e=this.width),void 0===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((void 0===a||null===a)&&(a=!1),(void 0===b||null===b)&&(b=!1),(void 0===d||null===d)&&(d=!1),a||b||d){void 0===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){void 0===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 void 0===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((void 0===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,(void 0===g||null===g)&&(g=a.x),(void 0===h||null===h)&&(h=a.y),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(void 0===b||null===b)&&(b=0),(void 0===d||null===d)&&(d=0),e&&(this._size.x=e),f&&(this._size.y=f),(void 0===g||null===g)&&(g=b),(void 0===h||null===h)&&(h=d),(void 0===i||null===i)&&(i=this._size.x),(void 0===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),void 0===q&&(q=null),void 0===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)},drawGroup:function(a,b,c){return a.total>0&&a.forEachExists(this.copy,this,null,null,null,null,null,null,null,null,null,null,null,null,null,null,b,c),this},shadow:function(a,b,c,d){void 0===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 void 0===d||null===d?this.draw(b).blendSourceAtop():this.draw(b,d.x,d.y,d.width,d.height).blendSourceAtop(),void 0===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 void 0===e&&(e=255),void 0===f&&(f=!1),void 0===g&&(g=b),void 0===h&&(h=c),void 0===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},text:function(a,b,c,d,e,f){void 0===b&&(b=0),void 0===c&&(c=0),void 0===d&&(d="14px Courier"),void 0===e&&(e="rgb(255,255,255)"),void 0===f&&(f=!0);var g=this.context.font;this.context.font=d,f&&(this.context.fillStyle="rgb(0,0,0)",this.context.fillText(a,b+1,c+1)),this.context.fillStyle=e,this.context.fillText(a,b,c),this.context.font=g},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(void 0===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,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,PIXI.Graphics.prototype.lineStyle=function(a,b,c){return this.lineWidth=a||0,this.lineColor=b||0,this.lineAlpha=void 0===c?1:c,this.currentPath&&(this.currentPath.shape.points.length?this.drawShape(new PIXI.Polygon(this.currentPath.shape.points.slice(-2))):(this.currentPath.lineWidth=this.lineWidth,this.currentPath.lineColor=this.lineColor,this.currentPath.lineAlpha=this.lineAlpha)),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||this.moveTo(0,0),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){if(d===e)return this;void 0===f&&(f=!1),!f&&d>=e?e+=2*Math.PI:f&&e>=d&&(d+=2*Math.PI);var g=f?-1*(d-e):e-d,h=40*Math.ceil(Math.abs(g)/(2*Math.PI));if(0===g)return this;var i=a+Math.cos(d)*c,j=b+Math.sin(d)*c;f&&this.filling?this.moveTo(a,b):this.moveTo(i,j);for(var k=this.currentPath.shape.points,l=g/(2*h),m=2*l,n=Math.cos(l),o=Math.sin(l),p=h-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);k.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){(a instanceof c.Polygon||a instanceof PIXI.Polygon)&&(a=a.points);var b=a;if(!Array.isArray(b)){b=new Array(arguments.length);for(var d=0;dp?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._currentBounds=this._bounds}return this._currentBounds},PIXI.Graphics.prototype.containsPoint=function(a){this.worldTransform.applyInverse(a,tempPoint);for(var b=this.graphicsData,c=0;ch?h:a,b=h+j>b?h+j:b,d=d>i?i:d,e=i+k>e?i+k:e;else if(n===PIXI.Graphics.CIRC)h=f.x,i=f.y,j=f.radius+o/2,k=f.radius+o/2,a=a>h-j?h-j:a,b=h+j>b?h+j:b,d=d>i-k?i-k:d,e=i+k>e?i+k:e;else if(n===PIXI.Graphics.ELIP)h=f.x,i=f.y,j=f.width+o/2,k=f.height+o/2,a=a>h-j?h-j:a,b=h+j>b?h+j:b,d=d>i-k?i-k:d,e=i+k>e?i+k:e;else{g=f.points;for(var p=0;ph-o?h-o:a,b=h+o>b?h+o:b,d=d>i-o?i-o:d,e=i+o>e?i+o:e}}else a=0,b=0,d=0,e=0;var q=this.boundsPadding;this._localBounds.x=a-q,this._localBounds.width=b-a+2*q,this._localBounds.y=d-q,this._localBounds.height=e-d+2*q},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,a instanceof c.Polygon&&(a=a.clone(),a.flatten());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},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.GraphicsData=function(a,b,c,d,e,f,g){this.lineWidth=a,this.lineColor=b,this.lineAlpha=c,this._lineTint=b,this.fillColor=d,this.fillAlpha=e,this._fillTint=d,this.fill=f,this.shape=g,this.type=g.type},PIXI.GraphicsData.prototype.constructor=PIXI.GraphicsData,PIXI.GraphicsData.prototype.clone=function(){return new GraphicsData(this.lineWidth,this.lineColor,this.lineAlpha,this.fillColor,this.fillAlpha,this.fill,this.shape)},c.Graphics=function(a,b,d){void 0===b&&(b=0),void 0===d&&(d=0),this.type=c.GRAPHICS,this.physicsType=c.SPRITE,PIXI.Graphics.call(this),c.Component.Core.init.call(this,a,b,d,"",null)},c.Graphics.prototype=Object.create(PIXI.Graphics.prototype),c.Graphics.prototype.constructor=c.Graphics,c.Component.Core.install.call(c.Graphics.prototype,["Angle","AutoCull","Bounds","Destroy","FixedToCamera","InputEnabled","InWorld","LifeSpan","PhysicsBody","Reset"]),c.Graphics.prototype.preUpdatePhysics=c.Component.PhysicsBody.preUpdate,c.Graphics.prototype.preUpdateLifeSpan=c.Component.LifeSpan.preUpdate,c.Graphics.prototype.preUpdateInWorld=c.Component.InWorld.preUpdate,c.Graphics.prototype.preUpdateCore=c.Component.Core.preUpdate,c.Graphics.prototype.preUpdate=function(){return this.preUpdatePhysics()&&this.preUpdateLifeSpan()&&this.preUpdateInWorld()?this.preUpdateCore():!1},c.Graphics.prototype.destroy=function(a){this.clear(),c.Component.Destroy.prototype.destroy.call(this,a)},c.Graphics.prototype.drawTriangle=function(a,b){void 0===b&&(b=!1);var d=new c.Polygon(a);if(b){var e=new c.Point(this.game.camera.x-a[0].x,this.game.camera.y-a[0].y),f=new c.Point(a[1].x-a[0].x,a[1].y-a[0].y),g=new c.Point(a[1].x-a[2].x,a[1].y-a[2].y),h=g.cross(f);e.dot(h)>0&&this.drawPolygon(d)}else this.drawPolygon(d)},c.Graphics.prototype.drawTriangles=function(a,b,d){void 0===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;e0&&(j+=c[k-1]),h=j+l}else for(var k=0;kq&&Math.abs(q)>o&&(q=-o),0!==q){var m=q*(b.length-1);p+=m}this.canvas.height=p*this._res,this.context.scale(this._res,this._res),navigator.isCocoonJS&&this.context.clearRect(0,0,this.canvas.width,this.canvas.height),this.style.backgroundColor&&(this.context.fillStyle=this.style.backgroundColor,this.context.fillRect(0,0,this.canvas.width,this.canvas.height)),this.context.fillStyle=this.style.fill,this.context.font=this.style.font,this.context.strokeStyle=this.style.stroke,this.context.textBaseline="alphabetic",this.context.lineWidth=this.style.strokeThickness,this.context.lineCap="round",this.context.lineJoin="round";var r,s;for(this._charCount=0,g=0;g0&&(s+=q*g),"right"===this.style.align?r+=e-d[g]:"center"===this.style.align&&(r+=(e-d[g])/2),this.autoRound&&(r=Math.round(r),s=Math.round(s)),this.colors.length>0||this.strokeColors.length>0?this.updateLine(b[g],r,s):(this.style.stroke&&this.style.strokeThickness&&(this.updateShadow(this.style.shadowStroke),0===c?this.context.strokeText(b[g],r,s):this.renderTabLine(b[g],r,s,!1)),this.style.fill&&(this.updateShadow(this.style.shadowFill),0===c?this.context.fillText(b[g],r,s):this.renderTabLine(b[g],r,s,!0)));this.updateTexture()},c.Text.prototype.renderTabLine=function(a,b,c,d){var e=a.split(/(?:\t)/),f=this.style.tabs,g=0;if(Array.isArray(f))for(var h=0,i=0;i0&&(h+=f[i-1]),g=b+h,d?this.context.fillText(e[i],g,c):this.context.strokeText(e[i],g,c);else for(var i=0;ie?(g>0&&(b+="\n"),b+=f[g]+" ",e=this.style.wordWrapWidth-h):(e-=i,b+=f[g]+" ")}dd&&(this.style.wordWrapWidth=d)),this.updateTexture(),this},c.Text.prototype.updateTexture=function(){var a=this.texture.baseTexture,b=this.texture.crop,c=this.texture.frame,d=this.canvas.width,e=this.canvas.height;if(a.width=d,a.height=e,b.width=d,b.height=e,c.width=d,c.height=e,this.texture.width=d,this.texture.height=e,this._width=d,this._height=e,this.textBounds){var f=this.textBounds.x,g=this.textBounds.y;"right"===this.style.boundsAlignH?f=this.textBounds.width-this.canvas.width:"center"===this.style.boundsAlignH&&(f=this.textBounds.halfWidth-this.canvas.width/2),"bottom"===this.style.boundsAlignV?g=this.textBounds.height-this.canvas.height:"middle"===this.style.boundsAlignV&&(g=this.textBounds.halfHeight-this.canvas.height/2),this.pivot.x=-f,this.pivot.y=-g}this.renderable=0!==d&&0!==e,this.texture.baseTexture.dirty()},c.Text.prototype._renderWebGL=function(a){this.dirty&&(this.updateText(),this.dirty=!1),PIXI.Sprite.prototype._renderWebGL.call(this,a)},c.Text.prototype._renderCanvas=function(a){this.dirty&&(this.updateText(),this.dirty=!1),PIXI.Sprite.prototype._renderCanvas.call(this,a)},c.Text.prototype.determineFontProperties=function(a){var b=c.Text.fontPropertiesCache[a];if(!b){b={};var d=c.Text.fontPropertiesCanvas,e=c.Text.fontPropertiesContext;e.font=a;var f=Math.ceil(e.measureText("|MÉq").width),g=Math.ceil(e.measureText("|MÉq").width),h=2*g;if(g=1.4*g|0,d.width=f,d.height=h,e.fillStyle="#f00",e.fillRect(0,0,f,h),e.font=a,e.textBaseline="alphabetic",e.fillStyle="#000",e.fillText("|MÉq",0,g),!e.getImageData(0,0,f,h))return b.ascent=g,b.descent=g+6,b.fontSize=b.ascent+b.descent,c.Text.fontPropertiesCache[a]=b,b;var i,j,k=e.getImageData(0,0,f,h).data,l=k.length,m=4*f,n=0,o=!1;for(i=0;g>i;i++){for(j=0;m>j;j+=4)if(255!==k[n+j]){o=!0;break}if(o)break;n+=m}for(b.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}b.descent=i-g,b.descent+=6,b.fontSize=b.ascent+b.descent,c.Text.fontPropertiesCache[a]=b}return b},c.Text.prototype.getBounds=function(a){return this.dirty&&(this.updateText(),this.dirty=!1),PIXI.Sprite.prototype.getBounds.call(this,a)},Object.defineProperty(c.Text.prototype,"text",{get:function(){return this._text},set:function(a){a!==this._text&&(this._text=a.toString()||"",this.dirty=!0,this.parent&&this.updateTransform())}}),Object.defineProperty(c.Text.prototype,"cssFont",{get:function(){return this.componentsToFont(this._fontComponents)},set:function(a){a=a||"bold 20pt Arial",this._fontComponents=this.fontToComponents(a),this.updateFont(this._fontComponents)}}),Object.defineProperty(c.Text.prototype,"font",{get:function(){return this._fontComponents.fontFamily},set:function(a){a=a||"Arial",a=a.trim(),/^(?:inherit|serif|sans-serif|cursive|fantasy|monospace)$/.exec(a)||/['",]/.exec(a)||(a="'"+a+"'"),this._fontComponents.fontFamily=a,this.updateFont(this._fontComponents)}}),Object.defineProperty(c.Text.prototype,"fontSize",{get:function(){var a=this._fontComponents.fontSize;return a&&/(?:^0$|px$)/.exec(a)?parseInt(a,10):a},set:function(a){a=a||"0","number"==typeof a&&(a+="px"),this._fontComponents.fontSize=a,this.updateFont(this._fontComponents)}}),Object.defineProperty(c.Text.prototype,"fontWeight",{get:function(){return this._fontComponents.fontWeight||"normal"},set:function(a){a=a||"normal",this._fontComponents.fontWeight=a,this.updateFont(this._fontComponents)}}),Object.defineProperty(c.Text.prototype,"fontStyle",{get:function(){return this._fontComponents.fontStyle||"normal"},set:function(a){a=a||"normal",this._fontComponents.fontStyle=a,this.updateFont(this._fontComponents)}}),Object.defineProperty(c.Text.prototype,"fontVariant",{get:function(){return this._fontComponents.fontVariant||"normal"},set:function(a){a=a||"normal",this._fontComponents.fontVariant=a,this.updateFont(this._fontComponents)}}),Object.defineProperty(c.Text.prototype,"fill",{get:function(){return this.style.fill},set:function(a){a!==this.style.fill&&(this.style.fill=a,this.dirty=!0)}}),Object.defineProperty(c.Text.prototype,"align",{get:function(){return this.style.align},set:function(a){a!==this.style.align&&(this.style.align=a,this.dirty=!0)}}),Object.defineProperty(c.Text.prototype,"resolution",{get:function(){return this._res},set:function(a){a!==this._res&&(this._res=a,this.dirty=!0)}}),Object.defineProperty(c.Text.prototype,"tabs",{get:function(){return this.style.tabs},set:function(a){a!==this.style.tabs&&(this.style.tabs=a,this.dirty=!0)}}),Object.defineProperty(c.Text.prototype,"boundsAlignH",{get:function(){return this.style.boundsAlignH},set:function(a){a!==this.style.boundsAlignH&&(this.style.boundsAlignH=a,this.dirty=!0)}}),Object.defineProperty(c.Text.prototype,"boundsAlignV",{get:function(){return this.style.boundsAlignV},set:function(a){a!==this.style.boundsAlignV&&(this.style.boundsAlignV=a,this.dirty=!0)}}),Object.defineProperty(c.Text.prototype,"stroke",{get:function(){return this.style.stroke},set:function(a){a!==this.style.stroke&&(this.style.stroke=a,this.dirty=!0)}}),Object.defineProperty(c.Text.prototype,"strokeThickness",{get:function(){return this.style.strokeThickness},set:function(a){a!==this.style.strokeThickness&&(this.style.strokeThickness=a,this.dirty=!0)}}),Object.defineProperty(c.Text.prototype,"wordWrap",{get:function(){return this.style.wordWrap},set:function(a){a!==this.style.wordWrap&&(this.style.wordWrap=a,this.dirty=!0)}}),Object.defineProperty(c.Text.prototype,"wordWrapWidth",{get:function(){return this.style.wordWrapWidth},set:function(a){a!==this.style.wordWrapWidth&&(this.style.wordWrapWidth=a,this.dirty=!0)}}),Object.defineProperty(c.Text.prototype,"lineSpacing",{get:function(){return this._lineSpacing},set:function(a){a!==this._lineSpacing&&(this._lineSpacing=parseFloat(a),this.dirty=!0,this.parent&&this.updateTransform())}}),Object.defineProperty(c.Text.prototype,"shadowOffsetX",{get:function(){return this.style.shadowOffsetX},set:function(a){a!==this.style.shadowOffsetX&&(this.style.shadowOffsetX=a,this.dirty=!0)}}),Object.defineProperty(c.Text.prototype,"shadowOffsetY",{get:function(){return this.style.shadowOffsetY},set:function(a){a!==this.style.shadowOffsetY&&(this.style.shadowOffsetY=a,this.dirty=!0)}}),Object.defineProperty(c.Text.prototype,"shadowColor",{get:function(){return this.style.shadowColor},set:function(a){a!==this.style.shadowColor&&(this.style.shadowColor=a,this.dirty=!0)}}),Object.defineProperty(c.Text.prototype,"shadowBlur",{get:function(){return this.style.shadowBlur},set:function(a){a!==this.style.shadowBlur&&(this.style.shadowBlur=a,this.dirty=!0)}}),Object.defineProperty(c.Text.prototype,"shadowStroke",{get:function(){return this.style.shadowStroke},set:function(a){a!==this.style.shadowStroke&&(this.style.shadowStroke=a,this.dirty=!0)}}),Object.defineProperty(c.Text.prototype,"shadowFill",{get:function(){return this.style.shadowFill},set:function(a){a!==this.style.shadowFill&&(this.style.shadowFill=a,this.dirty=!0)}}),Object.defineProperty(c.Text.prototype,"width",{get:function(){return this.dirty&&(this.updateText(),this.dirty=!1),this.scale.x*this.texture.frame.width},set:function(a){this.scale.x=a/this.texture.frame.width,this._width=a}}),Object.defineProperty(c.Text.prototype,"height",{get:function(){return this.dirty&&(this.updateText(),this.dirty=!1),this.scale.y*this.texture.frame.height},set:function(a){this.scale.y=a/this.texture.frame.height,this._height=a}}),c.Text.fontPropertiesCache={},c.Text.fontPropertiesCanvas=document.createElement("canvas"),c.Text.fontPropertiesContext=c.Text.fontPropertiesCanvas.getContext("2d"),c.BitmapText=function(a,b,d,e,f,g,h){b=b||0,d=d||0,e=e||"",f=f||"",g=g||32,h=h||"left",PIXI.DisplayObjectContainer.call(this),this.type=c.BITMAPTEXT,this.physicsType=c.SPRITE,this.textWidth=0,this.textHeight=0,this.anchor=new c.Point,this._prevAnchor=new c.Point,this._glyphs=[],this._maxWidth=0,this._text=f,this._data=a.cache.getBitmapFont(e),this._font=e,this._fontSize=g,this._align=h,this._tint=16777215,this.updateText(),this.dirty=!1,c.Component.Core.init.call(this,a,b,d,"",null)},c.BitmapText.prototype=Object.create(PIXI.DisplayObjectContainer.prototype),c.BitmapText.prototype.constructor=c.BitmapText,c.Component.Core.install.call(c.BitmapText.prototype,["Angle","AutoCull","Bounds","Destroy","FixedToCamera","InputEnabled","InWorld","LifeSpan","PhysicsBody","Reset"]),c.BitmapText.prototype.preUpdatePhysics=c.Component.PhysicsBody.preUpdate,c.BitmapText.prototype.preUpdateLifeSpan=c.Component.LifeSpan.preUpdate,c.BitmapText.prototype.preUpdateInWorld=c.Component.InWorld.preUpdate,c.BitmapText.prototype.preUpdateCore=c.Component.Core.preUpdate,c.BitmapText.prototype.preUpdate=function(){return this.preUpdatePhysics()&&this.preUpdateLifeSpan()&&this.preUpdateInWorld()?this.preUpdateCore():!1},c.BitmapText.prototype.postUpdate=function(){c.Component.PhysicsBody.postUpdate.call(this),c.Component.FixedToCamera.postUpdate.call(this),this.body&&this.body.type===c.Physics.ARCADE&&(this.textWidth!==this.body.sourceWidth||this.textHeight!==this.body.sourceHeight)&&this.body.setSize(this.textWidth,this.textHeight)},c.BitmapText.prototype.setText=function(a){this.text=a},c.BitmapText.prototype.scanLine=function(a,b,c){for(var d=0,e=0,f=-1,g=null,h=this._maxWidth>0?this._maxWidth:null,i=[],j=0;j=h&&f>-1)return{width:e,text:c.substr(0,j-(j-f)),end:k,chars:i};e+=m.xAdvance*b,i.push(d+m.xOffset*b),d+=m.xAdvance*b,g=l}}return{width:e,text:c,end:k,chars:i}},c.BitmapText.prototype.updateText=function(){var a=this._data.font;if(a){var b=this.text,c=this._fontSize/a.size,d=[],e=0;this.textWidth=0;do{var f=this.scanLine(a,c,b);f.y=e,d.push(f),f.width>this.textWidth&&(this.textWidth=f.width),e+=a.lineHeight*c,b=b.substr(f.text.length+1)}while(f.end===!1);this.textHeight=e;for(var g=0,h=0,i=this.textWidth*this.anchor.x,j=this.textHeight*this.anchor.y,k=0;k0&&(this._fontSize=a,this.updateText())}}),Object.defineProperty(c.BitmapText.prototype,"text",{get:function(){return this._text},set:function(a){a!==this._text&&(this._text=a.toString()||"",this.updateText())}}),Object.defineProperty(c.BitmapText.prototype,"maxWidth",{get:function(){return this._maxWidth},set:function(a){a!==this._maxWidth&&(this._maxWidth=a,this.updateText())}}),c.RetroFont=function(a,b,d,e,f,g,h,i,j,k){if(!a.cache.checkImageKey(b))return!1;(void 0===g||null===g)&&(g=a.cache.getImage(b).width/d),this.characterWidth=d,this.characterHeight=e,this.characterSpacingX=h||0,this.characterSpacingY=i||0,this.characterPerRow=g,this.offsetX=j||0,this.offsetY=k||0,this.align="left",this.multiLine=!1,this.autoUpperCase=!0,this.customSpacingX=0,this.customSpacingY=0,this.fixedWidth=0,this.fontSet=a.cache.getImage(b),this._text="",this.grabData=[],this.frameData=new c.FrameData;for(var l=this.offsetX,m=this.offsetY,n=0,o=0;o?@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){void 0===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 this.fixedWidth>0?this.resize(this.fixedWidth,this.characterHeight,!0):this.resize(this._text.length*(this.characterWidth+this.customSpacingX),this.characterHeight,!0),a=0,this.align===c.RetroFont.ALIGN_RIGHT?a=this.width-this._text.length*(this.characterWidth+this.customSpacingX):this.align===c.RetroFont.ALIGN_CENTER&&(a=this.width/2-this._text.length*(this.characterWidth+this.customSpacingX)/2,a+=this.customSpacingX/2),0>a&&(a=0),this.pasteLine(this._text,a,0,this.customSpacingX);this.requiresReTint=!0},c.RetroFont.prototype.pasteLine=function(a,b,c,d){for(var e=0;e=0&&(this.stamp.frame=this.grabData[a.charCodeAt(e)],this.renderXY(this.stamp,b,c,!1),b+=this.characterWidth+d,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; +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.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.type=c.ROPE,this._scroll=new c.Point,PIXI.Rope.call(this,PIXI.TextureCache.__default,this.points),c.Component.Core.init.call(this,a,b,d,e,f)},c.Rope.prototype=Object.create(PIXI.Rope.prototype),c.Rope.prototype.constructor=c.Rope,c.Component.Core.install.call(c.Rope.prototype,["Angle","Animation","AutoCull","Bounds","BringToTop","Crop","Delta","Destroy","FixedToCamera","InputEnabled","InWorld","LifeSpan","LoadTexture","Overlap","PhysicsBody","Reset","ScaleMinMax","Smoothed"]),c.Rope.prototype.preUpdatePhysics=c.Component.PhysicsBody.preUpdate,c.Rope.prototype.preUpdateLifeSpan=c.Component.LifeSpan.preUpdate,c.Rope.prototype.preUpdateInWorld=c.Component.InWorld.preUpdate,c.Rope.prototype.preUpdateCore=c.Component.Core.preUpdate,c.Rope.prototype.preUpdate=function(){return 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.preUpdatePhysics()&&this.preUpdateLifeSpan()&&this.preUpdateInWorld()?this.preUpdateCore():!1},c.Rope.prototype.update=function(){this._hasUpdateAnimation&&this.updateAnimation.call(this)},c.Rope.prototype.reset=function(a,b){return c.Component.Reset.prototype.reset.call(this,a,b),this.tilePosition.x=0,this.tilePosition.y=0,this},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;k=1)&&(l.touch=!0),(window.navigator.msPointerEnabled||window.navigator.pointerEnabled)&&(l.mspointer=!0),l.cocoonJS||("onwheel"in window||l.ie&&"WheelEvent"in window?l.wheelEvent="wheel":"onmousewheel"in window?l.wheelEvent="mousewheel":l.firefox&&"MouseScrollEvent"in window&&(l.wheelEvent="DOMMouseScroll"))}function d(){for(var a=["requestFullscreen","requestFullScreen","webkitRequestFullscreen","webkitRequestFullScreen","msRequestFullscreen","msRequestFullScreen","mozRequestFullScreen","mozRequestFullscreen"],b=document.createElement("div"),c=0;c0&&"none"!==a}var l=this;a(),g(),f(),e(),k(),h(),b(),d(),c()},c.Device.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},c.Device.canPlayVideo=function(a){return"webm"===a&&(this.webmVideo||this.vp9Video)?!0:"mp4"===a&&(this.mp4Video||this.h264Video)?!0:"ogg"===a&&this.oggVideo?!0:"mpeg"===a&&this.hlsVideo?!0:!1},c.Device.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.isAndroidStockBrowser=function(){var a=window.navigator.userAgent.match(/Android.*AppleWebKit\/([\d.]+)/);return a&&a[1]<537},c.DOM={getOffset:function(a,b){b=b||new c.Point;var d=a.getBoundingClientRect(),e=c.DOM.scrollY,f=c.DOM.scrollX,g=document.documentElement.clientTop,h=document.documentElement.clientLeft;return b.x=d.left+f-h,b.y=d.top+e-g,b},getBounds:function(a,b){return void 0===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.visualBounds:1===a.nodeType?this.getBounds(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},inLayoutViewport:function(a,b){var c=this.getBounds(a,b);return!!c&&c.bottom>=0&&c.right>=0&&c.top<=this.layoutBounds.width&&c.left<=this.layoutBounds.height},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.visualBounds.height>this.visualBounds.width?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.visualBounds.height>this.visualBounds.width?d:e},visualBounds:new c.Rectangle,layoutBounds:new c.Rectangle,documentBounds:new c.Rectangle},c.Device.whenReady(function(a){var b=window&&"pageXOffset"in window?function(){return window.pageXOffset}:function(){return document.documentElement.scrollLeft},d=window&&"pageYOffset"in window?function(){return window.pageYOffset}:function(){return document.documentElement.scrollTop};Object.defineProperty(c.DOM,"scrollX",{get:b}),Object.defineProperty(c.DOM,"scrollY",{get:d}),Object.defineProperty(c.DOM.visualBounds,"x",{get:b}),Object.defineProperty(c.DOM.visualBounds,"y",{get:d}),Object.defineProperty(c.DOM.layoutBounds,"x",{value:0}),Object.defineProperty(c.DOM.layoutBounds,"y",{value:0});var e=a.desktop&&document.documentElement.clientWidth<=window.innerWidth&&document.documentElement.clientHeight<=window.innerHeight;if(e){var f=function(){return Math.max(window.innerWidth,document.documentElement.clientWidth)},g=function(){return Math.max(window.innerHeight,document.documentElement.clientHeight)};Object.defineProperty(c.DOM.visualBounds,"width",{get:f}),Object.defineProperty(c.DOM.visualBounds,"height",{get:g}),Object.defineProperty(c.DOM.layoutBounds,"width",{get:f}),Object.defineProperty(c.DOM.layoutBounds,"height",{get:g})}else Object.defineProperty(c.DOM.visualBounds,"width",{get:function(){return window.innerWidth}}),Object.defineProperty(c.DOM.visualBounds,"height",{get:function(){return window.innerHeight}}),Object.defineProperty(c.DOM.layoutBounds,"width",{get:function(){var a=document.documentElement.clientWidth,b=window.innerWidth;return b>a?b:a}}),Object.defineProperty(c.DOM.layoutBounds,"height",{get:function(){var a=document.documentElement.clientHeight,b=window.innerHeight;return b>a?b:a}});Object.defineProperty(c.DOM.documentBounds,"x",{value:0}),Object.defineProperty(c.DOM.documentBounds,"y",{value:0}),Object.defineProperty(c.DOM.documentBounds,"width",{get:function(){var a=document.documentElement;return Math.max(a.clientWidth,a.offsetWidth,a.scrollWidth)}}),Object.defineProperty(c.DOM.documentBounds,"height",{get:function(){var a=document.documentElement;return Math.max(a.clientHeight,a.offsetHeight,a.scrollHeight)}})},null,!0),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 void 0===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){var c=["i","mozI","oI","webkitI","msI"];for(var d in c){var e=c[d]+"mageSmoothingEnabled";if(e in a)return a[e]=b,a}return 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.RequestAnimationFrame=function(a,b){void 0===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 void 0===c&&(c=1e-4),a>b-c},fuzzyCeil:function(a,b){return void 0===b&&(b=1e-4),Math.ceil(a-b)},fuzzyFloor:function(a,b){return void 0===b&&(b=1e-4),Math.floor(a+b)},average:function(){for(var a=0,b=0;b=0?a:a+2*Math.PI},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},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)},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)},roundAwayFromZero:function(a){return a>0?Math.ceil(a):Math.floor(a)},sinCosGenerator:function(a,b,c,d){void 0===b&&(b=1),void 0===c&&(c=1),void 0===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}},distance:function(a,b,c,d){var e=a-c,f=b-d;return Math.sqrt(e*e+f*f)},distanceSq:function(a,b,c,d){var e=a-c,f=b-d;return e*e+f*f},distancePow:function(a,b,c,d,e){return void 0===e&&(e=2),Math.sqrt(Math.pow(c-a,e)+Math.pow(d-b,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 void 0===c&&(c=0),a>b||c>b?1:c>a||c>a?0:(a-c)/b}};var j=Math.PI/180,k=180/Math.PI;return c.Math.degToRad=function(a){return a*j},c.Math.radToDeg=function(a){return a*k},c.RandomDataGenerator=function(a){void 0===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){if(this.s0=this.hash(" "),this.s1=this.hash(this.s0),this.s2=this.hash(this.s1),this.c=1,a)for(var b=0;b>>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)+.5)]},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){void 0===c&&(c=!1),(void 0===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){void 0===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.easeMap={Power0:c.Easing.Power0,Power1:c.Easing.Power1,Power2:c.Easing.Power2,Power3:c.Easing.Power3,Power4:c.Easing.Power4,Linear:c.Easing.Linear.None,Quad:c.Easing.Quadratic.Out,Cubic:c.Easing.Cubic.Out,Quart:c.Easing.Quartic.Out,Quint:c.Easing.Quintic.Out,Sine:c.Easing.Sinusoidal.Out,Expo:c.Easing.Exponential.Out,Circ:c.Easing.Circular.Out,Elastic:c.Easing.Elastic.Out,Back:c.Easing.Back.Out,Bounce:c.Easing.Bounce.Out,"Quad.easeIn":c.Easing.Quadratic.In,"Cubic.easeIn":c.Easing.Cubic.In,"Quart.easeIn":c.Easing.Quartic.In,"Quint.easeIn":c.Easing.Quintic.In,"Sine.easeIn":c.Easing.Sinusoidal.In,"Expo.easeIn":c.Easing.Exponential.In,"Circ.easeIn":c.Easing.Circular.In,"Elastic.easeIn":c.Easing.Elastic.In,"Back.easeIn":c.Easing.Back.In,"Bounce.easeIn":c.Easing.Bounce.In,"Quad.easeOut":c.Easing.Quadratic.Out,"Cubic.easeOut":c.Easing.Cubic.Out,"Quart.easeOut":c.Easing.Quartic.Out,"Quint.easeOut":c.Easing.Quintic.Out,"Sine.easeOut":c.Easing.Sinusoidal.Out,"Expo.easeOut":c.Easing.Exponential.Out,"Circ.easeOut":c.Easing.Circular.Out,"Elastic.easeOut":c.Easing.Elastic.Out,"Back.easeOut":c.Easing.Back.Out,"Bounce.easeOut":c.Easing.Bounce.Out,"Quad.easeInOut":c.Easing.Quadratic.InOut,"Cubic.easeInOut":c.Easing.Cubic.InOut,"Quart.easeInOut":c.Easing.Quartic.InOut,"Quint.easeInOut":c.Easing.Quintic.InOut,"Sine.easeInOut":c.Easing.Sinusoidal.InOut,"Expo.easeInOut":c.Easing.Exponential.InOut,"Circ.easeInOut":c.Easing.Circular.InOut,"Elastic.easeInOut":c.Easing.Elastic.InOut,"Back.easeInOut":c.Easing.Back.InOut,"Bounce.easeInOut":c.Easing.Bounce.InOut},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;ad;d++)this.removeFrom(a[d]);else if(a.type===c.GROUP&&b)for(var d=0,e=a.children.length;e>d;d++)this.removeFrom(a.children[d]);else{for(d=0,e=this._tweens.length;e>d;d++)a===this._tweens[d].target&&this.remove(this._tweens[d]);for(d=0,e=this._add.length;e>d;d++)a===this._add[d].target&&this.remove(this._add[d])}},add:function(a){a._manager=this,this._add.push(a)},create:function(a){return new c.Tween(a,this.game,this)},remove:function(a){var b=this._tweens.indexOf(a);-1!==b?this._tweens[b].pendingDelete=!0:(b=this._add.indexOf(a),-1!==b&&(this._add[b].pendingDelete=!0))},update:function(){var a=this._add.length,b=this._tweens.length;if(0===b&&0===a)return!1;for(var c=0;b>c;)this._tweens[c].update(this.game.time.time)?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.target===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.game=b,this.target=a,this.manager=d,this.timeline=[],this.reverse=!1,this.timeScale=1,this.repeatCounter=0,this.pendingDelete=!1,this.onStart=new c.Signal,this.onLoop=new c.Signal,this.onRepeat=new c.Signal,this.onChildComplete=new c.Signal,this.onComplete=new c.Signal,this.isRunning=!1,this.current=0,this.properties={},this.chainedTween=null,this.isPaused=!1,this._onUpdateCallback=null,this._onUpdateCallbackContext=null,this._pausedTime=0,this._codePaused=!1,this._hasStarted=!1},c.Tween.prototype={to:function(a,b,d,e,f,g,h){return(void 0===b||0>=b)&&(b=1e3),(void 0===d||null===d)&&(d=c.Easing.Default),void 0===e&&(e=!1),void 0===f&&(f=0),void 0===g&&(g=0),void 0===h&&(h=!1),"string"==typeof d&&this.manager.easeMap[d]&&(d=this.manager.easeMap[d]),this.isRunning?(console.warn("Phaser.Tween.to cannot be called after Tween.start"),this):(this.timeline.push(new c.TweenData(this).to(a,b,d,f,g,h)),e&&this.start(),this)},from:function(a,b,d,e,f,g,h){return void 0===b&&(b=1e3),(void 0===d||null===d)&&(d=c.Easing.Default),void 0===e&&(e=!1),void 0===f&&(f=0),void 0===g&&(g=0),void 0===h&&(h=!1),"string"==typeof d&&this.manager.easeMap[d]&&(d=this.manager.easeMap[d]),this.isRunning?(console.warn("Phaser.Tween.from cannot be called after Tween.start"),this):(this.timeline.push(new c.TweenData(this).from(a,b,d,f,g,h)),e&&this.start(),this)},start:function(a){if(void 0===a&&(a=0),null===this.game||null===this.target||0===this.timeline.length||this.isRunning)return this;for(var b=0;ba||a>this.timeline.length-1)&&(a=0),this.current=a,this.timeline[this.current].start(),this},stop:function(a){return void 0===a&&(a=!1),this.isRunning=!1,this._onUpdateCallback=null,this._onUpdateCallbackContext=null,a&&(this.onComplete.dispatch(this.target,this),this.chainedTween&&this.chainedTween.start()),this.manager.remove(this),this},updateTweenData:function(a,b,c){if(0===this.timeline.length)return this;if(void 0===c&&(c=0),-1===c)for(var d=0;d0?arguments[a-1].chainedTween=arguments[a]:this.chainedTween=arguments[a];return this},loop:function(a){return void 0===a&&(a=!0),a?this.repeatAll(-1):this.repeatCounter=0,this},onUpdateCallback:function(a,b){return this._onUpdateCallback=a,this._onUpdateCallbackContext=b,this},pause:function(){this.isPaused=!0,this._codePaused=!0,this._pausedTime=this.game.time.time},_pause:function(){this._codePaused||(this.isPaused=!0,this._pausedTime=this.game.time.time)},resume:function(){if(this.isPaused){this.isPaused=!1,this._codePaused=!1;for(var a=0;a0?(this.repeatCounter--,this.timeline[this.current].start(),this.onRepeat.dispatch(this.target,this),!0):(this.isRunning=!1,this.onComplete.dispatch(this.target,this),this.chainedTween&&this.chainedTween.start(),!1):(this.onChildComplete.dispatch(this.target,this),this.timeline[this.current].start(),!0)}},generateData:function(a,b){if(null===this.game||null===this.target)return null;void 0===a&&(a=60),void 0===b&&(b=[]);for(var c=0;c0?!1:!0,this.isFrom)for(var a in this.vStartCache)this.vStart[a]=this.vEndCache[a],this.vEnd[a]=this.vStartCache[a],this.parent.target[a]=this.vStart[a];return this.value=0,this.yoyoCounter=0,this},loadValues:function(){for(var a in this.parent.properties){if(this.vStart[a]=this.parent.properties[a],Array.isArray(this.vEnd[a])){if(0===this.vEnd[a].length)continue;0===this.percent&&(this.vEnd[a]=[this.vStart[a]].concat(this.vEnd[a]))}"undefined"!=typeof this.vEnd[a]?("string"==typeof this.vEnd[a]&&(this.vEnd[a]=this.vStart[a]+parseFloat(this.vEnd[a],10)),this.parent.properties[a]=this.vEnd[a]):this.vEnd[a]=this.vStart[a],this.vStartCache[a]=this.vStart[a],this.vEndCache[a]=this.vEnd[a]}return this},update:function(a){if(this.isRunning){if(a=this.startTime))return c.TweenData.PENDING;this.isRunning=!0}this.parent.reverse?(this.dt-=this.game.time.elapsedMS*this.parent.timeScale,this.dt=Math.max(this.dt,0)):(this.dt+=this.game.time.elapsedMS*this.parent.timeScale,this.dt=Math.min(this.dt,this.duration)),this.percent=this.dt/this.duration,this.value=this.easingFunction(this.percent);for(var b in this.vEnd){var d=this.vStart[b],e=this.vEnd[b];this.parent.target[b]=Array.isArray(e)?this.interpolationFunction.call(this.interpolationContext,e,this.value):d+(e-d)*this.value}return!this.parent.reverse&&1===this.percent||this.parent.reverse&&0===this.percent?this.repeat():c.TweenData.RUNNING},generateData:function(a){this.dt=this.parent.reverse?this.duration:0;var b=[],c=!1,d=1/a*1e3;do{this.parent.reverse?(this.dt-=d,this.dt=Math.max(this.dt,0)):(this.dt+=d,this.dt=Math.min(this.dt,this.duration)),this.percent=this.dt/this.duration,this.value=this.easingFunction(this.percent);var e={};for(var f in this.vEnd){var g=this.vStart[f],h=this.vEnd[f];e[f]=Array.isArray(h)?this.interpolationFunction(h,this.value):g+(h-g)*this.value}b.push(e),(!this.parent.reverse&&1===this.percent||this.parent.reverse&&0===this.percent)&&(c=!0)}while(!c);if(this.yoyo){var i=b.slice();i.reverse(),b=b.concat(i)}return b},repeat:function(){if(this.yoyo){if(this.inReverse&&0===this.repeatCounter)return c.TweenData.COMPLETE;this.inReverse=!this.inReverse}else if(0===this.repeatCounter)return c.TweenData.COMPLETE;if(this.inReverse)for(var a in this.vStartCache)this.vStart[a]=this.vEndCache[a],this.vEnd[a]=this.vStartCache[a];else{for(var a in this.vStartCache)this.vStart[a]=this.vStartCache[a],this.vEnd[a]=this.vEndCache[a];this.repeatCounter>0&&this.repeatCounter--}return this.startTime=this.game.time.time,this.yoyo&&this.inReverse?this.startTime+=this.yoyoDelay:this.inReverse||(this.startTime+=this.repeatDelay),this.dt=this.parent.reverse?this.duration:0,c.TweenData.LOOPED}},c.TweenData.prototype.constructor=c.TweenData,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 0===a?0:1===a?1:1-Math.cos(a*Math.PI/2)},Out:function(a){return 0===a?0:1===a?1:Math.sin(a*Math.PI/2)},InOut:function(a){return 0===a?0:1===a?1:.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.Easing.Power0=c.Easing.Linear.None,c.Easing.Power1=c.Easing.Quadratic.Out,c.Easing.Power2=c.Easing.Cubic.Out,c.Easing.Power3=c.Easing.Quartic.Out,c.Easing.Power4=c.Easing.Quintic.Out,c.Time=function(a){this.game=a,this.time=0,this.prevTime=0,this.now=0,this.elapsed=0,this.elapsedMS=0,this.physicsElapsed=0,this.physicsElapsedMS=0,this.desiredFps=60,this.suggestedFps=null,this.slowMotion=1,this.advancedTiming=!1,this.frames=0,this.fps=0,this.fpsMin=1e3,this.fpsMax=0,this.msMin=1e3,this.msMax=0,this.pauseDuration=0,this.timeToCall=0,this.timeExpected=0,this.events=new c.Timer(this.game,!1),this._frameCount=0,this._elapsedAccumulator=0,this._started=0,this._timeLastSecond=0,this._pauseStarted=0,this._justResumed=!1,this._timers=[]},c.Time.prototype={boot:function(){this._started=Date.now(),this.time=Date.now(),this.events.start()},add:function(a){return this._timers.push(a),a},create:function(a){void 0===a&&(a=!0);var b=new c.Timer(this.game,a);return this._timers.push(b),b},removeAll:function(){for(var a=0;aa;)this._timers[a].update(this.time)?a++:(this._timers.splice(a,1),b--)},updateAdvancedTiming:function(){this._frameCount++,this._elapsedAccumulator+=this.elapsed,this._frameCount>=2*this.desiredFps&&(this.suggestedFps=5*Math.floor(200/(this._elapsedAccumulator/this._frameCount)),this._frameCount=0,this._elapsedAccumulator=0),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)},gamePaused:function(){this._pauseStarted=Date.now(),this.events.pause();for(var a=this._timers.length;a--;)this._timers[a]._pause()},gameResumed:function(){this.time=Date.now(),this.pauseDuration=this.time-this._pauseStarted,this.events.resume();for(var a=this._timers.length;a--;)this._timers[a]._resume()},totalElapsedSeconds:function(){return.001*(this.time-this._started)},elapsedSince:function(a){return this.time-a},elapsedSecondsSince:function(a){return.001*(this.time-a)},reset:function(){this._started=this.time,this.removeAll()}},c.Time.prototype.constructor=c.Time,c.Timer=function(a,b){void 0===b&&(b=!0),this.game=a,this.running=!1,this.autoDestroy=b,this.expired=!1,this.elapsed=0,this.events=[],this.onComplete=new c.Signal,this.nextTick=0,this.timeCap=1e3,this.paused=!1,this._codePaused=!1,this._started=0,this._pauseStarted=0,this._pauseTotal=0,this._now=Date.now(),this._len=0,this._marked=0,this._i=0,this._diff=0,this._newTick=0},c.Timer.MINUTE=6e4,c.Timer.SECOND=1e3,c.Timer.HALF=500,c.Timer.QUARTER=250,c.Timer.prototype={create:function(a,b,d,e,f,g){a=Math.round(a);var h=a;h+=0===this._now?this.game.time.time:this._now;var i=new c.TimerEvent(this,a,h,d,b,e,f,g);return this.events.push(i),this.order(),this.expired=!1,i},add:function(a,b,c){return this.create(a,!1,0,b,c,Array.prototype.splice.call(arguments,3))},repeat:function(a,b,c,d){return this.create(a,!1,b,c,d,Array.prototype.splice.call(arguments,4))},loop:function(a,b,c){return this.create(a,!0,0,b,c,Array.prototype.splice.call(arguments,3))},start:function(a){if(!this.running){this._started=this.game.time.time+(a||0),this.running=!0;for(var b=0;b0&&(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.events[this._i].pendingDelete;)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},destroy:function(){this.onComplete.removeAll(),this.running=!1,this.events=[],this._len=0,this._i=0}},Object.defineProperty(c.Timer.prototype,"next",{get:function(){return this.nextTick}}),Object.defineProperty(c.Timer.prototype,"duration",{get:function(){return this.running&&this.nextTick>this._now?this.nextTick-this._now:0}}),Object.defineProperty(c.Timer.prototype,"length",{get:function(){return this.events.length}}),Object.defineProperty(c.Timer.prototype,"ms",{get:function(){return this.running?this._now-this._started-this._pauseTotal:0}}),Object.defineProperty(c.Timer.prototype,"seconds",{get:function(){return this.running?.001*this.ms:0}}),c.Timer.prototype.constructor=c.Timer,c.TimerEvent=function(a,b,c,d,e,f,g,h){this.timer=a,this.delay=b,this.tick=c,this.repeatCount=d-1,this.loop=e,this.callback=f,this.callbackContext=g,this.args=h,this.pendingDelete=!1},c.TimerEvent.prototype.constructor=c.TimerEvent,c.AnimationManager=function(a){this.sprite=a,this.game=a.game,this.currentFrame=null,this.currentAnim=null,this.updateIfVisible=!0,this.isLoaded=!1,this._frameData=null,this._anims={},this._outputFrames=[]},c.AnimationManager.prototype={loadFrameData:function(a,b){if(void 0===a)return!1;if(this.isLoaded)for(var c in this._anims)this._anims[c].updateFrameData(a);return this._frameData=a,void 0===b||null===b?this.frame=0:"string"==typeof b?this.frameName=b:this.frame=b,this.isLoaded=!0,!0},copyFrameData:function(a,b){if(this._frameData=a.clone(),this.isLoaded)for(var c in this._anims)this._anims[c].updateFrameData(this._frameData);return void 0===b||null===b?this.frame=0:"string"==typeof b?this.frameName=b:this.frame=b,this.isLoaded=!0,!0},add:function(a,b,d,e,f){return b=b||[],d=d||60,void 0===e&&(e=!1),void 0===f&&(f=b&&"number"==typeof b[0]?!0:!1),this._outputFrames=[],this._frameData.getFrameIndexes(b,f,this._outputFrames),this._anims[a]=new c.Animation(this.game,this.sprite,a,this._frameData,this._outputFrames,d,e),this.currentAnim=this._anims[a],this.sprite.tilingTexture&&(this.sprite.refreshTexture=!0),this._anims[a]},validateFrames:function(a,b){void 0===b&&(b=!0);for(var c=0;cthis._frameData.total)return!1}else if(this._frameData.checkFrameName(a[c])===!1)return!1;return!0},play:function(a,b,c,d){return this._anims[a]?this.currentAnim===this._anims[a]?this.currentAnim.isPlaying===!1?(this.currentAnim.paused=!1,this.currentAnim.play(b,c,d)):this.currentAnim:(this.currentAnim&&this.currentAnim.isPlaying&&this.currentAnim.stop(),this.currentAnim=this._anims[a],this.currentAnim.paused=!1,this.currentFrame=this.currentAnim.currentFrame,this.currentAnim.play(b,c,d)):void 0},stop:function(a,b){void 0===b&&(b=!1),"string"==typeof a?this._anims[a]&&(this.currentAnim=this._anims[a],this.currentAnim.stop(b)):this.currentAnim&&this.currentAnim.stop(b)},update:function(){return this.updateIfVisible&&!this.sprite.visible?!1:this.currentAnim&&this.currentAnim.update()?(this.currentFrame=this.currentAnim.currentFrame,!0):!1},next:function(a){this.currentAnim&&(this.currentAnim.next(a),this.currentFrame=this.currentAnim.currentFrame)},previous:function(a){this.currentAnim&&(this.currentAnim.previous(a),this.currentFrame=this.currentAnim.currentFrame)},getAnimation:function(a){return"string"==typeof a&&this._anims[a]?this._anims[a]:null},refreshFrame:function(){this.sprite.setTexture(PIXI.TextureCache[this.currentFrame.uuid])},destroy:function(){var a=null;for(var a in this._anims)this._anims.hasOwnProperty(a)&&this._anims[a].destroy();this._anims={},this._outputFrames=[],this._frameData=null,this.currentAnim=null,this.currentFrame=null,this.sprite=null,this.game=null}},c.AnimationManager.prototype.constructor=c.AnimationManager,Object.defineProperty(c.AnimationManager.prototype,"frameData",{get:function(){return this._frameData}}),Object.defineProperty(c.AnimationManager.prototype,"frameTotal",{get:function(){return this._frameData.total}}),Object.defineProperty(c.AnimationManager.prototype,"paused",{get:function(){return this.currentAnim.isPaused},set:function(a){this.currentAnim.paused=a}}),Object.defineProperty(c.AnimationManager.prototype,"name",{get:function(){return this.currentAnim?this.currentAnim.name:void 0}}),Object.defineProperty(c.AnimationManager.prototype,"frame",{get:function(){return this.currentFrame?this.currentFrame.index:void 0},set:function(a){"number"==typeof a&&this._frameData&&null!==this._frameData.getFrame(a)&&(this.currentFrame=this._frameData.getFrame(a),this.currentFrame&&this.sprite.setFrame(this.currentFrame))}}),Object.defineProperty(c.AnimationManager.prototype,"frameName",{get:function(){return this.currentFrame?this.currentFrame.name:void 0},set:function(a){"string"==typeof a&&this._frameData&&null!==this._frameData.getFrameByName(a)?(this.currentFrame=this._frameData.getFrameByName(a),this.currentFrame&&(this._frameIndex=this.currentFrame.index,this.sprite.setFrame(this.currentFrame))):console.warn("Cannot set frameName: "+a)}}),c.Animation=function(a,b,d,e,f,g,h){void 0===h&&(h=!1),this.game=a,this._parent=b,this._frameData=e,this.name=d,this._frames=[],this._frames=this._frames.concat(f),this.delay=1e3/g,this.loop=h,this.loopCount=0,this.killOnComplete=!1,this.isFinished=!1,this.isPlaying=!1,this.isPaused=!1,this._pauseStartTime=0,this._frameIndex=0,this._frameDiff=0,this._frameSkip=1,this.currentFrame=this._frameData.getFrame(this._frames[this._frameIndex]),this.onStart=new c.Signal,this.onUpdate=null,this.onComplete=new c.Signal,this.onLoop=new c.Signal,this.game.onPause.add(this.onPause,this),this.game.onResume.add(this.onResume,this)},c.Animation.prototype={play:function(a,b,c){return"number"==typeof a&&(this.delay=1e3/a),"boolean"==typeof b&&(this.loop=b),"undefined"!=typeof c&&(this.killOnComplete=c),this.isPlaying=!0,this.isFinished=!1,this.paused=!1,this.loopCount=0,this._timeLastFrame=this.game.time.time,this._timeNextFrame=this.game.time.time+this.delay,this._frameIndex=0,this.updateCurrentFrame(!1,!0),this._parent.events.onAnimationStart$dispatch(this._parent,this),this.onStart.dispatch(this._parent,this),this._parent.animations.currentAnim=this,this._parent.animations.currentFrame=this.currentFrame,this},restart:function(){this.isPlaying=!0,this.isFinished=!1,this.paused=!1,this.loopCount=0,this._timeLastFrame=this.game.time.time,this._timeNextFrame=this.game.time.time+this.delay,this._frameIndex=0,this.currentFrame=this._frameData.getFrame(this._frames[this._frameIndex]),this._parent.setFrame(this.currentFrame),this._parent.animations.currentAnim=this,this._parent.animations.currentFrame=this.currentFrame,this.onStart.dispatch(this._parent,this)},setFrame:function(a,b){var c;if(void 0===b&&(b=!1),"string"==typeof a)for(var d=0;d=this._timeNextFrame?(this._frameSkip=1,this._frameDiff=this.game.time.time-this._timeNextFrame,this._timeLastFrame=this.game.time.time,this._frameDiff>this.delay&&(this._frameSkip=Math.floor(this._frameDiff/this.delay),this._frameDiff-=this._frameSkip*this.delay),this._timeNextFrame=this.game.time.time+(this.delay-this._frameDiff),this._frameIndex+=this._frameSkip,this._frameIndex>=this._frames.length?this.loop?(this._frameIndex%=this._frames.length,this.currentFrame=this._frameData.getFrame(this._frames[this._frameIndex]),this.currentFrame&&this._parent.setFrame(this.currentFrame),this.loopCount++,this._parent.events.onAnimationLoop$dispatch(this._parent,this),this.onLoop.dispatch(this._parent,this),this.onUpdate?(this.onUpdate.dispatch(this,this.currentFrame),!!this._frameData):!0):(this.complete(),!1):this.updateCurrentFrame(!0)):!1},updateCurrentFrame:function(a,b){if(void 0===b&&(b=!1),!this._frameData)return!1;var c=this.currentFrame.index;return this.currentFrame=this._frameData.getFrame(this._frames[this._frameIndex]),this.currentFrame&&(b||!b&&c!==this.currentFrame.index)&&this._parent.setFrame(this.currentFrame),this.onUpdate&&a?(this.onUpdate.dispatch(this,this.currentFrame),!!this._frameData):!0},next:function(a){void 0===a&&(a=1);var b=this._frameIndex+a;b>=this._frames.length&&(this.loop?b%=this._frames.length:b=this._frames.length-1),b!==this._frameIndex&&(this._frameIndex=b,this.updateCurrentFrame(!0))},previous:function(a){void 0===a&&(a=1);var b=this._frameIndex-a;0>b&&(this.loop?b=this._frames.length+b:b++),b!==this._frameIndex&&(this._frameIndex=b,this.updateCurrentFrame(!0))},updateFrameData:function(a){this._frameData=a,this.currentFrame=this._frameData?this._frameData.getFrame(this._frames[this._frameIndex%this._frames.length]):null},destroy:function(){this._frameData&&(this.game.onPause.remove(this.onPause,this),this.game.onResume.remove(this.onResume,this),this.game=null,this._parent=null,this._frames=null,this._frameData=null,this.currentFrame=null,this.isPlaying=!1,this.onStart.dispose(),this.onLoop.dispose(),this.onComplete.dispose(),this.onUpdate&&this.onUpdate.dispose())},complete:function(){this._frameIndex=this._frames.length-1,this.currentFrame=this._frameData.getFrame(this._frames[this._frameIndex]),this.isPlaying=!1,this.isFinished=!0,this.paused=!1,this._parent.events.onAnimationComplete$dispatch(this._parent,this),this.onComplete.dispatch(this._parent,this),this.killOnComplete&&this._parent.kill()}},c.Animation.prototype.constructor=c.Animation,Object.defineProperty(c.Animation.prototype,"paused",{get:function(){return this.isPaused},set:function(a){this.isPaused=a,a?this._pauseStartTime=this.game.time.time:this.isPlaying&&(this._timeNextFrame=this.game.time.time+this.delay)}}),Object.defineProperty(c.Animation.prototype,"frameTotal",{get:function(){return this._frames.length}}),Object.defineProperty(c.Animation.prototype,"frame",{get:function(){return null!==this.currentFrame?this.currentFrame.index:this._frameIndex},set:function(a){this.currentFrame=this._frameData.getFrame(this._frames[a]),null!==this.currentFrame&&(this._frameIndex=a,this._parent.setFrame(this.currentFrame),this.onUpdate&&this.onUpdate.dispatch(this,this.currentFrame))}}),Object.defineProperty(c.Animation.prototype,"speed",{get:function(){return Math.round(1e3/this.delay)},set:function(a){a>=1&&(this.delay=1e3/a)}}),Object.defineProperty(c.Animation.prototype,"enableUpdate",{get:function(){return null!==this.onUpdate},set:function(a){a&&null===this.onUpdate?this.onUpdate=new c.Signal:a||null===this.onUpdate||(this.onUpdate.dispose(),this.onUpdate=null)}}),c.Animation.generateFrameNames=function(a,b,d,e,f){void 0===e&&(e="");var g=[],h="";if(d>b)for(var i=b;d>=i;i++)h="number"==typeof f?c.Utils.pad(i.toString(),f,"0",1):i.toString(),h=a+h+e,g.push(h);else for(var i=b;i>=d;i--)h="number"==typeof f?c.Utils.pad(i.toString(),f,"0",1):i.toString(),h=a+h+e,g.push(h);return g},c.Frame=function(a,b,d,e,f,g){this.index=a,this.x=b,this.y=d,this.width=e,this.height=f,this.name=g,this.centerX=Math.floor(e/2),this.centerY=Math.floor(f/2),this.distance=c.Math.distance(0,0,e,f),this.rotated=!1,this.rotationDirection="cw",this.trimmed=!1,this.sourceSizeW=e,this.sourceSizeH=f,this.spriteSourceSizeX=0,this.spriteSourceSizeY=0,this.spriteSourceSizeW=0,this.spriteSourceSizeH=0,this.right=this.x+this.width,this.bottom=this.y+this.height +},c.Frame.prototype={resize:function(a,b){this.width=a,this.height=b,this.centerX=Math.floor(a/2),this.centerY=Math.floor(b/2),this.distance=c.Math.distance(0,0,a,b),this.sourceSizeW=a,this.sourceSizeH=b,this.right=this.x+a,this.bottom=this.y+b},setTrim:function(a,b,c,d,e,f,g){this.trimmed=a,a&&(this.sourceSizeW=b,this.sourceSizeH=c,this.centerX=Math.floor(b/2),this.centerY=Math.floor(c/2),this.spriteSourceSizeX=d,this.spriteSourceSizeY=e,this.spriteSourceSizeW=f,this.spriteSourceSizeH=g)},clone:function(){var a=new c.Frame(this.index,this.x,this.y,this.width,this.height,this.name);for(var b in this)this.hasOwnProperty(b)&&(a[b]=this[b]);return a},getRect:function(a){return void 0===a?a=new c.Rectangle(this.x,this.y,this.width,this.height):a.setTo(this.x,this.y,this.width,this.height),a}},c.Frame.prototype.constructor=c.Frame,c.FrameData=function(){this._frames=[],this._frameNames=[]},c.FrameData.prototype={addFrame:function(a){return a.index=this._frames.length,this._frames.push(a),""!==a.name&&(this._frameNames[a.name]=a.index),a},getFrame:function(a){return a>=this._frames.length&&(a=0),this._frames[a]},getFrameByName:function(a){return"number"==typeof this._frameNames[a]?this._frames[this._frameNames[a]]:null},checkFrameName:function(a){return null==this._frameNames[a]?!1:!0},clone:function(){for(var a=new c.FrameData,b=0;b=d;d++)c.push(this._frames[d]);return c},getFrames:function(a,b,c){if(void 0===b&&(b=!0),void 0===c&&(c=[]),void 0===a||0===a.length)for(var d=0;d=d&&(d=Math.floor(-j/Math.min(-1,d))),0>=e&&(e=Math.floor(-k/Math.min(-1,e)));var l=Math.floor((j-g)/(d+h)),m=Math.floor((k-g)/(e+h)),n=l*m;if(-1!==f&&(n=f),0===j||0===k||d>j||e>k||0===n)return console.warn("Phaser.AnimationParser.spriteSheet: '"+b+"'s width/height zero or width/height < given frameWidth/frameHeight"),null;for(var o=new c.FrameData,p=g,q=g,r=0;n>r;r++)o.addFrame(new c.Frame(r,p,q,d,e,"")),p+=d+h,p+d>j&&(p=g,q+=e+h);return o},JSONData:function(a,b){if(!b.frames)return console.warn("Phaser.AnimationParser.JSONData: Invalid Texture Atlas JSON given, missing 'frames' array"),void console.log(b);for(var d,e=new c.FrameData,f=b.frames,g=0;g tag");for(var d,e,f,g,h,i,j,k,l,m,n,o=new c.FrameData,p=b.getElementsByTagName("SubTexture"),q=0;q-1},getAssetIndex:function(a,b){for(var c=-1,d=0;d-1?{index:c,file:this._fileList[c]}:!1},reset:function(a,b){void 0===b&&(b=!1),this.resetLocked||(a&&(this.preloadSprite=null),this.isLoading=!1,this._processingHead=0,this._fileList.length=0,this._flightQueue.length=0,this._fileLoadStarted=!1,this._totalFileCount=0,this._totalPackCount=0,this._loadedPackCount=0,this._loadedFileCount=0,b&&(this.onLoadStart.removeAll(),this.onLoadComplete.removeAll(),this.onPackComplete.removeAll(),this.onFileStart.removeAll(),this.onFileComplete.removeAll(),this.onFileError.removeAll()))},addToFileList:function(a,b,c,d,e,f){if(void 0===e&&(e=!1),void 0===b||""===b)return console.warn("Phaser.Loader: Invalid or no key given of type "+a),this;if(void 0===c||null===c){if(!f)return console.warn("Phaser.Loader: No URL given for file type: "+a+" key: "+b),this;c=b+f}var g={type:a,key:b,path:this.path,url:c,syncPoint:this._withSyncPointDepth>0,data:null,loading:!1,loaded:!1,error:!1};if(d)for(var h in d)g[h]=d[h];var i=this.getAssetIndex(a,b);if(e&&i>-1){var j=this._fileList[i];j.loading||j.loaded?(this._fileList.push(g),this._totalFileCount++):this._fileList[i]=g}else-1===i&&(this._fileList.push(g),this._totalFileCount++);return this},replaceInFileList:function(a,b,c,d){return this.addToFileList(a,b,c,d,!0)},pack:function(a,b,c,d){if(void 0===b&&(b=null),void 0===c&&(c=null),void 0===d&&(d=null),!b&&!c)return console.warn("Phaser.Loader.pack - Both url and data are null. One must be set."),this;var e={type:"packfile",key:a,url:b,path:this.path,syncPoint:!0,data:null,loading:!1,loaded:!1,error:!1,callbackContext:d};c&&("string"==typeof c&&(c=JSON.parse(c)),e.data=c||{},e.loaded=!0);for(var f=0;f=e||d&&this._loadedPackCount===this._totalPackCount)break}if(this.updateProgress(),this._processingHead>=this._fileList.length)this.finishedLoading();else if(!this._flightQueue.length){console.warn("Phaser.Loader - aborting: processing queue empty, loading may have stalled");var f=this;setTimeout(function(){f.finishedLoading(!0)},2e3)}},finishedLoading:function(a){this.hasLoaded||(this.hasLoaded=!0,this.isLoading=!1,a||this._fileLoadStarted||(this._fileLoadStarted=!0,this.onLoadStart.dispatch()),this.onLoadComplete.dispatch(),this.reset(),this.game.state.loadComplete())},asyncComplete:function(a,b){void 0===b&&(b=""),a.loaded=!0,a.error=!!b,b&&(a.errorMessage=b,console.warn("Phaser.Loader - "+a.type+"["+a.key+"]: "+b)),this.processLoadQueue()},processPack:function(a){var b=a.data[a.key];if(!b)return void console.warn("Phaser.Loader - "+a.key+": pack has data, but not for pack key");for(var d=0;d=10)||(this._warnedAboutXDomainRequest=!0,console.warn("Phaser.Loader - using XDomainRequest outside of IE 9"));var f=new window.XDomainRequest;f.open("GET",b,!0),f.responseType=c,f.timeout=3e3,e=e||this.fileError;var g=this;f.onerror=function(){try{return e.call(g,a,f)}catch(b){g.asyncComplete(a,b.message||"Exception")}},f.ontimeout=function(){try{return e.call(g,a,f)}catch(b){g.asyncComplete(a,b.message||"Exception")}},f.onprogress=function(){},f.onload=function(){try{return d.call(g,a,f) +}catch(b){g.asyncComplete(a,b.message||"Exception")}},a.requestObject=f,a.requestUrl=b,setTimeout(function(){f.send()},0)},getVideoURL:function(a){for(var b=0;b=0&&(d=d.substr(0,d.indexOf("?")));var e=d.substr((Math.max(0,d.lastIndexOf("."))||1/0)+1);c=e.toLowerCase()}if(this.game.device.canPlayVideo(c))return a[b]}return null},getAudioURL:function(a){if(this.game.sound.noAudio)return null;for(var b=0;b=0&&(d=d.substr(0,d.indexOf("?")));var e=d.substr((Math.max(0,d.lastIndexOf("."))||1/0)+1);c=e.toLowerCase()}if(this.game.device.canPlayAudio(c))return a[b]}return null},fileError:function(a,b,c){var d=a.requestUrl||this.transformUrl(a.url,a),e="error loading asset from URL "+d;!c&&b&&(c=b.status),c&&(e=e+" ("+c+")"),this.asyncComplete(a,e)},fileComplete:function(a,b){var d=!0;switch(a.type){case"packfile":var e=JSON.parse(b.responseText);a.data=e||{};break;case"image":this.cache.addImage(a.key,a.url,a.data);break;case"spritesheet":this.cache.addSpriteSheet(a.key,a.url,a.data,a.frameWidth,a.frameHeight,a.frameMax,a.margin,a.spacing);break;case"textureatlas":if(null==a.atlasURL)this.cache.addTextureAtlas(a.key,a.url,a.data,a.atlasData,a.format);else if(d=!1,a.format==c.Loader.TEXTURE_ATLAS_JSON_ARRAY||a.format==c.Loader.TEXTURE_ATLAS_JSON_HASH)this.xhrLoad(a,this.transformUrl(a.atlasURL,a),"text",this.jsonLoadComplete);else{if(a.format!=c.Loader.TEXTURE_ATLAS_XML_STARLING)throw new Error("Phaser.Loader. Invalid Texture Atlas format: "+a.format);this.xhrLoad(a,this.transformUrl(a.atlasURL,a),"text",this.xmlLoadComplete)}break;case"bitmapfont":a.atlasURL?(d=!1,this.xhrLoad(a,this.transformUrl(a.atlasURL,a),"text",function(a,b){var c;try{c=JSON.parse(b.responseText)}catch(d){}c?(a.atlasType="json",this.jsonLoadComplete(a,b)):(a.atlasType="xml",this.xmlLoadComplete(a,b))})):this.cache.addBitmapFont(a.key,a.url,a.data,a.atlasData,a.atlasType,a.xSpacing,a.ySpacing);break;case"video":if(a.asBlob)try{a.data=new Blob([new Uint8Array(b.response)])}catch(f){throw new Error("Phaser.Loader. Unable to parse video file as Blob: "+a.key)}this.cache.addVideo(a.key,a.url,a.data,a.asBlob);break;case"audio":this.game.sound.usingWebAudio?(a.data=b.response,this.cache.addSound(a.key,a.url,a.data,!0,!1),a.autoDecode&&this.game.sound.decode(a.key)):this.cache.addSound(a.key,a.url,a.data,!1,!0);break;case"text":a.data=b.responseText,this.cache.addText(a.key,a.url,a.data);break;case"shader":a.data=b.responseText,this.cache.addShader(a.key,a.url,a.data);break;case"physics":var e=JSON.parse(b.responseText);this.cache.addPhysicsData(a.key,a.url,e,a.format);break;case"script":a.data=document.createElement("script"),a.data.language="javascript",a.data.type="text/javascript",a.data.defer=!1,a.data.text=b.responseText,document.head.appendChild(a.data),a.callback&&(a.data=a.callback.call(a.callbackContext,a.key,b.responseText));break;case"binary":a.data=a.callback?a.callback.call(a.callbackContext,a.key,b.response):b.response,this.cache.addBinary(a.key,a.data)}d&&this.asyncComplete(a)},jsonLoadComplete:function(a,b){var c=JSON.parse(b.responseText);"tilemap"===a.type?this.cache.addTilemap(a.key,a.url,c,a.format):"bitmapfont"===a.type?this.cache.addBitmapFont(a.key,a.url,a.data,c,a.atlasType,a.xSpacing,a.ySpacing):"json"===a.type?this.cache.addJSON(a.key,a.url,c):this.cache.addTextureAtlas(a.key,a.url,a.data,c,a.format),this.asyncComplete(a)},csvLoadComplete:function(a,b){var c=b.responseText;this.cache.addTilemap(a.key,a.url,c,a.format),this.asyncComplete(a)},xmlLoadComplete:function(a,b){var c=b.responseText,d=this.parseXml(c);if(!d){var e=b.responseType||b.contentType;return console.warn("Phaser.Loader - "+a.key+": invalid XML ("+e+")"),void this.asyncComplete(a,"invalid XML")}"bitmapfont"===a.type?this.cache.addBitmapFont(a.key,a.url,a.data,d,a.atlasType,a.xSpacing,a.ySpacing):"textureatlas"===a.type?this.cache.addTextureAtlas(a.key,a.url,a.data,d,a.format):"xml"===a.type&&this.cache.addXML(a.key,a.url,d),this.asyncComplete(a)},parseXml:function(a){var b;try{if(window.DOMParser){var c=new DOMParser;b=c.parseFromString(a,"text/xml")}else b=new ActiveXObject("Microsoft.XMLDOM"),b.async="false",b.loadXML(a)}catch(d){b=null}return b&&b.documentElement&&!b.getElementsByTagName("parsererror").length?b:null},updateProgress:function(){this.preloadSprite&&(0===this.preloadSprite.direction?this.preloadSprite.rect.width=Math.floor(this.preloadSprite.width/100*this.progress):this.preloadSprite.rect.height=Math.floor(this.preloadSprite.height/100*this.progress),this.preloadSprite.sprite?this.preloadSprite.sprite.updateCrop():this.preloadSprite=null)},totalLoadedFiles:function(){return this._loadedFileCount},totalQueuedFiles:function(){return this._totalFileCount-this._loadedFileCount},totalLoadedPacks:function(){return this._totalPackCount},totalQueuedPacks:function(){return this._totalPackCount-this._loadedPackCount}},Object.defineProperty(c.Loader.prototype,"progressFloat",{get:function(){var a=this._loadedFileCount/this._totalFileCount*100;return c.Math.clamp(a||0,0,100)}}),Object.defineProperty(c.Loader.prototype,"progress",{get:function(){return Math.round(this.progressFloat)}}),c.Loader.prototype.constructor=c.Loader,c.LoaderParser={bitmapFont:function(a,b,c,d){return this.xmlBitmapFont(a,b,c,d)},xmlBitmapFont:function(a,b,c,d){var e={},f=a.getElementsByTagName("info")[0],g=a.getElementsByTagName("common")[0];e.font=f.getAttribute("face"),e.size=parseInt(f.getAttribute("size"),10),e.lineHeight=parseInt(g.getAttribute("lineHeight"),10)+d,e.chars={};for(var h=a.getElementsByTagName("char"),i=0;i=this.durationMS&&(this.usingWebAudio?this.loop?(this.onLoop.dispatch(this),""===this.currentMarker?(this.currentTime=0,this.startTime=this.game.time.time):(this.onMarkerComplete.dispatch(this.currentMarker,this),this.play(this.currentMarker,0,this.volume,!0,!0))):""!==this.currentMarker&&this.stop():this.loop?(this.onLoop.dispatch(this),this.play(this.currentMarker,0,this.volume,!0,!0)):this.stop()))},loopFull:function(a){this.play(null,0,a,!0)},play:function(a,b,c,d,e){if((void 0===a||a===!1||null===a)&&(a=""),void 0===e&&(e=!0),this.isPlaying&&!this.allowMultiple&&!e&&!this.override)return this;if(this._sound&&this.isPlaying&&!this.allowMultiple&&(this.override||e))if(this.usingWebAudio)if(this._sound.disconnect(this.externalNode?this.externalNode:this.gainNode),void 0===this._sound.stop)this._sound.noteOff(0);else try{this._sound.stop(0)}catch(f){}else this.usingAudioTag&&(this._sound.pause(),this._sound.currentTime=0);if(""===a&&Object.keys(this.markers).length>0)return this;if(""!==a){if(this.currentMarker=a,!this.markers[a])return this;this.position=this.markers[a].start,this.volume=this.markers[a].volume,this.loop=this.markers[a].loop,this.duration=this.markers[a].duration,this.durationMS=this.markers[a].durationMS,"undefined"!=typeof c&&(this.volume=c),"undefined"!=typeof d&&(this.loop=d),this._tempMarker=a,this._tempPosition=this.position,this._tempVolume=this.volume,this._tempLoop=this.loop}else b=b||0,void 0===c&&(c=this._volume),void 0===d&&(d=this.loop),this.position=b,this.volume=c,this.loop=d,this.duration=0,this.durationMS=0,this._tempMarker=a,this._tempPosition=b,this._tempVolume=c,this._tempLoop=d;return this.usingWebAudio?this.game.cache.isSoundDecoded(this.key)?(this._sound=this.context.createBufferSource(),this._sound.connect(this.externalNode?this.externalNode:this.gainNode),this._buffer=this.game.cache.getSoundData(this.key),this._sound.buffer=this._buffer,this.loop&&""===a&&(this._sound.loop=!0),this.loop||""!==a||(this._sound.onended=this.onEndedHandler.bind(this)),this.totalDuration=this._sound.buffer.duration,0===this.duration&&(this.duration=this.totalDuration,this.durationMS=Math.ceil(1e3*this.totalDuration)),void 0===this._sound.start?this._sound.noteGrainOn(0,this.position,this.duration):this.loop&&""===a?this._sound.start(0,0):this._sound.start(0,this.position,this.duration),this.isPlaying=!0,this.startTime=this.game.time.time,this.currentTime=0,this.stopTime=this.startTime+this.durationMS,this.onPlay.dispatch(this)):(this.pendingPlayback=!0,this.game.cache.getSound(this.key)&&this.game.cache.getSound(this.key).isDecoding===!1&&this.game.sound.decode(this.key,this)):this.game.cache.getSound(this.key)&&this.game.cache.getSound(this.key).locked?(this.game.cache.reloadSound(this.key),this.pendingPlayback=!0):this._sound&&(this.game.device.cocoonJS||4===this._sound.readyState)?(this._sound.play(),this.totalDuration=this._sound.duration,0===this.duration&&(this.duration=this.totalDuration,this.durationMS=1e3*this.totalDuration),this._sound.currentTime=this.position,this._sound.muted=this._muted,this._sound.volume=this._muted?0:this._volume,this.isPlaying=!0,this.startTime=this.game.time.time,this.currentTime=0,this.stopTime=this.startTime+this.durationMS,this.onPlay.dispatch(this)):this.pendingPlayback=!0,this},restart:function(a,b,c,d){a=a||"",b=b||0,c=c||1,void 0===d&&(d=!1),this.play(a,b,c,d,!0)},pause:function(){this.isPlaying&&this._sound&&(this.paused=!0,this.pausedPosition=this.currentTime,this.pausedTime=this.game.time.time,this.onPause.dispatch(this),this.stop())},resume:function(){if(this.paused&&this._sound){if(this.usingWebAudio){var a=this.position+this.pausedPosition/1e3;this._sound=this.context.createBufferSource(),this._sound.buffer=this._buffer,this._sound.connect(this.externalNode?this.externalNode:this.gainNode),this.loop&&(this._sound.loop=!0),this.loop||""!==this.currentMarker||(this._sound.onended=this.onEndedHandler.bind(this));var b=this.duration-this.pausedPosition/1e3;void 0===this._sound.start?this._sound.noteGrainOn(0,a,b):this.loop&&this.game.device.chrome?42===this.game.device.chromeVersion?this._sound.start(0):this._sound.start(0,a):this._sound.start(0,a,b)}else this._sound.play();this.isPlaying=!0,this.paused=!1,this.startTime+=this.game.time.time-this.pausedTime,this.onResume.dispatch(this)}},stop:function(){if(this.isPlaying&&this._sound)if(this.usingWebAudio)if(this._sound.disconnect(this.externalNode?this.externalNode:this.gainNode),void 0===this._sound.stop)this._sound.noteOff(0);else try{this._sound.stop(0)}catch(a){}else this.usingAudioTag&&(this._sound.pause(),this._sound.currentTime=0);this.pendingPlayback=!1,this.isPlaying=!1;var b=this.currentMarker;""!==this.currentMarker&&this.onMarkerComplete.dispatch(this.currentMarker,this),this.currentMarker="",null!==this.fadeTween&&this.fadeTween.stop(),this.paused||this.onStop.dispatch(this,b)},fadeIn:function(a,b,c){void 0===b&&(b=!1),void 0===c&&(c=this.currentMarker),this.paused||(this.play(c,0,0,b),this.fadeTo(a,1))},fadeOut:function(a){this.fadeTo(a,0)},fadeTo:function(a,b){if(this.isPlaying&&!this.paused&&b!==this.volume){if(void 0===a&&(a=1e3),void 0===b)return void console.warn("Phaser.Sound.fadeTo: No Volume Specified.");this.fadeTween=this.game.add.tween(this).to({volume:b},a,c.Easing.Linear.None,!0),this.fadeTween.onComplete.add(this.fadeComplete,this)}},fadeComplete:function(){this.onFadeComplete.dispatch(this,this.volume),0===this.volume&&this.stop()},destroy:function(a){void 0===a&&(a=!0),this.stop(),a?this.game.sound.remove(this):(this.markers={},this.context=null,this._buffer=null,this.externalNode=null,this.onDecoded.dispose(),this.onPlay.dispose(),this.onPause.dispose(),this.onResume.dispose(),this.onLoop.dispose(),this.onStop.dispose(),this.onMute.dispose(),this.onMarkerComplete.dispose())}},c.Sound.prototype.constructor=c.Sound,Object.defineProperty(c.Sound.prototype,"isDecoding",{get:function(){return this.game.cache.getSound(this.key).isDecoding}}),Object.defineProperty(c.Sound.prototype,"isDecoded",{get:function(){return this.game.cache.isSoundDecoded(this.key)}}),Object.defineProperty(c.Sound.prototype,"mute",{get:function(){return this._muted||this.game.sound.mute},set:function(a){a=a||!1,a!==this._muted&&(a?(this._muted=!0,this._muteVolume=this._tempVolume,this.usingWebAudio?this.gainNode.gain.value=0:this.usingAudioTag&&this._sound&&(this._sound.volume=0)):(this._muted=!1,this.usingWebAudio?this.gainNode.gain.value=this._muteVolume:this.usingAudioTag&&this._sound&&(this._sound.volume=this._muteVolume)),this.onMute.dispatch(this))}}),Object.defineProperty(c.Sound.prototype,"volume",{get:function(){return this._volume},set:function(a){return this.game.device.firefox&&this.usingAudioTag&&(a=this.game.math.clamp(a,0,1)),this._muted?void(this._muteVolume=a):(this._tempVolume=a,this._volume=a,void(this.usingWebAudio?this.gainNode.gain.value=a:this.usingAudioTag&&this._sound&&(this._sound.volume=a)))}}),c.SoundManager=function(a){this.game=a,this.onSoundDecode=new c.Signal,this.onVolumeChange=new c.Signal,this.onMute=new c.Signal,this.onUnMute=new c.Signal,this.context=null,this.usingWebAudio=!1,this.usingAudioTag=!1,this.noAudio=!1,this.connectToMaster=!0,this.touchLocked=!1,this.channels=32,this._codeMuted=!1,this._muted=!1,this._unlockSource=null,this._volume=1,this._sounds=[],this._watchList=new c.ArraySet,this._watching=!1,this._watchCallback=null,this._watchContext=null},c.SoundManager.prototype={boot:function(){if(this.game.device.iOS&&this.game.device.webAudio===!1&&(this.channels=1),window.PhaserGlobal){if(window.PhaserGlobal.disableAudio===!0)return this.noAudio=!0,void(this.touchLocked=!1);if(window.PhaserGlobal.disableWebAudio===!0)return this.usingAudioTag=!0,void(this.touchLocked=!1)}if(window.PhaserGlobal&&window.PhaserGlobal.audioContext)this.context=window.PhaserGlobal.audioContext;else if(window.AudioContext)try{this.context=new window.AudioContext}catch(a){this.context=null,this.usingWebAudio=!1,this.touchLocked=!1}else if(window.webkitAudioContext)try{this.context=new window.webkitAudioContext}catch(a){this.context=null,this.usingWebAudio=!1,this.touchLocked=!1}if(null===this.context){if(void 0===window.Audio)return void(this.noAudio=!0);this.usingAudioTag=!0}else this.usingWebAudio=!0,this.masterGain=void 0===this.context.createGain?this.context.createGainNode():this.context.createGain(),this.masterGain.gain.value=1,this.masterGain.connect(this.context.destination);this.noAudio||(!this.game.device.cocoonJS&&this.game.device.iOS||window.PhaserGlobal&&window.PhaserGlobal.fakeiOSTouchLock)&&this.setTouchLock()},setTouchLock:function(){this.game.input.touch.addTouchLockCallback(this.unlock,this),this.touchLocked=!0},unlock:function(){if(this.noAudio||!this.touchLocked||null!==this._unlockSource)return!0;if(this.usingAudioTag)this.touchLocked=!1,this._unlockSource=null;else if(this.usingWebAudio){var a=this.context.createBuffer(1,1,22050);this._unlockSource=this.context.createBufferSource(),this._unlockSource.buffer=a,this._unlockSource.connect(this.context.destination),void 0===this._unlockSource.start?this._unlockSource.noteOn(0):this._unlockSource.start(0)}return!0},stopAll:function(){if(!this.noAudio)for(var a=0;aa?a=0:a>1&&(a=1),this._volume!==a){if(this._volume=a,this.usingWebAudio)this.masterGain.gain.value=a;else for(var b=0;b-1},reset:function(){this.list.length=0},remove:function(a){var b=this.list.indexOf(a);return b>-1?(this.list.splice(b,1),a):void 0},setAll:function(a,b){for(var c=this.list.length;c--;)this.list[c]&&(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)},removeAll:function(a){void 0===a&&(a=!1);for(var b=this.list.length;b--;)if(this.list[b]){var c=this.remove(this.list[b]);a&&c.destroy()}this.position=0,this.list=[]}},Object.defineProperty(c.ArraySet.prototype,"total",{get:function(){return this.list.length}}),Object.defineProperty(c.ArraySet.prototype,"first",{get:function(){return this.position=0,this.list.length>0?this.list[0]:null}}),Object.defineProperty(c.ArraySet.prototype,"next",{get:function(){return this.position0;b--){var c=Math.floor(Math.random()*(b+1)),d=a[b];a[b]=a[c],a[c]=d}return a},transposeMatrix:function(a){for(var b=a.length,c=a[0].length,d=new Array(c),e=0;c>e;e++){d[e]=new Array(b);for(var f=b-1;f>-1;f--)d[e][f]=a[f][e]}return d},rotateMatrix:function(a,b){if("string"!=typeof b&&(b=(b%360+360)%360),90===b||-270===b||"rotateLeft"===b)a=c.ArrayUtils.transposeMatrix(a),a=a.reverse();else if(-90===b||270===b||"rotateRight"===b)a=a.reverse(),a=c.ArrayUtils.transposeMatrix(a);else if(180===Math.abs(b)||"rotate180"===b){for(var d=0;d=e-a?e:d},rotate:function(a){var b=a.shift();return a.push(b),b},numberArray:function(a,b){for(var c=[],d=a;b>=d;d++)c.push(d);return c},numberArrayStep:function(a,b,d){a=+a||0;var e=typeof b;"number"!==e&&"string"!==e||!d||d[b]!==a||(b=d=null),d=null==d?1:+d||0,null===b?(b=a,a=0):b=+b||0;for(var f=-1,g=Math.max(c.Math.roundAwayFromZero((b-a)/(d||1)),0),h=new Array(g);++f>>0:(a<<24|b<<16|d<<8|e)>>>0},unpackPixel:function(a,b,d,e){return(void 0===b||null===b)&&(b=c.Color.createColor()),(void 0===d||null===d)&&(d=!1),(void 0===e||null===e)&&(e=!1),c.Device.LITTLE_ENDIAN?(b.a=(4278190080&a)>>>24,b.b=(16711680&a)>>>16,b.g=(65280&a)>>>8,b.r=255&a):(b.r=(4278190080&a)>>>24,b.g=(16711680&a)>>>16,b.b=(65280&a)>>>8,b.a=255&a),b.color=a,b.rgba="rgba("+b.r+","+b.g+","+b.b+","+b.a/255+")",d&&c.Color.RGBtoHSL(b.r,b.g,b.b,b),e&&c.Color.RGBtoHSV(b.r,b.g,b.b,b),b},fromRGBA:function(a,b){return b||(b=c.Color.createColor()),b.r=(4278190080&a)>>>24,b.g=(16711680&a)>>>16,b.b=(65280&a)>>>8,b.a=255&a,b.rgba="rgba("+b.r+","+b.g+","+b.b+","+b.a+")",b},toRGBA:function(a,b,c,d){return a<<24|b<<16|c<<8|d},RGBtoHSL:function(a,b,d,e){e||(e=c.Color.createColor(a,b,d,1)),a/=255,b/=255,d/=255;var f=Math.min(a,b,d),g=Math.max(a,b,d);if(e.h=0,e.s=0,e.l=(g+f)/2,g!==f){var h=g-f;e.s=e.l>.5?h/(2-g-f):h/(g+f),g===a?e.h=(b-d)/h+(d>b?6:0):g===b?e.h=(d-a)/h+2:g===d&&(e.h=(a-b)/h+4),e.h/=6}return e},HSLtoRGB:function(a,b,d,e){if(e?(e.r=d,e.g=d,e.b=d):e=c.Color.createColor(d,d,d),0!==b){var f=.5>d?d*(1+b):d+b-d*b,g=2*d-f;e.r=c.Color.hueToColor(g,f,a+1/3),e.g=c.Color.hueToColor(g,f,a),e.b=c.Color.hueToColor(g,f,a-1/3)}return e.r=Math.floor(255*e.r|0),e.g=Math.floor(255*e.g|0),e.b=Math.floor(255*e.b|0),c.Color.updateColor(e),e},RGBtoHSV:function(a,b,d,e){e||(e=c.Color.createColor(a,b,d,255)),a/=255,b/=255,d/=255;var f=Math.min(a,b,d),g=Math.max(a,b,d),h=g-f;return e.h=0,e.s=0===g?0:h/g,e.v=g,g!==f&&(g===a?e.h=(b-d)/h+(d>b?6:0):g===b?e.h=(d-a)/h+2:g===d&&(e.h=(a-b)/h+4),e.h/=6),e},HSVtoRGB:function(a,b,d,e){void 0===e&&(e=c.Color.createColor(0,0,0,1,a,b,0,d));var f,g,h,i=Math.floor(6*a),j=6*a-i,k=d*(1-b),l=d*(1-j*b),m=d*(1-(1-j)*b);switch(i%6){case 0:f=d,g=m,h=k;break;case 1:f=l,g=d,h=k;break;case 2:f=k,g=d,h=m;break;case 3:f=k,g=l,h=d;break;case 4:f=m,g=k,h=d;break;case 5:f=d,g=k,h=l}return e.r=Math.floor(255*f),e.g=Math.floor(255*g),e.b=Math.floor(255*h),c.Color.updateColor(e),e},hueToColor:function(a,b,c){return 0>c&&(c+=1),c>1&&(c-=1),1/6>c?a+6*(b-a)*c:.5>c?b:2/3>c?a+(b-a)*(2/3-c)*6:a},createColor:function(a,b,d,e,f,g,h,i){var j={r:a||0,g:b||0,b:d||0,a:e||1,h:f||0,s:g||0,l:h||0,v:i||0,color:0,color32:0,rgba:""};return c.Color.updateColor(j)},updateColor:function(a){return a.rgba="rgba("+a.r.toString()+","+a.g.toString()+","+a.b.toString()+","+a.a.toString()+")",a.color=c.Color.getColor(a.r,a.g,a.b),a.color32=c.Color.getColor32(a.a,a.r,a.g,a.b),a},getColor32:function(a,b,c,d){return a<<24|b<<16|c<<8|d},getColor:function(a,b,c){return a<<16|b<<8|c},RGBtoString:function(a,b,d,e,f){return void 0===e&&(e=255),void 0===f&&(f="#"),"#"===f?"#"+((1<<24)+(a<<16)+(b<<8)+d).toString(16).slice(1):"0x"+c.Color.componentToHex(e)+c.Color.componentToHex(a)+c.Color.componentToHex(b)+c.Color.componentToHex(d)},hexToRGB:function(a){var b=c.Color.hexToColor(a);return b?c.Color.getColor32(b.a,b.r,b.g,b.b):void 0},hexToColor:function(a,b){a=a.replace(/^(?:#|0x)?([a-f\d])([a-f\d])([a-f\d])$/i,function(a,b,c,d){return b+b+c+c+d+d});var d=/^(?:#|0x)?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i.exec(a);if(d){var e=parseInt(d[1],16),f=parseInt(d[2],16),g=parseInt(d[3],16);b?(b.r=e,b.g=f,b.b=g):b=c.Color.createColor(e,f,g)}return b},webToColor:function(a,b){b||(b=c.Color.createColor());var d=/^rgba?\(\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d+)\s*(?:,\s*(\d+(?:\.\d+)?))?\s*\)$/.exec(a);return d&&(b.r=parseInt(d[1],10),b.g=parseInt(d[2],10),b.b=parseInt(d[3],10),b.a=void 0!==d[4]?parseFloat(d[4]):1,c.Color.updateColor(b)),b},valueToColor:function(a,b){if(b||(b=c.Color.createColor()),"string"==typeof a)return 0===a.indexOf("rgb")?c.Color.webToColor(a,b):(b.a=1,c.Color.hexToColor(a,b));if("number"==typeof a){var d=c.Color.getRGB(a);return b.r=d.r,b.g=d.g,b.b=d.b,b.a=d.a/255,b}return b},componentToHex:function(a){var b=a.toString(16);return 1==b.length?"0"+b:b},HSVColorWheel:function(a,b){void 0===a&&(a=1),void 0===b&&(b=1);for(var d=[],e=0;359>=e;e++)d.push(c.Color.HSVtoRGB(e/359,a,b));return d},HSLColorWheel:function(a,b){void 0===a&&(a=.5),void 0===b&&(b=.5);for(var d=[],e=0;359>=e;e++)d.push(c.Color.HSLtoRGB(e/359,a,b));return d},interpolateColor:function(a,b,d,e,f){void 0===f&&(f=255);var g=c.Color.getRGB(a),h=c.Color.getRGB(b),i=(h.red-g.red)*e/d+g.red,j=(h.green-g.green)*e/d+g.green,k=(h.blue-g.blue)*e/d+g.blue;return c.Color.getColor32(f,i,j,k)},interpolateColorWithRGB:function(a,b,d,e,f,g){var h=c.Color.getRGB(a),i=(b-h.red)*g/f+h.red,j=(d-h.green)*g/f+h.green,k=(e-h.blue)*g/f+h.blue;return c.Color.getColor(i,j,k)},interpolateRGB:function(a,b,d,e,f,g,h,i){var j=(e-a)*i/h+a,k=(f-b)*i/h+b,l=(g-d)*i/h+d;return c.Color.getColor(j,k,l)},getRandomColor:function(a,b,d){if(void 0===a&&(a=0),void 0===b&&(b=255),void 0===d&&(d=255),b>255||a>b)return c.Color.getColor(255,255,255);var e=a+Math.round(Math.random()*(b-a)),f=a+Math.round(Math.random()*(b-a)),g=a+Math.round(Math.random()*(b-a));return c.Color.getColor32(d,e,f,g)},getRGB:function(a){return a>16777215?{alpha:a>>>24,red:a>>16&255,green:a>>8&255,blue:255&a,a:a>>>24,r:a>>16&255,g:a>>8&255,b:255&a}:{alpha:255,red:a>>16&255,green:a>>8&255,blue:255&a,a:255,r:a>>16&255,g:a>>8&255,b:255&a}},getWebRGB:function(a){if("object"==typeof a)return"rgba("+a.r.toString()+","+a.g.toString()+","+a.b.toString()+","+(a.a/255).toString()+")";var b=c.Color.getRGB(a);return"rgba("+b.r.toString()+","+b.g.toString()+","+b.b.toString()+","+(b.a/255).toString()+")"},getAlpha:function(a){return a>>>24},getAlphaFloat:function(a){return(a>>>24)/255},getRed:function(a){return a>>16&255},getGreen:function(a){return a>>8&255},getBlue:function(a){return 255&a},blendNormal:function(a){return a},blendLighten:function(a,b){return b>a?b:a},blendDarken:function(a,b){return b>a?a:b},blendMultiply:function(a,b){return a*b/255},blendAverage:function(a,b){return(a+b)/2},blendAdd:function(a,b){return Math.min(255,a+b)},blendSubtract:function(a,b){return Math.max(0,a+b-255)},blendDifference:function(a,b){return Math.abs(a-b)},blendNegation:function(a,b){return 255-Math.abs(255-a-b)},blendScreen:function(a,b){return 255-((255-a)*(255-b)>>8)},blendExclusion:function(a,b){return a+b-2*a*b/255},blendOverlay:function(a,b){return 128>b?2*a*b/255:255-2*(255-a)*(255-b)/255},blendSoftLight:function(a,b){return 128>b?2*((a>>1)+64)*(b/255):255-2*(255-((a>>1)+64))*(255-b)/255},blendHardLight:function(a,b){return c.Color.blendOverlay(b,a)},blendColorDodge:function(a,b){return 255===b?b:Math.min(255,(a<<8)/(255-b))},blendColorBurn:function(a,b){return 0===b?b:Math.max(0,255-(255-a<<8)/b)},blendLinearDodge:function(a,b){return c.Color.blendAdd(a,b)},blendLinearBurn:function(a,b){return c.Color.blendSubtract(a,b)},blendLinearLight:function(a,b){return 128>b?c.Color.blendLinearBurn(a,2*b):c.Color.blendLinearDodge(a,2*(b-128))},blendVividLight:function(a,b){return 128>b?c.Color.blendColorBurn(a,2*b):c.Color.blendColorDodge(a,2*(b-128))},blendPinLight:function(a,b){return 128>b?c.Color.blendDarken(a,2*b):c.Color.blendLighten(a,2*(b-128))},blendHardMix:function(a,b){return c.Color.blendVividLight(a,b)<128?0:255},blendReflect:function(a,b){return 255===b?b:Math.min(255,a*a/(255-b))},blendGlow:function(a,b){return c.Color.blendReflect(b,a)},blendPhoenix:function(a,b){return Math.min(a,b)-Math.max(a,b)+255}},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.Physics=function(a,b){b=b||{},this.game=a,this.config=b,this.arcade=null,this.p2=null,this.ninja=null,this.box2d=null,this.chipmunk=null,this.matter=null,this.parseConfig()},c.Physics.ARCADE=0,c.Physics.P2JS=1,c.Physics.NINJA=2,c.Physics.BOX2D=3,c.Physics.CHIPMUNK=4,c.Physics.MATTERJS=5,c.Physics.prototype={parseConfig:function(){this.config.hasOwnProperty("arcade")&&this.config.arcade!==!0||!c.Physics.hasOwnProperty("Arcade")||(this.arcade=new c.Physics.Arcade(this.game)),this.config.hasOwnProperty("ninja")&&this.config.ninja===!0&&c.Physics.hasOwnProperty("Ninja")&&(this.ninja=new c.Physics.Ninja(this.game)),this.config.hasOwnProperty("p2")&&this.config.p2===!0&&c.Physics.hasOwnProperty("P2")&&(this.p2=new c.Physics.P2(this.game,this.config)),this.config.hasOwnProperty("box2d")&&this.config.box2d===!0&&c.Physics.hasOwnProperty("BOX2D")&&(this.box2d=new c.Physics.BOX2D(this.game,this.config)),this.config.hasOwnProperty("matter")&&this.config.matter===!0&&c.Physics.hasOwnProperty("Matter")&&(this.matter=new c.Physics.Matter(this.game,this.config))},startSystem:function(a){a===c.Physics.ARCADE?this.arcade=new c.Physics.Arcade(this.game):a===c.Physics.P2JS?null===this.p2?this.p2=new c.Physics.P2(this.game,this.config):this.p2.reset():a===c.Physics.NINJA?this.ninja=new c.Physics.Ninja(this.game):a===c.Physics.BOX2D?null===this.box2d?this.box2d=new c.Physics.Box2D(this.game,this.config):this.box2d.reset():a===c.Physics.MATTERJS&&(null===this.matter?this.matter=new c.Physics.Matter(this.game,this.config):this.matter.reset())},enable:function(a,b,d){void 0===b&&(b=c.Physics.ARCADE),void 0===d&&(d=!1),b===c.Physics.ARCADE?this.arcade.enable(a):b===c.Physics.P2JS&&this.p2?this.p2.enable(a,d):b===c.Physics.NINJA&&this.ninja?this.ninja.enableAABB(a):b===c.Physics.BOX2D&&this.box2d?this.box2d.enable(a):b===c.Physics.MATTERJS&&this.matter&&this.matter.enable(a)},preUpdate:function(){this.p2&&this.p2.preUpdate(),this.box2d&&this.box2d.preUpdate(),this.matter&&this.matter.preUpdate()},update:function(){this.p2&&this.p2.update(),this.box2d&&this.box2d.update(),this.matter&&this.matter.update()},setBoundsToWorld:function(){this.arcade&&this.arcade.setBoundsToWorld(),this.ninja&&this.ninja.setBoundsToWorld(),this.p2&&this.p2.setBoundsToWorld(),this.box2d&&this.box2d.setBoundsToWorld(),this.matter&&this.matter.setBoundsToWorld()},clear:function(){this.p2&&this.p2.clear(),this.box2d&&this.box2d.clear(),this.matter&&this.matter.clear()},reset:function(){this.p2&&this.p2.reset(),this.box2d&&this.box2d.reset(),this.matter&&this.matter.reset()},destroy:function(){this.p2&&this.p2.destroy(),this.box2d&&this.box2d.destroy(),this.matter&&this.matter.destroy(),this.arcade=null,this.ninja=null,this.p2=null,this.box2d=null,this.matter=null}},c.Physics.prototype.constructor=c.Physics,c.Physics.Arcade=function(a){this.game=a,this.gravity=new c.Point,this.bounds=new c.Rectangle(0,0,a.world.width,a.world.height),this.checkCollision={up:!0,down:!0,left:!0,right:!0},this.maxObjects=10,this.maxLevels=4,this.OVERLAP_BIAS=4,this.forceX=!1,this.sortDirection=c.Physics.Arcade.LEFT_RIGHT,this.skipQuadTree=!0,this.isPaused=!1,this.quadTree=new c.QuadTree(this.game.world.bounds.x,this.game.world.bounds.y,this.game.world.bounds.width,this.game.world.bounds.height,this.maxObjects,this.maxLevels),this._total=0,this.setBoundsToWorld()},c.Physics.Arcade.prototype.constructor=c.Physics.Arcade,c.Physics.Arcade.SORT_NONE=0,c.Physics.Arcade.LEFT_RIGHT=1,c.Physics.Arcade.RIGHT_LEFT=2,c.Physics.Arcade.TOP_BOTTOM=3,c.Physics.Arcade.BOTTOM_TOP=4,c.Physics.Arcade.prototype={setBounds:function(a,b,c,d){this.bounds.setTo(a,b,c,d)},setBoundsToWorld:function(){this.bounds.copyFrom(this.game.world.bounds)},enable:function(a,b){void 0===b&&(b=!0);var d=1;if(Array.isArray(a))for(d=a.length;d--;)a[d]instanceof c.Group?this.enable(a[d].children,b):(this.enableBody(a[d]),b&&a[d].hasOwnProperty("children")&&a[d].children.length>0&&this.enable(a[d],!0));else a instanceof c.Group?this.enable(a.children,b):(this.enableBody(a),b&&a.hasOwnProperty("children")&&a.children.length>0&&this.enable(a.children,!0))},enableBody:function(a){a.hasOwnProperty("body")&&null===a.body&&(a.body=new c.Physics.Arcade.Body(a),a.parent&&a.parent instanceof c.Group&&a.parent.addToHash(a))},updateMotion:function(a){var b=this.computeVelocity(0,a,a.angularVelocity,a.angularAcceleration,a.angularDrag,a.maxAngular)-a.angularVelocity;a.angularVelocity+=b,a.rotation+=a.angularVelocity*this.game.time.physicsElapsed,a.velocity.x=this.computeVelocity(1,a,a.velocity.x,a.acceleration.x,a.drag.x,a.maxVelocity.x),a.velocity.y=this.computeVelocity(2,a,a.velocity.y,a.acceleration.y,a.drag.y,a.maxVelocity.y)},computeVelocity:function(a,b,c,d,e,f){return void 0===f&&(f=1e4),1===a&&b.allowGravity?c+=(this.gravity.x+b.gravity.x)*this.game.time.physicsElapsed:2===a&&b.allowGravity&&(c+=(this.gravity.y+b.gravity.y)*this.game.time.physicsElapsed),d?c+=d*this.game.time.physicsElapsed:e&&(e*=this.game.time.physicsElapsed,c-e>0?c-=e:0>c+e?c+=e:c=0),c>f?c=f:-f>c&&(c=-f),c},overlap:function(a,b,c,d,e){if(c=c||null,d=d||null,e=e||c,this._total=0,!Array.isArray(a)&&Array.isArray(b))for(var f=0;f0},collide:function(a,b,c,d,e){if(c=c||null,d=d||null,e=e||c,this._total=0,!Array.isArray(a)&&Array.isArray(b))for(var f=0;f0},sortLeftRight:function(a,b){return a.body&&b.body?a.body.x-b.body.x:0},sortRightLeft:function(a,b){return a.body&&b.body?b.body.x-a.body.x:0},sortTopBottom:function(a,b){return a.body&&b.body?a.body.y-b.body.y:0},sortBottomTop:function(a,b){return a.body&&b.body?b.body.y-a.body.y:0},sort:function(a,b){null!==a.physicsSortDirection?b=a.physicsSortDirection:void 0===b&&(b=this.sortDirection),b===c.Physics.Arcade.LEFT_RIGHT?a.hash.sort(this.sortLeftRight):b===c.Physics.Arcade.RIGHT_LEFT?a.hash.sort(this.sortRightLeft):b===c.Physics.Arcade.TOP_BOTTOM?a.hash.sort(this.sortTopBottom):b===c.Physics.Arcade.BOTTOM_TOP&&a.hash.sort(this.sortBottomTop)},collideHandler:function(a,b,d,e,f,g){return void 0===b&&a.physicsType===c.GROUP?(this.sort(a),void this.collideGroupVsSelf(a,d,e,f,g)):void(a&&b&&a.exists&&b.exists&&(this.sortDirection!==c.Physics.Arcade.SORT_NONE&&(a.physicsType===c.GROUP&&this.sort(a),b.physicsType===c.GROUP&&this.sort(b)),a.physicsType===c.SPRITE?b.physicsType===c.SPRITE?this.collideSpriteVsSprite(a,b,d,e,f,g):b.physicsType===c.GROUP?this.collideSpriteVsGroup(a,b,d,e,f,g):b.physicsType===c.TILEMAPLAYER&&this.collideSpriteVsTilemapLayer(a,b,d,e,f,g):a.physicsType===c.GROUP?b.physicsType===c.SPRITE?this.collideSpriteVsGroup(b,a,d,e,f,g):b.physicsType===c.GROUP?this.collideGroupVsGroup(a,b,d,e,f,g):b.physicsType===c.TILEMAPLAYER&&this.collideGroupVsTilemapLayer(a,b,d,e,f,g):a.physicsType===c.TILEMAPLAYER&&(b.physicsType===c.SPRITE?this.collideSpriteVsTilemapLayer(b,a,d,e,f,g):b.physicsType===c.GROUP&&this.collideGroupVsTilemapLayer(b,a,d,e,f,g))))},collideSpriteVsSprite:function(a,b,c,d,e,f){return a.body&&b.body?(this.separate(a.body,b.body,d,e,f)&&(c&&c.call(e,a,b),this._total++),!0):!1},collideSpriteVsGroup:function(a,b,d,e,f,g){if(0!==b.length&&a.body){var h;if(this.skipQuadTree||a.body.skipQuadTree){for(var i=0;ih.right)break;if(h.x>a.body.right)continue}else if(this.sortDirection===c.Physics.Arcade.TOP_BOTTOM){if(a.body.bottomh.bottom)break;if(h.y>a.body.bottom)continue}this.collideSpriteVsSprite(a,b.hash[i],d,e,f,g)}}else{this.quadTree.clear(),this.quadTree.reset(this.game.world.bounds.x,this.game.world.bounds.y,this.game.world.bounds.width,this.game.world.bounds.height,this.maxObjects,this.maxLevels),this.quadTree.populate(b);for(var j=this.quadTree.retrieve(a),i=0;ij.body.right)continue;if(j.body.x>h.body.right)break}else if(this.sortDirection===c.Physics.Arcade.TOP_BOTTOM){if(h.body.bottomj.body.bottom)continue;if(j.body.y>h.body.bottom)break}this.collideSpriteVsSprite(h,j,b,d,e,f)}},collideGroupVsGroup:function(a,b,d,e,f,g){if(0!==a.length&&0!==b.length)for(var h=0;h=b.right?!1:a.position.y>=b.bottom?!1:!0},separateX:function(a,b,c){if(a.immovable&&b.immovable)return!1;var d=0;if(this.intersects(a,b)){var e=a.deltaAbsX()+b.deltaAbsX()+this.OVERLAP_BIAS;if(0===a.deltaX()&&0===b.deltaX()?(a.embedded=!0,b.embedded=!0):a.deltaX()>b.deltaX()?(d=a.right-b.x,d>e||a.checkCollision.right===!1||b.checkCollision.left===!1?d=0:(a.touching.none=!1,a.touching.right=!0,b.touching.none=!1,b.touching.left=!0)):a.deltaX()e||a.checkCollision.left===!1||b.checkCollision.right===!1?d=0:(a.touching.none=!1,a.touching.left=!0,b.touching.none=!1,b.touching.right=!0)),a.overlapX=d,b.overlapX=d,0!==d){if(c||a.customSeparateX||b.customSeparateX)return!0;var f=a.velocity.x,g=b.velocity.x;if(a.immovable||b.immovable)a.immovable?b.immovable||(b.x+=d,b.velocity.x=f-g*b.bounce.x,a.moves&&(b.y+=(a.y-a.prev.y)*a.friction.y)):(a.x=a.x-d,a.velocity.x=g-f*a.bounce.x,b.moves&&(a.y+=(b.y-b.prev.y)*b.friction.y));else{d*=.5,a.x=a.x-d,b.x+=d;var h=Math.sqrt(g*g*b.mass/a.mass)*(g>0?1:-1),i=Math.sqrt(f*f*a.mass/b.mass)*(f>0?1:-1),j=.5*(h+i);h-=j,i-=j,a.velocity.x=j+h*a.bounce.x,b.velocity.x=j+i*b.bounce.x}return!0}}return!1},separateY:function(a,b,c){if(a.immovable&&b.immovable)return!1;var d=0;if(this.intersects(a,b)){var e=a.deltaAbsY()+b.deltaAbsY()+this.OVERLAP_BIAS;if(0===a.deltaY()&&0===b.deltaY()?(a.embedded=!0,b.embedded=!0):a.deltaY()>b.deltaY()?(d=a.bottom-b.y,d>e||a.checkCollision.down===!1||b.checkCollision.up===!1?d=0:(a.touching.none=!1,a.touching.down=!0,b.touching.none=!1,b.touching.up=!0)):a.deltaY()e||a.checkCollision.up===!1||b.checkCollision.down===!1?d=0:(a.touching.none=!1,a.touching.up=!0,b.touching.none=!1,b.touching.down=!0)),a.overlapY=d,b.overlapY=d,0!==d){if(c||a.customSeparateY||b.customSeparateY)return!0;var f=a.velocity.y,g=b.velocity.y;if(a.immovable||b.immovable)a.immovable?b.immovable||(b.y+=d,b.velocity.y=f-g*b.bounce.y,a.moves&&(b.x+=(a.x-a.prev.x)*a.friction.x)):(a.y=a.y-d,a.velocity.y=g-f*a.bounce.y,b.moves&&(a.x+=(b.x-b.prev.x)*b.friction.x));else{d*=.5,a.y=a.y-d,b.y+=d;var h=Math.sqrt(g*g*b.mass/a.mass)*(g>0?1:-1),i=Math.sqrt(f*f*a.mass/b.mass)*(f>0?1:-1),j=.5*(h+i);h-=j,i-=j,a.velocity.y=j+h*a.bounce.y,b.velocity.y=j+i*b.bounce.y}return!0}}return!1},getObjectsUnderPointer:function(a,b,c,d){return 0!==b.length&&a.exists?this.getObjectsAtLocation(a.x,a.y,b,c,d,a):void 0},getObjectsAtLocation:function(a,b,d,e,f,g){this.quadTree.clear(),this.quadTree.reset(this.game.world.bounds.x,this.game.world.bounds.y,this.game.world.bounds.width,this.game.world.bounds.height,this.maxObjects,this.maxLevels),this.quadTree.populate(d);for(var h=new c.Rectangle(a,b,1,1),i=[],j=this.quadTree.retrieve(h),k=0;k0&&(c=this.distanceBetween(a,b)/(d/1e3)),a.body.velocity.x=Math.cos(e)*c,a.body.velocity.y=Math.sin(e)*c,e},moveToPointer:function(a,b,c,d){void 0===b&&(b=60),c=c||this.game.input.activePointer,void 0===d&&(d=0);var e=this.angleToPointer(a,c);return d>0&&(b=this.distanceToPointer(a,c)/(d/1e3)),a.body.velocity.x=Math.cos(e)*b,a.body.velocity.y=Math.sin(e)*b,e},moveToXY:function(a,b,c,d,e){void 0===d&&(d=60),void 0===e&&(e=0);var f=Math.atan2(c-a.y,b-a.x);return e>0&&(d=this.distanceToXY(a,b,c)/(e/1e3)),a.body.velocity.x=Math.cos(f)*d,a.body.velocity.y=Math.sin(f)*d,f},velocityFromAngle:function(a,b,d){return void 0===b&&(b=60),d=d||new c.Point,d.setTo(Math.cos(this.game.math.degToRad(a))*b,Math.sin(this.game.math.degToRad(a))*b)},velocityFromRotation:function(a,b,d){return void 0===b&&(b=60),d=d||new c.Point,d.setTo(Math.cos(a)*b,Math.sin(a)*b)},accelerationFromRotation:function(a,b,d){return void 0===b&&(b=60),d=d||new c.Point,d.setTo(Math.cos(a)*b,Math.sin(a)*b)},accelerateToObject:function(a,b,c,d,e){void 0===c&&(c=60),void 0===d&&(d=1e3),void 0===e&&(e=1e3);var f=this.angleBetween(a,b);return a.body.acceleration.setTo(Math.cos(f)*c,Math.sin(f)*c),a.body.maxVelocity.setTo(d,e),f},accelerateToPointer:function(a,b,c,d,e){void 0===c&&(c=60),void 0===b&&(b=this.game.input.activePointer),void 0===d&&(d=1e3),void 0===e&&(e=1e3);var f=this.angleToPointer(a,b);return a.body.acceleration.setTo(Math.cos(f)*c,Math.sin(f)*c),a.body.maxVelocity.setTo(d,e),f},accelerateToXY:function(a,b,c,d,e,f){void 0===d&&(d=60),void 0===e&&(e=1e3),void 0===f&&(f=1e3);var g=this.angleToXY(a,b,c);return a.body.acceleration.setTo(Math.cos(g)*d,Math.sin(g)*d),a.body.maxVelocity.setTo(e,f),g},distanceBetween:function(a,b){var c=a.x-b.x,d=a.y-b.y;return Math.sqrt(c*c+d*d)},distanceToXY:function(a,b,c){var d=a.x-b,e=a.y-c;return Math.sqrt(d*d+e*e)},distanceToPointer:function(a,b){b=b||this.game.input.activePointer;var c=a.x-b.worldX,d=a.y-b.worldY;return Math.sqrt(c*c+d*d)},angleBetween:function(a,b){var c=b.x-a.x,d=b.y-a.y;return Math.atan2(d,c)},angleToXY:function(a,b,c){var d=b-a.x,e=c-a.y;return Math.atan2(e,d)},angleToPointer:function(a,b){b=b||this.game.input.activePointer;var c=b.worldX-a.x,d=b.worldY-a.y;return Math.atan2(d,c)}},c.Physics.Arcade.Body=function(a){this.sprite=a,this.game=a.game,this.type=c.Physics.ARCADE,this.enable=!0,this.offset=new c.Point,this.position=new c.Point(a.x,a.y),this.prev=new c.Point(this.position.x,this.position.y),this.allowRotation=!0,this.rotation=a.rotation,this.preRotation=a.rotation,this.width=a.width,this.height=a.height,this.sourceWidth=a.width,this.sourceHeight=a.height,a.texture&&(this.sourceWidth=a.texture.frame.width,this.sourceHeight=a.texture.frame.height),this.halfWidth=Math.abs(a.width/2),this.halfHeight=Math.abs(a.height/2),this.center=new c.Point(a.x+this.halfWidth,a.y+this.halfHeight),this.velocity=new c.Point,this.newVelocity=new c.Point(0,0),this.deltaMax=new c.Point(0,0),this.acceleration=new c.Point,this.drag=new c.Point,this.allowGravity=!0,this.gravity=new c.Point(0,0),this.bounce=new c.Point,this.maxVelocity=new c.Point(1e4,1e4),this.friction=new c.Point(1,0),this.angularVelocity=0,this.angularAcceleration=0,this.angularDrag=0,this.maxAngular=1e3,this.mass=1,this.angle=0,this.speed=0,this.facing=c.NONE,this.immovable=!1,this.moves=!0,this.customSeparateX=!1,this.customSeparateY=!1,this.overlapX=0,this.overlapY=0,this.embedded=!1,this.collideWorldBounds=!1,this.checkCollision={none:!1,any:!0,up:!0,down:!0,left:!0,right:!0},this.touching={none:!0,up:!1,down:!1,left:!1,right:!1},this.wasTouching={none:!0,up:!1,down:!1,left:!1,right:!1},this.blocked={up:!1,down:!1,left:!1,right:!1},this.tilePadding=new c.Point,this.dirty=!1,this.skipQuadTree=!1,this.syncBounds=!1,this._reset=!0,this._sx=a.scale.x,this._sy=a.scale.y,this._dx=0,this._dy=0},c.Physics.Arcade.Body.prototype={updateBounds:function(){if(this.syncBounds){var a=this.sprite.getBounds();a.ceilAll(),(a.width!==this.width||a.height!==this.height)&&(this.width=a.width,this.height=a.height,this._reset=!0)}else{var b=Math.abs(this.sprite.scale.x),c=Math.abs(this.sprite.scale.y);(b!==this._sx||c!==this._sy)&&(this.width=this.sourceWidth*b,this.height=this.sourceHeight*c,this._sx=b,this._sy=c,this._reset=!0)}this._reset&&(this.halfWidth=Math.floor(this.width/2),this.halfHeight=Math.floor(this.height/2),this.center.setTo(this.position.x+this.halfWidth,this.position.y+this.halfHeight))},preUpdate:function(){this.enable&&!this.game.physics.arcade.isPaused&&(this.dirty=!0,this.wasTouching.none=this.touching.none,this.wasTouching.up=this.touching.up,this.wasTouching.down=this.touching.down,this.wasTouching.left=this.touching.left,this.wasTouching.right=this.touching.right,this.touching.none=!0,this.touching.up=!1,this.touching.down=!1,this.touching.left=!1,this.touching.right=!1,this.blocked.up=!1,this.blocked.down=!1,this.blocked.left=!1,this.blocked.right=!1,this.embedded=!1,this.updateBounds(),this.position.x=this.sprite.world.x-this.sprite.anchor.x*this.width+this.offset.x,this.position.y=this.sprite.world.y-this.sprite.anchor.y*this.height+this.offset.y,this.rotation=this.sprite.angle,this.preRotation=this.rotation,(this._reset||this.sprite.fresh)&&(this.prev.x=this.position.x,this.prev.y=this.position.y),this.moves&&(this.game.physics.arcade.updateMotion(this),this.newVelocity.set(this.velocity.x*this.game.time.physicsElapsed,this.velocity.y*this.game.time.physicsElapsed),this.position.x+=this.newVelocity.x,this.position.y+=this.newVelocity.y,(this.position.x!==this.prev.x||this.position.y!==this.prev.y)&&(this.speed=Math.sqrt(this.velocity.x*this.velocity.x+this.velocity.y*this.velocity.y),this.angle=Math.atan2(this.velocity.y,this.velocity.x)),this.collideWorldBounds&&this.checkWorldBounds()),this._dx=this.deltaX(),this._dy=this.deltaY(),this._reset=!1)},postUpdate:function(){this.enable&&this.dirty&&(this.dirty=!1,this.deltaX()<0?this.facing=c.LEFT:this.deltaX()>0&&(this.facing=c.RIGHT),this.deltaY()<0?this.facing=c.UP:this.deltaY()>0&&(this.facing=c.DOWN),this.moves&&(this._dx=this.deltaX(),this._dy=this.deltaY(),0!==this.deltaMax.x&&0!==this._dx&&(this._dx<0&&this._dx<-this.deltaMax.x?this._dx=-this.deltaMax.x:this._dx>0&&this._dx>this.deltaMax.x&&(this._dx=this.deltaMax.x)),0!==this.deltaMax.y&&0!==this._dy&&(this._dy<0&&this._dy<-this.deltaMax.y?this._dy=-this.deltaMax.y:this._dy>0&&this._dy>this.deltaMax.y&&(this._dy=this.deltaMax.y)),this.sprite.position.x+=this._dx,this.sprite.position.y+=this._dy,this._reset=!0),this.center.setTo(this.position.x+this.halfWidth,this.position.y+this.halfHeight),this.allowRotation&&(this.sprite.angle+=this.deltaZ()),this.prev.x=this.position.x,this.prev.y=this.position.y)},destroy:function(){this.sprite.parent&&this.sprite.parent instanceof c.Group&&this.sprite.parent.removeFromHash(this.sprite),this.sprite.body=null,this.sprite=null},checkWorldBounds:function(){var a=this.position,b=this.game.physics.arcade.bounds,c=this.game.physics.arcade.checkCollision;a.xb.right&&c.right&&(a.x=b.right-this.width,this.velocity.x*=-this.bounce.x,this.blocked.right=!0),a.yb.bottom&&c.down&&(a.y=b.bottom-this.height,this.velocity.y*=-this.bounce.y,this.blocked.down=!0) },setSize:function(a,b,c,d){void 0===c&&(c=this.offset.x),void 0===d&&(d=this.offset.y),this.sourceWidth=a,this.sourceHeight=b,this.width=this.sourceWidth*this._sx,this.height=this.sourceHeight*this._sy,this.halfWidth=Math.floor(this.width/2),this.halfHeight=Math.floor(this.height/2),this.offset.setTo(c,d),this.center.setTo(this.position.x+this.halfWidth,this.position.y+this.halfHeight)},reset:function(a,b){this.velocity.set(0),this.acceleration.set(0),this.speed=0,this.angularVelocity=0,this.angularAcceleration=0,this.position.x=a-this.sprite.anchor.x*this.width+this.offset.x,this.position.y=b-this.sprite.anchor.y*this.height+this.offset.y,this.prev.x=this.position.x,this.prev.y=this.position.y,this.rotation=this.sprite.angle,this.preRotation=this.rotation,this._sx=this.sprite.scale.x,this._sy=this.sprite.scale.y,this.center.setTo(this.position.x+this.halfWidth,this.position.y+this.halfHeight)},hitTest:function(a,b){return c.Rectangle.contains(this,a,b)},onFloor:function(){return this.blocked.down},onWall:function(){return this.blocked.left||this.blocked.right},deltaAbsX:function(){return this.deltaX()>0?this.deltaX():-this.deltaX()},deltaAbsY:function(){return this.deltaY()>0?this.deltaY():-this.deltaY()},deltaX:function(){return this.position.x-this.prev.x},deltaY:function(){return this.position.y-this.prev.y},deltaZ:function(){return this.rotation-this.preRotation}},Object.defineProperty(c.Physics.Arcade.Body.prototype,"bottom",{get:function(){return this.position.y+this.height}}),Object.defineProperty(c.Physics.Arcade.Body.prototype,"right",{get:function(){return this.position.x+this.width}}),Object.defineProperty(c.Physics.Arcade.Body.prototype,"x",{get:function(){return this.position.x},set:function(a){this.position.x=a}}),Object.defineProperty(c.Physics.Arcade.Body.prototype,"y",{get:function(){return this.position.y},set:function(a){this.position.y=a}}),c.Physics.Arcade.Body.render=function(a,b,c,d){void 0===d&&(d=!0),c=c||"rgba(0,255,0,0.4)",d?(a.fillStyle=c,a.fillRect(b.position.x-b.game.camera.x,b.position.y-b.game.camera.y,b.width,b.height)):(a.strokeStyle=c,a.strokeRect(b.position.x-b.game.camera.x,b.position.y-b.game.camera.y,b.width,b.height))},c.Physics.Arcade.Body.renderBodyInfo=function(a,b){a.line("x: "+b.x.toFixed(2),"y: "+b.y.toFixed(2),"width: "+b.width,"height: "+b.height),a.line("velocity x: "+b.velocity.x.toFixed(2),"y: "+b.velocity.y.toFixed(2),"deltaX: "+b._dx.toFixed(2),"deltaY: "+b._dy.toFixed(2)),a.line("acceleration x: "+b.acceleration.x.toFixed(2),"y: "+b.acceleration.y.toFixed(2),"speed: "+b.speed.toFixed(2),"angle: "+b.angle.toFixed(2)),a.line("gravity x: "+b.gravity.x,"y: "+b.gravity.y,"bounce x: "+b.bounce.x.toFixed(2),"y: "+b.bounce.y.toFixed(2)),a.line("touching left: "+b.touching.left,"right: "+b.touching.right,"up: "+b.touching.up,"down: "+b.touching.down),a.line("blocked left: "+b.blocked.left,"right: "+b.blocked.right,"up: "+b.blocked.up,"down: "+b.blocked.down)},c.Physics.Arcade.Body.prototype.constructor=c.Physics.Arcade.Body,c.Physics.Arcade.TilemapCollision=function(){},c.Physics.Arcade.TilemapCollision.prototype={TILE_BIAS:16,collideSpriteVsTilemapLayer:function(a,b,c,d,e,f){if(a.body){var g=b.getTiles(a.body.position.x-a.body.tilePadding.x,a.body.position.y-a.body.tilePadding.y,a.body.width+a.body.tilePadding.x,a.body.height+a.body.tilePadding.y,!1,!1);if(0!==g.length)for(var h=0;hb.deltaAbsY()?g=-1:b.deltaAbsX()g){if((c.faceLeft||c.faceRight)&&(e=this.tileCheckX(b,c),0!==e&&!c.intersects(b.position.x,b.position.y,b.right,b.bottom)))return!0;(c.faceTop||c.faceBottom)&&(f=this.tileCheckY(b,c))}else{if((c.faceTop||c.faceBottom)&&(f=this.tileCheckY(b,c),0!==f&&!c.intersects(b.position.x,b.position.y,b.right,b.bottom)))return!0;(c.faceLeft||c.faceRight)&&(e=this.tileCheckX(b,c))}return 0!==e||0!==f},tileCheckX:function(a,b){var c=0;return a.deltaX()<0&&!a.blocked.left&&b.collideRight&&a.checkCollision.left?b.faceRight&&a.x0&&!a.blocked.right&&b.collideLeft&&a.checkCollision.right&&b.faceLeft&&a.right>b.left&&(c=a.right-b.left,c>this.TILE_BIAS&&(c=0)),0!==c&&(a.customSeparateX?a.overlapX=c:this.processTileSeparationX(a,c)),c},tileCheckY:function(a,b){var c=0;return a.deltaY()<0&&!a.blocked.up&&b.collideDown&&a.checkCollision.up?b.faceBottom&&a.y0&&!a.blocked.down&&b.collideUp&&a.checkCollision.down&&b.faceTop&&a.bottom>b.top&&(c=a.bottom-b.top,c>this.TILE_BIAS&&(c=0)),0!==c&&(a.customSeparateY?a.overlapY=c:this.processTileSeparationY(a,c)),c},processTileSeparationX:function(a,b){0>b?a.blocked.left=!0:b>0&&(a.blocked.right=!0),a.position.x-=b,a.velocity.x=0===a.bounce.x?0:-a.velocity.x*a.bounce.x},processTileSeparationY:function(a,b){0>b?a.blocked.up=!0:b>0&&(a.blocked.down=!0),a.position.y-=b,a.velocity.y=0===a.bounce.y?0:-a.velocity.y*a.bounce.y}},c.Utils.mixinPrototype(c.Physics.Arcade.prototype,c.Physics.Arcade.TilemapCollision.prototype),c.ImageCollection=function(a,b,c,d,e,f,g){(void 0===c||0>=c)&&(c=32),(void 0===d||0>=d)&&(d=32),void 0===e&&(e=0),void 0===f&&(f=0),this.name=a,this.firstgid=0|b,this.imageWidth=0|c,this.imageHeight=0|d,this.imageMargin=0|e,this.imageSpacing=0|f,this.properties=g||{},this.images=[],this.total=0},c.ImageCollection.prototype={containsImageIndex:function(a){return a>=this.firstgid&&athis.right||b>this.bottom)},intersects:function(a,b,c,d){return c<=this.worldX?!1:d<=this.worldY?!1:a>=this.worldX+this.width?!1:b>=this.worldY+this.height?!1:!0},setCollisionCallback:function(a,b){this.collisionCallback=a,this.collisionCallbackContext=b},destroy:function(){this.collisionCallback=null,this.collisionCallbackContext=null,this.properties=null},setCollision:function(a,b,c,d){this.collideLeft=a,this.collideRight=b,this.collideUp=c,this.collideDown=d,this.faceLeft=a,this.faceRight=b,this.faceTop=c,this.faceBottom=d},resetCollision:function(){this.collideLeft=!1,this.collideRight=!1,this.collideUp=!1,this.collideDown=!1,this.faceTop=!1,this.faceBottom=!1,this.faceLeft=!1,this.faceRight=!1},isInteresting:function(a,b){return a&&b?this.collideLeft||this.collideRight||this.collideUp||this.collideDown||this.faceTop||this.faceBottom||this.faceLeft||this.faceRight||this.collisionCallback:a?this.collideLeft||this.collideRight||this.collideUp||this.collideDown:b?this.faceTop||this.faceBottom||this.faceLeft||this.faceRight:!1},copy:function(a){this.index=a.index,this.alpha=a.alpha,this.properties=a.properties,this.collideUp=a.collideUp,this.collideDown=a.collideDown,this.collideLeft=a.collideLeft,this.collideRight=a.collideRight,this.collisionCallback=a.collisionCallback,this.collisionCallbackContext=a.collisionCallbackContext}},c.Tile.prototype.constructor=c.Tile,Object.defineProperty(c.Tile.prototype,"collides",{get:function(){return this.collideLeft||this.collideRight||this.collideUp||this.collideDown}}),Object.defineProperty(c.Tile.prototype,"canCollide",{get:function(){return this.collideLeft||this.collideRight||this.collideUp||this.collideDown||this.collisionCallback}}),Object.defineProperty(c.Tile.prototype,"left",{get:function(){return this.worldX}}),Object.defineProperty(c.Tile.prototype,"right",{get:function(){return this.worldX+this.width}}),Object.defineProperty(c.Tile.prototype,"top",{get:function(){return this.worldY}}),Object.defineProperty(c.Tile.prototype,"bottom",{get:function(){return this.worldY+this.height}}),c.Tilemap=function(a,b,d,e,f,g){this.game=a,this.key=b;var h=c.TilemapParser.parse(this.game,b,d,e,f,g);null!==h&&(this.width=h.width,this.height=h.height,this.tileWidth=h.tileWidth,this.tileHeight=h.tileHeight,this.orientation=h.orientation,this.format=h.format,this.version=h.version,this.properties=h.properties,this.widthInPixels=h.widthInPixels,this.heightInPixels=h.heightInPixels,this.layers=h.layers,this.tilesets=h.tilesets,this.imagecollections=h.imagecollections,this.tiles=h.tiles,this.objects=h.objects,this.collideIndexes=[],this.collision=h.collision,this.images=h.images,this.currentLayer=0,this.debugMap=[],this._results=[],this._tempA=0,this._tempB=0)},c.Tilemap.CSV=0,c.Tilemap.TILED_JSON=1,c.Tilemap.NORTH=0,c.Tilemap.EAST=1,c.Tilemap.SOUTH=2,c.Tilemap.WEST=3,c.Tilemap.prototype={create:function(a,b,c,d,e,f){return void 0===f&&(f=this.game.world),this.width=b,this.height=c,this.setTileSize(d,e),this.layers.length=0,this.createBlankLayer(a,b,c,d,e,f)},setTileSize:function(a,b){this.tileWidth=a,this.tileHeight=b,this.widthInPixels=this.width*a,this.heightInPixels=this.height*b},addTilesetImage:function(a,b,d,e,f,g,h){if(void 0===a)return null;void 0===d&&(d=this.tileWidth),void 0===e&&(e=this.tileHeight),void 0===f&&(f=0),void 0===g&&(g=0),void 0===h&&(h=0),0===d&&(d=32),0===e&&(e=32);var i=null;if((void 0===b||null===b)&&(b=a),b instanceof c.BitmapData)i=b.canvas;else{if(!this.game.cache.checkImageKey(b))return console.warn('Phaser.Tilemap.addTilesetImage: Invalid image key given: "'+b+'"'),null;i=this.game.cache.getImage(b)}var j=this.getTilesetIndex(a);if(null===j&&this.format===c.Tilemap.TILED_JSON)return console.warn('Phaser.Tilemap.addTilesetImage: No data found in the JSON matching the tileset name: "'+b+'"'),null;if(this.tilesets[j])return this.tilesets[j].setImage(i),this.tilesets[j];var k=new c.Tileset(a,h,d,e,f,g,{});k.setImage(i),this.tilesets.push(k);for(var l=this.tilesets.length-1,m=f,n=f,o=0,p=0,q=0,r=h;rm;m++)if("undefined"!=typeof this.objects[a][m].gid&&"number"==typeof b&&this.objects[a][m].gid===b&&(l=!0),"undefined"!=typeof this.objects[a][m].id&&"number"==typeof b&&this.objects[a][m].id===b&&(l=!0),"undefined"!=typeof this.objects[a][m].name&&"string"==typeof b&&this.objects[a][m].name===b&&(l=!0),l){k=new i(this.game,this.objects[a][m].x,this.objects[a][m].y,d,e),k.name=this.objects[a][m].name,k.visible=this.objects[a][m].visible,k.autoCull=g,k.exists=f,k.width=this.objects[a][m].width,k.height=this.objects[a][m].height,this.objects[a][m].rotation&&(k.angle=this.objects[a][m].rotation),j&&(k.y-=k.height),h.add(k);for(var o in this.objects[a][m].properties)h.set(k,o,this.objects[a][m].properties[o],!1,!1,0,!0)}},createFromTiles:function(a,b,d,e,f,g){"number"==typeof a&&(a=[a]),void 0===b||null===b?b=[]:"number"==typeof b&&(b=[b]),e=this.getLayer(e),void 0===f&&(f=this.game.world),void 0===g&&(g={}),void 0===g.customClass&&(g.customClass=c.Sprite),void 0===g.adjustY&&(g.adjustY=!0);var h=this.layers[e].width,i=this.layers[e].height;if(this.copy(0,0,h,i,e),this._results.length<2)return 0;for(var j,k=0,l=1,m=this._results.length;m>l;l++)if(-1!==a.indexOf(this._results[l].index)){j=new g.customClass(this.game,this._results[l].worldX,this._results[l].worldY,d);for(var n in g)j[n]=g[n];f.add(j),k++}if(1===b.length)for(l=0;l1)for(l=0;lthis.layers.length?void console.warn("Tilemap.createLayer: Invalid layer ID given: "+f):e.add(new c.TilemapLayer(this.game,this,f,b,d))},createBlankLayer:function(a,b,d,e,f,g){if(void 0===g&&(g=this.game.world),null!==this.getLayerIndex(a))return void console.warn("Tilemap.createBlankLayer: Layer with matching name already exists");for(var h,i={name:a,x:0,y:0,width:b,height:d,widthInPixels:b*e,heightInPixels:d*f,alpha:1,visible:!0,properties:{},indexes:[],callbacks:[],bodies:[],data:null},j=[],k=0;d>k;k++){h=[];for(var l=0;b>l;l++)h.push(new c.Tile(i,-1,l,k,e,f));j.push(h)}i.data=j,this.layers.push(i),this.currentLayer=this.layers.length-1;var m=i.widthInPixels,n=i.heightInPixels;m>this.game.width&&(m=this.game.width),n>this.game.height&&(n=this.game.height);var j=new c.TilemapLayer(this.game,this,this.layers.length-1,m,n);return j.name=a,g.add(j)},getIndex:function(a,b){for(var c=0;ce;e++)this.layers[d].callbacks[a[e]]={callback:b,callbackContext:c}},setTileLocationCallback:function(a,b,c,d,e,f,g){if(g=this.getLayer(g),this.copy(a,b,c,d,g),!(this._results.length<2))for(var h=1;hb)){for(var f=a;b>=f;f++)this.setCollisionByIndex(f,c,d,!1);e&&this.calculateFaces(d)}},setCollisionByExclusion:function(a,b,c,d){void 0===b&&(b=!0),void 0===d&&(d=!0),c=this.getLayer(c);for(var e=0,f=this.tiles.length;f>e;e++)-1===a.indexOf(e)&&this.setCollisionByIndex(e,b,c,!1);d&&this.calculateFaces(c)},setCollisionByIndex:function(a,b,c,d){if(void 0===b&&(b=!0),void 0===c&&(c=this.currentLayer),void 0===d&&(d=!0),b)this.collideIndexes.push(a);else{var e=this.collideIndexes.indexOf(a);e>-1&&this.collideIndexes.splice(e,1)}for(var f=0;ff;f++)for(var h=0,i=this.layers[a].width;i>h;h++){var j=this.layers[a].data[f][h];j&&(b=this.getTileAbove(a,h,f),c=this.getTileBelow(a,h,f),d=this.getTileLeft(a,h,f),e=this.getTileRight(a,h,f),j.collides&&(j.faceTop=!0,j.faceBottom=!0,j.faceLeft=!0,j.faceRight=!0),b&&b.collides&&(j.faceTop=!1),c&&c.collides&&(j.faceBottom=!1),d&&d.collides&&(j.faceLeft=!1),e&&e.collides&&(j.faceRight=!1))}},getTileAbove:function(a,b,c){return c>0?this.layers[a].data[c-1][b]:null},getTileBelow:function(a,b,c){return c0?this.layers[a].data[c][b-1]:null},getTileRight:function(a,b,c){return b-1},removeTile:function(a,b,d){if(d=this.getLayer(d),a>=0&&a=0&&b=0&&b=0&&d-1?this.layers[e].data[d][b].setCollision(!0,!0,!0,!0):this.layers[e].data[d][b].resetCollision(),this.layers[e].dirty=!0,this.calculateFaces(e),this.layers[e].data[d][b]}return null},putTileWorldXY:function(a,b,c,d,e,f){return f=this.getLayer(f),b=this.game.math.snapToFloor(b,d)/d,c=this.game.math.snapToFloor(c,e)/e,this.putTile(a,b,c,f)},searchTileIndex:function(a,b,c,d){void 0===b&&(b=0),void 0===c&&(c=!1),d=this.getLayer(d);var e=0;if(c){for(var f=this.layers[d].height-1;f>=0;f--)for(var g=this.layers[d].width-1;g>=0;g--)if(this.layers[d].data[f][g].index===a){if(e===b)return this.layers[d].data[f][g];e++}}else for(var f=0;f=0&&a=0&&ba&&(a=0),0>b&&(b=0),c>this.layers[e].width&&(c=this.layers[e].width),d>this.layers[e].height&&(d=this.layers[e].height),this._results.length=0,this._results.push({x:a,y:b,width:c,height:d,layer:e});for(var f=b;b+d>f;f++)for(var g=a;a+c>g;g++)this._results.push(this.layers[e].data[f][g]);return this._results},paste:function(a,b,c,d){if(void 0===a&&(a=0),void 0===b&&(b=0),d=this.getLayer(d),c&&!(c.length<2)){for(var e=a-c[1].x,f=b-c[1].y,g=1;g1?this.debugMap[this.layers[this.currentLayer].data[c][d]]?"background: "+this.debugMap[this.layers[this.currentLayer].data[c][d]]:"background: #ffffff":"background: rgb(0, 0, 0)");a+="\n"}b[0]=a,console.log.apply(console,b)},destroy:function(){this.removeAllLayers(),this.data=[],this.game=null}},c.Tilemap.prototype.constructor=c.Tilemap,Object.defineProperty(c.Tilemap.prototype,"layer",{get:function(){return this.layers[this.currentLayer]},set:function(a){a!==this.currentLayer&&this.setLayer(a)}}),c.TilemapLayer=function(a,b,d,e,f){e|=0,f|=0,c.Sprite.call(this,a,0,0),this.map=b,this.index=d,this.layer=b.layers[d],this.canvas=c.Canvas.create(e,f),this.context=this.canvas.getContext("2d"),this.setTexture(new PIXI.Texture(new PIXI.BaseTexture(this.canvas))),this.type=c.TILEMAPLAYER,this.physicsType=c.TILEMAPLAYER,this.renderSettings={enableScrollDelta:!1,overdrawRatio:.2,copyCanvas:null},this.debug=!1,this.exists=!0,this.debugSettings={missingImageFill:"rgb(255,255,255)",debuggedTileOverfill:"rgba(0,255,0,0.4)",forceFullRedraw:!0,debugAlpha:.5,facingEdgeStroke:"rgba(0,255,0,1)",collidingTileOverfill:"rgba(0,255,0,0.2)"},this.scrollFactorX=1,this.scrollFactorY=1,this.dirty=!0,this.rayStepRate=4,this._wrap=!1,this._mc={scrollX:0,scrollY:0,renderWidth:0,renderHeight:0,tileWidth:b.tileWidth,tileHeight:b.tileHeight,cw:b.tileWidth,ch:b.tileHeight,tilesets:[]},this._scrollX=0,this._scrollY=0,this._results=[],a.device.canvasBitBltShift||(this.renderSettings.copyCanvas=c.TilemapLayer.ensureSharedCopyCanvas()),this.fixedToCamera=!0},c.TilemapLayer.prototype=Object.create(c.Sprite.prototype),c.TilemapLayer.prototype.constructor=c.TilemapLayer,c.TilemapLayer.prototype.preUpdateCore=c.Component.Core.preUpdate,c.TilemapLayer.sharedCopyCanvas=null,c.TilemapLayer.ensureSharedCopyCanvas=function(){return this.sharedCopyCanvas||(this.sharedCopyCanvas=c.Canvas.create(2,2)),this.sharedCopyCanvas},c.TilemapLayer.prototype.preUpdate=function(){return this.preUpdateCore()},c.TilemapLayer.prototype.postUpdate=function(){c.Component.FixedToCamera.postUpdate.call(this);var a=this.game.camera;this.scrollX=a.x*this.scrollFactorX/this.scale.x,this.scrollY=a.y*this.scrollFactorY/this.scale.y,this.render()},c.TilemapLayer.prototype.resize=function(a,b){this.canvas.width=a,this.canvas.height=b,this.texture.frame.resize(a,b),this.texture.width=a,this.texture.height=b,this.texture.crop.width=a,this.texture.crop.height=b,this.texture.baseTexture.width=a,this.texture.baseTexture.height=b,this.texture.baseTexture.dirty(),this.texture.requiresUpdate=!0,this.texture._updateUvs(),this.dirty=!0},c.TilemapLayer.prototype.resizeWorld=function(){this.game.world.setBounds(0,0,this.layer.widthInPixels*this.scale.x,this.layer.heightInPixels*this.scale.y)},c.TilemapLayer.prototype._fixX=function(a){return 0>a&&(a=0),1===this.scrollFactorX?a:this._scrollX+(a-this._scrollX/this.scrollFactorX)},c.TilemapLayer.prototype._unfixX=function(a){return 1===this.scrollFactorX?a:this._scrollX/this.scrollFactorX+(a-this._scrollX)},c.TilemapLayer.prototype._fixY=function(a){return 0>a&&(a=0),1===this.scrollFactorY?a:this._scrollY+(a-this._scrollY/this.scrollFactorY)},c.TilemapLayer.prototype._unfixY=function(a){return 1===this.scrollFactorY?a:this._scrollY/this.scrollFactorY+(a-this._scrollY)},c.TilemapLayer.prototype.getTileX=function(a){return Math.floor(this._fixX(a)/this._mc.tileWidth)},c.TilemapLayer.prototype.getTileY=function(a){return Math.floor(this._fixY(a)/this._mc.tileHeight)},c.TilemapLayer.prototype.getTileXY=function(a,b,c){return c.x=this.getTileX(a),c.y=this.getTileY(b),c},c.TilemapLayer.prototype.getRayCastTiles=function(a,b,c,d){b||(b=this.rayStepRate),void 0===c&&(c=!1),void 0===d&&(d=!1);var e=this.getTiles(a.x,a.y,a.width,a.height,c,d);if(0===e.length)return[];for(var f=a.coordinatesOnLine(b),g=[],h=0;hl;l++)for(var m=h;h+j>m;m++){var n=this.layer.data[l];n&&n[m]&&(g||n[m].isInteresting(e,f))&&this._results.push(n[m])}return this._results.slice()},c.TilemapLayer.prototype.resolveTileset=function(a){var b=this._mc.tilesets;if(2e3>a)for(;b.lengthb&&(g=-b,i=0),0>c&&(h=-c,j=0);var k=this.renderSettings.copyCanvas;if(k){(k.width=c&&(c=Math.max(0,c),e=Math.min(h-1,e)),f>=d&&(d=Math.max(0,d),f=Math.min(i-1,f)));var n,o,p,q,r,s,t=c*j-a,u=d*k-b,v=(c+(1<<20)*h)%h,w=(d+(1<<20)*i)%i;for(g.fillStyle=this.tileColor,q=w,s=f-d,o=u;s>=0;q++,s--,o+=k){q>=i&&(q-=i);var x=this.layer.data[q];for(p=v,r=e-c,n=t;r>=0;p++,r--,n+=j){p>=h&&(p-=h);var y=x[p];if(y&&!(y.index<0)){var z=y.index,A=l[z];void 0===A&&(A=this.resolveTileset(z)),y.alpha===m||this.debug||(g.globalAlpha=y.alpha,m=y.alpha),A?y.rotation||y.flipped?(g.save(),g.translate(n+y.centerX,o+y.centerY),g.rotate(y.rotation),y.flipped&&g.scale(-1,1),A.draw(g,-y.centerX,-y.centerY,z),g.restore()):A.draw(g,n,o,z):this.debugSettings.missingImageFill&&(g.fillStyle=this.debugSettings.missingImageFill,g.fillRect(n,o,j,k)),y.debug&&this.debugSettings.debuggedTileOverfill&&(g.fillStyle=this.debugSettings.debuggedTileOverfill,g.fillRect(n,o,j,k))}}}},c.TilemapLayer.prototype.renderDeltaScroll=function(a,b){var c=this._mc.scrollX,d=this._mc.scrollY,e=this.canvas.width,f=this.canvas.height,g=this._mc.tileWidth,h=this._mc.tileHeight,i=0,j=-g,k=0,l=-h;if(0>a?(i=e+a,j=e-1):a>0&&(j=a),0>b?(k=f+b,l=f-1):b>0&&(l=b),this.shiftCanvas(this.context,a,b),i=Math.floor((i+c)/g),j=Math.floor((j+c)/g),k=Math.floor((k+d)/h),l=Math.floor((l+d)/h),j>=i){this.context.clearRect(i*g-c,0,(j-i+1)*g,f);var m=Math.floor((0+d)/h),n=Math.floor((f-1+d)/h);this.renderRegion(c,d,i,m,j,n)}if(l>=k){this.context.clearRect(0,k*h-d,e,(l-k+1)*h);var o=Math.floor((0+c)/g),p=Math.floor((e-1+c)/g);this.renderRegion(c,d,o,k,p,l)}},c.TilemapLayer.prototype.renderFull=function(){var a=this._mc.scrollX,b=this._mc.scrollY,c=this.canvas.width,d=this.canvas.height,e=this._mc.tileWidth,f=this._mc.tileHeight,g=Math.floor(a/e),h=Math.floor((c-1+a)/e),i=Math.floor(b/f),j=Math.floor((d-1+b)/f);this.context.clearRect(0,0,c,d),this.renderRegion(a,b,g,i,h,j)},c.TilemapLayer.prototype.render=function(){var a=!1;if(this.visible){this.context.save(),(this.dirty||this.layer.dirty)&&(this.layer.dirty=!1,a=!0);var b=this.canvas.width,c=this.canvas.height,d=0|this._scrollX,e=0|this._scrollY,f=this._mc,g=f.scrollX-d,h=f.scrollY-e;if(a||0!==g||0!==h||f.renderWidth!==b||f.renderHeight!==c)return f.scrollX=d,f.scrollY=e,(f.renderWidth!==b||f.renderHeight!==c)&&(f.renderWidth=b,f.renderHeight=c),this.debug&&(this.context.globalAlpha=this.debugSettings.debugAlpha,this.debugSettings.forceFullRedraw&&(a=!0)),!a&&this.renderSettings.enableScrollDelta&&Math.abs(g)+Math.abs(h)=0;d++,f--,b+=o){d>=m&&(d-=m);var x=this.layer.data[d];for(c=v,e=q-p,a=t;e>=0;c++,e--,a+=n){c>=l&&(c-=l);var y=x[c];!y||y.index<0||!y.collides||(this.debugSettings.collidingTileOverfill&&(i.fillStyle=this.debugSettings.collidingTileOverfill,i.fillRect(a,b,this._mc.cw,this._mc.ch)),this.debugSettings.facingEdgeStroke&&(i.beginPath(),y.faceTop&&(i.moveTo(a,b),i.lineTo(a+this._mc.cw,b)),y.faceBottom&&(i.moveTo(a,b+this._mc.ch),i.lineTo(a+this._mc.cw,b+this._mc.ch)),y.faceLeft&&(i.moveTo(a,b),i.lineTo(a,b+this._mc.ch)),y.faceRight&&(i.moveTo(a+this._mc.cw,b),i.lineTo(a+this._mc.cw,b+this._mc.ch)),i.stroke())) -}}},Object.defineProperty(c.TilemapLayer.prototype,"wrap",{get:function(){return this._wrap},set:function(a){this._wrap=a,this.dirty=!0}}),Object.defineProperty(c.TilemapLayer.prototype,"scrollX",{get:function(){return this._scrollX},set:function(a){this._scrollX=a}}),Object.defineProperty(c.TilemapLayer.prototype,"scrollY",{get:function(){return this._scrollY},set:function(a){this._scrollY=a}}),Object.defineProperty(c.TilemapLayer.prototype,"collisionWidth",{get:function(){return this._mc.cw},set:function(a){this._mc.cw=0|a,this.dirty=!0}}),Object.defineProperty(c.TilemapLayer.prototype,"collisionHeight",{get:function(){return this._mc.ch},set:function(a){this._mc.ch=0|a,this.dirty=!0}}),c.TilemapParser={parse:function(a,b,d,e,f,g){if(void 0===d&&(d=32),void 0===e&&(e=32),void 0===f&&(f=10),void 0===g&&(g=10),void 0===b)return this.getEmptyData();if(null===b)return this.getEmptyData(d,e,f,g);var h=a.cache.getTilemapData(b);if(h){if(h.format===c.Tilemap.CSV)return this.parseCSV(b,h.data,d,e);if(!h.format||h.format===c.Tilemap.TILED_JSON)return this.parseTiledJSON(h.data)}else console.warn("Phaser.TilemapParser.parse - No map data found for key "+b)},parseCSV:function(a,b,d,e){var f=this.getEmptyData();b=b.trim();for(var g=[],h=b.split("\n"),i=h.length,j=0,k=0;ko;o++){if(h=0,i=!1,k=a.layers[f].data[o],k>536870912)switch(j=0,k>2147483648&&(k-=2147483648,j+=4),k>1073741824&&(k-=1073741824,j+=2),k>536870912&&(k-=536870912,j+=1),j){case 5:h=Math.PI/2;break;case 6:h=Math.PI;break;case 3:h=3*Math.PI/2;break;case 4:h=0,i=!0;break;case 7:h=Math.PI/2,i=!0;break;case 2:h=Math.PI,i=!0;break;case 1:h=3*Math.PI/2,i=!0}k>0?(m.push(new c.Tile(g,k,l,n.length,a.tilewidth,a.tileheight)),m[m.length-1].rotation=h,m[m.length-1].flipped=i):m.push(new c.Tile(g,-1,l,n.length,a.tilewidth,a.tileheight)),l++,l===a.layers[f].width&&(n.push(m),l=0,m=[])}g.data=n,e.push(g)}d.layers=e;for(var q=[],f=0;fz;z++)if(a.layers[f].objects[z].gid){var A={gid:a.layers[f].objects[z].gid,name:a.layers[f].objects[z].name,type:a.layers[f].objects[z].hasOwnProperty("type")?a.layers[f].objects[z].type:"",x:a.layers[f].objects[z].x,y:a.layers[f].objects[z].y,visible:a.layers[f].objects[z].visible,properties:a.layers[f].objects[z].properties};a.layers[f].objects[z].rotation&&(A.rotation=a.layers[f].objects[z].rotation),x[a.layers[f].name].push(A)}else if(a.layers[f].objects[z].polyline){var A={name:a.layers[f].objects[z].name,type:a.layers[f].objects[z].type,x:a.layers[f].objects[z].x,y:a.layers[f].objects[z].y,width:a.layers[f].objects[z].width,height:a.layers[f].objects[z].height,visible:a.layers[f].objects[z].visible,properties:a.layers[f].objects[z].properties};a.layers[f].objects[z].rotation&&(A.rotation=a.layers[f].objects[z].rotation),A.polyline=[];for(var B=0;B=c)&&(c=32),(void 0===d||0>=d)&&(d=32),void 0===e&&(e=0),void 0===f&&(f=0),this.name=a,this.firstgid=0|b,this.tileWidth=0|c,this.tileHeight=0|d,this.tileMargin=0|e,this.tileSpacing=0|f,this.properties=g||{},this.image=null,this.rows=0,this.columns=0,this.total=0,this.drawCoords=[]},c.Tileset.prototype={draw:function(a,b,c,d){var e=d-this.firstgid<<1;e>=0&&e+1=this.firstgid&&a=this._timer)if(this._timer=this.game.time.time+this.frequency*this.game.time.slowMotion,0!==this._flowTotal)if(this._flowQuantity>0){for(var a=0;a=this._flowTotal)){this.on=!1;break}}else this.emitParticle()&&(this._counter++,-1!==this._flowTotal&&this._counter>=this._flowTotal&&(this.on=!1));else this.emitParticle()&&(this._counter++,this._quantity>0&&this._counter>=this._quantity&&(this.on=!1));for(var a=this.children.length;a--;)this.children[a].exists&&this.children[a].update()},c.Particles.Arcade.Emitter.prototype.makeParticles=function(a,b,c,d,e){void 0===b&&(b=0),void 0===c&&(c=this.maxParticles),void 0===d&&(d=!1),void 0===e&&(e=!1);var f,g=0,h=a,i=b;for(this._frames=b,c>this.maxParticles&&(this.maxParticles=c);c>g;)Array.isArray(a)&&(h=this.game.rnd.pick(a)),Array.isArray(b)&&(i=this.game.rnd.pick(b)),f=new this.particleClass(this.game,0,0,h,i),this.game.physics.arcade.enable(f,!1),d?(f.body.checkCollision.any=!0,f.body.checkCollision.none=!1):f.body.checkCollision.none=!0,f.body.collideWorldBounds=e,f.body.skipQuadTree=!0,f.exists=!1,f.visible=!1,f.anchor.copyFrom(this.particleAnchor),this.add(f),g++;return this},c.Particles.Arcade.Emitter.prototype.kill=function(){this.on=!1,this.alive=!1,this.exists=!1},c.Particles.Arcade.Emitter.prototype.revive=function(){this.alive=!0,this.exists=!0},c.Particles.Arcade.Emitter.prototype.explode=function(a,b){this._flowTotal=0,this.start(!0,a,0,b,!1)},c.Particles.Arcade.Emitter.prototype.flow=function(a,b,c,d,e){(void 0===c||0===c)&&(c=1),void 0===d&&(d=-1),void 0===e&&(e=!0),c>this.maxParticles&&(c=this.maxParticles),this._counter=0,this._flowQuantity=c,this._flowTotal=d,e?(this.start(!0,a,b,c),this._counter+=c,this.on=!0,this._timer=this.game.time.time+b*this.game.time.slowMotion):this.start(!1,a,b,c)},c.Particles.Arcade.Emitter.prototype.start=function(a,b,c,d,e){if(void 0===a&&(a=!0),void 0===b&&(b=0),(void 0===c||null===c)&&(c=250),void 0===d&&(d=0),void 0===e&&(e=!1),d>this.maxParticles&&(d=this.maxParticles),this.revive(),this.visible=!0,this.lifespan=b,this.frequency=c,a||e)for(var f=0;d>f;f++)this.emitParticle();else this.on=!0,this._quantity+=d,this._counter=0,this._timer=this.game.time.time+c*this.game.time.slowMotion},c.Particles.Arcade.Emitter.prototype.emitParticle=function(){var a=this.getFirstExists(!1);return null===a?!1:(this.width>1||this.height>1?a.reset(this.game.rnd.integerInRange(this.left,this.right),this.game.rnd.integerInRange(this.top,this.bottom)):a.reset(this.emitX,this.emitY),a.angle=0,a.lifespan=this.lifespan,this.particleBringToTop?this.bringToTop(a):this.particleSendToBack&&this.sendToBack(a),this.autoScale?a.setScaleData(this.scaleData):1!==this.minParticleScale||1!==this.maxParticleScale?a.scale.set(this.game.rnd.realInRange(this.minParticleScale,this.maxParticleScale)):(this._minParticleScale.x!==this._maxParticleScale.x||this._minParticleScale.y!==this._maxParticleScale.y)&&a.scale.set(this.game.rnd.realInRange(this._minParticleScale.x,this._maxParticleScale.x),this.game.rnd.realInRange(this._minParticleScale.y,this._maxParticleScale.y)),a.frame=Array.isArray("object"===this._frames)?this.game.rnd.pick(this._frames):this._frames,this.autoAlpha?a.setAlphaData(this.alphaData):a.alpha=this.game.rnd.realInRange(this.minParticleAlpha,this.maxParticleAlpha),a.blendMode=this.blendMode,a.body.updateBounds(),a.body.bounce.setTo(this.bounce.x,this.bounce.y),a.body.velocity.x=this.game.rnd.between(this.minParticleSpeed.x,this.maxParticleSpeed.x),a.body.velocity.y=this.game.rnd.between(this.minParticleSpeed.y,this.maxParticleSpeed.y),a.body.angularVelocity=this.game.rnd.between(this.minRotation,this.maxRotation),a.body.gravity.y=this.gravity,a.body.drag.x=this.particleDrag.x,a.body.drag.y=this.particleDrag.y,a.body.angularDrag=this.angularDrag,a.onEmit(),!0)},c.Particles.Arcade.Emitter.prototype.destroy=function(){this.game.particles.remove(this),c.Group.prototype.destroy.call(this,!0,!1)},c.Particles.Arcade.Emitter.prototype.setSize=function(a,b){this.area.width=a,this.area.height=b},c.Particles.Arcade.Emitter.prototype.setXSpeed=function(a,b){a=a||0,b=b||0,this.minParticleSpeed.x=a,this.maxParticleSpeed.x=b},c.Particles.Arcade.Emitter.prototype.setYSpeed=function(a,b){a=a||0,b=b||0,this.minParticleSpeed.y=a,this.maxParticleSpeed.y=b},c.Particles.Arcade.Emitter.prototype.setRotation=function(a,b){a=a||0,b=b||0,this.minRotation=a,this.maxRotation=b},c.Particles.Arcade.Emitter.prototype.setAlpha=function(a,b,d,e,f){if(void 0===a&&(a=1),void 0===b&&(b=1),void 0===d&&(d=0),void 0===e&&(e=c.Easing.Linear.None),void 0===f&&(f=!1),this.minParticleAlpha=a,this.maxParticleAlpha=b,this.autoAlpha=!1,d>0&&a!==b){var g={v:a},h=this.game.make.tween(g).to({v:b},d,e);h.yoyo(f),this.alphaData=h.generateData(60),this.alphaData.reverse(),this.autoAlpha=!0}},c.Particles.Arcade.Emitter.prototype.setScale=function(a,b,d,e,f,g,h){if(void 0===a&&(a=1),void 0===b&&(b=1),void 0===d&&(d=1),void 0===e&&(e=1),void 0===f&&(f=0),void 0===g&&(g=c.Easing.Linear.None),void 0===h&&(h=!1),this.minParticleScale=1,this.maxParticleScale=1,this._minParticleScale.set(a,d),this._maxParticleScale.set(b,e),this.autoScale=!1,f>0&&(a!==b||d!==e)){var i={x:a,y:d},j=this.game.make.tween(i).to({x:b,y:e},f,g);j.yoyo(h),this.scaleData=j.generateData(60),this.scaleData.reverse(),this.autoScale=!0}},c.Particles.Arcade.Emitter.prototype.at=function(a){a.center?(this.emitX=a.center.x,this.emitY=a.center.y):(this.emitX=a.world.x+a.anchor.x*a.width,this.emitY=a.world.y+a.anchor.y*a.height)},Object.defineProperty(c.Particles.Arcade.Emitter.prototype,"width",{get:function(){return this.area.width},set:function(a){this.area.width=a}}),Object.defineProperty(c.Particles.Arcade.Emitter.prototype,"height",{get:function(){return this.area.height},set:function(a){this.area.height=a}}),Object.defineProperty(c.Particles.Arcade.Emitter.prototype,"x",{get:function(){return this.emitX},set:function(a){this.emitX=a}}),Object.defineProperty(c.Particles.Arcade.Emitter.prototype,"y",{get:function(){return this.emitY},set:function(a){this.emitY=a}}),Object.defineProperty(c.Particles.Arcade.Emitter.prototype,"left",{get:function(){return Math.floor(this.x-this.area.width/2)}}),Object.defineProperty(c.Particles.Arcade.Emitter.prototype,"right",{get:function(){return Math.floor(this.x+this.area.width/2)}}),Object.defineProperty(c.Particles.Arcade.Emitter.prototype,"top",{get:function(){return Math.floor(this.y-this.area.height/2)}}),Object.defineProperty(c.Particles.Arcade.Emitter.prototype,"bottom",{get:function(){return Math.floor(this.y+this.area.height/2)}}),c.Video=function(a,b,d){if(void 0===b&&(b=null),void 0===d&&(d=null),this.game=a,this.key=b,this.width=0,this.height=0,this.type=c.VIDEO,this.disableTextureUpload=!1,this.touchLocked=!1,this.onPlay=new c.Signal,this.onChangeSource=new c.Signal,this.onComplete=new c.Signal,this.onAccess=new c.Signal,this.onError=new c.Signal,this.onTimeout=new c.Signal,this.timeout=15e3,this._timeOutID=null,this.video=null,this.videoStream=null,this.isStreaming=!1,this.retryLimit=20,this.retry=0,this.retryInterval=500,this._retryID=null,this._codeMuted=!1,this._muted=!1,this._codePaused=!1,this._paused=!1,this._pending=!1,this._autoplay=!1,b&&this.game.cache.checkVideoKey(b)){var e=this.game.cache.getVideo(b);e.isBlob?this.createVideoFromBlob(e.data):this.video=e.data,this.width=this.video.videoWidth,this.height=this.video.videoHeight}else d&&this.createVideoFromURL(d,!1);this.video&&!d?(this.baseTexture=new PIXI.BaseTexture(this.video),this.baseTexture.forceLoaded(this.width,this.height)):(this.baseTexture=new PIXI.BaseTexture(PIXI.TextureCache.__default.baseTexture.source),this.baseTexture.forceLoaded(this.width,this.height)),this.texture=new PIXI.Texture(this.baseTexture),this.textureFrame=new c.Frame(0,0,0,this.width,this.height,"video"),this.texture.setFrame(this.textureFrame),this.texture.valid=!1,null!==b&&this.video&&(this.texture.valid=this.video.canplay),this.snapshot=null,c.BitmapData&&(this.snapshot=new c.BitmapData(this.game,"",this.width,this.height)),!this.game.device.cocoonJS&&(this.game.device.iOS||this.game.device.android)||window.PhaserGlobal&&window.PhaserGlobal.fakeiOSTouchLock?this.setTouchLock():e&&(e.locked=!1)},c.Video.prototype={connectToMediaStream:function(a,b){return a&&b&&(this.video=a,this.videoStream=b,this.isStreaming=!0,this.baseTexture.source=this.video,this.updateTexture(null,this.video.videoWidth,this.video.videoHeight),this.onAccess.dispatch(this)),this},startMediaStream:function(a,b,c){if(void 0===a&&(a=!1),void 0===b&&(b=null),void 0===c&&(c=null),!this.game.device.getUserMedia)return this.onError.dispatch(this,"No getUserMedia"),!1;null!==this.videoStream&&this.videoStream.stop(),this.removeVideoElement(),this.video=document.createElement("video"),this.video.setAttribute("autoplay","autoplay"),null!==b&&(this.video.width=b),null!==c&&(this.video.height=c),this._timeOutID=window.setTimeout(this.getUserMediaTimeout.bind(this),this.timeout);try{navigator.getUserMedia({audio:a,video:!0},this.getUserMediaSuccess.bind(this),this.getUserMediaError.bind(this))}catch(d){this.getUserMediaError(d)}return this},getUserMediaTimeout:function(){clearTimeout(this._timeOutID),this.onTimeout.dispatch(this)},getUserMediaError:function(a){clearTimeout(this._timeOutID),this.onError.dispatch(this,a)},getUserMediaSuccess:function(a){clearTimeout(this._timeOutID),this.videoStream=a,void 0!==this.video.mozSrcObject?this.video.mozSrcObject=a:this.video.src=window.URL&&window.URL.createObjectURL(a)||a;var b=this;this.video.onloadeddata=function(){function a(){if(c>0)if(b.video.videoWidth>0){var d=b.video.videoWidth,e=b.video.videoHeight;isNaN(b.video.videoHeight)&&(e=d/(4/3)),b.video.play(),b.isStreaming=!0,b.baseTexture.source=b.video,b.updateTexture(null,d,e),b.onAccess.dispatch(b)}else window.setTimeout(a,500);else console.warn("Unable to connect to video stream. Webcam error?");c--}var c=10;a()}},createVideoFromBlob:function(a){var b=this;return this.video=document.createElement("video"),this.video.controls=!1,this.video.setAttribute("autoplay","autoplay"),this.video.addEventListener("loadeddata",function(a){b.updateTexture(a)},!0),this.video.src=window.URL.createObjectURL(a),this.video.canplay=!0,this},createVideoFromURL:function(a,b){return void 0===b&&(b=!1),this.texture&&(this.texture.valid=!1),this.video=document.createElement("video"),this.video.controls=!1,b&&this.video.setAttribute("autoplay","autoplay"),this.video.src=a,this.video.canplay=!0,this.video.load(),this.retry=this.retryLimit,this._retryID=window.setTimeout(this.checkVideoProgress.bind(this),this.retryInterval),this.key=a,this},updateTexture:function(a,b,c){var d=!1;(void 0===b||null===b)&&(b=this.video.videoWidth,d=!0),(void 0===c||null===c)&&(c=this.video.videoHeight),this.width=b,this.height=c,this.baseTexture.source!==this.video&&(this.baseTexture.source=this.video),this.baseTexture.forceLoaded(b,c),this.texture.frame.resize(b,c),this.texture.width=b,this.texture.height=c,this.texture.valid=!0,this.snapshot&&this.snapshot.resize(b,c),d&&null!==this.key&&(this.onChangeSource.dispatch(this,b,c),this._autoplay&&(this.video.play(),this.onPlay.dispatch(this,this.loop,this.playbackRate)))},complete:function(){this.onComplete.dispatch(this)},play:function(a,b){return void 0===a&&(a=!1),void 0===b&&(b=1),this.game.sound.onMute&&(this.game.sound.onMute.add(this.setMute,this),this.game.sound.onUnMute.add(this.unsetMute,this),this.game.sound.mute&&this.setMute()),this.game.onPause.add(this.setPause,this),this.game.onResume.add(this.setResume,this),this.video.addEventListener("ended",this.complete.bind(this),!0),this.video.loop=a?"loop":"",this.video.playbackRate=b,this.touchLocked?this._pending=!0:(this._pending=!1,null!==this.key&&(4!==this.video.readyState?(this.retry=this.retryLimit,this._retryID=window.setTimeout(this.checkVideoProgress.bind(this),this.retryInterval)):this.video.addEventListener("playing",this.playHandler.bind(this),!0)),this.video.play(),this.onPlay.dispatch(this,a,b)),this},playHandler:function(){this.video.removeEventListener("playing",this.playHandler.bind(this)),this.updateTexture()},stop:function(){return this.game.sound.onMute&&(this.game.sound.onMute.remove(this.setMute,this),this.game.sound.onUnMute.remove(this.unsetMute,this)),this.game.onPause.remove(this.setPause,this),this.game.onResume.remove(this.setResume,this),this.isStreaming?(this.video.mozSrcObject?(this.video.mozSrcObject.stop(),this.video.src=null):(this.video.src="",this.videoStream.stop()),this.videoStream=null,this.isStreaming=!1):(this.video.removeEventListener("ended",this.complete.bind(this)),this.touchLocked?this._pending=!1:this.video.pause()),this},add:function(a){if(Array.isArray(a))for(var b=0;b0?this._retryID=window.setTimeout(this.checkVideoProgress.bind(this),this.retryInterval):console.warn("Phaser.Video: Unable to start downloading video in time",this.isStreaming))},setTouchLock:function(){this.game.input.touch.addTouchLockCallback(this.unlock,this),this.touchLocked=!0},unlock:function(){if(this.touchLocked=!1,this.video.play(),this.onPlay.dispatch(this,this.loop,this.playbackRate),this.key){var a=this.game.cache.getVideo(this.key);a&&!a.isBlob&&(a.locked=!1)}return!0},grab:function(a,b,c){return void 0===a&&(a=!1),void 0===b&&(b=1),void 0===c&&(c=null),null===this.snapshot?void console.warn("Video.grab cannot run because Phaser.BitmapData is unavailable"):(a&&this.snapshot.cls(),this.snapshot.copy(this.video,0,0,this.width,this.height,0,0,this.width,this.height,0,0,0,1,1,b,c),this.snapshot)},removeVideoElement:function(){if(this.video){for(this.video.parentNode&&this.video.parentNode.removeChild(this.video);this.video.hasChildNodes();)this.video.removeChild(this.video.firstChild);this.video.removeAttribute("autoplay"),this.video.removeAttribute("src"),this.video=null}},destroy:function(){this.stop(),this.removeVideoElement(),this.touchLocked&&this.game.input.touch.removeTouchLockCallback(this.unlock,this),this._retryID&&window.clearTimeout(this._retryID)}},Object.defineProperty(c.Video.prototype,"currentTime",{get:function(){return this.video?this.video.currentTime:0},set:function(a){this.video.currentTime=a}}),Object.defineProperty(c.Video.prototype,"duration",{get:function(){return this.video?this.video.duration:0}}),Object.defineProperty(c.Video.prototype,"progress",{get:function(){return this.video?this.video.currentTime/this.video.duration:0}}),Object.defineProperty(c.Video.prototype,"mute",{get:function(){return this._muted},set:function(a){if(a=a||null){if(this._muted)return;this._codeMuted=!0,this.setMute()}else{if(!this._muted)return;this._codeMuted=!1,this.unsetMute()}}}),Object.defineProperty(c.Video.prototype,"paused",{get:function(){return this._paused},set:function(a){if(a=a||null,!this.touchLocked)if(a){if(this._paused)return;this._codePaused=!0,this.setPause()}else{if(!this._paused)return;this._codePaused=!1,this.setResume()}}}),Object.defineProperty(c.Video.prototype,"volume",{get:function(){return this.video?this.video.volume:1},set:function(a){0>a?a=0:a>1&&(a=1),this.video&&(this.video.volume=a)}}),Object.defineProperty(c.Video.prototype,"playbackRate",{get:function(){return this.video?this.video.playbackRate:1},set:function(a){this.video&&(this.video.playbackRate=a)}}),Object.defineProperty(c.Video.prototype,"loop",{get:function(){return this.video?this.video.loop:!1},set:function(a){a&&this.video?this.video.loop="loop":this.video&&(this.video.loop="")}}),Object.defineProperty(c.Video.prototype,"playing",{get:function(){return!(this.video.paused&&this.video.ended)}}),c.Video.prototype.constructor=c.Video,void 0===PIXI.blendModes&&(PIXI.blendModes=c.blendModes),void 0===PIXI.scaleModes&&(PIXI.scaleModes=c.scaleModes),void 0===PIXI.Texture.emptyTexture&&(PIXI.Texture.emptyTexture=new PIXI.Texture(new PIXI.BaseTexture)),void 0===PIXI.DisplayObject._tempMatrix&&(PIXI.DisplayObject._tempMatrix=new PIXI.Matrix),void 0===PIXI.RenderTexture.tempMatrix&&(PIXI.RenderTexture.tempMatrix=new PIXI.Matrix),void 0===PIXI.Graphics.POLY&&(PIXI.Graphics.POLY=c.POLYGON,PIXI.Graphics.RECT=c.RECTANGLE,PIXI.Graphics.CIRC=c.CIRCLE,PIXI.Graphics.ELIP=c.ELLIPSE,PIXI.Graphics.RREC=c.ROUNDEDRECTANGLE),PIXI.TextureSilentFail=!0,"undefined"!=typeof exports?("undefined"!=typeof module&&module.exports&&(exports=module.exports=c),exports.Phaser=c):"undefined"!=typeof define&&define.amd?define("Phaser",function(){return b.Phaser=c}()):b.Phaser=c}.call(this); +}}},Object.defineProperty(c.TilemapLayer.prototype,"wrap",{get:function(){return this._wrap},set:function(a){this._wrap=a,this.dirty=!0}}),Object.defineProperty(c.TilemapLayer.prototype,"scrollX",{get:function(){return this._scrollX},set:function(a){this._scrollX=a}}),Object.defineProperty(c.TilemapLayer.prototype,"scrollY",{get:function(){return this._scrollY},set:function(a){this._scrollY=a}}),Object.defineProperty(c.TilemapLayer.prototype,"collisionWidth",{get:function(){return this._mc.cw},set:function(a){this._mc.cw=0|a,this.dirty=!0}}),Object.defineProperty(c.TilemapLayer.prototype,"collisionHeight",{get:function(){return this._mc.ch},set:function(a){this._mc.ch=0|a,this.dirty=!0}}),c.TilemapParser={parse:function(a,b,d,e,f,g){if(void 0===d&&(d=32),void 0===e&&(e=32),void 0===f&&(f=10),void 0===g&&(g=10),void 0===b)return this.getEmptyData();if(null===b)return this.getEmptyData(d,e,f,g);var h=a.cache.getTilemapData(b);if(h){if(h.format===c.Tilemap.CSV)return this.parseCSV(b,h.data,d,e);if(!h.format||h.format===c.Tilemap.TILED_JSON)return this.parseTiledJSON(h.data)}else console.warn("Phaser.TilemapParser.parse - No map data found for key "+b)},parseCSV:function(a,b,d,e){var f=this.getEmptyData();b=b.trim();for(var g=[],h=b.split("\n"),i=h.length,j=0,k=0;ko;o++){if(h=0,i=!1,k=a.layers[f].data[o],k>536870912)switch(j=0,k>2147483648&&(k-=2147483648,j+=4),k>1073741824&&(k-=1073741824,j+=2),k>536870912&&(k-=536870912,j+=1),j){case 5:h=Math.PI/2;break;case 6:h=Math.PI;break;case 3:h=3*Math.PI/2;break;case 4:h=0,i=!0;break;case 7:h=Math.PI/2,i=!0;break;case 2:h=Math.PI,i=!0;break;case 1:h=3*Math.PI/2,i=!0}k>0?(m.push(new c.Tile(g,k,l,n.length,a.tilewidth,a.tileheight)),m[m.length-1].rotation=h,m[m.length-1].flipped=i):m.push(new c.Tile(g,-1,l,n.length,a.tilewidth,a.tileheight)),l++,l===a.layers[f].width&&(n.push(m),l=0,m=[])}g.data=n,e.push(g)}d.layers=e;for(var q=[],f=0;fz;z++)if(a.layers[f].objects[z].gid){var A={gid:a.layers[f].objects[z].gid,name:a.layers[f].objects[z].name,type:a.layers[f].objects[z].hasOwnProperty("type")?a.layers[f].objects[z].type:"",x:a.layers[f].objects[z].x,y:a.layers[f].objects[z].y,visible:a.layers[f].objects[z].visible,properties:a.layers[f].objects[z].properties};a.layers[f].objects[z].rotation&&(A.rotation=a.layers[f].objects[z].rotation),x[a.layers[f].name].push(A)}else if(a.layers[f].objects[z].polyline){var A={name:a.layers[f].objects[z].name,type:a.layers[f].objects[z].type,x:a.layers[f].objects[z].x,y:a.layers[f].objects[z].y,width:a.layers[f].objects[z].width,height:a.layers[f].objects[z].height,visible:a.layers[f].objects[z].visible,properties:a.layers[f].objects[z].properties};a.layers[f].objects[z].rotation&&(A.rotation=a.layers[f].objects[z].rotation),A.polyline=[];for(var B=0;B=c)&&(c=32),(void 0===d||0>=d)&&(d=32),void 0===e&&(e=0),void 0===f&&(f=0),this.name=a,this.firstgid=0|b,this.tileWidth=0|c,this.tileHeight=0|d,this.tileMargin=0|e,this.tileSpacing=0|f,this.properties=g||{},this.image=null,this.rows=0,this.columns=0,this.total=0,this.drawCoords=[]},c.Tileset.prototype={draw:function(a,b,c,d){var e=d-this.firstgid<<1;e>=0&&e+1=this.firstgid&&a=this._timer)if(this._timer=this.game.time.time+this.frequency*this.game.time.slowMotion,0!==this._flowTotal)if(this._flowQuantity>0){for(var a=0;a=this._flowTotal)){this.on=!1;break}}else this.emitParticle()&&(this._counter++,-1!==this._flowTotal&&this._counter>=this._flowTotal&&(this.on=!1));else this.emitParticle()&&(this._counter++,this._quantity>0&&this._counter>=this._quantity&&(this.on=!1));for(var a=this.children.length;a--;)this.children[a].exists&&this.children[a].update()},c.Particles.Arcade.Emitter.prototype.makeParticles=function(a,b,c,d,e){void 0===b&&(b=0),void 0===c&&(c=this.maxParticles),void 0===d&&(d=!1),void 0===e&&(e=!1);var f,g=0,h=a,i=b;for(this._frames=b,c>this.maxParticles&&(this.maxParticles=c);c>g;)Array.isArray(a)&&(h=this.game.rnd.pick(a)),Array.isArray(b)&&(i=this.game.rnd.pick(b)),f=new this.particleClass(this.game,0,0,h,i),this.game.physics.arcade.enable(f,!1),d?(f.body.checkCollision.any=!0,f.body.checkCollision.none=!1):f.body.checkCollision.none=!0,f.body.collideWorldBounds=e,f.body.skipQuadTree=!0,f.exists=!1,f.visible=!1,f.anchor.copyFrom(this.particleAnchor),this.add(f),g++;return this},c.Particles.Arcade.Emitter.prototype.kill=function(){this.on=!1,this.alive=!1,this.exists=!1},c.Particles.Arcade.Emitter.prototype.revive=function(){this.alive=!0,this.exists=!0},c.Particles.Arcade.Emitter.prototype.explode=function(a,b){this._flowTotal=0,this.start(!0,a,0,b,!1)},c.Particles.Arcade.Emitter.prototype.flow=function(a,b,c,d,e){(void 0===c||0===c)&&(c=1),void 0===d&&(d=-1),void 0===e&&(e=!0),c>this.maxParticles&&(c=this.maxParticles),this._counter=0,this._flowQuantity=c,this._flowTotal=d,e?(this.start(!0,a,b,c),this._counter+=c,this.on=!0,this._timer=this.game.time.time+b*this.game.time.slowMotion):this.start(!1,a,b,c)},c.Particles.Arcade.Emitter.prototype.start=function(a,b,c,d,e){if(void 0===a&&(a=!0),void 0===b&&(b=0),(void 0===c||null===c)&&(c=250),void 0===d&&(d=0),void 0===e&&(e=!1),d>this.maxParticles&&(d=this.maxParticles),this.revive(),this.visible=!0,this.lifespan=b,this.frequency=c,a||e)for(var f=0;d>f;f++)this.emitParticle();else this.on=!0,this._quantity+=d,this._counter=0,this._timer=this.game.time.time+c*this.game.time.slowMotion},c.Particles.Arcade.Emitter.prototype.emitParticle=function(){var a=this.getFirstExists(!1);return null===a?!1:(this.width>1||this.height>1?a.reset(this.game.rnd.integerInRange(this.left,this.right),this.game.rnd.integerInRange(this.top,this.bottom)):a.reset(this.emitX,this.emitY),a.angle=0,a.lifespan=this.lifespan,this.particleBringToTop?this.bringToTop(a):this.particleSendToBack&&this.sendToBack(a),this.autoScale?a.setScaleData(this.scaleData):1!==this.minParticleScale||1!==this.maxParticleScale?a.scale.set(this.game.rnd.realInRange(this.minParticleScale,this.maxParticleScale)):(this._minParticleScale.x!==this._maxParticleScale.x||this._minParticleScale.y!==this._maxParticleScale.y)&&a.scale.set(this.game.rnd.realInRange(this._minParticleScale.x,this._maxParticleScale.x),this.game.rnd.realInRange(this._minParticleScale.y,this._maxParticleScale.y)),a.frame=Array.isArray("object"===this._frames)?this.game.rnd.pick(this._frames):this._frames,this.autoAlpha?a.setAlphaData(this.alphaData):a.alpha=this.game.rnd.realInRange(this.minParticleAlpha,this.maxParticleAlpha),a.blendMode=this.blendMode,a.body.updateBounds(),a.body.bounce.setTo(this.bounce.x,this.bounce.y),a.body.velocity.x=this.game.rnd.between(this.minParticleSpeed.x,this.maxParticleSpeed.x),a.body.velocity.y=this.game.rnd.between(this.minParticleSpeed.y,this.maxParticleSpeed.y),a.body.angularVelocity=this.game.rnd.between(this.minRotation,this.maxRotation),a.body.gravity.y=this.gravity,a.body.drag.x=this.particleDrag.x,a.body.drag.y=this.particleDrag.y,a.body.angularDrag=this.angularDrag,a.onEmit(),!0)},c.Particles.Arcade.Emitter.prototype.destroy=function(){this.game.particles.remove(this),c.Group.prototype.destroy.call(this,!0,!1)},c.Particles.Arcade.Emitter.prototype.setSize=function(a,b){this.area.width=a,this.area.height=b},c.Particles.Arcade.Emitter.prototype.setXSpeed=function(a,b){a=a||0,b=b||0,this.minParticleSpeed.x=a,this.maxParticleSpeed.x=b},c.Particles.Arcade.Emitter.prototype.setYSpeed=function(a,b){a=a||0,b=b||0,this.minParticleSpeed.y=a,this.maxParticleSpeed.y=b},c.Particles.Arcade.Emitter.prototype.setRotation=function(a,b){a=a||0,b=b||0,this.minRotation=a,this.maxRotation=b},c.Particles.Arcade.Emitter.prototype.setAlpha=function(a,b,d,e,f){if(void 0===a&&(a=1),void 0===b&&(b=1),void 0===d&&(d=0),void 0===e&&(e=c.Easing.Linear.None),void 0===f&&(f=!1),this.minParticleAlpha=a,this.maxParticleAlpha=b,this.autoAlpha=!1,d>0&&a!==b){var g={v:a},h=this.game.make.tween(g).to({v:b},d,e);h.yoyo(f),this.alphaData=h.generateData(60),this.alphaData.reverse(),this.autoAlpha=!0}},c.Particles.Arcade.Emitter.prototype.setScale=function(a,b,d,e,f,g,h){if(void 0===a&&(a=1),void 0===b&&(b=1),void 0===d&&(d=1),void 0===e&&(e=1),void 0===f&&(f=0),void 0===g&&(g=c.Easing.Linear.None),void 0===h&&(h=!1),this.minParticleScale=1,this.maxParticleScale=1,this._minParticleScale.set(a,d),this._maxParticleScale.set(b,e),this.autoScale=!1,f>0&&(a!==b||d!==e)){var i={x:a,y:d},j=this.game.make.tween(i).to({x:b,y:e},f,g);j.yoyo(h),this.scaleData=j.generateData(60),this.scaleData.reverse(),this.autoScale=!0}},c.Particles.Arcade.Emitter.prototype.at=function(a){a.center?(this.emitX=a.center.x,this.emitY=a.center.y):(this.emitX=a.world.x+a.anchor.x*a.width,this.emitY=a.world.y+a.anchor.y*a.height)},Object.defineProperty(c.Particles.Arcade.Emitter.prototype,"width",{get:function(){return this.area.width},set:function(a){this.area.width=a}}),Object.defineProperty(c.Particles.Arcade.Emitter.prototype,"height",{get:function(){return this.area.height},set:function(a){this.area.height=a}}),Object.defineProperty(c.Particles.Arcade.Emitter.prototype,"x",{get:function(){return this.emitX},set:function(a){this.emitX=a}}),Object.defineProperty(c.Particles.Arcade.Emitter.prototype,"y",{get:function(){return this.emitY},set:function(a){this.emitY=a}}),Object.defineProperty(c.Particles.Arcade.Emitter.prototype,"left",{get:function(){return Math.floor(this.x-this.area.width/2)}}),Object.defineProperty(c.Particles.Arcade.Emitter.prototype,"right",{get:function(){return Math.floor(this.x+this.area.width/2)}}),Object.defineProperty(c.Particles.Arcade.Emitter.prototype,"top",{get:function(){return Math.floor(this.y-this.area.height/2)}}),Object.defineProperty(c.Particles.Arcade.Emitter.prototype,"bottom",{get:function(){return Math.floor(this.y+this.area.height/2)}}),c.Video=function(a,b,d){if(void 0===b&&(b=null),void 0===d&&(d=null),this.game=a,this.key=b,this.width=0,this.height=0,this.type=c.VIDEO,this.disableTextureUpload=!1,this.touchLocked=!1,this.onPlay=new c.Signal,this.onChangeSource=new c.Signal,this.onComplete=new c.Signal,this.onAccess=new c.Signal,this.onError=new c.Signal,this.onTimeout=new c.Signal,this.timeout=15e3,this._timeOutID=null,this.video=null,this.videoStream=null,this.isStreaming=!1,this.retryLimit=20,this.retry=0,this.retryInterval=500,this._retryID=null,this._codeMuted=!1,this._muted=!1,this._codePaused=!1,this._paused=!1,this._pending=!1,this._autoplay=!1,b&&this.game.cache.checkVideoKey(b)){var e=this.game.cache.getVideo(b);e.isBlob?this.createVideoFromBlob(e.data):this.video=e.data,this.width=this.video.videoWidth,this.height=this.video.videoHeight}else d&&this.createVideoFromURL(d,!1);this.video&&!d?(this.baseTexture=new PIXI.BaseTexture(this.video),this.baseTexture.forceLoaded(this.width,this.height)):(this.baseTexture=new PIXI.BaseTexture(PIXI.TextureCache.__default.baseTexture.source),this.baseTexture.forceLoaded(this.width,this.height)),this.texture=new PIXI.Texture(this.baseTexture),this.textureFrame=new c.Frame(0,0,0,this.width,this.height,"video"),this.texture.setFrame(this.textureFrame),this.texture.valid=!1,null!==b&&this.video&&(this.texture.valid=this.video.canplay),this.snapshot=null,c.BitmapData&&(this.snapshot=new c.BitmapData(this.game,"",this.width,this.height)),!this.game.device.cocoonJS&&(this.game.device.iOS||this.game.device.android)||window.PhaserGlobal&&window.PhaserGlobal.fakeiOSTouchLock?this.setTouchLock():e&&(e.locked=!1)},c.Video.prototype={connectToMediaStream:function(a,b){return a&&b&&(this.video=a,this.videoStream=b,this.isStreaming=!0,this.baseTexture.source=this.video,this.updateTexture(null,this.video.videoWidth,this.video.videoHeight),this.onAccess.dispatch(this)),this},startMediaStream:function(a,b,c){if(void 0===a&&(a=!1),void 0===b&&(b=null),void 0===c&&(c=null),!this.game.device.getUserMedia)return this.onError.dispatch(this,"No getUserMedia"),!1;null!==this.videoStream&&this.videoStream.stop(),this.removeVideoElement(),this.video=document.createElement("video"),this.video.setAttribute("autoplay","autoplay"),null!==b&&(this.video.width=b),null!==c&&(this.video.height=c),this._timeOutID=window.setTimeout(this.getUserMediaTimeout.bind(this),this.timeout);try{navigator.getUserMedia({audio:a,video:!0},this.getUserMediaSuccess.bind(this),this.getUserMediaError.bind(this))}catch(d){this.getUserMediaError(d)}return this},getUserMediaTimeout:function(){clearTimeout(this._timeOutID),this.onTimeout.dispatch(this)},getUserMediaError:function(a){clearTimeout(this._timeOutID),this.onError.dispatch(this,a)},getUserMediaSuccess:function(a){clearTimeout(this._timeOutID),this.videoStream=a,void 0!==this.video.mozSrcObject?this.video.mozSrcObject=a:this.video.src=window.URL&&window.URL.createObjectURL(a)||a;var b=this;this.video.onloadeddata=function(){function a(){if(c>0)if(b.video.videoWidth>0){var d=b.video.videoWidth,e=b.video.videoHeight;isNaN(b.video.videoHeight)&&(e=d/(4/3)),b.video.play(),b.isStreaming=!0,b.baseTexture.source=b.video,b.updateTexture(null,d,e),b.onAccess.dispatch(b)}else window.setTimeout(a,500);else console.warn("Unable to connect to video stream. Webcam error?");c--}var c=10;a()}},createVideoFromBlob:function(a){var b=this;return this.video=document.createElement("video"),this.video.controls=!1,this.video.setAttribute("autoplay","autoplay"),this.video.addEventListener("loadeddata",function(a){b.updateTexture(a)},!0),this.video.src=window.URL.createObjectURL(a),this.video.canplay=!0,this},createVideoFromURL:function(a,b){return void 0===b&&(b=!1),this.texture&&(this.texture.valid=!1),this.video=document.createElement("video"),this.video.controls=!1,b&&this.video.setAttribute("autoplay","autoplay"),this.video.src=a,this.video.canplay=!0,this.video.load(),this.retry=this.retryLimit,this._retryID=window.setTimeout(this.checkVideoProgress.bind(this),this.retryInterval),this.key=a,this},updateTexture:function(a,b,c){var d=!1;(void 0===b||null===b)&&(b=this.video.videoWidth,d=!0),(void 0===c||null===c)&&(c=this.video.videoHeight),this.width=b,this.height=c,this.baseTexture.source!==this.video&&(this.baseTexture.source=this.video),this.baseTexture.forceLoaded(b,c),this.texture.frame.resize(b,c),this.texture.width=b,this.texture.height=c,this.texture.valid=!0,this.snapshot&&this.snapshot.resize(b,c),d&&null!==this.key&&(this.onChangeSource.dispatch(this,b,c),this._autoplay&&(this.video.play(),this.onPlay.dispatch(this,this.loop,this.playbackRate)))},complete:function(){this.onComplete.dispatch(this)},play:function(a,b){return void 0===a&&(a=!1),void 0===b&&(b=1),this.game.sound.onMute&&(this.game.sound.onMute.add(this.setMute,this),this.game.sound.onUnMute.add(this.unsetMute,this),this.game.sound.mute&&this.setMute()),this.game.onPause.add(this.setPause,this),this.game.onResume.add(this.setResume,this),this.video.addEventListener("ended",this.complete.bind(this),!0),this.video.loop=a?"loop":"",this.video.playbackRate=b,this.touchLocked?this._pending=!0:(this._pending=!1,null!==this.key&&(4!==this.video.readyState?(this.retry=this.retryLimit,this._retryID=window.setTimeout(this.checkVideoProgress.bind(this),this.retryInterval)):this.video.addEventListener("playing",this.playHandler.bind(this),!0)),this.video.play(),this.onPlay.dispatch(this,a,b)),this},playHandler:function(){this.video.removeEventListener("playing",this.playHandler.bind(this)),this.updateTexture()},stop:function(){return this.game.sound.onMute&&(this.game.sound.onMute.remove(this.setMute,this),this.game.sound.onUnMute.remove(this.unsetMute,this)),this.game.onPause.remove(this.setPause,this),this.game.onResume.remove(this.setResume,this),this.isStreaming?(this.video.mozSrcObject?(this.video.mozSrcObject.stop(),this.video.src=null):(this.video.src="",this.videoStream.stop()),this.videoStream=null,this.isStreaming=!1):(this.video.removeEventListener("ended",this.complete.bind(this)),this.touchLocked?this._pending=!1:this.video.pause()),this},add:function(a){if(Array.isArray(a))for(var b=0;b0?this._retryID=window.setTimeout(this.checkVideoProgress.bind(this),this.retryInterval):console.warn("Phaser.Video: Unable to start downloading video in time",this.isStreaming))},setTouchLock:function(){this.game.input.touch.addTouchLockCallback(this.unlock,this),this.touchLocked=!0},unlock:function(){if(this.touchLocked=!1,this.video.play(),this.onPlay.dispatch(this,this.loop,this.playbackRate),this.key){var a=this.game.cache.getVideo(this.key);a&&!a.isBlob&&(a.locked=!1)}return!0},grab:function(a,b,c){return void 0===a&&(a=!1),void 0===b&&(b=1),void 0===c&&(c=null),null===this.snapshot?void console.warn("Video.grab cannot run because Phaser.BitmapData is unavailable"):(a&&this.snapshot.cls(),this.snapshot.copy(this.video,0,0,this.width,this.height,0,0,this.width,this.height,0,0,0,1,1,b,c),this.snapshot)},removeVideoElement:function(){if(this.video){for(this.video.parentNode&&this.video.parentNode.removeChild(this.video);this.video.hasChildNodes();)this.video.removeChild(this.video.firstChild);this.video.removeAttribute("autoplay"),this.video.removeAttribute("src"),this.video=null}},destroy:function(){this.stop(),this.removeVideoElement(),this.touchLocked&&this.game.input.touch.removeTouchLockCallback(this.unlock,this),this._retryID&&window.clearTimeout(this._retryID)}},Object.defineProperty(c.Video.prototype,"currentTime",{get:function(){return this.video?this.video.currentTime:0},set:function(a){this.video.currentTime=a}}),Object.defineProperty(c.Video.prototype,"duration",{get:function(){return this.video?this.video.duration:0}}),Object.defineProperty(c.Video.prototype,"progress",{get:function(){return this.video?this.video.currentTime/this.video.duration:0}}),Object.defineProperty(c.Video.prototype,"mute",{get:function(){return this._muted},set:function(a){if(a=a||null){if(this._muted)return;this._codeMuted=!0,this.setMute()}else{if(!this._muted)return;this._codeMuted=!1,this.unsetMute()}}}),Object.defineProperty(c.Video.prototype,"paused",{get:function(){return this._paused},set:function(a){if(a=a||null,!this.touchLocked)if(a){if(this._paused)return;this._codePaused=!0,this.setPause()}else{if(!this._paused)return;this._codePaused=!1,this.setResume()}}}),Object.defineProperty(c.Video.prototype,"volume",{get:function(){return this.video?this.video.volume:1},set:function(a){0>a?a=0:a>1&&(a=1),this.video&&(this.video.volume=a)}}),Object.defineProperty(c.Video.prototype,"playbackRate",{get:function(){return this.video?this.video.playbackRate:1},set:function(a){this.video&&(this.video.playbackRate=a)}}),Object.defineProperty(c.Video.prototype,"loop",{get:function(){return this.video?this.video.loop:!1},set:function(a){a&&this.video?this.video.loop="loop":this.video&&(this.video.loop="")}}),Object.defineProperty(c.Video.prototype,"playing",{get:function(){return!(this.video.paused&&this.video.ended)}}),c.Video.prototype.constructor=c.Video,void 0===PIXI.blendModes&&(PIXI.blendModes=c.blendModes),void 0===PIXI.scaleModes&&(PIXI.scaleModes=c.scaleModes),void 0===PIXI.Texture.emptyTexture&&(PIXI.Texture.emptyTexture=new PIXI.Texture(new PIXI.BaseTexture)),void 0===PIXI.DisplayObject._tempMatrix&&(PIXI.DisplayObject._tempMatrix=new PIXI.Matrix),void 0===PIXI.RenderTexture.tempMatrix&&(PIXI.RenderTexture.tempMatrix=new PIXI.Matrix),void 0===PIXI.Graphics.POLY&&(PIXI.Graphics.POLY=c.POLYGON,PIXI.Graphics.RECT=c.RECTANGLE,PIXI.Graphics.CIRC=c.CIRCLE,PIXI.Graphics.ELIP=c.ELLIPSE,PIXI.Graphics.RREC=c.ROUNDEDRECTANGLE),PIXI.TextureSilentFail=!0,"undefined"!=typeof exports?("undefined"!=typeof module&&module.exports&&(exports=module.exports=c),exports.Phaser=c):"undefined"!=typeof define&&define.amd?define("Phaser",function(){return b.Phaser=c}()):b.Phaser=c,c}.call(this); //# sourceMappingURL=phaser-arcade-physics.map \ No newline at end of file diff --git a/build/custom/phaser-minimum.js b/build/custom/phaser-minimum.js index 29a2b5443..771c79cde 100644 --- a/build/custom/phaser-minimum.js +++ b/build/custom/phaser-minimum.js @@ -7,7 +7,7 @@ * * Phaser - http://phaser.io * -* v2.4.1 "Ionin Spring" - Built: Thu Jul 23 2015 16:02:03 +* v2.4.1 "Ionin Spring" - Built: Fri Jul 24 2015 13:26:59 * * By Richard Davey http://www.photonstorm.com @photonstorm * @@ -8221,13 +8221,16 @@ PIXI.BaseTexture.prototype.destroy = function() { delete PIXI.BaseTextureCache[this.imageUrl]; delete PIXI.TextureCache[this.imageUrl]; + this.imageUrl = null; + if (!navigator.isCocoonJS) this.source.src = ''; } else if (this.source && this.source._pixiId) { delete PIXI.BaseTextureCache[this.source._pixiId]; } + this.source = null; this.unloadFromGPU(); @@ -27038,65 +27041,77 @@ Phaser.Pointer.prototype = { // If you find one, please tell us! var buttons = event.buttons; - if (buttons === undefined) + if (buttons !== undefined) { - return; - } + // Note: These are bitwise checks, not booleans - // Note: These are bitwise checks, not booleans + if (Phaser.Pointer.LEFT_BUTTON & buttons) + { + this.leftButton.start(event); + } + else + { + this.leftButton.stop(event); + } - if (Phaser.Pointer.LEFT_BUTTON & buttons) - { - this.leftButton.start(event); + if (Phaser.Pointer.RIGHT_BUTTON & buttons) + { + this.rightButton.start(event); + } + else + { + this.rightButton.stop(event); + } + + if (Phaser.Pointer.MIDDLE_BUTTON & buttons) + { + this.middleButton.start(event); + } + else + { + this.middleButton.stop(event); + } + + if (Phaser.Pointer.BACK_BUTTON & buttons) + { + this.backButton.start(event); + } + else + { + this.backButton.stop(event); + } + + if (Phaser.Pointer.FORWARD_BUTTON & buttons) + { + this.forwardButton.start(event); + } + else + { + this.forwardButton.stop(event); + } + + if (Phaser.Pointer.ERASER_BUTTON & buttons) + { + this.eraserButton.start(event); + } + else + { + this.eraserButton.stop(event); + } } else { - this.leftButton.stop(event); - } + // No buttons property (like Safari on OSX when using a trackpad) - if (Phaser.Pointer.RIGHT_BUTTON & buttons) - { - this.rightButton.start(event); - } - else - { - this.rightButton.stop(event); - } - - if (Phaser.Pointer.MIDDLE_BUTTON & buttons) - { - this.middleButton.start(event); - } - else - { - this.middleButton.stop(event); - } - - if (Phaser.Pointer.BACK_BUTTON & buttons) - { - this.backButton.start(event); - } - else - { - this.backButton.stop(event); - } - - if (Phaser.Pointer.FORWARD_BUTTON & buttons) - { - this.forwardButton.start(event); - } - else - { - this.forwardButton.stop(event); - } - - if (Phaser.Pointer.ERASER_BUTTON & buttons) - { - this.eraserButton.start(event); - } - else - { - this.eraserButton.stop(event); + if (event.type === 'mousedown') + { + this.leftButton.start(event); + } + else + { + this.leftButton.stop(event); + this.rightButton.stop(event); + } } // On OS X (and other devices with trackpads) you have to press CTRL + the pad @@ -43897,26 +43912,30 @@ Phaser.Cache.prototype = { }, /** - * Removes an image from the cache and optionally from the Pixi.BaseTextureCache as well. + * Removes an image from the cache. + * + * You can optionally elect to destroy it as well. This calls BaseTexture.destroy on it. * - * Note that this only removes it from the Phaser.Cache. If you still have references to the data elsewhere + * Note that this only removes it from the Phaser and PIXI Caches. If you still have references to the data elsewhere * then it will persist in memory. * * @method Phaser.Cache#removeImage * @param {string} key - Key of the asset you want to remove. - * @param {boolean} [removeFromPixi=true] - Should this image also be removed from the Pixi BaseTextureCache? + * @param {boolean} [removeFromPixi=true] - Should this image also be destroyed? Removing it from the PIXI.BaseTextureCache? */ removeImage: function (key, removeFromPixi) { if (removeFromPixi === undefined) { removeFromPixi = true; } - delete this._cache.image[key]; + var img = this.getImage(key, true); - if (removeFromPixi) + if (removeFromPixi && img.base) { - PIXI.BaseTextureCache[key].destroy(); + img.base.destroy(); } + delete this._cache.image[key]; + }, /** @@ -50081,10 +50100,12 @@ PIXI.TextureSilentFail = true; } exports.Phaser = Phaser; } else if (typeof define !== 'undefined' && define.amd) { - define('Phaser', (function() { return root.Phaser = Phaser; }) ()); + define('Phaser', (function() { return root.Phaser = Phaser; })() ); } else { root.Phaser = Phaser; } + + return Phaser; }).call(this); /* diff --git a/build/custom/phaser-minimum.map b/build/custom/phaser-minimum.map index b3f0b4e40..5190760bd 100644 --- a/build/custom/phaser-minimum.map +++ b/build/custom/phaser-minimum.map @@ -1 +1 @@ -{"version":3,"file":"phaser-minimum.min.js","sources":["phaser-minimum.js"],"names":["root","this","PIXI","WEBGL_RENDERER","CANVAS_RENDERER","VERSION","_UID","Float32Array","Uint16Array","Uint32Array","ArrayBuffer","Array","PI_2","Math","PI","RAD_TO_DEG","DEG_TO_RAD","RETINA_PREFIX","defaultRenderOptions","view","transparent","antialias","preserveDrawingBuffer","resolution","clearBeforeRender","autoResize","DisplayObject","position","Point","scale","transformCallback","transformCallbackContext","pivot","rotation","alpha","visible","hitArea","renderable","parent","stage","worldAlpha","worldTransform","Matrix","worldPosition","worldScale","worldRotation","_sr","_cr","filterArea","_bounds","Rectangle","_currentBounds","_mask","_cacheAsBitmap","_cacheIsDirty","prototype","constructor","destroy","children","i","length","_destroyCachedSprite","Object","defineProperty","get","item","set","value","isMask","_filters","passes","filterPasses","j","push","_filterBlock","target","_generateCachedSprite","updateTransform","game","p","world","a","b","c","d","tx","ty","pt","wt","rotationCache","sin","cos","x","y","sqrt","atan2","call","displayObjectUpdateTransform","getBounds","matrix","EmptyRectangle","getLocalBounds","identityMatrix","setStageReference","preUpdate","generateTexture","scaleMode","renderer","bounds","renderTexture","RenderTexture","width","height","_tempMatrix","render","updateCache","toGlobal","apply","toLocal","from","applyInverse","_renderCachedSprite","renderSession","_cachedSprite","gl","Sprite","_renderWebGL","_renderCanvas","texture","resize","tempFilters","filters","anchor","DisplayObjectContainer","create","_width","_height","addChild","child","addChildAt","index","removeChild","splice","Error","swapChildren","child2","index1","getChildIndex","index2","indexOf","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","Texture","emptyTexture","tint","cachedTint","tintedTexture","blendMode","blendModes","NORMAL","shader","baseTexture","hasLoaded","onTextureUpdate","frame","setTexture","valid","w0","w1","h0","h1","x1","y1","x2","y2","x3","y3","x4","y4","crop","currentBlendMode","context","globalCompositeOperation","blendModesCanvas","globalAlpha","smoothProperty","scaleModes","LINEAR","dx","trim","dy","roundPixels","setTransform","cw","ch","requiresReTint","CanvasTinter","getTintedTexture","drawImage","cx","cy","source","fromFrame","frameId","TextureCache","fromImage","imageId","crossorigin","SpriteBatch","textureThing","ready","initWebGL","fastSpriteBatch","WebGLFastSpriteBatch","setContext","shaderManager","setShader","fastShader","transform","isRotated","childTransform","Stage","backgroundColor","setBackgroundColor","backgroundColorSplit","hex2rgb","hex","toString","substr","backgroundColorString","rgb2hex","rgb","canUseNewCanvasBlendModes","document","pngHead","pngEnd","magenta","Image","src","yellow","canvas","createElement","getContext","getImageData","data","getNextPowerOfTwo","number","result","isPowerOfTwo","PolyK","Triangulate","sign","n","tgs","avl","al","i0","i1","i2","ax","ay","bx","by","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","isArray","join","createShader","shaderSource","compileShader","getShaderParameter","COMPILE_STATUS","window","console","log","getShaderInfoLog","compileProgram","vertexSrc","fragmentSrc","fragmentShader","vertexShader","shaderProgram","createProgram","attachShader","linkProgram","getProgramParameter","LINK_STATUS","PixiShader","program","textureCount","firstRun","dirty","attributes","init","defaultVertexSrc","useProgram","uSampler","getUniformLocation","projectionVector","offsetVector","dimensions","aVertexPosition","getAttribLocation","aTextureCoord","colorAttribute","key","uniforms","uniformLocation","initUniforms","uniform","type","_init","initSampler2D","glMatrix","glValueLength","glFunc","uniformMatrix2fv","uniformMatrix3fv","uniformMatrix4fv","activeTexture","bindTexture","TEXTURE_2D","_glTextures","id","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","transpose","z","w","_dirty","instances","updateTexture","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","toArray","uniform1f","uniform2f","uniform3fv","bindBuffer","ARRAY_BUFFER","buffer","vertexAttribPointer","FLOAT","ELEMENT_ARRAY_BUFFER","indexBuffer","TRIANGLE_STRIP","lastIndex","clearDirty","graphicsData","reset","graphicsDataPool","Graphics","POLY","points","shape","slice","closed","fill","switchMode","canDrawUsingSimple","buildPoly","buildComplexPoly","lineWidth","buildLine","RECT","buildRectangle","CIRC","ELIP","buildCircle","RREC","buildRoundedRectangle","upload","pop","WebGLGraphicsData","rectData","fillColor","fillAlpha","r","g","verts","vertPos","tempPoints","rrectData","radius","recPoints","concat","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","a1","b1","c1","a2","b2","c2","denom","pdist","dist","indexCount","indexStart","lineColor","lineAlpha","abs","createBuffer","glPoints","bufferData","STATIC_DRAW","glIndicies","glContexts","WebGLRenderer","options","defaultRenderer","_contextOptions","premultipliedAlpha","stencil","WebGLShaderManager","WebGLSpriteBatch","WebGLMaskManager","WebGLFilterManager","WebGLStencilManager","blendModeManager","WebGLBlendModeManager","drawCount","initContext","mapBlendModes","glContextId","disable","DEPTH_TEST","CULL_FACE","enable","BLEND","contextLost","__stage","viewport","bindFramebuffer","FRAMEBUFFER","clearColor","clear","COLOR_BUFFER_BIT","renderDisplayObject","displayObject","setBlendMode","style","createTexture","UNPACK_PREMULTIPLY_ALPHA_WEBGL","NEAREST","mipmap","LINEAR_MIPMAP_LINEAR","NEAREST_MIPMAP_NEAREST","generateMipmap","_powerOf2","blendModesWebGL","ONE","ONE_MINUS_SRC_ALPHA","ADD","SRC_ALPHA","DST_ALPHA","MULTIPLY","DST_COLOR","SCREEN","OVERLAY","DARKEN","LIGHTEN","COLOR_DODGE","COLOR_BURN","HARD_LIGHT","SOFT_LIGHT","DIFFERENCE","EXCLUSION","HUE","SATURATION","COLOR","LUMINOSITY","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","size","numVerts","numIndices","vertices","positions","colors","lastIndexCount","drawing","currentBatchSize","currentBaseTexture","textures","shaders","sprites","AbstractFilter","vertexBuffer","DYNAMIC_DRAW","sprite","uvs","_uvs","aX","aY","x0","y0","renderTilingSprite","tilingTexture","TextureUvs","h","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","DEFAULT","framebufferTexture2D","COLOR_ATTACHMENT0","renderBuffer","createRenderbuffer","bindRenderbuffer","RENDERBUFFER","framebufferRenderbuffer","DEPTH_STENCIL_ATTACHMENT","renderbufferStorage","DEPTH_STENCIL","deleteFramebuffer","deleteTexture","CanvasBuffer","clearRect","CanvasMaskManager","save","cacheAlpha","CanvasGraphics","renderGraphicsMask","clip","restore","tintMethod","tintWithMultiply","fillStyle","fillRect","tintWithPerPixel","rgbValues","pixelData","pixels","canHandleAlpha","putImageData","checkInverseAlpha","s1","s2","canUseMultiply","CanvasRenderer","refresh","navigator","isCocoonJS","screencanvas","removeView","updateGraphicsTint","_fillTint","_lineTint","beginPath","moveTo","lineTo","closePath","strokeStyle","stroke","strokeRect","arc","kappa","ox","oy","xe","ye","xm","ym","bezierCurveTo","rx","ry","maxRadius","min","quadraticCurveTo","len","rect","tintR","tintG","tintB","BaseTextureCache","BaseTextureCacheIdGenerator","BaseTexture","complete","naturalWidth","naturalHeight","imageUrl","forceLoaded","_pixiId","unloadFromGPU","updateSourceImage","newSrc","glTexture","image","crossOrigin","fromCanvas","TextureCacheIdGenerator","FrameCache","TextureSilentFail","noFrame","isTiling","requiresUpdate","setFrame","onBaseTextureLoaded","destroyBase","_updateUvs","tw","th","addTextureToCache","removeTextureFromCache","textureBuffer","renderWebGL","renderCanvas","tempMatrix","Phaser","updateBase","identity","translate","append","realResolution","getImage","getBase64","getCanvas","toDataURL","webGLPixels","Uint8Array","readPixels","tempCanvas","canvasData","exports","module","define","amd","WheelEventProxy","scaleFactor","deltaMode","_scaleFactor","_deltaMode","originalEvent","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","CIRCLE","RECTANGLE","LINE","MATRIX","POINT","ROUNDEDRECTANGLE","CREATURE","VIDEO","trunc","ceil","floor","Function","bind","thisArg","bound","args","boundArgs","arguments","TypeError","F","proto","arg","forEach","fun","t","CheapArray","assert","warn","Utils","getProperty","obj","prop","parts","split","last","l","current","setProperty","chanceRoll","chance","random","randomChoice","choice1","choice2","parseDimension","dimension","f","parseInt","innerWidth","innerHeight","pad","str","dir","padlen","right","left","isPlainObject","nodeType","hasOwnProperty","e","extend","name","copy","copyIsArray","clone","deep","mixinPrototype","mixin","replace","mixinKeys","keys","to","o","childNodes","cloneNode","Circle","diameter","_diameter","_radius","circumference","out","setTo","copyFrom","copyTo","dest","distance","round","output","contains","circumferencePoint","angle","asDegrees","offsetPoint","point","top","bottom","equals","intersects","degToRad","intersectsRectangle","halfWidth","xDist","halfHeight","yDist","xCornerDist","yCornerDist","xCornerDistSq","yCornerDistSq","maxCornerDistSq","Ellipse","normx","normy","Line","fromSprite","startSprite","endSprite","useCenter","center","fromAngle","rotate","line","asSegment","intersectsPoints","reflect","pointOnLine","pointOnSegment","xMin","xMax","max","yMin","yMax","coordinatesOnLine","stepRate","results","sx","sy","err","e2","wrap","uc","ua","ub","normalAngle","fromArray","array","pos","newPos","tx1","d1","invert","add","subtract","multiply","divide","clampX","clamp","clampY","radToDeg","getMagnitude","getMagnitudeSq","setMagnitude","magnitude","normalize","isZero","m","dot","cross","perp","rperp","normalRightHand","negative","multiplyAdd","s","interpolate","project","amt","projectUnit","centroid","pointslength","parse","xProp","yProp","Polygon","area","_points","toNumberArray","flatten","inside","ix","iy","jx","jy","Number","MAX_VALUE","calculateArea","p1","p2","avgHeight","centerOn","centerX","centerY","floorAll","ceilAll","inflate","containsRect","intersection","intersectsRaw","tolerance","union","randomX","randomY","empty","inflatePoint","containsRaw","rw","rh","containsPoint","volume","sameDimensions","aabb","MIN_VALUE","RoundedRectangle","Camera","deadzone","roundPx","atLimit","totalInView","_targetPosition","_edge","_position","FOLLOW_LOCKON","FOLLOW_PLATFORMER","FOLLOW_TOPDOWN","FOLLOW_TOPDOWN_TIGHT","follow","helper","unfollow","focusOn","setPosition","focusOnXY","update","updateTarget","checkBounds","setBoundsToWorld","setSize","Create","bmd","make","bitmapData","ctx","palettes",1,2,3,4,5,6,7,8,9,"A","B","C","D","E","PALETTE_ARNE","PALETTE_JMP","PALETTE_CGA","PALETTE_C64","PALETTE_JAPANESE_MACHINE","pixelWidth","pixelHeight","palette","row","grid","cellWidth","cellHeight","State","camera","cache","input","load","math","sound","time","tweens","particles","physics","rnd","preload","loadUpdate","loadRender","preRender","paused","resumed","pauseUpdate","shutdown","StateManager","pendingState","states","_pendingState","_clearWorld","_clearCache","_created","_args","onStateChange","Signal","onInitCallback","onPreloadCallback","onCreateCallback","onUpdateCallback","onRenderCallback","onResizeCallback","onPreRenderCallback","onLoadUpdateCallback","onLoadRenderCallback","onPausedCallback","onResumedCallback","onPauseUpdateCallback","onShutDownCallback","boot","onPause","pause","onResume","resume","state","autoStart","newState","isBooted","remove","callbackContext","clearWorld","clearCache","checkState","restart","dummy","previousStateKey","clearCurrentState","setCurrentState","dispatch","totalQueuedFiles","totalQueuedPacks","loadComplete","removeAll","debug","link","unlink","_kickstart","getCurrentState","elapsedTime","renderType","_bindings","_prevParams","memorize","_shouldPropagate","active","_boundDispatch","validateListener","listener","fnName","_registerListener","isOnce","listenerContext","priority","binding","prevIndex","_indexOfListener","SignalBinding","_addBinding","execute","_priority","cur","_listener","has","addOnce","_destroy","getNumListeners","halt","bindings","paramsArr","forget","dispose","_this","signal","_isOnce","_signal","callCount","params","handlerReturn","detach","isBound","getListener","getSignal","Filter","prevPoint","Date","mouse","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","exists","currentRenderOrderID","_hiddenVar","_onChange","_backgroundColor","config","parseConfig","DOM","getOffset","Canvas","setUserSelect","setTouchAction","checkVisibility","webkitHidden","mozHidden","msHidden","hidden","event","visibilityChange","addEventListener","onblur","onfocus","onpagehide","onpageshow","device","cocoonJSApp","CocoonJS","App","onSuspended","onActivated","focusLoss","focusGain","gamePaused","gameResumed","Color","valueToColor","getColor","RGBtoString","removeEventListener","Group","addToStage","enableBody","physicsBodyType","Physics","ARCADE","physicsType","alive","ignoreDestroy","pendingDestroy","classType","cursor","enableBodyDebug","physicsSortDirection","onDestroy","cursorIndex","fixedToCamera","cameraOffset","hash","_sortProperty","RETURN_NONE","RETURN_TOTAL","RETURN_CHILD","SORT_ASCENDING","SORT_DESCENDING","silent","body","addToHash","events","onAddedToGroup$dispatch","removeFromHash","addMultiple","moveAll","addAt","updateZ","getAt","createMultiple","quantity","resetCursor","next","previous","swap","child1","bringToTop","getIndex","sendToBack","moveUp","moveDown","xy","oldChild","newChild","hasProperty","operation","force","checkProperty","checkAlive","checkVisible","setAll","setAllChildren","checkAll","addAll","property","amount","subAll","multiplyAll","divideAll","callAllExists","callback","existsValue","callbackFromArray","callAll","method","methodLength","contextLength","renderOrderID","predicate","checkExists","ArraySet","forEachExists","iterate","forEachAlive","forEachDead","sort","order","ascendingSortHandler","descendingSortHandler","customSort","sortHandler","returnType","total","getFirstExists","getFirstAlive","getFirstDead","getTop","getBottom","countLiving","countDead","getRandom","ArrayUtils","getRandomItem","destroyPhase","onRemovedFromGroup$dispatch","group","removeBetween","destroyChildren","soft","World","_definedSize","stateChange","setBounds","useBounds","horizontal","vertical","between","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","text","geom","uuid","topLeft","topMiddle","topRight","bottomLeft","bottomMiddle","bottomRight","ScaleManager","dom","minWidth","maxWidth","minHeight","maxHeight","forceLandscape","forcePortrait","incorrectOrientation","_pageAlignHorizontally","_pageAlignVertically","onOrientationChange","enterIncorrectOrientation","leaveIncorrectOrientation","fullScreenTarget","_createdFullScreenTarget","onFullScreenInit","onFullScreenChange","onFullScreenError","screenOrientation","getScreenOrientation","scaleFactorInversed","margin","aspectRatio","sourceAspectRatio","windowConstraints","compatibility","supportsFullScreen","orientationFallback","noMargins","scrollTo","forceMinimumDocumentHeight","canExpandParent","clickTrampoline","_scaleMode","NO_SCALE","_fullScreenScaleMode","parentIsWindow","parentNode","parentScaleFactor","trackParentInterval","onSizeChange","onResizeContext","_pendingScaleMode","_fullScreenRestore","_gameSize","_userScaleFactor","_userScaleTrim","_lastUpdate","_updateThrottle","_updateThrottleReset","_parentBounds","_tempBounds","_lastReportedCanvasSize","_lastReportedGameSize","_booted","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","visualBounds","newWidth","newHeight","updateDimensions","queueUpdate","currentScaleMode","setUserScale","hScale","vScale","hTrim","vTrim","setResizeCallback","signalSizeChange","setMinMax","prevThrottle","prevWidth","prevHeight","boundsChanged","orientationChanged","updateOrientationState","updateLayout","throttle","updateScalingAndBounds","forceOrientation","classifyOrientation","orientation","previousOrientation","previouslyIncorrect","isLandscape","isPortrait","changed","correctnessChanged","scrollTop","reflowGame","documentElement","setMaximum","setExactFit","isFullScreen","boundingParent","setShowAll","resetCanvas","reflowCanvas","layoutBounds","clientRect","getBoundingClientRect","wc","windowBounds","alignCanvas","parentBounds","canvasBounds","currentEdge","targetEdge","marginLeft","marginRight","marginTop","marginBottom","pageAlignHorizontally","pageAlignVertically","cssWidth","cssHeight","expanding","createFullScreenTarget","fsTarget","background","startFullScreen","allowTrampoline","setTimeout","activePointer","mousePointer","addClickTrampoline","smoothed","cleanupCreatedTarget","initData","targetElement","insertBefore","appendChild","fullscreenKeyboard","requestFullscreen","Element","ALLOW_KEYBOARD_INPUT","stopFullScreen","cancelFullscreen","prepScreenMode","enteringFullscreen","createdTarget","targetWidth","targetHeight","enterFullScreen","leaveFullScreen","letterBox","scaleX1","scaleY1","scaleX2","scaleY2","scaleOnWidth","Game","physicsConfig","isRunning","raf","net","Device","lockRender","stepping","pendingStep","stepCount","onBlur","onFocus","_paused","_codePaused","currentUpdateID","updatesThisFrame","_deltaTime","_lastCount","_spiraling","fpsProblemNotifier","forceSingleUpdate","_nextFpsNotification","enableDebug","RandomDataGenerator","now","whenReady","seed","setUpRenderer","GameObjectFactory","GameObjectCreator","Cache","Loader","Time","TweenManager","Input","SoundManager","Particles","Net","Debug","showDebugHeader","RequestAnimationFrame","stopFocus","focus","hideBanner","webAudio","contextRestored","addToDOM","preventDefault","clearGLTextures","updateLogic","desiredFps","updateRender","slowMotion","slowStep","elapsed","timeStep","enableStep","disableStep","step","removeFromDOM","setMute","cordova","iOS","unsetMute","hitCanvas","hitContext","moveCallbacks","pollRate","enabled","multiInputOverride","MOUSE_TOUCH_COMBINE","speed","circle","maxPointers","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","Touch","MSPointer","Keyboard","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","mouseDownCallback","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","BACK_BUTTON","FORWARD_BUTTON","WHEEL_UP","WHEEL_DOWN","onMouseDown","onMouseMove","onMouseUp","_onMouseUpGlobal","onMouseUpGlobal","onMouseOut","onMouseOver","onMouseWheel","wheelEvent","mouseMoveCallback","withinGame","bindEvent","deltaY","requestPointerLock","element","mozRequestPointerLock","webkitRequestPointerLock","_pointerLockChange","pointerLockChange","pointerLockElement","mozPointerLockElement","webkitPointerLockElement","releasePointerLock","exitPointerLock","mozExitPointerLock","webkitExitPointerLock","_stubsGenerated","makeBinder","defineProperties","detail","deltaX","wheelDeltaX","deltaZ","pointerDownCallback","pointerMoveCallback","pointerUpCallback","_onMSPointerDown","_onMSPointerMove","_onMSPointerUp","onPointerDown","onPointerMove","onPointerUp","pointerType","DeviceButton","buttonCode","isDown","isUp","timeDown","duration","timeUp","repeats","altKey","shiftKey","ctrlKey","onFloat","padFloat","justPressed","justReleased","leftButton","middleButton","rightButton","backButton","forwardButton","eraserButton","ERASER_BUTTON","_holdSent","_history","_nextDrop","_stateReset","clientX","clientY","pageX","pageY","screenX","screenY","rawMovementX","rawMovementY","movementX","movementY","isMouse","previousTapTime","totalTouches","msSinceLastClick","targetObject","positionDown","positionUp","_clickTrampolines","_trampolineTargetObject","resetButtons","updateButtons","buttons","totalActivePointers","_touchedHandler","processInteractiveObjects","shift","fromClick","pollLocked","mozMovementX","webkitMovementX","mozMovementY","webkitMovementY","isDragged","highestRenderOrderID","highestInputPriorityID","candidateTarget","currentNode","first","checked","validForInput","checkPointerDown","checkPointerOver","priorityID","_pointerOutHandler","_pointerOverHandler","leave","currentPointers","callbackArgs","trampolines","trampoline","_releasedHandler","resetMovement","touchLockCallbacks","touchStartCallback","touchMoveCallback","touchEndCallback","touchEnterCallback","touchLeaveCallback","touchCancelCallback","_onTouchStart","_onTouchMove","_onTouchEnd","_onTouchEnter","_onTouchLeave","_onTouchCancel","onTouchStart","onTouchMove","onTouchEnd","onTouchEnter","onTouchLeave","onTouchCancel","consumeDocumentTouches","_documentTouchMove","addTouchLockCallback","removeTouchLockCallback","changedTouches","InputHandler","useHandCursor","_setHandCursor","allowHorizontalDrag","allowVerticalDrag","snapOffset","snapOnDrag","snapOnRelease","snapX","snapY","snapOffsetX","snapOffsetY","pixelPerfectOver","pixelPerfectClick","pixelPerfectAlpha","draggable","boundsRect","boundsSprite","consumePointerEvent","scaleLayer","dragOffset","dragFromCenter","dragStartPoint","snapPoint","_dragPoint","_dragPhase","_wasEnabled","_tempPoint","_pointerData","isOver","isOut","timeOver","timeOut","downDuration","onAddedToGroup","addedToGroup","onRemovedFromGroup","removedFromGroup","flagged","highestID","highestRenderID","includePixelPerfect","isPixelPerfect","pointerX","pointerY","pointerDown","pointerUp","pointerTimeDown","pointerTimeUp","pointerOver","pointerOut","pointerTimeOver","pointerTimeOut","pointerDragged","fastTest","checkPixel","_dx","_dy","_draggedPointerID","updateDrag","onInputOver$dispatch","onInputOut$dispatch","onInputDown$dispatch","startDrag","onInputUp$dispatch","stopDrag","globalToLocalX","globalToLocalY","checkBoundsRect","checkBoundsSprite","onDragUpdate","justOver","delay","overDuration","justOut","enableDrag","lockCenter","pixelPerfect","alphaThreshold","disableDrag","onDragStart$dispatch","onDragStop$dispatch","setDragLock","allowHorizontal","allowVertical","enableSnap","onDrag","onRelease","disableSnap","Component","Angle","wrapAngle","Animation","play","frameRate","loop","killOnComplete","animations","AutoCull","autoCull","inCamera","checkWorldBounds","Bounds","BringToTop","Core","install","components","previousPosition","Events","PhysicsBody","AnimationManager","LoadTexture","loadTexture","FixedToCamera","previousRotation","fresh","_exists","P2JS","removeFromWorld","customRender","Crop","cropRect","_crop","updateCrop","resetFrame","_frame","Delta","Destroy","onDestroy$dispatch","Video","onChangeSource","resizeFrame","BitmapText","_glyphs","_parent","_onDestroy","_onAddedToGroup","_onRemovedFromGroup","_onRemovedFromWorld","_onKilled","_onRevived","_onEnterBounds","_onOutOfBounds","_onInputOver","_onInputOut","_onInputDown","_onInputUp","_onDragStart","_onDragUpdate","_onDragStop","_onAnimationStart","_onAnimationComplete","_onAnimationLoop","onRemovedFromWorld","onKilled","onRevived","onOutOfBounds","onEnterBounds","onInputOver","onInputOut","onInputDown","onInputUp","onDragStart","onDragStop","onAnimationStart","onAnimationComplete","onAnimationLoop","backing","_fixedToCamera","Health","health","maxHealth","damage","kill","heal","InCamera","InputEnabled","inputEnabled","InWorld","_outOfBoundsFired","onEnterBounds$dispatch","onOutOfBounds$dispatch","outOfBoundsKill","inWorld","LifeSpan","lifespan","physicsElapsedMS","revive","onRevived$dispatch","onKilled$dispatch","stopAnimation","BitmapData","hasFrameData","loadFrameData","getFrameData","img","base","frameData","trimmed","spriteSourceSizeX","spriteSourceSizeY","sourceSizeW","sourceSizeH","refreshTexture","frameName","Overlap","overlap","_reset","Reset","ScaleMinMax","checkTransform","scaleMin","scaleMax","setScaleMinMax","Smoothed","existing","object","creature","mesh","Creature","tween","physicsGroup","audio","connect","audioSprite","addSprite","tileSprite","rope","Rope","Text","overFrame","outFrame","downFrame","upFrame","Button","emitter","maxParticles","Arcade","Emitter","retroFont","font","characterWidth","characterHeight","chars","charsPerRow","xSpacing","ySpacing","xOffset","yOffset","RetroFont","bitmapText","tilemap","tileWidth","tileHeight","Tilemap","addToCache","addRenderTexture","video","url","addBitmapData","Tween","align","preUpdatePhysics","preUpdateLifeSpan","preUpdateInWorld","preUpdateCore","_scroll","def","TilingSprite","physicsElapsed","autoScroll","stopScroll","_hasUpdateAnimation","_updateAnimationCallback","updateAnimation","_updateAnimation","segments","difference","_onOverFrame","_onOutFrame","_onDownFrame","_onUpFrame","onOverSound","onOutSound","onDownSound","onUpSound","onOverSoundMarker","onOutSoundMarker","onDownSoundMarker","onUpSoundMarker","onOverMouseOnly","freezeFrames","forceOut","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","Particle","autoScale","scaleData","_s","autoAlpha","alphaData","_a","onEmit","setAlphaData","setScaleData","deviceReadyAt","initialized","node","nodeWebkit","electron","ejecta","crosswalk","chromeOS","linux","macOS","windows","windowsPhone","canvasBitBltShift","file","fileSystem","localStorage","worker","css3D","typedArray","vibration","getUserMedia","quirksMode","arora","chromeVersion","epiphany","firefox","firefoxVersion","ie","ieVersion","trident","tridentVersion","mobileSafari","midori","opera","safari","silk","audioData","ogg","opus","mp3","wav","m4a","webm","oggVideo","h264Video","mp4Video","webmVideo","vp9Video","hlsVideo","iPhone","iPhone4","pixelRatio","littleEndian","LITTLE_ENDIAN","support32bit","onInitialized","nonPrimer","readyCheck","_readyCheck","_monitor","_queue","readyState","_initialize","_checkOS","userAgent","test","vita","kindle","_checkFeatures","getItem","error","WebGLRenderingContext","compatMode","webkitGetUserMedia","mozGetUserMedia","msGetUserMedia","oGetUserMedia","URL","webkitURL","mozURL","msURL","_checkInput","maxTouchPoints","msPointerEnabled","pointerEnabled","_checkFullScreenSupport","fs","cfs","_checkBrowser","RegExp","$1","$3","process","require","versions","_checkVideo","videoElement","canPlayType","_checkAudio","audioElement","_checkDevice","toLowerCase","Int8Array","_checkIsLittleEndian","Uint8ClampedArray","Int32Array","_checkIsUint8ClampedImageData","vibrate","webkitVibrate","mozVibrate","msVibrate","elem","createImageData","_checkCSS3D","has3d","el","transforms","webkitTransform","OTransform","msTransform","MozTransform","getComputedStyle","getPropertyValue","canPlayAudio","canPlayVideo","isConsoleOpen","profile","profileEnd","isAndroidStockBrowser","matches","match","box","scrollY","scrollLeft","scrollX","clientTop","clientLeft","cushion","calibrate","coords","getAspectRatio","inLayoutViewport","primaryFallback","screen","mozOrientation","msOrientation","PORTRAIT","LANDSCAPE","matchMedia","documentBounds","pageXOffset","pageYOffset","treatAsDesktop","clientWidth","clientHeight","offsetWidth","scrollWidth","offsetHeight","scrollHeight","display","msTouchAction","overflowHidden","overflow","translateX","translateY","skewX","skewY","setSmoothingEnabled","vendor","prefix","getSmoothingEnabled","setImageRenderingCrisp","msInterpolationMode","setImageRenderingBicubic","forceSetTimeOut","vendors","requestAnimationFrame","cancelAnimationFrame","_isSetTimeOut","_onLoop","_timeOutID","updateSetTimeout","updateRAF","rafTime","timeToCall","clearTimeout","isSetTimeOut","isRAF","PI2","fuzzyEqual","epsilon","fuzzyLessThan","fuzzyGreaterThan","fuzzyCeil","val","fuzzyFloor","average","sum","shear","snapTo","gap","snapToFloor","snapToCeil","roundTo","place","pow","floorTo","ceilTo","angleBetween","angleBetweenY","angleBetweenPoints","point1","point2","angleBetweenPointsY","reverseAngle","angleRad","normalizeAngle","maxAdd","minSub","wrapValue","isOdd","isEven","minProperty","maxProperty","radians","linearInterpolation","k","linear","bezierInterpolation","bernstein","catmullRomInterpolation","catmullRom","p0","factorial","res","p3","v0","v1","t2","t3","roundAwayFromZero","sinCosGenerator","sinAmplitude","cosAmplitude","frequency","frq","cosTable","sinTable","distanceSq","distancePow","clampBottom","within","mapLinear","smoothstep","smootherstep","percent","degreeToRadiansFactor","radianToDegreesFactor","degrees","seeds","s0","sow","charCodeAt","integer","frac","real","integerInRange","realInRange","normal","pick","ary","weightedPick","timestamp","QuadTree","maxObjects","maxLevels","objects","nodes","_empty","subWidth","subHeight","populate","populateHandler","insert","retrieve","returnObjects","netNoop","isDisabled","getHostName","checkDomainName","updateQueryString","getQueryString","decodeURI","prevTime","elapsedMS","suggestedFps","advancedTiming","frames","fps","fpsMin","fpsMax","msMin","msMax","pauseDuration","timeExpected","Timer","_frameCount","_elapsedAccumulator","_started","_timeLastSecond","_pauseStarted","_justResumed","_timers","timer","autoDestroy","updateAdvancedTiming","updateTimers","previousDateNow","timeCallExpected","_pause","_resume","elapsedSince","since","elapsedSecondsSince","running","expired","onComplete","nextTick","timeCap","_pauseTotal","_now","_marked","_diff","_newTick","MINUTE","SECOND","HALF","QUARTER","repeatCount","tick","TimerEvent","clearEvents","pendingDelete","clearPendingEvents","adjustEvents","baseTime","ms","currentFrame","currentAnim","updateIfVisible","isLoaded","_frameData","_anims","_outputFrames","anim","updateFrameData","copyFrameData","useNumericIndex","getFrameIndexes","validateFrames","checkFrameName","isPlaying","getAnimation","refreshFrame","isPaused","getFrame","getFrameByName","_frameIndex","_frames","loopCount","isFinished","_pauseStartTime","_frameDiff","_frameSkip","onStart","onUpdate","onLoop","_timeLastFrame","_timeNextFrame","updateCurrentFrame","onAnimationStart$dispatch","useLocalFrameIndex","frameIndex","dispatchComplete","onAnimationComplete$dispatch","onAnimationLoop$dispatch","signalUpdate","fromPlay","idx","generateFrameNames","suffix","zeroPad","Frame","rotated","rotationDirection","spriteSourceSizeW","spriteSourceSizeH","setTrim","actualWidth","actualHeight","destX","destY","destWidth","destHeight","getRect","FrameData","_frameNames","addFrame","getFrameRange","getFrames","AnimationParser","spriteSheet","frameWidth","frameHeight","frameMax","spacing","column","JSONData","json","newFrame","filename","sourceSize","spriteSourceSize","JSONDataHash","XMLData","xml","getElementsByTagName","frameX","frameY","autoResolveURL","_cache","binary","bitmapFont","_urlMap","_urlResolver","_urlTemp","onSoundUnlock","_cacheMap","TEXTURE","SOUND","PHYSICS","BINARY","BITMAPFONT","JSON","XML","SHADER","RENDER_TEXTURE","addDefaultImage","addMissingImage","addCanvas","addImage","checkImageKey","removeImage","_resolveURL","addSound","audioTag","decoded","isDecoding","touchLocked","addText","addPhysicsData","addTilemap","mapData","addBinary","binaryData","textureFrame","addBitmapFont","atlasData","atlasType","LoaderParser","jsonBitmapFont","xmlBitmapFont","addJSON","addXML","addVideo","isBlob","addShader","addSpriteSheet","addTextureAtlas","TEXTURE_ATLAS_XML_STARLING","reloadSound","getSound","reloadSoundComplete","updateSound","decodedSound","isSoundDecoded","isSoundReady","checkKey","checkURL","checkCanvasKey","checkTextureKey","checkSoundKey","checkTextKey","checkPhysicsKey","checkTilemapKey","checkBinaryKey","checkBitmapDataKey","checkBitmapFontKey","checkJSONKey","checkXMLKey","checkVideoKey","checkShaderKey","checkRenderTextureKey","full","getTextureFrame","getSoundData","getText","getPhysicsData","fixtureKey","fixtures","fixture","getTilemapData","getBinary","getBitmapData","getBitmapFont","getJSON","getXML","getVideo","getShader","getRenderTexture","getBaseTexture","getFrameCount","getFrameByIndex","getPixiTexture","getPixiBaseTexture","getURL","getKeys","removeCanvas","removeFromPixi","removeSound","removeText","removePhysics","removeTilemap","removeBinary","removeBitmapData","removeBitmapFont","removeJSON","removeXML","removeVideo","removeShader","removeRenderTexture","removeSpriteSheet","removeTextureAtlas","atlas","baseURL","isLoading","preloadSprite","path","onLoadStart","onLoadComplete","onPackComplete","onFileStart","onFileComplete","onFileError","useXDomainRequest","_warnedAboutXDomainRequest","enableParallel","maxParallelDownloads","_withSyncPointDepth","_fileList","_flightQueue","_processingHead","_fileLoadStarted","_totalPackCount","_totalFileCount","_loadedPackCount","_loadedFileCount","TEXTURE_ATLAS_JSON_ARRAY","TEXTURE_ATLAS_JSON_HASH","PHYSICS_LIME_CORONA_JSON","PHYSICS_PHASER_JSON","setPreloadSprite","direction","checkKeyExists","getAssetIndex","bestFound","loaded","loading","getAsset","fileIndex","addToFileList","properties","overwrite","extension","syncPoint","currentFile","replaceInFileList","pack","script","spritesheet","urls","autoDecode","noAudio","audiosprite","jsonURL","jsonData","loadEvent","asBlob","CSV","TILED_JSON","LIME_CORONA_JSON","textureURL","atlasURL","parseXml","atlasJSONArray","atlasJSONHash","atlasXML","withSyncPoint","addSyncPoint","asset","removeFile","updateProgress","processLoadQueue","finishedLoading","requestUrl","requestObject","progress","syncblock","inflightLimit","processPack","loadFile","abnormal","asyncComplete","errorMessage","packData","transformUrl","xhrLoad","fileComplete","loadImageTag","getAudioURL","usingWebAudio","usingAudioTag","loadAudioTag","fileError","getVideoURL","loadVideoTag","jsonLoadComplete","xmlLoadComplete","csvLoadComplete","onload","onerror","controls","autoplay","videoLoadEvent","canplay","Audio","playThroughEvent","XDomainRequest","xhrLoadWithXDR","xhr","XMLHttpRequest","open","responseType","message","send","timeout","ontimeout","onprogress","videoType","uri","lastIndexOf","audioType","reason","status","loadNext","responseText","Blob","response","decode","language","defer","head","contentType","domparser","DOMParser","parseFromString","ActiveXObject","async","loadXML","totalLoadedFiles","totalLoadedPacks","progressFloat","info","common","getAttribute","lineHeight","letters","charCode","xAdvance","kerning","kernings","second","finalizeBitmapFont","_face","_size","_lineHeight","letter","_id","_xoffset","_yoffset","_xadvance","_second","_first","_amount","bitmapFontData","debugNoop","soundInfo","cameraInfo","spriteInputInfo","inputInfo","spriteBounds","ropeSegments","spriteInfo","spriteCoords","lineInfo","pixel","rectangle","quadTree","bodyInfo","box2dWorld","box2dBody","list","getByKey","randomIndex","removeRandomItem","shuffle","transposeMatrix","sourceRowCount","sourceColCount","rotateMatrix","findClosest","arr","NaN","low","high","POSITIVE_INFINITY","numberArray","numberArrayStep","packPixel","unpackPixel","rgba","hsl","hsv","createColor","RGBtoHSL","RGBtoHSV","fromRGBA","toRGBA","HSLtoRGB","q","hueToColor","updateColor","HSVtoRGB","color32","getColor32","componentToHex","hexToRGB","hexToColor","exec","webToColor","web","parseFloat","tempColor","getRGB","HSVColorWheel","HSLColorWheel","interpolateColor","color1","color2","steps","currentStep","src1","src2","red","green","blue","interpolateColorWithRGB","or","og","ob","interpolateRGB","r1","g1","r2","g2","getRandomColor","getWebRGB","getAlpha","getAlphaFloat","getRed","getGreen","getBlue","blendNormal","blendLighten","blendDarken","blendMultiply","blendAverage","blendAdd","blendSubtract","blendDifference","blendNegation","blendScreen","blendExclusion","blendOverlay","blendSoftLight","blendHardLight","blendColorDodge","blendColorBurn","blendLinearDodge","blendLinearBurn","blendLinearLight","blendVividLight","blendPinLight","blendHardMix","blendReflect","blendGlow","blendPhoenix","LinkedList","prev","entity","arcade","ninja","box2d","chipmunk","matter","NINJA","BOX2D","CHIPMUNK","MATTERJS","Ninja","P2","Matter","startSystem","system","Box2D","enableAABB","emitters","ID"],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"phaser-minimum.min.js","sources":["phaser-minimum.js"],"names":["root","this","PIXI","WEBGL_RENDERER","CANVAS_RENDERER","VERSION","_UID","Float32Array","Uint16Array","Uint32Array","ArrayBuffer","Array","PI_2","Math","PI","RAD_TO_DEG","DEG_TO_RAD","RETINA_PREFIX","defaultRenderOptions","view","transparent","antialias","preserveDrawingBuffer","resolution","clearBeforeRender","autoResize","DisplayObject","position","Point","scale","transformCallback","transformCallbackContext","pivot","rotation","alpha","visible","hitArea","renderable","parent","stage","worldAlpha","worldTransform","Matrix","worldPosition","worldScale","worldRotation","_sr","_cr","filterArea","_bounds","Rectangle","_currentBounds","_mask","_cacheAsBitmap","_cacheIsDirty","prototype","constructor","destroy","children","i","length","_destroyCachedSprite","Object","defineProperty","get","item","set","value","isMask","_filters","passes","filterPasses","j","push","_filterBlock","target","_generateCachedSprite","updateTransform","game","p","world","a","b","c","d","tx","ty","pt","wt","rotationCache","sin","cos","x","y","sqrt","atan2","call","displayObjectUpdateTransform","getBounds","matrix","EmptyRectangle","getLocalBounds","identityMatrix","setStageReference","preUpdate","generateTexture","scaleMode","renderer","bounds","renderTexture","RenderTexture","width","height","_tempMatrix","render","updateCache","toGlobal","apply","toLocal","from","applyInverse","_renderCachedSprite","renderSession","_cachedSprite","gl","Sprite","_renderWebGL","_renderCanvas","texture","resize","tempFilters","filters","anchor","DisplayObjectContainer","create","_width","_height","addChild","child","addChildAt","index","removeChild","splice","Error","swapChildren","child2","index1","getChildIndex","index2","indexOf","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","Texture","emptyTexture","tint","cachedTint","tintedTexture","blendMode","blendModes","NORMAL","shader","baseTexture","hasLoaded","onTextureUpdate","frame","setTexture","valid","w0","w1","h0","h1","x1","y1","x2","y2","x3","y3","x4","y4","crop","currentBlendMode","context","globalCompositeOperation","blendModesCanvas","globalAlpha","smoothProperty","scaleModes","LINEAR","dx","trim","dy","roundPixels","setTransform","cw","ch","requiresReTint","CanvasTinter","getTintedTexture","drawImage","cx","cy","source","fromFrame","frameId","TextureCache","fromImage","imageId","crossorigin","SpriteBatch","textureThing","ready","initWebGL","fastSpriteBatch","WebGLFastSpriteBatch","setContext","shaderManager","setShader","fastShader","transform","isRotated","childTransform","Stage","backgroundColor","setBackgroundColor","backgroundColorSplit","hex2rgb","hex","toString","substr","backgroundColorString","rgb2hex","rgb","canUseNewCanvasBlendModes","document","pngHead","pngEnd","magenta","Image","src","yellow","canvas","createElement","getContext","getImageData","data","getNextPowerOfTwo","number","result","isPowerOfTwo","PolyK","Triangulate","sign","n","tgs","avl","al","i0","i1","i2","ax","ay","bx","by","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","isArray","join","createShader","shaderSource","compileShader","getShaderParameter","COMPILE_STATUS","window","console","log","getShaderInfoLog","compileProgram","vertexSrc","fragmentSrc","fragmentShader","vertexShader","shaderProgram","createProgram","attachShader","linkProgram","getProgramParameter","LINK_STATUS","PixiShader","program","textureCount","firstRun","dirty","attributes","init","defaultVertexSrc","useProgram","uSampler","getUniformLocation","projectionVector","offsetVector","dimensions","aVertexPosition","getAttribLocation","aTextureCoord","colorAttribute","key","uniforms","uniformLocation","initUniforms","uniform","type","_init","initSampler2D","glMatrix","glValueLength","glFunc","uniformMatrix2fv","uniformMatrix3fv","uniformMatrix4fv","activeTexture","bindTexture","TEXTURE_2D","_glTextures","id","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","transpose","z","w","_dirty","instances","updateTexture","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","toArray","uniform1f","uniform2f","uniform3fv","bindBuffer","ARRAY_BUFFER","buffer","vertexAttribPointer","FLOAT","ELEMENT_ARRAY_BUFFER","indexBuffer","TRIANGLE_STRIP","lastIndex","clearDirty","graphicsData","reset","graphicsDataPool","Graphics","POLY","points","shape","slice","closed","fill","switchMode","canDrawUsingSimple","buildPoly","buildComplexPoly","lineWidth","buildLine","RECT","buildRectangle","CIRC","ELIP","buildCircle","RREC","buildRoundedRectangle","upload","pop","WebGLGraphicsData","rectData","fillColor","fillAlpha","r","g","verts","vertPos","tempPoints","rrectData","radius","recPoints","concat","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","a1","b1","c1","a2","b2","c2","denom","pdist","dist","indexCount","indexStart","lineColor","lineAlpha","abs","createBuffer","glPoints","bufferData","STATIC_DRAW","glIndicies","glContexts","WebGLRenderer","options","defaultRenderer","_contextOptions","premultipliedAlpha","stencil","WebGLShaderManager","WebGLSpriteBatch","WebGLMaskManager","WebGLFilterManager","WebGLStencilManager","blendModeManager","WebGLBlendModeManager","drawCount","initContext","mapBlendModes","glContextId","disable","DEPTH_TEST","CULL_FACE","enable","BLEND","contextLost","__stage","viewport","bindFramebuffer","FRAMEBUFFER","clearColor","clear","COLOR_BUFFER_BIT","renderDisplayObject","displayObject","setBlendMode","style","createTexture","UNPACK_PREMULTIPLY_ALPHA_WEBGL","NEAREST","mipmap","LINEAR_MIPMAP_LINEAR","NEAREST_MIPMAP_NEAREST","generateMipmap","_powerOf2","blendModesWebGL","ONE","ONE_MINUS_SRC_ALPHA","ADD","SRC_ALPHA","DST_ALPHA","MULTIPLY","DST_COLOR","SCREEN","OVERLAY","DARKEN","LIGHTEN","COLOR_DODGE","COLOR_BURN","HARD_LIGHT","SOFT_LIGHT","DIFFERENCE","EXCLUSION","HUE","SATURATION","COLOR","LUMINOSITY","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","size","numVerts","numIndices","vertices","positions","colors","lastIndexCount","drawing","currentBatchSize","currentBaseTexture","textures","shaders","sprites","AbstractFilter","vertexBuffer","DYNAMIC_DRAW","sprite","uvs","_uvs","aX","aY","x0","y0","renderTilingSprite","tilingTexture","TextureUvs","h","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","DEFAULT","framebufferTexture2D","COLOR_ATTACHMENT0","renderBuffer","createRenderbuffer","bindRenderbuffer","RENDERBUFFER","framebufferRenderbuffer","DEPTH_STENCIL_ATTACHMENT","renderbufferStorage","DEPTH_STENCIL","deleteFramebuffer","deleteTexture","CanvasBuffer","clearRect","CanvasMaskManager","save","cacheAlpha","CanvasGraphics","renderGraphicsMask","clip","restore","tintMethod","tintWithMultiply","fillStyle","fillRect","tintWithPerPixel","rgbValues","pixelData","pixels","canHandleAlpha","putImageData","checkInverseAlpha","s1","s2","canUseMultiply","CanvasRenderer","refresh","navigator","isCocoonJS","screencanvas","removeView","updateGraphicsTint","_fillTint","_lineTint","beginPath","moveTo","lineTo","closePath","strokeStyle","stroke","strokeRect","arc","kappa","ox","oy","xe","ye","xm","ym","bezierCurveTo","rx","ry","maxRadius","min","quadraticCurveTo","len","rect","tintR","tintG","tintB","BaseTextureCache","BaseTextureCacheIdGenerator","BaseTexture","complete","naturalWidth","naturalHeight","imageUrl","forceLoaded","_pixiId","unloadFromGPU","updateSourceImage","newSrc","glTexture","image","crossOrigin","fromCanvas","TextureCacheIdGenerator","FrameCache","TextureSilentFail","noFrame","isTiling","requiresUpdate","setFrame","onBaseTextureLoaded","destroyBase","_updateUvs","tw","th","addTextureToCache","removeTextureFromCache","textureBuffer","renderWebGL","renderCanvas","tempMatrix","Phaser","updateBase","identity","translate","append","realResolution","getImage","getBase64","getCanvas","toDataURL","webGLPixels","Uint8Array","readPixels","tempCanvas","canvasData","exports","module","define","amd","WheelEventProxy","scaleFactor","deltaMode","_scaleFactor","_deltaMode","originalEvent","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","CIRCLE","RECTANGLE","LINE","MATRIX","POINT","ROUNDEDRECTANGLE","CREATURE","VIDEO","trunc","ceil","floor","Function","bind","thisArg","bound","args","boundArgs","arguments","TypeError","F","proto","arg","forEach","fun","t","CheapArray","assert","warn","Utils","getProperty","obj","prop","parts","split","last","l","current","setProperty","chanceRoll","chance","random","randomChoice","choice1","choice2","parseDimension","dimension","f","parseInt","innerWidth","innerHeight","pad","str","dir","padlen","right","left","isPlainObject","nodeType","hasOwnProperty","e","extend","name","copy","copyIsArray","clone","deep","mixinPrototype","mixin","replace","mixinKeys","keys","to","o","childNodes","cloneNode","Circle","diameter","_diameter","_radius","circumference","out","setTo","copyFrom","copyTo","dest","distance","round","output","contains","circumferencePoint","angle","asDegrees","offsetPoint","point","top","bottom","equals","intersects","degToRad","intersectsRectangle","halfWidth","xDist","halfHeight","yDist","xCornerDist","yCornerDist","xCornerDistSq","yCornerDistSq","maxCornerDistSq","Ellipse","normx","normy","Line","fromSprite","startSprite","endSprite","useCenter","center","fromAngle","rotate","line","asSegment","intersectsPoints","reflect","pointOnLine","pointOnSegment","xMin","xMax","max","yMin","yMax","coordinatesOnLine","stepRate","results","sx","sy","err","e2","wrap","uc","ua","ub","normalAngle","fromArray","array","pos","newPos","tx1","d1","invert","add","subtract","multiply","divide","clampX","clamp","clampY","radToDeg","getMagnitude","getMagnitudeSq","setMagnitude","magnitude","normalize","isZero","m","dot","cross","perp","rperp","normalRightHand","negative","multiplyAdd","s","interpolate","project","amt","projectUnit","centroid","pointslength","parse","xProp","yProp","Polygon","area","_points","toNumberArray","flatten","inside","ix","iy","jx","jy","Number","MAX_VALUE","calculateArea","p1","p2","avgHeight","centerOn","centerX","centerY","floorAll","ceilAll","inflate","containsRect","intersection","intersectsRaw","tolerance","union","randomX","randomY","empty","inflatePoint","containsRaw","rw","rh","containsPoint","volume","sameDimensions","aabb","MIN_VALUE","RoundedRectangle","Camera","deadzone","roundPx","atLimit","totalInView","_targetPosition","_edge","_position","FOLLOW_LOCKON","FOLLOW_PLATFORMER","FOLLOW_TOPDOWN","FOLLOW_TOPDOWN_TIGHT","follow","helper","unfollow","focusOn","setPosition","focusOnXY","update","updateTarget","checkBounds","setBoundsToWorld","setSize","Create","bmd","make","bitmapData","ctx","palettes",1,2,3,4,5,6,7,8,9,"A","B","C","D","E","PALETTE_ARNE","PALETTE_JMP","PALETTE_CGA","PALETTE_C64","PALETTE_JAPANESE_MACHINE","pixelWidth","pixelHeight","palette","row","grid","cellWidth","cellHeight","State","camera","cache","input","load","math","sound","time","tweens","particles","physics","rnd","preload","loadUpdate","loadRender","preRender","paused","resumed","pauseUpdate","shutdown","StateManager","pendingState","states","_pendingState","_clearWorld","_clearCache","_created","_args","onStateChange","Signal","onInitCallback","onPreloadCallback","onCreateCallback","onUpdateCallback","onRenderCallback","onResizeCallback","onPreRenderCallback","onLoadUpdateCallback","onLoadRenderCallback","onPausedCallback","onResumedCallback","onPauseUpdateCallback","onShutDownCallback","boot","onPause","pause","onResume","resume","state","autoStart","newState","isBooted","remove","callbackContext","clearWorld","clearCache","checkState","restart","dummy","previousStateKey","clearCurrentState","setCurrentState","dispatch","totalQueuedFiles","totalQueuedPacks","loadComplete","removeAll","debug","link","unlink","_kickstart","getCurrentState","elapsedTime","renderType","_bindings","_prevParams","memorize","_shouldPropagate","active","_boundDispatch","validateListener","listener","fnName","_registerListener","isOnce","listenerContext","priority","binding","prevIndex","_indexOfListener","SignalBinding","_addBinding","execute","_priority","cur","_listener","has","addOnce","_destroy","getNumListeners","halt","bindings","paramsArr","forget","dispose","_this","signal","_isOnce","_signal","callCount","params","handlerReturn","detach","isBound","getListener","getSignal","Filter","prevPoint","Date","mouse","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","exists","currentRenderOrderID","_hiddenVar","_onChange","_backgroundColor","config","parseConfig","DOM","getOffset","Canvas","setUserSelect","setTouchAction","checkVisibility","webkitHidden","mozHidden","msHidden","hidden","event","visibilityChange","addEventListener","onblur","onfocus","onpagehide","onpageshow","device","cocoonJSApp","CocoonJS","App","onSuspended","onActivated","focusLoss","focusGain","gamePaused","gameResumed","Color","valueToColor","getColor","RGBtoString","removeEventListener","Group","addToStage","enableBody","physicsBodyType","Physics","ARCADE","physicsType","alive","ignoreDestroy","pendingDestroy","classType","cursor","enableBodyDebug","physicsSortDirection","onDestroy","cursorIndex","fixedToCamera","cameraOffset","hash","_sortProperty","RETURN_NONE","RETURN_TOTAL","RETURN_CHILD","SORT_ASCENDING","SORT_DESCENDING","silent","body","addToHash","events","onAddedToGroup$dispatch","removeFromHash","addMultiple","moveAll","addAt","updateZ","getAt","createMultiple","quantity","resetCursor","next","previous","swap","child1","bringToTop","getIndex","sendToBack","moveUp","moveDown","xy","oldChild","newChild","hasProperty","operation","force","checkProperty","checkAlive","checkVisible","setAll","setAllChildren","checkAll","addAll","property","amount","subAll","multiplyAll","divideAll","callAllExists","callback","existsValue","callbackFromArray","callAll","method","methodLength","contextLength","renderOrderID","predicate","checkExists","ArraySet","forEachExists","iterate","forEachAlive","forEachDead","sort","order","ascendingSortHandler","descendingSortHandler","customSort","sortHandler","returnType","total","getFirstExists","getFirstAlive","getFirstDead","getTop","getBottom","countLiving","countDead","getRandom","ArrayUtils","getRandomItem","destroyPhase","onRemovedFromGroup$dispatch","group","removeBetween","destroyChildren","soft","World","_definedSize","stateChange","setBounds","useBounds","horizontal","vertical","between","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","text","geom","uuid","topLeft","topMiddle","topRight","bottomLeft","bottomMiddle","bottomRight","ScaleManager","dom","minWidth","maxWidth","minHeight","maxHeight","forceLandscape","forcePortrait","incorrectOrientation","_pageAlignHorizontally","_pageAlignVertically","onOrientationChange","enterIncorrectOrientation","leaveIncorrectOrientation","fullScreenTarget","_createdFullScreenTarget","onFullScreenInit","onFullScreenChange","onFullScreenError","screenOrientation","getScreenOrientation","scaleFactorInversed","margin","aspectRatio","sourceAspectRatio","windowConstraints","compatibility","supportsFullScreen","orientationFallback","noMargins","scrollTo","forceMinimumDocumentHeight","canExpandParent","clickTrampoline","_scaleMode","NO_SCALE","_fullScreenScaleMode","parentIsWindow","parentNode","parentScaleFactor","trackParentInterval","onSizeChange","onResizeContext","_pendingScaleMode","_fullScreenRestore","_gameSize","_userScaleFactor","_userScaleTrim","_lastUpdate","_updateThrottle","_updateThrottleReset","_parentBounds","_tempBounds","_lastReportedCanvasSize","_lastReportedGameSize","_booted","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","visualBounds","newWidth","newHeight","updateDimensions","queueUpdate","currentScaleMode","setUserScale","hScale","vScale","hTrim","vTrim","setResizeCallback","signalSizeChange","setMinMax","prevThrottle","prevWidth","prevHeight","boundsChanged","orientationChanged","updateOrientationState","updateLayout","throttle","updateScalingAndBounds","forceOrientation","classifyOrientation","orientation","previousOrientation","previouslyIncorrect","isLandscape","isPortrait","changed","correctnessChanged","scrollTop","reflowGame","documentElement","setMaximum","setExactFit","isFullScreen","boundingParent","setShowAll","resetCanvas","reflowCanvas","layoutBounds","clientRect","getBoundingClientRect","wc","windowBounds","alignCanvas","parentBounds","canvasBounds","currentEdge","targetEdge","marginLeft","marginRight","marginTop","marginBottom","pageAlignHorizontally","pageAlignVertically","cssWidth","cssHeight","expanding","createFullScreenTarget","fsTarget","background","startFullScreen","allowTrampoline","setTimeout","activePointer","mousePointer","addClickTrampoline","smoothed","cleanupCreatedTarget","initData","targetElement","insertBefore","appendChild","fullscreenKeyboard","requestFullscreen","Element","ALLOW_KEYBOARD_INPUT","stopFullScreen","cancelFullscreen","prepScreenMode","enteringFullscreen","createdTarget","targetWidth","targetHeight","enterFullScreen","leaveFullScreen","letterBox","scaleX1","scaleY1","scaleX2","scaleY2","scaleOnWidth","Game","physicsConfig","isRunning","raf","net","Device","lockRender","stepping","pendingStep","stepCount","onBlur","onFocus","_paused","_codePaused","currentUpdateID","updatesThisFrame","_deltaTime","_lastCount","_spiraling","fpsProblemNotifier","forceSingleUpdate","_nextFpsNotification","enableDebug","RandomDataGenerator","now","whenReady","seed","setUpRenderer","GameObjectFactory","GameObjectCreator","Cache","Loader","Time","TweenManager","Input","SoundManager","Particles","Net","Debug","showDebugHeader","RequestAnimationFrame","stopFocus","focus","hideBanner","webAudio","contextRestored","addToDOM","preventDefault","clearGLTextures","updateLogic","desiredFps","updateRender","slowMotion","slowStep","elapsed","timeStep","enableStep","disableStep","step","removeFromDOM","setMute","cordova","iOS","unsetMute","hitCanvas","hitContext","moveCallbacks","pollRate","enabled","multiInputOverride","MOUSE_TOUCH_COMBINE","speed","circle","maxPointers","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","Touch","MSPointer","Keyboard","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","mouseDownCallback","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","BACK_BUTTON","FORWARD_BUTTON","WHEEL_UP","WHEEL_DOWN","onMouseDown","onMouseMove","onMouseUp","_onMouseUpGlobal","onMouseUpGlobal","onMouseOut","onMouseOver","onMouseWheel","wheelEvent","mouseMoveCallback","withinGame","bindEvent","deltaY","requestPointerLock","element","mozRequestPointerLock","webkitRequestPointerLock","_pointerLockChange","pointerLockChange","pointerLockElement","mozPointerLockElement","webkitPointerLockElement","releasePointerLock","exitPointerLock","mozExitPointerLock","webkitExitPointerLock","_stubsGenerated","makeBinder","defineProperties","detail","deltaX","wheelDeltaX","deltaZ","pointerDownCallback","pointerMoveCallback","pointerUpCallback","_onMSPointerDown","_onMSPointerMove","_onMSPointerUp","onPointerDown","onPointerMove","onPointerUp","pointerType","DeviceButton","buttonCode","isDown","isUp","timeDown","duration","timeUp","repeats","altKey","shiftKey","ctrlKey","onFloat","padFloat","justPressed","justReleased","leftButton","middleButton","rightButton","backButton","forwardButton","eraserButton","ERASER_BUTTON","_holdSent","_history","_nextDrop","_stateReset","clientX","clientY","pageX","pageY","screenX","screenY","rawMovementX","rawMovementY","movementX","movementY","isMouse","previousTapTime","totalTouches","msSinceLastClick","targetObject","positionDown","positionUp","_clickTrampolines","_trampolineTargetObject","resetButtons","updateButtons","buttons","totalActivePointers","_touchedHandler","processInteractiveObjects","shift","fromClick","pollLocked","mozMovementX","webkitMovementX","mozMovementY","webkitMovementY","isDragged","highestRenderOrderID","highestInputPriorityID","candidateTarget","currentNode","first","checked","validForInput","checkPointerDown","checkPointerOver","priorityID","_pointerOutHandler","_pointerOverHandler","leave","currentPointers","callbackArgs","trampolines","trampoline","_releasedHandler","resetMovement","touchLockCallbacks","touchStartCallback","touchMoveCallback","touchEndCallback","touchEnterCallback","touchLeaveCallback","touchCancelCallback","_onTouchStart","_onTouchMove","_onTouchEnd","_onTouchEnter","_onTouchLeave","_onTouchCancel","onTouchStart","onTouchMove","onTouchEnd","onTouchEnter","onTouchLeave","onTouchCancel","consumeDocumentTouches","_documentTouchMove","addTouchLockCallback","removeTouchLockCallback","changedTouches","InputHandler","useHandCursor","_setHandCursor","allowHorizontalDrag","allowVerticalDrag","snapOffset","snapOnDrag","snapOnRelease","snapX","snapY","snapOffsetX","snapOffsetY","pixelPerfectOver","pixelPerfectClick","pixelPerfectAlpha","draggable","boundsRect","boundsSprite","consumePointerEvent","scaleLayer","dragOffset","dragFromCenter","dragStartPoint","snapPoint","_dragPoint","_dragPhase","_wasEnabled","_tempPoint","_pointerData","isOver","isOut","timeOver","timeOut","downDuration","onAddedToGroup","addedToGroup","onRemovedFromGroup","removedFromGroup","flagged","highestID","highestRenderID","includePixelPerfect","isPixelPerfect","pointerX","pointerY","pointerDown","pointerUp","pointerTimeDown","pointerTimeUp","pointerOver","pointerOut","pointerTimeOver","pointerTimeOut","pointerDragged","fastTest","checkPixel","_dx","_dy","_draggedPointerID","updateDrag","onInputOver$dispatch","onInputOut$dispatch","onInputDown$dispatch","startDrag","onInputUp$dispatch","stopDrag","globalToLocalX","globalToLocalY","checkBoundsRect","checkBoundsSprite","onDragUpdate","justOver","delay","overDuration","justOut","enableDrag","lockCenter","pixelPerfect","alphaThreshold","disableDrag","onDragStart$dispatch","onDragStop$dispatch","setDragLock","allowHorizontal","allowVertical","enableSnap","onDrag","onRelease","disableSnap","Component","Angle","wrapAngle","Animation","play","frameRate","loop","killOnComplete","animations","AutoCull","autoCull","inCamera","checkWorldBounds","Bounds","BringToTop","Core","install","components","previousPosition","Events","PhysicsBody","AnimationManager","LoadTexture","loadTexture","FixedToCamera","previousRotation","fresh","_exists","P2JS","removeFromWorld","customRender","Crop","cropRect","_crop","updateCrop","resetFrame","_frame","Delta","Destroy","onDestroy$dispatch","Video","onChangeSource","resizeFrame","BitmapText","_glyphs","_parent","_onDestroy","_onAddedToGroup","_onRemovedFromGroup","_onRemovedFromWorld","_onKilled","_onRevived","_onEnterBounds","_onOutOfBounds","_onInputOver","_onInputOut","_onInputDown","_onInputUp","_onDragStart","_onDragUpdate","_onDragStop","_onAnimationStart","_onAnimationComplete","_onAnimationLoop","onRemovedFromWorld","onKilled","onRevived","onOutOfBounds","onEnterBounds","onInputOver","onInputOut","onInputDown","onInputUp","onDragStart","onDragStop","onAnimationStart","onAnimationComplete","onAnimationLoop","backing","_fixedToCamera","Health","health","maxHealth","damage","kill","heal","InCamera","InputEnabled","inputEnabled","InWorld","_outOfBoundsFired","onEnterBounds$dispatch","onOutOfBounds$dispatch","outOfBoundsKill","inWorld","LifeSpan","lifespan","physicsElapsedMS","revive","onRevived$dispatch","onKilled$dispatch","stopAnimation","BitmapData","hasFrameData","loadFrameData","getFrameData","img","base","frameData","trimmed","spriteSourceSizeX","spriteSourceSizeY","sourceSizeW","sourceSizeH","refreshTexture","frameName","Overlap","overlap","_reset","Reset","ScaleMinMax","checkTransform","scaleMin","scaleMax","setScaleMinMax","Smoothed","existing","object","creature","mesh","Creature","tween","physicsGroup","audio","connect","audioSprite","addSprite","tileSprite","rope","Rope","Text","overFrame","outFrame","downFrame","upFrame","Button","emitter","maxParticles","Arcade","Emitter","retroFont","font","characterWidth","characterHeight","chars","charsPerRow","xSpacing","ySpacing","xOffset","yOffset","RetroFont","bitmapText","tilemap","tileWidth","tileHeight","Tilemap","addToCache","addRenderTexture","video","url","addBitmapData","Tween","align","preUpdatePhysics","preUpdateLifeSpan","preUpdateInWorld","preUpdateCore","_scroll","def","TilingSprite","physicsElapsed","autoScroll","stopScroll","_hasUpdateAnimation","_updateAnimationCallback","updateAnimation","_updateAnimation","segments","difference","_onOverFrame","_onOutFrame","_onDownFrame","_onUpFrame","onOverSound","onOutSound","onDownSound","onUpSound","onOverSoundMarker","onOutSoundMarker","onDownSoundMarker","onUpSoundMarker","onOverMouseOnly","freezeFrames","forceOut","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","Particle","autoScale","scaleData","_s","autoAlpha","alphaData","_a","onEmit","setAlphaData","setScaleData","deviceReadyAt","initialized","node","nodeWebkit","electron","ejecta","crosswalk","chromeOS","linux","macOS","windows","windowsPhone","canvasBitBltShift","file","fileSystem","localStorage","worker","css3D","typedArray","vibration","getUserMedia","quirksMode","arora","chromeVersion","epiphany","firefox","firefoxVersion","ie","ieVersion","trident","tridentVersion","mobileSafari","midori","opera","safari","silk","audioData","ogg","opus","mp3","wav","m4a","webm","oggVideo","h264Video","mp4Video","webmVideo","vp9Video","hlsVideo","iPhone","iPhone4","pixelRatio","littleEndian","LITTLE_ENDIAN","support32bit","onInitialized","nonPrimer","readyCheck","_readyCheck","_monitor","_queue","readyState","_initialize","_checkOS","userAgent","test","vita","kindle","_checkFeatures","getItem","error","WebGLRenderingContext","compatMode","webkitGetUserMedia","mozGetUserMedia","msGetUserMedia","oGetUserMedia","URL","webkitURL","mozURL","msURL","_checkInput","maxTouchPoints","msPointerEnabled","pointerEnabled","_checkFullScreenSupport","fs","cfs","_checkBrowser","RegExp","$1","$3","process","require","versions","_checkVideo","videoElement","canPlayType","_checkAudio","audioElement","_checkDevice","toLowerCase","Int8Array","_checkIsLittleEndian","Uint8ClampedArray","Int32Array","_checkIsUint8ClampedImageData","vibrate","webkitVibrate","mozVibrate","msVibrate","elem","createImageData","_checkCSS3D","has3d","el","transforms","webkitTransform","OTransform","msTransform","MozTransform","getComputedStyle","getPropertyValue","canPlayAudio","canPlayVideo","isConsoleOpen","profile","profileEnd","isAndroidStockBrowser","matches","match","box","scrollY","scrollLeft","scrollX","clientTop","clientLeft","cushion","calibrate","coords","getAspectRatio","inLayoutViewport","primaryFallback","screen","mozOrientation","msOrientation","PORTRAIT","LANDSCAPE","matchMedia","documentBounds","pageXOffset","pageYOffset","treatAsDesktop","clientWidth","clientHeight","offsetWidth","scrollWidth","offsetHeight","scrollHeight","display","msTouchAction","overflowHidden","overflow","translateX","translateY","skewX","skewY","setSmoothingEnabled","vendor","prefix","getSmoothingEnabled","setImageRenderingCrisp","msInterpolationMode","setImageRenderingBicubic","forceSetTimeOut","vendors","requestAnimationFrame","cancelAnimationFrame","_isSetTimeOut","_onLoop","_timeOutID","updateSetTimeout","updateRAF","rafTime","timeToCall","clearTimeout","isSetTimeOut","isRAF","PI2","fuzzyEqual","epsilon","fuzzyLessThan","fuzzyGreaterThan","fuzzyCeil","val","fuzzyFloor","average","sum","shear","snapTo","gap","snapToFloor","snapToCeil","roundTo","place","pow","floorTo","ceilTo","angleBetween","angleBetweenY","angleBetweenPoints","point1","point2","angleBetweenPointsY","reverseAngle","angleRad","normalizeAngle","maxAdd","minSub","wrapValue","isOdd","isEven","minProperty","maxProperty","radians","linearInterpolation","k","linear","bezierInterpolation","bernstein","catmullRomInterpolation","catmullRom","p0","factorial","res","p3","v0","v1","t2","t3","roundAwayFromZero","sinCosGenerator","sinAmplitude","cosAmplitude","frequency","frq","cosTable","sinTable","distanceSq","distancePow","clampBottom","within","mapLinear","smoothstep","smootherstep","percent","degreeToRadiansFactor","radianToDegreesFactor","degrees","seeds","s0","sow","charCodeAt","integer","frac","real","integerInRange","realInRange","normal","pick","ary","weightedPick","timestamp","QuadTree","maxObjects","maxLevels","objects","nodes","_empty","subWidth","subHeight","populate","populateHandler","insert","retrieve","returnObjects","netNoop","isDisabled","getHostName","checkDomainName","updateQueryString","getQueryString","decodeURI","prevTime","elapsedMS","suggestedFps","advancedTiming","frames","fps","fpsMin","fpsMax","msMin","msMax","pauseDuration","timeExpected","Timer","_frameCount","_elapsedAccumulator","_started","_timeLastSecond","_pauseStarted","_justResumed","_timers","timer","autoDestroy","updateAdvancedTiming","updateTimers","previousDateNow","timeCallExpected","_pause","_resume","elapsedSince","since","elapsedSecondsSince","running","expired","onComplete","nextTick","timeCap","_pauseTotal","_now","_marked","_diff","_newTick","MINUTE","SECOND","HALF","QUARTER","repeatCount","tick","TimerEvent","clearEvents","pendingDelete","clearPendingEvents","adjustEvents","baseTime","ms","currentFrame","currentAnim","updateIfVisible","isLoaded","_frameData","_anims","_outputFrames","anim","updateFrameData","copyFrameData","useNumericIndex","getFrameIndexes","validateFrames","checkFrameName","isPlaying","getAnimation","refreshFrame","isPaused","getFrame","getFrameByName","_frameIndex","_frames","loopCount","isFinished","_pauseStartTime","_frameDiff","_frameSkip","onStart","onUpdate","onLoop","_timeLastFrame","_timeNextFrame","updateCurrentFrame","onAnimationStart$dispatch","useLocalFrameIndex","frameIndex","dispatchComplete","onAnimationComplete$dispatch","onAnimationLoop$dispatch","signalUpdate","fromPlay","idx","generateFrameNames","suffix","zeroPad","Frame","rotated","rotationDirection","spriteSourceSizeW","spriteSourceSizeH","setTrim","actualWidth","actualHeight","destX","destY","destWidth","destHeight","getRect","FrameData","_frameNames","addFrame","getFrameRange","getFrames","AnimationParser","spriteSheet","frameWidth","frameHeight","frameMax","spacing","column","JSONData","json","newFrame","filename","sourceSize","spriteSourceSize","JSONDataHash","XMLData","xml","getElementsByTagName","frameX","frameY","autoResolveURL","_cache","binary","bitmapFont","_urlMap","_urlResolver","_urlTemp","onSoundUnlock","_cacheMap","TEXTURE","SOUND","PHYSICS","BINARY","BITMAPFONT","JSON","XML","SHADER","RENDER_TEXTURE","addDefaultImage","addMissingImage","addCanvas","addImage","checkImageKey","removeImage","_resolveURL","addSound","audioTag","decoded","isDecoding","touchLocked","addText","addPhysicsData","addTilemap","mapData","addBinary","binaryData","textureFrame","addBitmapFont","atlasData","atlasType","LoaderParser","jsonBitmapFont","xmlBitmapFont","addJSON","addXML","addVideo","isBlob","addShader","addSpriteSheet","addTextureAtlas","TEXTURE_ATLAS_XML_STARLING","reloadSound","getSound","reloadSoundComplete","updateSound","decodedSound","isSoundDecoded","isSoundReady","checkKey","checkURL","checkCanvasKey","checkTextureKey","checkSoundKey","checkTextKey","checkPhysicsKey","checkTilemapKey","checkBinaryKey","checkBitmapDataKey","checkBitmapFontKey","checkJSONKey","checkXMLKey","checkVideoKey","checkShaderKey","checkRenderTextureKey","full","getTextureFrame","getSoundData","getText","getPhysicsData","fixtureKey","fixtures","fixture","getTilemapData","getBinary","getBitmapData","getBitmapFont","getJSON","getXML","getVideo","getShader","getRenderTexture","getBaseTexture","getFrameCount","getFrameByIndex","getPixiTexture","getPixiBaseTexture","getURL","getKeys","removeCanvas","removeFromPixi","removeSound","removeText","removePhysics","removeTilemap","removeBinary","removeBitmapData","removeBitmapFont","removeJSON","removeXML","removeVideo","removeShader","removeRenderTexture","removeSpriteSheet","removeTextureAtlas","atlas","baseURL","isLoading","preloadSprite","path","onLoadStart","onLoadComplete","onPackComplete","onFileStart","onFileComplete","onFileError","useXDomainRequest","_warnedAboutXDomainRequest","enableParallel","maxParallelDownloads","_withSyncPointDepth","_fileList","_flightQueue","_processingHead","_fileLoadStarted","_totalPackCount","_totalFileCount","_loadedPackCount","_loadedFileCount","TEXTURE_ATLAS_JSON_ARRAY","TEXTURE_ATLAS_JSON_HASH","PHYSICS_LIME_CORONA_JSON","PHYSICS_PHASER_JSON","setPreloadSprite","direction","checkKeyExists","getAssetIndex","bestFound","loaded","loading","getAsset","fileIndex","addToFileList","properties","overwrite","extension","syncPoint","currentFile","replaceInFileList","pack","script","spritesheet","urls","autoDecode","noAudio","audiosprite","jsonURL","jsonData","loadEvent","asBlob","CSV","TILED_JSON","LIME_CORONA_JSON","textureURL","atlasURL","parseXml","atlasJSONArray","atlasJSONHash","atlasXML","withSyncPoint","addSyncPoint","asset","removeFile","updateProgress","processLoadQueue","finishedLoading","requestUrl","requestObject","progress","syncblock","inflightLimit","processPack","loadFile","abnormal","asyncComplete","errorMessage","packData","transformUrl","xhrLoad","fileComplete","loadImageTag","getAudioURL","usingWebAudio","usingAudioTag","loadAudioTag","fileError","getVideoURL","loadVideoTag","jsonLoadComplete","xmlLoadComplete","csvLoadComplete","onload","onerror","controls","autoplay","videoLoadEvent","canplay","Audio","playThroughEvent","XDomainRequest","xhrLoadWithXDR","xhr","XMLHttpRequest","open","responseType","message","send","timeout","ontimeout","onprogress","videoType","uri","lastIndexOf","audioType","reason","status","loadNext","responseText","Blob","response","decode","language","defer","head","contentType","domparser","DOMParser","parseFromString","ActiveXObject","async","loadXML","totalLoadedFiles","totalLoadedPacks","progressFloat","info","common","getAttribute","lineHeight","letters","charCode","xAdvance","kerning","kernings","second","finalizeBitmapFont","_face","_size","_lineHeight","letter","_id","_xoffset","_yoffset","_xadvance","_second","_first","_amount","bitmapFontData","debugNoop","soundInfo","cameraInfo","spriteInputInfo","inputInfo","spriteBounds","ropeSegments","spriteInfo","spriteCoords","lineInfo","pixel","rectangle","quadTree","bodyInfo","box2dWorld","box2dBody","list","getByKey","randomIndex","removeRandomItem","shuffle","transposeMatrix","sourceRowCount","sourceColCount","rotateMatrix","findClosest","arr","NaN","low","high","POSITIVE_INFINITY","numberArray","numberArrayStep","packPixel","unpackPixel","rgba","hsl","hsv","createColor","RGBtoHSL","RGBtoHSV","fromRGBA","toRGBA","HSLtoRGB","q","hueToColor","updateColor","HSVtoRGB","color32","getColor32","componentToHex","hexToRGB","hexToColor","exec","webToColor","web","parseFloat","tempColor","getRGB","HSVColorWheel","HSLColorWheel","interpolateColor","color1","color2","steps","currentStep","src1","src2","red","green","blue","interpolateColorWithRGB","or","og","ob","interpolateRGB","r1","g1","r2","g2","getRandomColor","getWebRGB","getAlpha","getAlphaFloat","getRed","getGreen","getBlue","blendNormal","blendLighten","blendDarken","blendMultiply","blendAverage","blendAdd","blendSubtract","blendDifference","blendNegation","blendScreen","blendExclusion","blendOverlay","blendSoftLight","blendHardLight","blendColorDodge","blendColorBurn","blendLinearDodge","blendLinearBurn","blendLinearLight","blendVividLight","blendPinLight","blendHardMix","blendReflect","blendGlow","blendPhoenix","LinkedList","prev","entity","arcade","ninja","box2d","chipmunk","matter","NINJA","BOX2D","CHIPMUNK","MATTERJS","Ninja","P2","Matter","startSystem","system","Box2D","enableAABB","emitters","ID"],"mappings":"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"} \ No newline at end of file diff --git a/build/custom/phaser-minimum.min.js b/build/custom/phaser-minimum.min.js index 34fa2c4a1..505bea667 100644 --- a/build/custom/phaser-minimum.min.js +++ b/build/custom/phaser-minimum.min.js @@ -6,10 +6,10 @@ a.bindFramebuffer(a.FRAMEBUFFER,i.frameBuffer),a.activeTexture(a.TEXTURE0),a.bin },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 void 0===d&&(d=!1),void 0===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.Ellipse=function(a,b,d,e){a=a||0,b=b||0,d=d||0,e=e||0,this.x=a,this.y=b,this.width=d,this.height=e,this.type=c.ELLIPSE},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 void 0===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)},random:function(a){void 0===a&&(a=new c.Point);var b=Math.random()*Math.PI*2,d=Math.random();return a.x=Math.sqrt(d)*Math.cos(b),a.y=Math.sqrt(d)*Math.sin(b),a.x=this.x+a.x*this.width/2,a.y=this.y+a.y*this.height/2,a},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},PIXI.Ellipse=c.Ellipse,c.Line=function(a,b,d,e){a=a||0,b=b||0,d=d||0,e=e||0,this.start=new c.Point(a,b),this.end=new c.Point(d,e),this.type=c.LINE},c.Line.prototype={setTo:function(a,b,c,d){return this.start.setTo(a,b),this.end.setTo(c,d),this},fromSprite:function(a,b,c){return void 0===c&&(c=!1),c?this.setTo(a.center.x,a.center.y,b.center.x,b.center.y):this.setTo(a.x,a.y,b.x,b.y)},fromAngle:function(a,b,c,d){return this.start.setTo(a,b),this.end.setTo(a+Math.cos(c)*d,b+Math.sin(c)*d),this},rotate:function(a,b){var c=this.start.x,d=this.start.y;return this.start.rotate(this.end.x,this.end.y,a,b,this.length),this.end.rotate(c,d,a,b,this.length),this},intersects:function(a,b,d){return c.Line.intersectsPoints(this.start,this.end,a.start,a.end,b,d)},reflect:function(a){return c.Line.reflect(this,a)},pointOnLine:function(a,b){return(a-this.start.x)*(this.end.y-this.start.y)===(this.end.x-this.start.x)*(b-this.start.y)},pointOnSegment:function(a,b){var c=Math.min(this.start.x,this.end.x),d=Math.max(this.start.x,this.end.x),e=Math.min(this.start.y,this.end.y),f=Math.max(this.start.y,this.end.y);return this.pointOnLine(a,b)&&a>=c&&d>=a&&b>=e&&f>=b},random:function(a){void 0===a&&(a=new c.Point);var b=Math.random();return a.x=this.start.x+b*(this.end.x-this.start.x),a.y=this.start.y+b*(this.end.y-this.start.y),a},coordinatesOnLine:function(a,b){void 0===a&&(a=1),void 0===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 void 0===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)}}),Object.defineProperty(c.Line.prototype,"normalX",{get:function(){return Math.cos(this.angle-1.5707963267948966)}}),Object.defineProperty(c.Line.prototype,"normalY",{get:function(){return Math.sin(this.angle-1.5707963267948966)}}),Object.defineProperty(c.Line.prototype,"normalAngle",{get:function(){return c.Math.wrap(this.angle-1.5707963267948966,-Math.PI,Math.PI)}}),c.Line.intersectsPoints=function(a,b,d,e,f,g){void 0===f&&(f=!0),void 0===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.Line.reflect=function(a,b){return 2*b.normalAngle-3.141592653589793-a.angle},c.Matrix=function(a,b,d,e,f,g){a=a||1,b=b||0,d=d||0,e=e||1,f=f||0,g=g||0,this.a=a,this.b=b,this.c=d,this.d=e,this.tx=f,this.ty=g,this.type=c.MATRIX},c.Matrix.prototype={fromArray:function(a){return this.setTo(a[0],a[1],a[3],a[4],a[2],a[5])},setTo:function(a,b,c,d,e,f){return this.a=a,this.b=b,this.c=c,this.d=d,this.tx=e,this.ty=f,this},clone:function(a){return void 0===a||null===a?a=new c.Matrix(this.a,this.b,this.c,this.d,this.tx,this.ty):(a.a=this.a,a.b=this.b,a.c=this.c,a.d=this.d,a.tx=this.tx,a.ty=this.ty),a},copyTo:function(a){return a.copyFrom(this),a},copyFrom:function(a){return this.a=a.a,this.b=a.b,this.c=a.c,this.d=a.d,this.tx=a.tx,this.ty=a.ty,this},toArray:function(a,b){return void 0===b&&(b=new PIXI.Float32Array(9)),a?(b[0]=this.a,b[1]=this.b,b[2]=0,b[3]=this.c,b[4]=this.d,b[5]=0,b[6]=this.tx,b[7]=this.ty,b[8]=1):(b[0]=this.a,b[1]=this.c,b[2]=this.tx,b[3]=this.b,b[4]=this.d,b[5]=this.ty,b[6]=0,b[7]=0,b[8]=1),b},apply:function(a,b){return void 0===b&&(b=new c.Point),b.x=this.a*a.x+this.c*a.y+this.tx,b.y=this.b*a.x+this.d*a.y+this.ty,b},applyInverse:function(a,b){void 0===b&&(b=new c.Point);var d=1/(this.a*this.d+this.c*-this.b),e=a.x,f=a.y;return b.x=this.d*d*e+-this.c*d*f+(this.ty*this.c-this.tx*this.d)*d,b.y=this.a*d*f+-this.b*d*e+(-this.ty*this.a+this.tx*this.b)*d,b},translate:function(a,b){return this.tx+=a,this.ty+=b,this},scale:function(a,b){return this.a*=a,this.d*=b,this.c*=a,this.b*=b,this.tx*=a,this.ty*=b,this},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},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},identity:function(){return this.setTo(1,0,0,1,0,0)}},c.identityMatrix=new c.Matrix,PIXI.Matrix=c.Matrix,PIXI.identityMatrix=c.identityMatrix,c.Point=function(a,b){a=a||0,b=b||0,this.x=a,this.y=b,this.type=c.POINT},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 void 0===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 void 0===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)},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 void 0===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 void 0===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 void 0===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 void 0===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.negative=function(a,b){return void 0===b&&(b=new c.Point),b.setTo(-a.x,-a.y)},c.Point.multiplyAdd=function(a,b,d,e){return void 0===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 void 0===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 void 0===b&&(b=new c.Point),b.setTo(-a.y,a.x)},c.Point.rperp=function(a,b){return void 0===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){void 0===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){void 0===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 void 0===b&&(b=new c.Point),b.setTo(-1*a.y,a.x)},c.Point.normalize=function(a,b){void 0===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){void 0===f&&(f=!1),void 0===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.x=b+g*Math.cos(h),a.y=d+g*Math.sin(h),a},c.Point.centroid=function(a,b){if(void 0===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.Polygon=function(){this.area=0,this._points=[],arguments.length>0&&this.setTo.apply(this,arguments),this.closed=!0,this.type=c.POLYGON},c.Polygon.prototype={toNumberArray:function(a){void 0===a&&(a=[]);for(var b=0;b=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,c=0,d=a.length;d>c;c++){if("number"==typeof a[c]){var e=new PIXI.Point(a[c],a[c+1]);c++}else var e=new PIXI.Point(a[c].x,a[c].y);this._points.push(e),e.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.Polygon=c.Polygon,c.Rectangle=function(a,b,d,e){a=a||0,b=b||0,d=d||0,e=e||0,this.x=a,this.y=b,this.width=d,this.height=e,this.type=c.RECTANGLE},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 void 0===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)},ceil:function(){this.x=Math.ceil(this.x),this.y=Math.ceil(this.y)},ceilAll:function(){this.x=Math.ceil(this.x),this.y=Math.ceil(this.y),this.width=Math.ceil(this.width),this.height=Math.ceil(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)},resize:function(a,b){return this.width=a,this.height=b,this},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){return c.Rectangle.intersects(this,a)},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)},random:function(a){return void 0===a&&(a=new c.Point),a.x=this.randomX,a.y=this.randomY,a},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,"bottomLeft",{get:function(){return new c.Point(this.x,this.bottom)},set:function(a){this.x=a.x,this.bottom=a.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 void 0===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 void 0===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 void 0===f&&(f=0),!(b>a.right+f||ca.bottom+f||ed&&(d=a.x),a.xf&&(f=a.y),a.y=c&&a<=c+this.width){var d=this.y;if(b>=d&&b<=d+this.height)return!0}return!1}},c.RoundedRectangle.prototype.constructor=c.RoundedRectangle,PIXI.RoundedRectangle=c.RoundedRectangle,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.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.displayObject=null,this.scale=null,this.totalInView=0,this._targetPosition=new c.Point,this._edge=0,this._position=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={preUpdate:function(){this.totalInView=0},follow:function(a,b){void 0===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),this.target.parent&&this._targetPosition.multiply(this.target.parent.worldTransform.a,this.target.parent.worldTransform.d),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.copyFrom(this.game.world.bounds)},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.Create=function(a){this.game=a,this.bmd=a.make.bitmapData(),this.canvas=this.bmd.canvas,this.ctx=this.bmd.context,this.palettes=[{0:"#000",1:"#9D9D9D",2:"#FFF",3:"#BE2633",4:"#E06F8B",5:"#493C2B",6:"#A46422",7:"#EB8931",8:"#F7E26B",9:"#2F484E",A:"#44891A",B:"#A3CE27",C:"#1B2632",D:"#005784",E:"#31A2F2",F:"#B2DCEF"},{0:"#000",1:"#191028",2:"#46af45",3:"#a1d685",4:"#453e78",5:"#7664fe",6:"#833129",7:"#9ec2e8",8:"#dc534b",9:"#e18d79",A:"#d6b97b",B:"#e9d8a1",C:"#216c4b",D:"#d365c8",E:"#afaab9",F:"#f5f4eb"},{0:"#000",1:"#2234d1",2:"#0c7e45",3:"#44aacc",4:"#8a3622",5:"#5c2e78",6:"#aa5c3d",7:"#b5b5b5",8:"#5e606e",9:"#4c81fb",A:"#6cd947",B:"#7be2f9",C:"#eb8a60",D:"#e23d69",E:"#ffd93f",F:"#fff"},{0:"#000",1:"#fff",2:"#8b4131",3:"#7bbdc5",4:"#8b41ac",5:"#6aac41",6:"#3931a4",7:"#d5de73",8:"#945a20",9:"#5a4100",A:"#bd736a",B:"#525252",C:"#838383",D:"#acee8b",E:"#7b73de",F:"#acacac"},{0:"#000",1:"#191028",2:"#46af45",3:"#a1d685",4:"#453e78",5:"#7664fe",6:"#833129",7:"#9ec2e8",8:"#dc534b",9:"#e18d79",A:"#d6b97b",B:"#e9d8a1",C:"#216c4b",D:"#d365c8",E:"#afaab9",F:"#fff"}]},c.Create.PALETTE_ARNE=0,c.Create.PALETTE_JMP=1,c.Create.PALETTE_CGA=2,c.Create.PALETTE_C64=3,c.Create.PALETTE_JAPANESE_MACHINE=4,c.Create.prototype={texture:function(a,b,c,d,e){void 0===c&&(c=8),void 0===d&&(d=c),void 0===e&&(e=0);var f=b[0].length*c,g=b.length*d;this.bmd.resize(f,g),this.bmd.clear();for(var h=0;hg;g+=e)this.ctx.fillRect(0,g,b,1);for(var h=0;b>h;h+=d)this.ctx.fillRect(h,0,1,c);return this.bmd.generateTexture(a)}},c.Create.prototype.constructor=c.Create,c.State=function(){this.game=null,this.key="",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={init:function(){},preload:function(){},loadUpdate:function(){},loadRender:function(){},create:function(){},update:function(){},preRender:function(){},render:function(){},resize:function(){},paused:function(){},resumed: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.onStateChange=new c.Signal,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),null!==this._pendingState&&"string"!=typeof this._pendingState&&this.add("default",this._pendingState,!0)},add:function(a,b,d){void 0===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.onPreRenderCallback=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){void 0===b&&(b=!0),void 0===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){void 0===a&&(a=!0),void 0===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){var a=this.current;if(this.clearCurrentState(),this.setCurrentState(this._pendingState),this.onStateChange.dispatch(this.current,a),this.current!==this._pendingState)return;this._pendingState=null,this.onPreloadCallback?(this.game.load.reset(!0),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||this.states[a].create||this.states[a].update||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,this.states[a].key=a},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&&this.game.physics.reset(),this.current=a,this._created=!1,this.onInitCallback.apply(this.callbackContext,this._args),a===this._pendingState&&(this._args=[]),this.game._kickstart=!0},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(a){this._created&&this.onPreRenderCallback&&this.onPreRenderCallback.call(this.callbackContext,this.game,a)},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.context.restore()):this.onRenderCallback.call(this.callbackContext,this.game)):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,this.current=""}},c.StateManager.prototype.constructor=c.StateManager,Object.defineProperty(c.StateManager.prototype,"created",{get:function(){return this._created}}),c.Signal=function(){},c.Signal.prototype={_bindings:null,_prevParams:null,memorize:!1,_shouldPropagate:!0,active:!0,_boundDispatch:!0,validateListener:function(a,b){if("function"!=typeof a)throw new Error("Phaser.Signal: listener is a required param of {fn}() and should be a Function.".replace("{fn}",b))},_registerListener:function(a,b,d,e,f){var g,h=this._indexOfListener(a,d);if(-1!==h){if(g=this._bindings[h],g.isOnce()!==b)throw new Error("You cannot add"+(b?"":"Once")+"() then add"+(b?"Once":"")+"() the same listener without removing the relationship first.")}else g=new c.SignalBinding(this,a,b,d,e,f),this._addBinding(g);return this.memorize&&this._prevParams&&g.execute(this._prevParams),g},_addBinding:function(a){this._bindings||(this._bindings=[]);var b=this._bindings.length;do b--;while(this._bindings[b]&&a._priority<=this._bindings[b]._priority);this._bindings.splice(b+1,0,a)},_indexOfListener:function(a,b){if(!this._bindings)return-1;void 0===b&&(b=null);for(var c,d=this._bindings.length;d--;)if(c=this._bindings[d],c._listener===a&&c.context===b)return d;return-1},has:function(a,b){return-1!==this._indexOfListener(a,b)},add:function(a,b,c){this.validateListener(a,"add");var d=[];if(arguments.length>3)for(var e=3;e3)for(var e=3;ea||a>=this.children.length?-1:this.getChildAt(a)},c.Group.prototype.create=function(a,b,c,d,e){void 0===e&&(e=!0);var f=new this.classType(this.game,a,b,c,d);return f.exists=e,f.visible=e,f.alive=e,this.addChild(f),f.z=this.children.length,this.enableBody&&this.game.physics.enable(f,this.physicsBodyType,this.enableBodyDebug),f.events&&f.events.onAddedToGroup$dispatch(f,this),null===this.cursor&&(this.cursor=f),f},c.Group.prototype.createMultiple=function(a,b,c,d){void 0===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 void 0===a&&(a=0),a>this.children.length-1&&(a=0),this.cursor?(this.cursorIndex=a,this.cursor=this.children[this.cursorIndex],this.cursor):void 0},c.Group.prototype.next=function(){return this.cursor?(this.cursorIndex>=this.children.length-1?this.cursorIndex=0:this.cursorIndex++,this.cursor=this.children[this.cursorIndex],this.cursor):void 0},c.Group.prototype.previous=function(){return this.cursor?(0===this.cursorIndex?this.cursorIndex=this.children.length-1:this.cursorIndex--,this.cursor=this.children[this.cursorIndex],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);return-1!==d?(b.parent&&(b.parent instanceof c.Group?b.parent.remove(b):b.parent.removeChild(b)),this.remove(a),this.addAt(b,d),a):void 0},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(void 0===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 void 0===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 void 0===g&&(g=!1),b=b.split("."),void 0===d&&(d=!1),void 0===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){void 0===c&&(c=!1),void 0===d&&(d=!1),void 0===f&&(f=!1),a=a.split("."),e=e||0;for(var g=0;g2){c=[];for(var d=2;d2){e=[];for(var f=2;f2){d=[null];for(var e=2;e2){d=[null];for(var e=2;e2){d=[null];for(var e=2;eb[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;for(var h=0,i=0;i0?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(void 0===b&&(b=!1),void 0===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.removeFromHash(a),this.updateZ(),this.cursor===a&&this.next(),b&&d&&d.destroy(!0),!0},c.Group.prototype.moveAll=function(a,b){if(void 0===b&&(b=!1),this.children.length>0&&a instanceof c.Group){do a.add(this.children[0],b);while(this.children.length>0);this.hash=[],this.cursor=null}return a},c.Group.prototype.removeAll=function(a,b){if(void 0===a&&(a=!1),void 0===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]);this.removeFromHash(c),a&&c&&c.destroy(!0)}while(this.children.length>0);this.hash=[],this.cursor=null}},c.Group.prototype.removeBetween=function(a,b,c,d){if(void 0===b&&(b=this.children.length-1),void 0===c&&(c=!1),void 0===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]);this.removeFromHash(f),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||(void 0===a&&(a=!0),void 0===b&&(b=!1),this.onDestroy.dispatch(this,a,b),this.removeAll(a),this.cursor=null,this.filters=null,this.pendingDestroy=!1,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)}}),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,this.game.state.onStateChange.add(this.stateChange,this)},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.stateChange=function(){this.x=0,this.y=0,this.camera.reset()},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.x=a,this.y=b,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,this.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();(f||g)&&(this.onResize&&this.onResize.call(this.onResizeContext,this,e),this.updateLayout(),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,Object.defineProperty(c.ScaleManager.prototype,"boundingParent",{get:function(){if(this.parentIsWindow||this.isFullScreen&&!this._createdFullScreenTarget)return null;var a=this.game.canvas&&this.game.canvas.parentNode;return a||null}}),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,"isGamePortrait",{get:function(){return this.height>this.width}}),Object.defineProperty(c.ScaleManager.prototype,"isGameLandscape",{get:function(){return this.width>this.height}}),c.Game=function(a,b,d,e,f,g,h,i){return this.id=c.GAMES.push(this)-1,this.config=null,this.physicsConfig=i,this.parent="",this.width=800,this.height=600,this.resolution=1,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.plugins=null,this.rnd=null,this.device=c.Device,this.camera=null,this.canvas=null,this.context=null,this.debug=null,this.particles=null,this.create=null,this.lockRender=!1,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.currentUpdateID=0,this.updatesThisFrame=1,this._deltaTime=0,this._lastCount=0,this._spiraling=0,this._kickstart=!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)),this.device.whenReady(this.boot,this),this},c.Game.prototype={parseConfig:function(a){this.config=a,void 0===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.resolution&&(this.resolution=a.resolution),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||(this.onPause=new c.Signal,this.onResume=new c.Signal,this.onBlur=new c.Signal,this.onFocus=new c.Signal,this.isBooted=!0,this.math=c.Math,this.scale=new c.ScaleManager(this,this._width,this._height),this.stage=new c.Stage(this),this.setUpRenderer(),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.create=new c.Create(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.debug={preUpdate:function(){},update:function(){},reset:function(){}},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._kickstart=!0,window.focus&&(!window.PhaserGlobal||window.PhaserGlobal&&!window.PhaserGlobal.stopFocus)&&window.focus(),this.raf.start())},showDebugHeader:function(){if(!window.PhaserGlobal||!window.PhaserGlobal.hideBanner){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: #9854d8","background: #6c2ca7","color: #ffffff; background: #450f78;","background: #6c2ca7","background: #9854d8","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:this.resolution,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:this.resolution,antialias:this.antialias,preserveDrawingBuffer:this.preserveDrawingBuffer}),this.context=null,this.canvas.addEventListener("webglcontextlost",this.contextLost.bind(this),!1),this.canvas.addEventListener("webglcontextrestored",this.contextRestored.bind(this),!1);this.renderType!==c.HEADLESS&&(this.stage.smoothed=this.antialias,c.Canvas.addToDOM(this.canvas,this.parent,!1),c.Canvas.setTouchAction(this.canvas))},contextLost:function(a){a.preventDefault(),this.renderer.contextLost=!0},contextRestored:function(){this.renderer.initContext(),this.cache.clearGLTextures(),this.renderer.contextLost=!1},update:function(a){if(this.time.update(a),this._kickstart)return this.updateLogic(1/this.time.desiredFps),this.stage.updateTransform(),this.updateRender(this.time.slowMotion*this.time.desiredFps),void(this._kickstart=!1);if(this._spiraling>1&&!this.forceSingleUpdate)this.time.time>this._nextFpsNotification&&(this._nextFpsNotification=this.time.time+1e4,this.fpsProblemNotifier.dispatch()),this._deltaTime=0,this._spiraling=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);var c=0;for(this.updatesThisFrame=Math.floor(this._deltaTime/b),this.forceSingleUpdate&&(this.updatesThisFrame=Math.min(1,this.updatesThisFrame));this._deltaTime>=b&&(this._deltaTime-=b,this.currentUpdateID=c,this.updateLogic(1/this.time.desiredFps),this.stage.updateTransform(),c++,!this.forceSingleUpdate||1!==c););c>this._lastCount?this._spiraling++:c=c.Input.MAX_POINTERS)return console.warn("Phaser.Input.addPointer: Maximum limit of "+c.Input.MAX_POINTERS+" pointers reached."),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&&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 a-b},getPointer:function(a){void 0===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._pollCounterthis.game.time.time},justReleased:function(a){return a=a||250,this.isUp&&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,this.altKey=!1,this.shiftKey=!1,this.ctrlKey=!1},destroy:function(){this.onDown.dispose(),this.onUp.dispose(),this.onFloat.dispose(),this.parent=null,this.game=null}},c.DeviceButton.prototype.constructor=c.DeviceButton,Object.defineProperty(c.DeviceButton.prototype,"duration",{get:function(){return this.isUp?-1:this.game.time.time-this.timeDown}}),c.Pointer=function(a,b){this.game=a,this.id=b,this.type=c.POINTER,this.exists=!0,this.identifier=0,this.pointerId=null,this.target=null,this.button=null,this.leftButton=new c.DeviceButton(this,c.Pointer.LEFT_BUTTON),this.middleButton=new c.DeviceButton(this,c.Pointer.MIDDLE_BUTTON),this.rightButton=new c.DeviceButton(this,c.Pointer.RIGHT_BUTTON),this.backButton=new c.DeviceButton(this,c.Pointer.BACK_BUTTON),this.forwardButton=new c.DeviceButton(this,c.Pointer.FORWARD_BUTTON),this.eraserButton=new c.DeviceButton(this,c.Pointer.ERASER_BUTTON),this._holdSent=!1,this._history=[],this._nextDrop=0,this._stateReset=!1,this.withinGame=!1,this.clientX=-1,this.clientY=-1,this.pageX=-1,this.pageY=-1,this.screenX=-1,this.screenY=-1,this.rawMovementX=0,this.rawMovementY=0,this.movementX=0,this.movementY=0,this.x=-1,this.y=-1,this.isMouse=0===b,this.isDown=!1,this.isUp=!0,this.timeDown=0,this.timeUp=0,this.previousTapTime=0,this.totalTouches=0,this.msSinceLastClick=Number.MAX_VALUE,this.targetObject=null,this.active=!1,this.dirty=!1,this.position=new c.Point,this.positionDown=new c.Point,this.positionUp=new c.Point,this.circle=new c.Circle(0,0,44),this._clickTrampolines=null,this._trampolineTargetObject=null},c.Pointer.NO_BUTTON=0,c.Pointer.LEFT_BUTTON=1,c.Pointer.RIGHT_BUTTON=2,c.Pointer.MIDDLE_BUTTON=4,c.Pointer.BACK_BUTTON=8,c.Pointer.FORWARD_BUTTON=16,c.Pointer.ERASER_BUTTON=32,c.Pointer.prototype={resetButtons:function(){this.isDown=!1,this.isUp=!0,this.isMouse&&(this.leftButton.reset(),this.middleButton.reset(),this.rightButton.reset(),this.backButton.reset(),this.forwardButton.reset(),this.eraserButton.reset())},updateButtons:function(a){this.button=a.button;var b=a.buttons;void 0!==b&&(c.Pointer.LEFT_BUTTON&b?this.leftButton.start(a):this.leftButton.stop(a),c.Pointer.RIGHT_BUTTON&b?this.rightButton.start(a):this.rightButton.stop(a),c.Pointer.MIDDLE_BUTTON&b?this.middleButton.start(a):this.middleButton.stop(a),c.Pointer.BACK_BUTTON&b?this.backButton.start(a):this.backButton.stop(a),c.Pointer.FORWARD_BUTTON&b?this.forwardButton.start(a):this.forwardButton.stop(a),c.Pointer.ERASER_BUTTON&b?this.eraserButton.start(a):this.eraserButton.stop(a),a.ctrlKey&&this.leftButton.isDown&&this.rightButton.start(a),this.isUp=!0,this.isDown=!1,(this.leftButton.isDown||this.rightButton.isDown||this.middleButton.isDown||this.backButton.isDown||this.forwardButton.isDown||this.eraserButton.isDown)&&(this.isUp=!1,this.isDown=!0))},start:function(a){return a.pointerId&&(this.pointerId=a.pointerId),this.identifier=a.identifier,this.target=a.target,this.isMouse?this.updateButtons(a):(this.isDown=!0,this.isUp=!1),this._history=[],this.active=!0,this.withinGame=!0,this.dirty=!1,this._clickTrampolines=null,this._trampolineTargetObject=null,this.msSinceLastClick=this.game.time.time-this.timeDown,this.timeDown=this.game.time.time,this._holdSent=!1,this.move(a,!0),this.positionDown.setTo(this.x,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.totalActivePointers)&&(this.game.input.x=this.x,this.game.input.y=this.y,this.game.input.position.setTo(this.x,this.y),this.game.input.onDown.dispatch(this,a),this.game.input.resetSpeed(this.x,this.y)),this._stateReset=!1,this.totalTouches++,null!==this.targetObject&&this.targetObject._touchedHandler(this),this},update:function(){this.active&&(this.dirty&&(this.game.input.interactiveItems.total>0&&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.totalActivePointers)&&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(void 0===b&&(b=!1),void 0!==a.button&&(this.button=a.button),b&&this.updateButtons(a),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.totalActivePointers)&&(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.renderOrderID,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.renderOrderID,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&&this.withinGame?void a.preventDefault():(this.isMouse?this.updateButtons(a):(this.isDown=!1,this.isUp=!0),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.totalActivePointers)&&(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.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&&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;f=c.Input.MAX_POINTERS)return console.warn("Phaser.Input.addPointer: Maximum limit of "+c.Input.MAX_POINTERS+" pointers reached."),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&&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 a-b},getPointer:function(a){void 0===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._pollCounterthis.game.time.time},justReleased:function(a){return a=a||250,this.isUp&&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,this.altKey=!1,this.shiftKey=!1,this.ctrlKey=!1},destroy:function(){this.onDown.dispose(),this.onUp.dispose(),this.onFloat.dispose(),this.parent=null,this.game=null}},c.DeviceButton.prototype.constructor=c.DeviceButton,Object.defineProperty(c.DeviceButton.prototype,"duration",{get:function(){return this.isUp?-1:this.game.time.time-this.timeDown}}),c.Pointer=function(a,b){this.game=a,this.id=b,this.type=c.POINTER,this.exists=!0,this.identifier=0,this.pointerId=null,this.target=null,this.button=null,this.leftButton=new c.DeviceButton(this,c.Pointer.LEFT_BUTTON),this.middleButton=new c.DeviceButton(this,c.Pointer.MIDDLE_BUTTON),this.rightButton=new c.DeviceButton(this,c.Pointer.RIGHT_BUTTON),this.backButton=new c.DeviceButton(this,c.Pointer.BACK_BUTTON),this.forwardButton=new c.DeviceButton(this,c.Pointer.FORWARD_BUTTON),this.eraserButton=new c.DeviceButton(this,c.Pointer.ERASER_BUTTON),this._holdSent=!1,this._history=[],this._nextDrop=0,this._stateReset=!1,this.withinGame=!1,this.clientX=-1,this.clientY=-1,this.pageX=-1,this.pageY=-1,this.screenX=-1,this.screenY=-1,this.rawMovementX=0,this.rawMovementY=0,this.movementX=0,this.movementY=0,this.x=-1,this.y=-1,this.isMouse=0===b,this.isDown=!1,this.isUp=!0,this.timeDown=0,this.timeUp=0,this.previousTapTime=0,this.totalTouches=0,this.msSinceLastClick=Number.MAX_VALUE,this.targetObject=null,this.active=!1,this.dirty=!1,this.position=new c.Point,this.positionDown=new c.Point,this.positionUp=new c.Point,this.circle=new c.Circle(0,0,44),this._clickTrampolines=null,this._trampolineTargetObject=null},c.Pointer.NO_BUTTON=0,c.Pointer.LEFT_BUTTON=1,c.Pointer.RIGHT_BUTTON=2,c.Pointer.MIDDLE_BUTTON=4,c.Pointer.BACK_BUTTON=8,c.Pointer.FORWARD_BUTTON=16,c.Pointer.ERASER_BUTTON=32,c.Pointer.prototype={resetButtons:function(){this.isDown=!1,this.isUp=!0,this.isMouse&&(this.leftButton.reset(),this.middleButton.reset(),this.rightButton.reset(),this.backButton.reset(),this.forwardButton.reset(),this.eraserButton.reset())},updateButtons:function(a){this.button=a.button;var b=a.buttons;void 0!==b?(c.Pointer.LEFT_BUTTON&b?this.leftButton.start(a):this.leftButton.stop(a),c.Pointer.RIGHT_BUTTON&b?this.rightButton.start(a):this.rightButton.stop(a),c.Pointer.MIDDLE_BUTTON&b?this.middleButton.start(a):this.middleButton.stop(a),c.Pointer.BACK_BUTTON&b?this.backButton.start(a):this.backButton.stop(a),c.Pointer.FORWARD_BUTTON&b?this.forwardButton.start(a):this.forwardButton.stop(a),c.Pointer.ERASER_BUTTON&b?this.eraserButton.start(a):this.eraserButton.stop(a)):"mousedown"===a.type?this.leftButton.start(a):(this.leftButton.stop(a),this.rightButton.stop(a)),a.ctrlKey&&this.leftButton.isDown&&this.rightButton.start(a),this.isUp=!0,this.isDown=!1,(this.leftButton.isDown||this.rightButton.isDown||this.middleButton.isDown||this.backButton.isDown||this.forwardButton.isDown||this.eraserButton.isDown)&&(this.isUp=!1,this.isDown=!0)},start:function(a){return a.pointerId&&(this.pointerId=a.pointerId),this.identifier=a.identifier,this.target=a.target,this.isMouse?this.updateButtons(a):(this.isDown=!0,this.isUp=!1),this._history=[],this.active=!0,this.withinGame=!0,this.dirty=!1,this._clickTrampolines=null,this._trampolineTargetObject=null,this.msSinceLastClick=this.game.time.time-this.timeDown,this.timeDown=this.game.time.time,this._holdSent=!1,this.move(a,!0),this.positionDown.setTo(this.x,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.totalActivePointers)&&(this.game.input.x=this.x,this.game.input.y=this.y,this.game.input.position.setTo(this.x,this.y),this.game.input.onDown.dispatch(this,a),this.game.input.resetSpeed(this.x,this.y)),this._stateReset=!1,this.totalTouches++,null!==this.targetObject&&this.targetObject._touchedHandler(this),this},update:function(){this.active&&(this.dirty&&(this.game.input.interactiveItems.total>0&&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.totalActivePointers)&&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(void 0===b&&(b=!1),void 0!==a.button&&(this.button=a.button),b&&this.updateButtons(a),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.totalActivePointers)&&(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.renderOrderID,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.renderOrderID,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&&this.withinGame?void a.preventDefault():(this.isMouse?this.updateButtons(a):(this.isDown=!1,this.isUp=!0),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.totalActivePointers)&&(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.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&&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;fd;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}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 void 0===c&&(c=!0),0===this.sprite.scale.x||0===this.sprite.scale.y||this.priorityIDa||this.priorityID===a&&this.sprite.renderOrderIDb;b++)if(this._pointerData[b].isOver)return!0}return!1},pointerOut:function(a){if(this.enabled){if(void 0!==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)?(void 0===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)?(void 0===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&&this._pointerData[a.id].isOver){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.snapPoint.set(this.sprite.cameraOffset.x,this.sprite.cameraOffset.y))):(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,this.snapPoint.set(this.sprite.x,this.sprite.y))),this.sprite.events.onDragUpdate.dispatch(this.sprite,a,b,c,this.snapPoint),!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){var b=this.sprite.x,c=this.sprite.y;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 d=this.sprite.getBounds();this.sprite.x=this.globalToLocalX(a.x)+(this.sprite.x-d.centerX),this.sprite.y=this.globalToLocalY(a.y)+(this.sprite.y-d.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.dragStartPoint.set(b,c),this.sprite.events.onDragStart$dispatch(this.sprite,a,b,c)},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){void 0===a&&(a=!0),void 0===b&&(b=!0),this.allowHorizontalDrag=a,this.allowVerticalDrag=b},enableSnap:function(a,b,c,d,e,f){void 0===c&&(c=!0),void 0===d&&(d=!1),void 0===e&&(e=0),void 0===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.leftthis.boundsRect.right&&(this.sprite.x=this.boundsRect.right-(this.sprite.width-this.sprite.offsetX)),this.sprite.topthis.boundsRect.bottom&&(this.sprite.y=this.boundsRect.bottom-(this.sprite.height-this.sprite.offsetY)))},checkBoundsSprite:function(){this.sprite.fixedToCamera&&this.boundsSprite.fixedToCamera?(this.sprite.cameraOffset.xthis.boundsSprite.cameraOffset.x+this.boundsSprite.width&&(this.sprite.cameraOffset.x=this.boundsSprite.cameraOffset.x+this.boundsSprite.width-this.sprite.width),this.sprite.cameraOffset.ythis.boundsSprite.cameraOffset.y+this.boundsSprite.height&&(this.sprite.cameraOffset.y=this.boundsSprite.cameraOffset.y+this.boundsSprite.height-this.sprite.height)):(this.sprite.leftthis.boundsSprite.right&&(this.sprite.x=this.boundsSprite.right-(this.sprite.width-this.sprite.offsetX)),this.sprite.topthis.boundsSprite.bottom&&(this.sprite.y=this.boundsSprite.bottom-(this.sprite.height-this.sprite.offsetY)))}},c.InputHandler.prototype.constructor=c.InputHandler,c.Component=function(){},c.Component.Angle=function(){},c.Component.Angle.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))}}},c.Component.Animation=function(){},c.Component.Animation.prototype={play:function(a,b,c,d){return this.animations?this.animations.play(a,b,c,d):void 0}},c.Component.AutoCull=function(){},c.Component.AutoCull.prototype={autoCull:!1,inCamera:{get:function(){return this.autoCull||this.checkWorldBounds||(this._bounds.copyFrom(this.getBounds()),this._bounds.x+=this.game.camera.view.x,this._bounds.y+=this.game.camera.view.y),this.game.world.camera.view.intersects(this._bounds)}}},c.Component.Bounds=function(){},c.Component.Bounds.prototype={offsetX:{get:function(){return this.anchor.x*this.width}},offsetY:{get:function(){return this.anchor.y*this.height}},left:{get:function(){return this.x-this.offsetX}},right:{get:function(){return this.x+this.width-this.offsetX}},top:{get:function(){return this.y-this.offsetY}},bottom:{get:function(){return this.y+this.height-this.offsetY}}},c.Component.BringToTop=function(){},c.Component.BringToTop.prototype.bringToTop=function(){return this.parent&&this.parent.bringToTop(this),this},c.Component.BringToTop.prototype.sendToBack=function(){return this.parent&&this.parent.sendToBack(this),this},c.Component.BringToTop.prototype.moveUp=function(){return this.parent&&this.parent.moveUp(this),this},c.Component.BringToTop.prototype.moveDown=function(){return this.parent&&this.parent.moveDown(this),this},c.Component.Core=function(){},c.Component.Core.install=function(a){c.Utils.mixinPrototype(this,c.Component.Core.prototype),this.components={};for(var b=0;bthis.maxHealth&&(this.health=this.maxHealth)),this}},c.Component.InCamera=function(){},c.Component.InCamera.prototype={inCamera:{get:function(){return this.game.world.camera.view.intersects(this._bounds)}}},c.Component.InputEnabled=function(){},c.Component.InputEnabled.prototype={input:null,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()}}},c.Component.InWorld=function(){},c.Component.InWorld.preUpdate=function(){if((this.autoCull||this.checkWorldBounds)&&(this._bounds.copyFrom(this.getBounds()),this._bounds.x+=this.game.camera.view.x,this._bounds.y+=this.game.camera.view.y,this.autoCull&&(this.game.world.camera.view.intersects(this._bounds)?(this.renderable=!0,this.game.world.camera.totalInView++):this.renderable=!1),this.checkWorldBounds))if(this._outOfBoundsFired&&this.game.world.bounds.intersects(this._bounds))this._outOfBoundsFired=!1,this.events.onEnterBounds$dispatch(this);else if(!this._outOfBoundsFired&&!this.game.world.bounds.intersects(this._bounds)&&(this._outOfBoundsFired=!0,this.events.onOutOfBounds$dispatch(this),this.outOfBoundsKill))return this.kill(),!1;return!0},c.Component.InWorld.prototype={checkWorldBounds:!1,outOfBoundsKill:!1,_outOfBoundsFired:!1,inWorld:{get:function(){return this.game.world.bounds.intersects(this.getBounds())}}},c.Component.LifeSpan=function(){},c.Component.LifeSpan.preUpdate=function(){return this.lifespan>0&&(this.lifespan-=this.game.time.physicsElapsedMS,this.lifespan<=0)?(this.kill(),!1):!0},c.Component.LifeSpan.prototype={alive:!0,lifespan:0,revive:function(a){return void 0===a&&(a=1),this.alive=!0,this.exists=!0,this.visible=!0,"number"==typeof this.health&&(this.health=a),this.events&&this.events.onRevived$dispatch(this),this},kill:function(){return this.alive=!1,this.exists=!1,this.visible=!1,this.events&&this.events.onKilled$dispatch(this),this}},c.Component.LoadTexture=function(){},c.Component.LoadTexture.prototype={customRender:!1,_frame:null,loadTexture:function(a,b,d){b=b||0,(d||void 0===d)&&this.animations&&this.animations.stop(),this.key=a,this.customRender=!1;var e=this.game.cache,f=!0,g=!this.texture.baseTexture.scaleMode;if(c.RenderTexture&&a instanceof c.RenderTexture)this.key=a.key,this.setTexture(a);else if(c.BitmapData&&a instanceof c.BitmapData)this.customRender=!0,this.setTexture(a.texture),e.hasFrameData(a.key,c.Cache.BITMAPDATA)&&(f=!this.animations.loadFrameData(e.getFrameData(a.key,c.Cache.BITMAPDATA),b));else if(c.Video&&a instanceof c.Video){this.customRender=!0;var h=a.texture.valid;this.setTexture(a.texture),this.setFrame(a.texture.frame.clone()),a.onChangeSource.add(this.resizeFrame,this),this.texture.valid=h}else if(a instanceof PIXI.Texture)this.setTexture(a);else{var i=e.getImage(a,!0);this.key=i.key,this.setTexture(new PIXI.Texture(i.base)),f=!this.animations.loadFrameData(i.frameData,b)}f&&(this._frame=c.Rectangle.clone(this.texture.frame)),g||(this.texture.baseTexture.scaleMode=1)},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.requiresReTint=!0,this.texture._updateUvs(),this.tilingTexture&&(this.refreshTexture=!0)},resizeFrame:function(a,b,c){this.texture.frame.resize(b,c),this.texture.setFrame(this.texture.frame)},resetFrame:function(){this._frame&&this.setFrame(this._frame)},frame:{get:function(){return this.animations.frame},set:function(a){this.animations.frame=a}},frameName:{get:function(){return this.animations.frameName},set:function(a){this.animations.frameName=a}}},c.Component.Overlap=function(){},c.Component.Overlap.prototype={overlap:function(a){return c.Rectangle.intersects(this.getBounds(),a.getBounds())}},c.Component.PhysicsBody=function(){},c.Component.PhysicsBody.preUpdate=function(){return this.fresh&&this.exists?(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.previousPosition.set(this.world.x,this.world.y),this.previousRotation=this.rotation,this.body&&this.body.preUpdate(),this.fresh=!1,!1):(this.previousPosition.set(this.world.x,this.world.y),this.previousRotation=this.rotation,this._exists&&this.parent.exists?!0:(this.renderOrderID=-1,!1))},c.Component.PhysicsBody.postUpdate=function(){this.exists&&this.body&&this.body.postUpdate()},c.Component.PhysicsBody.prototype={body:null,x:{get:function(){return this.position.x},set:function(a){this.position.x=a,this.body&&!this.body.dirty&&(this.body._reset=!0)}},y:{get:function(){return this.position.y},set:function(a){this.position.y=a,this.body&&!this.body.dirty&&(this.body._reset=!0)}}},c.Component.Reset=function(){},c.Component.Reset.prototype.reset=function(a,b,c){return void 0===c&&(c=1),this.world.set(a,b),this.position.set(a,b),this.fresh=!0,this.exists=!0,this.visible=!0,this.renderable=!0,this.components.InWorld&&(this._outOfBoundsFired=!1),this.components.LifeSpan&&(this.alive=!0,this.health=c),this.components.PhysicsBody&&this.body&&this.body.reset(a,b,!1,!1),this},c.Component.ScaleMinMax=function(){},c.Component.ScaleMinMax.prototype={transformCallback:this.checkTransform,transformCallbackContext:this,scaleMin:null,scaleMax:null,checkTransform:function(a){this.scaleMin&&(a.athis.scaleMax.x&&(a.a=this.scaleMax.x),a.d>this.scaleMax.y&&(a.d=this.scaleMax.y))},setScaleMinMax:function(a,b,d,e){void 0===b?b=d=e=a:void 0===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)}},c.Component.Smoothed=function(){},c.Component.Smoothed.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)}}},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 void 0===f&&(f=this.world),f.add(new c.Image(this.game,a,b,d,e))},sprite:function(a,b,c,d,e){return void 0===e&&(e=this.world),e.create(a,b,c,d)},creature:function(a,b,d,e,f){void 0===f&&(f=this.world);var g=new c.Creature(this.game,a,b,d,e);return f.add(g),g},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 void 0===a&&(a=null),void 0===b&&(b="group"),void 0===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 void 0===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 void 0===g&&(g=this.world),g.add(new c.Rope(this.game,a,b,d,e,f))},text:function(a,b,d,e,f){return void 0===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 void 0===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 void 0===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 void 0===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){(void 0===d||""===d)&&(d=this.game.rnd.uuid()),void 0===e&&(e=!1);var f=new c.RenderTexture(this.game,a,b,d);return e&&this.game.cache.addRenderTexture(d,f),f},video:function(a,b){return new c.Video(this.game,a,b)},bitmapData:function(a,b,d,e){void 0===e&&(e=!1),(void 0===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,this.game.tweens)},group:function(a,b,d,e,f){return new c.Group(this.game,a,b,d,e,f)},spriteBatch:function(a,b,d){return void 0===b&&(b="group"),void 0===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,g){return new c.BitmapText(this.game,a,b,d,e,f,g)},tilemap:function(a,b,d,e,f){return new c.Tilemap(this.game,a,b,d,e,f)},renderTexture:function(a,b,d,e){(void 0===d||""===d)&&(d=this.game.rnd.uuid()),void 0===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){void 0===e&&(e=!1),(void 0===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.Sprite=function(a,b,d,e,f){b=b||0,d=d||0,e=e||null,f=f||null,this.type=c.SPRITE,this.physicsType=c.SPRITE,PIXI.Sprite.call(this,PIXI.TextureCache.__default),c.Component.Core.init.call(this,a,b,d,e,f)},c.Sprite.prototype=Object.create(PIXI.Sprite.prototype),c.Sprite.prototype.constructor=c.Sprite,c.Component.Core.install.call(c.Sprite.prototype,["Angle","Animation","AutoCull","Bounds","BringToTop","Crop","Delta","Destroy","FixedToCamera","Health","InCamera","InputEnabled","InWorld","LifeSpan","LoadTexture","Overlap","PhysicsBody","Reset","ScaleMinMax","Smoothed"]),c.Sprite.prototype.preUpdatePhysics=c.Component.PhysicsBody.preUpdate,c.Sprite.prototype.preUpdateLifeSpan=c.Component.LifeSpan.preUpdate,c.Sprite.prototype.preUpdateInWorld=c.Component.InWorld.preUpdate,c.Sprite.prototype.preUpdateCore=c.Component.Core.preUpdate,c.Sprite.prototype.preUpdate=function(){return this.preUpdatePhysics()&&this.preUpdateLifeSpan()&&this.preUpdateInWorld()?this.preUpdateCore():!1},c.Image=function(a,b,d,e,f){b=b||0,d=d||0,e=e||null,f=f||null,this.type=c.IMAGE,PIXI.Sprite.call(this,PIXI.TextureCache.__default),c.Component.Core.init.call(this,a,b,d,e,f)},c.Image.prototype=Object.create(PIXI.Sprite.prototype),c.Image.prototype.constructor=c.Image,c.Component.Core.install.call(c.Image.prototype,["Angle","Animation","AutoCull","Bounds","BringToTop","Crop","Destroy","FixedToCamera","InputEnabled","LifeSpan","LoadTexture","Overlap","Reset","Smoothed"]),c.Image.prototype.preUpdateInWorld=c.Component.InWorld.preUpdate,c.Image.prototype.preUpdateCore=c.Component.Core.preUpdate,c.Image.prototype.preUpdate=function(){return this.preUpdateInWorld()?this.preUpdateCore():!1},c.TileSprite=function(a,b,d,e,f,g,h){b=b||0,d=d||0,e=e||256,f=f||256,g=g||null,h=h||null,this.type=c.TILESPRITE,this.physicsType=c.SPRITE,this._scroll=new c.Point;var i=a.cache.getImage("__default",!0);PIXI.TilingSprite.call(this,new PIXI.Texture(i.base),e,f),c.Component.Core.init.call(this,a,b,d,g,h)},c.TileSprite.prototype=Object.create(PIXI.TilingSprite.prototype),c.TileSprite.prototype.constructor=c.TileSprite,c.Component.Core.install.call(c.TileSprite.prototype,["Angle","Animation","AutoCull","Bounds","BringToTop","Destroy","FixedToCamera","Health","InCamera","InputEnabled","InWorld","LifeSpan","LoadTexture","Overlap","PhysicsBody","Reset","Smoothed"]),c.TileSprite.prototype.preUpdatePhysics=c.Component.PhysicsBody.preUpdate,c.TileSprite.prototype.preUpdateLifeSpan=c.Component.LifeSpan.preUpdate,c.TileSprite.prototype.preUpdateInWorld=c.Component.InWorld.preUpdate,c.TileSprite.prototype.preUpdateCore=c.Component.Core.preUpdate,c.TileSprite.prototype.preUpdate=function(){return 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.preUpdatePhysics()&&this.preUpdateLifeSpan()&&this.preUpdateInWorld()?this.preUpdateCore():!1},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.destroy=function(a){c.Component.Destroy.prototype.destroy.call(this,a),PIXI.TilingSprite.prototype.destroy.call(this)},c.TileSprite.prototype.reset=function(a,b){return c.Component.Reset.prototype.reset.call(this,a,b),this.tilePosition.x=0,this.tilePosition.y=0,this},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.type=c.ROPE,this._scroll=new c.Point,PIXI.Rope.call(this,PIXI.TextureCache.__default,this.points),c.Component.Core.init.call(this,a,b,d,e,f)},c.Rope.prototype=Object.create(PIXI.Rope.prototype),c.Rope.prototype.constructor=c.Rope,c.Component.Core.install.call(c.Rope.prototype,["Angle","Animation","AutoCull","Bounds","BringToTop","Crop","Delta","Destroy","FixedToCamera","InputEnabled","InWorld","LifeSpan","LoadTexture","Overlap","PhysicsBody","Reset","ScaleMinMax","Smoothed"]),c.Rope.prototype.preUpdatePhysics=c.Component.PhysicsBody.preUpdate,c.Rope.prototype.preUpdateLifeSpan=c.Component.LifeSpan.preUpdate,c.Rope.prototype.preUpdateInWorld=c.Component.InWorld.preUpdate,c.Rope.prototype.preUpdateCore=c.Component.Core.preUpdate,c.Rope.prototype.preUpdate=function(){return 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.preUpdatePhysics()&&this.preUpdateLifeSpan()&&this.preUpdateInWorld()?this.preUpdateCore():!1},c.Rope.prototype.update=function(){this._hasUpdateAnimation&&this.updateAnimation.call(this)},c.Rope.prototype.reset=function(a,b){return c.Component.Reset.prototype.reset.call(this,a,b),this.tilePosition.x=0,this.tilePosition.y=0,this},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;k=1)&&(l.touch=!0),(window.navigator.msPointerEnabled||window.navigator.pointerEnabled)&&(l.mspointer=!0),l.cocoonJS||("onwheel"in window||l.ie&&"WheelEvent"in window?l.wheelEvent="wheel":"onmousewheel"in window?l.wheelEvent="mousewheel":l.firefox&&"MouseScrollEvent"in window&&(l.wheelEvent="DOMMouseScroll"))}function d(){for(var a=["requestFullscreen","requestFullScreen","webkitRequestFullscreen","webkitRequestFullScreen","msRequestFullscreen","msRequestFullScreen","mozRequestFullScreen","mozRequestFullscreen"],b=document.createElement("div"),c=0;c0&&"none"!==a}var l=this;a(),g(),f(),e(),k(),h(),b(),d(),c()},c.Device.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},c.Device.canPlayVideo=function(a){return"webm"===a&&(this.webmVideo||this.vp9Video)?!0:"mp4"===a&&(this.mp4Video||this.h264Video)?!0:"ogg"===a&&this.oggVideo?!0:"mpeg"===a&&this.hlsVideo?!0:!1},c.Device.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.isAndroidStockBrowser=function(){var a=window.navigator.userAgent.match(/Android.*AppleWebKit\/([\d.]+)/);return a&&a[1]<537},c.DOM={getOffset:function(a,b){b=b||new c.Point;var d=a.getBoundingClientRect(),e=c.DOM.scrollY,f=c.DOM.scrollX,g=document.documentElement.clientTop,h=document.documentElement.clientLeft;return b.x=d.left+f-h,b.y=d.top+e-g,b},getBounds:function(a,b){return void 0===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.visualBounds:1===a.nodeType?this.getBounds(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},inLayoutViewport:function(a,b){var c=this.getBounds(a,b);return!!c&&c.bottom>=0&&c.right>=0&&c.top<=this.layoutBounds.width&&c.left<=this.layoutBounds.height},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.visualBounds.height>this.visualBounds.width?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.visualBounds.height>this.visualBounds.width?d:e},visualBounds:new c.Rectangle,layoutBounds:new c.Rectangle,documentBounds:new c.Rectangle},c.Device.whenReady(function(a){var b=window&&"pageXOffset"in window?function(){return window.pageXOffset}:function(){return document.documentElement.scrollLeft},d=window&&"pageYOffset"in window?function(){return window.pageYOffset}:function(){return document.documentElement.scrollTop};Object.defineProperty(c.DOM,"scrollX",{get:b}),Object.defineProperty(c.DOM,"scrollY",{get:d}),Object.defineProperty(c.DOM.visualBounds,"x",{get:b}),Object.defineProperty(c.DOM.visualBounds,"y",{get:d}),Object.defineProperty(c.DOM.layoutBounds,"x",{value:0}),Object.defineProperty(c.DOM.layoutBounds,"y",{value:0});var e=a.desktop&&document.documentElement.clientWidth<=window.innerWidth&&document.documentElement.clientHeight<=window.innerHeight;if(e){var f=function(){return Math.max(window.innerWidth,document.documentElement.clientWidth)},g=function(){return Math.max(window.innerHeight,document.documentElement.clientHeight)};Object.defineProperty(c.DOM.visualBounds,"width",{get:f}),Object.defineProperty(c.DOM.visualBounds,"height",{get:g}),Object.defineProperty(c.DOM.layoutBounds,"width",{get:f}),Object.defineProperty(c.DOM.layoutBounds,"height",{get:g})}else Object.defineProperty(c.DOM.visualBounds,"width",{get:function(){return window.innerWidth}}),Object.defineProperty(c.DOM.visualBounds,"height",{get:function(){return window.innerHeight}}),Object.defineProperty(c.DOM.layoutBounds,"width",{get:function(){var a=document.documentElement.clientWidth,b=window.innerWidth;return b>a?b:a}}),Object.defineProperty(c.DOM.layoutBounds,"height",{get:function(){var a=document.documentElement.clientHeight,b=window.innerHeight;return b>a?b:a}});Object.defineProperty(c.DOM.documentBounds,"x",{value:0}),Object.defineProperty(c.DOM.documentBounds,"y",{value:0}),Object.defineProperty(c.DOM.documentBounds,"width",{get:function(){var a=document.documentElement;return Math.max(a.clientWidth,a.offsetWidth,a.scrollWidth)}}),Object.defineProperty(c.DOM.documentBounds,"height",{get:function(){var a=document.documentElement;return Math.max(a.clientHeight,a.offsetHeight,a.scrollHeight)}})},null,!0),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 void 0===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){var c=["i","mozI","oI","webkitI","msI"];for(var d in c){var e=c[d]+"mageSmoothingEnabled";if(e in a)return a[e]=b,a}return 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.RequestAnimationFrame=function(a,b){void 0===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 void 0===c&&(c=1e-4),a>b-c},fuzzyCeil:function(a,b){return void 0===b&&(b=1e-4),Math.ceil(a-b)},fuzzyFloor:function(a,b){return void 0===b&&(b=1e-4),Math.floor(a+b)},average:function(){for(var a=0,b=0;b=0?a:a+2*Math.PI},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},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)},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)},roundAwayFromZero:function(a){return a>0?Math.ceil(a):Math.floor(a)},sinCosGenerator:function(a,b,c,d){void 0===b&&(b=1),void 0===c&&(c=1),void 0===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}},distance:function(a,b,c,d){var e=a-c,f=b-d;return Math.sqrt(e*e+f*f)},distanceSq:function(a,b,c,d){var e=a-c,f=b-d;return e*e+f*f},distancePow:function(a,b,c,d,e){return void 0===e&&(e=2),Math.sqrt(Math.pow(c-a,e)+Math.pow(d-b,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 void 0===c&&(c=0),a>b||c>b?1:c>a||c>a?0:(a-c)/b}};var j=Math.PI/180,k=180/Math.PI;c.Math.degToRad=function(a){return a*j},c.Math.radToDeg=function(a){return a*k},c.RandomDataGenerator=function(a){void 0===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){if(this.s0=this.hash(" "),this.s1=this.hash(this.s0),this.s2=this.hash(this.s1),this.c=1,a)for(var b=0;b>>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)+.5)]},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;var l=function(){};c.Net=l,c.Net.prototype={isDisabled:!0,getHostName:l,checkDomainName:l,updateQueryString:l,getQueryString:l,decodeURI:l},c.Net.prototype.constructor=c.Net,c.TweenManager=function(){},c.TweenManager.prototype.update=function(){},c.TweenManager.prototype.constructor=c.TweenManager,c.Time=function(a){this.game=a,this.time=0,this.prevTime=0,this.now=0,this.elapsed=0,this.elapsedMS=0,this.physicsElapsed=0,this.physicsElapsedMS=0,this.desiredFps=60,this.suggestedFps=null,this.slowMotion=1,this.advancedTiming=!1,this.frames=0,this.fps=0,this.fpsMin=1e3,this.fpsMax=0,this.msMin=1e3,this.msMax=0,this.pauseDuration=0,this.timeToCall=0,this.timeExpected=0,this.events=new c.Timer(this.game,!1),this._frameCount=0,this._elapsedAccumulator=0,this._started=0,this._timeLastSecond=0,this._pauseStarted=0,this._justResumed=!1,this._timers=[]},c.Time.prototype={boot:function(){this._started=Date.now(),this.time=Date.now(),this.events.start()},add:function(a){return this._timers.push(a),a},create:function(a){void 0===a&&(a=!0);var b=new c.Timer(this.game,a);return this._timers.push(b),b},removeAll:function(){for(var a=0;aa;)this._timers[a].update(this.time)?a++:(this._timers.splice(a,1),b--)},updateAdvancedTiming:function(){this._frameCount++,this._elapsedAccumulator+=this.elapsed,this._frameCount>=2*this.desiredFps&&(this.suggestedFps=5*Math.floor(200/(this._elapsedAccumulator/this._frameCount)),this._frameCount=0,this._elapsedAccumulator=0),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)},gamePaused:function(){this._pauseStarted=Date.now(),this.events.pause();for(var a=this._timers.length;a--;)this._timers[a]._pause()},gameResumed:function(){this.time=Date.now(),this.pauseDuration=this.time-this._pauseStarted,this.events.resume();for(var a=this._timers.length;a--;)this._timers[a]._resume()},totalElapsedSeconds:function(){return.001*(this.time-this._started)},elapsedSince:function(a){return this.time-a},elapsedSecondsSince:function(a){return.001*(this.time-a)},reset:function(){this._started=this.time,this.removeAll()}},c.Time.prototype.constructor=c.Time,c.Timer=function(a,b){void 0===b&&(b=!0),this.game=a,this.running=!1,this.autoDestroy=b,this.expired=!1,this.elapsed=0,this.events=[],this.onComplete=new c.Signal,this.nextTick=0,this.timeCap=1e3,this.paused=!1,this._codePaused=!1,this._started=0,this._pauseStarted=0,this._pauseTotal=0,this._now=Date.now(),this._len=0,this._marked=0,this._i=0,this._diff=0,this._newTick=0},c.Timer.MINUTE=6e4,c.Timer.SECOND=1e3,c.Timer.HALF=500,c.Timer.QUARTER=250,c.Timer.prototype={create:function(a,b,d,e,f,g){a=Math.round(a);var h=a;h+=0===this._now?this.game.time.time:this._now;var i=new c.TimerEvent(this,a,h,d,b,e,f,g);return this.events.push(i),this.order(),this.expired=!1,i},add:function(a,b,c){return this.create(a,!1,0,b,c,Array.prototype.splice.call(arguments,3))},repeat:function(a,b,c,d){return this.create(a,!1,b,c,d,Array.prototype.splice.call(arguments,4))},loop:function(a,b,c){return this.create(a,!0,0,b,c,Array.prototype.splice.call(arguments,3))},start:function(a){if(!this.running){this._started=this.game.time.time+(a||0),this.running=!0;for(var b=0;b0&&(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.events[this._i].pendingDelete;)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},destroy:function(){this.onComplete.removeAll(),this.running=!1,this.events=[],this._len=0,this._i=0}},Object.defineProperty(c.Timer.prototype,"next",{get:function(){return this.nextTick}}),Object.defineProperty(c.Timer.prototype,"duration",{get:function(){return this.running&&this.nextTick>this._now?this.nextTick-this._now:0}}),Object.defineProperty(c.Timer.prototype,"length",{get:function(){return this.events.length}}),Object.defineProperty(c.Timer.prototype,"ms",{get:function(){return this.running?this._now-this._started-this._pauseTotal:0}}),Object.defineProperty(c.Timer.prototype,"seconds",{get:function(){return this.running?.001*this.ms:0}}),c.Timer.prototype.constructor=c.Timer,c.TimerEvent=function(a,b,c,d,e,f,g,h){this.timer=a,this.delay=b,this.tick=c,this.repeatCount=d-1,this.loop=e,this.callback=f,this.callbackContext=g,this.args=h,this.pendingDelete=!1},c.TimerEvent.prototype.constructor=c.TimerEvent,c.AnimationManager=function(a){this.sprite=a,this.game=a.game,this.currentFrame=null,this.currentAnim=null,this.updateIfVisible=!0,this.isLoaded=!1,this._frameData=null,this._anims={},this._outputFrames=[]},c.AnimationManager.prototype={loadFrameData:function(a,b){if(void 0===a)return!1;if(this.isLoaded)for(var c in this._anims)this._anims[c].updateFrameData(a);return this._frameData=a,void 0===b||null===b?this.frame=0:"string"==typeof b?this.frameName=b:this.frame=b,this.isLoaded=!0,!0},copyFrameData:function(a,b){if(this._frameData=a.clone(),this.isLoaded)for(var c in this._anims)this._anims[c].updateFrameData(this._frameData);return void 0===b||null===b?this.frame=0:"string"==typeof b?this.frameName=b:this.frame=b,this.isLoaded=!0,!0},add:function(a,b,d,e,f){return b=b||[],d=d||60,void 0===e&&(e=!1),void 0===f&&(f=b&&"number"==typeof b[0]?!0:!1),this._outputFrames=[],this._frameData.getFrameIndexes(b,f,this._outputFrames),this._anims[a]=new c.Animation(this.game,this.sprite,a,this._frameData,this._outputFrames,d,e),this.currentAnim=this._anims[a],this.sprite.tilingTexture&&(this.sprite.refreshTexture=!0),this._anims[a]},validateFrames:function(a,b){void 0===b&&(b=!0);for(var c=0;cthis._frameData.total)return!1}else if(this._frameData.checkFrameName(a[c])===!1)return!1;return!0},play:function(a,b,c,d){return this._anims[a]?this.currentAnim===this._anims[a]?this.currentAnim.isPlaying===!1?(this.currentAnim.paused=!1,this.currentAnim.play(b,c,d)):this.currentAnim:(this.currentAnim&&this.currentAnim.isPlaying&&this.currentAnim.stop(),this.currentAnim=this._anims[a],this.currentAnim.paused=!1,this.currentFrame=this.currentAnim.currentFrame,this.currentAnim.play(b,c,d)):void 0},stop:function(a,b){void 0===b&&(b=!1),"string"==typeof a?this._anims[a]&&(this.currentAnim=this._anims[a],this.currentAnim.stop(b)):this.currentAnim&&this.currentAnim.stop(b)},update:function(){return this.updateIfVisible&&!this.sprite.visible?!1:this.currentAnim&&this.currentAnim.update()?(this.currentFrame=this.currentAnim.currentFrame,!0):!1},next:function(a){this.currentAnim&&(this.currentAnim.next(a),this.currentFrame=this.currentAnim.currentFrame)},previous:function(a){this.currentAnim&&(this.currentAnim.previous(a),this.currentFrame=this.currentAnim.currentFrame)},getAnimation:function(a){return"string"==typeof a&&this._anims[a]?this._anims[a]:null},refreshFrame:function(){this.sprite.setTexture(PIXI.TextureCache[this.currentFrame.uuid])},destroy:function(){var a=null;for(var a in this._anims)this._anims.hasOwnProperty(a)&&this._anims[a].destroy();this._anims={},this._outputFrames=[],this._frameData=null,this.currentAnim=null,this.currentFrame=null,this.sprite=null,this.game=null}},c.AnimationManager.prototype.constructor=c.AnimationManager,Object.defineProperty(c.AnimationManager.prototype,"frameData",{get:function(){return this._frameData}}),Object.defineProperty(c.AnimationManager.prototype,"frameTotal",{get:function(){return this._frameData.total}}),Object.defineProperty(c.AnimationManager.prototype,"paused",{get:function(){return this.currentAnim.isPaused},set:function(a){this.currentAnim.paused=a}}),Object.defineProperty(c.AnimationManager.prototype,"name",{get:function(){return this.currentAnim?this.currentAnim.name:void 0}}),Object.defineProperty(c.AnimationManager.prototype,"frame",{get:function(){return this.currentFrame?this.currentFrame.index:void 0},set:function(a){"number"==typeof a&&this._frameData&&null!==this._frameData.getFrame(a)&&(this.currentFrame=this._frameData.getFrame(a),this.currentFrame&&this.sprite.setFrame(this.currentFrame))}}),Object.defineProperty(c.AnimationManager.prototype,"frameName",{get:function(){return this.currentFrame?this.currentFrame.name:void 0},set:function(a){"string"==typeof a&&this._frameData&&null!==this._frameData.getFrameByName(a)?(this.currentFrame=this._frameData.getFrameByName(a),this.currentFrame&&(this._frameIndex=this.currentFrame.index,this.sprite.setFrame(this.currentFrame))):console.warn("Cannot set frameName: "+a)}}),c.Animation=function(a,b,d,e,f,g,h){void 0===h&&(h=!1),this.game=a,this._parent=b,this._frameData=e,this.name=d,this._frames=[],this._frames=this._frames.concat(f),this.delay=1e3/g,this.loop=h,this.loopCount=0,this.killOnComplete=!1,this.isFinished=!1,this.isPlaying=!1,this.isPaused=!1,this._pauseStartTime=0,this._frameIndex=0,this._frameDiff=0,this._frameSkip=1,this.currentFrame=this._frameData.getFrame(this._frames[this._frameIndex]),this.onStart=new c.Signal,this.onUpdate=null,this.onComplete=new c.Signal,this.onLoop=new c.Signal,this.game.onPause.add(this.onPause,this),this.game.onResume.add(this.onResume,this)},c.Animation.prototype={play:function(a,b,c){return"number"==typeof a&&(this.delay=1e3/a),"boolean"==typeof b&&(this.loop=b),"undefined"!=typeof c&&(this.killOnComplete=c),this.isPlaying=!0,this.isFinished=!1,this.paused=!1,this.loopCount=0,this._timeLastFrame=this.game.time.time,this._timeNextFrame=this.game.time.time+this.delay,this._frameIndex=0,this.updateCurrentFrame(!1,!0),this._parent.events.onAnimationStart$dispatch(this._parent,this),this.onStart.dispatch(this._parent,this),this._parent.animations.currentAnim=this,this._parent.animations.currentFrame=this.currentFrame,this},restart:function(){this.isPlaying=!0,this.isFinished=!1,this.paused=!1,this.loopCount=0,this._timeLastFrame=this.game.time.time,this._timeNextFrame=this.game.time.time+this.delay,this._frameIndex=0,this.currentFrame=this._frameData.getFrame(this._frames[this._frameIndex]),this._parent.setFrame(this.currentFrame),this._parent.animations.currentAnim=this,this._parent.animations.currentFrame=this.currentFrame,this.onStart.dispatch(this._parent,this)},setFrame:function(a,b){var c;if(void 0===b&&(b=!1),"string"==typeof a)for(var d=0;d=this._timeNextFrame?(this._frameSkip=1,this._frameDiff=this.game.time.time-this._timeNextFrame,this._timeLastFrame=this.game.time.time,this._frameDiff>this.delay&&(this._frameSkip=Math.floor(this._frameDiff/this.delay),this._frameDiff-=this._frameSkip*this.delay),this._timeNextFrame=this.game.time.time+(this.delay-this._frameDiff),this._frameIndex+=this._frameSkip,this._frameIndex>=this._frames.length?this.loop?(this._frameIndex%=this._frames.length,this.currentFrame=this._frameData.getFrame(this._frames[this._frameIndex]),this.currentFrame&&this._parent.setFrame(this.currentFrame),this.loopCount++,this._parent.events.onAnimationLoop$dispatch(this._parent,this),this.onLoop.dispatch(this._parent,this),this.onUpdate?(this.onUpdate.dispatch(this,this.currentFrame),!!this._frameData):!0):(this.complete(),!1):this.updateCurrentFrame(!0)):!1},updateCurrentFrame:function(a,b){if(void 0===b&&(b=!1),!this._frameData)return!1;var c=this.currentFrame.index;return this.currentFrame=this._frameData.getFrame(this._frames[this._frameIndex]),this.currentFrame&&(b||!b&&c!==this.currentFrame.index)&&this._parent.setFrame(this.currentFrame),this.onUpdate&&a?(this.onUpdate.dispatch(this,this.currentFrame),!!this._frameData):!0},next:function(a){void 0===a&&(a=1);var b=this._frameIndex+a;b>=this._frames.length&&(this.loop?b%=this._frames.length:b=this._frames.length-1),b!==this._frameIndex&&(this._frameIndex=b,this.updateCurrentFrame(!0))},previous:function(a){void 0===a&&(a=1);var b=this._frameIndex-a;0>b&&(this.loop?b=this._frames.length+b:b++),b!==this._frameIndex&&(this._frameIndex=b,this.updateCurrentFrame(!0))},updateFrameData:function(a){this._frameData=a,this.currentFrame=this._frameData?this._frameData.getFrame(this._frames[this._frameIndex%this._frames.length]):null},destroy:function(){this._frameData&&(this.game.onPause.remove(this.onPause,this),this.game.onResume.remove(this.onResume,this),this.game=null,this._parent=null,this._frames=null,this._frameData=null,this.currentFrame=null,this.isPlaying=!1,this.onStart.dispose(),this.onLoop.dispose(),this.onComplete.dispose(),this.onUpdate&&this.onUpdate.dispose())},complete:function(){this._frameIndex=this._frames.length-1,this.currentFrame=this._frameData.getFrame(this._frames[this._frameIndex]),this.isPlaying=!1,this.isFinished=!0,this.paused=!1,this._parent.events.onAnimationComplete$dispatch(this._parent,this),this.onComplete.dispatch(this._parent,this),this.killOnComplete&&this._parent.kill()}},c.Animation.prototype.constructor=c.Animation,Object.defineProperty(c.Animation.prototype,"paused",{get:function(){return this.isPaused},set:function(a){this.isPaused=a,a?this._pauseStartTime=this.game.time.time:this.isPlaying&&(this._timeNextFrame=this.game.time.time+this.delay)}}),Object.defineProperty(c.Animation.prototype,"frameTotal",{get:function(){return this._frames.length}}),Object.defineProperty(c.Animation.prototype,"frame",{get:function(){return null!==this.currentFrame?this.currentFrame.index:this._frameIndex},set:function(a){this.currentFrame=this._frameData.getFrame(this._frames[a]),null!==this.currentFrame&&(this._frameIndex=a,this._parent.setFrame(this.currentFrame),this.onUpdate&&this.onUpdate.dispatch(this,this.currentFrame))}}),Object.defineProperty(c.Animation.prototype,"speed",{get:function(){return Math.round(1e3/this.delay)},set:function(a){a>=1&&(this.delay=1e3/a)}}),Object.defineProperty(c.Animation.prototype,"enableUpdate",{get:function(){return null!==this.onUpdate},set:function(a){a&&null===this.onUpdate?this.onUpdate=new c.Signal:a||null===this.onUpdate||(this.onUpdate.dispose(),this.onUpdate=null)}}),c.Animation.generateFrameNames=function(a,b,d,e,f){void 0===e&&(e="");var g=[],h="";if(d>b)for(var i=b;d>=i;i++)h="number"==typeof f?c.Utils.pad(i.toString(),f,"0",1):i.toString(),h=a+h+e,g.push(h);else for(var i=b;i>=d;i--)h="number"==typeof f?c.Utils.pad(i.toString(),f,"0",1):i.toString(),h=a+h+e,g.push(h);return g},c.Frame=function(a,b,d,e,f,g){this.index=a,this.x=b,this.y=d,this.width=e,this.height=f,this.name=g,this.centerX=Math.floor(e/2),this.centerY=Math.floor(f/2),this.distance=c.Math.distance(0,0,e,f),this.rotated=!1,this.rotationDirection="cw",this.trimmed=!1,this.sourceSizeW=e,this.sourceSizeH=f,this.spriteSourceSizeX=0,this.spriteSourceSizeY=0,this.spriteSourceSizeW=0,this.spriteSourceSizeH=0,this.right=this.x+this.width,this.bottom=this.y+this.height},c.Frame.prototype={resize:function(a,b){this.width=a,this.height=b,this.centerX=Math.floor(a/2),this.centerY=Math.floor(b/2),this.distance=c.Math.distance(0,0,a,b),this.sourceSizeW=a,this.sourceSizeH=b,this.right=this.x+a,this.bottom=this.y+b},setTrim:function(a,b,c,d,e,f,g){this.trimmed=a,a&&(this.sourceSizeW=b,this.sourceSizeH=c,this.centerX=Math.floor(b/2),this.centerY=Math.floor(c/2),this.spriteSourceSizeX=d,this.spriteSourceSizeY=e,this.spriteSourceSizeW=f,this.spriteSourceSizeH=g)},clone:function(){var a=new c.Frame(this.index,this.x,this.y,this.width,this.height,this.name);for(var b in this)this.hasOwnProperty(b)&&(a[b]=this[b]);return a},getRect:function(a){return void 0===a?a=new c.Rectangle(this.x,this.y,this.width,this.height):a.setTo(this.x,this.y,this.width,this.height),a}},c.Frame.prototype.constructor=c.Frame,c.FrameData=function(){this._frames=[],this._frameNames=[]},c.FrameData.prototype={addFrame:function(a){return a.index=this._frames.length,this._frames.push(a),""!==a.name&&(this._frameNames[a.name]=a.index),a},getFrame:function(a){return a>=this._frames.length&&(a=0),this._frames[a]},getFrameByName:function(a){return"number"==typeof this._frameNames[a]?this._frames[this._frameNames[a]]:null},checkFrameName:function(a){return null==this._frameNames[a]?!1:!0},clone:function(){for(var a=new c.FrameData,b=0;b=d;d++)c.push(this._frames[d]);return c},getFrames:function(a,b,c){if(void 0===b&&(b=!0),void 0===c&&(c=[]),void 0===a||0===a.length)for(var d=0;d=d&&(d=Math.floor(-j/Math.min(-1,d))),0>=e&&(e=Math.floor(-k/Math.min(-1,e)));var l=Math.floor((j-g)/(d+h)),m=Math.floor((k-g)/(e+h)),n=l*m;if(-1!==f&&(n=f),0===j||0===k||d>j||e>k||0===n)return console.warn("Phaser.AnimationParser.spriteSheet: '"+b+"'s width/height zero or width/height < given frameWidth/frameHeight"),null;for(var o=new c.FrameData,p=g,q=g,r=0;n>r;r++)o.addFrame(new c.Frame(r,p,q,d,e,"")),p+=d+h,p+d>j&&(p=g,q+=e+h);return o},JSONData:function(a,b){if(!b.frames)return console.warn("Phaser.AnimationParser.JSONData: Invalid Texture Atlas JSON given, missing 'frames' array"),void console.log(b);for(var d,e=new c.FrameData,f=b.frames,g=0;g tag");for(var d,e,f,g,h,i,j,k,l,m,n,o=new c.FrameData,p=b.getElementsByTagName("SubTexture"),q=0;q-1},getAssetIndex:function(a,b){for(var c=-1,d=0;d-1?{index:c,file:this._fileList[c]}:!1},reset:function(a,b){void 0===b&&(b=!1),this.resetLocked||(a&&(this.preloadSprite=null),this.isLoading=!1,this._processingHead=0,this._fileList.length=0,this._flightQueue.length=0,this._fileLoadStarted=!1,this._totalFileCount=0,this._totalPackCount=0,this._loadedPackCount=0,this._loadedFileCount=0,b&&(this.onLoadStart.removeAll(),this.onLoadComplete.removeAll(),this.onPackComplete.removeAll(),this.onFileStart.removeAll(),this.onFileComplete.removeAll(),this.onFileError.removeAll()))},addToFileList:function(a,b,c,d,e,f){if(void 0===e&&(e=!1),void 0===b||""===b)return console.warn("Phaser.Loader: Invalid or no key given of type "+a),this;if(void 0===c||null===c){if(!f)return console.warn("Phaser.Loader: No URL given for file type: "+a+" key: "+b),this;c=b+f}var g={type:a,key:b,path:this.path,url:c,syncPoint:this._withSyncPointDepth>0,data:null,loading:!1,loaded:!1,error:!1};if(d)for(var h in d)g[h]=d[h];var i=this.getAssetIndex(a,b);if(e&&i>-1){var j=this._fileList[i];j.loading||j.loaded?(this._fileList.push(g),this._totalFileCount++):this._fileList[i]=g}else-1===i&&(this._fileList.push(g),this._totalFileCount++);return this},replaceInFileList:function(a,b,c,d){return this.addToFileList(a,b,c,d,!0)},pack:function(a,b,c,d){if(void 0===b&&(b=null),void 0===c&&(c=null),void 0===d&&(d=null),!b&&!c)return console.warn("Phaser.Loader.pack - Both url and data are null. One must be set."),this;var e={type:"packfile",key:a,url:b,path:this.path,syncPoint:!0,data:null,loading:!1,loaded:!1,error:!1,callbackContext:d};c&&("string"==typeof c&&(c=JSON.parse(c)),e.data=c||{},e.loaded=!0);for(var f=0;f=e||d&&this._loadedPackCount===this._totalPackCount)break}if(this.updateProgress(),this._processingHead>=this._fileList.length)this.finishedLoading();else if(!this._flightQueue.length){console.warn("Phaser.Loader - aborting: processing queue empty, loading may have stalled");var f=this;setTimeout(function(){f.finishedLoading(!0)},2e3)}},finishedLoading:function(a){this.hasLoaded||(this.hasLoaded=!0,this.isLoading=!1,a||this._fileLoadStarted||(this._fileLoadStarted=!0,this.onLoadStart.dispatch()),this.onLoadComplete.dispatch(),this.reset(),this.game.state.loadComplete())},asyncComplete:function(a,b){void 0===b&&(b=""),a.loaded=!0,a.error=!!b,b&&(a.errorMessage=b,console.warn("Phaser.Loader - "+a.type+"["+a.key+"]: "+b)),this.processLoadQueue()},processPack:function(a){var b=a.data[a.key];if(!b)return void console.warn("Phaser.Loader - "+a.key+": pack has data, but not for pack key");for(var d=0;d=10)||(this._warnedAboutXDomainRequest=!0,console.warn("Phaser.Loader - using XDomainRequest outside of IE 9"));var f=new window.XDomainRequest;f.open("GET",b,!0),f.responseType=c,f.timeout=3e3,e=e||this.fileError;var g=this;f.onerror=function(){try{return e.call(g,a,f)}catch(b){g.asyncComplete(a,b.message||"Exception")}},f.ontimeout=function(){try{return e.call(g,a,f)}catch(b){g.asyncComplete(a,b.message||"Exception")}},f.onprogress=function(){},f.onload=function(){try{return d.call(g,a,f)}catch(b){g.asyncComplete(a,b.message||"Exception")}},a.requestObject=f,a.requestUrl=b,setTimeout(function(){f.send()},0)},getVideoURL:function(a){for(var b=0;b=0&&(d=d.substr(0,d.indexOf("?")));var e=d.substr((Math.max(0,d.lastIndexOf("."))||1/0)+1);c=e.toLowerCase()}if(this.game.device.canPlayVideo(c))return a[b]}return null},getAudioURL:function(a){if(this.game.sound.noAudio)return null;for(var b=0;b=0&&(d=d.substr(0,d.indexOf("?")));var e=d.substr((Math.max(0,d.lastIndexOf("."))||1/0)+1);c=e.toLowerCase()}if(this.game.device.canPlayAudio(c))return a[b]}return null},fileError:function(a,b,c){var d=a.requestUrl||this.transformUrl(a.url,a),e="error loading asset from URL "+d;!c&&b&&(c=b.status),c&&(e=e+" ("+c+")"),this.asyncComplete(a,e)},fileComplete:function(a,b){var d=!0;switch(a.type){case"packfile":var e=JSON.parse(b.responseText);a.data=e||{};break;case"image":this.cache.addImage(a.key,a.url,a.data);break;case"spritesheet":this.cache.addSpriteSheet(a.key,a.url,a.data,a.frameWidth,a.frameHeight,a.frameMax,a.margin,a.spacing);break;case"textureatlas":if(null==a.atlasURL)this.cache.addTextureAtlas(a.key,a.url,a.data,a.atlasData,a.format);else if(d=!1,a.format==c.Loader.TEXTURE_ATLAS_JSON_ARRAY||a.format==c.Loader.TEXTURE_ATLAS_JSON_HASH)this.xhrLoad(a,this.transformUrl(a.atlasURL,a),"text",this.jsonLoadComplete);else{if(a.format!=c.Loader.TEXTURE_ATLAS_XML_STARLING)throw new Error("Phaser.Loader. Invalid Texture Atlas format: "+a.format);this.xhrLoad(a,this.transformUrl(a.atlasURL,a),"text",this.xmlLoadComplete)}break;case"bitmapfont":a.atlasURL?(d=!1,this.xhrLoad(a,this.transformUrl(a.atlasURL,a),"text",function(a,b){var c;try{c=JSON.parse(b.responseText)}catch(d){}c?(a.atlasType="json",this.jsonLoadComplete(a,b)):(a.atlasType="xml",this.xmlLoadComplete(a,b))})):this.cache.addBitmapFont(a.key,a.url,a.data,a.atlasData,a.atlasType,a.xSpacing,a.ySpacing);break;case"video":if(a.asBlob)try{a.data=new Blob([new Uint8Array(b.response)])}catch(f){throw new Error("Phaser.Loader. Unable to parse video file as Blob: "+a.key)}this.cache.addVideo(a.key,a.url,a.data,a.asBlob);break;case"audio":this.game.sound.usingWebAudio?(a.data=b.response,this.cache.addSound(a.key,a.url,a.data,!0,!1),a.autoDecode&&this.game.sound.decode(a.key)):this.cache.addSound(a.key,a.url,a.data,!1,!0);break;case"text":a.data=b.responseText,this.cache.addText(a.key,a.url,a.data);break;case"shader":a.data=b.responseText,this.cache.addShader(a.key,a.url,a.data);break;case"physics":var e=JSON.parse(b.responseText);this.cache.addPhysicsData(a.key,a.url,e,a.format);break;case"script":a.data=document.createElement("script"),a.data.language="javascript",a.data.type="text/javascript",a.data.defer=!1,a.data.text=b.responseText,document.head.appendChild(a.data),a.callback&&(a.data=a.callback.call(a.callbackContext,a.key,b.responseText));break;case"binary":a.data=a.callback?a.callback.call(a.callbackContext,a.key,b.response):b.response,this.cache.addBinary(a.key,a.data)}d&&this.asyncComplete(a)},jsonLoadComplete:function(a,b){var c=JSON.parse(b.responseText);"tilemap"===a.type?this.cache.addTilemap(a.key,a.url,c,a.format):"bitmapfont"===a.type?this.cache.addBitmapFont(a.key,a.url,a.data,c,a.atlasType,a.xSpacing,a.ySpacing):"json"===a.type?this.cache.addJSON(a.key,a.url,c):this.cache.addTextureAtlas(a.key,a.url,a.data,c,a.format),this.asyncComplete(a)},csvLoadComplete:function(a,b){var c=b.responseText;this.cache.addTilemap(a.key,a.url,c,a.format),this.asyncComplete(a)},xmlLoadComplete:function(a,b){var c=b.responseText,d=this.parseXml(c);if(!d){var e=b.responseType||b.contentType;return console.warn("Phaser.Loader - "+a.key+": invalid XML ("+e+")"),void this.asyncComplete(a,"invalid XML")}"bitmapfont"===a.type?this.cache.addBitmapFont(a.key,a.url,a.data,d,a.atlasType,a.xSpacing,a.ySpacing):"textureatlas"===a.type?this.cache.addTextureAtlas(a.key,a.url,a.data,d,a.format):"xml"===a.type&&this.cache.addXML(a.key,a.url,d),this.asyncComplete(a)},parseXml:function(a){var b;try{if(window.DOMParser){var c=new DOMParser;b=c.parseFromString(a,"text/xml")}else b=new ActiveXObject("Microsoft.XMLDOM"),b.async="false",b.loadXML(a)}catch(d){b=null}return b&&b.documentElement&&!b.getElementsByTagName("parsererror").length?b:null},updateProgress:function(){this.preloadSprite&&(0===this.preloadSprite.direction?this.preloadSprite.rect.width=Math.floor(this.preloadSprite.width/100*this.progress):this.preloadSprite.rect.height=Math.floor(this.preloadSprite.height/100*this.progress),this.preloadSprite.sprite?this.preloadSprite.sprite.updateCrop():this.preloadSprite=null)},totalLoadedFiles:function(){return this._loadedFileCount},totalQueuedFiles:function(){return this._totalFileCount-this._loadedFileCount},totalLoadedPacks:function(){return this._totalPackCount},totalQueuedPacks:function(){return this._totalPackCount-this._loadedPackCount}},Object.defineProperty(c.Loader.prototype,"progressFloat",{get:function(){var a=this._loadedFileCount/this._totalFileCount*100;return c.Math.clamp(a||0,0,100)}}),Object.defineProperty(c.Loader.prototype,"progress",{get:function(){return Math.round(this.progressFloat)}}),c.Loader.prototype.constructor=c.Loader,c.LoaderParser={bitmapFont:function(a,b,c,d){return this.xmlBitmapFont(a,b,c,d)},xmlBitmapFont:function(a,b,c,d){var e={},f=a.getElementsByTagName("info")[0],g=a.getElementsByTagName("common")[0];e.font=f.getAttribute("face"),e.size=parseInt(f.getAttribute("size"),10),e.lineHeight=parseInt(g.getAttribute("lineHeight"),10)+d,e.chars={};for(var h=a.getElementsByTagName("char"),i=0;i-1},reset:function(){this.list.length=0},remove:function(a){var b=this.list.indexOf(a);return b>-1?(this.list.splice(b,1),a):void 0},setAll:function(a,b){for(var c=this.list.length;c--;)this.list[c]&&(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)},removeAll:function(a){void 0===a&&(a=!1);for(var b=this.list.length;b--;)if(this.list[b]){var c=this.remove(this.list[b]);a&&c.destroy()}this.position=0,this.list=[]}},Object.defineProperty(c.ArraySet.prototype,"total",{get:function(){return this.list.length}}),Object.defineProperty(c.ArraySet.prototype,"first",{get:function(){return this.position=0,this.list.length>0?this.list[0]:null}}),Object.defineProperty(c.ArraySet.prototype,"next",{get:function(){return this.position0;b--){var c=Math.floor(Math.random()*(b+1)),d=a[b];a[b]=a[c],a[c]=d}return a},transposeMatrix:function(a){for(var b=a.length,c=a[0].length,d=new Array(c),e=0;c>e;e++){d[e]=new Array(b);for(var f=b-1;f>-1;f--)d[e][f]=a[f][e]}return d},rotateMatrix:function(a,b){if("string"!=typeof b&&(b=(b%360+360)%360),90===b||-270===b||"rotateLeft"===b)a=c.ArrayUtils.transposeMatrix(a),a=a.reverse();else if(-90===b||270===b||"rotateRight"===b)a=a.reverse(),a=c.ArrayUtils.transposeMatrix(a);else if(180===Math.abs(b)||"rotate180"===b){for(var d=0;d=e-a?e:d},rotate:function(a){var b=a.shift();return a.push(b),b},numberArray:function(a,b){for(var c=[],d=a;b>=d;d++)c.push(d);return c},numberArrayStep:function(a,b,d){a=+a||0;var e=typeof b;"number"!==e&&"string"!==e||!d||d[b]!==a||(b=d=null),d=null==d?1:+d||0,null===b?(b=a,a=0):b=+b||0;for(var f=-1,g=Math.max(c.Math.roundAwayFromZero((b-a)/(d||1)),0),h=new Array(g);++f>>0:(a<<24|b<<16|d<<8|e)>>>0},unpackPixel:function(a,b,d,e){return(void 0===b||null===b)&&(b=c.Color.createColor()),(void 0===d||null===d)&&(d=!1),(void 0===e||null===e)&&(e=!1),c.Device.LITTLE_ENDIAN?(b.a=(4278190080&a)>>>24,b.b=(16711680&a)>>>16,b.g=(65280&a)>>>8,b.r=255&a):(b.r=(4278190080&a)>>>24,b.g=(16711680&a)>>>16,b.b=(65280&a)>>>8,b.a=255&a),b.color=a,b.rgba="rgba("+b.r+","+b.g+","+b.b+","+b.a/255+")",d&&c.Color.RGBtoHSL(b.r,b.g,b.b,b),e&&c.Color.RGBtoHSV(b.r,b.g,b.b,b),b},fromRGBA:function(a,b){return b||(b=c.Color.createColor()),b.r=(4278190080&a)>>>24,b.g=(16711680&a)>>>16,b.b=(65280&a)>>>8,b.a=255&a,b.rgba="rgba("+b.r+","+b.g+","+b.b+","+b.a+")",b},toRGBA:function(a,b,c,d){return a<<24|b<<16|c<<8|d},RGBtoHSL:function(a,b,d,e){e||(e=c.Color.createColor(a,b,d,1)),a/=255,b/=255,d/=255;var f=Math.min(a,b,d),g=Math.max(a,b,d);if(e.h=0,e.s=0,e.l=(g+f)/2,g!==f){var h=g-f;e.s=e.l>.5?h/(2-g-f):h/(g+f),g===a?e.h=(b-d)/h+(d>b?6:0):g===b?e.h=(d-a)/h+2:g===d&&(e.h=(a-b)/h+4),e.h/=6}return e},HSLtoRGB:function(a,b,d,e){if(e?(e.r=d,e.g=d,e.b=d):e=c.Color.createColor(d,d,d),0!==b){var f=.5>d?d*(1+b):d+b-d*b,g=2*d-f;e.r=c.Color.hueToColor(g,f,a+1/3),e.g=c.Color.hueToColor(g,f,a),e.b=c.Color.hueToColor(g,f,a-1/3)}return e.r=Math.floor(255*e.r|0),e.g=Math.floor(255*e.g|0),e.b=Math.floor(255*e.b|0),c.Color.updateColor(e),e},RGBtoHSV:function(a,b,d,e){e||(e=c.Color.createColor(a,b,d,255)),a/=255,b/=255,d/=255;var f=Math.min(a,b,d),g=Math.max(a,b,d),h=g-f;return e.h=0,e.s=0===g?0:h/g,e.v=g,g!==f&&(g===a?e.h=(b-d)/h+(d>b?6:0):g===b?e.h=(d-a)/h+2:g===d&&(e.h=(a-b)/h+4),e.h/=6),e},HSVtoRGB:function(a,b,d,e){void 0===e&&(e=c.Color.createColor(0,0,0,1,a,b,0,d));var f,g,h,i=Math.floor(6*a),j=6*a-i,k=d*(1-b),l=d*(1-j*b),m=d*(1-(1-j)*b);switch(i%6){case 0:f=d,g=m,h=k;break;case 1:f=l,g=d,h=k;break;case 2:f=k,g=d,h=m;break;case 3:f=k,g=l,h=d;break;case 4:f=m,g=k,h=d;break;case 5:f=d,g=k,h=l}return e.r=Math.floor(255*f),e.g=Math.floor(255*g),e.b=Math.floor(255*h),c.Color.updateColor(e),e},hueToColor:function(a,b,c){return 0>c&&(c+=1),c>1&&(c-=1),1/6>c?a+6*(b-a)*c:.5>c?b:2/3>c?a+(b-a)*(2/3-c)*6:a},createColor:function(a,b,d,e,f,g,h,i){var j={r:a||0,g:b||0,b:d||0,a:e||1,h:f||0,s:g||0,l:h||0,v:i||0,color:0,color32:0,rgba:""};return c.Color.updateColor(j)},updateColor:function(a){return a.rgba="rgba("+a.r.toString()+","+a.g.toString()+","+a.b.toString()+","+a.a.toString()+")",a.color=c.Color.getColor(a.r,a.g,a.b),a.color32=c.Color.getColor32(a.a,a.r,a.g,a.b),a},getColor32:function(a,b,c,d){return a<<24|b<<16|c<<8|d},getColor:function(a,b,c){return a<<16|b<<8|c},RGBtoString:function(a,b,d,e,f){return void 0===e&&(e=255),void 0===f&&(f="#"),"#"===f?"#"+((1<<24)+(a<<16)+(b<<8)+d).toString(16).slice(1):"0x"+c.Color.componentToHex(e)+c.Color.componentToHex(a)+c.Color.componentToHex(b)+c.Color.componentToHex(d)},hexToRGB:function(a){var b=c.Color.hexToColor(a);return b?c.Color.getColor32(b.a,b.r,b.g,b.b):void 0},hexToColor:function(a,b){a=a.replace(/^(?:#|0x)?([a-f\d])([a-f\d])([a-f\d])$/i,function(a,b,c,d){return b+b+c+c+d+d});var d=/^(?:#|0x)?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i.exec(a);if(d){var e=parseInt(d[1],16),f=parseInt(d[2],16),g=parseInt(d[3],16);b?(b.r=e,b.g=f,b.b=g):b=c.Color.createColor(e,f,g)}return b},webToColor:function(a,b){b||(b=c.Color.createColor());var d=/^rgba?\(\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d+)\s*(?:,\s*(\d+(?:\.\d+)?))?\s*\)$/.exec(a);return d&&(b.r=parseInt(d[1],10),b.g=parseInt(d[2],10),b.b=parseInt(d[3],10),b.a=void 0!==d[4]?parseFloat(d[4]):1,c.Color.updateColor(b)),b},valueToColor:function(a,b){if(b||(b=c.Color.createColor()),"string"==typeof a)return 0===a.indexOf("rgb")?c.Color.webToColor(a,b):(b.a=1,c.Color.hexToColor(a,b));if("number"==typeof a){var d=c.Color.getRGB(a);return b.r=d.r,b.g=d.g,b.b=d.b,b.a=d.a/255,b}return b},componentToHex:function(a){var b=a.toString(16);return 1==b.length?"0"+b:b},HSVColorWheel:function(a,b){void 0===a&&(a=1),void 0===b&&(b=1);for(var d=[],e=0;359>=e;e++)d.push(c.Color.HSVtoRGB(e/359,a,b));return d},HSLColorWheel:function(a,b){void 0===a&&(a=.5),void 0===b&&(b=.5);for(var d=[],e=0;359>=e;e++)d.push(c.Color.HSLtoRGB(e/359,a,b));return d},interpolateColor:function(a,b,d,e,f){void 0===f&&(f=255);var g=c.Color.getRGB(a),h=c.Color.getRGB(b),i=(h.red-g.red)*e/d+g.red,j=(h.green-g.green)*e/d+g.green,k=(h.blue-g.blue)*e/d+g.blue;return c.Color.getColor32(f,i,j,k)},interpolateColorWithRGB:function(a,b,d,e,f,g){var h=c.Color.getRGB(a),i=(b-h.red)*g/f+h.red,j=(d-h.green)*g/f+h.green,k=(e-h.blue)*g/f+h.blue;return c.Color.getColor(i,j,k)},interpolateRGB:function(a,b,d,e,f,g,h,i){var j=(e-a)*i/h+a,k=(f-b)*i/h+b,l=(g-d)*i/h+d;return c.Color.getColor(j,k,l)},getRandomColor:function(a,b,d){if(void 0===a&&(a=0),void 0===b&&(b=255),void 0===d&&(d=255),b>255||a>b)return c.Color.getColor(255,255,255);var e=a+Math.round(Math.random()*(b-a)),f=a+Math.round(Math.random()*(b-a)),g=a+Math.round(Math.random()*(b-a));return c.Color.getColor32(d,e,f,g)},getRGB:function(a){return a>16777215?{alpha:a>>>24,red:a>>16&255,green:a>>8&255,blue:255&a,a:a>>>24,r:a>>16&255,g:a>>8&255,b:255&a}:{alpha:255,red:a>>16&255,green:a>>8&255,blue:255&a,a:255,r:a>>16&255,g:a>>8&255,b:255&a}},getWebRGB:function(a){if("object"==typeof a)return"rgba("+a.r.toString()+","+a.g.toString()+","+a.b.toString()+","+(a.a/255).toString()+")";var b=c.Color.getRGB(a);return"rgba("+b.r.toString()+","+b.g.toString()+","+b.b.toString()+","+(b.a/255).toString()+")"},getAlpha:function(a){return a>>>24},getAlphaFloat:function(a){return(a>>>24)/255},getRed:function(a){return a>>16&255},getGreen:function(a){return a>>8&255},getBlue:function(a){return 255&a},blendNormal:function(a){return a},blendLighten:function(a,b){return b>a?b:a},blendDarken:function(a,b){return b>a?a:b},blendMultiply:function(a,b){return a*b/255},blendAverage:function(a,b){return(a+b)/2},blendAdd:function(a,b){return Math.min(255,a+b)},blendSubtract:function(a,b){return Math.max(0,a+b-255)},blendDifference:function(a,b){return Math.abs(a-b)},blendNegation:function(a,b){return 255-Math.abs(255-a-b)},blendScreen:function(a,b){return 255-((255-a)*(255-b)>>8)},blendExclusion:function(a,b){return a+b-2*a*b/255},blendOverlay:function(a,b){return 128>b?2*a*b/255:255-2*(255-a)*(255-b)/255},blendSoftLight:function(a,b){return 128>b?2*((a>>1)+64)*(b/255):255-2*(255-((a>>1)+64))*(255-b)/255},blendHardLight:function(a,b){return c.Color.blendOverlay(b,a)},blendColorDodge:function(a,b){return 255===b?b:Math.min(255,(a<<8)/(255-b))},blendColorBurn:function(a,b){return 0===b?b:Math.max(0,255-(255-a<<8)/b)},blendLinearDodge:function(a,b){return c.Color.blendAdd(a,b)},blendLinearBurn:function(a,b){return c.Color.blendSubtract(a,b)},blendLinearLight:function(a,b){return 128>b?c.Color.blendLinearBurn(a,2*b):c.Color.blendLinearDodge(a,2*(b-128))},blendVividLight:function(a,b){return 128>b?c.Color.blendColorBurn(a,2*b):c.Color.blendColorDodge(a,2*(b-128))},blendPinLight:function(a,b){return 128>b?c.Color.blendDarken(a,2*b):c.Color.blendLighten(a,2*(b-128))},blendHardMix:function(a,b){return c.Color.blendVividLight(a,b)<128?0:255},blendReflect:function(a,b){return 255===b?b:Math.min(255,a*a/(255-b))},blendGlow:function(a,b){return c.Color.blendReflect(b,a)},blendPhoenix:function(a,b){return Math.min(a,b)-Math.max(a,b)+255}},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.Physics=function(a,b){b=b||{},this.game=a,this.config=b,this.arcade=null,this.p2=null,this.ninja=null,this.box2d=null,this.chipmunk=null,this.matter=null,this.parseConfig()},c.Physics.ARCADE=0,c.Physics.P2JS=1,c.Physics.NINJA=2,c.Physics.BOX2D=3,c.Physics.CHIPMUNK=4,c.Physics.MATTERJS=5,c.Physics.prototype={parseConfig:function(){this.config.hasOwnProperty("arcade")&&this.config.arcade!==!0||!c.Physics.hasOwnProperty("Arcade")||(this.arcade=new c.Physics.Arcade(this.game)),this.config.hasOwnProperty("ninja")&&this.config.ninja===!0&&c.Physics.hasOwnProperty("Ninja")&&(this.ninja=new c.Physics.Ninja(this.game)),this.config.hasOwnProperty("p2")&&this.config.p2===!0&&c.Physics.hasOwnProperty("P2")&&(this.p2=new c.Physics.P2(this.game,this.config)),this.config.hasOwnProperty("box2d")&&this.config.box2d===!0&&c.Physics.hasOwnProperty("BOX2D")&&(this.box2d=new c.Physics.BOX2D(this.game,this.config)),this.config.hasOwnProperty("matter")&&this.config.matter===!0&&c.Physics.hasOwnProperty("Matter")&&(this.matter=new c.Physics.Matter(this.game,this.config))},startSystem:function(a){a===c.Physics.ARCADE?this.arcade=new c.Physics.Arcade(this.game):a===c.Physics.P2JS?null===this.p2?this.p2=new c.Physics.P2(this.game,this.config):this.p2.reset():a===c.Physics.NINJA?this.ninja=new c.Physics.Ninja(this.game):a===c.Physics.BOX2D?null===this.box2d?this.box2d=new c.Physics.Box2D(this.game,this.config):this.box2d.reset():a===c.Physics.MATTERJS&&(null===this.matter?this.matter=new c.Physics.Matter(this.game,this.config):this.matter.reset())},enable:function(a,b,d){void 0===b&&(b=c.Physics.ARCADE),void 0===d&&(d=!1),b===c.Physics.ARCADE?this.arcade.enable(a):b===c.Physics.P2JS&&this.p2?this.p2.enable(a,d):b===c.Physics.NINJA&&this.ninja?this.ninja.enableAABB(a):b===c.Physics.BOX2D&&this.box2d?this.box2d.enable(a):b===c.Physics.MATTERJS&&this.matter&&this.matter.enable(a)},preUpdate:function(){this.p2&&this.p2.preUpdate(),this.box2d&&this.box2d.preUpdate(),this.matter&&this.matter.preUpdate()},update:function(){this.p2&&this.p2.update(),this.box2d&&this.box2d.update(),this.matter&&this.matter.update()},setBoundsToWorld:function(){this.arcade&&this.arcade.setBoundsToWorld(),this.ninja&&this.ninja.setBoundsToWorld(),this.p2&&this.p2.setBoundsToWorld(),this.box2d&&this.box2d.setBoundsToWorld(),this.matter&&this.matter.setBoundsToWorld()},clear:function(){this.p2&&this.p2.clear(),this.box2d&&this.box2d.clear(),this.matter&&this.matter.clear()},reset:function(){this.p2&&this.p2.reset(),this.box2d&&this.box2d.reset(),this.matter&&this.matter.reset()},destroy:function(){this.p2&&this.p2.destroy(),this.box2d&&this.box2d.destroy(),this.matter&&this.matter.destroy(),this.arcade=null,this.ninja=null,this.p2=null,this.box2d=null,this.matter=null}},c.Physics.prototype.constructor=c.Physics,c.Particles=function(a){this.game=a,this.emitters={},this.ID=0},c.Particles.prototype={add:function(a){return this.emitters[a.name]=a,a},remove:function(a){delete this.emitters[a.name]},update:function(){for(var a in this.emitters)this.emitters[a].exists&&this.emitters[a].update()}},c.Particles.prototype.constructor=c.Particles,void 0===PIXI.blendModes&&(PIXI.blendModes=c.blendModes),void 0===PIXI.scaleModes&&(PIXI.scaleModes=c.scaleModes),void 0===PIXI.Texture.emptyTexture&&(PIXI.Texture.emptyTexture=new PIXI.Texture(new PIXI.BaseTexture)),void 0===PIXI.DisplayObject._tempMatrix&&(PIXI.DisplayObject._tempMatrix=new PIXI.Matrix),void 0===PIXI.RenderTexture.tempMatrix&&(PIXI.RenderTexture.tempMatrix=new PIXI.Matrix),void 0===PIXI.Graphics.POLY&&(PIXI.Graphics.POLY=c.POLYGON,PIXI.Graphics.RECT=c.RECTANGLE,PIXI.Graphics.CIRC=c.CIRCLE,PIXI.Graphics.ELIP=c.ELLIPSE,PIXI.Graphics.RREC=c.ROUNDEDRECTANGLE),PIXI.TextureSilentFail=!0,"undefined"!=typeof exports?("undefined"!=typeof module&&module.exports&&(exports=module.exports=c),exports.Phaser=c):"undefined"!=typeof define&&define.amd?define("Phaser",function(){return b.Phaser=c}()):b.Phaser=c}.call(this); +},addImage:function(a,b,d){this.checkImageKey(a)&&this.removeImage(a);var e={key:a,url:b,data:d,base:new PIXI.BaseTexture(d),frame:new c.Frame(0,0,0,d.width,d.height,a),frameData:new c.FrameData};return e.frameData.addFrame(new c.Frame(0,0,0,d.width,d.height,b)),this._cache.image[a]=e,this._resolveURL(b,e),e},addDefaultImage:function(){var a=new Image;a.src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgAQMAAABJtOi3AAAAA1BMVEX///+nxBvIAAAAAXRSTlMAQObYZgAAABVJREFUeF7NwIEAAAAAgKD9qdeocAMAoAABm3DkcAAAAABJRU5ErkJggg==";var b=this.addImage("__default",null,a);PIXI.TextureCache.__default=new PIXI.Texture(b.base)},addMissingImage:function(){var a=new Image;a.src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAIAAAD8GO2jAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAJ9JREFUeNq01ssOwyAMRFG46v//Mt1ESmgh+DFmE2GPOBARKb2NVjo+17PXLD8a1+pl5+A+wSgFygymWYHBb0FtsKhJDdZlncG2IzJ4ayoMDv20wTmSMzClEgbWYNTAkQ0Z+OJ+A/eWnAaR9+oxCF4Os0H8htsMUp+pwcgBBiMNnAwF8GqIgL2hAzaGFFgZauDPKABmowZ4GL369/0rwACp2yA/ttmvsQAAAABJRU5ErkJggg==";var b=this.addImage("__missing",null,a);PIXI.TextureCache.__missing=new PIXI.Texture(b.base)},addSound:function(a,b,c,d,e){void 0===d&&(d=!0,e=!1),void 0===e&&(d=!1,e=!0);var f=!1;e&&(f=!0),this._cache.sound[a]={url:b,data:c,isDecoding:!1,decoded:f,webAudio:d,audioTag:e,locked:this.game.sound.touchLocked},this._resolveURL(b,this._cache.sound[a])},addText:function(a,b,c){this._cache.text[a]={url:b,data:c},this._resolveURL(b,this._cache.text[a])},addPhysicsData:function(a,b,c,d){this._cache.physics[a]={url:b,data:c,format:d},this._resolveURL(b,this._cache.physics[a])},addTilemap:function(a,b,c,d){this._cache.tilemap[a]={url:b,data:c,format:d},this._resolveURL(b,this._cache.tilemap[a])},addBinary:function(a,b){this._cache.binary[a]=b},addBitmapData:function(a,b,d){return b.key=a,void 0===d&&(d=new c.FrameData,d.addFrame(b.textureFrame)),this._cache.bitmapData[a]={data:b,frameData:d},b},addBitmapFont:function(a,b,d,e,f,g,h){var i={url:b,data:d,font:null,base:new PIXI.BaseTexture(d)};i.font="json"===f?c.LoaderParser.jsonBitmapFont(e,i.base,g,h):c.LoaderParser.xmlBitmapFont(e,i.base,g,h),this._cache.bitmapFont[a]=i,this._resolveURL(b,i)},addJSON:function(a,b,c){this._cache.json[a]={url:b,data:c},this._resolveURL(b,this._cache.json[a])},addXML:function(a,b,c){this._cache.xml[a]={url:b,data:c},this._resolveURL(b,this._cache.xml[a])},addVideo:function(a,b,c,d){this._cache.video[a]={url:b,data:c,isBlob:d,locked:!0},this._resolveURL(b,this._cache.video[a])},addShader:function(a,b,c){this._cache.shader[a]={url:b,data:c},this._resolveURL(b,this._cache.shader[a])},addRenderTexture:function(a,b){this._cache.renderTexture[a]={texture:b,frame:new c.Frame(0,0,0,b.width,b.height,"","")}},addSpriteSheet:function(a,b,d,e,f,g,h,i){var j={key:a,url:b,data:d,frameWidth:e,frameHeight:f,margin:h,spacing:i,base:new PIXI.BaseTexture(d),frameData:c.AnimationParser.spriteSheet(this.game,d,e,f,g,h,i)};this._cache.image[a]=j,this._resolveURL(b,j)},addTextureAtlas:function(a,b,d,e,f){var g={key:a,url:b,data:d,base:new PIXI.BaseTexture(d)};g.frameData=f===c.Loader.TEXTURE_ATLAS_XML_STARLING?c.AnimationParser.XMLData(this.game,e,a):Array.isArray(e.frames)?c.AnimationParser.JSONData(this.game,e,a):c.AnimationParser.JSONDataHash(this.game,e,a),this._cache.image[a]=g,this._resolveURL(b,g)},reloadSound:function(a){var b=this,c=this.getSound(a);c&&(c.data.src=c.url,c.data.addEventListener("canplaythrough",function(){return b.reloadSoundComplete(a)},!1),c.data.load())},reloadSoundComplete:function(a){var b=this.getSound(a);b&&(b.locked=!1,this.onSoundUnlock.dispatch(a))},updateSound:function(a,b,c){var d=this.getSound(a);d&&(d[b]=c)},decodedSound:function(a,b){var c=this.getSound(a);c.data=b,c.decoded=!0,c.isDecoding=!1},isSoundDecoded:function(a){var b=this.getItem(a,c.Cache.SOUND,"isSoundDecoded");return b?b.decoded:void 0},isSoundReady:function(a){var b=this.getItem(a,c.Cache.SOUND,"isSoundDecoded");return b?b.decoded&&!this.game.sound.touchLocked:void 0},checkKey:function(a,b){return this._cacheMap[a][b]?!0:!1},checkURL:function(a){return this._urlMap[this._resolveURL(a)]?!0:!1},checkCanvasKey:function(a){return this.checkKey(c.Cache.CANVAS,a)},checkImageKey:function(a){return this.checkKey(c.Cache.IMAGE,a)},checkTextureKey:function(a){return this.checkKey(c.Cache.TEXTURE,a)},checkSoundKey:function(a){return this.checkKey(c.Cache.SOUND,a)},checkTextKey:function(a){return this.checkKey(c.Cache.TEXT,a)},checkPhysicsKey:function(a){return this.checkKey(c.Cache.PHYSICS,a)},checkTilemapKey:function(a){return this.checkKey(c.Cache.TILEMAP,a)},checkBinaryKey:function(a){return this.checkKey(c.Cache.BINARY,a)},checkBitmapDataKey:function(a){return this.checkKey(c.Cache.BITMAPDATA,a)},checkBitmapFontKey:function(a){return this.checkKey(c.Cache.BITMAPFONT,a)},checkJSONKey:function(a){return this.checkKey(c.Cache.JSON,a)},checkXMLKey:function(a){return this.checkKey(c.Cache.XML,a)},checkVideoKey:function(a){return this.checkKey(c.Cache.VIDEO,a)},checkShaderKey:function(a){return this.checkKey(c.Cache.SHADER,a)},checkRenderTextureKey:function(a){return this.checkKey(c.Cache.RENDER_TEXTURE,a)},getItem:function(a,b,c,d){return this.checkKey(b,a)?void 0===d?this._cacheMap[b][a]:this._cacheMap[b][a][d]:(c&&console.warn("Phaser.Cache."+c+': Key "'+a+'" not found in Cache.'),null)},getCanvas:function(a){return this.getItem(a,c.Cache.CANVAS,"getCanvas","canvas")},getImage:function(a,b){(void 0===a||null===a)&&(a="__default"),void 0===b&&(b=!1);var d=this.getItem(a,c.Cache.IMAGE,"getImage");return null===d&&(d=this.getItem("__missing",c.Cache.IMAGE,"getImage")),b?d:d.data},getTextureFrame:function(a){return this.getItem(a,c.Cache.TEXTURE,"getTextureFrame","frame")},getSound:function(a){return this.getItem(a,c.Cache.SOUND,"getSound")},getSoundData:function(a){return this.getItem(a,c.Cache.SOUND,"getSoundData","data")},getText:function(a){return this.getItem(a,c.Cache.TEXT,"getText","data")},getPhysicsData:function(a,b,d){var e=this.getItem(a,c.Cache.PHYSICS,"getPhysicsData","data");if(null===e||void 0===b||null===b)return e;if(e[b]){var f=e[b];if(!f||!d)return f;for(var g in f)if(g=f[g],g.fixtureKey===d)return g;console.warn('Phaser.Cache.getPhysicsData: Could not find given fixtureKey: "'+d+" in "+a+'"')}else console.warn('Phaser.Cache.getPhysicsData: Invalid key/object: "'+a+" / "+b+'"');return null},getTilemapData:function(a){return this.getItem(a,c.Cache.TILEMAP,"getTilemapData")},getBinary:function(a){return this.getItem(a,c.Cache.BINARY,"getBinary")},getBitmapData:function(a){return this.getItem(a,c.Cache.BITMAPDATA,"getBitmapData","data")},getBitmapFont:function(a){return this.getItem(a,c.Cache.BITMAPFONT,"getBitmapFont")},getJSON:function(a,b){var d=this.getItem(a,c.Cache.JSON,"getJSON","data");return d?b?c.Utils.extend(!0,d):d:null},getXML:function(a){return this.getItem(a,c.Cache.XML,"getXML","data")},getVideo:function(a){return this.getItem(a,c.Cache.VIDEO,"getVideo")},getShader:function(a){return this.getItem(a,c.Cache.SHADER,"getShader","data")},getRenderTexture:function(a){return this.getItem(a,c.Cache.RENDER_TEXTURE,"getRenderTexture")},getBaseTexture:function(a,b){return void 0===b&&(b=c.Cache.IMAGE),this.getItem(a,b,"getBaseTexture","base")},getFrame:function(a){return this.getItem(a,c.Cache.IMAGE,"getFrame","frame")},getFrameCount:function(a){var b=this.getFrameData(a);return b?b.total:0},getFrameData:function(a){return this.getItem(a,c.Cache.IMAGE,"getFrameData","frameData")},hasFrameData:function(a){return null!==this.getItem(a,c.Cache.IMAGE,"","frameData")},updateFrameData:function(a,b,d){void 0===d&&(d=c.Cache.IMAGE),this._cacheMap[d][a]&&(this._cacheMap[d][a].frameData=b)},getFrameByIndex:function(a,b){var c=this.getFrameData(a);return c?c.getFrame(b):null},getFrameByName:function(a,b){var c=this.getFrameData(a);return c?c.getFrameByName(b):null},getPixiTexture:function(a){if(PIXI.TextureCache[a])return PIXI.TextureCache[a];var b=this.getPixiBaseTexture(a);return b?new PIXI.Texture(b):null},getPixiBaseTexture:function(a){if(PIXI.BaseTextureCache[a])return PIXI.BaseTextureCache[a];var b=this.getItem(a,c.Cache.IMAGE,"getPixiBaseTexture");return null!==b?b.base:null},getURL:function(a){var a=this._resolveURL(a);return a?this._urlMap[a]:(console.warn('Phaser.Cache.getUrl: Invalid url: "'+a+'" or Cache.autoResolveURL was false'),null)},getKeys:function(a){void 0===a&&(a=c.Cache.IMAGE);var b=[];if(this._cacheMap[a])for(var d in this._cacheMap[a])"__default"!==d&&"__missing"!==d&&b.push(d);return b},removeCanvas:function(a){delete this._cache.canvas[a]},removeImage:function(a,b){void 0===b&&(b=!0);var c=this.getImage(a,!0);b&&c.base&&c.base.destroy(),delete this._cache.image[a]},removeSound:function(a){delete this._cache.sound[a]},removeText:function(a){delete this._cache.text[a]},removePhysics:function(a){delete this._cache.physics[a]},removeTilemap:function(a){delete this._cache.tilemap[a]},removeBinary:function(a){delete this._cache.binary[a]},removeBitmapData:function(a){delete this._cache.bitmapData[a]},removeBitmapFont:function(a){delete this._cache.bitmapFont[a]},removeJSON:function(a){delete this._cache.json[a]},removeXML:function(a){delete this._cache.xml[a]},removeVideo:function(a){delete this._cache.video[a]},removeShader:function(a){delete this._cache.shader[a]},removeRenderTexture:function(a){delete this._cache.renderTexture[a]},removeSpriteSheet:function(a){delete this._cache.spriteSheet[a]},removeTextureAtlas:function(a){delete this._cache.atlas[a]},clearGLTextures:function(){for(var a in this.cache.image)this.cache.image[a].base._glTextures=[]},_resolveURL:function(a,b){return this.autoResolveURL?(this._urlResolver.src=this.game.load.baseURL+a,this._urlTemp=this._urlResolver.src,this._urlResolver.src="",b&&(this._urlMap[this._urlTemp]=b),this._urlTemp):null},destroy:function(){for(var a=0;a-1},getAssetIndex:function(a,b){for(var c=-1,d=0;d-1?{index:c,file:this._fileList[c]}:!1},reset:function(a,b){void 0===b&&(b=!1),this.resetLocked||(a&&(this.preloadSprite=null),this.isLoading=!1,this._processingHead=0,this._fileList.length=0,this._flightQueue.length=0,this._fileLoadStarted=!1,this._totalFileCount=0,this._totalPackCount=0,this._loadedPackCount=0,this._loadedFileCount=0,b&&(this.onLoadStart.removeAll(),this.onLoadComplete.removeAll(),this.onPackComplete.removeAll(),this.onFileStart.removeAll(),this.onFileComplete.removeAll(),this.onFileError.removeAll()))},addToFileList:function(a,b,c,d,e,f){if(void 0===e&&(e=!1),void 0===b||""===b)return console.warn("Phaser.Loader: Invalid or no key given of type "+a),this;if(void 0===c||null===c){if(!f)return console.warn("Phaser.Loader: No URL given for file type: "+a+" key: "+b),this;c=b+f}var g={type:a,key:b,path:this.path,url:c,syncPoint:this._withSyncPointDepth>0,data:null,loading:!1,loaded:!1,error:!1};if(d)for(var h in d)g[h]=d[h];var i=this.getAssetIndex(a,b);if(e&&i>-1){var j=this._fileList[i];j.loading||j.loaded?(this._fileList.push(g),this._totalFileCount++):this._fileList[i]=g}else-1===i&&(this._fileList.push(g),this._totalFileCount++);return this},replaceInFileList:function(a,b,c,d){return this.addToFileList(a,b,c,d,!0)},pack:function(a,b,c,d){if(void 0===b&&(b=null),void 0===c&&(c=null),void 0===d&&(d=null),!b&&!c)return console.warn("Phaser.Loader.pack - Both url and data are null. One must be set."),this;var e={type:"packfile",key:a,url:b,path:this.path,syncPoint:!0,data:null,loading:!1,loaded:!1,error:!1,callbackContext:d};c&&("string"==typeof c&&(c=JSON.parse(c)),e.data=c||{},e.loaded=!0);for(var f=0;f=e||d&&this._loadedPackCount===this._totalPackCount)break}if(this.updateProgress(),this._processingHead>=this._fileList.length)this.finishedLoading();else if(!this._flightQueue.length){console.warn("Phaser.Loader - aborting: processing queue empty, loading may have stalled");var f=this;setTimeout(function(){f.finishedLoading(!0)},2e3)}},finishedLoading:function(a){this.hasLoaded||(this.hasLoaded=!0,this.isLoading=!1,a||this._fileLoadStarted||(this._fileLoadStarted=!0,this.onLoadStart.dispatch()),this.onLoadComplete.dispatch(),this.reset(),this.game.state.loadComplete())},asyncComplete:function(a,b){void 0===b&&(b=""),a.loaded=!0,a.error=!!b,b&&(a.errorMessage=b,console.warn("Phaser.Loader - "+a.type+"["+a.key+"]: "+b)),this.processLoadQueue()},processPack:function(a){var b=a.data[a.key];if(!b)return void console.warn("Phaser.Loader - "+a.key+": pack has data, but not for pack key");for(var d=0;d=10)||(this._warnedAboutXDomainRequest=!0,console.warn("Phaser.Loader - using XDomainRequest outside of IE 9"));var f=new window.XDomainRequest;f.open("GET",b,!0),f.responseType=c,f.timeout=3e3,e=e||this.fileError;var g=this;f.onerror=function(){try{return e.call(g,a,f)}catch(b){g.asyncComplete(a,b.message||"Exception")}},f.ontimeout=function(){try{return e.call(g,a,f)}catch(b){g.asyncComplete(a,b.message||"Exception")}},f.onprogress=function(){},f.onload=function(){try{return d.call(g,a,f)}catch(b){g.asyncComplete(a,b.message||"Exception")}},a.requestObject=f,a.requestUrl=b,setTimeout(function(){f.send()},0)},getVideoURL:function(a){for(var b=0;b=0&&(d=d.substr(0,d.indexOf("?")));var e=d.substr((Math.max(0,d.lastIndexOf("."))||1/0)+1);c=e.toLowerCase()}if(this.game.device.canPlayVideo(c))return a[b]}return null},getAudioURL:function(a){if(this.game.sound.noAudio)return null;for(var b=0;b=0&&(d=d.substr(0,d.indexOf("?")));var e=d.substr((Math.max(0,d.lastIndexOf("."))||1/0)+1);c=e.toLowerCase()}if(this.game.device.canPlayAudio(c))return a[b]}return null},fileError:function(a,b,c){var d=a.requestUrl||this.transformUrl(a.url,a),e="error loading asset from URL "+d;!c&&b&&(c=b.status),c&&(e=e+" ("+c+")"),this.asyncComplete(a,e)},fileComplete:function(a,b){var d=!0;switch(a.type){case"packfile":var e=JSON.parse(b.responseText);a.data=e||{};break;case"image":this.cache.addImage(a.key,a.url,a.data);break;case"spritesheet":this.cache.addSpriteSheet(a.key,a.url,a.data,a.frameWidth,a.frameHeight,a.frameMax,a.margin,a.spacing);break;case"textureatlas":if(null==a.atlasURL)this.cache.addTextureAtlas(a.key,a.url,a.data,a.atlasData,a.format);else if(d=!1,a.format==c.Loader.TEXTURE_ATLAS_JSON_ARRAY||a.format==c.Loader.TEXTURE_ATLAS_JSON_HASH)this.xhrLoad(a,this.transformUrl(a.atlasURL,a),"text",this.jsonLoadComplete);else{if(a.format!=c.Loader.TEXTURE_ATLAS_XML_STARLING)throw new Error("Phaser.Loader. Invalid Texture Atlas format: "+a.format);this.xhrLoad(a,this.transformUrl(a.atlasURL,a),"text",this.xmlLoadComplete)}break;case"bitmapfont":a.atlasURL?(d=!1,this.xhrLoad(a,this.transformUrl(a.atlasURL,a),"text",function(a,b){var c;try{c=JSON.parse(b.responseText)}catch(d){}c?(a.atlasType="json",this.jsonLoadComplete(a,b)):(a.atlasType="xml",this.xmlLoadComplete(a,b))})):this.cache.addBitmapFont(a.key,a.url,a.data,a.atlasData,a.atlasType,a.xSpacing,a.ySpacing);break;case"video":if(a.asBlob)try{a.data=new Blob([new Uint8Array(b.response)])}catch(f){throw new Error("Phaser.Loader. Unable to parse video file as Blob: "+a.key)}this.cache.addVideo(a.key,a.url,a.data,a.asBlob);break;case"audio":this.game.sound.usingWebAudio?(a.data=b.response,this.cache.addSound(a.key,a.url,a.data,!0,!1),a.autoDecode&&this.game.sound.decode(a.key)):this.cache.addSound(a.key,a.url,a.data,!1,!0);break;case"text":a.data=b.responseText,this.cache.addText(a.key,a.url,a.data);break;case"shader":a.data=b.responseText,this.cache.addShader(a.key,a.url,a.data);break;case"physics":var e=JSON.parse(b.responseText);this.cache.addPhysicsData(a.key,a.url,e,a.format);break;case"script":a.data=document.createElement("script"),a.data.language="javascript",a.data.type="text/javascript",a.data.defer=!1,a.data.text=b.responseText,document.head.appendChild(a.data),a.callback&&(a.data=a.callback.call(a.callbackContext,a.key,b.responseText));break;case"binary":a.data=a.callback?a.callback.call(a.callbackContext,a.key,b.response):b.response,this.cache.addBinary(a.key,a.data)}d&&this.asyncComplete(a)},jsonLoadComplete:function(a,b){var c=JSON.parse(b.responseText);"tilemap"===a.type?this.cache.addTilemap(a.key,a.url,c,a.format):"bitmapfont"===a.type?this.cache.addBitmapFont(a.key,a.url,a.data,c,a.atlasType,a.xSpacing,a.ySpacing):"json"===a.type?this.cache.addJSON(a.key,a.url,c):this.cache.addTextureAtlas(a.key,a.url,a.data,c,a.format),this.asyncComplete(a)},csvLoadComplete:function(a,b){var c=b.responseText;this.cache.addTilemap(a.key,a.url,c,a.format),this.asyncComplete(a)},xmlLoadComplete:function(a,b){var c=b.responseText,d=this.parseXml(c);if(!d){var e=b.responseType||b.contentType;return console.warn("Phaser.Loader - "+a.key+": invalid XML ("+e+")"),void this.asyncComplete(a,"invalid XML")}"bitmapfont"===a.type?this.cache.addBitmapFont(a.key,a.url,a.data,d,a.atlasType,a.xSpacing,a.ySpacing):"textureatlas"===a.type?this.cache.addTextureAtlas(a.key,a.url,a.data,d,a.format):"xml"===a.type&&this.cache.addXML(a.key,a.url,d),this.asyncComplete(a)},parseXml:function(a){var b;try{if(window.DOMParser){var c=new DOMParser;b=c.parseFromString(a,"text/xml")}else b=new ActiveXObject("Microsoft.XMLDOM"),b.async="false",b.loadXML(a)}catch(d){b=null}return b&&b.documentElement&&!b.getElementsByTagName("parsererror").length?b:null},updateProgress:function(){this.preloadSprite&&(0===this.preloadSprite.direction?this.preloadSprite.rect.width=Math.floor(this.preloadSprite.width/100*this.progress):this.preloadSprite.rect.height=Math.floor(this.preloadSprite.height/100*this.progress),this.preloadSprite.sprite?this.preloadSprite.sprite.updateCrop():this.preloadSprite=null)},totalLoadedFiles:function(){return this._loadedFileCount},totalQueuedFiles:function(){return this._totalFileCount-this._loadedFileCount},totalLoadedPacks:function(){return this._totalPackCount},totalQueuedPacks:function(){return this._totalPackCount-this._loadedPackCount}},Object.defineProperty(c.Loader.prototype,"progressFloat",{get:function(){var a=this._loadedFileCount/this._totalFileCount*100;return c.Math.clamp(a||0,0,100)}}),Object.defineProperty(c.Loader.prototype,"progress",{get:function(){return Math.round(this.progressFloat)}}),c.Loader.prototype.constructor=c.Loader,c.LoaderParser={bitmapFont:function(a,b,c,d){return this.xmlBitmapFont(a,b,c,d)},xmlBitmapFont:function(a,b,c,d){var e={},f=a.getElementsByTagName("info")[0],g=a.getElementsByTagName("common")[0];e.font=f.getAttribute("face"),e.size=parseInt(f.getAttribute("size"),10),e.lineHeight=parseInt(g.getAttribute("lineHeight"),10)+d,e.chars={};for(var h=a.getElementsByTagName("char"),i=0;i-1},reset:function(){this.list.length=0},remove:function(a){var b=this.list.indexOf(a);return b>-1?(this.list.splice(b,1),a):void 0},setAll:function(a,b){for(var c=this.list.length;c--;)this.list[c]&&(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)},removeAll:function(a){void 0===a&&(a=!1);for(var b=this.list.length;b--;)if(this.list[b]){var c=this.remove(this.list[b]);a&&c.destroy()}this.position=0,this.list=[]}},Object.defineProperty(c.ArraySet.prototype,"total",{get:function(){return this.list.length}}),Object.defineProperty(c.ArraySet.prototype,"first",{get:function(){return this.position=0,this.list.length>0?this.list[0]:null}}),Object.defineProperty(c.ArraySet.prototype,"next",{get:function(){return this.position0;b--){var c=Math.floor(Math.random()*(b+1)),d=a[b];a[b]=a[c],a[c]=d}return a},transposeMatrix:function(a){for(var b=a.length,c=a[0].length,d=new Array(c),e=0;c>e;e++){d[e]=new Array(b);for(var f=b-1;f>-1;f--)d[e][f]=a[f][e]}return d},rotateMatrix:function(a,b){if("string"!=typeof b&&(b=(b%360+360)%360),90===b||-270===b||"rotateLeft"===b)a=c.ArrayUtils.transposeMatrix(a),a=a.reverse();else if(-90===b||270===b||"rotateRight"===b)a=a.reverse(),a=c.ArrayUtils.transposeMatrix(a);else if(180===Math.abs(b)||"rotate180"===b){for(var d=0;d=e-a?e:d},rotate:function(a){var b=a.shift();return a.push(b),b},numberArray:function(a,b){for(var c=[],d=a;b>=d;d++)c.push(d);return c},numberArrayStep:function(a,b,d){a=+a||0;var e=typeof b;"number"!==e&&"string"!==e||!d||d[b]!==a||(b=d=null),d=null==d?1:+d||0,null===b?(b=a,a=0):b=+b||0;for(var f=-1,g=Math.max(c.Math.roundAwayFromZero((b-a)/(d||1)),0),h=new Array(g);++f>>0:(a<<24|b<<16|d<<8|e)>>>0},unpackPixel:function(a,b,d,e){return(void 0===b||null===b)&&(b=c.Color.createColor()),(void 0===d||null===d)&&(d=!1),(void 0===e||null===e)&&(e=!1),c.Device.LITTLE_ENDIAN?(b.a=(4278190080&a)>>>24,b.b=(16711680&a)>>>16,b.g=(65280&a)>>>8,b.r=255&a):(b.r=(4278190080&a)>>>24,b.g=(16711680&a)>>>16,b.b=(65280&a)>>>8,b.a=255&a),b.color=a,b.rgba="rgba("+b.r+","+b.g+","+b.b+","+b.a/255+")",d&&c.Color.RGBtoHSL(b.r,b.g,b.b,b),e&&c.Color.RGBtoHSV(b.r,b.g,b.b,b),b},fromRGBA:function(a,b){return b||(b=c.Color.createColor()),b.r=(4278190080&a)>>>24,b.g=(16711680&a)>>>16,b.b=(65280&a)>>>8,b.a=255&a,b.rgba="rgba("+b.r+","+b.g+","+b.b+","+b.a+")",b},toRGBA:function(a,b,c,d){return a<<24|b<<16|c<<8|d},RGBtoHSL:function(a,b,d,e){e||(e=c.Color.createColor(a,b,d,1)),a/=255,b/=255,d/=255;var f=Math.min(a,b,d),g=Math.max(a,b,d);if(e.h=0,e.s=0,e.l=(g+f)/2,g!==f){var h=g-f;e.s=e.l>.5?h/(2-g-f):h/(g+f),g===a?e.h=(b-d)/h+(d>b?6:0):g===b?e.h=(d-a)/h+2:g===d&&(e.h=(a-b)/h+4),e.h/=6}return e},HSLtoRGB:function(a,b,d,e){if(e?(e.r=d,e.g=d,e.b=d):e=c.Color.createColor(d,d,d),0!==b){var f=.5>d?d*(1+b):d+b-d*b,g=2*d-f;e.r=c.Color.hueToColor(g,f,a+1/3),e.g=c.Color.hueToColor(g,f,a),e.b=c.Color.hueToColor(g,f,a-1/3)}return e.r=Math.floor(255*e.r|0),e.g=Math.floor(255*e.g|0),e.b=Math.floor(255*e.b|0),c.Color.updateColor(e),e},RGBtoHSV:function(a,b,d,e){e||(e=c.Color.createColor(a,b,d,255)),a/=255,b/=255,d/=255;var f=Math.min(a,b,d),g=Math.max(a,b,d),h=g-f;return e.h=0,e.s=0===g?0:h/g,e.v=g,g!==f&&(g===a?e.h=(b-d)/h+(d>b?6:0):g===b?e.h=(d-a)/h+2:g===d&&(e.h=(a-b)/h+4),e.h/=6),e},HSVtoRGB:function(a,b,d,e){void 0===e&&(e=c.Color.createColor(0,0,0,1,a,b,0,d));var f,g,h,i=Math.floor(6*a),j=6*a-i,k=d*(1-b),l=d*(1-j*b),m=d*(1-(1-j)*b);switch(i%6){case 0:f=d,g=m,h=k;break;case 1:f=l,g=d,h=k;break;case 2:f=k,g=d,h=m;break;case 3:f=k,g=l,h=d;break;case 4:f=m,g=k,h=d;break;case 5:f=d,g=k,h=l}return e.r=Math.floor(255*f),e.g=Math.floor(255*g),e.b=Math.floor(255*h),c.Color.updateColor(e),e},hueToColor:function(a,b,c){return 0>c&&(c+=1),c>1&&(c-=1),1/6>c?a+6*(b-a)*c:.5>c?b:2/3>c?a+(b-a)*(2/3-c)*6:a},createColor:function(a,b,d,e,f,g,h,i){var j={r:a||0,g:b||0,b:d||0,a:e||1,h:f||0,s:g||0,l:h||0,v:i||0,color:0,color32:0,rgba:""};return c.Color.updateColor(j)},updateColor:function(a){return a.rgba="rgba("+a.r.toString()+","+a.g.toString()+","+a.b.toString()+","+a.a.toString()+")",a.color=c.Color.getColor(a.r,a.g,a.b),a.color32=c.Color.getColor32(a.a,a.r,a.g,a.b),a},getColor32:function(a,b,c,d){return a<<24|b<<16|c<<8|d},getColor:function(a,b,c){return a<<16|b<<8|c},RGBtoString:function(a,b,d,e,f){return void 0===e&&(e=255),void 0===f&&(f="#"),"#"===f?"#"+((1<<24)+(a<<16)+(b<<8)+d).toString(16).slice(1):"0x"+c.Color.componentToHex(e)+c.Color.componentToHex(a)+c.Color.componentToHex(b)+c.Color.componentToHex(d)},hexToRGB:function(a){var b=c.Color.hexToColor(a);return b?c.Color.getColor32(b.a,b.r,b.g,b.b):void 0},hexToColor:function(a,b){a=a.replace(/^(?:#|0x)?([a-f\d])([a-f\d])([a-f\d])$/i,function(a,b,c,d){return b+b+c+c+d+d});var d=/^(?:#|0x)?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i.exec(a);if(d){var e=parseInt(d[1],16),f=parseInt(d[2],16),g=parseInt(d[3],16);b?(b.r=e,b.g=f,b.b=g):b=c.Color.createColor(e,f,g)}return b},webToColor:function(a,b){b||(b=c.Color.createColor());var d=/^rgba?\(\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d+)\s*(?:,\s*(\d+(?:\.\d+)?))?\s*\)$/.exec(a);return d&&(b.r=parseInt(d[1],10),b.g=parseInt(d[2],10),b.b=parseInt(d[3],10),b.a=void 0!==d[4]?parseFloat(d[4]):1,c.Color.updateColor(b)),b},valueToColor:function(a,b){if(b||(b=c.Color.createColor()),"string"==typeof a)return 0===a.indexOf("rgb")?c.Color.webToColor(a,b):(b.a=1,c.Color.hexToColor(a,b));if("number"==typeof a){var d=c.Color.getRGB(a);return b.r=d.r,b.g=d.g,b.b=d.b,b.a=d.a/255,b}return b},componentToHex:function(a){var b=a.toString(16);return 1==b.length?"0"+b:b},HSVColorWheel:function(a,b){void 0===a&&(a=1),void 0===b&&(b=1);for(var d=[],e=0;359>=e;e++)d.push(c.Color.HSVtoRGB(e/359,a,b));return d},HSLColorWheel:function(a,b){void 0===a&&(a=.5),void 0===b&&(b=.5);for(var d=[],e=0;359>=e;e++)d.push(c.Color.HSLtoRGB(e/359,a,b));return d},interpolateColor:function(a,b,d,e,f){void 0===f&&(f=255);var g=c.Color.getRGB(a),h=c.Color.getRGB(b),i=(h.red-g.red)*e/d+g.red,j=(h.green-g.green)*e/d+g.green,k=(h.blue-g.blue)*e/d+g.blue;return c.Color.getColor32(f,i,j,k)},interpolateColorWithRGB:function(a,b,d,e,f,g){var h=c.Color.getRGB(a),i=(b-h.red)*g/f+h.red,j=(d-h.green)*g/f+h.green,k=(e-h.blue)*g/f+h.blue;return c.Color.getColor(i,j,k)},interpolateRGB:function(a,b,d,e,f,g,h,i){var j=(e-a)*i/h+a,k=(f-b)*i/h+b,l=(g-d)*i/h+d;return c.Color.getColor(j,k,l)},getRandomColor:function(a,b,d){if(void 0===a&&(a=0),void 0===b&&(b=255),void 0===d&&(d=255),b>255||a>b)return c.Color.getColor(255,255,255);var e=a+Math.round(Math.random()*(b-a)),f=a+Math.round(Math.random()*(b-a)),g=a+Math.round(Math.random()*(b-a));return c.Color.getColor32(d,e,f,g)},getRGB:function(a){return a>16777215?{alpha:a>>>24,red:a>>16&255,green:a>>8&255,blue:255&a,a:a>>>24,r:a>>16&255,g:a>>8&255,b:255&a}:{alpha:255,red:a>>16&255,green:a>>8&255,blue:255&a,a:255,r:a>>16&255,g:a>>8&255,b:255&a}},getWebRGB:function(a){if("object"==typeof a)return"rgba("+a.r.toString()+","+a.g.toString()+","+a.b.toString()+","+(a.a/255).toString()+")";var b=c.Color.getRGB(a);return"rgba("+b.r.toString()+","+b.g.toString()+","+b.b.toString()+","+(b.a/255).toString()+")"},getAlpha:function(a){return a>>>24},getAlphaFloat:function(a){return(a>>>24)/255},getRed:function(a){return a>>16&255},getGreen:function(a){return a>>8&255},getBlue:function(a){return 255&a},blendNormal:function(a){return a},blendLighten:function(a,b){return b>a?b:a},blendDarken:function(a,b){return b>a?a:b},blendMultiply:function(a,b){return a*b/255},blendAverage:function(a,b){return(a+b)/2},blendAdd:function(a,b){return Math.min(255,a+b)},blendSubtract:function(a,b){return Math.max(0,a+b-255)},blendDifference:function(a,b){return Math.abs(a-b)},blendNegation:function(a,b){return 255-Math.abs(255-a-b)},blendScreen:function(a,b){return 255-((255-a)*(255-b)>>8)},blendExclusion:function(a,b){return a+b-2*a*b/255},blendOverlay:function(a,b){return 128>b?2*a*b/255:255-2*(255-a)*(255-b)/255},blendSoftLight:function(a,b){return 128>b?2*((a>>1)+64)*(b/255):255-2*(255-((a>>1)+64))*(255-b)/255},blendHardLight:function(a,b){return c.Color.blendOverlay(b,a)},blendColorDodge:function(a,b){return 255===b?b:Math.min(255,(a<<8)/(255-b))},blendColorBurn:function(a,b){return 0===b?b:Math.max(0,255-(255-a<<8)/b)},blendLinearDodge:function(a,b){return c.Color.blendAdd(a,b)},blendLinearBurn:function(a,b){return c.Color.blendSubtract(a,b)},blendLinearLight:function(a,b){return 128>b?c.Color.blendLinearBurn(a,2*b):c.Color.blendLinearDodge(a,2*(b-128))},blendVividLight:function(a,b){return 128>b?c.Color.blendColorBurn(a,2*b):c.Color.blendColorDodge(a,2*(b-128))},blendPinLight:function(a,b){return 128>b?c.Color.blendDarken(a,2*b):c.Color.blendLighten(a,2*(b-128))},blendHardMix:function(a,b){return c.Color.blendVividLight(a,b)<128?0:255},blendReflect:function(a,b){return 255===b?b:Math.min(255,a*a/(255-b))},blendGlow:function(a,b){return c.Color.blendReflect(b,a)},blendPhoenix:function(a,b){return Math.min(a,b)-Math.max(a,b)+255}},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.Physics=function(a,b){b=b||{},this.game=a,this.config=b,this.arcade=null,this.p2=null,this.ninja=null,this.box2d=null,this.chipmunk=null,this.matter=null,this.parseConfig()},c.Physics.ARCADE=0,c.Physics.P2JS=1,c.Physics.NINJA=2,c.Physics.BOX2D=3,c.Physics.CHIPMUNK=4,c.Physics.MATTERJS=5,c.Physics.prototype={parseConfig:function(){this.config.hasOwnProperty("arcade")&&this.config.arcade!==!0||!c.Physics.hasOwnProperty("Arcade")||(this.arcade=new c.Physics.Arcade(this.game)),this.config.hasOwnProperty("ninja")&&this.config.ninja===!0&&c.Physics.hasOwnProperty("Ninja")&&(this.ninja=new c.Physics.Ninja(this.game)),this.config.hasOwnProperty("p2")&&this.config.p2===!0&&c.Physics.hasOwnProperty("P2")&&(this.p2=new c.Physics.P2(this.game,this.config)),this.config.hasOwnProperty("box2d")&&this.config.box2d===!0&&c.Physics.hasOwnProperty("BOX2D")&&(this.box2d=new c.Physics.BOX2D(this.game,this.config)),this.config.hasOwnProperty("matter")&&this.config.matter===!0&&c.Physics.hasOwnProperty("Matter")&&(this.matter=new c.Physics.Matter(this.game,this.config))},startSystem:function(a){a===c.Physics.ARCADE?this.arcade=new c.Physics.Arcade(this.game):a===c.Physics.P2JS?null===this.p2?this.p2=new c.Physics.P2(this.game,this.config):this.p2.reset():a===c.Physics.NINJA?this.ninja=new c.Physics.Ninja(this.game):a===c.Physics.BOX2D?null===this.box2d?this.box2d=new c.Physics.Box2D(this.game,this.config):this.box2d.reset():a===c.Physics.MATTERJS&&(null===this.matter?this.matter=new c.Physics.Matter(this.game,this.config):this.matter.reset())},enable:function(a,b,d){void 0===b&&(b=c.Physics.ARCADE),void 0===d&&(d=!1),b===c.Physics.ARCADE?this.arcade.enable(a):b===c.Physics.P2JS&&this.p2?this.p2.enable(a,d):b===c.Physics.NINJA&&this.ninja?this.ninja.enableAABB(a):b===c.Physics.BOX2D&&this.box2d?this.box2d.enable(a):b===c.Physics.MATTERJS&&this.matter&&this.matter.enable(a)},preUpdate:function(){this.p2&&this.p2.preUpdate(),this.box2d&&this.box2d.preUpdate(),this.matter&&this.matter.preUpdate()},update:function(){this.p2&&this.p2.update(),this.box2d&&this.box2d.update(),this.matter&&this.matter.update()},setBoundsToWorld:function(){this.arcade&&this.arcade.setBoundsToWorld(),this.ninja&&this.ninja.setBoundsToWorld(),this.p2&&this.p2.setBoundsToWorld(),this.box2d&&this.box2d.setBoundsToWorld(),this.matter&&this.matter.setBoundsToWorld()},clear:function(){this.p2&&this.p2.clear(),this.box2d&&this.box2d.clear(),this.matter&&this.matter.clear()},reset:function(){this.p2&&this.p2.reset(),this.box2d&&this.box2d.reset(),this.matter&&this.matter.reset()},destroy:function(){this.p2&&this.p2.destroy(),this.box2d&&this.box2d.destroy(),this.matter&&this.matter.destroy(),this.arcade=null,this.ninja=null,this.p2=null,this.box2d=null,this.matter=null}},c.Physics.prototype.constructor=c.Physics,c.Particles=function(a){this.game=a,this.emitters={},this.ID=0},c.Particles.prototype={add:function(a){return this.emitters[a.name]=a,a},remove:function(a){delete this.emitters[a.name]},update:function(){for(var a in this.emitters)this.emitters[a].exists&&this.emitters[a].update()}},c.Particles.prototype.constructor=c.Particles,void 0===PIXI.blendModes&&(PIXI.blendModes=c.blendModes),void 0===PIXI.scaleModes&&(PIXI.scaleModes=c.scaleModes),void 0===PIXI.Texture.emptyTexture&&(PIXI.Texture.emptyTexture=new PIXI.Texture(new PIXI.BaseTexture)),void 0===PIXI.DisplayObject._tempMatrix&&(PIXI.DisplayObject._tempMatrix=new PIXI.Matrix),void 0===PIXI.RenderTexture.tempMatrix&&(PIXI.RenderTexture.tempMatrix=new PIXI.Matrix),void 0===PIXI.Graphics.POLY&&(PIXI.Graphics.POLY=c.POLYGON,PIXI.Graphics.RECT=c.RECTANGLE,PIXI.Graphics.CIRC=c.CIRCLE,PIXI.Graphics.ELIP=c.ELLIPSE,PIXI.Graphics.RREC=c.ROUNDEDRECTANGLE),PIXI.TextureSilentFail=!0,"undefined"!=typeof exports?("undefined"!=typeof module&&module.exports&&(exports=module.exports=c),exports.Phaser=c):"undefined"!=typeof define&&define.amd?define("Phaser",function(){return b.Phaser=c}()):b.Phaser=c,c}.call(this); //# sourceMappingURL=phaser-minimum.map \ No newline at end of file diff --git a/build/custom/phaser-no-physics.js b/build/custom/phaser-no-physics.js index 62d3f4bcf..1bd33cd4c 100644 --- a/build/custom/phaser-no-physics.js +++ b/build/custom/phaser-no-physics.js @@ -7,7 +7,7 @@ * * Phaser - http://phaser.io * -* v2.4.1 "Ionin Spring" - Built: Thu Jul 23 2015 16:01:54 +* v2.4.1 "Ionin Spring" - Built: Fri Jul 24 2015 13:26:51 * * By Richard Davey http://www.photonstorm.com @photonstorm * @@ -8221,13 +8221,16 @@ PIXI.BaseTexture.prototype.destroy = function() { delete PIXI.BaseTextureCache[this.imageUrl]; delete PIXI.TextureCache[this.imageUrl]; + this.imageUrl = null; + if (!navigator.isCocoonJS) this.source.src = ''; } else if (this.source && this.source._pixiId) { delete PIXI.BaseTextureCache[this.source._pixiId]; } + this.source = null; this.unloadFromGPU(); @@ -28232,65 +28235,77 @@ Phaser.Pointer.prototype = { // If you find one, please tell us! var buttons = event.buttons; - if (buttons === undefined) + if (buttons !== undefined) { - return; - } + // Note: These are bitwise checks, not booleans - // Note: These are bitwise checks, not booleans + if (Phaser.Pointer.LEFT_BUTTON & buttons) + { + this.leftButton.start(event); + } + else + { + this.leftButton.stop(event); + } - if (Phaser.Pointer.LEFT_BUTTON & buttons) - { - this.leftButton.start(event); + if (Phaser.Pointer.RIGHT_BUTTON & buttons) + { + this.rightButton.start(event); + } + else + { + this.rightButton.stop(event); + } + + if (Phaser.Pointer.MIDDLE_BUTTON & buttons) + { + this.middleButton.start(event); + } + else + { + this.middleButton.stop(event); + } + + if (Phaser.Pointer.BACK_BUTTON & buttons) + { + this.backButton.start(event); + } + else + { + this.backButton.stop(event); + } + + if (Phaser.Pointer.FORWARD_BUTTON & buttons) + { + this.forwardButton.start(event); + } + else + { + this.forwardButton.stop(event); + } + + if (Phaser.Pointer.ERASER_BUTTON & buttons) + { + this.eraserButton.start(event); + } + else + { + this.eraserButton.stop(event); + } } else { - this.leftButton.stop(event); - } + // No buttons property (like Safari on OSX when using a trackpad) - if (Phaser.Pointer.RIGHT_BUTTON & buttons) - { - this.rightButton.start(event); - } - else - { - this.rightButton.stop(event); - } - - if (Phaser.Pointer.MIDDLE_BUTTON & buttons) - { - this.middleButton.start(event); - } - else - { - this.middleButton.stop(event); - } - - if (Phaser.Pointer.BACK_BUTTON & buttons) - { - this.backButton.start(event); - } - else - { - this.backButton.stop(event); - } - - if (Phaser.Pointer.FORWARD_BUTTON & buttons) - { - this.forwardButton.start(event); - } - else - { - this.forwardButton.stop(event); - } - - if (Phaser.Pointer.ERASER_BUTTON & buttons) - { - this.eraserButton.start(event); - } - else - { - this.eraserButton.stop(event); + if (event.type === 'mousedown') + { + this.leftButton.start(event); + } + else + { + this.leftButton.stop(event); + this.rightButton.stop(event); + } } // On OS X (and other devices with trackpads) you have to press CTRL + the pad @@ -57157,26 +57172,30 @@ Phaser.Cache.prototype = { }, /** - * Removes an image from the cache and optionally from the Pixi.BaseTextureCache as well. + * Removes an image from the cache. + * + * You can optionally elect to destroy it as well. This calls BaseTexture.destroy on it. * - * Note that this only removes it from the Phaser.Cache. If you still have references to the data elsewhere + * Note that this only removes it from the Phaser and PIXI Caches. If you still have references to the data elsewhere * then it will persist in memory. * * @method Phaser.Cache#removeImage * @param {string} key - Key of the asset you want to remove. - * @param {boolean} [removeFromPixi=true] - Should this image also be removed from the Pixi BaseTextureCache? + * @param {boolean} [removeFromPixi=true] - Should this image also be destroyed? Removing it from the PIXI.BaseTextureCache? */ removeImage: function (key, removeFromPixi) { if (removeFromPixi === undefined) { removeFromPixi = true; } - delete this._cache.image[key]; + var img = this.getImage(key, true); - if (removeFromPixi) + if (removeFromPixi && img.base) { - PIXI.BaseTextureCache[key].destroy(); + img.base.destroy(); } + delete this._cache.image[key]; + }, /** @@ -67547,10 +67566,12 @@ PIXI.TextureSilentFail = true; } exports.Phaser = Phaser; } else if (typeof define !== 'undefined' && define.amd) { - define('Phaser', (function() { return root.Phaser = Phaser; }) ()); + define('Phaser', (function() { return root.Phaser = Phaser; })() ); } else { root.Phaser = Phaser; } + + return Phaser; }).call(this); /* diff --git a/build/custom/phaser-no-physics.map b/build/custom/phaser-no-physics.map index 0ffc1a1ca..bf11cea9d 100644 --- a/build/custom/phaser-no-physics.map +++ b/build/custom/phaser-no-physics.map @@ -1 +1 @@ -{"version":3,"file":"phaser-no-physics.min.js","sources":["phaser-no-physics.js"],"names":["root","this","PIXI","WEBGL_RENDERER","CANVAS_RENDERER","VERSION","_UID","Float32Array","Uint16Array","Uint32Array","ArrayBuffer","Array","PI_2","Math","PI","RAD_TO_DEG","DEG_TO_RAD","RETINA_PREFIX","defaultRenderOptions","view","transparent","antialias","preserveDrawingBuffer","resolution","clearBeforeRender","autoResize","DisplayObject","position","Point","scale","transformCallback","transformCallbackContext","pivot","rotation","alpha","visible","hitArea","renderable","parent","stage","worldAlpha","worldTransform","Matrix","worldPosition","worldScale","worldRotation","_sr","_cr","filterArea","_bounds","Rectangle","_currentBounds","_mask","_cacheAsBitmap","_cacheIsDirty","prototype","constructor","destroy","children","i","length","_destroyCachedSprite","Object","defineProperty","get","item","set","value","isMask","_filters","passes","filterPasses","j","push","_filterBlock","target","_generateCachedSprite","updateTransform","game","p","world","a","b","c","d","tx","ty","pt","wt","rotationCache","sin","cos","x","y","sqrt","atan2","call","displayObjectUpdateTransform","getBounds","matrix","EmptyRectangle","getLocalBounds","identityMatrix","setStageReference","preUpdate","generateTexture","scaleMode","renderer","bounds","renderTexture","RenderTexture","width","height","_tempMatrix","render","updateCache","toGlobal","apply","toLocal","from","applyInverse","_renderCachedSprite","renderSession","_cachedSprite","gl","Sprite","_renderWebGL","_renderCanvas","texture","resize","tempFilters","filters","anchor","DisplayObjectContainer","create","_width","_height","addChild","child","addChildAt","index","removeChild","splice","Error","swapChildren","child2","index1","getChildIndex","index2","indexOf","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","Texture","emptyTexture","tint","cachedTint","tintedTexture","blendMode","blendModes","NORMAL","shader","baseTexture","hasLoaded","onTextureUpdate","frame","setTexture","valid","w0","w1","h0","h1","x1","y1","x2","y2","x3","y3","x4","y4","crop","currentBlendMode","context","globalCompositeOperation","blendModesCanvas","globalAlpha","smoothProperty","scaleModes","LINEAR","dx","trim","dy","roundPixels","setTransform","cw","ch","requiresReTint","CanvasTinter","getTintedTexture","drawImage","cx","cy","source","fromFrame","frameId","TextureCache","fromImage","imageId","crossorigin","SpriteBatch","textureThing","ready","initWebGL","fastSpriteBatch","WebGLFastSpriteBatch","setContext","shaderManager","setShader","fastShader","transform","isRotated","childTransform","Stage","backgroundColor","setBackgroundColor","backgroundColorSplit","hex2rgb","hex","toString","substr","backgroundColorString","rgb2hex","rgb","canUseNewCanvasBlendModes","document","pngHead","pngEnd","magenta","Image","src","yellow","canvas","createElement","getContext","getImageData","data","getNextPowerOfTwo","number","result","isPowerOfTwo","PolyK","Triangulate","sign","n","tgs","avl","al","i0","i1","i2","ax","ay","bx","by","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","isArray","join","createShader","shaderSource","compileShader","getShaderParameter","COMPILE_STATUS","window","console","log","getShaderInfoLog","compileProgram","vertexSrc","fragmentSrc","fragmentShader","vertexShader","shaderProgram","createProgram","attachShader","linkProgram","getProgramParameter","LINK_STATUS","PixiShader","program","textureCount","firstRun","dirty","attributes","init","defaultVertexSrc","useProgram","uSampler","getUniformLocation","projectionVector","offsetVector","dimensions","aVertexPosition","getAttribLocation","aTextureCoord","colorAttribute","key","uniforms","uniformLocation","initUniforms","uniform","type","_init","initSampler2D","glMatrix","glValueLength","glFunc","uniformMatrix2fv","uniformMatrix3fv","uniformMatrix4fv","activeTexture","bindTexture","TEXTURE_2D","_glTextures","id","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","transpose","z","w","_dirty","instances","updateTexture","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","toArray","uniform1f","uniform2f","uniform3fv","bindBuffer","ARRAY_BUFFER","buffer","vertexAttribPointer","FLOAT","ELEMENT_ARRAY_BUFFER","indexBuffer","TRIANGLE_STRIP","lastIndex","clearDirty","graphicsData","reset","graphicsDataPool","Graphics","POLY","points","shape","slice","closed","fill","switchMode","canDrawUsingSimple","buildPoly","buildComplexPoly","lineWidth","buildLine","RECT","buildRectangle","CIRC","ELIP","buildCircle","RREC","buildRoundedRectangle","upload","pop","WebGLGraphicsData","rectData","fillColor","fillAlpha","r","g","verts","vertPos","tempPoints","rrectData","radius","recPoints","concat","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","a1","b1","c1","a2","b2","c2","denom","pdist","dist","indexCount","indexStart","lineColor","lineAlpha","abs","createBuffer","glPoints","bufferData","STATIC_DRAW","glIndicies","glContexts","WebGLRenderer","options","defaultRenderer","_contextOptions","premultipliedAlpha","stencil","WebGLShaderManager","WebGLSpriteBatch","WebGLMaskManager","WebGLFilterManager","WebGLStencilManager","blendModeManager","WebGLBlendModeManager","drawCount","initContext","mapBlendModes","glContextId","disable","DEPTH_TEST","CULL_FACE","enable","BLEND","contextLost","__stage","viewport","bindFramebuffer","FRAMEBUFFER","clearColor","clear","COLOR_BUFFER_BIT","renderDisplayObject","displayObject","setBlendMode","style","createTexture","UNPACK_PREMULTIPLY_ALPHA_WEBGL","NEAREST","mipmap","LINEAR_MIPMAP_LINEAR","NEAREST_MIPMAP_NEAREST","generateMipmap","_powerOf2","blendModesWebGL","ONE","ONE_MINUS_SRC_ALPHA","ADD","SRC_ALPHA","DST_ALPHA","MULTIPLY","DST_COLOR","SCREEN","OVERLAY","DARKEN","LIGHTEN","COLOR_DODGE","COLOR_BURN","HARD_LIGHT","SOFT_LIGHT","DIFFERENCE","EXCLUSION","HUE","SATURATION","COLOR","LUMINOSITY","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","size","numVerts","numIndices","vertices","positions","colors","lastIndexCount","drawing","currentBatchSize","currentBaseTexture","textures","shaders","sprites","AbstractFilter","vertexBuffer","DYNAMIC_DRAW","sprite","uvs","_uvs","aX","aY","x0","y0","renderTilingSprite","tilingTexture","TextureUvs","h","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","DEFAULT","framebufferTexture2D","COLOR_ATTACHMENT0","renderBuffer","createRenderbuffer","bindRenderbuffer","RENDERBUFFER","framebufferRenderbuffer","DEPTH_STENCIL_ATTACHMENT","renderbufferStorage","DEPTH_STENCIL","deleteFramebuffer","deleteTexture","CanvasBuffer","clearRect","CanvasMaskManager","save","cacheAlpha","CanvasGraphics","renderGraphicsMask","clip","restore","tintMethod","tintWithMultiply","fillStyle","fillRect","tintWithPerPixel","rgbValues","pixelData","pixels","canHandleAlpha","putImageData","checkInverseAlpha","s1","s2","canUseMultiply","CanvasRenderer","refresh","navigator","isCocoonJS","screencanvas","removeView","updateGraphicsTint","_fillTint","_lineTint","beginPath","moveTo","lineTo","closePath","strokeStyle","stroke","strokeRect","arc","kappa","ox","oy","xe","ye","xm","ym","bezierCurveTo","rx","ry","maxRadius","min","quadraticCurveTo","len","rect","tintR","tintG","tintB","BaseTextureCache","BaseTextureCacheIdGenerator","BaseTexture","complete","naturalWidth","naturalHeight","imageUrl","forceLoaded","_pixiId","unloadFromGPU","updateSourceImage","newSrc","glTexture","image","crossOrigin","fromCanvas","TextureCacheIdGenerator","FrameCache","TextureSilentFail","noFrame","isTiling","requiresUpdate","setFrame","onBaseTextureLoaded","destroyBase","_updateUvs","tw","th","addTextureToCache","removeTextureFromCache","textureBuffer","renderWebGL","renderCanvas","tempMatrix","Phaser","updateBase","identity","translate","append","realResolution","getImage","getBase64","getCanvas","toDataURL","webGLPixels","Uint8Array","readPixels","tempCanvas","canvasData","Strip","canvasPadding","drawMode","DrawModes","_vertexBuffer","_initWebGL","_renderStrip","_indexBuffer","_uvBuffer","_colorBuffer","_renderCanvasTriangleStrip","_renderCanvasTriangles","_renderCanvasDrawTriangle","index0","textureSource","textureWidth","textureHeight","u0","u1","u2","v0","v1","v2","paddingX","paddingY","centerX","centerY","normX","normY","delta","deltaA","deltaB","deltaC","deltaD","deltaE","deltaF","renderStripFlat","strip","updateFrame","rawX","rawY","Rope","point","amount","total","nextPoint","perp","ratio","perpLength","num","TilingSprite","textureDebug","canvasBuffer","tilePattern","refreshTexture","frameWidth","frameHeight","generateTilingTexture","needsUpdate","createPattern","sessionBlendMode","forcePowerOfTwo","targetWidth","_frame","sourceSizeW","targetHeight","sourceSizeH","trimmed","spriteSourceSizeX","spriteSourceSizeY","exports","module","define","amd","WheelEventProxy","scaleFactor","deltaMode","_scaleFactor","_deltaMode","originalEvent","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","CIRCLE","RECTANGLE","LINE","MATRIX","POINT","ROUNDEDRECTANGLE","CREATURE","VIDEO","trunc","ceil","floor","Function","bind","thisArg","bound","args","boundArgs","arguments","TypeError","F","proto","arg","forEach","fun","t","CheapArray","assert","warn","Utils","getProperty","obj","prop","parts","split","last","l","current","setProperty","chanceRoll","chance","random","randomChoice","choice1","choice2","parseDimension","dimension","f","parseInt","innerWidth","innerHeight","pad","str","dir","padlen","right","left","isPlainObject","nodeType","hasOwnProperty","e","extend","name","copy","copyIsArray","clone","deep","mixinPrototype","mixin","replace","mixinKeys","keys","to","o","childNodes","cloneNode","Circle","diameter","_diameter","_radius","circumference","out","setTo","copyFrom","copyTo","dest","distance","round","output","contains","circumferencePoint","angle","asDegrees","offsetPoint","top","bottom","equals","intersects","degToRad","intersectsRectangle","halfWidth","xDist","halfHeight","yDist","xCornerDist","yCornerDist","xCornerDistSq","yCornerDistSq","maxCornerDistSq","Ellipse","normx","normy","Line","fromSprite","startSprite","endSprite","useCenter","center","fromAngle","rotate","line","asSegment","intersectsPoints","reflect","pointOnLine","pointOnSegment","xMin","xMax","max","yMin","yMax","coordinatesOnLine","stepRate","results","sx","sy","err","e2","wrap","uc","ua","ub","normalAngle","fromArray","array","pos","newPos","tx1","d1","invert","add","subtract","multiply","divide","clampX","clamp","clampY","radToDeg","getMagnitude","getMagnitudeSq","setMagnitude","magnitude","normalize","isZero","m","dot","cross","rperp","normalRightHand","negative","multiplyAdd","s","interpolate","project","amt","projectUnit","centroid","pointslength","parse","xProp","yProp","Polygon","area","_points","toNumberArray","flatten","inside","ix","iy","jx","jy","Number","MAX_VALUE","calculateArea","p1","p2","avgHeight","centerOn","floorAll","ceilAll","inflate","containsRect","intersection","intersectsRaw","tolerance","union","randomX","randomY","empty","inflatePoint","containsRaw","rw","rh","containsPoint","volume","sameDimensions","aabb","MIN_VALUE","RoundedRectangle","Camera","deadzone","roundPx","atLimit","totalInView","_targetPosition","_edge","_position","FOLLOW_LOCKON","FOLLOW_PLATFORMER","FOLLOW_TOPDOWN","FOLLOW_TOPDOWN_TIGHT","follow","helper","unfollow","focusOn","setPosition","focusOnXY","update","updateTarget","checkBounds","setBoundsToWorld","setSize","Create","bmd","make","bitmapData","ctx","palettes",1,2,3,4,5,6,7,8,9,"A","B","C","D","E","PALETTE_ARNE","PALETTE_JMP","PALETTE_CGA","PALETTE_C64","PALETTE_JAPANESE_MACHINE","pixelWidth","pixelHeight","palette","row","grid","cellWidth","cellHeight","State","camera","cache","input","load","math","sound","time","tweens","particles","physics","rnd","preload","loadUpdate","loadRender","preRender","paused","resumed","pauseUpdate","shutdown","StateManager","pendingState","states","_pendingState","_clearWorld","_clearCache","_created","_args","onStateChange","Signal","onInitCallback","onPreloadCallback","onCreateCallback","onUpdateCallback","onRenderCallback","onResizeCallback","onPreRenderCallback","onLoadUpdateCallback","onLoadRenderCallback","onPausedCallback","onResumedCallback","onPauseUpdateCallback","onShutDownCallback","boot","onPause","pause","onResume","resume","state","autoStart","newState","isBooted","remove","callbackContext","clearWorld","clearCache","checkState","restart","dummy","previousStateKey","clearCurrentState","setCurrentState","dispatch","totalQueuedFiles","totalQueuedPacks","loadComplete","removeAll","debug","link","unlink","_kickstart","getCurrentState","elapsedTime","renderType","_bindings","_prevParams","memorize","_shouldPropagate","active","_boundDispatch","validateListener","listener","fnName","_registerListener","isOnce","listenerContext","priority","binding","prevIndex","_indexOfListener","SignalBinding","_addBinding","execute","_priority","cur","_listener","has","addOnce","_destroy","getNumListeners","halt","bindings","paramsArr","forget","dispose","_this","signal","_isOnce","_signal","callCount","params","handlerReturn","detach","isBound","getListener","getSignal","Filter","prevPoint","Date","mouse","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","exists","currentRenderOrderID","_hiddenVar","_onChange","_backgroundColor","config","parseConfig","DOM","getOffset","Canvas","setUserSelect","setTouchAction","checkVisibility","webkitHidden","mozHidden","msHidden","hidden","event","visibilityChange","addEventListener","onblur","onfocus","onpagehide","onpageshow","device","cocoonJSApp","CocoonJS","App","onSuspended","onActivated","focusLoss","focusGain","gamePaused","gameResumed","Color","valueToColor","getColor","RGBtoString","removeEventListener","Group","addToStage","enableBody","physicsBodyType","Physics","ARCADE","physicsType","alive","ignoreDestroy","pendingDestroy","classType","cursor","enableBodyDebug","physicsSortDirection","onDestroy","cursorIndex","fixedToCamera","cameraOffset","hash","_sortProperty","RETURN_NONE","RETURN_TOTAL","RETURN_CHILD","SORT_ASCENDING","SORT_DESCENDING","silent","body","addToHash","events","onAddedToGroup$dispatch","removeFromHash","addMultiple","moveAll","addAt","updateZ","getAt","createMultiple","quantity","resetCursor","next","previous","swap","child1","bringToTop","getIndex","sendToBack","moveUp","moveDown","xy","oldChild","newChild","hasProperty","operation","force","checkProperty","checkAlive","checkVisible","setAll","setAllChildren","checkAll","addAll","property","subAll","multiplyAll","divideAll","callAllExists","callback","existsValue","callbackFromArray","callAll","method","methodLength","contextLength","renderOrderID","predicate","checkExists","ArraySet","forEachExists","iterate","forEachAlive","forEachDead","sort","order","ascendingSortHandler","descendingSortHandler","customSort","sortHandler","returnType","getFirstExists","getFirstAlive","getFirstDead","getTop","getBottom","countLiving","countDead","getRandom","ArrayUtils","getRandomItem","destroyPhase","onRemovedFromGroup$dispatch","group","removeBetween","destroyChildren","soft","World","_definedSize","stateChange","setBounds","useBounds","horizontal","vertical","between","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","text","geom","uuid","topLeft","topMiddle","topRight","bottomLeft","bottomMiddle","bottomRight","ScaleManager","dom","minWidth","maxWidth","minHeight","maxHeight","forceLandscape","forcePortrait","incorrectOrientation","_pageAlignHorizontally","_pageAlignVertically","onOrientationChange","enterIncorrectOrientation","leaveIncorrectOrientation","fullScreenTarget","_createdFullScreenTarget","onFullScreenInit","onFullScreenChange","onFullScreenError","screenOrientation","getScreenOrientation","scaleFactorInversed","margin","aspectRatio","sourceAspectRatio","windowConstraints","compatibility","supportsFullScreen","orientationFallback","noMargins","scrollTo","forceMinimumDocumentHeight","canExpandParent","clickTrampoline","_scaleMode","NO_SCALE","_fullScreenScaleMode","parentIsWindow","parentNode","parentScaleFactor","trackParentInterval","onSizeChange","onResizeContext","_pendingScaleMode","_fullScreenRestore","_gameSize","_userScaleFactor","_userScaleTrim","_lastUpdate","_updateThrottle","_updateThrottleReset","_parentBounds","_tempBounds","_lastReportedCanvasSize","_lastReportedGameSize","_booted","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","visualBounds","newWidth","newHeight","updateDimensions","queueUpdate","currentScaleMode","setUserScale","hScale","vScale","hTrim","vTrim","setResizeCallback","signalSizeChange","setMinMax","prevThrottle","prevWidth","prevHeight","boundsChanged","orientationChanged","updateOrientationState","updateLayout","throttle","updateScalingAndBounds","forceOrientation","classifyOrientation","orientation","previousOrientation","previouslyIncorrect","isLandscape","isPortrait","changed","correctnessChanged","scrollTop","reflowGame","documentElement","setMaximum","setExactFit","isFullScreen","boundingParent","setShowAll","resetCanvas","reflowCanvas","layoutBounds","clientRect","getBoundingClientRect","wc","windowBounds","alignCanvas","parentBounds","canvasBounds","currentEdge","targetEdge","marginLeft","marginRight","marginTop","marginBottom","pageAlignHorizontally","pageAlignVertically","cssWidth","cssHeight","expanding","createFullScreenTarget","fsTarget","background","startFullScreen","allowTrampoline","setTimeout","activePointer","mousePointer","addClickTrampoline","smoothed","cleanupCreatedTarget","initData","targetElement","insertBefore","appendChild","fullscreenKeyboard","requestFullscreen","Element","ALLOW_KEYBOARD_INPUT","stopFullScreen","cancelFullscreen","prepScreenMode","enteringFullscreen","createdTarget","enterFullScreen","leaveFullScreen","letterBox","scaleX1","scaleY1","scaleX2","scaleY2","scaleOnWidth","Game","physicsConfig","isRunning","raf","net","Device","lockRender","stepping","pendingStep","stepCount","onBlur","onFocus","_paused","_codePaused","currentUpdateID","updatesThisFrame","_deltaTime","_lastCount","_spiraling","fpsProblemNotifier","forceSingleUpdate","_nextFpsNotification","enableDebug","RandomDataGenerator","now","whenReady","seed","setUpRenderer","GameObjectFactory","GameObjectCreator","Cache","Loader","Time","TweenManager","Input","SoundManager","Particles","Net","Debug","showDebugHeader","RequestAnimationFrame","stopFocus","focus","hideBanner","webAudio","contextRestored","addToDOM","preventDefault","clearGLTextures","updateLogic","desiredFps","updateRender","slowMotion","slowStep","elapsed","timeStep","enableStep","disableStep","step","removeFromDOM","setMute","cordova","iOS","unsetMute","hitCanvas","hitContext","moveCallbacks","pollRate","enabled","multiInputOverride","MOUSE_TOUCH_COMBINE","speed","circle","maxPointers","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","Touch","MSPointer","Keyboard","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","mouseDownCallback","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","BACK_BUTTON","FORWARD_BUTTON","WHEEL_UP","WHEEL_DOWN","onMouseDown","onMouseMove","onMouseUp","_onMouseUpGlobal","onMouseUpGlobal","onMouseOut","onMouseOver","onMouseWheel","wheelEvent","mouseMoveCallback","withinGame","bindEvent","deltaY","requestPointerLock","element","mozRequestPointerLock","webkitRequestPointerLock","_pointerLockChange","pointerLockChange","pointerLockElement","mozPointerLockElement","webkitPointerLockElement","releasePointerLock","exitPointerLock","mozExitPointerLock","webkitExitPointerLock","_stubsGenerated","makeBinder","defineProperties","detail","deltaX","wheelDeltaX","deltaZ","pointerDownCallback","pointerMoveCallback","pointerUpCallback","_onMSPointerDown","_onMSPointerMove","_onMSPointerUp","onPointerDown","onPointerMove","onPointerUp","pointerType","DeviceButton","buttonCode","isDown","isUp","timeDown","duration","timeUp","repeats","altKey","shiftKey","ctrlKey","onFloat","padFloat","justPressed","justReleased","leftButton","middleButton","rightButton","backButton","forwardButton","eraserButton","ERASER_BUTTON","_holdSent","_history","_nextDrop","_stateReset","clientX","clientY","pageX","pageY","screenX","screenY","rawMovementX","rawMovementY","movementX","movementY","isMouse","previousTapTime","totalTouches","msSinceLastClick","targetObject","positionDown","positionUp","_clickTrampolines","_trampolineTargetObject","resetButtons","updateButtons","buttons","totalActivePointers","_touchedHandler","processInteractiveObjects","shift","fromClick","pollLocked","mozMovementX","webkitMovementX","mozMovementY","webkitMovementY","isDragged","highestRenderOrderID","highestInputPriorityID","candidateTarget","currentNode","first","checked","validForInput","checkPointerDown","checkPointerOver","priorityID","_pointerOutHandler","_pointerOverHandler","leave","currentPointers","callbackArgs","trampolines","trampoline","_releasedHandler","resetMovement","touchLockCallbacks","touchStartCallback","touchMoveCallback","touchEndCallback","touchEnterCallback","touchLeaveCallback","touchCancelCallback","_onTouchStart","_onTouchMove","_onTouchEnd","_onTouchEnter","_onTouchLeave","_onTouchCancel","onTouchStart","onTouchMove","onTouchEnd","onTouchEnter","onTouchLeave","onTouchCancel","consumeDocumentTouches","_documentTouchMove","addTouchLockCallback","removeTouchLockCallback","changedTouches","InputHandler","useHandCursor","_setHandCursor","allowHorizontalDrag","allowVerticalDrag","snapOffset","snapOnDrag","snapOnRelease","snapX","snapY","snapOffsetX","snapOffsetY","pixelPerfectOver","pixelPerfectClick","pixelPerfectAlpha","draggable","boundsRect","boundsSprite","consumePointerEvent","scaleLayer","dragOffset","dragFromCenter","dragStartPoint","snapPoint","_dragPoint","_dragPhase","_wasEnabled","_tempPoint","_pointerData","isOver","isOut","timeOver","timeOut","downDuration","onAddedToGroup","addedToGroup","onRemovedFromGroup","removedFromGroup","flagged","highestID","highestRenderID","includePixelPerfect","isPixelPerfect","pointerX","pointerY","pointerDown","pointerUp","pointerTimeDown","pointerTimeUp","pointerOver","pointerOut","pointerTimeOver","pointerTimeOut","pointerDragged","fastTest","checkPixel","_dx","_dy","_draggedPointerID","updateDrag","onInputOver$dispatch","onInputOut$dispatch","onInputDown$dispatch","startDrag","onInputUp$dispatch","stopDrag","globalToLocalX","globalToLocalY","checkBoundsRect","checkBoundsSprite","onDragUpdate","justOver","delay","overDuration","justOut","enableDrag","lockCenter","pixelPerfect","alphaThreshold","disableDrag","onDragStart$dispatch","onDragStop$dispatch","setDragLock","allowHorizontal","allowVertical","enableSnap","onDrag","onRelease","disableSnap","_gamepadIndexMap","_rawPads","_active","_gamepadSupportAvailable","webkitGetGamepads","webkitGamepads","userAgent","getGamepads","_prevRawGamepadTypes","_prevTimestamps","onConnectCallback","onDisconnectCallback","onDownCallback","onUpCallback","onAxisCallback","onFloatCallback","_ongamepadconnected","_gamepaddisconnected","_gamepads","SinglePad","addCallbacks","callbacks","onConnect","onDisconnect","onAxis","_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","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","processButtonDown","processButtonUp","processButtonFloat","axes","processAxisChange","triggerCallback","disconnectingIndex","axis","axisCode","buttonValue","Key","keycode","_enabled","keyCode","onHoldCallback","onHoldContext","_justDown","_justUp","processKeyDown","processKeyUp","upDuration","pressEvent","onPressCallback","_keys","_capture","_onKeyDown","_onKeyPress","_onKeyUp","_k","onPress","addKey","addKeyCapture","addKeys","removeKey","removeKeyCapture","createCursorKeys","up","down","processKeyPress","clearCaptures","String","fromCharCode","charCode","charCodeAt","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","COMMA","UNDERSCORE","PERIOD","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","PLUS","MINUS","INSERT","DELETE","HELP","NUM_LOCK","Component","Angle","wrapAngle","Animation","play","frameRate","loop","killOnComplete","animations","AutoCull","autoCull","inCamera","checkWorldBounds","Bounds","BringToTop","Core","install","components","previousPosition","Events","PhysicsBody","AnimationManager","LoadTexture","loadTexture","FixedToCamera","previousRotation","fresh","_exists","P2JS","removeFromWorld","customRender","Crop","cropRect","_crop","updateCrop","resetFrame","Delta","Destroy","onDestroy$dispatch","Video","onChangeSource","resizeFrame","BitmapText","_glyphs","_parent","_onDestroy","_onAddedToGroup","_onRemovedFromGroup","_onRemovedFromWorld","_onKilled","_onRevived","_onEnterBounds","_onOutOfBounds","_onInputOver","_onInputOut","_onInputDown","_onInputUp","_onDragStart","_onDragUpdate","_onDragStop","_onAnimationStart","_onAnimationComplete","_onAnimationLoop","onRemovedFromWorld","onKilled","onRevived","onOutOfBounds","onEnterBounds","onInputOver","onInputOut","onInputDown","onInputUp","onDragStart","onDragStop","onAnimationStart","onAnimationComplete","onAnimationLoop","backing","_fixedToCamera","Health","health","maxHealth","damage","kill","heal","InCamera","InputEnabled","inputEnabled","InWorld","_outOfBoundsFired","onEnterBounds$dispatch","onOutOfBounds$dispatch","outOfBoundsKill","inWorld","LifeSpan","lifespan","physicsElapsedMS","revive","onRevived$dispatch","onKilled$dispatch","stopAnimation","BitmapData","hasFrameData","loadFrameData","getFrameData","img","base","frameData","frameName","Overlap","overlap","_reset","Reset","ScaleMinMax","checkTransform","scaleMin","scaleMax","setScaleMinMax","Smoothed","existing","object","creature","mesh","Creature","tween","physicsGroup","audio","audioSprite","addSprite","tileSprite","rope","Text","overFrame","outFrame","downFrame","upFrame","Button","emitter","maxParticles","Arcade","Emitter","retroFont","font","characterWidth","characterHeight","chars","charsPerRow","xSpacing","ySpacing","xOffset","yOffset","RetroFont","bitmapText","tilemap","tileWidth","tileHeight","Tilemap","addToCache","addRenderTexture","video","url","addBitmapData","Tween","align","preUpdatePhysics","preUpdateLifeSpan","preUpdateInWorld","preUpdateCore","_scroll","def","physicsElapsed","autoScroll","stopScroll","_hasUpdateAnimation","_updateAnimationCallback","updateAnimation","_updateAnimation","segments","difference","_onOverFrame","_onOutFrame","_onDownFrame","_onUpFrame","onOverSound","onOutSound","onDownSound","onUpSound","onOverSoundMarker","onOutSoundMarker","onDownSoundMarker","onUpSoundMarker","onOverMouseOnly","freezeFrames","forceOut","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","Particle","autoScale","scaleData","_s","autoAlpha","alphaData","_a","onEmit","setAlphaData","setScaleData","imageData","textureFrame","Frame","disableTextureUpload","cls","_image","_pos","_size","_scale","_rotate","_alpha","prev","_anchor","_tempR","_tempG","_tempB","_circle","_swapCanvas","moveH","moveV","draw","addImage","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","direction","scan","anchorX","anchorY","copyRect","drawGroup","shadow","blur","shadowColor","shadowBlur","shadowOffsetX","shadowOffsetY","alphaMask","sourceRect","maskRect","blendSourceAtop","blendReset","extract","destination","prevFont","fillText","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","currentPath","boundsPadding","_localBounds","webGLDirty","cachedSpriteDirty","lineStyle","drawShape","cpX2","cpY2","dt","dt2","dt3","t2","t3","arcTo","mm","dd","cc","tt","k1","k2","j1","j2","qx","qy","startAngle","endAngle","anticlockwise","sweep","segs","startX","startY","filling","theta","theta2","cTheta","sTheta","segMinus","remainder","real","beginFill","endFill","drawRect","drawRoundedRect","drawCircle","drawEllipse","drawPolygon","path","updateCachedSpriteTexture","_prevTint","updateLocalBounds","tempPoint","cachedSprite","destroyCachedSprite","GraphicsData","drawTriangle","cull","triangle","cameraToFace","ab","cb","faceNormal","drawTriangles","point1","point2","point3","renderXY","renderRawXY","textBounds","strokeColors","autoRound","_res","_text","_fontComponents","_lineSpacing","_charCount","setStyle","updateText","setShadow","shadowStroke","shadowFill","boundsAlignH","boundsAlignV","strokeThickness","wordWrap","wordWrapWidth","tabs","fontToComponents","fontStyle","fontVariant","fontWeight","fontSize","componentsToFont","outputText","runWordWrap","lines","lineWidths","maxLineWidth","fontProperties","determineFontProperties","measureText","tab","section","snapToCeil","lineHeight","lineSpacing","textBaseline","lineCap","lineJoin","linePositionX","linePositionY","ascent","updateLine","updateShadow","strokeText","renderTabLine","snap","letter","clearColors","addColor","addStrokeColor","spaceLeft","words","wordWidth","wordWidthWithSpace","updateFont","match","fontFamily","setText","parseList","list","setTextBounds","properties","fontPropertiesCache","fontPropertiesCanvas","fontPropertiesContext","baseline","descent","imagedata","idx","exec","parseFloat","textWidth","textHeight","_prevAnchor","_maxWidth","_data","getBitmapFont","_font","_fontSize","_align","_tint","sourceWidth","sourceHeight","scanLine","lastSpace","prevCharCode","test","charAt","charData","kerning","xAdvance","purgeGlyphs","kept","checkImageKey","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","content","characterSpacing","allowLowerCase","buildRetroFontText","getLongestLine","pasteLine","longestLine","removeUnsupportedCharacters","stripCR","newString","aChar","code","updateOffset","diffX","diffY","frames","getFrames","newText","toUpperCase","deviceReadyAt","initialized","node","nodeWebkit","electron","ejecta","crosswalk","chromeOS","linux","macOS","windows","windowsPhone","canvasBitBltShift","file","fileSystem","localStorage","worker","css3D","typedArray","vibration","getUserMedia","quirksMode","arora","chromeVersion","epiphany","firefox","firefoxVersion","ie","ieVersion","trident","tridentVersion","mobileSafari","midori","opera","safari","silk","audioData","ogg","opus","mp3","wav","m4a","webm","oggVideo","h264Video","mp4Video","webmVideo","vp9Video","hlsVideo","iPhone","iPhone4","pixelRatio","littleEndian","support32bit","onInitialized","nonPrimer","readyCheck","_readyCheck","_monitor","_queue","readyState","_initialize","_checkOS","vita","kindle","_checkFeatures","getItem","error","WebGLRenderingContext","compatMode","webkitGetUserMedia","mozGetUserMedia","msGetUserMedia","oGetUserMedia","URL","webkitURL","mozURL","msURL","_checkInput","maxTouchPoints","msPointerEnabled","pointerEnabled","_checkFullScreenSupport","fs","cfs","_checkBrowser","RegExp","$1","$3","process","require","versions","_checkVideo","videoElement","canPlayType","_checkAudio","audioElement","_checkDevice","toLowerCase","Int8Array","_checkIsLittleEndian","Uint8ClampedArray","Int32Array","_checkIsUint8ClampedImageData","vibrate","webkitVibrate","mozVibrate","msVibrate","elem","createImageData","_checkCSS3D","has3d","el","transforms","webkitTransform","OTransform","msTransform","MozTransform","getComputedStyle","getPropertyValue","canPlayAudio","canPlayVideo","isConsoleOpen","profile","profileEnd","isAndroidStockBrowser","matches","box","scrollY","scrollLeft","scrollX","clientTop","clientLeft","cushion","calibrate","coords","getAspectRatio","inLayoutViewport","primaryFallback","screen","mozOrientation","msOrientation","PORTRAIT","LANDSCAPE","matchMedia","documentBounds","pageXOffset","pageYOffset","treatAsDesktop","clientWidth","clientHeight","offsetWidth","scrollWidth","offsetHeight","scrollHeight","display","msTouchAction","overflowHidden","overflow","vendor","prefix","setImageRenderingCrisp","msInterpolationMode","setImageRenderingBicubic","forceSetTimeOut","vendors","requestAnimationFrame","cancelAnimationFrame","_isSetTimeOut","_onLoop","_timeOutID","updateSetTimeout","updateRAF","rafTime","timeToCall","clearTimeout","isSetTimeOut","isRAF","PI2","fuzzyEqual","epsilon","fuzzyLessThan","fuzzyGreaterThan","fuzzyCeil","val","fuzzyFloor","average","sum","shear","snapTo","gap","snapToFloor","roundTo","place","pow","floorTo","ceilTo","angleBetween","angleBetweenY","angleBetweenPoints","angleBetweenPointsY","reverseAngle","angleRad","normalizeAngle","maxAdd","minSub","wrapValue","isOdd","isEven","minProperty","maxProperty","radians","linearInterpolation","linear","bezierInterpolation","bernstein","catmullRomInterpolation","catmullRom","p0","factorial","res","p3","roundAwayFromZero","sinCosGenerator","sinAmplitude","cosAmplitude","frequency","frq","cosTable","sinTable","distanceSq","distancePow","clampBottom","within","mapLinear","smoothstep","smootherstep","percent","degreeToRadiansFactor","radianToDegreesFactor","degrees","seeds","s0","sow","integer","frac","integerInRange","realInRange","normal","pick","ary","weightedPick","QuadTree","maxObjects","maxLevels","objects","nodes","_empty","subWidth","subHeight","populate","populateHandler","insert","retrieve","returnObjects","getHostName","location","hostname","checkDomainName","domain","updateQueryString","redirect","href","re","separator","getQueryString","parameter","keyValues","search","substring","decodeURI","decodeURIComponent","_tweens","_add","easeMap","Power0","Easing","Power1","Power2","Power3","Power4","Linear","None","Quad","Quadratic","Out","Cubic","Quart","Quartic","Quint","Quintic","Sine","Sinusoidal","Expo","Exponential","Circ","Circular","Elastic","Back","Bounce","Quad.easeIn","In","Cubic.easeIn","Quart.easeIn","Quint.easeIn","Sine.easeIn","Expo.easeIn","Circ.easeIn","Elastic.easeIn","Back.easeIn","Bounce.easeIn","Quad.easeOut","Cubic.easeOut","Quart.easeOut","Quint.easeOut","Sine.easeOut","Expo.easeOut","Circ.easeOut","Elastic.easeOut","Back.easeOut","Bounce.easeOut","Quad.easeInOut","InOut","Cubic.easeInOut","Quart.easeInOut","Quint.easeInOut","Sine.easeInOut","Expo.easeInOut","Circ.easeInOut","Elastic.easeInOut","Back.easeInOut","Bounce.easeInOut","_pauseAll","_resumeAll","getAll","pendingDelete","removeFrom","_manager","addTweens","numTweens","isTweening","some","_pause","_resume","pauseAll","resumeAll","timeline","timeScale","repeatCounter","onStart","onLoop","onRepeat","onChildComplete","onComplete","chainedTween","isPaused","_onUpdateCallback","_onUpdateCallbackContext","_pausedTime","_hasStarted","ease","yoyo","Default","TweenData","vEnd","loadValues","updateTweenData","repeatDelay","yoyoDelay","easing","interpolation","repeatAll","chain","startTime","status","PENDING","RUNNING","LOOPED","COMPLETE","generateData","vStart","vStartCache","vEndCache","inReverse","easingFunction","interpolationFunction","interpolationContext","isFrom","yoyoCounter","elapsedMS","fps","blob","reversed","asin","prevTime","suggestedFps","advancedTiming","fpsMin","fpsMax","msMin","msMax","pauseDuration","timeExpected","Timer","_frameCount","_elapsedAccumulator","_started","_timeLastSecond","_pauseStarted","_justResumed","_timers","timer","autoDestroy","updateAdvancedTiming","updateTimers","previousDateNow","timeCallExpected","elapsedSince","since","elapsedSecondsSince","running","expired","nextTick","timeCap","_pauseTotal","_now","_marked","_diff","_newTick","MINUTE","SECOND","HALF","QUARTER","repeatCount","tick","TimerEvent","clearEvents","clearPendingEvents","adjustEvents","baseTime","ms","currentFrame","currentAnim","updateIfVisible","isLoaded","_frameData","_anims","_outputFrames","anim","copyFrameData","useNumericIndex","getFrameIndexes","validateFrames","checkFrameName","isPlaying","getAnimation","refreshFrame","getFrame","getFrameByName","_frameIndex","_frames","loopCount","isFinished","_pauseStartTime","_frameDiff","_frameSkip","onUpdate","_timeLastFrame","_timeNextFrame","updateCurrentFrame","onAnimationStart$dispatch","useLocalFrameIndex","frameIndex","dispatchComplete","onAnimationComplete$dispatch","onAnimationLoop$dispatch","signalUpdate","fromPlay","generateFrameNames","suffix","zeroPad","rotated","rotationDirection","spriteSourceSizeW","spriteSourceSizeH","setTrim","actualWidth","actualHeight","destX","destY","destWidth","destHeight","getRect","_frameNames","getFrameRange","AnimationParser","spriteSheet","frameMax","spacing","column","JSONData","json","newFrame","filename","sourceSize","spriteSourceSize","JSONDataHash","XMLData","xml","getElementsByTagName","frameX","frameY","autoResolveURL","_cache","binary","bitmapFont","_urlMap","_urlResolver","_urlTemp","onSoundUnlock","_cacheMap","TEXTURE","SOUND","PHYSICS","BINARY","BITMAPFONT","JSON","XML","SHADER","RENDER_TEXTURE","addDefaultImage","addMissingImage","addCanvas","removeImage","_resolveURL","addSound","audioTag","decoded","isDecoding","touchLocked","addText","addPhysicsData","addTilemap","mapData","addBinary","binaryData","addBitmapFont","atlasData","atlasType","LoaderParser","jsonBitmapFont","xmlBitmapFont","addJSON","addXML","addVideo","isBlob","addShader","addSpriteSheet","addTextureAtlas","TEXTURE_ATLAS_XML_STARLING","reloadSound","getSound","reloadSoundComplete","updateSound","decodedSound","isSoundDecoded","isSoundReady","checkKey","checkURL","checkCanvasKey","checkTextureKey","checkSoundKey","checkTextKey","checkPhysicsKey","checkTilemapKey","checkBinaryKey","checkBitmapDataKey","checkBitmapFontKey","checkJSONKey","checkXMLKey","checkVideoKey","checkShaderKey","checkRenderTextureKey","full","getTextureFrame","getSoundData","getText","getPhysicsData","fixtureKey","fixtures","fixture","getTilemapData","getBinary","getBitmapData","getJSON","getXML","getVideo","getShader","getRenderTexture","getBaseTexture","getFrameCount","getFrameByIndex","getPixiTexture","getPixiBaseTexture","getURL","getKeys","removeCanvas","removeFromPixi","removeSound","removeText","removePhysics","removeTilemap","removeBinary","removeBitmapData","removeBitmapFont","removeJSON","removeXML","removeVideo","removeShader","removeRenderTexture","removeSpriteSheet","removeTextureAtlas","atlas","baseURL","isLoading","preloadSprite","onLoadStart","onLoadComplete","onPackComplete","onFileStart","onFileComplete","onFileError","useXDomainRequest","_warnedAboutXDomainRequest","enableParallel","maxParallelDownloads","_withSyncPointDepth","_fileList","_flightQueue","_processingHead","_fileLoadStarted","_totalPackCount","_totalFileCount","_loadedPackCount","_loadedFileCount","TEXTURE_ATLAS_JSON_ARRAY","TEXTURE_ATLAS_JSON_HASH","PHYSICS_LIME_CORONA_JSON","PHYSICS_PHASER_JSON","setPreloadSprite","checkKeyExists","getAssetIndex","bestFound","loaded","loading","getAsset","fileIndex","addToFileList","overwrite","extension","syncPoint","currentFile","replaceInFileList","pack","script","spritesheet","urls","autoDecode","noAudio","audiosprite","jsonURL","jsonData","loadEvent","asBlob","CSV","TILED_JSON","LIME_CORONA_JSON","textureURL","atlasURL","parseXml","atlasJSONArray","atlasJSONHash","atlasXML","withSyncPoint","addSyncPoint","asset","removeFile","updateProgress","processLoadQueue","finishedLoading","requestUrl","requestObject","progress","syncblock","inflightLimit","processPack","loadFile","abnormal","asyncComplete","errorMessage","packData","transformUrl","xhrLoad","fileComplete","loadImageTag","getAudioURL","usingWebAudio","usingAudioTag","loadAudioTag","fileError","getVideoURL","loadVideoTag","jsonLoadComplete","xmlLoadComplete","csvLoadComplete","onload","onerror","controls","autoplay","videoLoadEvent","canplay","Audio","playThroughEvent","XDomainRequest","xhrLoadWithXDR","xhr","XMLHttpRequest","open","responseType","message","send","timeout","ontimeout","onprogress","videoType","uri","lastIndexOf","audioType","reason","loadNext","responseText","Blob","response","decode","language","defer","head","contentType","domparser","DOMParser","parseFromString","ActiveXObject","async","loadXML","totalLoadedFiles","totalLoadedPacks","progressFloat","info","common","getAttribute","letters","kernings","second","finalizeBitmapFont","_face","_lineHeight","_id","_xoffset","_yoffset","_xadvance","_second","_first","_amount","bitmapFontData","autoplayKey","sounds","spritemap","addMarker","connectToMaster","markers","totalDuration","currentTime","durationMS","stopTime","pausedPosition","pausedTime","currentMarker","fadeTween","pendingPlayback","override","allowMultiple","externalNode","masterGainNode","gainNode","_sound","masterGain","createGain","createGainNode","gain","soundHasUnlocked","onDecoded","onPlay","onStop","onMute","onMarkerComplete","onFadeComplete","_volume","_buffer","_muted","_tempMarker","_tempPosition","_tempVolume","_muteVolume","_tempLoop","_onDecodedEventDispatched","removeMarker","onEndedHandler","isDecoded","loopFull","forceRestart","noteOff","createBufferSource","onended","noteGrainOn","muted","prevMarker","fadeIn","fadeTo","fadeOut","fadeComplete","mute","onSoundDecode","onVolumeChange","onUnMute","channels","_codeMuted","_unlockSource","_sounds","_watchList","_watching","_watchCallback","_watchContext","disableAudio","disableWebAudio","audioContext","fakeiOSTouchLock","setTouchLock","unlock","noteOn","stopAll","soundData","decodeAudioData","setDecodedCallback","files","playbackState","PLAYING_STATE","FINISHED_STATE","removeByKey","columnWidth","renderShadow","currentAlpha","currentColor","soundInfo","cameraInfo","hideIfUp","downColor","upColor","worldX","worldY","spriteInputInfo","justDown","justUp","inputInfo","spriteBounds","filled","rectangle","ropeSegments","self","segment","spriteInfo","spriteCoords","lineInfo","forceType","quadTree","quadtree","Body","NINJA","Ninja","BOX2D","Box2D","renderBody","bodyInfo","renderBodyInfo","box2d","box2dWorld","renderDebugDraw","box2dBody","getByKey","randomIndex","removeRandomItem","shuffle","transposeMatrix","sourceRowCount","sourceColCount","rotateMatrix","findClosest","arr","NaN","low","high","POSITIVE_INFINITY","numberArray","numberArrayStep","rgba","RGBtoHSL","RGBtoHSV","fromRGBA","toRGBA","q","hueToColor","updateColor","HSVtoRGB","color32","getColor32","componentToHex","hexToRGB","hexToColor","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","blendNormal","blendAverage","blendSubtract","blendNegation","blendLinearDodge","blendLinearBurn","blendLinearLight","blendVividLight","blendPinLight","blendHardMix","blendReflect","blendGlow","blendPhoenix","LinkedList","entity","arcade","ninja","chipmunk","matter","CHIPMUNK","MATTERJS","P2","Matter","startSystem","system","enableAABB","emitters","ID","onAccess","onError","onTimeout","videoStream","isStreaming","retryLimit","retry","retryInterval","_retryID","_pending","_autoplay","_video","createVideoFromBlob","videoWidth","videoHeight","createVideoFromURL","snapshot","connectToMediaStream","stream","startMediaStream","captureAudio","removeVideoElement","setAttribute","getUserMediaTimeout","getUserMediaSuccess","getUserMediaError","mozSrcObject","createObjectURL","onloadeddata","checkStream","checkVideoProgress","change","playbackRate","setPause","setResume","playHandler","playing","ended","changeSource","grab","hasChildNodes","firstChild","removeAttribute"],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"phaser-no-physics.min.js","sources":["phaser-no-physics.js"],"names":["root","this","PIXI","WEBGL_RENDERER","CANVAS_RENDERER","VERSION","_UID","Float32Array","Uint16Array","Uint32Array","ArrayBuffer","Array","PI_2","Math","PI","RAD_TO_DEG","DEG_TO_RAD","RETINA_PREFIX","defaultRenderOptions","view","transparent","antialias","preserveDrawingBuffer","resolution","clearBeforeRender","autoResize","DisplayObject","position","Point","scale","transformCallback","transformCallbackContext","pivot","rotation","alpha","visible","hitArea","renderable","parent","stage","worldAlpha","worldTransform","Matrix","worldPosition","worldScale","worldRotation","_sr","_cr","filterArea","_bounds","Rectangle","_currentBounds","_mask","_cacheAsBitmap","_cacheIsDirty","prototype","constructor","destroy","children","i","length","_destroyCachedSprite","Object","defineProperty","get","item","set","value","isMask","_filters","passes","filterPasses","j","push","_filterBlock","target","_generateCachedSprite","updateTransform","game","p","world","a","b","c","d","tx","ty","pt","wt","rotationCache","sin","cos","x","y","sqrt","atan2","call","displayObjectUpdateTransform","getBounds","matrix","EmptyRectangle","getLocalBounds","identityMatrix","setStageReference","preUpdate","generateTexture","scaleMode","renderer","bounds","renderTexture","RenderTexture","width","height","_tempMatrix","render","updateCache","toGlobal","apply","toLocal","from","applyInverse","_renderCachedSprite","renderSession","_cachedSprite","gl","Sprite","_renderWebGL","_renderCanvas","texture","resize","tempFilters","filters","anchor","DisplayObjectContainer","create","_width","_height","addChild","child","addChildAt","index","removeChild","splice","Error","swapChildren","child2","index1","getChildIndex","index2","indexOf","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","Texture","emptyTexture","tint","cachedTint","tintedTexture","blendMode","blendModes","NORMAL","shader","baseTexture","hasLoaded","onTextureUpdate","frame","setTexture","valid","w0","w1","h0","h1","x1","y1","x2","y2","x3","y3","x4","y4","crop","currentBlendMode","context","globalCompositeOperation","blendModesCanvas","globalAlpha","smoothProperty","scaleModes","LINEAR","dx","trim","dy","roundPixels","setTransform","cw","ch","requiresReTint","CanvasTinter","getTintedTexture","drawImage","cx","cy","source","fromFrame","frameId","TextureCache","fromImage","imageId","crossorigin","SpriteBatch","textureThing","ready","initWebGL","fastSpriteBatch","WebGLFastSpriteBatch","setContext","shaderManager","setShader","fastShader","transform","isRotated","childTransform","Stage","backgroundColor","setBackgroundColor","backgroundColorSplit","hex2rgb","hex","toString","substr","backgroundColorString","rgb2hex","rgb","canUseNewCanvasBlendModes","document","pngHead","pngEnd","magenta","Image","src","yellow","canvas","createElement","getContext","getImageData","data","getNextPowerOfTwo","number","result","isPowerOfTwo","PolyK","Triangulate","sign","n","tgs","avl","al","i0","i1","i2","ax","ay","bx","by","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","isArray","join","createShader","shaderSource","compileShader","getShaderParameter","COMPILE_STATUS","window","console","log","getShaderInfoLog","compileProgram","vertexSrc","fragmentSrc","fragmentShader","vertexShader","shaderProgram","createProgram","attachShader","linkProgram","getProgramParameter","LINK_STATUS","PixiShader","program","textureCount","firstRun","dirty","attributes","init","defaultVertexSrc","useProgram","uSampler","getUniformLocation","projectionVector","offsetVector","dimensions","aVertexPosition","getAttribLocation","aTextureCoord","colorAttribute","key","uniforms","uniformLocation","initUniforms","uniform","type","_init","initSampler2D","glMatrix","glValueLength","glFunc","uniformMatrix2fv","uniformMatrix3fv","uniformMatrix4fv","activeTexture","bindTexture","TEXTURE_2D","_glTextures","id","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","transpose","z","w","_dirty","instances","updateTexture","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","toArray","uniform1f","uniform2f","uniform3fv","bindBuffer","ARRAY_BUFFER","buffer","vertexAttribPointer","FLOAT","ELEMENT_ARRAY_BUFFER","indexBuffer","TRIANGLE_STRIP","lastIndex","clearDirty","graphicsData","reset","graphicsDataPool","Graphics","POLY","points","shape","slice","closed","fill","switchMode","canDrawUsingSimple","buildPoly","buildComplexPoly","lineWidth","buildLine","RECT","buildRectangle","CIRC","ELIP","buildCircle","RREC","buildRoundedRectangle","upload","pop","WebGLGraphicsData","rectData","fillColor","fillAlpha","r","g","verts","vertPos","tempPoints","rrectData","radius","recPoints","concat","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","a1","b1","c1","a2","b2","c2","denom","pdist","dist","indexCount","indexStart","lineColor","lineAlpha","abs","createBuffer","glPoints","bufferData","STATIC_DRAW","glIndicies","glContexts","WebGLRenderer","options","defaultRenderer","_contextOptions","premultipliedAlpha","stencil","WebGLShaderManager","WebGLSpriteBatch","WebGLMaskManager","WebGLFilterManager","WebGLStencilManager","blendModeManager","WebGLBlendModeManager","drawCount","initContext","mapBlendModes","glContextId","disable","DEPTH_TEST","CULL_FACE","enable","BLEND","contextLost","__stage","viewport","bindFramebuffer","FRAMEBUFFER","clearColor","clear","COLOR_BUFFER_BIT","renderDisplayObject","displayObject","setBlendMode","style","createTexture","UNPACK_PREMULTIPLY_ALPHA_WEBGL","NEAREST","mipmap","LINEAR_MIPMAP_LINEAR","NEAREST_MIPMAP_NEAREST","generateMipmap","_powerOf2","blendModesWebGL","ONE","ONE_MINUS_SRC_ALPHA","ADD","SRC_ALPHA","DST_ALPHA","MULTIPLY","DST_COLOR","SCREEN","OVERLAY","DARKEN","LIGHTEN","COLOR_DODGE","COLOR_BURN","HARD_LIGHT","SOFT_LIGHT","DIFFERENCE","EXCLUSION","HUE","SATURATION","COLOR","LUMINOSITY","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","size","numVerts","numIndices","vertices","positions","colors","lastIndexCount","drawing","currentBatchSize","currentBaseTexture","textures","shaders","sprites","AbstractFilter","vertexBuffer","DYNAMIC_DRAW","sprite","uvs","_uvs","aX","aY","x0","y0","renderTilingSprite","tilingTexture","TextureUvs","h","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","DEFAULT","framebufferTexture2D","COLOR_ATTACHMENT0","renderBuffer","createRenderbuffer","bindRenderbuffer","RENDERBUFFER","framebufferRenderbuffer","DEPTH_STENCIL_ATTACHMENT","renderbufferStorage","DEPTH_STENCIL","deleteFramebuffer","deleteTexture","CanvasBuffer","clearRect","CanvasMaskManager","save","cacheAlpha","CanvasGraphics","renderGraphicsMask","clip","restore","tintMethod","tintWithMultiply","fillStyle","fillRect","tintWithPerPixel","rgbValues","pixelData","pixels","canHandleAlpha","putImageData","checkInverseAlpha","s1","s2","canUseMultiply","CanvasRenderer","refresh","navigator","isCocoonJS","screencanvas","removeView","updateGraphicsTint","_fillTint","_lineTint","beginPath","moveTo","lineTo","closePath","strokeStyle","stroke","strokeRect","arc","kappa","ox","oy","xe","ye","xm","ym","bezierCurveTo","rx","ry","maxRadius","min","quadraticCurveTo","len","rect","tintR","tintG","tintB","BaseTextureCache","BaseTextureCacheIdGenerator","BaseTexture","complete","naturalWidth","naturalHeight","imageUrl","forceLoaded","_pixiId","unloadFromGPU","updateSourceImage","newSrc","glTexture","image","crossOrigin","fromCanvas","TextureCacheIdGenerator","FrameCache","TextureSilentFail","noFrame","isTiling","requiresUpdate","setFrame","onBaseTextureLoaded","destroyBase","_updateUvs","tw","th","addTextureToCache","removeTextureFromCache","textureBuffer","renderWebGL","renderCanvas","tempMatrix","Phaser","updateBase","identity","translate","append","realResolution","getImage","getBase64","getCanvas","toDataURL","webGLPixels","Uint8Array","readPixels","tempCanvas","canvasData","Strip","canvasPadding","drawMode","DrawModes","_vertexBuffer","_initWebGL","_renderStrip","_indexBuffer","_uvBuffer","_colorBuffer","_renderCanvasTriangleStrip","_renderCanvasTriangles","_renderCanvasDrawTriangle","index0","textureSource","textureWidth","textureHeight","u0","u1","u2","v0","v1","v2","paddingX","paddingY","centerX","centerY","normX","normY","delta","deltaA","deltaB","deltaC","deltaD","deltaE","deltaF","renderStripFlat","strip","updateFrame","rawX","rawY","Rope","point","amount","total","nextPoint","perp","ratio","perpLength","num","TilingSprite","textureDebug","canvasBuffer","tilePattern","refreshTexture","frameWidth","frameHeight","generateTilingTexture","needsUpdate","createPattern","sessionBlendMode","forcePowerOfTwo","targetWidth","_frame","sourceSizeW","targetHeight","sourceSizeH","trimmed","spriteSourceSizeX","spriteSourceSizeY","exports","module","define","amd","WheelEventProxy","scaleFactor","deltaMode","_scaleFactor","_deltaMode","originalEvent","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","CIRCLE","RECTANGLE","LINE","MATRIX","POINT","ROUNDEDRECTANGLE","CREATURE","VIDEO","trunc","ceil","floor","Function","bind","thisArg","bound","args","boundArgs","arguments","TypeError","F","proto","arg","forEach","fun","t","CheapArray","assert","warn","Utils","getProperty","obj","prop","parts","split","last","l","current","setProperty","chanceRoll","chance","random","randomChoice","choice1","choice2","parseDimension","dimension","f","parseInt","innerWidth","innerHeight","pad","str","dir","padlen","right","left","isPlainObject","nodeType","hasOwnProperty","e","extend","name","copy","copyIsArray","clone","deep","mixinPrototype","mixin","replace","mixinKeys","keys","to","o","childNodes","cloneNode","Circle","diameter","_diameter","_radius","circumference","out","setTo","copyFrom","copyTo","dest","distance","round","output","contains","circumferencePoint","angle","asDegrees","offsetPoint","top","bottom","equals","intersects","degToRad","intersectsRectangle","halfWidth","xDist","halfHeight","yDist","xCornerDist","yCornerDist","xCornerDistSq","yCornerDistSq","maxCornerDistSq","Ellipse","normx","normy","Line","fromSprite","startSprite","endSprite","useCenter","center","fromAngle","rotate","line","asSegment","intersectsPoints","reflect","pointOnLine","pointOnSegment","xMin","xMax","max","yMin","yMax","coordinatesOnLine","stepRate","results","sx","sy","err","e2","wrap","uc","ua","ub","normalAngle","fromArray","array","pos","newPos","tx1","d1","invert","add","subtract","multiply","divide","clampX","clamp","clampY","radToDeg","getMagnitude","getMagnitudeSq","setMagnitude","magnitude","normalize","isZero","m","dot","cross","rperp","normalRightHand","negative","multiplyAdd","s","interpolate","project","amt","projectUnit","centroid","pointslength","parse","xProp","yProp","Polygon","area","_points","toNumberArray","flatten","inside","ix","iy","jx","jy","Number","MAX_VALUE","calculateArea","p1","p2","avgHeight","centerOn","floorAll","ceilAll","inflate","containsRect","intersection","intersectsRaw","tolerance","union","randomX","randomY","empty","inflatePoint","containsRaw","rw","rh","containsPoint","volume","sameDimensions","aabb","MIN_VALUE","RoundedRectangle","Camera","deadzone","roundPx","atLimit","totalInView","_targetPosition","_edge","_position","FOLLOW_LOCKON","FOLLOW_PLATFORMER","FOLLOW_TOPDOWN","FOLLOW_TOPDOWN_TIGHT","follow","helper","unfollow","focusOn","setPosition","focusOnXY","update","updateTarget","checkBounds","setBoundsToWorld","setSize","Create","bmd","make","bitmapData","ctx","palettes",1,2,3,4,5,6,7,8,9,"A","B","C","D","E","PALETTE_ARNE","PALETTE_JMP","PALETTE_CGA","PALETTE_C64","PALETTE_JAPANESE_MACHINE","pixelWidth","pixelHeight","palette","row","grid","cellWidth","cellHeight","State","camera","cache","input","load","math","sound","time","tweens","particles","physics","rnd","preload","loadUpdate","loadRender","preRender","paused","resumed","pauseUpdate","shutdown","StateManager","pendingState","states","_pendingState","_clearWorld","_clearCache","_created","_args","onStateChange","Signal","onInitCallback","onPreloadCallback","onCreateCallback","onUpdateCallback","onRenderCallback","onResizeCallback","onPreRenderCallback","onLoadUpdateCallback","onLoadRenderCallback","onPausedCallback","onResumedCallback","onPauseUpdateCallback","onShutDownCallback","boot","onPause","pause","onResume","resume","state","autoStart","newState","isBooted","remove","callbackContext","clearWorld","clearCache","checkState","restart","dummy","previousStateKey","clearCurrentState","setCurrentState","dispatch","totalQueuedFiles","totalQueuedPacks","loadComplete","removeAll","debug","link","unlink","_kickstart","getCurrentState","elapsedTime","renderType","_bindings","_prevParams","memorize","_shouldPropagate","active","_boundDispatch","validateListener","listener","fnName","_registerListener","isOnce","listenerContext","priority","binding","prevIndex","_indexOfListener","SignalBinding","_addBinding","execute","_priority","cur","_listener","has","addOnce","_destroy","getNumListeners","halt","bindings","paramsArr","forget","dispose","_this","signal","_isOnce","_signal","callCount","params","handlerReturn","detach","isBound","getListener","getSignal","Filter","prevPoint","Date","mouse","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","exists","currentRenderOrderID","_hiddenVar","_onChange","_backgroundColor","config","parseConfig","DOM","getOffset","Canvas","setUserSelect","setTouchAction","checkVisibility","webkitHidden","mozHidden","msHidden","hidden","event","visibilityChange","addEventListener","onblur","onfocus","onpagehide","onpageshow","device","cocoonJSApp","CocoonJS","App","onSuspended","onActivated","focusLoss","focusGain","gamePaused","gameResumed","Color","valueToColor","getColor","RGBtoString","removeEventListener","Group","addToStage","enableBody","physicsBodyType","Physics","ARCADE","physicsType","alive","ignoreDestroy","pendingDestroy","classType","cursor","enableBodyDebug","physicsSortDirection","onDestroy","cursorIndex","fixedToCamera","cameraOffset","hash","_sortProperty","RETURN_NONE","RETURN_TOTAL","RETURN_CHILD","SORT_ASCENDING","SORT_DESCENDING","silent","body","addToHash","events","onAddedToGroup$dispatch","removeFromHash","addMultiple","moveAll","addAt","updateZ","getAt","createMultiple","quantity","resetCursor","next","previous","swap","child1","bringToTop","getIndex","sendToBack","moveUp","moveDown","xy","oldChild","newChild","hasProperty","operation","force","checkProperty","checkAlive","checkVisible","setAll","setAllChildren","checkAll","addAll","property","subAll","multiplyAll","divideAll","callAllExists","callback","existsValue","callbackFromArray","callAll","method","methodLength","contextLength","renderOrderID","predicate","checkExists","ArraySet","forEachExists","iterate","forEachAlive","forEachDead","sort","order","ascendingSortHandler","descendingSortHandler","customSort","sortHandler","returnType","getFirstExists","getFirstAlive","getFirstDead","getTop","getBottom","countLiving","countDead","getRandom","ArrayUtils","getRandomItem","destroyPhase","onRemovedFromGroup$dispatch","group","removeBetween","destroyChildren","soft","World","_definedSize","stateChange","setBounds","useBounds","horizontal","vertical","between","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","text","geom","uuid","topLeft","topMiddle","topRight","bottomLeft","bottomMiddle","bottomRight","ScaleManager","dom","minWidth","maxWidth","minHeight","maxHeight","forceLandscape","forcePortrait","incorrectOrientation","_pageAlignHorizontally","_pageAlignVertically","onOrientationChange","enterIncorrectOrientation","leaveIncorrectOrientation","fullScreenTarget","_createdFullScreenTarget","onFullScreenInit","onFullScreenChange","onFullScreenError","screenOrientation","getScreenOrientation","scaleFactorInversed","margin","aspectRatio","sourceAspectRatio","windowConstraints","compatibility","supportsFullScreen","orientationFallback","noMargins","scrollTo","forceMinimumDocumentHeight","canExpandParent","clickTrampoline","_scaleMode","NO_SCALE","_fullScreenScaleMode","parentIsWindow","parentNode","parentScaleFactor","trackParentInterval","onSizeChange","onResizeContext","_pendingScaleMode","_fullScreenRestore","_gameSize","_userScaleFactor","_userScaleTrim","_lastUpdate","_updateThrottle","_updateThrottleReset","_parentBounds","_tempBounds","_lastReportedCanvasSize","_lastReportedGameSize","_booted","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","visualBounds","newWidth","newHeight","updateDimensions","queueUpdate","currentScaleMode","setUserScale","hScale","vScale","hTrim","vTrim","setResizeCallback","signalSizeChange","setMinMax","prevThrottle","prevWidth","prevHeight","boundsChanged","orientationChanged","updateOrientationState","updateLayout","throttle","updateScalingAndBounds","forceOrientation","classifyOrientation","orientation","previousOrientation","previouslyIncorrect","isLandscape","isPortrait","changed","correctnessChanged","scrollTop","reflowGame","documentElement","setMaximum","setExactFit","isFullScreen","boundingParent","setShowAll","resetCanvas","reflowCanvas","layoutBounds","clientRect","getBoundingClientRect","wc","windowBounds","alignCanvas","parentBounds","canvasBounds","currentEdge","targetEdge","marginLeft","marginRight","marginTop","marginBottom","pageAlignHorizontally","pageAlignVertically","cssWidth","cssHeight","expanding","createFullScreenTarget","fsTarget","background","startFullScreen","allowTrampoline","setTimeout","activePointer","mousePointer","addClickTrampoline","smoothed","cleanupCreatedTarget","initData","targetElement","insertBefore","appendChild","fullscreenKeyboard","requestFullscreen","Element","ALLOW_KEYBOARD_INPUT","stopFullScreen","cancelFullscreen","prepScreenMode","enteringFullscreen","createdTarget","enterFullScreen","leaveFullScreen","letterBox","scaleX1","scaleY1","scaleX2","scaleY2","scaleOnWidth","Game","physicsConfig","isRunning","raf","net","Device","lockRender","stepping","pendingStep","stepCount","onBlur","onFocus","_paused","_codePaused","currentUpdateID","updatesThisFrame","_deltaTime","_lastCount","_spiraling","fpsProblemNotifier","forceSingleUpdate","_nextFpsNotification","enableDebug","RandomDataGenerator","now","whenReady","seed","setUpRenderer","GameObjectFactory","GameObjectCreator","Cache","Loader","Time","TweenManager","Input","SoundManager","Particles","Net","Debug","showDebugHeader","RequestAnimationFrame","stopFocus","focus","hideBanner","webAudio","contextRestored","addToDOM","preventDefault","clearGLTextures","updateLogic","desiredFps","updateRender","slowMotion","slowStep","elapsed","timeStep","enableStep","disableStep","step","removeFromDOM","setMute","cordova","iOS","unsetMute","hitCanvas","hitContext","moveCallbacks","pollRate","enabled","multiInputOverride","MOUSE_TOUCH_COMBINE","speed","circle","maxPointers","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","Touch","MSPointer","Keyboard","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","mouseDownCallback","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","BACK_BUTTON","FORWARD_BUTTON","WHEEL_UP","WHEEL_DOWN","onMouseDown","onMouseMove","onMouseUp","_onMouseUpGlobal","onMouseUpGlobal","onMouseOut","onMouseOver","onMouseWheel","wheelEvent","mouseMoveCallback","withinGame","bindEvent","deltaY","requestPointerLock","element","mozRequestPointerLock","webkitRequestPointerLock","_pointerLockChange","pointerLockChange","pointerLockElement","mozPointerLockElement","webkitPointerLockElement","releasePointerLock","exitPointerLock","mozExitPointerLock","webkitExitPointerLock","_stubsGenerated","makeBinder","defineProperties","detail","deltaX","wheelDeltaX","deltaZ","pointerDownCallback","pointerMoveCallback","pointerUpCallback","_onMSPointerDown","_onMSPointerMove","_onMSPointerUp","onPointerDown","onPointerMove","onPointerUp","pointerType","DeviceButton","buttonCode","isDown","isUp","timeDown","duration","timeUp","repeats","altKey","shiftKey","ctrlKey","onFloat","padFloat","justPressed","justReleased","leftButton","middleButton","rightButton","backButton","forwardButton","eraserButton","ERASER_BUTTON","_holdSent","_history","_nextDrop","_stateReset","clientX","clientY","pageX","pageY","screenX","screenY","rawMovementX","rawMovementY","movementX","movementY","isMouse","previousTapTime","totalTouches","msSinceLastClick","targetObject","positionDown","positionUp","_clickTrampolines","_trampolineTargetObject","resetButtons","updateButtons","buttons","totalActivePointers","_touchedHandler","processInteractiveObjects","shift","fromClick","pollLocked","mozMovementX","webkitMovementX","mozMovementY","webkitMovementY","isDragged","highestRenderOrderID","highestInputPriorityID","candidateTarget","currentNode","first","checked","validForInput","checkPointerDown","checkPointerOver","priorityID","_pointerOutHandler","_pointerOverHandler","leave","currentPointers","callbackArgs","trampolines","trampoline","_releasedHandler","resetMovement","touchLockCallbacks","touchStartCallback","touchMoveCallback","touchEndCallback","touchEnterCallback","touchLeaveCallback","touchCancelCallback","_onTouchStart","_onTouchMove","_onTouchEnd","_onTouchEnter","_onTouchLeave","_onTouchCancel","onTouchStart","onTouchMove","onTouchEnd","onTouchEnter","onTouchLeave","onTouchCancel","consumeDocumentTouches","_documentTouchMove","addTouchLockCallback","removeTouchLockCallback","changedTouches","InputHandler","useHandCursor","_setHandCursor","allowHorizontalDrag","allowVerticalDrag","snapOffset","snapOnDrag","snapOnRelease","snapX","snapY","snapOffsetX","snapOffsetY","pixelPerfectOver","pixelPerfectClick","pixelPerfectAlpha","draggable","boundsRect","boundsSprite","consumePointerEvent","scaleLayer","dragOffset","dragFromCenter","dragStartPoint","snapPoint","_dragPoint","_dragPhase","_wasEnabled","_tempPoint","_pointerData","isOver","isOut","timeOver","timeOut","downDuration","onAddedToGroup","addedToGroup","onRemovedFromGroup","removedFromGroup","flagged","highestID","highestRenderID","includePixelPerfect","isPixelPerfect","pointerX","pointerY","pointerDown","pointerUp","pointerTimeDown","pointerTimeUp","pointerOver","pointerOut","pointerTimeOver","pointerTimeOut","pointerDragged","fastTest","checkPixel","_dx","_dy","_draggedPointerID","updateDrag","onInputOver$dispatch","onInputOut$dispatch","onInputDown$dispatch","startDrag","onInputUp$dispatch","stopDrag","globalToLocalX","globalToLocalY","checkBoundsRect","checkBoundsSprite","onDragUpdate","justOver","delay","overDuration","justOut","enableDrag","lockCenter","pixelPerfect","alphaThreshold","disableDrag","onDragStart$dispatch","onDragStop$dispatch","setDragLock","allowHorizontal","allowVertical","enableSnap","onDrag","onRelease","disableSnap","_gamepadIndexMap","_rawPads","_active","_gamepadSupportAvailable","webkitGetGamepads","webkitGamepads","userAgent","getGamepads","_prevRawGamepadTypes","_prevTimestamps","onConnectCallback","onDisconnectCallback","onDownCallback","onUpCallback","onAxisCallback","onFloatCallback","_ongamepadconnected","_gamepaddisconnected","_gamepads","SinglePad","addCallbacks","callbacks","onConnect","onDisconnect","onAxis","_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","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","processButtonDown","processButtonUp","processButtonFloat","axes","processAxisChange","triggerCallback","disconnectingIndex","axis","axisCode","buttonValue","Key","keycode","_enabled","keyCode","onHoldCallback","onHoldContext","_justDown","_justUp","processKeyDown","processKeyUp","upDuration","pressEvent","onPressCallback","_keys","_capture","_onKeyDown","_onKeyPress","_onKeyUp","_k","onPress","addKey","addKeyCapture","addKeys","removeKey","removeKeyCapture","createCursorKeys","up","down","processKeyPress","clearCaptures","String","fromCharCode","charCode","charCodeAt","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","COMMA","UNDERSCORE","PERIOD","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","PLUS","MINUS","INSERT","DELETE","HELP","NUM_LOCK","Component","Angle","wrapAngle","Animation","play","frameRate","loop","killOnComplete","animations","AutoCull","autoCull","inCamera","checkWorldBounds","Bounds","BringToTop","Core","install","components","previousPosition","Events","PhysicsBody","AnimationManager","LoadTexture","loadTexture","FixedToCamera","previousRotation","fresh","_exists","P2JS","removeFromWorld","customRender","Crop","cropRect","_crop","updateCrop","resetFrame","Delta","Destroy","onDestroy$dispatch","Video","onChangeSource","resizeFrame","BitmapText","_glyphs","_parent","_onDestroy","_onAddedToGroup","_onRemovedFromGroup","_onRemovedFromWorld","_onKilled","_onRevived","_onEnterBounds","_onOutOfBounds","_onInputOver","_onInputOut","_onInputDown","_onInputUp","_onDragStart","_onDragUpdate","_onDragStop","_onAnimationStart","_onAnimationComplete","_onAnimationLoop","onRemovedFromWorld","onKilled","onRevived","onOutOfBounds","onEnterBounds","onInputOver","onInputOut","onInputDown","onInputUp","onDragStart","onDragStop","onAnimationStart","onAnimationComplete","onAnimationLoop","backing","_fixedToCamera","Health","health","maxHealth","damage","kill","heal","InCamera","InputEnabled","inputEnabled","InWorld","_outOfBoundsFired","onEnterBounds$dispatch","onOutOfBounds$dispatch","outOfBoundsKill","inWorld","LifeSpan","lifespan","physicsElapsedMS","revive","onRevived$dispatch","onKilled$dispatch","stopAnimation","BitmapData","hasFrameData","loadFrameData","getFrameData","img","base","frameData","frameName","Overlap","overlap","_reset","Reset","ScaleMinMax","checkTransform","scaleMin","scaleMax","setScaleMinMax","Smoothed","existing","object","creature","mesh","Creature","tween","physicsGroup","audio","audioSprite","addSprite","tileSprite","rope","Text","overFrame","outFrame","downFrame","upFrame","Button","emitter","maxParticles","Arcade","Emitter","retroFont","font","characterWidth","characterHeight","chars","charsPerRow","xSpacing","ySpacing","xOffset","yOffset","RetroFont","bitmapText","tilemap","tileWidth","tileHeight","Tilemap","addToCache","addRenderTexture","video","url","addBitmapData","Tween","align","preUpdatePhysics","preUpdateLifeSpan","preUpdateInWorld","preUpdateCore","_scroll","def","physicsElapsed","autoScroll","stopScroll","_hasUpdateAnimation","_updateAnimationCallback","updateAnimation","_updateAnimation","segments","difference","_onOverFrame","_onOutFrame","_onDownFrame","_onUpFrame","onOverSound","onOutSound","onDownSound","onUpSound","onOverSoundMarker","onOutSoundMarker","onDownSoundMarker","onUpSoundMarker","onOverMouseOnly","freezeFrames","forceOut","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","Particle","autoScale","scaleData","_s","autoAlpha","alphaData","_a","onEmit","setAlphaData","setScaleData","imageData","textureFrame","Frame","disableTextureUpload","cls","_image","_pos","_size","_scale","_rotate","_alpha","prev","_anchor","_tempR","_tempG","_tempB","_circle","_swapCanvas","moveH","moveV","draw","addImage","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","direction","scan","anchorX","anchorY","copyRect","drawGroup","shadow","blur","shadowColor","shadowBlur","shadowOffsetX","shadowOffsetY","alphaMask","sourceRect","maskRect","blendSourceAtop","blendReset","extract","destination","prevFont","fillText","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","currentPath","boundsPadding","_localBounds","webGLDirty","cachedSpriteDirty","lineStyle","drawShape","cpX2","cpY2","dt","dt2","dt3","t2","t3","arcTo","mm","dd","cc","tt","k1","k2","j1","j2","qx","qy","startAngle","endAngle","anticlockwise","sweep","segs","startX","startY","filling","theta","theta2","cTheta","sTheta","segMinus","remainder","real","beginFill","endFill","drawRect","drawRoundedRect","drawCircle","drawEllipse","drawPolygon","path","updateCachedSpriteTexture","_prevTint","updateLocalBounds","tempPoint","cachedSprite","destroyCachedSprite","GraphicsData","drawTriangle","cull","triangle","cameraToFace","ab","cb","faceNormal","drawTriangles","point1","point2","point3","renderXY","renderRawXY","textBounds","strokeColors","autoRound","_res","_text","_fontComponents","_lineSpacing","_charCount","setStyle","updateText","setShadow","shadowStroke","shadowFill","boundsAlignH","boundsAlignV","strokeThickness","wordWrap","wordWrapWidth","tabs","fontToComponents","fontStyle","fontVariant","fontWeight","fontSize","componentsToFont","outputText","runWordWrap","lines","lineWidths","maxLineWidth","fontProperties","determineFontProperties","measureText","tab","section","snapToCeil","lineHeight","lineSpacing","textBaseline","lineCap","lineJoin","linePositionX","linePositionY","ascent","updateLine","updateShadow","strokeText","renderTabLine","snap","letter","clearColors","addColor","addStrokeColor","spaceLeft","words","wordWidth","wordWidthWithSpace","updateFont","match","fontFamily","setText","parseList","list","setTextBounds","properties","fontPropertiesCache","fontPropertiesCanvas","fontPropertiesContext","baseline","descent","imagedata","idx","exec","parseFloat","textWidth","textHeight","_prevAnchor","_maxWidth","_data","getBitmapFont","_font","_fontSize","_align","_tint","sourceWidth","sourceHeight","scanLine","lastSpace","prevCharCode","test","charAt","charData","kerning","xAdvance","purgeGlyphs","kept","checkImageKey","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","content","characterSpacing","allowLowerCase","buildRetroFontText","getLongestLine","pasteLine","longestLine","removeUnsupportedCharacters","stripCR","newString","aChar","code","updateOffset","diffX","diffY","frames","getFrames","newText","toUpperCase","deviceReadyAt","initialized","node","nodeWebkit","electron","ejecta","crosswalk","chromeOS","linux","macOS","windows","windowsPhone","canvasBitBltShift","file","fileSystem","localStorage","worker","css3D","typedArray","vibration","getUserMedia","quirksMode","arora","chromeVersion","epiphany","firefox","firefoxVersion","ie","ieVersion","trident","tridentVersion","mobileSafari","midori","opera","safari","silk","audioData","ogg","opus","mp3","wav","m4a","webm","oggVideo","h264Video","mp4Video","webmVideo","vp9Video","hlsVideo","iPhone","iPhone4","pixelRatio","littleEndian","support32bit","onInitialized","nonPrimer","readyCheck","_readyCheck","_monitor","_queue","readyState","_initialize","_checkOS","vita","kindle","_checkFeatures","getItem","error","WebGLRenderingContext","compatMode","webkitGetUserMedia","mozGetUserMedia","msGetUserMedia","oGetUserMedia","URL","webkitURL","mozURL","msURL","_checkInput","maxTouchPoints","msPointerEnabled","pointerEnabled","_checkFullScreenSupport","fs","cfs","_checkBrowser","RegExp","$1","$3","process","require","versions","_checkVideo","videoElement","canPlayType","_checkAudio","audioElement","_checkDevice","toLowerCase","Int8Array","_checkIsLittleEndian","Uint8ClampedArray","Int32Array","_checkIsUint8ClampedImageData","vibrate","webkitVibrate","mozVibrate","msVibrate","elem","createImageData","_checkCSS3D","has3d","el","transforms","webkitTransform","OTransform","msTransform","MozTransform","getComputedStyle","getPropertyValue","canPlayAudio","canPlayVideo","isConsoleOpen","profile","profileEnd","isAndroidStockBrowser","matches","box","scrollY","scrollLeft","scrollX","clientTop","clientLeft","cushion","calibrate","coords","getAspectRatio","inLayoutViewport","primaryFallback","screen","mozOrientation","msOrientation","PORTRAIT","LANDSCAPE","matchMedia","documentBounds","pageXOffset","pageYOffset","treatAsDesktop","clientWidth","clientHeight","offsetWidth","scrollWidth","offsetHeight","scrollHeight","display","msTouchAction","overflowHidden","overflow","vendor","prefix","setImageRenderingCrisp","msInterpolationMode","setImageRenderingBicubic","forceSetTimeOut","vendors","requestAnimationFrame","cancelAnimationFrame","_isSetTimeOut","_onLoop","_timeOutID","updateSetTimeout","updateRAF","rafTime","timeToCall","clearTimeout","isSetTimeOut","isRAF","PI2","fuzzyEqual","epsilon","fuzzyLessThan","fuzzyGreaterThan","fuzzyCeil","val","fuzzyFloor","average","sum","shear","snapTo","gap","snapToFloor","roundTo","place","pow","floorTo","ceilTo","angleBetween","angleBetweenY","angleBetweenPoints","angleBetweenPointsY","reverseAngle","angleRad","normalizeAngle","maxAdd","minSub","wrapValue","isOdd","isEven","minProperty","maxProperty","radians","linearInterpolation","linear","bezierInterpolation","bernstein","catmullRomInterpolation","catmullRom","p0","factorial","res","p3","roundAwayFromZero","sinCosGenerator","sinAmplitude","cosAmplitude","frequency","frq","cosTable","sinTable","distanceSq","distancePow","clampBottom","within","mapLinear","smoothstep","smootherstep","percent","degreeToRadiansFactor","radianToDegreesFactor","degrees","seeds","s0","sow","integer","frac","integerInRange","realInRange","normal","pick","ary","weightedPick","QuadTree","maxObjects","maxLevels","objects","nodes","_empty","subWidth","subHeight","populate","populateHandler","insert","retrieve","returnObjects","getHostName","location","hostname","checkDomainName","domain","updateQueryString","redirect","href","re","separator","getQueryString","parameter","keyValues","search","substring","decodeURI","decodeURIComponent","_tweens","_add","easeMap","Power0","Easing","Power1","Power2","Power3","Power4","Linear","None","Quad","Quadratic","Out","Cubic","Quart","Quartic","Quint","Quintic","Sine","Sinusoidal","Expo","Exponential","Circ","Circular","Elastic","Back","Bounce","Quad.easeIn","In","Cubic.easeIn","Quart.easeIn","Quint.easeIn","Sine.easeIn","Expo.easeIn","Circ.easeIn","Elastic.easeIn","Back.easeIn","Bounce.easeIn","Quad.easeOut","Cubic.easeOut","Quart.easeOut","Quint.easeOut","Sine.easeOut","Expo.easeOut","Circ.easeOut","Elastic.easeOut","Back.easeOut","Bounce.easeOut","Quad.easeInOut","InOut","Cubic.easeInOut","Quart.easeInOut","Quint.easeInOut","Sine.easeInOut","Expo.easeInOut","Circ.easeInOut","Elastic.easeInOut","Back.easeInOut","Bounce.easeInOut","_pauseAll","_resumeAll","getAll","pendingDelete","removeFrom","_manager","addTweens","numTweens","isTweening","some","_pause","_resume","pauseAll","resumeAll","timeline","timeScale","repeatCounter","onStart","onLoop","onRepeat","onChildComplete","onComplete","chainedTween","isPaused","_onUpdateCallback","_onUpdateCallbackContext","_pausedTime","_hasStarted","ease","yoyo","Default","TweenData","vEnd","loadValues","updateTweenData","repeatDelay","yoyoDelay","easing","interpolation","repeatAll","chain","startTime","status","PENDING","RUNNING","LOOPED","COMPLETE","generateData","vStart","vStartCache","vEndCache","inReverse","easingFunction","interpolationFunction","interpolationContext","isFrom","yoyoCounter","elapsedMS","fps","blob","reversed","asin","prevTime","suggestedFps","advancedTiming","fpsMin","fpsMax","msMin","msMax","pauseDuration","timeExpected","Timer","_frameCount","_elapsedAccumulator","_started","_timeLastSecond","_pauseStarted","_justResumed","_timers","timer","autoDestroy","updateAdvancedTiming","updateTimers","previousDateNow","timeCallExpected","elapsedSince","since","elapsedSecondsSince","running","expired","nextTick","timeCap","_pauseTotal","_now","_marked","_diff","_newTick","MINUTE","SECOND","HALF","QUARTER","repeatCount","tick","TimerEvent","clearEvents","clearPendingEvents","adjustEvents","baseTime","ms","currentFrame","currentAnim","updateIfVisible","isLoaded","_frameData","_anims","_outputFrames","anim","copyFrameData","useNumericIndex","getFrameIndexes","validateFrames","checkFrameName","isPlaying","getAnimation","refreshFrame","getFrame","getFrameByName","_frameIndex","_frames","loopCount","isFinished","_pauseStartTime","_frameDiff","_frameSkip","onUpdate","_timeLastFrame","_timeNextFrame","updateCurrentFrame","onAnimationStart$dispatch","useLocalFrameIndex","frameIndex","dispatchComplete","onAnimationComplete$dispatch","onAnimationLoop$dispatch","signalUpdate","fromPlay","generateFrameNames","suffix","zeroPad","rotated","rotationDirection","spriteSourceSizeW","spriteSourceSizeH","setTrim","actualWidth","actualHeight","destX","destY","destWidth","destHeight","getRect","_frameNames","getFrameRange","AnimationParser","spriteSheet","frameMax","spacing","column","JSONData","json","newFrame","filename","sourceSize","spriteSourceSize","JSONDataHash","XMLData","xml","getElementsByTagName","frameX","frameY","autoResolveURL","_cache","binary","bitmapFont","_urlMap","_urlResolver","_urlTemp","onSoundUnlock","_cacheMap","TEXTURE","SOUND","PHYSICS","BINARY","BITMAPFONT","JSON","XML","SHADER","RENDER_TEXTURE","addDefaultImage","addMissingImage","addCanvas","removeImage","_resolveURL","addSound","audioTag","decoded","isDecoding","touchLocked","addText","addPhysicsData","addTilemap","mapData","addBinary","binaryData","addBitmapFont","atlasData","atlasType","LoaderParser","jsonBitmapFont","xmlBitmapFont","addJSON","addXML","addVideo","isBlob","addShader","addSpriteSheet","addTextureAtlas","TEXTURE_ATLAS_XML_STARLING","reloadSound","getSound","reloadSoundComplete","updateSound","decodedSound","isSoundDecoded","isSoundReady","checkKey","checkURL","checkCanvasKey","checkTextureKey","checkSoundKey","checkTextKey","checkPhysicsKey","checkTilemapKey","checkBinaryKey","checkBitmapDataKey","checkBitmapFontKey","checkJSONKey","checkXMLKey","checkVideoKey","checkShaderKey","checkRenderTextureKey","full","getTextureFrame","getSoundData","getText","getPhysicsData","fixtureKey","fixtures","fixture","getTilemapData","getBinary","getBitmapData","getJSON","getXML","getVideo","getShader","getRenderTexture","getBaseTexture","getFrameCount","getFrameByIndex","getPixiTexture","getPixiBaseTexture","getURL","getKeys","removeCanvas","removeFromPixi","removeSound","removeText","removePhysics","removeTilemap","removeBinary","removeBitmapData","removeBitmapFont","removeJSON","removeXML","removeVideo","removeShader","removeRenderTexture","removeSpriteSheet","removeTextureAtlas","atlas","baseURL","isLoading","preloadSprite","onLoadStart","onLoadComplete","onPackComplete","onFileStart","onFileComplete","onFileError","useXDomainRequest","_warnedAboutXDomainRequest","enableParallel","maxParallelDownloads","_withSyncPointDepth","_fileList","_flightQueue","_processingHead","_fileLoadStarted","_totalPackCount","_totalFileCount","_loadedPackCount","_loadedFileCount","TEXTURE_ATLAS_JSON_ARRAY","TEXTURE_ATLAS_JSON_HASH","PHYSICS_LIME_CORONA_JSON","PHYSICS_PHASER_JSON","setPreloadSprite","checkKeyExists","getAssetIndex","bestFound","loaded","loading","getAsset","fileIndex","addToFileList","overwrite","extension","syncPoint","currentFile","replaceInFileList","pack","script","spritesheet","urls","autoDecode","noAudio","audiosprite","jsonURL","jsonData","loadEvent","asBlob","CSV","TILED_JSON","LIME_CORONA_JSON","textureURL","atlasURL","parseXml","atlasJSONArray","atlasJSONHash","atlasXML","withSyncPoint","addSyncPoint","asset","removeFile","updateProgress","processLoadQueue","finishedLoading","requestUrl","requestObject","progress","syncblock","inflightLimit","processPack","loadFile","abnormal","asyncComplete","errorMessage","packData","transformUrl","xhrLoad","fileComplete","loadImageTag","getAudioURL","usingWebAudio","usingAudioTag","loadAudioTag","fileError","getVideoURL","loadVideoTag","jsonLoadComplete","xmlLoadComplete","csvLoadComplete","onload","onerror","controls","autoplay","videoLoadEvent","canplay","Audio","playThroughEvent","XDomainRequest","xhrLoadWithXDR","xhr","XMLHttpRequest","open","responseType","message","send","timeout","ontimeout","onprogress","videoType","uri","lastIndexOf","audioType","reason","loadNext","responseText","Blob","response","decode","language","defer","head","contentType","domparser","DOMParser","parseFromString","ActiveXObject","async","loadXML","totalLoadedFiles","totalLoadedPacks","progressFloat","info","common","getAttribute","letters","kernings","second","finalizeBitmapFont","_face","_lineHeight","_id","_xoffset","_yoffset","_xadvance","_second","_first","_amount","bitmapFontData","autoplayKey","sounds","spritemap","addMarker","connectToMaster","markers","totalDuration","currentTime","durationMS","stopTime","pausedPosition","pausedTime","currentMarker","fadeTween","pendingPlayback","override","allowMultiple","externalNode","masterGainNode","gainNode","_sound","masterGain","createGain","createGainNode","gain","soundHasUnlocked","onDecoded","onPlay","onStop","onMute","onMarkerComplete","onFadeComplete","_volume","_buffer","_muted","_tempMarker","_tempPosition","_tempVolume","_muteVolume","_tempLoop","_onDecodedEventDispatched","removeMarker","onEndedHandler","isDecoded","loopFull","forceRestart","noteOff","createBufferSource","onended","noteGrainOn","muted","prevMarker","fadeIn","fadeTo","fadeOut","fadeComplete","mute","onSoundDecode","onVolumeChange","onUnMute","channels","_codeMuted","_unlockSource","_sounds","_watchList","_watching","_watchCallback","_watchContext","disableAudio","disableWebAudio","audioContext","fakeiOSTouchLock","setTouchLock","unlock","noteOn","stopAll","soundData","decodeAudioData","setDecodedCallback","files","playbackState","PLAYING_STATE","FINISHED_STATE","removeByKey","columnWidth","renderShadow","currentAlpha","currentColor","soundInfo","cameraInfo","hideIfUp","downColor","upColor","worldX","worldY","spriteInputInfo","justDown","justUp","inputInfo","spriteBounds","filled","rectangle","ropeSegments","self","segment","spriteInfo","spriteCoords","lineInfo","forceType","quadTree","quadtree","Body","NINJA","Ninja","BOX2D","Box2D","renderBody","bodyInfo","renderBodyInfo","box2d","box2dWorld","renderDebugDraw","box2dBody","getByKey","randomIndex","removeRandomItem","shuffle","transposeMatrix","sourceRowCount","sourceColCount","rotateMatrix","findClosest","arr","NaN","low","high","POSITIVE_INFINITY","numberArray","numberArrayStep","rgba","RGBtoHSL","RGBtoHSV","fromRGBA","toRGBA","q","hueToColor","updateColor","HSVtoRGB","color32","getColor32","componentToHex","hexToRGB","hexToColor","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","blendNormal","blendAverage","blendSubtract","blendNegation","blendLinearDodge","blendLinearBurn","blendLinearLight","blendVividLight","blendPinLight","blendHardMix","blendReflect","blendGlow","blendPhoenix","LinkedList","entity","arcade","ninja","chipmunk","matter","CHIPMUNK","MATTERJS","P2","Matter","startSystem","system","enableAABB","emitters","ID","onAccess","onError","onTimeout","videoStream","isStreaming","retryLimit","retry","retryInterval","_retryID","_pending","_autoplay","_video","createVideoFromBlob","videoWidth","videoHeight","createVideoFromURL","snapshot","connectToMediaStream","stream","startMediaStream","captureAudio","removeVideoElement","setAttribute","getUserMediaTimeout","getUserMediaSuccess","getUserMediaError","mozSrcObject","createObjectURL","onloadeddata","checkStream","checkVideoProgress","change","playbackRate","setPause","setResume","playHandler","playing","ended","changeSource","grab","hasChildNodes","firstChild","removeAttribute"],"mappings":"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"} \ No newline at end of file diff --git a/build/custom/phaser-no-physics.min.js b/build/custom/phaser-no-physics.min.js index 094620793..b4ad6c2be 100644 --- a/build/custom/phaser-no-physics.min.js +++ b/build/custom/phaser-no-physics.min.js @@ -6,14 +6,14 @@ a.bindFramebuffer(a.FRAMEBUFFER,i.frameBuffer),a.activeTexture(a.TEXTURE0),a.bin },b.TilingSprite.prototype=Object.create(b.Sprite.prototype),b.TilingSprite.prototype.constructor=b.TilingSprite,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){if(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.refreshTexture){if(this.generateTilingTexture(!0),!this.tilingTexture)return;this.tilingTexture.needsUpdate&&(a.renderer.updateTexture(this.tilingTexture.baseTexture),this.tilingTexture.needsUpdate=!1)}a.spriteBatch.renderTilingSprite(this);for(var b=0;bn?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.destroy=function(){b.Sprite.prototype.destroy.call(this),this.tileScale=null,this.tileScaleOffset=null,this.tilePosition=null,this.tilingTexture&&(this.tilingTexture.destroy(!0),this.tilingTexture=null)},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}}),"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,b}).call(this),function(){function a(a,b){this._scaleFactor=a,this._deltaMode=b,this.originalEvent=null}var b=this,c=c||{VERSION:"2.4.1",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,CIRCLE:21,RECTANGLE:22,LINE:23,MATRIX:24,POINT:25,ROUNDEDRECTANGLE:26,CREATURE:27,VIDEO:28,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:PIXI||{}};if(Math.trunc||(Math.trunc=function(a){return 0>a?Math.ceil(a):Math.floor(a)}),Function.prototype.bind||(Function.prototype.bind=function(){var a=Array.prototype.slice;return function(b){function c(){var f=e.concat(a.call(arguments));d.apply(this instanceof c?this:b,f)}var d=this,e=a.call(arguments,1);if("function"!=typeof d)throw new TypeError;return c.prototype=function f(a){return a&&(f.prototype=a),this instanceof f?void 0:new f}(d.prototype),c}}()),Array.isArray||(Array.isArray=function(a){return"[object Array]"==Object.prototype.toString.call(a)}),Array.prototype.forEach||(Array.prototype.forEach=function(a){"use strict";if(void 0===this||null===this)throw new TypeError;var b=Object(this),c=b.length>>>0;if("function"!=typeof a)throw new TypeError;for(var d=arguments.length>=2?arguments[1]:void 0,e=0;c>e;e++)e in b&&a.call(d,b[e],e,b)}),"function"!=typeof window.Uint32Array&&"object"!=typeof window.Uint32Array){var d=function(a){var b=new Array;window[a]=function(a){if("number"==typeof a){Array.call(this,a),this.length=a;for(var b=0;bf&&(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 void 0===a&&(a=50),a>0&&100*Math.random()<=a},randomChoice:function(a,b){return Math.random()<.5?a:b},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(void 0===b)var b=0;if(void 0===c)var c=" ";if(void 0===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},mixinPrototype:function(a,b,c){void 0===c&&(c=!1);for(var d=Object.keys(b),e=0;e0&&(this._radius=.5*d),this.type=c.CIRCLE},c.Circle.prototype={circumference:function(){return 2*Math.PI*this._radius},random:function(a){void 0===a&&(a=new c.Point);var b=2*Math.PI*Math.random(),d=Math.random()+Math.random(),e=d>1?2-d:d,f=e*Math.cos(b),g=e*Math.sin(b);return a.x=this.x+f*this.radius,a.y=this.y+g*this.radius,a},getBounds:function(){return new c.Rectangle(this.x-this.radius,this.y-this.radius,this.diameter,this.diameter)},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 void 0===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 void 0===d&&(d=!1),void 0===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.Ellipse=function(a,b,d,e){a=a||0,b=b||0,d=d||0,e=e||0,this.x=a,this.y=b,this.width=d,this.height=e,this.type=c.ELLIPSE},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 void 0===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)},random:function(a){void 0===a&&(a=new c.Point);var b=Math.random()*Math.PI*2,d=Math.random();return a.x=Math.sqrt(d)*Math.cos(b),a.y=Math.sqrt(d)*Math.sin(b),a.x=this.x+a.x*this.width/2,a.y=this.y+a.y*this.height/2,a},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},PIXI.Ellipse=c.Ellipse,c.Line=function(a,b,d,e){a=a||0,b=b||0,d=d||0,e=e||0,this.start=new c.Point(a,b),this.end=new c.Point(d,e),this.type=c.LINE},c.Line.prototype={setTo:function(a,b,c,d){return this.start.setTo(a,b),this.end.setTo(c,d),this},fromSprite:function(a,b,c){return void 0===c&&(c=!1),c?this.setTo(a.center.x,a.center.y,b.center.x,b.center.y):this.setTo(a.x,a.y,b.x,b.y)},fromAngle:function(a,b,c,d){return this.start.setTo(a,b),this.end.setTo(a+Math.cos(c)*d,b+Math.sin(c)*d),this},rotate:function(a,b){var c=this.start.x,d=this.start.y;return this.start.rotate(this.end.x,this.end.y,a,b,this.length),this.end.rotate(c,d,a,b,this.length),this},intersects:function(a,b,d){return c.Line.intersectsPoints(this.start,this.end,a.start,a.end,b,d)},reflect:function(a){return c.Line.reflect(this,a)},pointOnLine:function(a,b){return(a-this.start.x)*(this.end.y-this.start.y)===(this.end.x-this.start.x)*(b-this.start.y)},pointOnSegment:function(a,b){var c=Math.min(this.start.x,this.end.x),d=Math.max(this.start.x,this.end.x),e=Math.min(this.start.y,this.end.y),f=Math.max(this.start.y,this.end.y);return this.pointOnLine(a,b)&&a>=c&&d>=a&&b>=e&&f>=b},random:function(a){void 0===a&&(a=new c.Point);var b=Math.random();return a.x=this.start.x+b*(this.end.x-this.start.x),a.y=this.start.y+b*(this.end.y-this.start.y),a},coordinatesOnLine:function(a,b){void 0===a&&(a=1),void 0===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 void 0===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)}}),Object.defineProperty(c.Line.prototype,"normalX",{get:function(){return Math.cos(this.angle-1.5707963267948966)}}),Object.defineProperty(c.Line.prototype,"normalY",{get:function(){return Math.sin(this.angle-1.5707963267948966)}}),Object.defineProperty(c.Line.prototype,"normalAngle",{get:function(){return c.Math.wrap(this.angle-1.5707963267948966,-Math.PI,Math.PI)}}),c.Line.intersectsPoints=function(a,b,d,e,f,g){void 0===f&&(f=!0),void 0===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.Line.reflect=function(a,b){return 2*b.normalAngle-3.141592653589793-a.angle},c.Matrix=function(a,b,d,e,f,g){a=a||1,b=b||0,d=d||0,e=e||1,f=f||0,g=g||0,this.a=a,this.b=b,this.c=d,this.d=e,this.tx=f,this.ty=g,this.type=c.MATRIX},c.Matrix.prototype={fromArray:function(a){return this.setTo(a[0],a[1],a[3],a[4],a[2],a[5])},setTo:function(a,b,c,d,e,f){return this.a=a,this.b=b,this.c=c,this.d=d,this.tx=e,this.ty=f,this},clone:function(a){return void 0===a||null===a?a=new c.Matrix(this.a,this.b,this.c,this.d,this.tx,this.ty):(a.a=this.a,a.b=this.b,a.c=this.c,a.d=this.d,a.tx=this.tx,a.ty=this.ty),a},copyTo:function(a){return a.copyFrom(this),a},copyFrom:function(a){return this.a=a.a,this.b=a.b,this.c=a.c,this.d=a.d,this.tx=a.tx,this.ty=a.ty,this},toArray:function(a,b){return void 0===b&&(b=new PIXI.Float32Array(9)),a?(b[0]=this.a,b[1]=this.b,b[2]=0,b[3]=this.c,b[4]=this.d,b[5]=0,b[6]=this.tx,b[7]=this.ty,b[8]=1):(b[0]=this.a,b[1]=this.c,b[2]=this.tx,b[3]=this.b,b[4]=this.d,b[5]=this.ty,b[6]=0,b[7]=0,b[8]=1),b},apply:function(a,b){return void 0===b&&(b=new c.Point),b.x=this.a*a.x+this.c*a.y+this.tx,b.y=this.b*a.x+this.d*a.y+this.ty,b},applyInverse:function(a,b){void 0===b&&(b=new c.Point);var d=1/(this.a*this.d+this.c*-this.b),e=a.x,f=a.y;return b.x=this.d*d*e+-this.c*d*f+(this.ty*this.c-this.tx*this.d)*d,b.y=this.a*d*f+-this.b*d*e+(-this.ty*this.a+this.tx*this.b)*d,b},translate:function(a,b){return this.tx+=a,this.ty+=b,this},scale:function(a,b){return this.a*=a,this.d*=b,this.c*=a,this.b*=b,this.tx*=a,this.ty*=b,this},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},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},identity:function(){return this.setTo(1,0,0,1,0,0)}},c.identityMatrix=new c.Matrix,PIXI.Matrix=c.Matrix,PIXI.identityMatrix=c.identityMatrix,c.Point=function(a,b){a=a||0,b=b||0,this.x=a,this.y=b,this.type=c.POINT},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 void 0===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 void 0===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)},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 void 0===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 void 0===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 void 0===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 void 0===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.negative=function(a,b){return void 0===b&&(b=new c.Point),b.setTo(-a.x,-a.y)},c.Point.multiplyAdd=function(a,b,d,e){return void 0===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 void 0===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 void 0===b&&(b=new c.Point),b.setTo(-a.y,a.x)},c.Point.rperp=function(a,b){return void 0===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){void 0===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){void 0===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 void 0===b&&(b=new c.Point),b.setTo(-1*a.y,a.x)},c.Point.normalize=function(a,b){void 0===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){void 0===f&&(f=!1),void 0===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.x=b+g*Math.cos(h),a.y=d+g*Math.sin(h),a},c.Point.centroid=function(a,b){if(void 0===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.Polygon=function(){this.area=0,this._points=[],arguments.length>0&&this.setTo.apply(this,arguments),this.closed=!0,this.type=c.POLYGON},c.Polygon.prototype={toNumberArray:function(a){void 0===a&&(a=[]);for(var b=0;b=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,c=0,d=a.length;d>c;c++){if("number"==typeof a[c]){var e=new PIXI.Point(a[c],a[c+1]);c++}else var e=new PIXI.Point(a[c].x,a[c].y);this._points.push(e),e.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.Polygon=c.Polygon,c.Rectangle=function(a,b,d,e){a=a||0,b=b||0,d=d||0,e=e||0,this.x=a,this.y=b,this.width=d,this.height=e,this.type=c.RECTANGLE},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 void 0===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)},ceil:function(){this.x=Math.ceil(this.x),this.y=Math.ceil(this.y)},ceilAll:function(){this.x=Math.ceil(this.x),this.y=Math.ceil(this.y),this.width=Math.ceil(this.width),this.height=Math.ceil(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)},resize:function(a,b){return this.width=a,this.height=b,this},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){return c.Rectangle.intersects(this,a)},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)},random:function(a){return void 0===a&&(a=new c.Point),a.x=this.randomX,a.y=this.randomY,a},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,"bottomLeft",{get:function(){return new c.Point(this.x,this.bottom)},set:function(a){this.x=a.x,this.bottom=a.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 void 0===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 void 0===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 void 0===f&&(f=0),!(b>a.right+f||ca.bottom+f||ed&&(d=a.x),a.xf&&(f=a.y),a.y=c&&a<=c+this.width){var d=this.y;if(b>=d&&b<=d+this.height)return!0}return!1}},c.RoundedRectangle.prototype.constructor=c.RoundedRectangle,PIXI.RoundedRectangle=c.RoundedRectangle,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.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.displayObject=null,this.scale=null,this.totalInView=0,this._targetPosition=new c.Point,this._edge=0,this._position=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={preUpdate:function(){this.totalInView=0},follow:function(a,b){void 0===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),this.target.parent&&this._targetPosition.multiply(this.target.parent.worldTransform.a,this.target.parent.worldTransform.d),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.copyFrom(this.game.world.bounds)},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.Create=function(a){this.game=a,this.bmd=a.make.bitmapData(),this.canvas=this.bmd.canvas,this.ctx=this.bmd.context,this.palettes=[{0:"#000",1:"#9D9D9D",2:"#FFF",3:"#BE2633",4:"#E06F8B",5:"#493C2B",6:"#A46422",7:"#EB8931",8:"#F7E26B",9:"#2F484E",A:"#44891A",B:"#A3CE27",C:"#1B2632",D:"#005784",E:"#31A2F2",F:"#B2DCEF"},{0:"#000",1:"#191028",2:"#46af45",3:"#a1d685",4:"#453e78",5:"#7664fe",6:"#833129",7:"#9ec2e8",8:"#dc534b",9:"#e18d79",A:"#d6b97b",B:"#e9d8a1",C:"#216c4b",D:"#d365c8",E:"#afaab9",F:"#f5f4eb"},{0:"#000",1:"#2234d1",2:"#0c7e45",3:"#44aacc",4:"#8a3622",5:"#5c2e78",6:"#aa5c3d",7:"#b5b5b5",8:"#5e606e",9:"#4c81fb",A:"#6cd947",B:"#7be2f9",C:"#eb8a60",D:"#e23d69",E:"#ffd93f",F:"#fff"},{0:"#000",1:"#fff",2:"#8b4131",3:"#7bbdc5",4:"#8b41ac",5:"#6aac41",6:"#3931a4",7:"#d5de73",8:"#945a20",9:"#5a4100",A:"#bd736a",B:"#525252",C:"#838383",D:"#acee8b",E:"#7b73de",F:"#acacac"},{0:"#000",1:"#191028",2:"#46af45",3:"#a1d685",4:"#453e78",5:"#7664fe",6:"#833129",7:"#9ec2e8",8:"#dc534b",9:"#e18d79",A:"#d6b97b",B:"#e9d8a1",C:"#216c4b",D:"#d365c8",E:"#afaab9",F:"#fff"}]},c.Create.PALETTE_ARNE=0,c.Create.PALETTE_JMP=1,c.Create.PALETTE_CGA=2,c.Create.PALETTE_C64=3,c.Create.PALETTE_JAPANESE_MACHINE=4,c.Create.prototype={texture:function(a,b,c,d,e){void 0===c&&(c=8),void 0===d&&(d=c),void 0===e&&(e=0);var f=b[0].length*c,g=b.length*d;this.bmd.resize(f,g),this.bmd.clear();for(var h=0;hg;g+=e)this.ctx.fillRect(0,g,b,1);for(var h=0;b>h;h+=d)this.ctx.fillRect(h,0,1,c);return this.bmd.generateTexture(a)}},c.Create.prototype.constructor=c.Create,c.State=function(){this.game=null,this.key="",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={init:function(){},preload:function(){},loadUpdate:function(){},loadRender:function(){},create:function(){},update:function(){},preRender:function(){},render:function(){},resize:function(){},paused:function(){},resumed: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.onStateChange=new c.Signal,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),null!==this._pendingState&&"string"!=typeof this._pendingState&&this.add("default",this._pendingState,!0)},add:function(a,b,d){void 0===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.onPreRenderCallback=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){void 0===b&&(b=!0),void 0===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){void 0===a&&(a=!0),void 0===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){var a=this.current;if(this.clearCurrentState(),this.setCurrentState(this._pendingState),this.onStateChange.dispatch(this.current,a),this.current!==this._pendingState)return;this._pendingState=null,this.onPreloadCallback?(this.game.load.reset(!0),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||this.states[a].create||this.states[a].update||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,this.states[a].key=a},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&&this.game.physics.reset(),this.current=a,this._created=!1,this.onInitCallback.apply(this.callbackContext,this._args),a===this._pendingState&&(this._args=[]),this.game._kickstart=!0},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(a){this._created&&this.onPreRenderCallback&&this.onPreRenderCallback.call(this.callbackContext,this.game,a)},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.context.restore()):this.onRenderCallback.call(this.callbackContext,this.game)):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,this.current=""}},c.StateManager.prototype.constructor=c.StateManager,Object.defineProperty(c.StateManager.prototype,"created",{get:function(){return this._created}}),c.Signal=function(){},c.Signal.prototype={_bindings:null,_prevParams:null,memorize:!1,_shouldPropagate:!0,active:!0,_boundDispatch:!0,validateListener:function(a,b){if("function"!=typeof a)throw new Error("Phaser.Signal: listener is a required param of {fn}() and should be a Function.".replace("{fn}",b))},_registerListener:function(a,b,d,e,f){var g,h=this._indexOfListener(a,d);if(-1!==h){if(g=this._bindings[h],g.isOnce()!==b)throw new Error("You cannot add"+(b?"":"Once")+"() then add"+(b?"Once":"")+"() the same listener without removing the relationship first.")}else g=new c.SignalBinding(this,a,b,d,e,f),this._addBinding(g);return this.memorize&&this._prevParams&&g.execute(this._prevParams),g},_addBinding:function(a){this._bindings||(this._bindings=[]);var b=this._bindings.length;do b--;while(this._bindings[b]&&a._priority<=this._bindings[b]._priority);this._bindings.splice(b+1,0,a)},_indexOfListener:function(a,b){if(!this._bindings)return-1;void 0===b&&(b=null);for(var c,d=this._bindings.length;d--;)if(c=this._bindings[d],c._listener===a&&c.context===b)return d;return-1},has:function(a,b){return-1!==this._indexOfListener(a,b)},add:function(a,b,c){this.validateListener(a,"add");var d=[];if(arguments.length>3)for(var e=3;e3)for(var e=3;ea||a>=this.children.length?-1:this.getChildAt(a)},c.Group.prototype.create=function(a,b,c,d,e){void 0===e&&(e=!0);var f=new this.classType(this.game,a,b,c,d);return f.exists=e,f.visible=e,f.alive=e,this.addChild(f),f.z=this.children.length,this.enableBody&&this.game.physics.enable(f,this.physicsBodyType,this.enableBodyDebug),f.events&&f.events.onAddedToGroup$dispatch(f,this),null===this.cursor&&(this.cursor=f),f},c.Group.prototype.createMultiple=function(a,b,c,d){void 0===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 void 0===a&&(a=0),a>this.children.length-1&&(a=0),this.cursor?(this.cursorIndex=a,this.cursor=this.children[this.cursorIndex],this.cursor):void 0},c.Group.prototype.next=function(){return this.cursor?(this.cursorIndex>=this.children.length-1?this.cursorIndex=0:this.cursorIndex++,this.cursor=this.children[this.cursorIndex],this.cursor):void 0},c.Group.prototype.previous=function(){return this.cursor?(0===this.cursorIndex?this.cursorIndex=this.children.length-1:this.cursorIndex--,this.cursor=this.children[this.cursorIndex],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);return-1!==d?(b.parent&&(b.parent instanceof c.Group?b.parent.remove(b):b.parent.removeChild(b)),this.remove(a),this.addAt(b,d),a):void 0},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(void 0===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 void 0===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 void 0===g&&(g=!1),b=b.split("."),void 0===d&&(d=!1),void 0===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){void 0===c&&(c=!1),void 0===d&&(d=!1),void 0===f&&(f=!1),a=a.split("."),e=e||0;for(var g=0;g2){c=[];for(var d=2;d2){e=[];for(var f=2;f2){d=[null];for(var e=2;e2){d=[null];for(var e=2;e2){d=[null];for(var e=2;eb[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;for(var h=0,i=0;i0?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(void 0===b&&(b=!1),void 0===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.removeFromHash(a),this.updateZ(),this.cursor===a&&this.next(),b&&d&&d.destroy(!0),!0},c.Group.prototype.moveAll=function(a,b){if(void 0===b&&(b=!1),this.children.length>0&&a instanceof c.Group){do a.add(this.children[0],b);while(this.children.length>0);this.hash=[],this.cursor=null}return a},c.Group.prototype.removeAll=function(a,b){if(void 0===a&&(a=!1),void 0===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]);this.removeFromHash(c),a&&c&&c.destroy(!0)}while(this.children.length>0);this.hash=[],this.cursor=null}},c.Group.prototype.removeBetween=function(a,b,c,d){if(void 0===b&&(b=this.children.length-1),void 0===c&&(c=!1),void 0===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]);this.removeFromHash(f),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||(void 0===a&&(a=!0),void 0===b&&(b=!1),this.onDestroy.dispatch(this,a,b),this.removeAll(a),this.cursor=null,this.filters=null,this.pendingDestroy=!1,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)}}),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,this.game.state.onStateChange.add(this.stateChange,this)},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.stateChange=function(){this.x=0,this.y=0,this.camera.reset()},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.x=a,this.y=b,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,this.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();(f||g)&&(this.onResize&&this.onResize.call(this.onResizeContext,this,e),this.updateLayout(),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,Object.defineProperty(c.ScaleManager.prototype,"boundingParent",{get:function(){if(this.parentIsWindow||this.isFullScreen&&!this._createdFullScreenTarget)return null;var a=this.game.canvas&&this.game.canvas.parentNode;return a||null}}),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,"isGamePortrait",{get:function(){return this.height>this.width}}),Object.defineProperty(c.ScaleManager.prototype,"isGameLandscape",{get:function(){return this.width>this.height}}),c.Game=function(a,b,d,e,f,g,h,i){return this.id=c.GAMES.push(this)-1,this.config=null,this.physicsConfig=i,this.parent="",this.width=800,this.height=600,this.resolution=1,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.plugins=null,this.rnd=null,this.device=c.Device,this.camera=null,this.canvas=null,this.context=null,this.debug=null,this.particles=null,this.create=null,this.lockRender=!1,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.currentUpdateID=0,this.updatesThisFrame=1,this._deltaTime=0,this._lastCount=0,this._spiraling=0,this._kickstart=!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)),this.device.whenReady(this.boot,this),this},c.Game.prototype={parseConfig:function(a){this.config=a,void 0===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.resolution&&(this.resolution=a.resolution),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||(this.onPause=new c.Signal,this.onResume=new c.Signal,this.onBlur=new c.Signal,this.onFocus=new c.Signal,this.isBooted=!0,this.math=c.Math,this.scale=new c.ScaleManager(this,this._width,this._height),this.stage=new c.Stage(this),this.setUpRenderer(),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.create=new c.Create(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.debug={preUpdate:function(){},update:function(){},reset:function(){}},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._kickstart=!0,window.focus&&(!window.PhaserGlobal||window.PhaserGlobal&&!window.PhaserGlobal.stopFocus)&&window.focus(),this.raf.start())},showDebugHeader:function(){if(!window.PhaserGlobal||!window.PhaserGlobal.hideBanner){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: #9854d8","background: #6c2ca7","color: #ffffff; background: #450f78;","background: #6c2ca7","background: #9854d8","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:this.resolution,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:this.resolution,antialias:this.antialias,preserveDrawingBuffer:this.preserveDrawingBuffer}),this.context=null,this.canvas.addEventListener("webglcontextlost",this.contextLost.bind(this),!1),this.canvas.addEventListener("webglcontextrestored",this.contextRestored.bind(this),!1);this.renderType!==c.HEADLESS&&(this.stage.smoothed=this.antialias,c.Canvas.addToDOM(this.canvas,this.parent,!1),c.Canvas.setTouchAction(this.canvas))},contextLost:function(a){a.preventDefault(),this.renderer.contextLost=!0},contextRestored:function(){this.renderer.initContext(),this.cache.clearGLTextures(),this.renderer.contextLost=!1},update:function(a){if(this.time.update(a),this._kickstart)return this.updateLogic(1/this.time.desiredFps),this.stage.updateTransform(),this.updateRender(this.time.slowMotion*this.time.desiredFps),void(this._kickstart=!1);if(this._spiraling>1&&!this.forceSingleUpdate)this.time.time>this._nextFpsNotification&&(this._nextFpsNotification=this.time.time+1e4,this.fpsProblemNotifier.dispatch()),this._deltaTime=0,this._spiraling=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);var c=0;for(this.updatesThisFrame=Math.floor(this._deltaTime/b),this.forceSingleUpdate&&(this.updatesThisFrame=Math.min(1,this.updatesThisFrame));this._deltaTime>=b&&(this._deltaTime-=b,this.currentUpdateID=c,this.updateLogic(1/this.time.desiredFps),this.stage.updateTransform(),c++,!this.forceSingleUpdate||1!==c););c>this._lastCount?this._spiraling++:c=c.Input.MAX_POINTERS)return console.warn("Phaser.Input.addPointer: Maximum limit of "+c.Input.MAX_POINTERS+" pointers reached."),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&&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 a-b},getPointer:function(a){void 0===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._pollCounterthis.game.time.time},justReleased:function(a){return a=a||250,this.isUp&&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,this.altKey=!1,this.shiftKey=!1,this.ctrlKey=!1},destroy:function(){this.onDown.dispose(),this.onUp.dispose(),this.onFloat.dispose(),this.parent=null,this.game=null}},c.DeviceButton.prototype.constructor=c.DeviceButton,Object.defineProperty(c.DeviceButton.prototype,"duration",{get:function(){return this.isUp?-1:this.game.time.time-this.timeDown}}),c.Pointer=function(a,b){this.game=a,this.id=b,this.type=c.POINTER,this.exists=!0,this.identifier=0,this.pointerId=null,this.target=null,this.button=null,this.leftButton=new c.DeviceButton(this,c.Pointer.LEFT_BUTTON),this.middleButton=new c.DeviceButton(this,c.Pointer.MIDDLE_BUTTON),this.rightButton=new c.DeviceButton(this,c.Pointer.RIGHT_BUTTON),this.backButton=new c.DeviceButton(this,c.Pointer.BACK_BUTTON),this.forwardButton=new c.DeviceButton(this,c.Pointer.FORWARD_BUTTON),this.eraserButton=new c.DeviceButton(this,c.Pointer.ERASER_BUTTON),this._holdSent=!1,this._history=[],this._nextDrop=0,this._stateReset=!1,this.withinGame=!1,this.clientX=-1,this.clientY=-1,this.pageX=-1,this.pageY=-1,this.screenX=-1,this.screenY=-1,this.rawMovementX=0,this.rawMovementY=0,this.movementX=0,this.movementY=0,this.x=-1,this.y=-1,this.isMouse=0===b,this.isDown=!1,this.isUp=!0,this.timeDown=0,this.timeUp=0,this.previousTapTime=0,this.totalTouches=0,this.msSinceLastClick=Number.MAX_VALUE,this.targetObject=null,this.active=!1,this.dirty=!1,this.position=new c.Point,this.positionDown=new c.Point,this.positionUp=new c.Point,this.circle=new c.Circle(0,0,44),this._clickTrampolines=null,this._trampolineTargetObject=null},c.Pointer.NO_BUTTON=0,c.Pointer.LEFT_BUTTON=1,c.Pointer.RIGHT_BUTTON=2,c.Pointer.MIDDLE_BUTTON=4,c.Pointer.BACK_BUTTON=8,c.Pointer.FORWARD_BUTTON=16,c.Pointer.ERASER_BUTTON=32,c.Pointer.prototype={resetButtons:function(){this.isDown=!1,this.isUp=!0,this.isMouse&&(this.leftButton.reset(),this.middleButton.reset(),this.rightButton.reset(),this.backButton.reset(),this.forwardButton.reset(),this.eraserButton.reset())},updateButtons:function(a){this.button=a.button;var b=a.buttons;void 0!==b&&(c.Pointer.LEFT_BUTTON&b?this.leftButton.start(a):this.leftButton.stop(a),c.Pointer.RIGHT_BUTTON&b?this.rightButton.start(a):this.rightButton.stop(a),c.Pointer.MIDDLE_BUTTON&b?this.middleButton.start(a):this.middleButton.stop(a),c.Pointer.BACK_BUTTON&b?this.backButton.start(a):this.backButton.stop(a),c.Pointer.FORWARD_BUTTON&b?this.forwardButton.start(a):this.forwardButton.stop(a),c.Pointer.ERASER_BUTTON&b?this.eraserButton.start(a):this.eraserButton.stop(a),a.ctrlKey&&this.leftButton.isDown&&this.rightButton.start(a),this.isUp=!0,this.isDown=!1,(this.leftButton.isDown||this.rightButton.isDown||this.middleButton.isDown||this.backButton.isDown||this.forwardButton.isDown||this.eraserButton.isDown)&&(this.isUp=!1,this.isDown=!0))},start:function(a){return a.pointerId&&(this.pointerId=a.pointerId),this.identifier=a.identifier,this.target=a.target,this.isMouse?this.updateButtons(a):(this.isDown=!0,this.isUp=!1),this._history=[],this.active=!0,this.withinGame=!0,this.dirty=!1,this._clickTrampolines=null,this._trampolineTargetObject=null,this.msSinceLastClick=this.game.time.time-this.timeDown,this.timeDown=this.game.time.time,this._holdSent=!1,this.move(a,!0),this.positionDown.setTo(this.x,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.totalActivePointers)&&(this.game.input.x=this.x,this.game.input.y=this.y,this.game.input.position.setTo(this.x,this.y),this.game.input.onDown.dispatch(this,a),this.game.input.resetSpeed(this.x,this.y)),this._stateReset=!1,this.totalTouches++,null!==this.targetObject&&this.targetObject._touchedHandler(this),this -},update:function(){this.active&&(this.dirty&&(this.game.input.interactiveItems.total>0&&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.totalActivePointers)&&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(void 0===b&&(b=!1),void 0!==a.button&&(this.button=a.button),b&&this.updateButtons(a),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.totalActivePointers)&&(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.renderOrderID,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.renderOrderID,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&&this.withinGame?void a.preventDefault():(this.isMouse?this.updateButtons(a):(this.isDown=!1,this.isUp=!0),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.totalActivePointers)&&(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.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&&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;fd;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}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 void 0===c&&(c=!0),0===this.sprite.scale.x||0===this.sprite.scale.y||this.priorityIDa||this.priorityID===a&&this.sprite.renderOrderIDb;b++)if(this._pointerData[b].isOver)return!0}return!1},pointerOut:function(a){if(this.enabled){if(void 0!==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)?(void 0===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)?(void 0===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&&this._pointerData[a.id].isOver){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.snapPoint.set(this.sprite.cameraOffset.x,this.sprite.cameraOffset.y))):(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,this.snapPoint.set(this.sprite.x,this.sprite.y))),this.sprite.events.onDragUpdate.dispatch(this.sprite,a,b,c,this.snapPoint),!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){var b=this.sprite.x,c=this.sprite.y;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 d=this.sprite.getBounds();this.sprite.x=this.globalToLocalX(a.x)+(this.sprite.x-d.centerX),this.sprite.y=this.globalToLocalY(a.y)+(this.sprite.y-d.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.dragStartPoint.set(b,c),this.sprite.events.onDragStart$dispatch(this.sprite,a,b,c)},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){void 0===a&&(a=!0),void 0===b&&(b=!0),this.allowHorizontalDrag=a,this.allowVerticalDrag=b},enableSnap:function(a,b,c,d,e,f){void 0===c&&(c=!0),void 0===d&&(d=!1),void 0===e&&(e=0),void 0===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.leftthis.boundsRect.right&&(this.sprite.x=this.boundsRect.right-(this.sprite.width-this.sprite.offsetX)),this.sprite.topthis.boundsRect.bottom&&(this.sprite.y=this.boundsRect.bottom-(this.sprite.height-this.sprite.offsetY)))},checkBoundsSprite:function(){this.sprite.fixedToCamera&&this.boundsSprite.fixedToCamera?(this.sprite.cameraOffset.xthis.boundsSprite.cameraOffset.x+this.boundsSprite.width&&(this.sprite.cameraOffset.x=this.boundsSprite.cameraOffset.x+this.boundsSprite.width-this.sprite.width),this.sprite.cameraOffset.ythis.boundsSprite.cameraOffset.y+this.boundsSprite.height&&(this.sprite.cameraOffset.y=this.boundsSprite.cameraOffset.y+this.boundsSprite.height-this.sprite.height)):(this.sprite.leftthis.boundsSprite.right&&(this.sprite.x=this.boundsSprite.right-(this.sprite.width-this.sprite.offsetX)),this.sprite.topthis.boundsSprite.bottom&&(this.sprite.y=this.boundsSprite.bottom-(this.sprite.height-this.sprite.offsetY)))}},c.InputHandler.prototype.constructor=c.InputHandler,c.Gamepad=function(a){this.game=a,this._gamepadIndexMap={},this._rawPads=[],this._active=!1,this.enabled=!0,this._gamepadSupportAvailable=!!navigator.webkitGetGamepads||!!navigator.webkitGamepads||-1!=navigator.userAgent.indexOf("Firefox/")||!!navigator.getGamepads,this._prevRawGamepadTypes=[],this._prevTimestamps=[],this.callbackContext=this,this.onConnectCallback=null,this.onDisconnectCallback=null,this.onDownCallback=null,this.onUpCallback=null,this.onAxisCallback=null,this.onFloatCallback=null,this._ongamepadconnected=null,this._gamepaddisconnected=null,this._gamepads=[new c.SinglePad(a,this),new c.SinglePad(a,this),new c.SinglePad(a,this),new c.SinglePad(a,this)]},c.Gamepad.prototype={addCallbacks:function(a,b){"undefined"!=typeof b&&(this.onConnectCallback="function"==typeof b.onConnect?b.onConnect:this.onConnectCallback,this.onDisconnectCallback="function"==typeof b.onDisconnect?b.onDisconnect:this.onDisconnectCallback,this.onDownCallback="function"==typeof b.onDown?b.onDown:this.onDownCallback,this.onUpCallback="function"==typeof b.onUp?b.onUp:this.onUpCallback,this.onAxisCallback="function"==typeof b.onAxis?b.onAxis:this.onAxisCallback,this.onFloatCallback="function"==typeof b.onFloat?b.onFloat:this.onFloatCallback,this.callbackContext=a)},start:function(){if(!this._active){this._active=!0;var a=this;this._onGamepadConnected=function(b){return a.onGamepadConnected(b)},this._onGamepadDisconnected=function(b){return a.onGamepadDisconnected(b)},window.addEventListener("gamepadconnected",this._onGamepadConnected,!1),window.addEventListener("gamepaddisconnected",this._onGamepadDisconnected,!1)}},onGamepadConnected:function(a){var b=a.gamepad;this._rawPads.push(b),this._gamepads[b.index].connect(b)},onGamepadDisconnected:function(a){var b=a.gamepad;for(var c in this._rawPads)this._rawPads[c].index===b.index&&this._rawPads.splice(c,1);this._gamepads[b.index].disconnect()},update:function(){this._pollGamepads(),this.pad1.pollStatus(),this.pad2.pollStatus(),this.pad3.pollStatus(),this.pad4.pollStatus()},_pollGamepads:function(){if(navigator.getGamepads)var a=navigator.getGamepads();else if(navigator.webkitGetGamepads)var a=navigator.webkitGetGamepads();else if(navigator.webkitGamepads)var a=navigator.webkitGamepads();if(a){this._rawPads=[];for(var b=!1,c=0;c0&&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.maxHealth&&(this.health=this.maxHealth)),this}},c.Component.InCamera=function(){},c.Component.InCamera.prototype={inCamera:{get:function(){return this.game.world.camera.view.intersects(this._bounds)}}},c.Component.InputEnabled=function(){},c.Component.InputEnabled.prototype={input:null,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()}}},c.Component.InWorld=function(){},c.Component.InWorld.preUpdate=function(){if((this.autoCull||this.checkWorldBounds)&&(this._bounds.copyFrom(this.getBounds()),this._bounds.x+=this.game.camera.view.x,this._bounds.y+=this.game.camera.view.y,this.autoCull&&(this.game.world.camera.view.intersects(this._bounds)?(this.renderable=!0,this.game.world.camera.totalInView++):this.renderable=!1),this.checkWorldBounds))if(this._outOfBoundsFired&&this.game.world.bounds.intersects(this._bounds))this._outOfBoundsFired=!1,this.events.onEnterBounds$dispatch(this);else if(!this._outOfBoundsFired&&!this.game.world.bounds.intersects(this._bounds)&&(this._outOfBoundsFired=!0,this.events.onOutOfBounds$dispatch(this),this.outOfBoundsKill))return this.kill(),!1;return!0},c.Component.InWorld.prototype={checkWorldBounds:!1,outOfBoundsKill:!1,_outOfBoundsFired:!1,inWorld:{get:function(){return this.game.world.bounds.intersects(this.getBounds())}}},c.Component.LifeSpan=function(){},c.Component.LifeSpan.preUpdate=function(){return this.lifespan>0&&(this.lifespan-=this.game.time.physicsElapsedMS,this.lifespan<=0)?(this.kill(),!1):!0},c.Component.LifeSpan.prototype={alive:!0,lifespan:0,revive:function(a){return void 0===a&&(a=1),this.alive=!0,this.exists=!0,this.visible=!0,"number"==typeof this.health&&(this.health=a),this.events&&this.events.onRevived$dispatch(this),this},kill:function(){return this.alive=!1,this.exists=!1,this.visible=!1,this.events&&this.events.onKilled$dispatch(this),this}},c.Component.LoadTexture=function(){},c.Component.LoadTexture.prototype={customRender:!1,_frame:null,loadTexture:function(a,b,d){b=b||0,(d||void 0===d)&&this.animations&&this.animations.stop(),this.key=a,this.customRender=!1;var e=this.game.cache,f=!0,g=!this.texture.baseTexture.scaleMode;if(c.RenderTexture&&a instanceof c.RenderTexture)this.key=a.key,this.setTexture(a);else if(c.BitmapData&&a instanceof c.BitmapData)this.customRender=!0,this.setTexture(a.texture),e.hasFrameData(a.key,c.Cache.BITMAPDATA)&&(f=!this.animations.loadFrameData(e.getFrameData(a.key,c.Cache.BITMAPDATA),b));else if(c.Video&&a instanceof c.Video){this.customRender=!0;var h=a.texture.valid;this.setTexture(a.texture),this.setFrame(a.texture.frame.clone()),a.onChangeSource.add(this.resizeFrame,this),this.texture.valid=h}else if(a instanceof PIXI.Texture)this.setTexture(a);else{var i=e.getImage(a,!0);this.key=i.key,this.setTexture(new PIXI.Texture(i.base)),f=!this.animations.loadFrameData(i.frameData,b)}f&&(this._frame=c.Rectangle.clone(this.texture.frame)),g||(this.texture.baseTexture.scaleMode=1)},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.requiresReTint=!0,this.texture._updateUvs(),this.tilingTexture&&(this.refreshTexture=!0)},resizeFrame:function(a,b,c){this.texture.frame.resize(b,c),this.texture.setFrame(this.texture.frame)},resetFrame:function(){this._frame&&this.setFrame(this._frame)},frame:{get:function(){return this.animations.frame},set:function(a){this.animations.frame=a}},frameName:{get:function(){return this.animations.frameName},set:function(a){this.animations.frameName=a}}},c.Component.Overlap=function(){},c.Component.Overlap.prototype={overlap:function(a){return c.Rectangle.intersects(this.getBounds(),a.getBounds())}},c.Component.PhysicsBody=function(){},c.Component.PhysicsBody.preUpdate=function(){return this.fresh&&this.exists?(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.previousPosition.set(this.world.x,this.world.y),this.previousRotation=this.rotation,this.body&&this.body.preUpdate(),this.fresh=!1,!1):(this.previousPosition.set(this.world.x,this.world.y),this.previousRotation=this.rotation,this._exists&&this.parent.exists?!0:(this.renderOrderID=-1,!1))},c.Component.PhysicsBody.postUpdate=function(){this.exists&&this.body&&this.body.postUpdate()},c.Component.PhysicsBody.prototype={body:null,x:{get:function(){return this.position.x},set:function(a){this.position.x=a,this.body&&!this.body.dirty&&(this.body._reset=!0)}},y:{get:function(){return this.position.y},set:function(a){this.position.y=a,this.body&&!this.body.dirty&&(this.body._reset=!0)}}},c.Component.Reset=function(){},c.Component.Reset.prototype.reset=function(a,b,c){return void 0===c&&(c=1),this.world.set(a,b),this.position.set(a,b),this.fresh=!0,this.exists=!0,this.visible=!0,this.renderable=!0,this.components.InWorld&&(this._outOfBoundsFired=!1),this.components.LifeSpan&&(this.alive=!0,this.health=c),this.components.PhysicsBody&&this.body&&this.body.reset(a,b,!1,!1),this},c.Component.ScaleMinMax=function(){},c.Component.ScaleMinMax.prototype={transformCallback:this.checkTransform,transformCallbackContext:this,scaleMin:null,scaleMax:null,checkTransform:function(a){this.scaleMin&&(a.athis.scaleMax.x&&(a.a=this.scaleMax.x),a.d>this.scaleMax.y&&(a.d=this.scaleMax.y))},setScaleMinMax:function(a,b,d,e){void 0===b?b=d=e=a:void 0===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)}},c.Component.Smoothed=function(){},c.Component.Smoothed.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)}}},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 void 0===f&&(f=this.world),f.add(new c.Image(this.game,a,b,d,e))},sprite:function(a,b,c,d,e){return void 0===e&&(e=this.world),e.create(a,b,c,d)},creature:function(a,b,d,e,f){void 0===f&&(f=this.world);var g=new c.Creature(this.game,a,b,d,e);return f.add(g),g},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 void 0===a&&(a=null),void 0===b&&(b="group"),void 0===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 void 0===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 void 0===g&&(g=this.world),g.add(new c.Rope(this.game,a,b,d,e,f))},text:function(a,b,d,e,f){return void 0===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 void 0===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 void 0===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 void 0===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){(void 0===d||""===d)&&(d=this.game.rnd.uuid()),void 0===e&&(e=!1);var f=new c.RenderTexture(this.game,a,b,d);return e&&this.game.cache.addRenderTexture(d,f),f},video:function(a,b){return new c.Video(this.game,a,b)},bitmapData:function(a,b,d,e){void 0===e&&(e=!1),(void 0===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,this.game.tweens)},group:function(a,b,d,e,f){return new c.Group(this.game,a,b,d,e,f)},spriteBatch:function(a,b,d){return void 0===b&&(b="group"),void 0===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,g){return new c.BitmapText(this.game,a,b,d,e,f,g)},tilemap:function(a,b,d,e,f){return new c.Tilemap(this.game,a,b,d,e,f)},renderTexture:function(a,b,d,e){(void 0===d||""===d)&&(d=this.game.rnd.uuid()),void 0===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){void 0===e&&(e=!1),(void 0===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.Sprite=function(a,b,d,e,f){b=b||0,d=d||0,e=e||null,f=f||null,this.type=c.SPRITE,this.physicsType=c.SPRITE,PIXI.Sprite.call(this,PIXI.TextureCache.__default),c.Component.Core.init.call(this,a,b,d,e,f)},c.Sprite.prototype=Object.create(PIXI.Sprite.prototype),c.Sprite.prototype.constructor=c.Sprite,c.Component.Core.install.call(c.Sprite.prototype,["Angle","Animation","AutoCull","Bounds","BringToTop","Crop","Delta","Destroy","FixedToCamera","Health","InCamera","InputEnabled","InWorld","LifeSpan","LoadTexture","Overlap","PhysicsBody","Reset","ScaleMinMax","Smoothed"]),c.Sprite.prototype.preUpdatePhysics=c.Component.PhysicsBody.preUpdate,c.Sprite.prototype.preUpdateLifeSpan=c.Component.LifeSpan.preUpdate,c.Sprite.prototype.preUpdateInWorld=c.Component.InWorld.preUpdate,c.Sprite.prototype.preUpdateCore=c.Component.Core.preUpdate,c.Sprite.prototype.preUpdate=function(){return this.preUpdatePhysics()&&this.preUpdateLifeSpan()&&this.preUpdateInWorld()?this.preUpdateCore():!1 -},c.Image=function(a,b,d,e,f){b=b||0,d=d||0,e=e||null,f=f||null,this.type=c.IMAGE,PIXI.Sprite.call(this,PIXI.TextureCache.__default),c.Component.Core.init.call(this,a,b,d,e,f)},c.Image.prototype=Object.create(PIXI.Sprite.prototype),c.Image.prototype.constructor=c.Image,c.Component.Core.install.call(c.Image.prototype,["Angle","Animation","AutoCull","Bounds","BringToTop","Crop","Destroy","FixedToCamera","InputEnabled","LifeSpan","LoadTexture","Overlap","Reset","Smoothed"]),c.Image.prototype.preUpdateInWorld=c.Component.InWorld.preUpdate,c.Image.prototype.preUpdateCore=c.Component.Core.preUpdate,c.Image.prototype.preUpdate=function(){return this.preUpdateInWorld()?this.preUpdateCore():!1},c.TileSprite=function(a,b,d,e,f,g,h){b=b||0,d=d||0,e=e||256,f=f||256,g=g||null,h=h||null,this.type=c.TILESPRITE,this.physicsType=c.SPRITE,this._scroll=new c.Point;var i=a.cache.getImage("__default",!0);PIXI.TilingSprite.call(this,new PIXI.Texture(i.base),e,f),c.Component.Core.init.call(this,a,b,d,g,h)},c.TileSprite.prototype=Object.create(PIXI.TilingSprite.prototype),c.TileSprite.prototype.constructor=c.TileSprite,c.Component.Core.install.call(c.TileSprite.prototype,["Angle","Animation","AutoCull","Bounds","BringToTop","Destroy","FixedToCamera","Health","InCamera","InputEnabled","InWorld","LifeSpan","LoadTexture","Overlap","PhysicsBody","Reset","Smoothed"]),c.TileSprite.prototype.preUpdatePhysics=c.Component.PhysicsBody.preUpdate,c.TileSprite.prototype.preUpdateLifeSpan=c.Component.LifeSpan.preUpdate,c.TileSprite.prototype.preUpdateInWorld=c.Component.InWorld.preUpdate,c.TileSprite.prototype.preUpdateCore=c.Component.Core.preUpdate,c.TileSprite.prototype.preUpdate=function(){return 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.preUpdatePhysics()&&this.preUpdateLifeSpan()&&this.preUpdateInWorld()?this.preUpdateCore():!1},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.destroy=function(a){c.Component.Destroy.prototype.destroy.call(this,a),PIXI.TilingSprite.prototype.destroy.call(this)},c.TileSprite.prototype.reset=function(a,b){return c.Component.Reset.prototype.reset.call(this,a,b),this.tilePosition.x=0,this.tilePosition.y=0,this},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.type=c.ROPE,this._scroll=new c.Point,PIXI.Rope.call(this,PIXI.TextureCache.__default,this.points),c.Component.Core.init.call(this,a,b,d,e,f)},c.Rope.prototype=Object.create(PIXI.Rope.prototype),c.Rope.prototype.constructor=c.Rope,c.Component.Core.install.call(c.Rope.prototype,["Angle","Animation","AutoCull","Bounds","BringToTop","Crop","Delta","Destroy","FixedToCamera","InputEnabled","InWorld","LifeSpan","LoadTexture","Overlap","PhysicsBody","Reset","ScaleMinMax","Smoothed"]),c.Rope.prototype.preUpdatePhysics=c.Component.PhysicsBody.preUpdate,c.Rope.prototype.preUpdateLifeSpan=c.Component.LifeSpan.preUpdate,c.Rope.prototype.preUpdateInWorld=c.Component.InWorld.preUpdate,c.Rope.prototype.preUpdateCore=c.Component.Core.preUpdate,c.Rope.prototype.preUpdate=function(){return 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.preUpdatePhysics()&&this.preUpdateLifeSpan()&&this.preUpdateInWorld()?this.preUpdateCore():!1},c.Rope.prototype.update=function(){this._hasUpdateAnimation&&this.updateAnimation.call(this)},c.Rope.prototype.reset=function(a,b){return c.Component.Reset.prototype.reset.call(this,a,b),this.tilePosition.x=0,this.tilePosition.y=0,this},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=Math.abs(a);var f=this.width-a;c.drawImage(e,0,0,a,d,f,0,a,d),c.drawImage(e,a,0,f,d,0,0,f,d)}else{var f=this.width-a;c.drawImage(e,f,0,a,d,0,0,a,d),c.drawImage(e,0,0,f,d,a,0,f,d)}return this.clear(),this.copy(this._swapCanvas)},moveV:function(a){var b=this._swapCanvas,c=b.getContext("2d"),d=this.width,e=this.canvas;if(c.clearRect(0,0,this.width,this.height),0>a){a=Math.abs(a);var f=this.height-a;c.drawImage(e,0,0,d,a,0,f,d,a),c.drawImage(e,0,a,d,f,0,0,d,f)}else{var f=this.height-a;c.drawImage(e,0,f,d,a,0,0,d,a),c.drawImage(e,0,0,d,f,0,a,d,f)}return this.clear(),this.copy(this._swapCanvas)},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){void 0===c&&(c=0),void 0===d&&(d=0),void 0===e&&(e=this.width),void 0===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((void 0===a||null===a)&&(a=!1),(void 0===b||null===b)&&(b=!1),(void 0===d||null===d)&&(d=!1),a||b||d){void 0===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){void 0===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 void 0===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((void 0===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,(void 0===g||null===g)&&(g=a.x),(void 0===h||null===h)&&(h=a.y),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(void 0===b||null===b)&&(b=0),(void 0===d||null===d)&&(d=0),e&&(this._size.x=e),f&&(this._size.y=f),(void 0===g||null===g)&&(g=b),(void 0===h||null===h)&&(h=d),(void 0===i||null===i)&&(i=this._size.x),(void 0===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),void 0===q&&(q=null),void 0===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)},drawGroup:function(a,b,c){return a.total>0&&a.forEachExists(this.copy,this,null,null,null,null,null,null,null,null,null,null,null,null,null,null,b,c),this},shadow:function(a,b,c,d){void 0===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 void 0===d||null===d?this.draw(b).blendSourceAtop():this.draw(b,d.x,d.y,d.width,d.height).blendSourceAtop(),void 0===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 void 0===e&&(e=255),void 0===f&&(f=!1),void 0===g&&(g=b),void 0===h&&(h=c),void 0===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},text:function(a,b,c,d,e,f){void 0===b&&(b=0),void 0===c&&(c=0),void 0===d&&(d="14px Courier"),void 0===e&&(e="rgb(255,255,255)"),void 0===f&&(f=!0);var g=this.context.font;this.context.font=d,f&&(this.context.fillStyle="rgb(0,0,0)",this.context.fillText(a,b+1,c+1)),this.context.fillStyle=e,this.context.fillText(a,b,c),this.context.font=g},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(void 0===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,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,PIXI.Graphics.prototype.lineStyle=function(a,b,c){return this.lineWidth=a||0,this.lineColor=b||0,this.lineAlpha=void 0===c?1:c,this.currentPath&&(this.currentPath.shape.points.length?this.drawShape(new PIXI.Polygon(this.currentPath.shape.points.slice(-2))):(this.currentPath.lineWidth=this.lineWidth,this.currentPath.lineColor=this.lineColor,this.currentPath.lineAlpha=this.lineAlpha)),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||this.moveTo(0,0),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){if(d===e)return this;void 0===f&&(f=!1),!f&&d>=e?e+=2*Math.PI:f&&e>=d&&(d+=2*Math.PI);var g=f?-1*(d-e):e-d,h=40*Math.ceil(Math.abs(g)/(2*Math.PI));if(0===g)return this;var i=a+Math.cos(d)*c,j=b+Math.sin(d)*c;f&&this.filling?this.moveTo(a,b):this.moveTo(i,j);for(var k=this.currentPath.shape.points,l=g/(2*h),m=2*l,n=Math.cos(l),o=Math.sin(l),p=h-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);k.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){(a instanceof c.Polygon||a instanceof PIXI.Polygon)&&(a=a.points);var b=a;if(!Array.isArray(b)){b=new Array(arguments.length);for(var d=0;dp?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._currentBounds=this._bounds}return this._currentBounds},PIXI.Graphics.prototype.containsPoint=function(a){this.worldTransform.applyInverse(a,tempPoint);for(var b=this.graphicsData,c=0;ch?h:a,b=h+j>b?h+j:b,d=d>i?i:d,e=i+k>e?i+k:e;else if(n===PIXI.Graphics.CIRC)h=f.x,i=f.y,j=f.radius+o/2,k=f.radius+o/2,a=a>h-j?h-j:a,b=h+j>b?h+j:b,d=d>i-k?i-k:d,e=i+k>e?i+k:e;else if(n===PIXI.Graphics.ELIP)h=f.x,i=f.y,j=f.width+o/2,k=f.height+o/2,a=a>h-j?h-j:a,b=h+j>b?h+j:b,d=d>i-k?i-k:d,e=i+k>e?i+k:e;else{g=f.points;for(var p=0;ph-o?h-o:a,b=h+o>b?h+o:b,d=d>i-o?i-o:d,e=i+o>e?i+o:e}}else a=0,b=0,d=0,e=0;var q=this.boundsPadding;this._localBounds.x=a-q,this._localBounds.width=b-a+2*q,this._localBounds.y=d-q,this._localBounds.height=e-d+2*q},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,a instanceof c.Polygon&&(a=a.clone(),a.flatten());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},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.GraphicsData=function(a,b,c,d,e,f,g){this.lineWidth=a,this.lineColor=b,this.lineAlpha=c,this._lineTint=b,this.fillColor=d,this.fillAlpha=e,this._fillTint=d,this.fill=f,this.shape=g,this.type=g.type},PIXI.GraphicsData.prototype.constructor=PIXI.GraphicsData,PIXI.GraphicsData.prototype.clone=function(){return new GraphicsData(this.lineWidth,this.lineColor,this.lineAlpha,this.fillColor,this.fillAlpha,this.fill,this.shape)},c.Graphics=function(a,b,d){void 0===b&&(b=0),void 0===d&&(d=0),this.type=c.GRAPHICS,this.physicsType=c.SPRITE,PIXI.Graphics.call(this),c.Component.Core.init.call(this,a,b,d,"",null)},c.Graphics.prototype=Object.create(PIXI.Graphics.prototype),c.Graphics.prototype.constructor=c.Graphics,c.Component.Core.install.call(c.Graphics.prototype,["Angle","AutoCull","Bounds","Destroy","FixedToCamera","InputEnabled","InWorld","LifeSpan","PhysicsBody","Reset"]),c.Graphics.prototype.preUpdatePhysics=c.Component.PhysicsBody.preUpdate,c.Graphics.prototype.preUpdateLifeSpan=c.Component.LifeSpan.preUpdate,c.Graphics.prototype.preUpdateInWorld=c.Component.InWorld.preUpdate,c.Graphics.prototype.preUpdateCore=c.Component.Core.preUpdate,c.Graphics.prototype.preUpdate=function(){return this.preUpdatePhysics()&&this.preUpdateLifeSpan()&&this.preUpdateInWorld()?this.preUpdateCore():!1},c.Graphics.prototype.destroy=function(a){this.clear(),c.Component.Destroy.prototype.destroy.call(this,a)},c.Graphics.prototype.drawTriangle=function(a,b){void 0===b&&(b=!1);var d=new c.Polygon(a);if(b){var e=new c.Point(this.game.camera.x-a[0].x,this.game.camera.y-a[0].y),f=new c.Point(a[1].x-a[0].x,a[1].y-a[0].y),g=new c.Point(a[1].x-a[2].x,a[1].y-a[2].y),h=g.cross(f);e.dot(h)>0&&this.drawPolygon(d)}else this.drawPolygon(d)},c.Graphics.prototype.drawTriangles=function(a,b,d){void 0===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;e0&&(j+=c[k-1]),h=j+l}else for(var k=0;kq&&Math.abs(q)>o&&(q=-o),0!==q){var m=q*(b.length-1);p+=m}this.canvas.height=p*this._res,this.context.scale(this._res,this._res),navigator.isCocoonJS&&this.context.clearRect(0,0,this.canvas.width,this.canvas.height),this.style.backgroundColor&&(this.context.fillStyle=this.style.backgroundColor,this.context.fillRect(0,0,this.canvas.width,this.canvas.height)),this.context.fillStyle=this.style.fill,this.context.font=this.style.font,this.context.strokeStyle=this.style.stroke,this.context.textBaseline="alphabetic",this.context.lineWidth=this.style.strokeThickness,this.context.lineCap="round",this.context.lineJoin="round";var r,s;for(this._charCount=0,g=0;g0&&(s+=q*g),"right"===this.style.align?r+=e-d[g]:"center"===this.style.align&&(r+=(e-d[g])/2),this.autoRound&&(r=Math.round(r),s=Math.round(s)),this.colors.length>0||this.strokeColors.length>0?this.updateLine(b[g],r,s):(this.style.stroke&&this.style.strokeThickness&&(this.updateShadow(this.style.shadowStroke),0===c?this.context.strokeText(b[g],r,s):this.renderTabLine(b[g],r,s,!1)),this.style.fill&&(this.updateShadow(this.style.shadowFill),0===c?this.context.fillText(b[g],r,s):this.renderTabLine(b[g],r,s,!0)));this.updateTexture()},c.Text.prototype.renderTabLine=function(a,b,c,d){var e=a.split(/(?:\t)/),f=this.style.tabs,g=0;if(Array.isArray(f))for(var h=0,i=0;i0&&(h+=f[i-1]),g=b+h,d?this.context.fillText(e[i],g,c):this.context.strokeText(e[i],g,c);else for(var i=0;ie?(g>0&&(b+="\n"),b+=f[g]+" ",e=this.style.wordWrapWidth-h):(e-=i,b+=f[g]+" ")}dd&&(this.style.wordWrapWidth=d)),this.updateTexture(),this},c.Text.prototype.updateTexture=function(){var a=this.texture.baseTexture,b=this.texture.crop,c=this.texture.frame,d=this.canvas.width,e=this.canvas.height;if(a.width=d,a.height=e,b.width=d,b.height=e,c.width=d,c.height=e,this.texture.width=d,this.texture.height=e,this._width=d,this._height=e,this.textBounds){var f=this.textBounds.x,g=this.textBounds.y;"right"===this.style.boundsAlignH?f=this.textBounds.width-this.canvas.width:"center"===this.style.boundsAlignH&&(f=this.textBounds.halfWidth-this.canvas.width/2),"bottom"===this.style.boundsAlignV?g=this.textBounds.height-this.canvas.height:"middle"===this.style.boundsAlignV&&(g=this.textBounds.halfHeight-this.canvas.height/2),this.pivot.x=-f,this.pivot.y=-g}this.renderable=0!==d&&0!==e,this.texture.baseTexture.dirty()},c.Text.prototype._renderWebGL=function(a){this.dirty&&(this.updateText(),this.dirty=!1),PIXI.Sprite.prototype._renderWebGL.call(this,a)},c.Text.prototype._renderCanvas=function(a){this.dirty&&(this.updateText(),this.dirty=!1),PIXI.Sprite.prototype._renderCanvas.call(this,a)},c.Text.prototype.determineFontProperties=function(a){var b=c.Text.fontPropertiesCache[a];if(!b){b={};var d=c.Text.fontPropertiesCanvas,e=c.Text.fontPropertiesContext;e.font=a;var f=Math.ceil(e.measureText("|MÉq").width),g=Math.ceil(e.measureText("|MÉq").width),h=2*g;if(g=1.4*g|0,d.width=f,d.height=h,e.fillStyle="#f00",e.fillRect(0,0,f,h),e.font=a,e.textBaseline="alphabetic",e.fillStyle="#000",e.fillText("|MÉq",0,g),!e.getImageData(0,0,f,h))return b.ascent=g,b.descent=g+6,b.fontSize=b.ascent+b.descent,c.Text.fontPropertiesCache[a]=b,b;var i,j,k=e.getImageData(0,0,f,h).data,l=k.length,m=4*f,n=0,o=!1;for(i=0;g>i;i++){for(j=0;m>j;j+=4)if(255!==k[n+j]){o=!0;break}if(o)break;n+=m}for(b.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}b.descent=i-g,b.descent+=6,b.fontSize=b.ascent+b.descent,c.Text.fontPropertiesCache[a]=b}return b},c.Text.prototype.getBounds=function(a){return this.dirty&&(this.updateText(),this.dirty=!1),PIXI.Sprite.prototype.getBounds.call(this,a)},Object.defineProperty(c.Text.prototype,"text",{get:function(){return this._text},set:function(a){a!==this._text&&(this._text=a.toString()||"",this.dirty=!0,this.parent&&this.updateTransform())}}),Object.defineProperty(c.Text.prototype,"cssFont",{get:function(){return this.componentsToFont(this._fontComponents)},set:function(a){a=a||"bold 20pt Arial",this._fontComponents=this.fontToComponents(a),this.updateFont(this._fontComponents)}}),Object.defineProperty(c.Text.prototype,"font",{get:function(){return this._fontComponents.fontFamily},set:function(a){a=a||"Arial",a=a.trim(),/^(?:inherit|serif|sans-serif|cursive|fantasy|monospace)$/.exec(a)||/['",]/.exec(a)||(a="'"+a+"'"),this._fontComponents.fontFamily=a,this.updateFont(this._fontComponents)}}),Object.defineProperty(c.Text.prototype,"fontSize",{get:function(){var a=this._fontComponents.fontSize;return a&&/(?:^0$|px$)/.exec(a)?parseInt(a,10):a},set:function(a){a=a||"0","number"==typeof a&&(a+="px"),this._fontComponents.fontSize=a,this.updateFont(this._fontComponents)}}),Object.defineProperty(c.Text.prototype,"fontWeight",{get:function(){return this._fontComponents.fontWeight||"normal"},set:function(a){a=a||"normal",this._fontComponents.fontWeight=a,this.updateFont(this._fontComponents)}}),Object.defineProperty(c.Text.prototype,"fontStyle",{get:function(){return this._fontComponents.fontStyle||"normal"},set:function(a){a=a||"normal",this._fontComponents.fontStyle=a,this.updateFont(this._fontComponents)}}),Object.defineProperty(c.Text.prototype,"fontVariant",{get:function(){return this._fontComponents.fontVariant||"normal"},set:function(a){a=a||"normal",this._fontComponents.fontVariant=a,this.updateFont(this._fontComponents)}}),Object.defineProperty(c.Text.prototype,"fill",{get:function(){return this.style.fill},set:function(a){a!==this.style.fill&&(this.style.fill=a,this.dirty=!0)}}),Object.defineProperty(c.Text.prototype,"align",{get:function(){return this.style.align},set:function(a){a!==this.style.align&&(this.style.align=a,this.dirty=!0)}}),Object.defineProperty(c.Text.prototype,"resolution",{get:function(){return this._res},set:function(a){a!==this._res&&(this._res=a,this.dirty=!0)}}),Object.defineProperty(c.Text.prototype,"tabs",{get:function(){return this.style.tabs},set:function(a){a!==this.style.tabs&&(this.style.tabs=a,this.dirty=!0)}}),Object.defineProperty(c.Text.prototype,"boundsAlignH",{get:function(){return this.style.boundsAlignH},set:function(a){a!==this.style.boundsAlignH&&(this.style.boundsAlignH=a,this.dirty=!0)}}),Object.defineProperty(c.Text.prototype,"boundsAlignV",{get:function(){return this.style.boundsAlignV},set:function(a){a!==this.style.boundsAlignV&&(this.style.boundsAlignV=a,this.dirty=!0)}}),Object.defineProperty(c.Text.prototype,"stroke",{get:function(){return this.style.stroke},set:function(a){a!==this.style.stroke&&(this.style.stroke=a,this.dirty=!0)}}),Object.defineProperty(c.Text.prototype,"strokeThickness",{get:function(){return this.style.strokeThickness},set:function(a){a!==this.style.strokeThickness&&(this.style.strokeThickness=a,this.dirty=!0)}}),Object.defineProperty(c.Text.prototype,"wordWrap",{get:function(){return this.style.wordWrap},set:function(a){a!==this.style.wordWrap&&(this.style.wordWrap=a,this.dirty=!0)}}),Object.defineProperty(c.Text.prototype,"wordWrapWidth",{get:function(){return this.style.wordWrapWidth},set:function(a){a!==this.style.wordWrapWidth&&(this.style.wordWrapWidth=a,this.dirty=!0)}}),Object.defineProperty(c.Text.prototype,"lineSpacing",{get:function(){return this._lineSpacing},set:function(a){a!==this._lineSpacing&&(this._lineSpacing=parseFloat(a),this.dirty=!0,this.parent&&this.updateTransform())}}),Object.defineProperty(c.Text.prototype,"shadowOffsetX",{get:function(){return this.style.shadowOffsetX},set:function(a){a!==this.style.shadowOffsetX&&(this.style.shadowOffsetX=a,this.dirty=!0)}}),Object.defineProperty(c.Text.prototype,"shadowOffsetY",{get:function(){return this.style.shadowOffsetY},set:function(a){a!==this.style.shadowOffsetY&&(this.style.shadowOffsetY=a,this.dirty=!0)}}),Object.defineProperty(c.Text.prototype,"shadowColor",{get:function(){return this.style.shadowColor},set:function(a){a!==this.style.shadowColor&&(this.style.shadowColor=a,this.dirty=!0)}}),Object.defineProperty(c.Text.prototype,"shadowBlur",{get:function(){return this.style.shadowBlur},set:function(a){a!==this.style.shadowBlur&&(this.style.shadowBlur=a,this.dirty=!0)}}),Object.defineProperty(c.Text.prototype,"shadowStroke",{get:function(){return this.style.shadowStroke},set:function(a){a!==this.style.shadowStroke&&(this.style.shadowStroke=a,this.dirty=!0)}}),Object.defineProperty(c.Text.prototype,"shadowFill",{get:function(){return this.style.shadowFill},set:function(a){a!==this.style.shadowFill&&(this.style.shadowFill=a,this.dirty=!0)}}),Object.defineProperty(c.Text.prototype,"width",{get:function(){return this.dirty&&(this.updateText(),this.dirty=!1),this.scale.x*this.texture.frame.width},set:function(a){this.scale.x=a/this.texture.frame.width,this._width=a}}),Object.defineProperty(c.Text.prototype,"height",{get:function(){return this.dirty&&(this.updateText(),this.dirty=!1),this.scale.y*this.texture.frame.height},set:function(a){this.scale.y=a/this.texture.frame.height,this._height=a}}),c.Text.fontPropertiesCache={},c.Text.fontPropertiesCanvas=document.createElement("canvas"),c.Text.fontPropertiesContext=c.Text.fontPropertiesCanvas.getContext("2d"),c.BitmapText=function(a,b,d,e,f,g,h){b=b||0,d=d||0,e=e||"",f=f||"",g=g||32,h=h||"left",PIXI.DisplayObjectContainer.call(this),this.type=c.BITMAPTEXT,this.physicsType=c.SPRITE,this.textWidth=0,this.textHeight=0,this.anchor=new c.Point,this._prevAnchor=new c.Point,this._glyphs=[],this._maxWidth=0,this._text=f,this._data=a.cache.getBitmapFont(e),this._font=e,this._fontSize=g,this._align=h,this._tint=16777215,this.updateText(),this.dirty=!1,c.Component.Core.init.call(this,a,b,d,"",null)},c.BitmapText.prototype=Object.create(PIXI.DisplayObjectContainer.prototype),c.BitmapText.prototype.constructor=c.BitmapText,c.Component.Core.install.call(c.BitmapText.prototype,["Angle","AutoCull","Bounds","Destroy","FixedToCamera","InputEnabled","InWorld","LifeSpan","PhysicsBody","Reset"]),c.BitmapText.prototype.preUpdatePhysics=c.Component.PhysicsBody.preUpdate,c.BitmapText.prototype.preUpdateLifeSpan=c.Component.LifeSpan.preUpdate,c.BitmapText.prototype.preUpdateInWorld=c.Component.InWorld.preUpdate,c.BitmapText.prototype.preUpdateCore=c.Component.Core.preUpdate,c.BitmapText.prototype.preUpdate=function(){return this.preUpdatePhysics()&&this.preUpdateLifeSpan()&&this.preUpdateInWorld()?this.preUpdateCore():!1},c.BitmapText.prototype.postUpdate=function(){c.Component.PhysicsBody.postUpdate.call(this),c.Component.FixedToCamera.postUpdate.call(this),this.body&&this.body.type===c.Physics.ARCADE&&(this.textWidth!==this.body.sourceWidth||this.textHeight!==this.body.sourceHeight)&&this.body.setSize(this.textWidth,this.textHeight)},c.BitmapText.prototype.setText=function(a){this.text=a},c.BitmapText.prototype.scanLine=function(a,b,c){for(var d=0,e=0,f=-1,g=null,h=this._maxWidth>0?this._maxWidth:null,i=[],j=0;j=h&&f>-1)return{width:e,text:c.substr(0,j-(j-f)),end:k,chars:i};e+=m.xAdvance*b,i.push(d+m.xOffset*b),d+=m.xAdvance*b,g=l}}return{width:e,text:c,end:k,chars:i}},c.BitmapText.prototype.updateText=function(){var a=this._data.font;if(a){var b=this.text,c=this._fontSize/a.size,d=[],e=0;this.textWidth=0;do{var f=this.scanLine(a,c,b);f.y=e,d.push(f),f.width>this.textWidth&&(this.textWidth=f.width),e+=a.lineHeight*c,b=b.substr(f.text.length+1)}while(f.end===!1);this.textHeight=e;for(var g=0,h=0,i=this.textWidth*this.anchor.x,j=this.textHeight*this.anchor.y,k=0;k0&&(this._fontSize=a,this.updateText())}}),Object.defineProperty(c.BitmapText.prototype,"text",{get:function(){return this._text},set:function(a){a!==this._text&&(this._text=a.toString()||"",this.updateText())}}),Object.defineProperty(c.BitmapText.prototype,"maxWidth",{get:function(){return this._maxWidth},set:function(a){a!==this._maxWidth&&(this._maxWidth=a,this.updateText())}}),c.RetroFont=function(a,b,d,e,f,g,h,i,j,k){if(!a.cache.checkImageKey(b))return!1;(void 0===g||null===g)&&(g=a.cache.getImage(b).width/d),this.characterWidth=d,this.characterHeight=e,this.characterSpacingX=h||0,this.characterSpacingY=i||0,this.characterPerRow=g,this.offsetX=j||0,this.offsetY=k||0,this.align="left",this.multiLine=!1,this.autoUpperCase=!0,this.customSpacingX=0,this.customSpacingY=0,this.fixedWidth=0,this.fontSet=a.cache.getImage(b),this._text="",this.grabData=[],this.frameData=new c.FrameData;for(var l=this.offsetX,m=this.offsetY,n=0,o=0;o?@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){void 0===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 this.fixedWidth>0?this.resize(this.fixedWidth,this.characterHeight,!0):this.resize(this._text.length*(this.characterWidth+this.customSpacingX),this.characterHeight,!0),a=0,this.align===c.RetroFont.ALIGN_RIGHT?a=this.width-this._text.length*(this.characterWidth+this.customSpacingX):this.align===c.RetroFont.ALIGN_CENTER&&(a=this.width/2-this._text.length*(this.characterWidth+this.customSpacingX)/2,a+=this.customSpacingX/2),0>a&&(a=0),this.pasteLine(this._text,a,0,this.customSpacingX);this.requiresReTint=!0},c.RetroFont.prototype.pasteLine=function(a,b,c,d){for(var e=0;e=0&&(this.stamp.frame=this.grabData[a.charCodeAt(e)],this.renderXY(this.stamp,b,c,!1),b+=this.characterWidth+d,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;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.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.type=c.ROPE,this._scroll=new c.Point,PIXI.Rope.call(this,PIXI.TextureCache.__default,this.points),c.Component.Core.init.call(this,a,b,d,e,f)},c.Rope.prototype=Object.create(PIXI.Rope.prototype),c.Rope.prototype.constructor=c.Rope,c.Component.Core.install.call(c.Rope.prototype,["Angle","Animation","AutoCull","Bounds","BringToTop","Crop","Delta","Destroy","FixedToCamera","InputEnabled","InWorld","LifeSpan","LoadTexture","Overlap","PhysicsBody","Reset","ScaleMinMax","Smoothed"]),c.Rope.prototype.preUpdatePhysics=c.Component.PhysicsBody.preUpdate,c.Rope.prototype.preUpdateLifeSpan=c.Component.LifeSpan.preUpdate,c.Rope.prototype.preUpdateInWorld=c.Component.InWorld.preUpdate,c.Rope.prototype.preUpdateCore=c.Component.Core.preUpdate,c.Rope.prototype.preUpdate=function(){return 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.preUpdatePhysics()&&this.preUpdateLifeSpan()&&this.preUpdateInWorld()?this.preUpdateCore():!1 -},c.Rope.prototype.update=function(){this._hasUpdateAnimation&&this.updateAnimation.call(this)},c.Rope.prototype.reset=function(a,b){return c.Component.Reset.prototype.reset.call(this,a,b),this.tilePosition.x=0,this.tilePosition.y=0,this},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;k=1)&&(l.touch=!0),(window.navigator.msPointerEnabled||window.navigator.pointerEnabled)&&(l.mspointer=!0),l.cocoonJS||("onwheel"in window||l.ie&&"WheelEvent"in window?l.wheelEvent="wheel":"onmousewheel"in window?l.wheelEvent="mousewheel":l.firefox&&"MouseScrollEvent"in window&&(l.wheelEvent="DOMMouseScroll"))}function d(){for(var a=["requestFullscreen","requestFullScreen","webkitRequestFullscreen","webkitRequestFullScreen","msRequestFullscreen","msRequestFullScreen","mozRequestFullScreen","mozRequestFullscreen"],b=document.createElement("div"),c=0;c0&&"none"!==a}var l=this;a(),g(),f(),e(),k(),h(),b(),d(),c()},c.Device.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},c.Device.canPlayVideo=function(a){return"webm"===a&&(this.webmVideo||this.vp9Video)?!0:"mp4"===a&&(this.mp4Video||this.h264Video)?!0:"ogg"===a&&this.oggVideo?!0:"mpeg"===a&&this.hlsVideo?!0:!1},c.Device.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.isAndroidStockBrowser=function(){var a=window.navigator.userAgent.match(/Android.*AppleWebKit\/([\d.]+)/);return a&&a[1]<537},c.DOM={getOffset:function(a,b){b=b||new c.Point;var d=a.getBoundingClientRect(),e=c.DOM.scrollY,f=c.DOM.scrollX,g=document.documentElement.clientTop,h=document.documentElement.clientLeft;return b.x=d.left+f-h,b.y=d.top+e-g,b},getBounds:function(a,b){return void 0===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.visualBounds:1===a.nodeType?this.getBounds(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},inLayoutViewport:function(a,b){var c=this.getBounds(a,b);return!!c&&c.bottom>=0&&c.right>=0&&c.top<=this.layoutBounds.width&&c.left<=this.layoutBounds.height},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.visualBounds.height>this.visualBounds.width?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.visualBounds.height>this.visualBounds.width?d:e},visualBounds:new c.Rectangle,layoutBounds:new c.Rectangle,documentBounds:new c.Rectangle},c.Device.whenReady(function(a){var b=window&&"pageXOffset"in window?function(){return window.pageXOffset}:function(){return document.documentElement.scrollLeft},d=window&&"pageYOffset"in window?function(){return window.pageYOffset}:function(){return document.documentElement.scrollTop};Object.defineProperty(c.DOM,"scrollX",{get:b}),Object.defineProperty(c.DOM,"scrollY",{get:d}),Object.defineProperty(c.DOM.visualBounds,"x",{get:b}),Object.defineProperty(c.DOM.visualBounds,"y",{get:d}),Object.defineProperty(c.DOM.layoutBounds,"x",{value:0}),Object.defineProperty(c.DOM.layoutBounds,"y",{value:0});var e=a.desktop&&document.documentElement.clientWidth<=window.innerWidth&&document.documentElement.clientHeight<=window.innerHeight;if(e){var f=function(){return Math.max(window.innerWidth,document.documentElement.clientWidth)},g=function(){return Math.max(window.innerHeight,document.documentElement.clientHeight)};Object.defineProperty(c.DOM.visualBounds,"width",{get:f}),Object.defineProperty(c.DOM.visualBounds,"height",{get:g}),Object.defineProperty(c.DOM.layoutBounds,"width",{get:f}),Object.defineProperty(c.DOM.layoutBounds,"height",{get:g})}else Object.defineProperty(c.DOM.visualBounds,"width",{get:function(){return window.innerWidth}}),Object.defineProperty(c.DOM.visualBounds,"height",{get:function(){return window.innerHeight}}),Object.defineProperty(c.DOM.layoutBounds,"width",{get:function(){var a=document.documentElement.clientWidth,b=window.innerWidth;return b>a?b:a}}),Object.defineProperty(c.DOM.layoutBounds,"height",{get:function(){var a=document.documentElement.clientHeight,b=window.innerHeight;return b>a?b:a}});Object.defineProperty(c.DOM.documentBounds,"x",{value:0}),Object.defineProperty(c.DOM.documentBounds,"y",{value:0}),Object.defineProperty(c.DOM.documentBounds,"width",{get:function(){var a=document.documentElement;return Math.max(a.clientWidth,a.offsetWidth,a.scrollWidth)}}),Object.defineProperty(c.DOM.documentBounds,"height",{get:function(){var a=document.documentElement;return Math.max(a.clientHeight,a.offsetHeight,a.scrollHeight)}})},null,!0),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 void 0===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){var c=["i","mozI","oI","webkitI","msI"];for(var d in c){var e=c[d]+"mageSmoothingEnabled";if(e in a)return a[e]=b,a}return 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.RequestAnimationFrame=function(a,b){void 0===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 void 0===c&&(c=1e-4),a>b-c},fuzzyCeil:function(a,b){return void 0===b&&(b=1e-4),Math.ceil(a-b)},fuzzyFloor:function(a,b){return void 0===b&&(b=1e-4),Math.floor(a+b)},average:function(){for(var a=0,b=0;b=0?a:a+2*Math.PI},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},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)},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)},roundAwayFromZero:function(a){return a>0?Math.ceil(a):Math.floor(a)},sinCosGenerator:function(a,b,c,d){void 0===b&&(b=1),void 0===c&&(c=1),void 0===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}},distance:function(a,b,c,d){var e=a-c,f=b-d;return Math.sqrt(e*e+f*f)},distanceSq:function(a,b,c,d){var e=a-c,f=b-d;return e*e+f*f},distancePow:function(a,b,c,d,e){return void 0===e&&(e=2),Math.sqrt(Math.pow(c-a,e)+Math.pow(d-b,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 void 0===c&&(c=0),a>b||c>b?1:c>a||c>a?0:(a-c)/b}};var j=Math.PI/180,k=180/Math.PI;c.Math.degToRad=function(a){return a*j},c.Math.radToDeg=function(a){return a*k},c.RandomDataGenerator=function(a){void 0===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){if(this.s0=this.hash(" "),this.s1=this.hash(this.s0),this.s2=this.hash(this.s1),this.c=1,a)for(var b=0;b>>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)+.5)]},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){void 0===c&&(c=!1),(void 0===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){void 0===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.easeMap={Power0:c.Easing.Power0,Power1:c.Easing.Power1,Power2:c.Easing.Power2,Power3:c.Easing.Power3,Power4:c.Easing.Power4,Linear:c.Easing.Linear.None,Quad:c.Easing.Quadratic.Out,Cubic:c.Easing.Cubic.Out,Quart:c.Easing.Quartic.Out,Quint:c.Easing.Quintic.Out,Sine:c.Easing.Sinusoidal.Out,Expo:c.Easing.Exponential.Out,Circ:c.Easing.Circular.Out,Elastic:c.Easing.Elastic.Out,Back:c.Easing.Back.Out,Bounce:c.Easing.Bounce.Out,"Quad.easeIn":c.Easing.Quadratic.In,"Cubic.easeIn":c.Easing.Cubic.In,"Quart.easeIn":c.Easing.Quartic.In,"Quint.easeIn":c.Easing.Quintic.In,"Sine.easeIn":c.Easing.Sinusoidal.In,"Expo.easeIn":c.Easing.Exponential.In,"Circ.easeIn":c.Easing.Circular.In,"Elastic.easeIn":c.Easing.Elastic.In,"Back.easeIn":c.Easing.Back.In,"Bounce.easeIn":c.Easing.Bounce.In,"Quad.easeOut":c.Easing.Quadratic.Out,"Cubic.easeOut":c.Easing.Cubic.Out,"Quart.easeOut":c.Easing.Quartic.Out,"Quint.easeOut":c.Easing.Quintic.Out,"Sine.easeOut":c.Easing.Sinusoidal.Out,"Expo.easeOut":c.Easing.Exponential.Out,"Circ.easeOut":c.Easing.Circular.Out,"Elastic.easeOut":c.Easing.Elastic.Out,"Back.easeOut":c.Easing.Back.Out,"Bounce.easeOut":c.Easing.Bounce.Out,"Quad.easeInOut":c.Easing.Quadratic.InOut,"Cubic.easeInOut":c.Easing.Cubic.InOut,"Quart.easeInOut":c.Easing.Quartic.InOut,"Quint.easeInOut":c.Easing.Quintic.InOut,"Sine.easeInOut":c.Easing.Sinusoidal.InOut,"Expo.easeInOut":c.Easing.Exponential.InOut,"Circ.easeInOut":c.Easing.Circular.InOut,"Elastic.easeInOut":c.Easing.Elastic.InOut,"Back.easeInOut":c.Easing.Back.InOut,"Bounce.easeInOut":c.Easing.Bounce.InOut},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;ad;d++)this.removeFrom(a[d]);else if(a.type===c.GROUP&&b)for(var d=0,e=a.children.length;e>d;d++)this.removeFrom(a.children[d]);else{for(d=0,e=this._tweens.length;e>d;d++)a===this._tweens[d].target&&this.remove(this._tweens[d]);for(d=0,e=this._add.length;e>d;d++)a===this._add[d].target&&this.remove(this._add[d])}},add:function(a){a._manager=this,this._add.push(a) -},create:function(a){return new c.Tween(a,this.game,this)},remove:function(a){var b=this._tweens.indexOf(a);-1!==b?this._tweens[b].pendingDelete=!0:(b=this._add.indexOf(a),-1!==b&&(this._add[b].pendingDelete=!0))},update:function(){var a=this._add.length,b=this._tweens.length;if(0===b&&0===a)return!1;for(var c=0;b>c;)this._tweens[c].update(this.game.time.time)?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.target===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.game=b,this.target=a,this.manager=d,this.timeline=[],this.reverse=!1,this.timeScale=1,this.repeatCounter=0,this.pendingDelete=!1,this.onStart=new c.Signal,this.onLoop=new c.Signal,this.onRepeat=new c.Signal,this.onChildComplete=new c.Signal,this.onComplete=new c.Signal,this.isRunning=!1,this.current=0,this.properties={},this.chainedTween=null,this.isPaused=!1,this._onUpdateCallback=null,this._onUpdateCallbackContext=null,this._pausedTime=0,this._codePaused=!1,this._hasStarted=!1},c.Tween.prototype={to:function(a,b,d,e,f,g,h){return(void 0===b||0>=b)&&(b=1e3),(void 0===d||null===d)&&(d=c.Easing.Default),void 0===e&&(e=!1),void 0===f&&(f=0),void 0===g&&(g=0),void 0===h&&(h=!1),"string"==typeof d&&this.manager.easeMap[d]&&(d=this.manager.easeMap[d]),this.isRunning?(console.warn("Phaser.Tween.to cannot be called after Tween.start"),this):(this.timeline.push(new c.TweenData(this).to(a,b,d,f,g,h)),e&&this.start(),this)},from:function(a,b,d,e,f,g,h){return void 0===b&&(b=1e3),(void 0===d||null===d)&&(d=c.Easing.Default),void 0===e&&(e=!1),void 0===f&&(f=0),void 0===g&&(g=0),void 0===h&&(h=!1),"string"==typeof d&&this.manager.easeMap[d]&&(d=this.manager.easeMap[d]),this.isRunning?(console.warn("Phaser.Tween.from cannot be called after Tween.start"),this):(this.timeline.push(new c.TweenData(this).from(a,b,d,f,g,h)),e&&this.start(),this)},start:function(a){if(void 0===a&&(a=0),null===this.game||null===this.target||0===this.timeline.length||this.isRunning)return this;for(var b=0;ba||a>this.timeline.length-1)&&(a=0),this.current=a,this.timeline[this.current].start(),this},stop:function(a){return void 0===a&&(a=!1),this.isRunning=!1,this._onUpdateCallback=null,this._onUpdateCallbackContext=null,a&&(this.onComplete.dispatch(this.target,this),this.chainedTween&&this.chainedTween.start()),this.manager.remove(this),this},updateTweenData:function(a,b,c){if(0===this.timeline.length)return this;if(void 0===c&&(c=0),-1===c)for(var d=0;d0?arguments[a-1].chainedTween=arguments[a]:this.chainedTween=arguments[a];return this},loop:function(a){return void 0===a&&(a=!0),a?this.repeatAll(-1):this.repeatCounter=0,this},onUpdateCallback:function(a,b){return this._onUpdateCallback=a,this._onUpdateCallbackContext=b,this},pause:function(){this.isPaused=!0,this._codePaused=!0,this._pausedTime=this.game.time.time},_pause:function(){this._codePaused||(this.isPaused=!0,this._pausedTime=this.game.time.time)},resume:function(){if(this.isPaused){this.isPaused=!1,this._codePaused=!1;for(var a=0;a0?(this.repeatCounter--,this.timeline[this.current].start(),this.onRepeat.dispatch(this.target,this),!0):(this.isRunning=!1,this.onComplete.dispatch(this.target,this),this.chainedTween&&this.chainedTween.start(),!1):(this.onChildComplete.dispatch(this.target,this),this.timeline[this.current].start(),!0)}},generateData:function(a,b){if(null===this.game||null===this.target)return null;void 0===a&&(a=60),void 0===b&&(b=[]);for(var c=0;c0?!1:!0,this.isFrom)for(var a in this.vStartCache)this.vStart[a]=this.vEndCache[a],this.vEnd[a]=this.vStartCache[a],this.parent.target[a]=this.vStart[a];return this.value=0,this.yoyoCounter=0,this},loadValues:function(){for(var a in this.parent.properties){if(this.vStart[a]=this.parent.properties[a],Array.isArray(this.vEnd[a])){if(0===this.vEnd[a].length)continue;0===this.percent&&(this.vEnd[a]=[this.vStart[a]].concat(this.vEnd[a]))}"undefined"!=typeof this.vEnd[a]?("string"==typeof this.vEnd[a]&&(this.vEnd[a]=this.vStart[a]+parseFloat(this.vEnd[a],10)),this.parent.properties[a]=this.vEnd[a]):this.vEnd[a]=this.vStart[a],this.vStartCache[a]=this.vStart[a],this.vEndCache[a]=this.vEnd[a]}return this},update:function(a){if(this.isRunning){if(a=this.startTime))return c.TweenData.PENDING;this.isRunning=!0}this.parent.reverse?(this.dt-=this.game.time.elapsedMS*this.parent.timeScale,this.dt=Math.max(this.dt,0)):(this.dt+=this.game.time.elapsedMS*this.parent.timeScale,this.dt=Math.min(this.dt,this.duration)),this.percent=this.dt/this.duration,this.value=this.easingFunction(this.percent);for(var b in this.vEnd){var d=this.vStart[b],e=this.vEnd[b];this.parent.target[b]=Array.isArray(e)?this.interpolationFunction.call(this.interpolationContext,e,this.value):d+(e-d)*this.value}return!this.parent.reverse&&1===this.percent||this.parent.reverse&&0===this.percent?this.repeat():c.TweenData.RUNNING},generateData:function(a){this.dt=this.parent.reverse?this.duration:0;var b=[],c=!1,d=1/a*1e3;do{this.parent.reverse?(this.dt-=d,this.dt=Math.max(this.dt,0)):(this.dt+=d,this.dt=Math.min(this.dt,this.duration)),this.percent=this.dt/this.duration,this.value=this.easingFunction(this.percent);var e={};for(var f in this.vEnd){var g=this.vStart[f],h=this.vEnd[f];e[f]=Array.isArray(h)?this.interpolationFunction(h,this.value):g+(h-g)*this.value}b.push(e),(!this.parent.reverse&&1===this.percent||this.parent.reverse&&0===this.percent)&&(c=!0)}while(!c);if(this.yoyo){var i=b.slice();i.reverse(),b=b.concat(i)}return b},repeat:function(){if(this.yoyo){if(this.inReverse&&0===this.repeatCounter)return c.TweenData.COMPLETE;this.inReverse=!this.inReverse}else if(0===this.repeatCounter)return c.TweenData.COMPLETE;if(this.inReverse)for(var a in this.vStartCache)this.vStart[a]=this.vEndCache[a],this.vEnd[a]=this.vStartCache[a];else{for(var a in this.vStartCache)this.vStart[a]=this.vStartCache[a],this.vEnd[a]=this.vEndCache[a];this.repeatCounter>0&&this.repeatCounter--}return this.startTime=this.game.time.time,this.yoyo&&this.inReverse?this.startTime+=this.yoyoDelay:this.inReverse||(this.startTime+=this.repeatDelay),this.dt=this.parent.reverse?this.duration:0,c.TweenData.LOOPED}},c.TweenData.prototype.constructor=c.TweenData,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 0===a?0:1===a?1:1-Math.cos(a*Math.PI/2)},Out:function(a){return 0===a?0:1===a?1:Math.sin(a*Math.PI/2)},InOut:function(a){return 0===a?0:1===a?1:.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.Easing.Power0=c.Easing.Linear.None,c.Easing.Power1=c.Easing.Quadratic.Out,c.Easing.Power2=c.Easing.Cubic.Out,c.Easing.Power3=c.Easing.Quartic.Out,c.Easing.Power4=c.Easing.Quintic.Out,c.Time=function(a){this.game=a,this.time=0,this.prevTime=0,this.now=0,this.elapsed=0,this.elapsedMS=0,this.physicsElapsed=0,this.physicsElapsedMS=0,this.desiredFps=60,this.suggestedFps=null,this.slowMotion=1,this.advancedTiming=!1,this.frames=0,this.fps=0,this.fpsMin=1e3,this.fpsMax=0,this.msMin=1e3,this.msMax=0,this.pauseDuration=0,this.timeToCall=0,this.timeExpected=0,this.events=new c.Timer(this.game,!1),this._frameCount=0,this._elapsedAccumulator=0,this._started=0,this._timeLastSecond=0,this._pauseStarted=0,this._justResumed=!1,this._timers=[]},c.Time.prototype={boot:function(){this._started=Date.now(),this.time=Date.now(),this.events.start()},add:function(a){return this._timers.push(a),a},create:function(a){void 0===a&&(a=!0);var b=new c.Timer(this.game,a);return this._timers.push(b),b},removeAll:function(){for(var a=0;aa;)this._timers[a].update(this.time)?a++:(this._timers.splice(a,1),b--)},updateAdvancedTiming:function(){this._frameCount++,this._elapsedAccumulator+=this.elapsed,this._frameCount>=2*this.desiredFps&&(this.suggestedFps=5*Math.floor(200/(this._elapsedAccumulator/this._frameCount)),this._frameCount=0,this._elapsedAccumulator=0),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)},gamePaused:function(){this._pauseStarted=Date.now(),this.events.pause();for(var a=this._timers.length;a--;)this._timers[a]._pause()},gameResumed:function(){this.time=Date.now(),this.pauseDuration=this.time-this._pauseStarted,this.events.resume();for(var a=this._timers.length;a--;)this._timers[a]._resume()},totalElapsedSeconds:function(){return.001*(this.time-this._started)},elapsedSince:function(a){return this.time-a},elapsedSecondsSince:function(a){return.001*(this.time-a)},reset:function(){this._started=this.time,this.removeAll()}},c.Time.prototype.constructor=c.Time,c.Timer=function(a,b){void 0===b&&(b=!0),this.game=a,this.running=!1,this.autoDestroy=b,this.expired=!1,this.elapsed=0,this.events=[],this.onComplete=new c.Signal,this.nextTick=0,this.timeCap=1e3,this.paused=!1,this._codePaused=!1,this._started=0,this._pauseStarted=0,this._pauseTotal=0,this._now=Date.now(),this._len=0,this._marked=0,this._i=0,this._diff=0,this._newTick=0},c.Timer.MINUTE=6e4,c.Timer.SECOND=1e3,c.Timer.HALF=500,c.Timer.QUARTER=250,c.Timer.prototype={create:function(a,b,d,e,f,g){a=Math.round(a);var h=a;h+=0===this._now?this.game.time.time:this._now;var i=new c.TimerEvent(this,a,h,d,b,e,f,g);return this.events.push(i),this.order(),this.expired=!1,i},add:function(a,b,c){return this.create(a,!1,0,b,c,Array.prototype.splice.call(arguments,3))},repeat:function(a,b,c,d){return this.create(a,!1,b,c,d,Array.prototype.splice.call(arguments,4))},loop:function(a,b,c){return this.create(a,!0,0,b,c,Array.prototype.splice.call(arguments,3))},start:function(a){if(!this.running){this._started=this.game.time.time+(a||0),this.running=!0;for(var b=0;b0&&(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.events[this._i].pendingDelete;)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},destroy:function(){this.onComplete.removeAll(),this.running=!1,this.events=[],this._len=0,this._i=0}},Object.defineProperty(c.Timer.prototype,"next",{get:function(){return this.nextTick}}),Object.defineProperty(c.Timer.prototype,"duration",{get:function(){return this.running&&this.nextTick>this._now?this.nextTick-this._now:0}}),Object.defineProperty(c.Timer.prototype,"length",{get:function(){return this.events.length}}),Object.defineProperty(c.Timer.prototype,"ms",{get:function(){return this.running?this._now-this._started-this._pauseTotal:0}}),Object.defineProperty(c.Timer.prototype,"seconds",{get:function(){return this.running?.001*this.ms:0}}),c.Timer.prototype.constructor=c.Timer,c.TimerEvent=function(a,b,c,d,e,f,g,h){this.timer=a,this.delay=b,this.tick=c,this.repeatCount=d-1,this.loop=e,this.callback=f,this.callbackContext=g,this.args=h,this.pendingDelete=!1},c.TimerEvent.prototype.constructor=c.TimerEvent,c.AnimationManager=function(a){this.sprite=a,this.game=a.game,this.currentFrame=null,this.currentAnim=null,this.updateIfVisible=!0,this.isLoaded=!1,this._frameData=null,this._anims={},this._outputFrames=[]},c.AnimationManager.prototype={loadFrameData:function(a,b){if(void 0===a)return!1;if(this.isLoaded)for(var c in this._anims)this._anims[c].updateFrameData(a);return this._frameData=a,void 0===b||null===b?this.frame=0:"string"==typeof b?this.frameName=b:this.frame=b,this.isLoaded=!0,!0},copyFrameData:function(a,b){if(this._frameData=a.clone(),this.isLoaded)for(var c in this._anims)this._anims[c].updateFrameData(this._frameData);return void 0===b||null===b?this.frame=0:"string"==typeof b?this.frameName=b:this.frame=b,this.isLoaded=!0,!0},add:function(a,b,d,e,f){return b=b||[],d=d||60,void 0===e&&(e=!1),void 0===f&&(f=b&&"number"==typeof b[0]?!0:!1),this._outputFrames=[],this._frameData.getFrameIndexes(b,f,this._outputFrames),this._anims[a]=new c.Animation(this.game,this.sprite,a,this._frameData,this._outputFrames,d,e),this.currentAnim=this._anims[a],this.sprite.tilingTexture&&(this.sprite.refreshTexture=!0),this._anims[a]},validateFrames:function(a,b){void 0===b&&(b=!0);for(var c=0;cthis._frameData.total)return!1}else if(this._frameData.checkFrameName(a[c])===!1)return!1;return!0},play:function(a,b,c,d){return this._anims[a]?this.currentAnim===this._anims[a]?this.currentAnim.isPlaying===!1?(this.currentAnim.paused=!1,this.currentAnim.play(b,c,d)):this.currentAnim:(this.currentAnim&&this.currentAnim.isPlaying&&this.currentAnim.stop(),this.currentAnim=this._anims[a],this.currentAnim.paused=!1,this.currentFrame=this.currentAnim.currentFrame,this.currentAnim.play(b,c,d)):void 0},stop:function(a,b){void 0===b&&(b=!1),"string"==typeof a?this._anims[a]&&(this.currentAnim=this._anims[a],this.currentAnim.stop(b)):this.currentAnim&&this.currentAnim.stop(b)},update:function(){return this.updateIfVisible&&!this.sprite.visible?!1:this.currentAnim&&this.currentAnim.update()?(this.currentFrame=this.currentAnim.currentFrame,!0):!1},next:function(a){this.currentAnim&&(this.currentAnim.next(a),this.currentFrame=this.currentAnim.currentFrame)},previous:function(a){this.currentAnim&&(this.currentAnim.previous(a),this.currentFrame=this.currentAnim.currentFrame)},getAnimation:function(a){return"string"==typeof a&&this._anims[a]?this._anims[a]:null},refreshFrame:function(){this.sprite.setTexture(PIXI.TextureCache[this.currentFrame.uuid])},destroy:function(){var a=null;for(var a in this._anims)this._anims.hasOwnProperty(a)&&this._anims[a].destroy();this._anims={},this._outputFrames=[],this._frameData=null,this.currentAnim=null,this.currentFrame=null,this.sprite=null,this.game=null}},c.AnimationManager.prototype.constructor=c.AnimationManager,Object.defineProperty(c.AnimationManager.prototype,"frameData",{get:function(){return this._frameData}}),Object.defineProperty(c.AnimationManager.prototype,"frameTotal",{get:function(){return this._frameData.total}}),Object.defineProperty(c.AnimationManager.prototype,"paused",{get:function(){return this.currentAnim.isPaused},set:function(a){this.currentAnim.paused=a}}),Object.defineProperty(c.AnimationManager.prototype,"name",{get:function(){return this.currentAnim?this.currentAnim.name:void 0}}),Object.defineProperty(c.AnimationManager.prototype,"frame",{get:function(){return this.currentFrame?this.currentFrame.index:void 0},set:function(a){"number"==typeof a&&this._frameData&&null!==this._frameData.getFrame(a)&&(this.currentFrame=this._frameData.getFrame(a),this.currentFrame&&this.sprite.setFrame(this.currentFrame))}}),Object.defineProperty(c.AnimationManager.prototype,"frameName",{get:function(){return this.currentFrame?this.currentFrame.name:void 0},set:function(a){"string"==typeof a&&this._frameData&&null!==this._frameData.getFrameByName(a)?(this.currentFrame=this._frameData.getFrameByName(a),this.currentFrame&&(this._frameIndex=this.currentFrame.index,this.sprite.setFrame(this.currentFrame))):console.warn("Cannot set frameName: "+a)}}),c.Animation=function(a,b,d,e,f,g,h){void 0===h&&(h=!1),this.game=a,this._parent=b,this._frameData=e,this.name=d,this._frames=[],this._frames=this._frames.concat(f),this.delay=1e3/g,this.loop=h,this.loopCount=0,this.killOnComplete=!1,this.isFinished=!1,this.isPlaying=!1,this.isPaused=!1,this._pauseStartTime=0,this._frameIndex=0,this._frameDiff=0,this._frameSkip=1,this.currentFrame=this._frameData.getFrame(this._frames[this._frameIndex]),this.onStart=new c.Signal,this.onUpdate=null,this.onComplete=new c.Signal,this.onLoop=new c.Signal,this.game.onPause.add(this.onPause,this),this.game.onResume.add(this.onResume,this)},c.Animation.prototype={play:function(a,b,c){return"number"==typeof a&&(this.delay=1e3/a),"boolean"==typeof b&&(this.loop=b),"undefined"!=typeof c&&(this.killOnComplete=c),this.isPlaying=!0,this.isFinished=!1,this.paused=!1,this.loopCount=0,this._timeLastFrame=this.game.time.time,this._timeNextFrame=this.game.time.time+this.delay,this._frameIndex=0,this.updateCurrentFrame(!1,!0),this._parent.events.onAnimationStart$dispatch(this._parent,this),this.onStart.dispatch(this._parent,this),this._parent.animations.currentAnim=this,this._parent.animations.currentFrame=this.currentFrame,this},restart:function(){this.isPlaying=!0,this.isFinished=!1,this.paused=!1,this.loopCount=0,this._timeLastFrame=this.game.time.time,this._timeNextFrame=this.game.time.time+this.delay,this._frameIndex=0,this.currentFrame=this._frameData.getFrame(this._frames[this._frameIndex]),this._parent.setFrame(this.currentFrame),this._parent.animations.currentAnim=this,this._parent.animations.currentFrame=this.currentFrame,this.onStart.dispatch(this._parent,this)},setFrame:function(a,b){var c;if(void 0===b&&(b=!1),"string"==typeof a)for(var d=0;d=this._timeNextFrame?(this._frameSkip=1,this._frameDiff=this.game.time.time-this._timeNextFrame,this._timeLastFrame=this.game.time.time,this._frameDiff>this.delay&&(this._frameSkip=Math.floor(this._frameDiff/this.delay),this._frameDiff-=this._frameSkip*this.delay),this._timeNextFrame=this.game.time.time+(this.delay-this._frameDiff),this._frameIndex+=this._frameSkip,this._frameIndex>=this._frames.length?this.loop?(this._frameIndex%=this._frames.length,this.currentFrame=this._frameData.getFrame(this._frames[this._frameIndex]),this.currentFrame&&this._parent.setFrame(this.currentFrame),this.loopCount++,this._parent.events.onAnimationLoop$dispatch(this._parent,this),this.onLoop.dispatch(this._parent,this),this.onUpdate?(this.onUpdate.dispatch(this,this.currentFrame),!!this._frameData):!0):(this.complete(),!1):this.updateCurrentFrame(!0)):!1},updateCurrentFrame:function(a,b){if(void 0===b&&(b=!1),!this._frameData)return!1;var c=this.currentFrame.index;return this.currentFrame=this._frameData.getFrame(this._frames[this._frameIndex]),this.currentFrame&&(b||!b&&c!==this.currentFrame.index)&&this._parent.setFrame(this.currentFrame),this.onUpdate&&a?(this.onUpdate.dispatch(this,this.currentFrame),!!this._frameData):!0},next:function(a){void 0===a&&(a=1);var b=this._frameIndex+a;b>=this._frames.length&&(this.loop?b%=this._frames.length:b=this._frames.length-1),b!==this._frameIndex&&(this._frameIndex=b,this.updateCurrentFrame(!0))},previous:function(a){void 0===a&&(a=1);var b=this._frameIndex-a;0>b&&(this.loop?b=this._frames.length+b:b++),b!==this._frameIndex&&(this._frameIndex=b,this.updateCurrentFrame(!0))},updateFrameData:function(a){this._frameData=a,this.currentFrame=this._frameData?this._frameData.getFrame(this._frames[this._frameIndex%this._frames.length]):null},destroy:function(){this._frameData&&(this.game.onPause.remove(this.onPause,this),this.game.onResume.remove(this.onResume,this),this.game=null,this._parent=null,this._frames=null,this._frameData=null,this.currentFrame=null,this.isPlaying=!1,this.onStart.dispose(),this.onLoop.dispose(),this.onComplete.dispose(),this.onUpdate&&this.onUpdate.dispose())},complete:function(){this._frameIndex=this._frames.length-1,this.currentFrame=this._frameData.getFrame(this._frames[this._frameIndex]),this.isPlaying=!1,this.isFinished=!0,this.paused=!1,this._parent.events.onAnimationComplete$dispatch(this._parent,this),this.onComplete.dispatch(this._parent,this),this.killOnComplete&&this._parent.kill()}},c.Animation.prototype.constructor=c.Animation,Object.defineProperty(c.Animation.prototype,"paused",{get:function(){return this.isPaused},set:function(a){this.isPaused=a,a?this._pauseStartTime=this.game.time.time:this.isPlaying&&(this._timeNextFrame=this.game.time.time+this.delay)}}),Object.defineProperty(c.Animation.prototype,"frameTotal",{get:function(){return this._frames.length}}),Object.defineProperty(c.Animation.prototype,"frame",{get:function(){return null!==this.currentFrame?this.currentFrame.index:this._frameIndex},set:function(a){this.currentFrame=this._frameData.getFrame(this._frames[a]),null!==this.currentFrame&&(this._frameIndex=a,this._parent.setFrame(this.currentFrame),this.onUpdate&&this.onUpdate.dispatch(this,this.currentFrame))}}),Object.defineProperty(c.Animation.prototype,"speed",{get:function(){return Math.round(1e3/this.delay)},set:function(a){a>=1&&(this.delay=1e3/a)}}),Object.defineProperty(c.Animation.prototype,"enableUpdate",{get:function(){return null!==this.onUpdate},set:function(a){a&&null===this.onUpdate?this.onUpdate=new c.Signal:a||null===this.onUpdate||(this.onUpdate.dispose(),this.onUpdate=null)}}),c.Animation.generateFrameNames=function(a,b,d,e,f){void 0===e&&(e="");var g=[],h="";if(d>b)for(var i=b;d>=i;i++)h="number"==typeof f?c.Utils.pad(i.toString(),f,"0",1):i.toString(),h=a+h+e,g.push(h);else for(var i=b;i>=d;i--)h="number"==typeof f?c.Utils.pad(i.toString(),f,"0",1):i.toString(),h=a+h+e,g.push(h);return g},c.Frame=function(a,b,d,e,f,g){this.index=a,this.x=b,this.y=d,this.width=e,this.height=f,this.name=g,this.centerX=Math.floor(e/2),this.centerY=Math.floor(f/2),this.distance=c.Math.distance(0,0,e,f),this.rotated=!1,this.rotationDirection="cw",this.trimmed=!1,this.sourceSizeW=e,this.sourceSizeH=f,this.spriteSourceSizeX=0,this.spriteSourceSizeY=0,this.spriteSourceSizeW=0,this.spriteSourceSizeH=0,this.right=this.x+this.width,this.bottom=this.y+this.height},c.Frame.prototype={resize:function(a,b){this.width=a,this.height=b,this.centerX=Math.floor(a/2),this.centerY=Math.floor(b/2),this.distance=c.Math.distance(0,0,a,b),this.sourceSizeW=a,this.sourceSizeH=b,this.right=this.x+a,this.bottom=this.y+b -},setTrim:function(a,b,c,d,e,f,g){this.trimmed=a,a&&(this.sourceSizeW=b,this.sourceSizeH=c,this.centerX=Math.floor(b/2),this.centerY=Math.floor(c/2),this.spriteSourceSizeX=d,this.spriteSourceSizeY=e,this.spriteSourceSizeW=f,this.spriteSourceSizeH=g)},clone:function(){var a=new c.Frame(this.index,this.x,this.y,this.width,this.height,this.name);for(var b in this)this.hasOwnProperty(b)&&(a[b]=this[b]);return a},getRect:function(a){return void 0===a?a=new c.Rectangle(this.x,this.y,this.width,this.height):a.setTo(this.x,this.y,this.width,this.height),a}},c.Frame.prototype.constructor=c.Frame,c.FrameData=function(){this._frames=[],this._frameNames=[]},c.FrameData.prototype={addFrame:function(a){return a.index=this._frames.length,this._frames.push(a),""!==a.name&&(this._frameNames[a.name]=a.index),a},getFrame:function(a){return a>=this._frames.length&&(a=0),this._frames[a]},getFrameByName:function(a){return"number"==typeof this._frameNames[a]?this._frames[this._frameNames[a]]:null},checkFrameName:function(a){return null==this._frameNames[a]?!1:!0},clone:function(){for(var a=new c.FrameData,b=0;b=d;d++)c.push(this._frames[d]);return c},getFrames:function(a,b,c){if(void 0===b&&(b=!0),void 0===c&&(c=[]),void 0===a||0===a.length)for(var d=0;d=d&&(d=Math.floor(-j/Math.min(-1,d))),0>=e&&(e=Math.floor(-k/Math.min(-1,e)));var l=Math.floor((j-g)/(d+h)),m=Math.floor((k-g)/(e+h)),n=l*m;if(-1!==f&&(n=f),0===j||0===k||d>j||e>k||0===n)return console.warn("Phaser.AnimationParser.spriteSheet: '"+b+"'s width/height zero or width/height < given frameWidth/frameHeight"),null;for(var o=new c.FrameData,p=g,q=g,r=0;n>r;r++)o.addFrame(new c.Frame(r,p,q,d,e,"")),p+=d+h,p+d>j&&(p=g,q+=e+h);return o},JSONData:function(a,b){if(!b.frames)return console.warn("Phaser.AnimationParser.JSONData: Invalid Texture Atlas JSON given, missing 'frames' array"),void console.log(b);for(var d,e=new c.FrameData,f=b.frames,g=0;g tag");for(var d,e,f,g,h,i,j,k,l,m,n,o=new c.FrameData,p=b.getElementsByTagName("SubTexture"),q=0;q-1},getAssetIndex:function(a,b){for(var c=-1,d=0;d-1?{index:c,file:this._fileList[c]}:!1},reset:function(a,b){void 0===b&&(b=!1),this.resetLocked||(a&&(this.preloadSprite=null),this.isLoading=!1,this._processingHead=0,this._fileList.length=0,this._flightQueue.length=0,this._fileLoadStarted=!1,this._totalFileCount=0,this._totalPackCount=0,this._loadedPackCount=0,this._loadedFileCount=0,b&&(this.onLoadStart.removeAll(),this.onLoadComplete.removeAll(),this.onPackComplete.removeAll(),this.onFileStart.removeAll(),this.onFileComplete.removeAll(),this.onFileError.removeAll()))},addToFileList:function(a,b,c,d,e,f){if(void 0===e&&(e=!1),void 0===b||""===b)return console.warn("Phaser.Loader: Invalid or no key given of type "+a),this;if(void 0===c||null===c){if(!f)return console.warn("Phaser.Loader: No URL given for file type: "+a+" key: "+b),this;c=b+f}var g={type:a,key:b,path:this.path,url:c,syncPoint:this._withSyncPointDepth>0,data:null,loading:!1,loaded:!1,error:!1};if(d)for(var h in d)g[h]=d[h];var i=this.getAssetIndex(a,b);if(e&&i>-1){var j=this._fileList[i];j.loading||j.loaded?(this._fileList.push(g),this._totalFileCount++):this._fileList[i]=g}else-1===i&&(this._fileList.push(g),this._totalFileCount++);return this},replaceInFileList:function(a,b,c,d){return this.addToFileList(a,b,c,d,!0)},pack:function(a,b,c,d){if(void 0===b&&(b=null),void 0===c&&(c=null),void 0===d&&(d=null),!b&&!c)return console.warn("Phaser.Loader.pack - Both url and data are null. One must be set."),this;var e={type:"packfile",key:a,url:b,path:this.path,syncPoint:!0,data:null,loading:!1,loaded:!1,error:!1,callbackContext:d};c&&("string"==typeof c&&(c=JSON.parse(c)),e.data=c||{},e.loaded=!0);for(var f=0;f=e||d&&this._loadedPackCount===this._totalPackCount)break}if(this.updateProgress(),this._processingHead>=this._fileList.length)this.finishedLoading();else if(!this._flightQueue.length){console.warn("Phaser.Loader - aborting: processing queue empty, loading may have stalled");var f=this;setTimeout(function(){f.finishedLoading(!0)},2e3)}},finishedLoading:function(a){this.hasLoaded||(this.hasLoaded=!0,this.isLoading=!1,a||this._fileLoadStarted||(this._fileLoadStarted=!0,this.onLoadStart.dispatch()),this.onLoadComplete.dispatch(),this.reset(),this.game.state.loadComplete())},asyncComplete:function(a,b){void 0===b&&(b=""),a.loaded=!0,a.error=!!b,b&&(a.errorMessage=b,console.warn("Phaser.Loader - "+a.type+"["+a.key+"]: "+b)),this.processLoadQueue()},processPack:function(a){var b=a.data[a.key];if(!b)return void console.warn("Phaser.Loader - "+a.key+": pack has data, but not for pack key");for(var d=0;d=10)||(this._warnedAboutXDomainRequest=!0,console.warn("Phaser.Loader - using XDomainRequest outside of IE 9"));var f=new window.XDomainRequest;f.open("GET",b,!0),f.responseType=c,f.timeout=3e3,e=e||this.fileError;var g=this;f.onerror=function(){try{return e.call(g,a,f)}catch(b){g.asyncComplete(a,b.message||"Exception")}},f.ontimeout=function(){try{return e.call(g,a,f)}catch(b){g.asyncComplete(a,b.message||"Exception")}},f.onprogress=function(){},f.onload=function(){try{return d.call(g,a,f)}catch(b){g.asyncComplete(a,b.message||"Exception")}},a.requestObject=f,a.requestUrl=b,setTimeout(function(){f.send()},0)},getVideoURL:function(a){for(var b=0;b=0&&(d=d.substr(0,d.indexOf("?")));var e=d.substr((Math.max(0,d.lastIndexOf("."))||1/0)+1);c=e.toLowerCase()}if(this.game.device.canPlayVideo(c))return a[b]}return null},getAudioURL:function(a){if(this.game.sound.noAudio)return null;for(var b=0;b=0&&(d=d.substr(0,d.indexOf("?")));var e=d.substr((Math.max(0,d.lastIndexOf("."))||1/0)+1);c=e.toLowerCase()}if(this.game.device.canPlayAudio(c))return a[b]}return null},fileError:function(a,b,c){var d=a.requestUrl||this.transformUrl(a.url,a),e="error loading asset from URL "+d;!c&&b&&(c=b.status),c&&(e=e+" ("+c+")"),this.asyncComplete(a,e)},fileComplete:function(a,b){var d=!0;switch(a.type){case"packfile":var e=JSON.parse(b.responseText);a.data=e||{};break;case"image":this.cache.addImage(a.key,a.url,a.data);break;case"spritesheet":this.cache.addSpriteSheet(a.key,a.url,a.data,a.frameWidth,a.frameHeight,a.frameMax,a.margin,a.spacing);break;case"textureatlas":if(null==a.atlasURL)this.cache.addTextureAtlas(a.key,a.url,a.data,a.atlasData,a.format);else if(d=!1,a.format==c.Loader.TEXTURE_ATLAS_JSON_ARRAY||a.format==c.Loader.TEXTURE_ATLAS_JSON_HASH)this.xhrLoad(a,this.transformUrl(a.atlasURL,a),"text",this.jsonLoadComplete);else{if(a.format!=c.Loader.TEXTURE_ATLAS_XML_STARLING)throw new Error("Phaser.Loader. Invalid Texture Atlas format: "+a.format);this.xhrLoad(a,this.transformUrl(a.atlasURL,a),"text",this.xmlLoadComplete)}break;case"bitmapfont":a.atlasURL?(d=!1,this.xhrLoad(a,this.transformUrl(a.atlasURL,a),"text",function(a,b){var c;try{c=JSON.parse(b.responseText)}catch(d){}c?(a.atlasType="json",this.jsonLoadComplete(a,b)):(a.atlasType="xml",this.xmlLoadComplete(a,b))})):this.cache.addBitmapFont(a.key,a.url,a.data,a.atlasData,a.atlasType,a.xSpacing,a.ySpacing);break;case"video":if(a.asBlob)try{a.data=new Blob([new Uint8Array(b.response)])}catch(f){throw new Error("Phaser.Loader. Unable to parse video file as Blob: "+a.key)}this.cache.addVideo(a.key,a.url,a.data,a.asBlob);break;case"audio":this.game.sound.usingWebAudio?(a.data=b.response,this.cache.addSound(a.key,a.url,a.data,!0,!1),a.autoDecode&&this.game.sound.decode(a.key)):this.cache.addSound(a.key,a.url,a.data,!1,!0);break;case"text":a.data=b.responseText,this.cache.addText(a.key,a.url,a.data);break;case"shader":a.data=b.responseText,this.cache.addShader(a.key,a.url,a.data);break;case"physics":var e=JSON.parse(b.responseText);this.cache.addPhysicsData(a.key,a.url,e,a.format);break;case"script":a.data=document.createElement("script"),a.data.language="javascript",a.data.type="text/javascript",a.data.defer=!1,a.data.text=b.responseText,document.head.appendChild(a.data),a.callback&&(a.data=a.callback.call(a.callbackContext,a.key,b.responseText));break;case"binary":a.data=a.callback?a.callback.call(a.callbackContext,a.key,b.response):b.response,this.cache.addBinary(a.key,a.data)}d&&this.asyncComplete(a)},jsonLoadComplete:function(a,b){var c=JSON.parse(b.responseText);"tilemap"===a.type?this.cache.addTilemap(a.key,a.url,c,a.format):"bitmapfont"===a.type?this.cache.addBitmapFont(a.key,a.url,a.data,c,a.atlasType,a.xSpacing,a.ySpacing):"json"===a.type?this.cache.addJSON(a.key,a.url,c):this.cache.addTextureAtlas(a.key,a.url,a.data,c,a.format),this.asyncComplete(a)},csvLoadComplete:function(a,b){var c=b.responseText;this.cache.addTilemap(a.key,a.url,c,a.format),this.asyncComplete(a)},xmlLoadComplete:function(a,b){var c=b.responseText,d=this.parseXml(c);if(!d){var e=b.responseType||b.contentType;return console.warn("Phaser.Loader - "+a.key+": invalid XML ("+e+")"),void this.asyncComplete(a,"invalid XML")}"bitmapfont"===a.type?this.cache.addBitmapFont(a.key,a.url,a.data,d,a.atlasType,a.xSpacing,a.ySpacing):"textureatlas"===a.type?this.cache.addTextureAtlas(a.key,a.url,a.data,d,a.format):"xml"===a.type&&this.cache.addXML(a.key,a.url,d),this.asyncComplete(a)},parseXml:function(a){var b;try{if(window.DOMParser){var c=new DOMParser;b=c.parseFromString(a,"text/xml")}else b=new ActiveXObject("Microsoft.XMLDOM"),b.async="false",b.loadXML(a)}catch(d){b=null}return b&&b.documentElement&&!b.getElementsByTagName("parsererror").length?b:null},updateProgress:function(){this.preloadSprite&&(0===this.preloadSprite.direction?this.preloadSprite.rect.width=Math.floor(this.preloadSprite.width/100*this.progress):this.preloadSprite.rect.height=Math.floor(this.preloadSprite.height/100*this.progress),this.preloadSprite.sprite?this.preloadSprite.sprite.updateCrop():this.preloadSprite=null)},totalLoadedFiles:function(){return this._loadedFileCount},totalQueuedFiles:function(){return this._totalFileCount-this._loadedFileCount},totalLoadedPacks:function(){return this._totalPackCount},totalQueuedPacks:function(){return this._totalPackCount-this._loadedPackCount}},Object.defineProperty(c.Loader.prototype,"progressFloat",{get:function(){var a=this._loadedFileCount/this._totalFileCount*100;return c.Math.clamp(a||0,0,100)}}),Object.defineProperty(c.Loader.prototype,"progress",{get:function(){return Math.round(this.progressFloat)}}),c.Loader.prototype.constructor=c.Loader,c.LoaderParser={bitmapFont:function(a,b,c,d){return this.xmlBitmapFont(a,b,c,d)},xmlBitmapFont:function(a,b,c,d){var e={},f=a.getElementsByTagName("info")[0],g=a.getElementsByTagName("common")[0];e.font=f.getAttribute("face"),e.size=parseInt(f.getAttribute("size"),10),e.lineHeight=parseInt(g.getAttribute("lineHeight"),10)+d,e.chars={};for(var h=a.getElementsByTagName("char"),i=0;i=this.durationMS&&(this.usingWebAudio?this.loop?(this.onLoop.dispatch(this),""===this.currentMarker?(this.currentTime=0,this.startTime=this.game.time.time):(this.onMarkerComplete.dispatch(this.currentMarker,this),this.play(this.currentMarker,0,this.volume,!0,!0))):""!==this.currentMarker&&this.stop():this.loop?(this.onLoop.dispatch(this),this.play(this.currentMarker,0,this.volume,!0,!0)):this.stop()))},loopFull:function(a){this.play(null,0,a,!0)},play:function(a,b,c,d,e){if((void 0===a||a===!1||null===a)&&(a=""),void 0===e&&(e=!0),this.isPlaying&&!this.allowMultiple&&!e&&!this.override)return this;if(this._sound&&this.isPlaying&&!this.allowMultiple&&(this.override||e))if(this.usingWebAudio)if(this._sound.disconnect(this.externalNode?this.externalNode:this.gainNode),void 0===this._sound.stop)this._sound.noteOff(0);else try{this._sound.stop(0)}catch(f){}else this.usingAudioTag&&(this._sound.pause(),this._sound.currentTime=0);if(""===a&&Object.keys(this.markers).length>0)return this;if(""!==a){if(this.currentMarker=a,!this.markers[a])return this;this.position=this.markers[a].start,this.volume=this.markers[a].volume,this.loop=this.markers[a].loop,this.duration=this.markers[a].duration,this.durationMS=this.markers[a].durationMS,"undefined"!=typeof c&&(this.volume=c),"undefined"!=typeof d&&(this.loop=d),this._tempMarker=a,this._tempPosition=this.position,this._tempVolume=this.volume,this._tempLoop=this.loop}else b=b||0,void 0===c&&(c=this._volume),void 0===d&&(d=this.loop),this.position=b,this.volume=c,this.loop=d,this.duration=0,this.durationMS=0,this._tempMarker=a,this._tempPosition=b,this._tempVolume=c,this._tempLoop=d;return this.usingWebAudio?this.game.cache.isSoundDecoded(this.key)?(this._sound=this.context.createBufferSource(),this._sound.connect(this.externalNode?this.externalNode:this.gainNode),this._buffer=this.game.cache.getSoundData(this.key),this._sound.buffer=this._buffer,this.loop&&""===a&&(this._sound.loop=!0),this.loop||""!==a||(this._sound.onended=this.onEndedHandler.bind(this)),this.totalDuration=this._sound.buffer.duration,0===this.duration&&(this.duration=this.totalDuration,this.durationMS=Math.ceil(1e3*this.totalDuration)),void 0===this._sound.start?this._sound.noteGrainOn(0,this.position,this.duration):this.loop&&""===a?this._sound.start(0,0):this._sound.start(0,this.position,this.duration),this.isPlaying=!0,this.startTime=this.game.time.time,this.currentTime=0,this.stopTime=this.startTime+this.durationMS,this.onPlay.dispatch(this)):(this.pendingPlayback=!0,this.game.cache.getSound(this.key)&&this.game.cache.getSound(this.key).isDecoding===!1&&this.game.sound.decode(this.key,this)):this.game.cache.getSound(this.key)&&this.game.cache.getSound(this.key).locked?(this.game.cache.reloadSound(this.key),this.pendingPlayback=!0):this._sound&&(this.game.device.cocoonJS||4===this._sound.readyState)?(this._sound.play(),this.totalDuration=this._sound.duration,0===this.duration&&(this.duration=this.totalDuration,this.durationMS=1e3*this.totalDuration),this._sound.currentTime=this.position,this._sound.muted=this._muted,this._sound.volume=this._muted?0:this._volume,this.isPlaying=!0,this.startTime=this.game.time.time,this.currentTime=0,this.stopTime=this.startTime+this.durationMS,this.onPlay.dispatch(this)):this.pendingPlayback=!0,this},restart:function(a,b,c,d){a=a||"",b=b||0,c=c||1,void 0===d&&(d=!1),this.play(a,b,c,d,!0)},pause:function(){this.isPlaying&&this._sound&&(this.paused=!0,this.pausedPosition=this.currentTime,this.pausedTime=this.game.time.time,this.onPause.dispatch(this),this.stop())},resume:function(){if(this.paused&&this._sound){if(this.usingWebAudio){var a=this.position+this.pausedPosition/1e3;this._sound=this.context.createBufferSource(),this._sound.buffer=this._buffer,this._sound.connect(this.externalNode?this.externalNode:this.gainNode),this.loop&&(this._sound.loop=!0),this.loop||""!==this.currentMarker||(this._sound.onended=this.onEndedHandler.bind(this));var b=this.duration-this.pausedPosition/1e3;void 0===this._sound.start?this._sound.noteGrainOn(0,a,b):this.loop&&this.game.device.chrome?42===this.game.device.chromeVersion?this._sound.start(0):this._sound.start(0,a):this._sound.start(0,a,b)}else this._sound.play();this.isPlaying=!0,this.paused=!1,this.startTime+=this.game.time.time-this.pausedTime,this.onResume.dispatch(this)}},stop:function(){if(this.isPlaying&&this._sound)if(this.usingWebAudio)if(this._sound.disconnect(this.externalNode?this.externalNode:this.gainNode),void 0===this._sound.stop)this._sound.noteOff(0);else try{this._sound.stop(0)}catch(a){}else this.usingAudioTag&&(this._sound.pause(),this._sound.currentTime=0);this.pendingPlayback=!1,this.isPlaying=!1;var b=this.currentMarker;""!==this.currentMarker&&this.onMarkerComplete.dispatch(this.currentMarker,this),this.currentMarker="",null!==this.fadeTween&&this.fadeTween.stop(),this.paused||this.onStop.dispatch(this,b)},fadeIn:function(a,b,c){void 0===b&&(b=!1),void 0===c&&(c=this.currentMarker),this.paused||(this.play(c,0,0,b),this.fadeTo(a,1))},fadeOut:function(a){this.fadeTo(a,0)},fadeTo:function(a,b){if(this.isPlaying&&!this.paused&&b!==this.volume){if(void 0===a&&(a=1e3),void 0===b)return void console.warn("Phaser.Sound.fadeTo: No Volume Specified.");this.fadeTween=this.game.add.tween(this).to({volume:b},a,c.Easing.Linear.None,!0),this.fadeTween.onComplete.add(this.fadeComplete,this)}},fadeComplete:function(){this.onFadeComplete.dispatch(this,this.volume),0===this.volume&&this.stop()},destroy:function(a){void 0===a&&(a=!0),this.stop(),a?this.game.sound.remove(this):(this.markers={},this.context=null,this._buffer=null,this.externalNode=null,this.onDecoded.dispose(),this.onPlay.dispose(),this.onPause.dispose(),this.onResume.dispose(),this.onLoop.dispose(),this.onStop.dispose(),this.onMute.dispose(),this.onMarkerComplete.dispose())}},c.Sound.prototype.constructor=c.Sound,Object.defineProperty(c.Sound.prototype,"isDecoding",{get:function(){return this.game.cache.getSound(this.key).isDecoding}}),Object.defineProperty(c.Sound.prototype,"isDecoded",{get:function(){return this.game.cache.isSoundDecoded(this.key)}}),Object.defineProperty(c.Sound.prototype,"mute",{get:function(){return this._muted||this.game.sound.mute},set:function(a){a=a||!1,a!==this._muted&&(a?(this._muted=!0,this._muteVolume=this._tempVolume,this.usingWebAudio?this.gainNode.gain.value=0:this.usingAudioTag&&this._sound&&(this._sound.volume=0)):(this._muted=!1,this.usingWebAudio?this.gainNode.gain.value=this._muteVolume:this.usingAudioTag&&this._sound&&(this._sound.volume=this._muteVolume)),this.onMute.dispatch(this))}}),Object.defineProperty(c.Sound.prototype,"volume",{get:function(){return this._volume},set:function(a){return this.game.device.firefox&&this.usingAudioTag&&(a=this.game.math.clamp(a,0,1)),this._muted?void(this._muteVolume=a):(this._tempVolume=a,this._volume=a,void(this.usingWebAudio?this.gainNode.gain.value=a:this.usingAudioTag&&this._sound&&(this._sound.volume=a)))}}),c.SoundManager=function(a){this.game=a,this.onSoundDecode=new c.Signal,this.onVolumeChange=new c.Signal,this.onMute=new c.Signal,this.onUnMute=new c.Signal,this.context=null,this.usingWebAudio=!1,this.usingAudioTag=!1,this.noAudio=!1,this.connectToMaster=!0,this.touchLocked=!1,this.channels=32,this._codeMuted=!1,this._muted=!1,this._unlockSource=null,this._volume=1,this._sounds=[],this._watchList=new c.ArraySet,this._watching=!1,this._watchCallback=null,this._watchContext=null},c.SoundManager.prototype={boot:function(){if(this.game.device.iOS&&this.game.device.webAudio===!1&&(this.channels=1),window.PhaserGlobal){if(window.PhaserGlobal.disableAudio===!0)return this.noAudio=!0,void(this.touchLocked=!1);if(window.PhaserGlobal.disableWebAudio===!0)return this.usingAudioTag=!0,void(this.touchLocked=!1)}if(window.PhaserGlobal&&window.PhaserGlobal.audioContext)this.context=window.PhaserGlobal.audioContext;else if(window.AudioContext)try{this.context=new window.AudioContext}catch(a){this.context=null,this.usingWebAudio=!1,this.touchLocked=!1}else if(window.webkitAudioContext)try{this.context=new window.webkitAudioContext}catch(a){this.context=null,this.usingWebAudio=!1,this.touchLocked=!1}if(null===this.context){if(void 0===window.Audio)return void(this.noAudio=!0);this.usingAudioTag=!0}else this.usingWebAudio=!0,this.masterGain=void 0===this.context.createGain?this.context.createGainNode():this.context.createGain(),this.masterGain.gain.value=1,this.masterGain.connect(this.context.destination);this.noAudio||(!this.game.device.cocoonJS&&this.game.device.iOS||window.PhaserGlobal&&window.PhaserGlobal.fakeiOSTouchLock)&&this.setTouchLock()},setTouchLock:function(){this.game.input.touch.addTouchLockCallback(this.unlock,this),this.touchLocked=!0},unlock:function(){if(this.noAudio||!this.touchLocked||null!==this._unlockSource)return!0;if(this.usingAudioTag)this.touchLocked=!1,this._unlockSource=null;else if(this.usingWebAudio){var a=this.context.createBuffer(1,1,22050);this._unlockSource=this.context.createBufferSource(),this._unlockSource.buffer=a,this._unlockSource.connect(this.context.destination),void 0===this._unlockSource.start?this._unlockSource.noteOn(0):this._unlockSource.start(0)}return!0},stopAll:function(){if(!this.noAudio)for(var a=0;aa?a=0:a>1&&(a=1),this._volume!==a){if(this._volume=a,this.usingWebAudio)this.masterGain.gain.value=a;else for(var b=0;b-1},reset:function(){this.list.length=0},remove:function(a){var b=this.list.indexOf(a);return b>-1?(this.list.splice(b,1),a):void 0},setAll:function(a,b){for(var c=this.list.length;c--;)this.list[c]&&(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)},removeAll:function(a){void 0===a&&(a=!1);for(var b=this.list.length;b--;)if(this.list[b]){var c=this.remove(this.list[b]);a&&c.destroy()}this.position=0,this.list=[]}},Object.defineProperty(c.ArraySet.prototype,"total",{get:function(){return this.list.length}}),Object.defineProperty(c.ArraySet.prototype,"first",{get:function(){return this.position=0,this.list.length>0?this.list[0]:null}}),Object.defineProperty(c.ArraySet.prototype,"next",{get:function(){return this.position0;b--){var c=Math.floor(Math.random()*(b+1)),d=a[b];a[b]=a[c],a[c]=d}return a},transposeMatrix:function(a){for(var b=a.length,c=a[0].length,d=new Array(c),e=0;c>e;e++){d[e]=new Array(b);for(var f=b-1;f>-1;f--)d[e][f]=a[f][e]}return d},rotateMatrix:function(a,b){if("string"!=typeof b&&(b=(b%360+360)%360),90===b||-270===b||"rotateLeft"===b)a=c.ArrayUtils.transposeMatrix(a),a=a.reverse();else if(-90===b||270===b||"rotateRight"===b)a=a.reverse(),a=c.ArrayUtils.transposeMatrix(a);else if(180===Math.abs(b)||"rotate180"===b){for(var d=0;d=e-a?e:d},rotate:function(a){var b=a.shift();return a.push(b),b},numberArray:function(a,b){for(var c=[],d=a;b>=d;d++)c.push(d);return c},numberArrayStep:function(a,b,d){a=+a||0;var e=typeof b;"number"!==e&&"string"!==e||!d||d[b]!==a||(b=d=null),d=null==d?1:+d||0,null===b?(b=a,a=0):b=+b||0;for(var f=-1,g=Math.max(c.Math.roundAwayFromZero((b-a)/(d||1)),0),h=new Array(g);++f>>0:(a<<24|b<<16|d<<8|e)>>>0},unpackPixel:function(a,b,d,e){return(void 0===b||null===b)&&(b=c.Color.createColor()),(void 0===d||null===d)&&(d=!1),(void 0===e||null===e)&&(e=!1),c.Device.LITTLE_ENDIAN?(b.a=(4278190080&a)>>>24,b.b=(16711680&a)>>>16,b.g=(65280&a)>>>8,b.r=255&a):(b.r=(4278190080&a)>>>24,b.g=(16711680&a)>>>16,b.b=(65280&a)>>>8,b.a=255&a),b.color=a,b.rgba="rgba("+b.r+","+b.g+","+b.b+","+b.a/255+")",d&&c.Color.RGBtoHSL(b.r,b.g,b.b,b),e&&c.Color.RGBtoHSV(b.r,b.g,b.b,b),b},fromRGBA:function(a,b){return b||(b=c.Color.createColor()),b.r=(4278190080&a)>>>24,b.g=(16711680&a)>>>16,b.b=(65280&a)>>>8,b.a=255&a,b.rgba="rgba("+b.r+","+b.g+","+b.b+","+b.a+")",b},toRGBA:function(a,b,c,d){return a<<24|b<<16|c<<8|d},RGBtoHSL:function(a,b,d,e){e||(e=c.Color.createColor(a,b,d,1)),a/=255,b/=255,d/=255;var f=Math.min(a,b,d),g=Math.max(a,b,d);if(e.h=0,e.s=0,e.l=(g+f)/2,g!==f){var h=g-f;e.s=e.l>.5?h/(2-g-f):h/(g+f),g===a?e.h=(b-d)/h+(d>b?6:0):g===b?e.h=(d-a)/h+2:g===d&&(e.h=(a-b)/h+4),e.h/=6}return e},HSLtoRGB:function(a,b,d,e){if(e?(e.r=d,e.g=d,e.b=d):e=c.Color.createColor(d,d,d),0!==b){var f=.5>d?d*(1+b):d+b-d*b,g=2*d-f;e.r=c.Color.hueToColor(g,f,a+1/3),e.g=c.Color.hueToColor(g,f,a),e.b=c.Color.hueToColor(g,f,a-1/3)}return e.r=Math.floor(255*e.r|0),e.g=Math.floor(255*e.g|0),e.b=Math.floor(255*e.b|0),c.Color.updateColor(e),e},RGBtoHSV:function(a,b,d,e){e||(e=c.Color.createColor(a,b,d,255)),a/=255,b/=255,d/=255;var f=Math.min(a,b,d),g=Math.max(a,b,d),h=g-f;return e.h=0,e.s=0===g?0:h/g,e.v=g,g!==f&&(g===a?e.h=(b-d)/h+(d>b?6:0):g===b?e.h=(d-a)/h+2:g===d&&(e.h=(a-b)/h+4),e.h/=6),e},HSVtoRGB:function(a,b,d,e){void 0===e&&(e=c.Color.createColor(0,0,0,1,a,b,0,d));var f,g,h,i=Math.floor(6*a),j=6*a-i,k=d*(1-b),l=d*(1-j*b),m=d*(1-(1-j)*b);switch(i%6){case 0:f=d,g=m,h=k;break;case 1:f=l,g=d,h=k;break;case 2:f=k,g=d,h=m;break;case 3:f=k,g=l,h=d;break;case 4:f=m,g=k,h=d;break;case 5:f=d,g=k,h=l}return e.r=Math.floor(255*f),e.g=Math.floor(255*g),e.b=Math.floor(255*h),c.Color.updateColor(e),e},hueToColor:function(a,b,c){return 0>c&&(c+=1),c>1&&(c-=1),1/6>c?a+6*(b-a)*c:.5>c?b:2/3>c?a+(b-a)*(2/3-c)*6:a},createColor:function(a,b,d,e,f,g,h,i){var j={r:a||0,g:b||0,b:d||0,a:e||1,h:f||0,s:g||0,l:h||0,v:i||0,color:0,color32:0,rgba:""};return c.Color.updateColor(j)},updateColor:function(a){return a.rgba="rgba("+a.r.toString()+","+a.g.toString()+","+a.b.toString()+","+a.a.toString()+")",a.color=c.Color.getColor(a.r,a.g,a.b),a.color32=c.Color.getColor32(a.a,a.r,a.g,a.b),a},getColor32:function(a,b,c,d){return a<<24|b<<16|c<<8|d},getColor:function(a,b,c){return a<<16|b<<8|c},RGBtoString:function(a,b,d,e,f){return void 0===e&&(e=255),void 0===f&&(f="#"),"#"===f?"#"+((1<<24)+(a<<16)+(b<<8)+d).toString(16).slice(1):"0x"+c.Color.componentToHex(e)+c.Color.componentToHex(a)+c.Color.componentToHex(b)+c.Color.componentToHex(d)},hexToRGB:function(a){var b=c.Color.hexToColor(a);return b?c.Color.getColor32(b.a,b.r,b.g,b.b):void 0},hexToColor:function(a,b){a=a.replace(/^(?:#|0x)?([a-f\d])([a-f\d])([a-f\d])$/i,function(a,b,c,d){return b+b+c+c+d+d});var d=/^(?:#|0x)?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i.exec(a);if(d){var e=parseInt(d[1],16),f=parseInt(d[2],16),g=parseInt(d[3],16);b?(b.r=e,b.g=f,b.b=g):b=c.Color.createColor(e,f,g)}return b},webToColor:function(a,b){b||(b=c.Color.createColor());var d=/^rgba?\(\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d+)\s*(?:,\s*(\d+(?:\.\d+)?))?\s*\)$/.exec(a);return d&&(b.r=parseInt(d[1],10),b.g=parseInt(d[2],10),b.b=parseInt(d[3],10),b.a=void 0!==d[4]?parseFloat(d[4]):1,c.Color.updateColor(b)),b},valueToColor:function(a,b){if(b||(b=c.Color.createColor()),"string"==typeof a)return 0===a.indexOf("rgb")?c.Color.webToColor(a,b):(b.a=1,c.Color.hexToColor(a,b));if("number"==typeof a){var d=c.Color.getRGB(a);return b.r=d.r,b.g=d.g,b.b=d.b,b.a=d.a/255,b}return b},componentToHex:function(a){var b=a.toString(16);return 1==b.length?"0"+b:b},HSVColorWheel:function(a,b){void 0===a&&(a=1),void 0===b&&(b=1);for(var d=[],e=0;359>=e;e++)d.push(c.Color.HSVtoRGB(e/359,a,b));return d},HSLColorWheel:function(a,b){void 0===a&&(a=.5),void 0===b&&(b=.5);for(var d=[],e=0;359>=e;e++)d.push(c.Color.HSLtoRGB(e/359,a,b));return d},interpolateColor:function(a,b,d,e,f){void 0===f&&(f=255);var g=c.Color.getRGB(a),h=c.Color.getRGB(b),i=(h.red-g.red)*e/d+g.red,j=(h.green-g.green)*e/d+g.green,k=(h.blue-g.blue)*e/d+g.blue;return c.Color.getColor32(f,i,j,k)},interpolateColorWithRGB:function(a,b,d,e,f,g){var h=c.Color.getRGB(a),i=(b-h.red)*g/f+h.red,j=(d-h.green)*g/f+h.green,k=(e-h.blue)*g/f+h.blue;return c.Color.getColor(i,j,k)},interpolateRGB:function(a,b,d,e,f,g,h,i){var j=(e-a)*i/h+a,k=(f-b)*i/h+b,l=(g-d)*i/h+d;return c.Color.getColor(j,k,l)},getRandomColor:function(a,b,d){if(void 0===a&&(a=0),void 0===b&&(b=255),void 0===d&&(d=255),b>255||a>b)return c.Color.getColor(255,255,255);var e=a+Math.round(Math.random()*(b-a)),f=a+Math.round(Math.random()*(b-a)),g=a+Math.round(Math.random()*(b-a));return c.Color.getColor32(d,e,f,g)},getRGB:function(a){return a>16777215?{alpha:a>>>24,red:a>>16&255,green:a>>8&255,blue:255&a,a:a>>>24,r:a>>16&255,g:a>>8&255,b:255&a}:{alpha:255,red:a>>16&255,green:a>>8&255,blue:255&a,a:255,r:a>>16&255,g:a>>8&255,b:255&a}},getWebRGB:function(a){if("object"==typeof a)return"rgba("+a.r.toString()+","+a.g.toString()+","+a.b.toString()+","+(a.a/255).toString()+")";var b=c.Color.getRGB(a);return"rgba("+b.r.toString()+","+b.g.toString()+","+b.b.toString()+","+(b.a/255).toString()+")"},getAlpha:function(a){return a>>>24},getAlphaFloat:function(a){return(a>>>24)/255},getRed:function(a){return a>>16&255},getGreen:function(a){return a>>8&255},getBlue:function(a){return 255&a},blendNormal:function(a){return a},blendLighten:function(a,b){return b>a?b:a},blendDarken:function(a,b){return b>a?a:b},blendMultiply:function(a,b){return a*b/255},blendAverage:function(a,b){return(a+b)/2},blendAdd:function(a,b){return Math.min(255,a+b)},blendSubtract:function(a,b){return Math.max(0,a+b-255)},blendDifference:function(a,b){return Math.abs(a-b)},blendNegation:function(a,b){return 255-Math.abs(255-a-b)},blendScreen:function(a,b){return 255-((255-a)*(255-b)>>8)},blendExclusion:function(a,b){return a+b-2*a*b/255},blendOverlay:function(a,b){return 128>b?2*a*b/255:255-2*(255-a)*(255-b)/255},blendSoftLight:function(a,b){return 128>b?2*((a>>1)+64)*(b/255):255-2*(255-((a>>1)+64))*(255-b)/255},blendHardLight:function(a,b){return c.Color.blendOverlay(b,a)},blendColorDodge:function(a,b){return 255===b?b:Math.min(255,(a<<8)/(255-b))},blendColorBurn:function(a,b){return 0===b?b:Math.max(0,255-(255-a<<8)/b)},blendLinearDodge:function(a,b){return c.Color.blendAdd(a,b)},blendLinearBurn:function(a,b){return c.Color.blendSubtract(a,b)},blendLinearLight:function(a,b){return 128>b?c.Color.blendLinearBurn(a,2*b):c.Color.blendLinearDodge(a,2*(b-128))},blendVividLight:function(a,b){return 128>b?c.Color.blendColorBurn(a,2*b):c.Color.blendColorDodge(a,2*(b-128))},blendPinLight:function(a,b){return 128>b?c.Color.blendDarken(a,2*b):c.Color.blendLighten(a,2*(b-128))},blendHardMix:function(a,b){return c.Color.blendVividLight(a,b)<128?0:255},blendReflect:function(a,b){return 255===b?b:Math.min(255,a*a/(255-b))},blendGlow:function(a,b){return c.Color.blendReflect(b,a)},blendPhoenix:function(a,b){return Math.min(a,b)-Math.max(a,b)+255}},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.Physics=function(a,b){b=b||{},this.game=a,this.config=b,this.arcade=null,this.p2=null,this.ninja=null,this.box2d=null,this.chipmunk=null,this.matter=null,this.parseConfig()},c.Physics.ARCADE=0,c.Physics.P2JS=1,c.Physics.NINJA=2,c.Physics.BOX2D=3,c.Physics.CHIPMUNK=4,c.Physics.MATTERJS=5,c.Physics.prototype={parseConfig:function(){this.config.hasOwnProperty("arcade")&&this.config.arcade!==!0||!c.Physics.hasOwnProperty("Arcade")||(this.arcade=new c.Physics.Arcade(this.game)),this.config.hasOwnProperty("ninja")&&this.config.ninja===!0&&c.Physics.hasOwnProperty("Ninja")&&(this.ninja=new c.Physics.Ninja(this.game)),this.config.hasOwnProperty("p2")&&this.config.p2===!0&&c.Physics.hasOwnProperty("P2")&&(this.p2=new c.Physics.P2(this.game,this.config)),this.config.hasOwnProperty("box2d")&&this.config.box2d===!0&&c.Physics.hasOwnProperty("BOX2D")&&(this.box2d=new c.Physics.BOX2D(this.game,this.config)),this.config.hasOwnProperty("matter")&&this.config.matter===!0&&c.Physics.hasOwnProperty("Matter")&&(this.matter=new c.Physics.Matter(this.game,this.config))},startSystem:function(a){a===c.Physics.ARCADE?this.arcade=new c.Physics.Arcade(this.game):a===c.Physics.P2JS?null===this.p2?this.p2=new c.Physics.P2(this.game,this.config):this.p2.reset():a===c.Physics.NINJA?this.ninja=new c.Physics.Ninja(this.game):a===c.Physics.BOX2D?null===this.box2d?this.box2d=new c.Physics.Box2D(this.game,this.config):this.box2d.reset():a===c.Physics.MATTERJS&&(null===this.matter?this.matter=new c.Physics.Matter(this.game,this.config):this.matter.reset())},enable:function(a,b,d){void 0===b&&(b=c.Physics.ARCADE),void 0===d&&(d=!1),b===c.Physics.ARCADE?this.arcade.enable(a):b===c.Physics.P2JS&&this.p2?this.p2.enable(a,d):b===c.Physics.NINJA&&this.ninja?this.ninja.enableAABB(a):b===c.Physics.BOX2D&&this.box2d?this.box2d.enable(a):b===c.Physics.MATTERJS&&this.matter&&this.matter.enable(a)},preUpdate:function(){this.p2&&this.p2.preUpdate(),this.box2d&&this.box2d.preUpdate(),this.matter&&this.matter.preUpdate()},update:function(){this.p2&&this.p2.update(),this.box2d&&this.box2d.update(),this.matter&&this.matter.update()},setBoundsToWorld:function(){this.arcade&&this.arcade.setBoundsToWorld(),this.ninja&&this.ninja.setBoundsToWorld(),this.p2&&this.p2.setBoundsToWorld(),this.box2d&&this.box2d.setBoundsToWorld(),this.matter&&this.matter.setBoundsToWorld()},clear:function(){this.p2&&this.p2.clear(),this.box2d&&this.box2d.clear(),this.matter&&this.matter.clear()},reset:function(){this.p2&&this.p2.reset(),this.box2d&&this.box2d.reset(),this.matter&&this.matter.reset()},destroy:function(){this.p2&&this.p2.destroy(),this.box2d&&this.box2d.destroy(),this.matter&&this.matter.destroy(),this.arcade=null,this.ninja=null,this.p2=null,this.box2d=null,this.matter=null}},c.Physics.prototype.constructor=c.Physics,c.Particles=function(a){this.game=a,this.emitters={},this.ID=0},c.Particles.prototype={add:function(a){return this.emitters[a.name]=a,a},remove:function(a){delete this.emitters[a.name]},update:function(){for(var a in this.emitters)this.emitters[a].exists&&this.emitters[a].update()}},c.Particles.prototype.constructor=c.Particles,c.Video=function(a,b,d){if(void 0===b&&(b=null),void 0===d&&(d=null),this.game=a,this.key=b,this.width=0,this.height=0,this.type=c.VIDEO,this.disableTextureUpload=!1,this.touchLocked=!1,this.onPlay=new c.Signal,this.onChangeSource=new c.Signal,this.onComplete=new c.Signal,this.onAccess=new c.Signal,this.onError=new c.Signal,this.onTimeout=new c.Signal,this.timeout=15e3,this._timeOutID=null,this.video=null,this.videoStream=null,this.isStreaming=!1,this.retryLimit=20,this.retry=0,this.retryInterval=500,this._retryID=null,this._codeMuted=!1,this._muted=!1,this._codePaused=!1,this._paused=!1,this._pending=!1,this._autoplay=!1,b&&this.game.cache.checkVideoKey(b)){var e=this.game.cache.getVideo(b);e.isBlob?this.createVideoFromBlob(e.data):this.video=e.data,this.width=this.video.videoWidth,this.height=this.video.videoHeight}else d&&this.createVideoFromURL(d,!1);this.video&&!d?(this.baseTexture=new PIXI.BaseTexture(this.video),this.baseTexture.forceLoaded(this.width,this.height)):(this.baseTexture=new PIXI.BaseTexture(PIXI.TextureCache.__default.baseTexture.source),this.baseTexture.forceLoaded(this.width,this.height)),this.texture=new PIXI.Texture(this.baseTexture),this.textureFrame=new c.Frame(0,0,0,this.width,this.height,"video"),this.texture.setFrame(this.textureFrame),this.texture.valid=!1,null!==b&&this.video&&(this.texture.valid=this.video.canplay),this.snapshot=null,c.BitmapData&&(this.snapshot=new c.BitmapData(this.game,"",this.width,this.height)),!this.game.device.cocoonJS&&(this.game.device.iOS||this.game.device.android)||window.PhaserGlobal&&window.PhaserGlobal.fakeiOSTouchLock?this.setTouchLock():e&&(e.locked=!1)},c.Video.prototype={connectToMediaStream:function(a,b){return a&&b&&(this.video=a,this.videoStream=b,this.isStreaming=!0,this.baseTexture.source=this.video,this.updateTexture(null,this.video.videoWidth,this.video.videoHeight),this.onAccess.dispatch(this)),this},startMediaStream:function(a,b,c){if(void 0===a&&(a=!1),void 0===b&&(b=null),void 0===c&&(c=null),!this.game.device.getUserMedia)return this.onError.dispatch(this,"No getUserMedia"),!1;null!==this.videoStream&&this.videoStream.stop(),this.removeVideoElement(),this.video=document.createElement("video"),this.video.setAttribute("autoplay","autoplay"),null!==b&&(this.video.width=b),null!==c&&(this.video.height=c),this._timeOutID=window.setTimeout(this.getUserMediaTimeout.bind(this),this.timeout);try{navigator.getUserMedia({audio:a,video:!0},this.getUserMediaSuccess.bind(this),this.getUserMediaError.bind(this))}catch(d){this.getUserMediaError(d)}return this},getUserMediaTimeout:function(){clearTimeout(this._timeOutID),this.onTimeout.dispatch(this)},getUserMediaError:function(a){clearTimeout(this._timeOutID),this.onError.dispatch(this,a)},getUserMediaSuccess:function(a){clearTimeout(this._timeOutID),this.videoStream=a,void 0!==this.video.mozSrcObject?this.video.mozSrcObject=a:this.video.src=window.URL&&window.URL.createObjectURL(a)||a;var b=this;this.video.onloadeddata=function(){function a(){if(c>0)if(b.video.videoWidth>0){var d=b.video.videoWidth,e=b.video.videoHeight;isNaN(b.video.videoHeight)&&(e=d/(4/3)),b.video.play(),b.isStreaming=!0,b.baseTexture.source=b.video,b.updateTexture(null,d,e),b.onAccess.dispatch(b)}else window.setTimeout(a,500);else console.warn("Unable to connect to video stream. Webcam error?");c--}var c=10;a()}},createVideoFromBlob:function(a){var b=this;return this.video=document.createElement("video"),this.video.controls=!1,this.video.setAttribute("autoplay","autoplay"),this.video.addEventListener("loadeddata",function(a){b.updateTexture(a)},!0),this.video.src=window.URL.createObjectURL(a),this.video.canplay=!0,this},createVideoFromURL:function(a,b){return void 0===b&&(b=!1),this.texture&&(this.texture.valid=!1),this.video=document.createElement("video"),this.video.controls=!1,b&&this.video.setAttribute("autoplay","autoplay"),this.video.src=a,this.video.canplay=!0,this.video.load(),this.retry=this.retryLimit,this._retryID=window.setTimeout(this.checkVideoProgress.bind(this),this.retryInterval),this.key=a,this},updateTexture:function(a,b,c){var d=!1;(void 0===b||null===b)&&(b=this.video.videoWidth,d=!0),(void 0===c||null===c)&&(c=this.video.videoHeight),this.width=b,this.height=c,this.baseTexture.source!==this.video&&(this.baseTexture.source=this.video),this.baseTexture.forceLoaded(b,c),this.texture.frame.resize(b,c),this.texture.width=b,this.texture.height=c,this.texture.valid=!0,this.snapshot&&this.snapshot.resize(b,c),d&&null!==this.key&&(this.onChangeSource.dispatch(this,b,c),this._autoplay&&(this.video.play(),this.onPlay.dispatch(this,this.loop,this.playbackRate)))},complete:function(){this.onComplete.dispatch(this)},play:function(a,b){return void 0===a&&(a=!1),void 0===b&&(b=1),this.game.sound.onMute&&(this.game.sound.onMute.add(this.setMute,this),this.game.sound.onUnMute.add(this.unsetMute,this),this.game.sound.mute&&this.setMute()),this.game.onPause.add(this.setPause,this),this.game.onResume.add(this.setResume,this),this.video.addEventListener("ended",this.complete.bind(this),!0),this.video.loop=a?"loop":"",this.video.playbackRate=b,this.touchLocked?this._pending=!0:(this._pending=!1,null!==this.key&&(4!==this.video.readyState?(this.retry=this.retryLimit,this._retryID=window.setTimeout(this.checkVideoProgress.bind(this),this.retryInterval)):this.video.addEventListener("playing",this.playHandler.bind(this),!0)),this.video.play(),this.onPlay.dispatch(this,a,b)),this},playHandler:function(){this.video.removeEventListener("playing",this.playHandler.bind(this)),this.updateTexture()},stop:function(){return this.game.sound.onMute&&(this.game.sound.onMute.remove(this.setMute,this),this.game.sound.onUnMute.remove(this.unsetMute,this)),this.game.onPause.remove(this.setPause,this),this.game.onResume.remove(this.setResume,this),this.isStreaming?(this.video.mozSrcObject?(this.video.mozSrcObject.stop(),this.video.src=null):(this.video.src="",this.videoStream.stop()),this.videoStream=null,this.isStreaming=!1):(this.video.removeEventListener("ended",this.complete.bind(this)),this.touchLocked?this._pending=!1:this.video.pause()),this},add:function(a){if(Array.isArray(a))for(var b=0;b0?this._retryID=window.setTimeout(this.checkVideoProgress.bind(this),this.retryInterval):console.warn("Phaser.Video: Unable to start downloading video in time",this.isStreaming))},setTouchLock:function(){this.game.input.touch.addTouchLockCallback(this.unlock,this),this.touchLocked=!0},unlock:function(){if(this.touchLocked=!1,this.video.play(),this.onPlay.dispatch(this,this.loop,this.playbackRate),this.key){var a=this.game.cache.getVideo(this.key);a&&!a.isBlob&&(a.locked=!1)}return!0},grab:function(a,b,c){return void 0===a&&(a=!1),void 0===b&&(b=1),void 0===c&&(c=null),null===this.snapshot?void console.warn("Video.grab cannot run because Phaser.BitmapData is unavailable"):(a&&this.snapshot.cls(),this.snapshot.copy(this.video,0,0,this.width,this.height,0,0,this.width,this.height,0,0,0,1,1,b,c),this.snapshot)},removeVideoElement:function(){if(this.video){for(this.video.parentNode&&this.video.parentNode.removeChild(this.video);this.video.hasChildNodes();)this.video.removeChild(this.video.firstChild);this.video.removeAttribute("autoplay"),this.video.removeAttribute("src"),this.video=null}},destroy:function(){this.stop(),this.removeVideoElement(),this.touchLocked&&this.game.input.touch.removeTouchLockCallback(this.unlock,this),this._retryID&&window.clearTimeout(this._retryID)}},Object.defineProperty(c.Video.prototype,"currentTime",{get:function(){return this.video?this.video.currentTime:0},set:function(a){this.video.currentTime=a}}),Object.defineProperty(c.Video.prototype,"duration",{get:function(){return this.video?this.video.duration:0}}),Object.defineProperty(c.Video.prototype,"progress",{get:function(){return this.video?this.video.currentTime/this.video.duration:0}}),Object.defineProperty(c.Video.prototype,"mute",{get:function(){return this._muted},set:function(a){if(a=a||null){if(this._muted)return;this._codeMuted=!0,this.setMute()}else{if(!this._muted)return;this._codeMuted=!1,this.unsetMute()}}}),Object.defineProperty(c.Video.prototype,"paused",{get:function(){return this._paused},set:function(a){if(a=a||null,!this.touchLocked)if(a){if(this._paused)return;this._codePaused=!0,this.setPause()}else{if(!this._paused)return;this._codePaused=!1,this.setResume()}}}),Object.defineProperty(c.Video.prototype,"volume",{get:function(){return this.video?this.video.volume:1},set:function(a){0>a?a=0:a>1&&(a=1),this.video&&(this.video.volume=a)}}),Object.defineProperty(c.Video.prototype,"playbackRate",{get:function(){return this.video?this.video.playbackRate:1},set:function(a){this.video&&(this.video.playbackRate=a)}}),Object.defineProperty(c.Video.prototype,"loop",{get:function(){return this.video?this.video.loop:!1},set:function(a){a&&this.video?this.video.loop="loop":this.video&&(this.video.loop="")}}),Object.defineProperty(c.Video.prototype,"playing",{get:function(){return!(this.video.paused&&this.video.ended)}}),c.Video.prototype.constructor=c.Video,void 0===PIXI.blendModes&&(PIXI.blendModes=c.blendModes),void 0===PIXI.scaleModes&&(PIXI.scaleModes=c.scaleModes),void 0===PIXI.Texture.emptyTexture&&(PIXI.Texture.emptyTexture=new PIXI.Texture(new PIXI.BaseTexture)),void 0===PIXI.DisplayObject._tempMatrix&&(PIXI.DisplayObject._tempMatrix=new PIXI.Matrix),void 0===PIXI.RenderTexture.tempMatrix&&(PIXI.RenderTexture.tempMatrix=new PIXI.Matrix),void 0===PIXI.Graphics.POLY&&(PIXI.Graphics.POLY=c.POLYGON,PIXI.Graphics.RECT=c.RECTANGLE,PIXI.Graphics.CIRC=c.CIRCLE,PIXI.Graphics.ELIP=c.ELLIPSE,PIXI.Graphics.RREC=c.ROUNDEDRECTANGLE),PIXI.TextureSilentFail=!0,"undefined"!=typeof exports?("undefined"!=typeof module&&module.exports&&(exports=module.exports=c),exports.Phaser=c):"undefined"!=typeof define&&define.amd?define("Phaser",function(){return b.Phaser=c}()):b.Phaser=c}.call(this); +}},c.ScaleManager.prototype.constructor=c.ScaleManager,Object.defineProperty(c.ScaleManager.prototype,"boundingParent",{get:function(){if(this.parentIsWindow||this.isFullScreen&&!this._createdFullScreenTarget)return null;var a=this.game.canvas&&this.game.canvas.parentNode;return a||null}}),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,"isGamePortrait",{get:function(){return this.height>this.width}}),Object.defineProperty(c.ScaleManager.prototype,"isGameLandscape",{get:function(){return this.width>this.height}}),c.Game=function(a,b,d,e,f,g,h,i){return this.id=c.GAMES.push(this)-1,this.config=null,this.physicsConfig=i,this.parent="",this.width=800,this.height=600,this.resolution=1,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.plugins=null,this.rnd=null,this.device=c.Device,this.camera=null,this.canvas=null,this.context=null,this.debug=null,this.particles=null,this.create=null,this.lockRender=!1,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.currentUpdateID=0,this.updatesThisFrame=1,this._deltaTime=0,this._lastCount=0,this._spiraling=0,this._kickstart=!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)),this.device.whenReady(this.boot,this),this},c.Game.prototype={parseConfig:function(a){this.config=a,void 0===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.resolution&&(this.resolution=a.resolution),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||(this.onPause=new c.Signal,this.onResume=new c.Signal,this.onBlur=new c.Signal,this.onFocus=new c.Signal,this.isBooted=!0,this.math=c.Math,this.scale=new c.ScaleManager(this,this._width,this._height),this.stage=new c.Stage(this),this.setUpRenderer(),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.create=new c.Create(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.debug={preUpdate:function(){},update:function(){},reset:function(){}},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._kickstart=!0,window.focus&&(!window.PhaserGlobal||window.PhaserGlobal&&!window.PhaserGlobal.stopFocus)&&window.focus(),this.raf.start())},showDebugHeader:function(){if(!window.PhaserGlobal||!window.PhaserGlobal.hideBanner){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: #9854d8","background: #6c2ca7","color: #ffffff; background: #450f78;","background: #6c2ca7","background: #9854d8","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:this.resolution,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:this.resolution,antialias:this.antialias,preserveDrawingBuffer:this.preserveDrawingBuffer}),this.context=null,this.canvas.addEventListener("webglcontextlost",this.contextLost.bind(this),!1),this.canvas.addEventListener("webglcontextrestored",this.contextRestored.bind(this),!1);this.renderType!==c.HEADLESS&&(this.stage.smoothed=this.antialias,c.Canvas.addToDOM(this.canvas,this.parent,!1),c.Canvas.setTouchAction(this.canvas))},contextLost:function(a){a.preventDefault(),this.renderer.contextLost=!0},contextRestored:function(){this.renderer.initContext(),this.cache.clearGLTextures(),this.renderer.contextLost=!1},update:function(a){if(this.time.update(a),this._kickstart)return this.updateLogic(1/this.time.desiredFps),this.stage.updateTransform(),this.updateRender(this.time.slowMotion*this.time.desiredFps),void(this._kickstart=!1);if(this._spiraling>1&&!this.forceSingleUpdate)this.time.time>this._nextFpsNotification&&(this._nextFpsNotification=this.time.time+1e4,this.fpsProblemNotifier.dispatch()),this._deltaTime=0,this._spiraling=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);var c=0;for(this.updatesThisFrame=Math.floor(this._deltaTime/b),this.forceSingleUpdate&&(this.updatesThisFrame=Math.min(1,this.updatesThisFrame));this._deltaTime>=b&&(this._deltaTime-=b,this.currentUpdateID=c,this.updateLogic(1/this.time.desiredFps),this.stage.updateTransform(),c++,!this.forceSingleUpdate||1!==c););c>this._lastCount?this._spiraling++:c=c.Input.MAX_POINTERS)return console.warn("Phaser.Input.addPointer: Maximum limit of "+c.Input.MAX_POINTERS+" pointers reached."),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&&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 a-b},getPointer:function(a){void 0===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._pollCounterthis.game.time.time},justReleased:function(a){return a=a||250,this.isUp&&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,this.altKey=!1,this.shiftKey=!1,this.ctrlKey=!1},destroy:function(){this.onDown.dispose(),this.onUp.dispose(),this.onFloat.dispose(),this.parent=null,this.game=null}},c.DeviceButton.prototype.constructor=c.DeviceButton,Object.defineProperty(c.DeviceButton.prototype,"duration",{get:function(){return this.isUp?-1:this.game.time.time-this.timeDown}}),c.Pointer=function(a,b){this.game=a,this.id=b,this.type=c.POINTER,this.exists=!0,this.identifier=0,this.pointerId=null,this.target=null,this.button=null,this.leftButton=new c.DeviceButton(this,c.Pointer.LEFT_BUTTON),this.middleButton=new c.DeviceButton(this,c.Pointer.MIDDLE_BUTTON),this.rightButton=new c.DeviceButton(this,c.Pointer.RIGHT_BUTTON),this.backButton=new c.DeviceButton(this,c.Pointer.BACK_BUTTON),this.forwardButton=new c.DeviceButton(this,c.Pointer.FORWARD_BUTTON),this.eraserButton=new c.DeviceButton(this,c.Pointer.ERASER_BUTTON),this._holdSent=!1,this._history=[],this._nextDrop=0,this._stateReset=!1,this.withinGame=!1,this.clientX=-1,this.clientY=-1,this.pageX=-1,this.pageY=-1,this.screenX=-1,this.screenY=-1,this.rawMovementX=0,this.rawMovementY=0,this.movementX=0,this.movementY=0,this.x=-1,this.y=-1,this.isMouse=0===b,this.isDown=!1,this.isUp=!0,this.timeDown=0,this.timeUp=0,this.previousTapTime=0,this.totalTouches=0,this.msSinceLastClick=Number.MAX_VALUE,this.targetObject=null,this.active=!1,this.dirty=!1,this.position=new c.Point,this.positionDown=new c.Point,this.positionUp=new c.Point,this.circle=new c.Circle(0,0,44),this._clickTrampolines=null,this._trampolineTargetObject=null},c.Pointer.NO_BUTTON=0,c.Pointer.LEFT_BUTTON=1,c.Pointer.RIGHT_BUTTON=2,c.Pointer.MIDDLE_BUTTON=4,c.Pointer.BACK_BUTTON=8,c.Pointer.FORWARD_BUTTON=16,c.Pointer.ERASER_BUTTON=32,c.Pointer.prototype={resetButtons:function(){this.isDown=!1,this.isUp=!0,this.isMouse&&(this.leftButton.reset(),this.middleButton.reset(),this.rightButton.reset(),this.backButton.reset(),this.forwardButton.reset(),this.eraserButton.reset())},updateButtons:function(a){this.button=a.button;var b=a.buttons;void 0!==b?(c.Pointer.LEFT_BUTTON&b?this.leftButton.start(a):this.leftButton.stop(a),c.Pointer.RIGHT_BUTTON&b?this.rightButton.start(a):this.rightButton.stop(a),c.Pointer.MIDDLE_BUTTON&b?this.middleButton.start(a):this.middleButton.stop(a),c.Pointer.BACK_BUTTON&b?this.backButton.start(a):this.backButton.stop(a),c.Pointer.FORWARD_BUTTON&b?this.forwardButton.start(a):this.forwardButton.stop(a),c.Pointer.ERASER_BUTTON&b?this.eraserButton.start(a):this.eraserButton.stop(a)):"mousedown"===a.type?this.leftButton.start(a):(this.leftButton.stop(a),this.rightButton.stop(a)),a.ctrlKey&&this.leftButton.isDown&&this.rightButton.start(a),this.isUp=!0,this.isDown=!1,(this.leftButton.isDown||this.rightButton.isDown||this.middleButton.isDown||this.backButton.isDown||this.forwardButton.isDown||this.eraserButton.isDown)&&(this.isUp=!1,this.isDown=!0) +},start:function(a){return a.pointerId&&(this.pointerId=a.pointerId),this.identifier=a.identifier,this.target=a.target,this.isMouse?this.updateButtons(a):(this.isDown=!0,this.isUp=!1),this._history=[],this.active=!0,this.withinGame=!0,this.dirty=!1,this._clickTrampolines=null,this._trampolineTargetObject=null,this.msSinceLastClick=this.game.time.time-this.timeDown,this.timeDown=this.game.time.time,this._holdSent=!1,this.move(a,!0),this.positionDown.setTo(this.x,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.totalActivePointers)&&(this.game.input.x=this.x,this.game.input.y=this.y,this.game.input.position.setTo(this.x,this.y),this.game.input.onDown.dispatch(this,a),this.game.input.resetSpeed(this.x,this.y)),this._stateReset=!1,this.totalTouches++,null!==this.targetObject&&this.targetObject._touchedHandler(this),this},update:function(){this.active&&(this.dirty&&(this.game.input.interactiveItems.total>0&&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.totalActivePointers)&&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(void 0===b&&(b=!1),void 0!==a.button&&(this.button=a.button),b&&this.updateButtons(a),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.totalActivePointers)&&(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.renderOrderID,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.renderOrderID,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&&this.withinGame?void a.preventDefault():(this.isMouse?this.updateButtons(a):(this.isDown=!1,this.isUp=!0),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.totalActivePointers)&&(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.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&&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;fd;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}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 void 0===c&&(c=!0),0===this.sprite.scale.x||0===this.sprite.scale.y||this.priorityIDa||this.priorityID===a&&this.sprite.renderOrderIDb;b++)if(this._pointerData[b].isOver)return!0}return!1},pointerOut:function(a){if(this.enabled){if(void 0!==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)?(void 0===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)?(void 0===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&&this._pointerData[a.id].isOver){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.snapPoint.set(this.sprite.cameraOffset.x,this.sprite.cameraOffset.y))):(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,this.snapPoint.set(this.sprite.x,this.sprite.y))),this.sprite.events.onDragUpdate.dispatch(this.sprite,a,b,c,this.snapPoint),!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){var b=this.sprite.x,c=this.sprite.y;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 d=this.sprite.getBounds();this.sprite.x=this.globalToLocalX(a.x)+(this.sprite.x-d.centerX),this.sprite.y=this.globalToLocalY(a.y)+(this.sprite.y-d.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.dragStartPoint.set(b,c),this.sprite.events.onDragStart$dispatch(this.sprite,a,b,c)},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){void 0===a&&(a=!0),void 0===b&&(b=!0),this.allowHorizontalDrag=a,this.allowVerticalDrag=b},enableSnap:function(a,b,c,d,e,f){void 0===c&&(c=!0),void 0===d&&(d=!1),void 0===e&&(e=0),void 0===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.leftthis.boundsRect.right&&(this.sprite.x=this.boundsRect.right-(this.sprite.width-this.sprite.offsetX)),this.sprite.topthis.boundsRect.bottom&&(this.sprite.y=this.boundsRect.bottom-(this.sprite.height-this.sprite.offsetY)))},checkBoundsSprite:function(){this.sprite.fixedToCamera&&this.boundsSprite.fixedToCamera?(this.sprite.cameraOffset.xthis.boundsSprite.cameraOffset.x+this.boundsSprite.width&&(this.sprite.cameraOffset.x=this.boundsSprite.cameraOffset.x+this.boundsSprite.width-this.sprite.width),this.sprite.cameraOffset.ythis.boundsSprite.cameraOffset.y+this.boundsSprite.height&&(this.sprite.cameraOffset.y=this.boundsSprite.cameraOffset.y+this.boundsSprite.height-this.sprite.height)):(this.sprite.leftthis.boundsSprite.right&&(this.sprite.x=this.boundsSprite.right-(this.sprite.width-this.sprite.offsetX)),this.sprite.topthis.boundsSprite.bottom&&(this.sprite.y=this.boundsSprite.bottom-(this.sprite.height-this.sprite.offsetY)))}},c.InputHandler.prototype.constructor=c.InputHandler,c.Gamepad=function(a){this.game=a,this._gamepadIndexMap={},this._rawPads=[],this._active=!1,this.enabled=!0,this._gamepadSupportAvailable=!!navigator.webkitGetGamepads||!!navigator.webkitGamepads||-1!=navigator.userAgent.indexOf("Firefox/")||!!navigator.getGamepads,this._prevRawGamepadTypes=[],this._prevTimestamps=[],this.callbackContext=this,this.onConnectCallback=null,this.onDisconnectCallback=null,this.onDownCallback=null,this.onUpCallback=null,this.onAxisCallback=null,this.onFloatCallback=null,this._ongamepadconnected=null,this._gamepaddisconnected=null,this._gamepads=[new c.SinglePad(a,this),new c.SinglePad(a,this),new c.SinglePad(a,this),new c.SinglePad(a,this)]},c.Gamepad.prototype={addCallbacks:function(a,b){"undefined"!=typeof b&&(this.onConnectCallback="function"==typeof b.onConnect?b.onConnect:this.onConnectCallback,this.onDisconnectCallback="function"==typeof b.onDisconnect?b.onDisconnect:this.onDisconnectCallback,this.onDownCallback="function"==typeof b.onDown?b.onDown:this.onDownCallback,this.onUpCallback="function"==typeof b.onUp?b.onUp:this.onUpCallback,this.onAxisCallback="function"==typeof b.onAxis?b.onAxis:this.onAxisCallback,this.onFloatCallback="function"==typeof b.onFloat?b.onFloat:this.onFloatCallback,this.callbackContext=a)},start:function(){if(!this._active){this._active=!0;var a=this;this._onGamepadConnected=function(b){return a.onGamepadConnected(b)},this._onGamepadDisconnected=function(b){return a.onGamepadDisconnected(b)},window.addEventListener("gamepadconnected",this._onGamepadConnected,!1),window.addEventListener("gamepaddisconnected",this._onGamepadDisconnected,!1)}},onGamepadConnected:function(a){var b=a.gamepad;this._rawPads.push(b),this._gamepads[b.index].connect(b)},onGamepadDisconnected:function(a){var b=a.gamepad;for(var c in this._rawPads)this._rawPads[c].index===b.index&&this._rawPads.splice(c,1);this._gamepads[b.index].disconnect()},update:function(){this._pollGamepads(),this.pad1.pollStatus(),this.pad2.pollStatus(),this.pad3.pollStatus(),this.pad4.pollStatus()},_pollGamepads:function(){if(navigator.getGamepads)var a=navigator.getGamepads();else if(navigator.webkitGetGamepads)var a=navigator.webkitGetGamepads();else if(navigator.webkitGamepads)var a=navigator.webkitGamepads();if(a){this._rawPads=[];for(var b=!1,c=0;c0&&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.maxHealth&&(this.health=this.maxHealth)),this}},c.Component.InCamera=function(){},c.Component.InCamera.prototype={inCamera:{get:function(){return this.game.world.camera.view.intersects(this._bounds)}}},c.Component.InputEnabled=function(){},c.Component.InputEnabled.prototype={input:null,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()}}},c.Component.InWorld=function(){},c.Component.InWorld.preUpdate=function(){if((this.autoCull||this.checkWorldBounds)&&(this._bounds.copyFrom(this.getBounds()),this._bounds.x+=this.game.camera.view.x,this._bounds.y+=this.game.camera.view.y,this.autoCull&&(this.game.world.camera.view.intersects(this._bounds)?(this.renderable=!0,this.game.world.camera.totalInView++):this.renderable=!1),this.checkWorldBounds))if(this._outOfBoundsFired&&this.game.world.bounds.intersects(this._bounds))this._outOfBoundsFired=!1,this.events.onEnterBounds$dispatch(this);else if(!this._outOfBoundsFired&&!this.game.world.bounds.intersects(this._bounds)&&(this._outOfBoundsFired=!0,this.events.onOutOfBounds$dispatch(this),this.outOfBoundsKill))return this.kill(),!1;return!0},c.Component.InWorld.prototype={checkWorldBounds:!1,outOfBoundsKill:!1,_outOfBoundsFired:!1,inWorld:{get:function(){return this.game.world.bounds.intersects(this.getBounds())}}},c.Component.LifeSpan=function(){},c.Component.LifeSpan.preUpdate=function(){return this.lifespan>0&&(this.lifespan-=this.game.time.physicsElapsedMS,this.lifespan<=0)?(this.kill(),!1):!0},c.Component.LifeSpan.prototype={alive:!0,lifespan:0,revive:function(a){return void 0===a&&(a=1),this.alive=!0,this.exists=!0,this.visible=!0,"number"==typeof this.health&&(this.health=a),this.events&&this.events.onRevived$dispatch(this),this},kill:function(){return this.alive=!1,this.exists=!1,this.visible=!1,this.events&&this.events.onKilled$dispatch(this),this}},c.Component.LoadTexture=function(){},c.Component.LoadTexture.prototype={customRender:!1,_frame:null,loadTexture:function(a,b,d){b=b||0,(d||void 0===d)&&this.animations&&this.animations.stop(),this.key=a,this.customRender=!1;var e=this.game.cache,f=!0,g=!this.texture.baseTexture.scaleMode;if(c.RenderTexture&&a instanceof c.RenderTexture)this.key=a.key,this.setTexture(a);else if(c.BitmapData&&a instanceof c.BitmapData)this.customRender=!0,this.setTexture(a.texture),e.hasFrameData(a.key,c.Cache.BITMAPDATA)&&(f=!this.animations.loadFrameData(e.getFrameData(a.key,c.Cache.BITMAPDATA),b));else if(c.Video&&a instanceof c.Video){this.customRender=!0;var h=a.texture.valid;this.setTexture(a.texture),this.setFrame(a.texture.frame.clone()),a.onChangeSource.add(this.resizeFrame,this),this.texture.valid=h}else if(a instanceof PIXI.Texture)this.setTexture(a);else{var i=e.getImage(a,!0);this.key=i.key,this.setTexture(new PIXI.Texture(i.base)),f=!this.animations.loadFrameData(i.frameData,b)}f&&(this._frame=c.Rectangle.clone(this.texture.frame)),g||(this.texture.baseTexture.scaleMode=1)},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.requiresReTint=!0,this.texture._updateUvs(),this.tilingTexture&&(this.refreshTexture=!0)},resizeFrame:function(a,b,c){this.texture.frame.resize(b,c),this.texture.setFrame(this.texture.frame)},resetFrame:function(){this._frame&&this.setFrame(this._frame)},frame:{get:function(){return this.animations.frame},set:function(a){this.animations.frame=a}},frameName:{get:function(){return this.animations.frameName},set:function(a){this.animations.frameName=a}}},c.Component.Overlap=function(){},c.Component.Overlap.prototype={overlap:function(a){return c.Rectangle.intersects(this.getBounds(),a.getBounds())}},c.Component.PhysicsBody=function(){},c.Component.PhysicsBody.preUpdate=function(){return this.fresh&&this.exists?(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.previousPosition.set(this.world.x,this.world.y),this.previousRotation=this.rotation,this.body&&this.body.preUpdate(),this.fresh=!1,!1):(this.previousPosition.set(this.world.x,this.world.y),this.previousRotation=this.rotation,this._exists&&this.parent.exists?!0:(this.renderOrderID=-1,!1))},c.Component.PhysicsBody.postUpdate=function(){this.exists&&this.body&&this.body.postUpdate()},c.Component.PhysicsBody.prototype={body:null,x:{get:function(){return this.position.x},set:function(a){this.position.x=a,this.body&&!this.body.dirty&&(this.body._reset=!0)}},y:{get:function(){return this.position.y},set:function(a){this.position.y=a,this.body&&!this.body.dirty&&(this.body._reset=!0)}}},c.Component.Reset=function(){},c.Component.Reset.prototype.reset=function(a,b,c){return void 0===c&&(c=1),this.world.set(a,b),this.position.set(a,b),this.fresh=!0,this.exists=!0,this.visible=!0,this.renderable=!0,this.components.InWorld&&(this._outOfBoundsFired=!1),this.components.LifeSpan&&(this.alive=!0,this.health=c),this.components.PhysicsBody&&this.body&&this.body.reset(a,b,!1,!1),this},c.Component.ScaleMinMax=function(){},c.Component.ScaleMinMax.prototype={transformCallback:this.checkTransform,transformCallbackContext:this,scaleMin:null,scaleMax:null,checkTransform:function(a){this.scaleMin&&(a.athis.scaleMax.x&&(a.a=this.scaleMax.x),a.d>this.scaleMax.y&&(a.d=this.scaleMax.y))},setScaleMinMax:function(a,b,d,e){void 0===b?b=d=e=a:void 0===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)}},c.Component.Smoothed=function(){},c.Component.Smoothed.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)}}},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 void 0===f&&(f=this.world),f.add(new c.Image(this.game,a,b,d,e))},sprite:function(a,b,c,d,e){return void 0===e&&(e=this.world),e.create(a,b,c,d)},creature:function(a,b,d,e,f){void 0===f&&(f=this.world);var g=new c.Creature(this.game,a,b,d,e);return f.add(g),g},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 void 0===a&&(a=null),void 0===b&&(b="group"),void 0===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 void 0===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 void 0===g&&(g=this.world),g.add(new c.Rope(this.game,a,b,d,e,f))},text:function(a,b,d,e,f){return void 0===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 void 0===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 void 0===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 void 0===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){(void 0===d||""===d)&&(d=this.game.rnd.uuid()),void 0===e&&(e=!1);var f=new c.RenderTexture(this.game,a,b,d);return e&&this.game.cache.addRenderTexture(d,f),f},video:function(a,b){return new c.Video(this.game,a,b)},bitmapData:function(a,b,d,e){void 0===e&&(e=!1),(void 0===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,this.game.tweens)},group:function(a,b,d,e,f){return new c.Group(this.game,a,b,d,e,f)},spriteBatch:function(a,b,d){return void 0===b&&(b="group"),void 0===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,g){return new c.BitmapText(this.game,a,b,d,e,f,g)},tilemap:function(a,b,d,e,f){return new c.Tilemap(this.game,a,b,d,e,f)},renderTexture:function(a,b,d,e){(void 0===d||""===d)&&(d=this.game.rnd.uuid()),void 0===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){void 0===e&&(e=!1),(void 0===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.Sprite=function(a,b,d,e,f){b=b||0,d=d||0,e=e||null,f=f||null,this.type=c.SPRITE,this.physicsType=c.SPRITE,PIXI.Sprite.call(this,PIXI.TextureCache.__default),c.Component.Core.init.call(this,a,b,d,e,f)},c.Sprite.prototype=Object.create(PIXI.Sprite.prototype),c.Sprite.prototype.constructor=c.Sprite,c.Component.Core.install.call(c.Sprite.prototype,["Angle","Animation","AutoCull","Bounds","BringToTop","Crop","Delta","Destroy","FixedToCamera","Health","InCamera","InputEnabled","InWorld","LifeSpan","LoadTexture","Overlap","PhysicsBody","Reset","ScaleMinMax","Smoothed"]),c.Sprite.prototype.preUpdatePhysics=c.Component.PhysicsBody.preUpdate,c.Sprite.prototype.preUpdateLifeSpan=c.Component.LifeSpan.preUpdate,c.Sprite.prototype.preUpdateInWorld=c.Component.InWorld.preUpdate,c.Sprite.prototype.preUpdateCore=c.Component.Core.preUpdate,c.Sprite.prototype.preUpdate=function(){return this.preUpdatePhysics()&&this.preUpdateLifeSpan()&&this.preUpdateInWorld()?this.preUpdateCore():!1},c.Image=function(a,b,d,e,f){b=b||0,d=d||0,e=e||null,f=f||null,this.type=c.IMAGE,PIXI.Sprite.call(this,PIXI.TextureCache.__default),c.Component.Core.init.call(this,a,b,d,e,f)},c.Image.prototype=Object.create(PIXI.Sprite.prototype),c.Image.prototype.constructor=c.Image,c.Component.Core.install.call(c.Image.prototype,["Angle","Animation","AutoCull","Bounds","BringToTop","Crop","Destroy","FixedToCamera","InputEnabled","LifeSpan","LoadTexture","Overlap","Reset","Smoothed"]),c.Image.prototype.preUpdateInWorld=c.Component.InWorld.preUpdate,c.Image.prototype.preUpdateCore=c.Component.Core.preUpdate,c.Image.prototype.preUpdate=function(){return this.preUpdateInWorld()?this.preUpdateCore():!1},c.TileSprite=function(a,b,d,e,f,g,h){b=b||0,d=d||0,e=e||256,f=f||256,g=g||null,h=h||null,this.type=c.TILESPRITE,this.physicsType=c.SPRITE,this._scroll=new c.Point;var i=a.cache.getImage("__default",!0);PIXI.TilingSprite.call(this,new PIXI.Texture(i.base),e,f),c.Component.Core.init.call(this,a,b,d,g,h)},c.TileSprite.prototype=Object.create(PIXI.TilingSprite.prototype),c.TileSprite.prototype.constructor=c.TileSprite,c.Component.Core.install.call(c.TileSprite.prototype,["Angle","Animation","AutoCull","Bounds","BringToTop","Destroy","FixedToCamera","Health","InCamera","InputEnabled","InWorld","LifeSpan","LoadTexture","Overlap","PhysicsBody","Reset","Smoothed"]),c.TileSprite.prototype.preUpdatePhysics=c.Component.PhysicsBody.preUpdate,c.TileSprite.prototype.preUpdateLifeSpan=c.Component.LifeSpan.preUpdate,c.TileSprite.prototype.preUpdateInWorld=c.Component.InWorld.preUpdate,c.TileSprite.prototype.preUpdateCore=c.Component.Core.preUpdate,c.TileSprite.prototype.preUpdate=function(){return 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.preUpdatePhysics()&&this.preUpdateLifeSpan()&&this.preUpdateInWorld()?this.preUpdateCore():!1},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.destroy=function(a){c.Component.Destroy.prototype.destroy.call(this,a),PIXI.TilingSprite.prototype.destroy.call(this)},c.TileSprite.prototype.reset=function(a,b){return c.Component.Reset.prototype.reset.call(this,a,b),this.tilePosition.x=0,this.tilePosition.y=0,this},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.type=c.ROPE,this._scroll=new c.Point,PIXI.Rope.call(this,PIXI.TextureCache.__default,this.points),c.Component.Core.init.call(this,a,b,d,e,f)},c.Rope.prototype=Object.create(PIXI.Rope.prototype),c.Rope.prototype.constructor=c.Rope,c.Component.Core.install.call(c.Rope.prototype,["Angle","Animation","AutoCull","Bounds","BringToTop","Crop","Delta","Destroy","FixedToCamera","InputEnabled","InWorld","LifeSpan","LoadTexture","Overlap","PhysicsBody","Reset","ScaleMinMax","Smoothed"]),c.Rope.prototype.preUpdatePhysics=c.Component.PhysicsBody.preUpdate,c.Rope.prototype.preUpdateLifeSpan=c.Component.LifeSpan.preUpdate,c.Rope.prototype.preUpdateInWorld=c.Component.InWorld.preUpdate,c.Rope.prototype.preUpdateCore=c.Component.Core.preUpdate,c.Rope.prototype.preUpdate=function(){return 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.preUpdatePhysics()&&this.preUpdateLifeSpan()&&this.preUpdateInWorld()?this.preUpdateCore():!1},c.Rope.prototype.update=function(){this._hasUpdateAnimation&&this.updateAnimation.call(this)},c.Rope.prototype.reset=function(a,b){return c.Component.Reset.prototype.reset.call(this,a,b),this.tilePosition.x=0,this.tilePosition.y=0,this},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=Math.abs(a);var f=this.width-a;c.drawImage(e,0,0,a,d,f,0,a,d),c.drawImage(e,a,0,f,d,0,0,f,d)}else{var f=this.width-a;c.drawImage(e,f,0,a,d,0,0,a,d),c.drawImage(e,0,0,f,d,a,0,f,d)}return this.clear(),this.copy(this._swapCanvas)},moveV:function(a){var b=this._swapCanvas,c=b.getContext("2d"),d=this.width,e=this.canvas;if(c.clearRect(0,0,this.width,this.height),0>a){a=Math.abs(a);var f=this.height-a;c.drawImage(e,0,0,d,a,0,f,d,a),c.drawImage(e,0,a,d,f,0,0,d,f)}else{var f=this.height-a;c.drawImage(e,0,f,d,a,0,0,d,a),c.drawImage(e,0,0,d,f,0,a,d,f)}return this.clear(),this.copy(this._swapCanvas)},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){void 0===c&&(c=0),void 0===d&&(d=0),void 0===e&&(e=this.width),void 0===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((void 0===a||null===a)&&(a=!1),(void 0===b||null===b)&&(b=!1),(void 0===d||null===d)&&(d=!1),a||b||d){void 0===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){void 0===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 void 0===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((void 0===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,(void 0===g||null===g)&&(g=a.x),(void 0===h||null===h)&&(h=a.y),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(void 0===b||null===b)&&(b=0),(void 0===d||null===d)&&(d=0),e&&(this._size.x=e),f&&(this._size.y=f),(void 0===g||null===g)&&(g=b),(void 0===h||null===h)&&(h=d),(void 0===i||null===i)&&(i=this._size.x),(void 0===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),void 0===q&&(q=null),void 0===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)},drawGroup:function(a,b,c){return a.total>0&&a.forEachExists(this.copy,this,null,null,null,null,null,null,null,null,null,null,null,null,null,null,b,c),this},shadow:function(a,b,c,d){void 0===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 void 0===d||null===d?this.draw(b).blendSourceAtop():this.draw(b,d.x,d.y,d.width,d.height).blendSourceAtop(),void 0===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 void 0===e&&(e=255),void 0===f&&(f=!1),void 0===g&&(g=b),void 0===h&&(h=c),void 0===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},text:function(a,b,c,d,e,f){void 0===b&&(b=0),void 0===c&&(c=0),void 0===d&&(d="14px Courier"),void 0===e&&(e="rgb(255,255,255)"),void 0===f&&(f=!0);var g=this.context.font;this.context.font=d,f&&(this.context.fillStyle="rgb(0,0,0)",this.context.fillText(a,b+1,c+1)),this.context.fillStyle=e,this.context.fillText(a,b,c),this.context.font=g},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(void 0===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,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,PIXI.Graphics.prototype.lineStyle=function(a,b,c){return this.lineWidth=a||0,this.lineColor=b||0,this.lineAlpha=void 0===c?1:c,this.currentPath&&(this.currentPath.shape.points.length?this.drawShape(new PIXI.Polygon(this.currentPath.shape.points.slice(-2))):(this.currentPath.lineWidth=this.lineWidth,this.currentPath.lineColor=this.lineColor,this.currentPath.lineAlpha=this.lineAlpha)),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||this.moveTo(0,0),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){if(d===e)return this;void 0===f&&(f=!1),!f&&d>=e?e+=2*Math.PI:f&&e>=d&&(d+=2*Math.PI);var g=f?-1*(d-e):e-d,h=40*Math.ceil(Math.abs(g)/(2*Math.PI));if(0===g)return this;var i=a+Math.cos(d)*c,j=b+Math.sin(d)*c;f&&this.filling?this.moveTo(a,b):this.moveTo(i,j);for(var k=this.currentPath.shape.points,l=g/(2*h),m=2*l,n=Math.cos(l),o=Math.sin(l),p=h-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);k.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){(a instanceof c.Polygon||a instanceof PIXI.Polygon)&&(a=a.points);var b=a;if(!Array.isArray(b)){b=new Array(arguments.length);for(var d=0;dp?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._currentBounds=this._bounds}return this._currentBounds},PIXI.Graphics.prototype.containsPoint=function(a){this.worldTransform.applyInverse(a,tempPoint);for(var b=this.graphicsData,c=0;ch?h:a,b=h+j>b?h+j:b,d=d>i?i:d,e=i+k>e?i+k:e;else if(n===PIXI.Graphics.CIRC)h=f.x,i=f.y,j=f.radius+o/2,k=f.radius+o/2,a=a>h-j?h-j:a,b=h+j>b?h+j:b,d=d>i-k?i-k:d,e=i+k>e?i+k:e;else if(n===PIXI.Graphics.ELIP)h=f.x,i=f.y,j=f.width+o/2,k=f.height+o/2,a=a>h-j?h-j:a,b=h+j>b?h+j:b,d=d>i-k?i-k:d,e=i+k>e?i+k:e;else{g=f.points;for(var p=0;ph-o?h-o:a,b=h+o>b?h+o:b,d=d>i-o?i-o:d,e=i+o>e?i+o:e}}else a=0,b=0,d=0,e=0;var q=this.boundsPadding;this._localBounds.x=a-q,this._localBounds.width=b-a+2*q,this._localBounds.y=d-q,this._localBounds.height=e-d+2*q},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,a instanceof c.Polygon&&(a=a.clone(),a.flatten());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},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.GraphicsData=function(a,b,c,d,e,f,g){this.lineWidth=a,this.lineColor=b,this.lineAlpha=c,this._lineTint=b,this.fillColor=d,this.fillAlpha=e,this._fillTint=d,this.fill=f,this.shape=g,this.type=g.type},PIXI.GraphicsData.prototype.constructor=PIXI.GraphicsData,PIXI.GraphicsData.prototype.clone=function(){return new GraphicsData(this.lineWidth,this.lineColor,this.lineAlpha,this.fillColor,this.fillAlpha,this.fill,this.shape)},c.Graphics=function(a,b,d){void 0===b&&(b=0),void 0===d&&(d=0),this.type=c.GRAPHICS,this.physicsType=c.SPRITE,PIXI.Graphics.call(this),c.Component.Core.init.call(this,a,b,d,"",null)},c.Graphics.prototype=Object.create(PIXI.Graphics.prototype),c.Graphics.prototype.constructor=c.Graphics,c.Component.Core.install.call(c.Graphics.prototype,["Angle","AutoCull","Bounds","Destroy","FixedToCamera","InputEnabled","InWorld","LifeSpan","PhysicsBody","Reset"]),c.Graphics.prototype.preUpdatePhysics=c.Component.PhysicsBody.preUpdate,c.Graphics.prototype.preUpdateLifeSpan=c.Component.LifeSpan.preUpdate,c.Graphics.prototype.preUpdateInWorld=c.Component.InWorld.preUpdate,c.Graphics.prototype.preUpdateCore=c.Component.Core.preUpdate,c.Graphics.prototype.preUpdate=function(){return this.preUpdatePhysics()&&this.preUpdateLifeSpan()&&this.preUpdateInWorld()?this.preUpdateCore():!1},c.Graphics.prototype.destroy=function(a){this.clear(),c.Component.Destroy.prototype.destroy.call(this,a)},c.Graphics.prototype.drawTriangle=function(a,b){void 0===b&&(b=!1);var d=new c.Polygon(a);if(b){var e=new c.Point(this.game.camera.x-a[0].x,this.game.camera.y-a[0].y),f=new c.Point(a[1].x-a[0].x,a[1].y-a[0].y),g=new c.Point(a[1].x-a[2].x,a[1].y-a[2].y),h=g.cross(f);e.dot(h)>0&&this.drawPolygon(d)}else this.drawPolygon(d)},c.Graphics.prototype.drawTriangles=function(a,b,d){void 0===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;e0&&(j+=c[k-1]),h=j+l}else for(var k=0;kq&&Math.abs(q)>o&&(q=-o),0!==q){var m=q*(b.length-1);p+=m}this.canvas.height=p*this._res,this.context.scale(this._res,this._res),navigator.isCocoonJS&&this.context.clearRect(0,0,this.canvas.width,this.canvas.height),this.style.backgroundColor&&(this.context.fillStyle=this.style.backgroundColor,this.context.fillRect(0,0,this.canvas.width,this.canvas.height)),this.context.fillStyle=this.style.fill,this.context.font=this.style.font,this.context.strokeStyle=this.style.stroke,this.context.textBaseline="alphabetic",this.context.lineWidth=this.style.strokeThickness,this.context.lineCap="round",this.context.lineJoin="round";var r,s;for(this._charCount=0,g=0;g0&&(s+=q*g),"right"===this.style.align?r+=e-d[g]:"center"===this.style.align&&(r+=(e-d[g])/2),this.autoRound&&(r=Math.round(r),s=Math.round(s)),this.colors.length>0||this.strokeColors.length>0?this.updateLine(b[g],r,s):(this.style.stroke&&this.style.strokeThickness&&(this.updateShadow(this.style.shadowStroke),0===c?this.context.strokeText(b[g],r,s):this.renderTabLine(b[g],r,s,!1)),this.style.fill&&(this.updateShadow(this.style.shadowFill),0===c?this.context.fillText(b[g],r,s):this.renderTabLine(b[g],r,s,!0)));this.updateTexture()},c.Text.prototype.renderTabLine=function(a,b,c,d){var e=a.split(/(?:\t)/),f=this.style.tabs,g=0;if(Array.isArray(f))for(var h=0,i=0;i0&&(h+=f[i-1]),g=b+h,d?this.context.fillText(e[i],g,c):this.context.strokeText(e[i],g,c);else for(var i=0;ie?(g>0&&(b+="\n"),b+=f[g]+" ",e=this.style.wordWrapWidth-h):(e-=i,b+=f[g]+" ")}dd&&(this.style.wordWrapWidth=d)),this.updateTexture(),this},c.Text.prototype.updateTexture=function(){var a=this.texture.baseTexture,b=this.texture.crop,c=this.texture.frame,d=this.canvas.width,e=this.canvas.height;if(a.width=d,a.height=e,b.width=d,b.height=e,c.width=d,c.height=e,this.texture.width=d,this.texture.height=e,this._width=d,this._height=e,this.textBounds){var f=this.textBounds.x,g=this.textBounds.y;"right"===this.style.boundsAlignH?f=this.textBounds.width-this.canvas.width:"center"===this.style.boundsAlignH&&(f=this.textBounds.halfWidth-this.canvas.width/2),"bottom"===this.style.boundsAlignV?g=this.textBounds.height-this.canvas.height:"middle"===this.style.boundsAlignV&&(g=this.textBounds.halfHeight-this.canvas.height/2),this.pivot.x=-f,this.pivot.y=-g}this.renderable=0!==d&&0!==e,this.texture.baseTexture.dirty()},c.Text.prototype._renderWebGL=function(a){this.dirty&&(this.updateText(),this.dirty=!1),PIXI.Sprite.prototype._renderWebGL.call(this,a)},c.Text.prototype._renderCanvas=function(a){this.dirty&&(this.updateText(),this.dirty=!1),PIXI.Sprite.prototype._renderCanvas.call(this,a)},c.Text.prototype.determineFontProperties=function(a){var b=c.Text.fontPropertiesCache[a];if(!b){b={};var d=c.Text.fontPropertiesCanvas,e=c.Text.fontPropertiesContext;e.font=a;var f=Math.ceil(e.measureText("|MÉq").width),g=Math.ceil(e.measureText("|MÉq").width),h=2*g;if(g=1.4*g|0,d.width=f,d.height=h,e.fillStyle="#f00",e.fillRect(0,0,f,h),e.font=a,e.textBaseline="alphabetic",e.fillStyle="#000",e.fillText("|MÉq",0,g),!e.getImageData(0,0,f,h))return b.ascent=g,b.descent=g+6,b.fontSize=b.ascent+b.descent,c.Text.fontPropertiesCache[a]=b,b;var i,j,k=e.getImageData(0,0,f,h).data,l=k.length,m=4*f,n=0,o=!1;for(i=0;g>i;i++){for(j=0;m>j;j+=4)if(255!==k[n+j]){o=!0;break}if(o)break;n+=m}for(b.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}b.descent=i-g,b.descent+=6,b.fontSize=b.ascent+b.descent,c.Text.fontPropertiesCache[a]=b}return b},c.Text.prototype.getBounds=function(a){return this.dirty&&(this.updateText(),this.dirty=!1),PIXI.Sprite.prototype.getBounds.call(this,a)},Object.defineProperty(c.Text.prototype,"text",{get:function(){return this._text},set:function(a){a!==this._text&&(this._text=a.toString()||"",this.dirty=!0,this.parent&&this.updateTransform())}}),Object.defineProperty(c.Text.prototype,"cssFont",{get:function(){return this.componentsToFont(this._fontComponents)},set:function(a){a=a||"bold 20pt Arial",this._fontComponents=this.fontToComponents(a),this.updateFont(this._fontComponents)}}),Object.defineProperty(c.Text.prototype,"font",{get:function(){return this._fontComponents.fontFamily},set:function(a){a=a||"Arial",a=a.trim(),/^(?:inherit|serif|sans-serif|cursive|fantasy|monospace)$/.exec(a)||/['",]/.exec(a)||(a="'"+a+"'"),this._fontComponents.fontFamily=a,this.updateFont(this._fontComponents)}}),Object.defineProperty(c.Text.prototype,"fontSize",{get:function(){var a=this._fontComponents.fontSize;return a&&/(?:^0$|px$)/.exec(a)?parseInt(a,10):a},set:function(a){a=a||"0","number"==typeof a&&(a+="px"),this._fontComponents.fontSize=a,this.updateFont(this._fontComponents)}}),Object.defineProperty(c.Text.prototype,"fontWeight",{get:function(){return this._fontComponents.fontWeight||"normal"},set:function(a){a=a||"normal",this._fontComponents.fontWeight=a,this.updateFont(this._fontComponents)}}),Object.defineProperty(c.Text.prototype,"fontStyle",{get:function(){return this._fontComponents.fontStyle||"normal"},set:function(a){a=a||"normal",this._fontComponents.fontStyle=a,this.updateFont(this._fontComponents)}}),Object.defineProperty(c.Text.prototype,"fontVariant",{get:function(){return this._fontComponents.fontVariant||"normal"},set:function(a){a=a||"normal",this._fontComponents.fontVariant=a,this.updateFont(this._fontComponents)}}),Object.defineProperty(c.Text.prototype,"fill",{get:function(){return this.style.fill},set:function(a){a!==this.style.fill&&(this.style.fill=a,this.dirty=!0)}}),Object.defineProperty(c.Text.prototype,"align",{get:function(){return this.style.align},set:function(a){a!==this.style.align&&(this.style.align=a,this.dirty=!0)}}),Object.defineProperty(c.Text.prototype,"resolution",{get:function(){return this._res},set:function(a){a!==this._res&&(this._res=a,this.dirty=!0)}}),Object.defineProperty(c.Text.prototype,"tabs",{get:function(){return this.style.tabs},set:function(a){a!==this.style.tabs&&(this.style.tabs=a,this.dirty=!0)}}),Object.defineProperty(c.Text.prototype,"boundsAlignH",{get:function(){return this.style.boundsAlignH},set:function(a){a!==this.style.boundsAlignH&&(this.style.boundsAlignH=a,this.dirty=!0)}}),Object.defineProperty(c.Text.prototype,"boundsAlignV",{get:function(){return this.style.boundsAlignV},set:function(a){a!==this.style.boundsAlignV&&(this.style.boundsAlignV=a,this.dirty=!0)}}),Object.defineProperty(c.Text.prototype,"stroke",{get:function(){return this.style.stroke},set:function(a){a!==this.style.stroke&&(this.style.stroke=a,this.dirty=!0)}}),Object.defineProperty(c.Text.prototype,"strokeThickness",{get:function(){return this.style.strokeThickness},set:function(a){a!==this.style.strokeThickness&&(this.style.strokeThickness=a,this.dirty=!0)}}),Object.defineProperty(c.Text.prototype,"wordWrap",{get:function(){return this.style.wordWrap},set:function(a){a!==this.style.wordWrap&&(this.style.wordWrap=a,this.dirty=!0)}}),Object.defineProperty(c.Text.prototype,"wordWrapWidth",{get:function(){return this.style.wordWrapWidth},set:function(a){a!==this.style.wordWrapWidth&&(this.style.wordWrapWidth=a,this.dirty=!0)}}),Object.defineProperty(c.Text.prototype,"lineSpacing",{get:function(){return this._lineSpacing},set:function(a){a!==this._lineSpacing&&(this._lineSpacing=parseFloat(a),this.dirty=!0,this.parent&&this.updateTransform())}}),Object.defineProperty(c.Text.prototype,"shadowOffsetX",{get:function(){return this.style.shadowOffsetX},set:function(a){a!==this.style.shadowOffsetX&&(this.style.shadowOffsetX=a,this.dirty=!0)}}),Object.defineProperty(c.Text.prototype,"shadowOffsetY",{get:function(){return this.style.shadowOffsetY},set:function(a){a!==this.style.shadowOffsetY&&(this.style.shadowOffsetY=a,this.dirty=!0)}}),Object.defineProperty(c.Text.prototype,"shadowColor",{get:function(){return this.style.shadowColor},set:function(a){a!==this.style.shadowColor&&(this.style.shadowColor=a,this.dirty=!0)}}),Object.defineProperty(c.Text.prototype,"shadowBlur",{get:function(){return this.style.shadowBlur},set:function(a){a!==this.style.shadowBlur&&(this.style.shadowBlur=a,this.dirty=!0)}}),Object.defineProperty(c.Text.prototype,"shadowStroke",{get:function(){return this.style.shadowStroke},set:function(a){a!==this.style.shadowStroke&&(this.style.shadowStroke=a,this.dirty=!0)}}),Object.defineProperty(c.Text.prototype,"shadowFill",{get:function(){return this.style.shadowFill},set:function(a){a!==this.style.shadowFill&&(this.style.shadowFill=a,this.dirty=!0)}}),Object.defineProperty(c.Text.prototype,"width",{get:function(){return this.dirty&&(this.updateText(),this.dirty=!1),this.scale.x*this.texture.frame.width},set:function(a){this.scale.x=a/this.texture.frame.width,this._width=a}}),Object.defineProperty(c.Text.prototype,"height",{get:function(){return this.dirty&&(this.updateText(),this.dirty=!1),this.scale.y*this.texture.frame.height},set:function(a){this.scale.y=a/this.texture.frame.height,this._height=a}}),c.Text.fontPropertiesCache={},c.Text.fontPropertiesCanvas=document.createElement("canvas"),c.Text.fontPropertiesContext=c.Text.fontPropertiesCanvas.getContext("2d"),c.BitmapText=function(a,b,d,e,f,g,h){b=b||0,d=d||0,e=e||"",f=f||"",g=g||32,h=h||"left",PIXI.DisplayObjectContainer.call(this),this.type=c.BITMAPTEXT,this.physicsType=c.SPRITE,this.textWidth=0,this.textHeight=0,this.anchor=new c.Point,this._prevAnchor=new c.Point,this._glyphs=[],this._maxWidth=0,this._text=f,this._data=a.cache.getBitmapFont(e),this._font=e,this._fontSize=g,this._align=h,this._tint=16777215,this.updateText(),this.dirty=!1,c.Component.Core.init.call(this,a,b,d,"",null)},c.BitmapText.prototype=Object.create(PIXI.DisplayObjectContainer.prototype),c.BitmapText.prototype.constructor=c.BitmapText,c.Component.Core.install.call(c.BitmapText.prototype,["Angle","AutoCull","Bounds","Destroy","FixedToCamera","InputEnabled","InWorld","LifeSpan","PhysicsBody","Reset"]),c.BitmapText.prototype.preUpdatePhysics=c.Component.PhysicsBody.preUpdate,c.BitmapText.prototype.preUpdateLifeSpan=c.Component.LifeSpan.preUpdate,c.BitmapText.prototype.preUpdateInWorld=c.Component.InWorld.preUpdate,c.BitmapText.prototype.preUpdateCore=c.Component.Core.preUpdate,c.BitmapText.prototype.preUpdate=function(){return this.preUpdatePhysics()&&this.preUpdateLifeSpan()&&this.preUpdateInWorld()?this.preUpdateCore():!1},c.BitmapText.prototype.postUpdate=function(){c.Component.PhysicsBody.postUpdate.call(this),c.Component.FixedToCamera.postUpdate.call(this),this.body&&this.body.type===c.Physics.ARCADE&&(this.textWidth!==this.body.sourceWidth||this.textHeight!==this.body.sourceHeight)&&this.body.setSize(this.textWidth,this.textHeight)},c.BitmapText.prototype.setText=function(a){this.text=a},c.BitmapText.prototype.scanLine=function(a,b,c){for(var d=0,e=0,f=-1,g=null,h=this._maxWidth>0?this._maxWidth:null,i=[],j=0;j=h&&f>-1)return{width:e,text:c.substr(0,j-(j-f)),end:k,chars:i};e+=m.xAdvance*b,i.push(d+m.xOffset*b),d+=m.xAdvance*b,g=l}}return{width:e,text:c,end:k,chars:i}},c.BitmapText.prototype.updateText=function(){var a=this._data.font;if(a){var b=this.text,c=this._fontSize/a.size,d=[],e=0;this.textWidth=0;do{var f=this.scanLine(a,c,b);f.y=e,d.push(f),f.width>this.textWidth&&(this.textWidth=f.width),e+=a.lineHeight*c,b=b.substr(f.text.length+1)}while(f.end===!1);this.textHeight=e;for(var g=0,h=0,i=this.textWidth*this.anchor.x,j=this.textHeight*this.anchor.y,k=0;k0&&(this._fontSize=a,this.updateText())}}),Object.defineProperty(c.BitmapText.prototype,"text",{get:function(){return this._text},set:function(a){a!==this._text&&(this._text=a.toString()||"",this.updateText())}}),Object.defineProperty(c.BitmapText.prototype,"maxWidth",{get:function(){return this._maxWidth},set:function(a){a!==this._maxWidth&&(this._maxWidth=a,this.updateText())}}),c.RetroFont=function(a,b,d,e,f,g,h,i,j,k){if(!a.cache.checkImageKey(b))return!1;(void 0===g||null===g)&&(g=a.cache.getImage(b).width/d),this.characterWidth=d,this.characterHeight=e,this.characterSpacingX=h||0,this.characterSpacingY=i||0,this.characterPerRow=g,this.offsetX=j||0,this.offsetY=k||0,this.align="left",this.multiLine=!1,this.autoUpperCase=!0,this.customSpacingX=0,this.customSpacingY=0,this.fixedWidth=0,this.fontSet=a.cache.getImage(b),this._text="",this.grabData=[],this.frameData=new c.FrameData;for(var l=this.offsetX,m=this.offsetY,n=0,o=0;o?@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){void 0===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 this.fixedWidth>0?this.resize(this.fixedWidth,this.characterHeight,!0):this.resize(this._text.length*(this.characterWidth+this.customSpacingX),this.characterHeight,!0),a=0,this.align===c.RetroFont.ALIGN_RIGHT?a=this.width-this._text.length*(this.characterWidth+this.customSpacingX):this.align===c.RetroFont.ALIGN_CENTER&&(a=this.width/2-this._text.length*(this.characterWidth+this.customSpacingX)/2,a+=this.customSpacingX/2),0>a&&(a=0),this.pasteLine(this._text,a,0,this.customSpacingX);this.requiresReTint=!0},c.RetroFont.prototype.pasteLine=function(a,b,c,d){for(var e=0;e=0&&(this.stamp.frame=this.grabData[a.charCodeAt(e)],this.renderXY(this.stamp,b,c,!1),b+=this.characterWidth+d,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; +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.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.type=c.ROPE,this._scroll=new c.Point,PIXI.Rope.call(this,PIXI.TextureCache.__default,this.points),c.Component.Core.init.call(this,a,b,d,e,f)},c.Rope.prototype=Object.create(PIXI.Rope.prototype),c.Rope.prototype.constructor=c.Rope,c.Component.Core.install.call(c.Rope.prototype,["Angle","Animation","AutoCull","Bounds","BringToTop","Crop","Delta","Destroy","FixedToCamera","InputEnabled","InWorld","LifeSpan","LoadTexture","Overlap","PhysicsBody","Reset","ScaleMinMax","Smoothed"]),c.Rope.prototype.preUpdatePhysics=c.Component.PhysicsBody.preUpdate,c.Rope.prototype.preUpdateLifeSpan=c.Component.LifeSpan.preUpdate,c.Rope.prototype.preUpdateInWorld=c.Component.InWorld.preUpdate,c.Rope.prototype.preUpdateCore=c.Component.Core.preUpdate,c.Rope.prototype.preUpdate=function(){return 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.preUpdatePhysics()&&this.preUpdateLifeSpan()&&this.preUpdateInWorld()?this.preUpdateCore():!1},c.Rope.prototype.update=function(){this._hasUpdateAnimation&&this.updateAnimation.call(this)},c.Rope.prototype.reset=function(a,b){return c.Component.Reset.prototype.reset.call(this,a,b),this.tilePosition.x=0,this.tilePosition.y=0,this},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;k=1)&&(l.touch=!0),(window.navigator.msPointerEnabled||window.navigator.pointerEnabled)&&(l.mspointer=!0),l.cocoonJS||("onwheel"in window||l.ie&&"WheelEvent"in window?l.wheelEvent="wheel":"onmousewheel"in window?l.wheelEvent="mousewheel":l.firefox&&"MouseScrollEvent"in window&&(l.wheelEvent="DOMMouseScroll"))}function d(){for(var a=["requestFullscreen","requestFullScreen","webkitRequestFullscreen","webkitRequestFullScreen","msRequestFullscreen","msRequestFullScreen","mozRequestFullScreen","mozRequestFullscreen"],b=document.createElement("div"),c=0;c0&&"none"!==a}var l=this;a(),g(),f(),e(),k(),h(),b(),d(),c()},c.Device.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},c.Device.canPlayVideo=function(a){return"webm"===a&&(this.webmVideo||this.vp9Video)?!0:"mp4"===a&&(this.mp4Video||this.h264Video)?!0:"ogg"===a&&this.oggVideo?!0:"mpeg"===a&&this.hlsVideo?!0:!1},c.Device.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.isAndroidStockBrowser=function(){var a=window.navigator.userAgent.match(/Android.*AppleWebKit\/([\d.]+)/);return a&&a[1]<537},c.DOM={getOffset:function(a,b){b=b||new c.Point;var d=a.getBoundingClientRect(),e=c.DOM.scrollY,f=c.DOM.scrollX,g=document.documentElement.clientTop,h=document.documentElement.clientLeft;return b.x=d.left+f-h,b.y=d.top+e-g,b},getBounds:function(a,b){return void 0===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.visualBounds:1===a.nodeType?this.getBounds(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},inLayoutViewport:function(a,b){var c=this.getBounds(a,b);return!!c&&c.bottom>=0&&c.right>=0&&c.top<=this.layoutBounds.width&&c.left<=this.layoutBounds.height},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.visualBounds.height>this.visualBounds.width?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.visualBounds.height>this.visualBounds.width?d:e},visualBounds:new c.Rectangle,layoutBounds:new c.Rectangle,documentBounds:new c.Rectangle},c.Device.whenReady(function(a){var b=window&&"pageXOffset"in window?function(){return window.pageXOffset}:function(){return document.documentElement.scrollLeft},d=window&&"pageYOffset"in window?function(){return window.pageYOffset}:function(){return document.documentElement.scrollTop};Object.defineProperty(c.DOM,"scrollX",{get:b}),Object.defineProperty(c.DOM,"scrollY",{get:d}),Object.defineProperty(c.DOM.visualBounds,"x",{get:b}),Object.defineProperty(c.DOM.visualBounds,"y",{get:d}),Object.defineProperty(c.DOM.layoutBounds,"x",{value:0}),Object.defineProperty(c.DOM.layoutBounds,"y",{value:0});var e=a.desktop&&document.documentElement.clientWidth<=window.innerWidth&&document.documentElement.clientHeight<=window.innerHeight;if(e){var f=function(){return Math.max(window.innerWidth,document.documentElement.clientWidth)},g=function(){return Math.max(window.innerHeight,document.documentElement.clientHeight)};Object.defineProperty(c.DOM.visualBounds,"width",{get:f}),Object.defineProperty(c.DOM.visualBounds,"height",{get:g}),Object.defineProperty(c.DOM.layoutBounds,"width",{get:f}),Object.defineProperty(c.DOM.layoutBounds,"height",{get:g})}else Object.defineProperty(c.DOM.visualBounds,"width",{get:function(){return window.innerWidth}}),Object.defineProperty(c.DOM.visualBounds,"height",{get:function(){return window.innerHeight}}),Object.defineProperty(c.DOM.layoutBounds,"width",{get:function(){var a=document.documentElement.clientWidth,b=window.innerWidth;return b>a?b:a}}),Object.defineProperty(c.DOM.layoutBounds,"height",{get:function(){var a=document.documentElement.clientHeight,b=window.innerHeight;return b>a?b:a}});Object.defineProperty(c.DOM.documentBounds,"x",{value:0}),Object.defineProperty(c.DOM.documentBounds,"y",{value:0}),Object.defineProperty(c.DOM.documentBounds,"width",{get:function(){var a=document.documentElement;return Math.max(a.clientWidth,a.offsetWidth,a.scrollWidth)}}),Object.defineProperty(c.DOM.documentBounds,"height",{get:function(){var a=document.documentElement;return Math.max(a.clientHeight,a.offsetHeight,a.scrollHeight)}})},null,!0),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 void 0===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){var c=["i","mozI","oI","webkitI","msI"];for(var d in c){var e=c[d]+"mageSmoothingEnabled";if(e in a)return a[e]=b,a}return 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.RequestAnimationFrame=function(a,b){void 0===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 void 0===c&&(c=1e-4),a>b-c},fuzzyCeil:function(a,b){return void 0===b&&(b=1e-4),Math.ceil(a-b)},fuzzyFloor:function(a,b){return void 0===b&&(b=1e-4),Math.floor(a+b)},average:function(){for(var a=0,b=0;b=0?a:a+2*Math.PI},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},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)},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)},roundAwayFromZero:function(a){return a>0?Math.ceil(a):Math.floor(a)},sinCosGenerator:function(a,b,c,d){void 0===b&&(b=1),void 0===c&&(c=1),void 0===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}},distance:function(a,b,c,d){var e=a-c,f=b-d;return Math.sqrt(e*e+f*f)},distanceSq:function(a,b,c,d){var e=a-c,f=b-d;return e*e+f*f},distancePow:function(a,b,c,d,e){return void 0===e&&(e=2),Math.sqrt(Math.pow(c-a,e)+Math.pow(d-b,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 void 0===c&&(c=0),a>b||c>b?1:c>a||c>a?0:(a-c)/b}};var j=Math.PI/180,k=180/Math.PI;return c.Math.degToRad=function(a){return a*j},c.Math.radToDeg=function(a){return a*k},c.RandomDataGenerator=function(a){void 0===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){if(this.s0=this.hash(" "),this.s1=this.hash(this.s0),this.s2=this.hash(this.s1),this.c=1,a)for(var b=0;b>>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)+.5)]},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){void 0===c&&(c=!1),(void 0===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){void 0===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.easeMap={Power0:c.Easing.Power0,Power1:c.Easing.Power1,Power2:c.Easing.Power2,Power3:c.Easing.Power3,Power4:c.Easing.Power4,Linear:c.Easing.Linear.None,Quad:c.Easing.Quadratic.Out,Cubic:c.Easing.Cubic.Out,Quart:c.Easing.Quartic.Out,Quint:c.Easing.Quintic.Out,Sine:c.Easing.Sinusoidal.Out,Expo:c.Easing.Exponential.Out,Circ:c.Easing.Circular.Out,Elastic:c.Easing.Elastic.Out,Back:c.Easing.Back.Out,Bounce:c.Easing.Bounce.Out,"Quad.easeIn":c.Easing.Quadratic.In,"Cubic.easeIn":c.Easing.Cubic.In,"Quart.easeIn":c.Easing.Quartic.In,"Quint.easeIn":c.Easing.Quintic.In,"Sine.easeIn":c.Easing.Sinusoidal.In,"Expo.easeIn":c.Easing.Exponential.In,"Circ.easeIn":c.Easing.Circular.In,"Elastic.easeIn":c.Easing.Elastic.In,"Back.easeIn":c.Easing.Back.In,"Bounce.easeIn":c.Easing.Bounce.In,"Quad.easeOut":c.Easing.Quadratic.Out,"Cubic.easeOut":c.Easing.Cubic.Out,"Quart.easeOut":c.Easing.Quartic.Out,"Quint.easeOut":c.Easing.Quintic.Out,"Sine.easeOut":c.Easing.Sinusoidal.Out,"Expo.easeOut":c.Easing.Exponential.Out,"Circ.easeOut":c.Easing.Circular.Out,"Elastic.easeOut":c.Easing.Elastic.Out,"Back.easeOut":c.Easing.Back.Out,"Bounce.easeOut":c.Easing.Bounce.Out,"Quad.easeInOut":c.Easing.Quadratic.InOut,"Cubic.easeInOut":c.Easing.Cubic.InOut,"Quart.easeInOut":c.Easing.Quartic.InOut,"Quint.easeInOut":c.Easing.Quintic.InOut,"Sine.easeInOut":c.Easing.Sinusoidal.InOut,"Expo.easeInOut":c.Easing.Exponential.InOut,"Circ.easeInOut":c.Easing.Circular.InOut,"Elastic.easeInOut":c.Easing.Elastic.InOut,"Back.easeInOut":c.Easing.Back.InOut,"Bounce.easeInOut":c.Easing.Bounce.InOut},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;ad;d++)this.removeFrom(a[d]);else if(a.type===c.GROUP&&b)for(var d=0,e=a.children.length;e>d;d++)this.removeFrom(a.children[d]);else{for(d=0,e=this._tweens.length;e>d;d++)a===this._tweens[d].target&&this.remove(this._tweens[d]);for(d=0,e=this._add.length;e>d;d++)a===this._add[d].target&&this.remove(this._add[d])}},add:function(a){a._manager=this,this._add.push(a)},create:function(a){return new c.Tween(a,this.game,this)},remove:function(a){var b=this._tweens.indexOf(a);-1!==b?this._tweens[b].pendingDelete=!0:(b=this._add.indexOf(a),-1!==b&&(this._add[b].pendingDelete=!0))},update:function(){var a=this._add.length,b=this._tweens.length;if(0===b&&0===a)return!1;for(var c=0;b>c;)this._tweens[c].update(this.game.time.time)?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.target===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.game=b,this.target=a,this.manager=d,this.timeline=[],this.reverse=!1,this.timeScale=1,this.repeatCounter=0,this.pendingDelete=!1,this.onStart=new c.Signal,this.onLoop=new c.Signal,this.onRepeat=new c.Signal,this.onChildComplete=new c.Signal,this.onComplete=new c.Signal,this.isRunning=!1,this.current=0,this.properties={},this.chainedTween=null,this.isPaused=!1,this._onUpdateCallback=null,this._onUpdateCallbackContext=null,this._pausedTime=0,this._codePaused=!1,this._hasStarted=!1},c.Tween.prototype={to:function(a,b,d,e,f,g,h){return(void 0===b||0>=b)&&(b=1e3),(void 0===d||null===d)&&(d=c.Easing.Default),void 0===e&&(e=!1),void 0===f&&(f=0),void 0===g&&(g=0),void 0===h&&(h=!1),"string"==typeof d&&this.manager.easeMap[d]&&(d=this.manager.easeMap[d]),this.isRunning?(console.warn("Phaser.Tween.to cannot be called after Tween.start"),this):(this.timeline.push(new c.TweenData(this).to(a,b,d,f,g,h)),e&&this.start(),this)},from:function(a,b,d,e,f,g,h){return void 0===b&&(b=1e3),(void 0===d||null===d)&&(d=c.Easing.Default),void 0===e&&(e=!1),void 0===f&&(f=0),void 0===g&&(g=0),void 0===h&&(h=!1),"string"==typeof d&&this.manager.easeMap[d]&&(d=this.manager.easeMap[d]),this.isRunning?(console.warn("Phaser.Tween.from cannot be called after Tween.start"),this):(this.timeline.push(new c.TweenData(this).from(a,b,d,f,g,h)),e&&this.start(),this)},start:function(a){if(void 0===a&&(a=0),null===this.game||null===this.target||0===this.timeline.length||this.isRunning)return this;for(var b=0;ba||a>this.timeline.length-1)&&(a=0),this.current=a,this.timeline[this.current].start(),this},stop:function(a){return void 0===a&&(a=!1),this.isRunning=!1,this._onUpdateCallback=null,this._onUpdateCallbackContext=null,a&&(this.onComplete.dispatch(this.target,this),this.chainedTween&&this.chainedTween.start()),this.manager.remove(this),this},updateTweenData:function(a,b,c){if(0===this.timeline.length)return this;if(void 0===c&&(c=0),-1===c)for(var d=0;d0?arguments[a-1].chainedTween=arguments[a]:this.chainedTween=arguments[a];return this},loop:function(a){return void 0===a&&(a=!0),a?this.repeatAll(-1):this.repeatCounter=0,this},onUpdateCallback:function(a,b){return this._onUpdateCallback=a,this._onUpdateCallbackContext=b,this},pause:function(){this.isPaused=!0,this._codePaused=!0,this._pausedTime=this.game.time.time},_pause:function(){this._codePaused||(this.isPaused=!0,this._pausedTime=this.game.time.time)},resume:function(){if(this.isPaused){this.isPaused=!1,this._codePaused=!1;for(var a=0;a0?(this.repeatCounter--,this.timeline[this.current].start(),this.onRepeat.dispatch(this.target,this),!0):(this.isRunning=!1,this.onComplete.dispatch(this.target,this),this.chainedTween&&this.chainedTween.start(),!1):(this.onChildComplete.dispatch(this.target,this),this.timeline[this.current].start(),!0)}},generateData:function(a,b){if(null===this.game||null===this.target)return null;void 0===a&&(a=60),void 0===b&&(b=[]);for(var c=0;c0?!1:!0,this.isFrom)for(var a in this.vStartCache)this.vStart[a]=this.vEndCache[a],this.vEnd[a]=this.vStartCache[a],this.parent.target[a]=this.vStart[a];return this.value=0,this.yoyoCounter=0,this},loadValues:function(){for(var a in this.parent.properties){if(this.vStart[a]=this.parent.properties[a],Array.isArray(this.vEnd[a])){if(0===this.vEnd[a].length)continue;0===this.percent&&(this.vEnd[a]=[this.vStart[a]].concat(this.vEnd[a]))}"undefined"!=typeof this.vEnd[a]?("string"==typeof this.vEnd[a]&&(this.vEnd[a]=this.vStart[a]+parseFloat(this.vEnd[a],10)),this.parent.properties[a]=this.vEnd[a]):this.vEnd[a]=this.vStart[a],this.vStartCache[a]=this.vStart[a],this.vEndCache[a]=this.vEnd[a]}return this},update:function(a){if(this.isRunning){if(a=this.startTime))return c.TweenData.PENDING;this.isRunning=!0}this.parent.reverse?(this.dt-=this.game.time.elapsedMS*this.parent.timeScale,this.dt=Math.max(this.dt,0)):(this.dt+=this.game.time.elapsedMS*this.parent.timeScale,this.dt=Math.min(this.dt,this.duration)),this.percent=this.dt/this.duration,this.value=this.easingFunction(this.percent);for(var b in this.vEnd){var d=this.vStart[b],e=this.vEnd[b];this.parent.target[b]=Array.isArray(e)?this.interpolationFunction.call(this.interpolationContext,e,this.value):d+(e-d)*this.value}return!this.parent.reverse&&1===this.percent||this.parent.reverse&&0===this.percent?this.repeat():c.TweenData.RUNNING},generateData:function(a){this.dt=this.parent.reverse?this.duration:0;var b=[],c=!1,d=1/a*1e3;do{this.parent.reverse?(this.dt-=d,this.dt=Math.max(this.dt,0)):(this.dt+=d,this.dt=Math.min(this.dt,this.duration)),this.percent=this.dt/this.duration,this.value=this.easingFunction(this.percent);var e={};for(var f in this.vEnd){var g=this.vStart[f],h=this.vEnd[f];e[f]=Array.isArray(h)?this.interpolationFunction(h,this.value):g+(h-g)*this.value}b.push(e),(!this.parent.reverse&&1===this.percent||this.parent.reverse&&0===this.percent)&&(c=!0)}while(!c);if(this.yoyo){var i=b.slice();i.reverse(),b=b.concat(i)}return b},repeat:function(){if(this.yoyo){if(this.inReverse&&0===this.repeatCounter)return c.TweenData.COMPLETE;this.inReverse=!this.inReverse}else if(0===this.repeatCounter)return c.TweenData.COMPLETE;if(this.inReverse)for(var a in this.vStartCache)this.vStart[a]=this.vEndCache[a],this.vEnd[a]=this.vStartCache[a];else{for(var a in this.vStartCache)this.vStart[a]=this.vStartCache[a],this.vEnd[a]=this.vEndCache[a];this.repeatCounter>0&&this.repeatCounter--}return this.startTime=this.game.time.time,this.yoyo&&this.inReverse?this.startTime+=this.yoyoDelay:this.inReverse||(this.startTime+=this.repeatDelay),this.dt=this.parent.reverse?this.duration:0,c.TweenData.LOOPED}},c.TweenData.prototype.constructor=c.TweenData,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 0===a?0:1===a?1:1-Math.cos(a*Math.PI/2)},Out:function(a){return 0===a?0:1===a?1:Math.sin(a*Math.PI/2)},InOut:function(a){return 0===a?0:1===a?1:.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.Easing.Power0=c.Easing.Linear.None,c.Easing.Power1=c.Easing.Quadratic.Out,c.Easing.Power2=c.Easing.Cubic.Out,c.Easing.Power3=c.Easing.Quartic.Out,c.Easing.Power4=c.Easing.Quintic.Out,c.Time=function(a){this.game=a,this.time=0,this.prevTime=0,this.now=0,this.elapsed=0,this.elapsedMS=0,this.physicsElapsed=0,this.physicsElapsedMS=0,this.desiredFps=60,this.suggestedFps=null,this.slowMotion=1,this.advancedTiming=!1,this.frames=0,this.fps=0,this.fpsMin=1e3,this.fpsMax=0,this.msMin=1e3,this.msMax=0,this.pauseDuration=0,this.timeToCall=0,this.timeExpected=0,this.events=new c.Timer(this.game,!1),this._frameCount=0,this._elapsedAccumulator=0,this._started=0,this._timeLastSecond=0,this._pauseStarted=0,this._justResumed=!1,this._timers=[]},c.Time.prototype={boot:function(){this._started=Date.now(),this.time=Date.now(),this.events.start()},add:function(a){return this._timers.push(a),a},create:function(a){void 0===a&&(a=!0);var b=new c.Timer(this.game,a);return this._timers.push(b),b},removeAll:function(){for(var a=0;aa;)this._timers[a].update(this.time)?a++:(this._timers.splice(a,1),b--)},updateAdvancedTiming:function(){this._frameCount++,this._elapsedAccumulator+=this.elapsed,this._frameCount>=2*this.desiredFps&&(this.suggestedFps=5*Math.floor(200/(this._elapsedAccumulator/this._frameCount)),this._frameCount=0,this._elapsedAccumulator=0),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)},gamePaused:function(){this._pauseStarted=Date.now(),this.events.pause();for(var a=this._timers.length;a--;)this._timers[a]._pause()},gameResumed:function(){this.time=Date.now(),this.pauseDuration=this.time-this._pauseStarted,this.events.resume();for(var a=this._timers.length;a--;)this._timers[a]._resume()},totalElapsedSeconds:function(){return.001*(this.time-this._started)},elapsedSince:function(a){return this.time-a},elapsedSecondsSince:function(a){return.001*(this.time-a)},reset:function(){this._started=this.time,this.removeAll()}},c.Time.prototype.constructor=c.Time,c.Timer=function(a,b){void 0===b&&(b=!0),this.game=a,this.running=!1,this.autoDestroy=b,this.expired=!1,this.elapsed=0,this.events=[],this.onComplete=new c.Signal,this.nextTick=0,this.timeCap=1e3,this.paused=!1,this._codePaused=!1,this._started=0,this._pauseStarted=0,this._pauseTotal=0,this._now=Date.now(),this._len=0,this._marked=0,this._i=0,this._diff=0,this._newTick=0},c.Timer.MINUTE=6e4,c.Timer.SECOND=1e3,c.Timer.HALF=500,c.Timer.QUARTER=250,c.Timer.prototype={create:function(a,b,d,e,f,g){a=Math.round(a);var h=a;h+=0===this._now?this.game.time.time:this._now;var i=new c.TimerEvent(this,a,h,d,b,e,f,g);return this.events.push(i),this.order(),this.expired=!1,i},add:function(a,b,c){return this.create(a,!1,0,b,c,Array.prototype.splice.call(arguments,3))},repeat:function(a,b,c,d){return this.create(a,!1,b,c,d,Array.prototype.splice.call(arguments,4))},loop:function(a,b,c){return this.create(a,!0,0,b,c,Array.prototype.splice.call(arguments,3))},start:function(a){if(!this.running){this._started=this.game.time.time+(a||0),this.running=!0;for(var b=0;b0&&(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.events[this._i].pendingDelete;)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},destroy:function(){this.onComplete.removeAll(),this.running=!1,this.events=[],this._len=0,this._i=0}},Object.defineProperty(c.Timer.prototype,"next",{get:function(){return this.nextTick}}),Object.defineProperty(c.Timer.prototype,"duration",{get:function(){return this.running&&this.nextTick>this._now?this.nextTick-this._now:0}}),Object.defineProperty(c.Timer.prototype,"length",{get:function(){return this.events.length}}),Object.defineProperty(c.Timer.prototype,"ms",{get:function(){return this.running?this._now-this._started-this._pauseTotal:0}}),Object.defineProperty(c.Timer.prototype,"seconds",{get:function(){return this.running?.001*this.ms:0}}),c.Timer.prototype.constructor=c.Timer,c.TimerEvent=function(a,b,c,d,e,f,g,h){this.timer=a,this.delay=b,this.tick=c,this.repeatCount=d-1,this.loop=e,this.callback=f,this.callbackContext=g,this.args=h,this.pendingDelete=!1},c.TimerEvent.prototype.constructor=c.TimerEvent,c.AnimationManager=function(a){this.sprite=a,this.game=a.game,this.currentFrame=null,this.currentAnim=null,this.updateIfVisible=!0,this.isLoaded=!1,this._frameData=null,this._anims={},this._outputFrames=[]},c.AnimationManager.prototype={loadFrameData:function(a,b){if(void 0===a)return!1;if(this.isLoaded)for(var c in this._anims)this._anims[c].updateFrameData(a);return this._frameData=a,void 0===b||null===b?this.frame=0:"string"==typeof b?this.frameName=b:this.frame=b,this.isLoaded=!0,!0},copyFrameData:function(a,b){if(this._frameData=a.clone(),this.isLoaded)for(var c in this._anims)this._anims[c].updateFrameData(this._frameData);return void 0===b||null===b?this.frame=0:"string"==typeof b?this.frameName=b:this.frame=b,this.isLoaded=!0,!0},add:function(a,b,d,e,f){return b=b||[],d=d||60,void 0===e&&(e=!1),void 0===f&&(f=b&&"number"==typeof b[0]?!0:!1),this._outputFrames=[],this._frameData.getFrameIndexes(b,f,this._outputFrames),this._anims[a]=new c.Animation(this.game,this.sprite,a,this._frameData,this._outputFrames,d,e),this.currentAnim=this._anims[a],this.sprite.tilingTexture&&(this.sprite.refreshTexture=!0),this._anims[a]},validateFrames:function(a,b){void 0===b&&(b=!0);for(var c=0;cthis._frameData.total)return!1}else if(this._frameData.checkFrameName(a[c])===!1)return!1;return!0},play:function(a,b,c,d){return this._anims[a]?this.currentAnim===this._anims[a]?this.currentAnim.isPlaying===!1?(this.currentAnim.paused=!1,this.currentAnim.play(b,c,d)):this.currentAnim:(this.currentAnim&&this.currentAnim.isPlaying&&this.currentAnim.stop(),this.currentAnim=this._anims[a],this.currentAnim.paused=!1,this.currentFrame=this.currentAnim.currentFrame,this.currentAnim.play(b,c,d)):void 0},stop:function(a,b){void 0===b&&(b=!1),"string"==typeof a?this._anims[a]&&(this.currentAnim=this._anims[a],this.currentAnim.stop(b)):this.currentAnim&&this.currentAnim.stop(b)},update:function(){return this.updateIfVisible&&!this.sprite.visible?!1:this.currentAnim&&this.currentAnim.update()?(this.currentFrame=this.currentAnim.currentFrame,!0):!1},next:function(a){this.currentAnim&&(this.currentAnim.next(a),this.currentFrame=this.currentAnim.currentFrame)},previous:function(a){this.currentAnim&&(this.currentAnim.previous(a),this.currentFrame=this.currentAnim.currentFrame)},getAnimation:function(a){return"string"==typeof a&&this._anims[a]?this._anims[a]:null},refreshFrame:function(){this.sprite.setTexture(PIXI.TextureCache[this.currentFrame.uuid])},destroy:function(){var a=null;for(var a in this._anims)this._anims.hasOwnProperty(a)&&this._anims[a].destroy();this._anims={},this._outputFrames=[],this._frameData=null,this.currentAnim=null,this.currentFrame=null,this.sprite=null,this.game=null}},c.AnimationManager.prototype.constructor=c.AnimationManager,Object.defineProperty(c.AnimationManager.prototype,"frameData",{get:function(){return this._frameData}}),Object.defineProperty(c.AnimationManager.prototype,"frameTotal",{get:function(){return this._frameData.total}}),Object.defineProperty(c.AnimationManager.prototype,"paused",{get:function(){return this.currentAnim.isPaused},set:function(a){this.currentAnim.paused=a}}),Object.defineProperty(c.AnimationManager.prototype,"name",{get:function(){return this.currentAnim?this.currentAnim.name:void 0}}),Object.defineProperty(c.AnimationManager.prototype,"frame",{get:function(){return this.currentFrame?this.currentFrame.index:void 0},set:function(a){"number"==typeof a&&this._frameData&&null!==this._frameData.getFrame(a)&&(this.currentFrame=this._frameData.getFrame(a),this.currentFrame&&this.sprite.setFrame(this.currentFrame))}}),Object.defineProperty(c.AnimationManager.prototype,"frameName",{get:function(){return this.currentFrame?this.currentFrame.name:void 0},set:function(a){"string"==typeof a&&this._frameData&&null!==this._frameData.getFrameByName(a)?(this.currentFrame=this._frameData.getFrameByName(a),this.currentFrame&&(this._frameIndex=this.currentFrame.index,this.sprite.setFrame(this.currentFrame))):console.warn("Cannot set frameName: "+a)}}),c.Animation=function(a,b,d,e,f,g,h){void 0===h&&(h=!1),this.game=a,this._parent=b,this._frameData=e,this.name=d,this._frames=[],this._frames=this._frames.concat(f),this.delay=1e3/g,this.loop=h,this.loopCount=0,this.killOnComplete=!1,this.isFinished=!1,this.isPlaying=!1,this.isPaused=!1,this._pauseStartTime=0,this._frameIndex=0,this._frameDiff=0,this._frameSkip=1,this.currentFrame=this._frameData.getFrame(this._frames[this._frameIndex]),this.onStart=new c.Signal,this.onUpdate=null,this.onComplete=new c.Signal,this.onLoop=new c.Signal,this.game.onPause.add(this.onPause,this),this.game.onResume.add(this.onResume,this)},c.Animation.prototype={play:function(a,b,c){return"number"==typeof a&&(this.delay=1e3/a),"boolean"==typeof b&&(this.loop=b),"undefined"!=typeof c&&(this.killOnComplete=c),this.isPlaying=!0,this.isFinished=!1,this.paused=!1,this.loopCount=0,this._timeLastFrame=this.game.time.time,this._timeNextFrame=this.game.time.time+this.delay,this._frameIndex=0,this.updateCurrentFrame(!1,!0),this._parent.events.onAnimationStart$dispatch(this._parent,this),this.onStart.dispatch(this._parent,this),this._parent.animations.currentAnim=this,this._parent.animations.currentFrame=this.currentFrame,this},restart:function(){this.isPlaying=!0,this.isFinished=!1,this.paused=!1,this.loopCount=0,this._timeLastFrame=this.game.time.time,this._timeNextFrame=this.game.time.time+this.delay,this._frameIndex=0,this.currentFrame=this._frameData.getFrame(this._frames[this._frameIndex]),this._parent.setFrame(this.currentFrame),this._parent.animations.currentAnim=this,this._parent.animations.currentFrame=this.currentFrame,this.onStart.dispatch(this._parent,this)},setFrame:function(a,b){var c;if(void 0===b&&(b=!1),"string"==typeof a)for(var d=0;d=this._timeNextFrame?(this._frameSkip=1,this._frameDiff=this.game.time.time-this._timeNextFrame,this._timeLastFrame=this.game.time.time,this._frameDiff>this.delay&&(this._frameSkip=Math.floor(this._frameDiff/this.delay),this._frameDiff-=this._frameSkip*this.delay),this._timeNextFrame=this.game.time.time+(this.delay-this._frameDiff),this._frameIndex+=this._frameSkip,this._frameIndex>=this._frames.length?this.loop?(this._frameIndex%=this._frames.length,this.currentFrame=this._frameData.getFrame(this._frames[this._frameIndex]),this.currentFrame&&this._parent.setFrame(this.currentFrame),this.loopCount++,this._parent.events.onAnimationLoop$dispatch(this._parent,this),this.onLoop.dispatch(this._parent,this),this.onUpdate?(this.onUpdate.dispatch(this,this.currentFrame),!!this._frameData):!0):(this.complete(),!1):this.updateCurrentFrame(!0)):!1},updateCurrentFrame:function(a,b){if(void 0===b&&(b=!1),!this._frameData)return!1;var c=this.currentFrame.index;return this.currentFrame=this._frameData.getFrame(this._frames[this._frameIndex]),this.currentFrame&&(b||!b&&c!==this.currentFrame.index)&&this._parent.setFrame(this.currentFrame),this.onUpdate&&a?(this.onUpdate.dispatch(this,this.currentFrame),!!this._frameData):!0},next:function(a){void 0===a&&(a=1);var b=this._frameIndex+a;b>=this._frames.length&&(this.loop?b%=this._frames.length:b=this._frames.length-1),b!==this._frameIndex&&(this._frameIndex=b,this.updateCurrentFrame(!0))},previous:function(a){void 0===a&&(a=1);var b=this._frameIndex-a;0>b&&(this.loop?b=this._frames.length+b:b++),b!==this._frameIndex&&(this._frameIndex=b,this.updateCurrentFrame(!0))},updateFrameData:function(a){this._frameData=a,this.currentFrame=this._frameData?this._frameData.getFrame(this._frames[this._frameIndex%this._frames.length]):null},destroy:function(){this._frameData&&(this.game.onPause.remove(this.onPause,this),this.game.onResume.remove(this.onResume,this),this.game=null,this._parent=null,this._frames=null,this._frameData=null,this.currentFrame=null,this.isPlaying=!1,this.onStart.dispose(),this.onLoop.dispose(),this.onComplete.dispose(),this.onUpdate&&this.onUpdate.dispose())},complete:function(){this._frameIndex=this._frames.length-1,this.currentFrame=this._frameData.getFrame(this._frames[this._frameIndex]),this.isPlaying=!1,this.isFinished=!0,this.paused=!1,this._parent.events.onAnimationComplete$dispatch(this._parent,this),this.onComplete.dispatch(this._parent,this),this.killOnComplete&&this._parent.kill()}},c.Animation.prototype.constructor=c.Animation,Object.defineProperty(c.Animation.prototype,"paused",{get:function(){return this.isPaused},set:function(a){this.isPaused=a,a?this._pauseStartTime=this.game.time.time:this.isPlaying&&(this._timeNextFrame=this.game.time.time+this.delay)}}),Object.defineProperty(c.Animation.prototype,"frameTotal",{get:function(){return this._frames.length}}),Object.defineProperty(c.Animation.prototype,"frame",{get:function(){return null!==this.currentFrame?this.currentFrame.index:this._frameIndex},set:function(a){this.currentFrame=this._frameData.getFrame(this._frames[a]),null!==this.currentFrame&&(this._frameIndex=a,this._parent.setFrame(this.currentFrame),this.onUpdate&&this.onUpdate.dispatch(this,this.currentFrame))}}),Object.defineProperty(c.Animation.prototype,"speed",{get:function(){return Math.round(1e3/this.delay)},set:function(a){a>=1&&(this.delay=1e3/a)}}),Object.defineProperty(c.Animation.prototype,"enableUpdate",{get:function(){return null!==this.onUpdate},set:function(a){a&&null===this.onUpdate?this.onUpdate=new c.Signal:a||null===this.onUpdate||(this.onUpdate.dispose(),this.onUpdate=null)}}),c.Animation.generateFrameNames=function(a,b,d,e,f){void 0===e&&(e="");var g=[],h="";if(d>b)for(var i=b;d>=i;i++)h="number"==typeof f?c.Utils.pad(i.toString(),f,"0",1):i.toString(),h=a+h+e,g.push(h);else for(var i=b;i>=d;i--)h="number"==typeof f?c.Utils.pad(i.toString(),f,"0",1):i.toString(),h=a+h+e,g.push(h);return g},c.Frame=function(a,b,d,e,f,g){this.index=a,this.x=b,this.y=d,this.width=e,this.height=f,this.name=g,this.centerX=Math.floor(e/2),this.centerY=Math.floor(f/2),this.distance=c.Math.distance(0,0,e,f),this.rotated=!1,this.rotationDirection="cw",this.trimmed=!1,this.sourceSizeW=e,this.sourceSizeH=f,this.spriteSourceSizeX=0,this.spriteSourceSizeY=0,this.spriteSourceSizeW=0,this.spriteSourceSizeH=0,this.right=this.x+this.width,this.bottom=this.y+this.height +},c.Frame.prototype={resize:function(a,b){this.width=a,this.height=b,this.centerX=Math.floor(a/2),this.centerY=Math.floor(b/2),this.distance=c.Math.distance(0,0,a,b),this.sourceSizeW=a,this.sourceSizeH=b,this.right=this.x+a,this.bottom=this.y+b},setTrim:function(a,b,c,d,e,f,g){this.trimmed=a,a&&(this.sourceSizeW=b,this.sourceSizeH=c,this.centerX=Math.floor(b/2),this.centerY=Math.floor(c/2),this.spriteSourceSizeX=d,this.spriteSourceSizeY=e,this.spriteSourceSizeW=f,this.spriteSourceSizeH=g)},clone:function(){var a=new c.Frame(this.index,this.x,this.y,this.width,this.height,this.name);for(var b in this)this.hasOwnProperty(b)&&(a[b]=this[b]);return a},getRect:function(a){return void 0===a?a=new c.Rectangle(this.x,this.y,this.width,this.height):a.setTo(this.x,this.y,this.width,this.height),a}},c.Frame.prototype.constructor=c.Frame,c.FrameData=function(){this._frames=[],this._frameNames=[]},c.FrameData.prototype={addFrame:function(a){return a.index=this._frames.length,this._frames.push(a),""!==a.name&&(this._frameNames[a.name]=a.index),a},getFrame:function(a){return a>=this._frames.length&&(a=0),this._frames[a]},getFrameByName:function(a){return"number"==typeof this._frameNames[a]?this._frames[this._frameNames[a]]:null},checkFrameName:function(a){return null==this._frameNames[a]?!1:!0},clone:function(){for(var a=new c.FrameData,b=0;b=d;d++)c.push(this._frames[d]);return c},getFrames:function(a,b,c){if(void 0===b&&(b=!0),void 0===c&&(c=[]),void 0===a||0===a.length)for(var d=0;d=d&&(d=Math.floor(-j/Math.min(-1,d))),0>=e&&(e=Math.floor(-k/Math.min(-1,e)));var l=Math.floor((j-g)/(d+h)),m=Math.floor((k-g)/(e+h)),n=l*m;if(-1!==f&&(n=f),0===j||0===k||d>j||e>k||0===n)return console.warn("Phaser.AnimationParser.spriteSheet: '"+b+"'s width/height zero or width/height < given frameWidth/frameHeight"),null;for(var o=new c.FrameData,p=g,q=g,r=0;n>r;r++)o.addFrame(new c.Frame(r,p,q,d,e,"")),p+=d+h,p+d>j&&(p=g,q+=e+h);return o},JSONData:function(a,b){if(!b.frames)return console.warn("Phaser.AnimationParser.JSONData: Invalid Texture Atlas JSON given, missing 'frames' array"),void console.log(b);for(var d,e=new c.FrameData,f=b.frames,g=0;g tag");for(var d,e,f,g,h,i,j,k,l,m,n,o=new c.FrameData,p=b.getElementsByTagName("SubTexture"),q=0;q-1},getAssetIndex:function(a,b){for(var c=-1,d=0;d-1?{index:c,file:this._fileList[c]}:!1},reset:function(a,b){void 0===b&&(b=!1),this.resetLocked||(a&&(this.preloadSprite=null),this.isLoading=!1,this._processingHead=0,this._fileList.length=0,this._flightQueue.length=0,this._fileLoadStarted=!1,this._totalFileCount=0,this._totalPackCount=0,this._loadedPackCount=0,this._loadedFileCount=0,b&&(this.onLoadStart.removeAll(),this.onLoadComplete.removeAll(),this.onPackComplete.removeAll(),this.onFileStart.removeAll(),this.onFileComplete.removeAll(),this.onFileError.removeAll()))},addToFileList:function(a,b,c,d,e,f){if(void 0===e&&(e=!1),void 0===b||""===b)return console.warn("Phaser.Loader: Invalid or no key given of type "+a),this;if(void 0===c||null===c){if(!f)return console.warn("Phaser.Loader: No URL given for file type: "+a+" key: "+b),this;c=b+f}var g={type:a,key:b,path:this.path,url:c,syncPoint:this._withSyncPointDepth>0,data:null,loading:!1,loaded:!1,error:!1};if(d)for(var h in d)g[h]=d[h];var i=this.getAssetIndex(a,b);if(e&&i>-1){var j=this._fileList[i];j.loading||j.loaded?(this._fileList.push(g),this._totalFileCount++):this._fileList[i]=g}else-1===i&&(this._fileList.push(g),this._totalFileCount++);return this},replaceInFileList:function(a,b,c,d){return this.addToFileList(a,b,c,d,!0)},pack:function(a,b,c,d){if(void 0===b&&(b=null),void 0===c&&(c=null),void 0===d&&(d=null),!b&&!c)return console.warn("Phaser.Loader.pack - Both url and data are null. One must be set."),this;var e={type:"packfile",key:a,url:b,path:this.path,syncPoint:!0,data:null,loading:!1,loaded:!1,error:!1,callbackContext:d};c&&("string"==typeof c&&(c=JSON.parse(c)),e.data=c||{},e.loaded=!0);for(var f=0;f=e||d&&this._loadedPackCount===this._totalPackCount)break}if(this.updateProgress(),this._processingHead>=this._fileList.length)this.finishedLoading();else if(!this._flightQueue.length){console.warn("Phaser.Loader - aborting: processing queue empty, loading may have stalled");var f=this;setTimeout(function(){f.finishedLoading(!0)},2e3)}},finishedLoading:function(a){this.hasLoaded||(this.hasLoaded=!0,this.isLoading=!1,a||this._fileLoadStarted||(this._fileLoadStarted=!0,this.onLoadStart.dispatch()),this.onLoadComplete.dispatch(),this.reset(),this.game.state.loadComplete())},asyncComplete:function(a,b){void 0===b&&(b=""),a.loaded=!0,a.error=!!b,b&&(a.errorMessage=b,console.warn("Phaser.Loader - "+a.type+"["+a.key+"]: "+b)),this.processLoadQueue()},processPack:function(a){var b=a.data[a.key];if(!b)return void console.warn("Phaser.Loader - "+a.key+": pack has data, but not for pack key");for(var d=0;d=10)||(this._warnedAboutXDomainRequest=!0,console.warn("Phaser.Loader - using XDomainRequest outside of IE 9"));var f=new window.XDomainRequest;f.open("GET",b,!0),f.responseType=c,f.timeout=3e3,e=e||this.fileError;var g=this;f.onerror=function(){try{return e.call(g,a,f)}catch(b){g.asyncComplete(a,b.message||"Exception")}},f.ontimeout=function(){try{return e.call(g,a,f)}catch(b){g.asyncComplete(a,b.message||"Exception")}},f.onprogress=function(){},f.onload=function(){try{return d.call(g,a,f) +}catch(b){g.asyncComplete(a,b.message||"Exception")}},a.requestObject=f,a.requestUrl=b,setTimeout(function(){f.send()},0)},getVideoURL:function(a){for(var b=0;b=0&&(d=d.substr(0,d.indexOf("?")));var e=d.substr((Math.max(0,d.lastIndexOf("."))||1/0)+1);c=e.toLowerCase()}if(this.game.device.canPlayVideo(c))return a[b]}return null},getAudioURL:function(a){if(this.game.sound.noAudio)return null;for(var b=0;b=0&&(d=d.substr(0,d.indexOf("?")));var e=d.substr((Math.max(0,d.lastIndexOf("."))||1/0)+1);c=e.toLowerCase()}if(this.game.device.canPlayAudio(c))return a[b]}return null},fileError:function(a,b,c){var d=a.requestUrl||this.transformUrl(a.url,a),e="error loading asset from URL "+d;!c&&b&&(c=b.status),c&&(e=e+" ("+c+")"),this.asyncComplete(a,e)},fileComplete:function(a,b){var d=!0;switch(a.type){case"packfile":var e=JSON.parse(b.responseText);a.data=e||{};break;case"image":this.cache.addImage(a.key,a.url,a.data);break;case"spritesheet":this.cache.addSpriteSheet(a.key,a.url,a.data,a.frameWidth,a.frameHeight,a.frameMax,a.margin,a.spacing);break;case"textureatlas":if(null==a.atlasURL)this.cache.addTextureAtlas(a.key,a.url,a.data,a.atlasData,a.format);else if(d=!1,a.format==c.Loader.TEXTURE_ATLAS_JSON_ARRAY||a.format==c.Loader.TEXTURE_ATLAS_JSON_HASH)this.xhrLoad(a,this.transformUrl(a.atlasURL,a),"text",this.jsonLoadComplete);else{if(a.format!=c.Loader.TEXTURE_ATLAS_XML_STARLING)throw new Error("Phaser.Loader. Invalid Texture Atlas format: "+a.format);this.xhrLoad(a,this.transformUrl(a.atlasURL,a),"text",this.xmlLoadComplete)}break;case"bitmapfont":a.atlasURL?(d=!1,this.xhrLoad(a,this.transformUrl(a.atlasURL,a),"text",function(a,b){var c;try{c=JSON.parse(b.responseText)}catch(d){}c?(a.atlasType="json",this.jsonLoadComplete(a,b)):(a.atlasType="xml",this.xmlLoadComplete(a,b))})):this.cache.addBitmapFont(a.key,a.url,a.data,a.atlasData,a.atlasType,a.xSpacing,a.ySpacing);break;case"video":if(a.asBlob)try{a.data=new Blob([new Uint8Array(b.response)])}catch(f){throw new Error("Phaser.Loader. Unable to parse video file as Blob: "+a.key)}this.cache.addVideo(a.key,a.url,a.data,a.asBlob);break;case"audio":this.game.sound.usingWebAudio?(a.data=b.response,this.cache.addSound(a.key,a.url,a.data,!0,!1),a.autoDecode&&this.game.sound.decode(a.key)):this.cache.addSound(a.key,a.url,a.data,!1,!0);break;case"text":a.data=b.responseText,this.cache.addText(a.key,a.url,a.data);break;case"shader":a.data=b.responseText,this.cache.addShader(a.key,a.url,a.data);break;case"physics":var e=JSON.parse(b.responseText);this.cache.addPhysicsData(a.key,a.url,e,a.format);break;case"script":a.data=document.createElement("script"),a.data.language="javascript",a.data.type="text/javascript",a.data.defer=!1,a.data.text=b.responseText,document.head.appendChild(a.data),a.callback&&(a.data=a.callback.call(a.callbackContext,a.key,b.responseText));break;case"binary":a.data=a.callback?a.callback.call(a.callbackContext,a.key,b.response):b.response,this.cache.addBinary(a.key,a.data)}d&&this.asyncComplete(a)},jsonLoadComplete:function(a,b){var c=JSON.parse(b.responseText);"tilemap"===a.type?this.cache.addTilemap(a.key,a.url,c,a.format):"bitmapfont"===a.type?this.cache.addBitmapFont(a.key,a.url,a.data,c,a.atlasType,a.xSpacing,a.ySpacing):"json"===a.type?this.cache.addJSON(a.key,a.url,c):this.cache.addTextureAtlas(a.key,a.url,a.data,c,a.format),this.asyncComplete(a)},csvLoadComplete:function(a,b){var c=b.responseText;this.cache.addTilemap(a.key,a.url,c,a.format),this.asyncComplete(a)},xmlLoadComplete:function(a,b){var c=b.responseText,d=this.parseXml(c);if(!d){var e=b.responseType||b.contentType;return console.warn("Phaser.Loader - "+a.key+": invalid XML ("+e+")"),void this.asyncComplete(a,"invalid XML")}"bitmapfont"===a.type?this.cache.addBitmapFont(a.key,a.url,a.data,d,a.atlasType,a.xSpacing,a.ySpacing):"textureatlas"===a.type?this.cache.addTextureAtlas(a.key,a.url,a.data,d,a.format):"xml"===a.type&&this.cache.addXML(a.key,a.url,d),this.asyncComplete(a)},parseXml:function(a){var b;try{if(window.DOMParser){var c=new DOMParser;b=c.parseFromString(a,"text/xml")}else b=new ActiveXObject("Microsoft.XMLDOM"),b.async="false",b.loadXML(a)}catch(d){b=null}return b&&b.documentElement&&!b.getElementsByTagName("parsererror").length?b:null},updateProgress:function(){this.preloadSprite&&(0===this.preloadSprite.direction?this.preloadSprite.rect.width=Math.floor(this.preloadSprite.width/100*this.progress):this.preloadSprite.rect.height=Math.floor(this.preloadSprite.height/100*this.progress),this.preloadSprite.sprite?this.preloadSprite.sprite.updateCrop():this.preloadSprite=null)},totalLoadedFiles:function(){return this._loadedFileCount},totalQueuedFiles:function(){return this._totalFileCount-this._loadedFileCount},totalLoadedPacks:function(){return this._totalPackCount},totalQueuedPacks:function(){return this._totalPackCount-this._loadedPackCount}},Object.defineProperty(c.Loader.prototype,"progressFloat",{get:function(){var a=this._loadedFileCount/this._totalFileCount*100;return c.Math.clamp(a||0,0,100)}}),Object.defineProperty(c.Loader.prototype,"progress",{get:function(){return Math.round(this.progressFloat)}}),c.Loader.prototype.constructor=c.Loader,c.LoaderParser={bitmapFont:function(a,b,c,d){return this.xmlBitmapFont(a,b,c,d)},xmlBitmapFont:function(a,b,c,d){var e={},f=a.getElementsByTagName("info")[0],g=a.getElementsByTagName("common")[0];e.font=f.getAttribute("face"),e.size=parseInt(f.getAttribute("size"),10),e.lineHeight=parseInt(g.getAttribute("lineHeight"),10)+d,e.chars={};for(var h=a.getElementsByTagName("char"),i=0;i=this.durationMS&&(this.usingWebAudio?this.loop?(this.onLoop.dispatch(this),""===this.currentMarker?(this.currentTime=0,this.startTime=this.game.time.time):(this.onMarkerComplete.dispatch(this.currentMarker,this),this.play(this.currentMarker,0,this.volume,!0,!0))):""!==this.currentMarker&&this.stop():this.loop?(this.onLoop.dispatch(this),this.play(this.currentMarker,0,this.volume,!0,!0)):this.stop()))},loopFull:function(a){this.play(null,0,a,!0)},play:function(a,b,c,d,e){if((void 0===a||a===!1||null===a)&&(a=""),void 0===e&&(e=!0),this.isPlaying&&!this.allowMultiple&&!e&&!this.override)return this;if(this._sound&&this.isPlaying&&!this.allowMultiple&&(this.override||e))if(this.usingWebAudio)if(this._sound.disconnect(this.externalNode?this.externalNode:this.gainNode),void 0===this._sound.stop)this._sound.noteOff(0);else try{this._sound.stop(0)}catch(f){}else this.usingAudioTag&&(this._sound.pause(),this._sound.currentTime=0);if(""===a&&Object.keys(this.markers).length>0)return this;if(""!==a){if(this.currentMarker=a,!this.markers[a])return this;this.position=this.markers[a].start,this.volume=this.markers[a].volume,this.loop=this.markers[a].loop,this.duration=this.markers[a].duration,this.durationMS=this.markers[a].durationMS,"undefined"!=typeof c&&(this.volume=c),"undefined"!=typeof d&&(this.loop=d),this._tempMarker=a,this._tempPosition=this.position,this._tempVolume=this.volume,this._tempLoop=this.loop}else b=b||0,void 0===c&&(c=this._volume),void 0===d&&(d=this.loop),this.position=b,this.volume=c,this.loop=d,this.duration=0,this.durationMS=0,this._tempMarker=a,this._tempPosition=b,this._tempVolume=c,this._tempLoop=d;return this.usingWebAudio?this.game.cache.isSoundDecoded(this.key)?(this._sound=this.context.createBufferSource(),this._sound.connect(this.externalNode?this.externalNode:this.gainNode),this._buffer=this.game.cache.getSoundData(this.key),this._sound.buffer=this._buffer,this.loop&&""===a&&(this._sound.loop=!0),this.loop||""!==a||(this._sound.onended=this.onEndedHandler.bind(this)),this.totalDuration=this._sound.buffer.duration,0===this.duration&&(this.duration=this.totalDuration,this.durationMS=Math.ceil(1e3*this.totalDuration)),void 0===this._sound.start?this._sound.noteGrainOn(0,this.position,this.duration):this.loop&&""===a?this._sound.start(0,0):this._sound.start(0,this.position,this.duration),this.isPlaying=!0,this.startTime=this.game.time.time,this.currentTime=0,this.stopTime=this.startTime+this.durationMS,this.onPlay.dispatch(this)):(this.pendingPlayback=!0,this.game.cache.getSound(this.key)&&this.game.cache.getSound(this.key).isDecoding===!1&&this.game.sound.decode(this.key,this)):this.game.cache.getSound(this.key)&&this.game.cache.getSound(this.key).locked?(this.game.cache.reloadSound(this.key),this.pendingPlayback=!0):this._sound&&(this.game.device.cocoonJS||4===this._sound.readyState)?(this._sound.play(),this.totalDuration=this._sound.duration,0===this.duration&&(this.duration=this.totalDuration,this.durationMS=1e3*this.totalDuration),this._sound.currentTime=this.position,this._sound.muted=this._muted,this._sound.volume=this._muted?0:this._volume,this.isPlaying=!0,this.startTime=this.game.time.time,this.currentTime=0,this.stopTime=this.startTime+this.durationMS,this.onPlay.dispatch(this)):this.pendingPlayback=!0,this},restart:function(a,b,c,d){a=a||"",b=b||0,c=c||1,void 0===d&&(d=!1),this.play(a,b,c,d,!0)},pause:function(){this.isPlaying&&this._sound&&(this.paused=!0,this.pausedPosition=this.currentTime,this.pausedTime=this.game.time.time,this.onPause.dispatch(this),this.stop())},resume:function(){if(this.paused&&this._sound){if(this.usingWebAudio){var a=this.position+this.pausedPosition/1e3;this._sound=this.context.createBufferSource(),this._sound.buffer=this._buffer,this._sound.connect(this.externalNode?this.externalNode:this.gainNode),this.loop&&(this._sound.loop=!0),this.loop||""!==this.currentMarker||(this._sound.onended=this.onEndedHandler.bind(this));var b=this.duration-this.pausedPosition/1e3;void 0===this._sound.start?this._sound.noteGrainOn(0,a,b):this.loop&&this.game.device.chrome?42===this.game.device.chromeVersion?this._sound.start(0):this._sound.start(0,a):this._sound.start(0,a,b)}else this._sound.play();this.isPlaying=!0,this.paused=!1,this.startTime+=this.game.time.time-this.pausedTime,this.onResume.dispatch(this)}},stop:function(){if(this.isPlaying&&this._sound)if(this.usingWebAudio)if(this._sound.disconnect(this.externalNode?this.externalNode:this.gainNode),void 0===this._sound.stop)this._sound.noteOff(0);else try{this._sound.stop(0)}catch(a){}else this.usingAudioTag&&(this._sound.pause(),this._sound.currentTime=0);this.pendingPlayback=!1,this.isPlaying=!1;var b=this.currentMarker;""!==this.currentMarker&&this.onMarkerComplete.dispatch(this.currentMarker,this),this.currentMarker="",null!==this.fadeTween&&this.fadeTween.stop(),this.paused||this.onStop.dispatch(this,b)},fadeIn:function(a,b,c){void 0===b&&(b=!1),void 0===c&&(c=this.currentMarker),this.paused||(this.play(c,0,0,b),this.fadeTo(a,1))},fadeOut:function(a){this.fadeTo(a,0)},fadeTo:function(a,b){if(this.isPlaying&&!this.paused&&b!==this.volume){if(void 0===a&&(a=1e3),void 0===b)return void console.warn("Phaser.Sound.fadeTo: No Volume Specified.");this.fadeTween=this.game.add.tween(this).to({volume:b},a,c.Easing.Linear.None,!0),this.fadeTween.onComplete.add(this.fadeComplete,this)}},fadeComplete:function(){this.onFadeComplete.dispatch(this,this.volume),0===this.volume&&this.stop()},destroy:function(a){void 0===a&&(a=!0),this.stop(),a?this.game.sound.remove(this):(this.markers={},this.context=null,this._buffer=null,this.externalNode=null,this.onDecoded.dispose(),this.onPlay.dispose(),this.onPause.dispose(),this.onResume.dispose(),this.onLoop.dispose(),this.onStop.dispose(),this.onMute.dispose(),this.onMarkerComplete.dispose())}},c.Sound.prototype.constructor=c.Sound,Object.defineProperty(c.Sound.prototype,"isDecoding",{get:function(){return this.game.cache.getSound(this.key).isDecoding}}),Object.defineProperty(c.Sound.prototype,"isDecoded",{get:function(){return this.game.cache.isSoundDecoded(this.key)}}),Object.defineProperty(c.Sound.prototype,"mute",{get:function(){return this._muted||this.game.sound.mute},set:function(a){a=a||!1,a!==this._muted&&(a?(this._muted=!0,this._muteVolume=this._tempVolume,this.usingWebAudio?this.gainNode.gain.value=0:this.usingAudioTag&&this._sound&&(this._sound.volume=0)):(this._muted=!1,this.usingWebAudio?this.gainNode.gain.value=this._muteVolume:this.usingAudioTag&&this._sound&&(this._sound.volume=this._muteVolume)),this.onMute.dispatch(this))}}),Object.defineProperty(c.Sound.prototype,"volume",{get:function(){return this._volume},set:function(a){return this.game.device.firefox&&this.usingAudioTag&&(a=this.game.math.clamp(a,0,1)),this._muted?void(this._muteVolume=a):(this._tempVolume=a,this._volume=a,void(this.usingWebAudio?this.gainNode.gain.value=a:this.usingAudioTag&&this._sound&&(this._sound.volume=a)))}}),c.SoundManager=function(a){this.game=a,this.onSoundDecode=new c.Signal,this.onVolumeChange=new c.Signal,this.onMute=new c.Signal,this.onUnMute=new c.Signal,this.context=null,this.usingWebAudio=!1,this.usingAudioTag=!1,this.noAudio=!1,this.connectToMaster=!0,this.touchLocked=!1,this.channels=32,this._codeMuted=!1,this._muted=!1,this._unlockSource=null,this._volume=1,this._sounds=[],this._watchList=new c.ArraySet,this._watching=!1,this._watchCallback=null,this._watchContext=null},c.SoundManager.prototype={boot:function(){if(this.game.device.iOS&&this.game.device.webAudio===!1&&(this.channels=1),window.PhaserGlobal){if(window.PhaserGlobal.disableAudio===!0)return this.noAudio=!0,void(this.touchLocked=!1);if(window.PhaserGlobal.disableWebAudio===!0)return this.usingAudioTag=!0,void(this.touchLocked=!1)}if(window.PhaserGlobal&&window.PhaserGlobal.audioContext)this.context=window.PhaserGlobal.audioContext;else if(window.AudioContext)try{this.context=new window.AudioContext}catch(a){this.context=null,this.usingWebAudio=!1,this.touchLocked=!1}else if(window.webkitAudioContext)try{this.context=new window.webkitAudioContext}catch(a){this.context=null,this.usingWebAudio=!1,this.touchLocked=!1}if(null===this.context){if(void 0===window.Audio)return void(this.noAudio=!0);this.usingAudioTag=!0}else this.usingWebAudio=!0,this.masterGain=void 0===this.context.createGain?this.context.createGainNode():this.context.createGain(),this.masterGain.gain.value=1,this.masterGain.connect(this.context.destination);this.noAudio||(!this.game.device.cocoonJS&&this.game.device.iOS||window.PhaserGlobal&&window.PhaserGlobal.fakeiOSTouchLock)&&this.setTouchLock()},setTouchLock:function(){this.game.input.touch.addTouchLockCallback(this.unlock,this),this.touchLocked=!0},unlock:function(){if(this.noAudio||!this.touchLocked||null!==this._unlockSource)return!0;if(this.usingAudioTag)this.touchLocked=!1,this._unlockSource=null;else if(this.usingWebAudio){var a=this.context.createBuffer(1,1,22050);this._unlockSource=this.context.createBufferSource(),this._unlockSource.buffer=a,this._unlockSource.connect(this.context.destination),void 0===this._unlockSource.start?this._unlockSource.noteOn(0):this._unlockSource.start(0)}return!0},stopAll:function(){if(!this.noAudio)for(var a=0;aa?a=0:a>1&&(a=1),this._volume!==a){if(this._volume=a,this.usingWebAudio)this.masterGain.gain.value=a;else for(var b=0;b-1},reset:function(){this.list.length=0},remove:function(a){var b=this.list.indexOf(a);return b>-1?(this.list.splice(b,1),a):void 0},setAll:function(a,b){for(var c=this.list.length;c--;)this.list[c]&&(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)},removeAll:function(a){void 0===a&&(a=!1);for(var b=this.list.length;b--;)if(this.list[b]){var c=this.remove(this.list[b]);a&&c.destroy()}this.position=0,this.list=[]}},Object.defineProperty(c.ArraySet.prototype,"total",{get:function(){return this.list.length}}),Object.defineProperty(c.ArraySet.prototype,"first",{get:function(){return this.position=0,this.list.length>0?this.list[0]:null}}),Object.defineProperty(c.ArraySet.prototype,"next",{get:function(){return this.position0;b--){var c=Math.floor(Math.random()*(b+1)),d=a[b];a[b]=a[c],a[c]=d}return a},transposeMatrix:function(a){for(var b=a.length,c=a[0].length,d=new Array(c),e=0;c>e;e++){d[e]=new Array(b);for(var f=b-1;f>-1;f--)d[e][f]=a[f][e]}return d},rotateMatrix:function(a,b){if("string"!=typeof b&&(b=(b%360+360)%360),90===b||-270===b||"rotateLeft"===b)a=c.ArrayUtils.transposeMatrix(a),a=a.reverse();else if(-90===b||270===b||"rotateRight"===b)a=a.reverse(),a=c.ArrayUtils.transposeMatrix(a);else if(180===Math.abs(b)||"rotate180"===b){for(var d=0;d=e-a?e:d},rotate:function(a){var b=a.shift();return a.push(b),b},numberArray:function(a,b){for(var c=[],d=a;b>=d;d++)c.push(d);return c},numberArrayStep:function(a,b,d){a=+a||0;var e=typeof b;"number"!==e&&"string"!==e||!d||d[b]!==a||(b=d=null),d=null==d?1:+d||0,null===b?(b=a,a=0):b=+b||0;for(var f=-1,g=Math.max(c.Math.roundAwayFromZero((b-a)/(d||1)),0),h=new Array(g);++f>>0:(a<<24|b<<16|d<<8|e)>>>0},unpackPixel:function(a,b,d,e){return(void 0===b||null===b)&&(b=c.Color.createColor()),(void 0===d||null===d)&&(d=!1),(void 0===e||null===e)&&(e=!1),c.Device.LITTLE_ENDIAN?(b.a=(4278190080&a)>>>24,b.b=(16711680&a)>>>16,b.g=(65280&a)>>>8,b.r=255&a):(b.r=(4278190080&a)>>>24,b.g=(16711680&a)>>>16,b.b=(65280&a)>>>8,b.a=255&a),b.color=a,b.rgba="rgba("+b.r+","+b.g+","+b.b+","+b.a/255+")",d&&c.Color.RGBtoHSL(b.r,b.g,b.b,b),e&&c.Color.RGBtoHSV(b.r,b.g,b.b,b),b},fromRGBA:function(a,b){return b||(b=c.Color.createColor()),b.r=(4278190080&a)>>>24,b.g=(16711680&a)>>>16,b.b=(65280&a)>>>8,b.a=255&a,b.rgba="rgba("+b.r+","+b.g+","+b.b+","+b.a+")",b},toRGBA:function(a,b,c,d){return a<<24|b<<16|c<<8|d},RGBtoHSL:function(a,b,d,e){e||(e=c.Color.createColor(a,b,d,1)),a/=255,b/=255,d/=255;var f=Math.min(a,b,d),g=Math.max(a,b,d);if(e.h=0,e.s=0,e.l=(g+f)/2,g!==f){var h=g-f;e.s=e.l>.5?h/(2-g-f):h/(g+f),g===a?e.h=(b-d)/h+(d>b?6:0):g===b?e.h=(d-a)/h+2:g===d&&(e.h=(a-b)/h+4),e.h/=6}return e},HSLtoRGB:function(a,b,d,e){if(e?(e.r=d,e.g=d,e.b=d):e=c.Color.createColor(d,d,d),0!==b){var f=.5>d?d*(1+b):d+b-d*b,g=2*d-f;e.r=c.Color.hueToColor(g,f,a+1/3),e.g=c.Color.hueToColor(g,f,a),e.b=c.Color.hueToColor(g,f,a-1/3)}return e.r=Math.floor(255*e.r|0),e.g=Math.floor(255*e.g|0),e.b=Math.floor(255*e.b|0),c.Color.updateColor(e),e},RGBtoHSV:function(a,b,d,e){e||(e=c.Color.createColor(a,b,d,255)),a/=255,b/=255,d/=255;var f=Math.min(a,b,d),g=Math.max(a,b,d),h=g-f;return e.h=0,e.s=0===g?0:h/g,e.v=g,g!==f&&(g===a?e.h=(b-d)/h+(d>b?6:0):g===b?e.h=(d-a)/h+2:g===d&&(e.h=(a-b)/h+4),e.h/=6),e},HSVtoRGB:function(a,b,d,e){void 0===e&&(e=c.Color.createColor(0,0,0,1,a,b,0,d));var f,g,h,i=Math.floor(6*a),j=6*a-i,k=d*(1-b),l=d*(1-j*b),m=d*(1-(1-j)*b);switch(i%6){case 0:f=d,g=m,h=k;break;case 1:f=l,g=d,h=k;break;case 2:f=k,g=d,h=m;break;case 3:f=k,g=l,h=d;break;case 4:f=m,g=k,h=d;break;case 5:f=d,g=k,h=l}return e.r=Math.floor(255*f),e.g=Math.floor(255*g),e.b=Math.floor(255*h),c.Color.updateColor(e),e},hueToColor:function(a,b,c){return 0>c&&(c+=1),c>1&&(c-=1),1/6>c?a+6*(b-a)*c:.5>c?b:2/3>c?a+(b-a)*(2/3-c)*6:a},createColor:function(a,b,d,e,f,g,h,i){var j={r:a||0,g:b||0,b:d||0,a:e||1,h:f||0,s:g||0,l:h||0,v:i||0,color:0,color32:0,rgba:""};return c.Color.updateColor(j)},updateColor:function(a){return a.rgba="rgba("+a.r.toString()+","+a.g.toString()+","+a.b.toString()+","+a.a.toString()+")",a.color=c.Color.getColor(a.r,a.g,a.b),a.color32=c.Color.getColor32(a.a,a.r,a.g,a.b),a},getColor32:function(a,b,c,d){return a<<24|b<<16|c<<8|d},getColor:function(a,b,c){return a<<16|b<<8|c},RGBtoString:function(a,b,d,e,f){return void 0===e&&(e=255),void 0===f&&(f="#"),"#"===f?"#"+((1<<24)+(a<<16)+(b<<8)+d).toString(16).slice(1):"0x"+c.Color.componentToHex(e)+c.Color.componentToHex(a)+c.Color.componentToHex(b)+c.Color.componentToHex(d)},hexToRGB:function(a){var b=c.Color.hexToColor(a);return b?c.Color.getColor32(b.a,b.r,b.g,b.b):void 0},hexToColor:function(a,b){a=a.replace(/^(?:#|0x)?([a-f\d])([a-f\d])([a-f\d])$/i,function(a,b,c,d){return b+b+c+c+d+d});var d=/^(?:#|0x)?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i.exec(a);if(d){var e=parseInt(d[1],16),f=parseInt(d[2],16),g=parseInt(d[3],16);b?(b.r=e,b.g=f,b.b=g):b=c.Color.createColor(e,f,g)}return b},webToColor:function(a,b){b||(b=c.Color.createColor());var d=/^rgba?\(\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d+)\s*(?:,\s*(\d+(?:\.\d+)?))?\s*\)$/.exec(a);return d&&(b.r=parseInt(d[1],10),b.g=parseInt(d[2],10),b.b=parseInt(d[3],10),b.a=void 0!==d[4]?parseFloat(d[4]):1,c.Color.updateColor(b)),b},valueToColor:function(a,b){if(b||(b=c.Color.createColor()),"string"==typeof a)return 0===a.indexOf("rgb")?c.Color.webToColor(a,b):(b.a=1,c.Color.hexToColor(a,b));if("number"==typeof a){var d=c.Color.getRGB(a);return b.r=d.r,b.g=d.g,b.b=d.b,b.a=d.a/255,b}return b},componentToHex:function(a){var b=a.toString(16);return 1==b.length?"0"+b:b},HSVColorWheel:function(a,b){void 0===a&&(a=1),void 0===b&&(b=1);for(var d=[],e=0;359>=e;e++)d.push(c.Color.HSVtoRGB(e/359,a,b));return d},HSLColorWheel:function(a,b){void 0===a&&(a=.5),void 0===b&&(b=.5);for(var d=[],e=0;359>=e;e++)d.push(c.Color.HSLtoRGB(e/359,a,b));return d},interpolateColor:function(a,b,d,e,f){void 0===f&&(f=255);var g=c.Color.getRGB(a),h=c.Color.getRGB(b),i=(h.red-g.red)*e/d+g.red,j=(h.green-g.green)*e/d+g.green,k=(h.blue-g.blue)*e/d+g.blue;return c.Color.getColor32(f,i,j,k)},interpolateColorWithRGB:function(a,b,d,e,f,g){var h=c.Color.getRGB(a),i=(b-h.red)*g/f+h.red,j=(d-h.green)*g/f+h.green,k=(e-h.blue)*g/f+h.blue;return c.Color.getColor(i,j,k)},interpolateRGB:function(a,b,d,e,f,g,h,i){var j=(e-a)*i/h+a,k=(f-b)*i/h+b,l=(g-d)*i/h+d;return c.Color.getColor(j,k,l)},getRandomColor:function(a,b,d){if(void 0===a&&(a=0),void 0===b&&(b=255),void 0===d&&(d=255),b>255||a>b)return c.Color.getColor(255,255,255);var e=a+Math.round(Math.random()*(b-a)),f=a+Math.round(Math.random()*(b-a)),g=a+Math.round(Math.random()*(b-a));return c.Color.getColor32(d,e,f,g)},getRGB:function(a){return a>16777215?{alpha:a>>>24,red:a>>16&255,green:a>>8&255,blue:255&a,a:a>>>24,r:a>>16&255,g:a>>8&255,b:255&a}:{alpha:255,red:a>>16&255,green:a>>8&255,blue:255&a,a:255,r:a>>16&255,g:a>>8&255,b:255&a}},getWebRGB:function(a){if("object"==typeof a)return"rgba("+a.r.toString()+","+a.g.toString()+","+a.b.toString()+","+(a.a/255).toString()+")";var b=c.Color.getRGB(a);return"rgba("+b.r.toString()+","+b.g.toString()+","+b.b.toString()+","+(b.a/255).toString()+")"},getAlpha:function(a){return a>>>24},getAlphaFloat:function(a){return(a>>>24)/255},getRed:function(a){return a>>16&255},getGreen:function(a){return a>>8&255},getBlue:function(a){return 255&a},blendNormal:function(a){return a},blendLighten:function(a,b){return b>a?b:a},blendDarken:function(a,b){return b>a?a:b},blendMultiply:function(a,b){return a*b/255},blendAverage:function(a,b){return(a+b)/2},blendAdd:function(a,b){return Math.min(255,a+b)},blendSubtract:function(a,b){return Math.max(0,a+b-255)},blendDifference:function(a,b){return Math.abs(a-b)},blendNegation:function(a,b){return 255-Math.abs(255-a-b)},blendScreen:function(a,b){return 255-((255-a)*(255-b)>>8)},blendExclusion:function(a,b){return a+b-2*a*b/255},blendOverlay:function(a,b){return 128>b?2*a*b/255:255-2*(255-a)*(255-b)/255},blendSoftLight:function(a,b){return 128>b?2*((a>>1)+64)*(b/255):255-2*(255-((a>>1)+64))*(255-b)/255},blendHardLight:function(a,b){return c.Color.blendOverlay(b,a)},blendColorDodge:function(a,b){return 255===b?b:Math.min(255,(a<<8)/(255-b))},blendColorBurn:function(a,b){return 0===b?b:Math.max(0,255-(255-a<<8)/b)},blendLinearDodge:function(a,b){return c.Color.blendAdd(a,b)},blendLinearBurn:function(a,b){return c.Color.blendSubtract(a,b)},blendLinearLight:function(a,b){return 128>b?c.Color.blendLinearBurn(a,2*b):c.Color.blendLinearDodge(a,2*(b-128))},blendVividLight:function(a,b){return 128>b?c.Color.blendColorBurn(a,2*b):c.Color.blendColorDodge(a,2*(b-128))},blendPinLight:function(a,b){return 128>b?c.Color.blendDarken(a,2*b):c.Color.blendLighten(a,2*(b-128))},blendHardMix:function(a,b){return c.Color.blendVividLight(a,b)<128?0:255},blendReflect:function(a,b){return 255===b?b:Math.min(255,a*a/(255-b))},blendGlow:function(a,b){return c.Color.blendReflect(b,a)},blendPhoenix:function(a,b){return Math.min(a,b)-Math.max(a,b)+255}},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.Physics=function(a,b){b=b||{},this.game=a,this.config=b,this.arcade=null,this.p2=null,this.ninja=null,this.box2d=null,this.chipmunk=null,this.matter=null,this.parseConfig()},c.Physics.ARCADE=0,c.Physics.P2JS=1,c.Physics.NINJA=2,c.Physics.BOX2D=3,c.Physics.CHIPMUNK=4,c.Physics.MATTERJS=5,c.Physics.prototype={parseConfig:function(){this.config.hasOwnProperty("arcade")&&this.config.arcade!==!0||!c.Physics.hasOwnProperty("Arcade")||(this.arcade=new c.Physics.Arcade(this.game)),this.config.hasOwnProperty("ninja")&&this.config.ninja===!0&&c.Physics.hasOwnProperty("Ninja")&&(this.ninja=new c.Physics.Ninja(this.game)),this.config.hasOwnProperty("p2")&&this.config.p2===!0&&c.Physics.hasOwnProperty("P2")&&(this.p2=new c.Physics.P2(this.game,this.config)),this.config.hasOwnProperty("box2d")&&this.config.box2d===!0&&c.Physics.hasOwnProperty("BOX2D")&&(this.box2d=new c.Physics.BOX2D(this.game,this.config)),this.config.hasOwnProperty("matter")&&this.config.matter===!0&&c.Physics.hasOwnProperty("Matter")&&(this.matter=new c.Physics.Matter(this.game,this.config))},startSystem:function(a){a===c.Physics.ARCADE?this.arcade=new c.Physics.Arcade(this.game):a===c.Physics.P2JS?null===this.p2?this.p2=new c.Physics.P2(this.game,this.config):this.p2.reset():a===c.Physics.NINJA?this.ninja=new c.Physics.Ninja(this.game):a===c.Physics.BOX2D?null===this.box2d?this.box2d=new c.Physics.Box2D(this.game,this.config):this.box2d.reset():a===c.Physics.MATTERJS&&(null===this.matter?this.matter=new c.Physics.Matter(this.game,this.config):this.matter.reset())},enable:function(a,b,d){void 0===b&&(b=c.Physics.ARCADE),void 0===d&&(d=!1),b===c.Physics.ARCADE?this.arcade.enable(a):b===c.Physics.P2JS&&this.p2?this.p2.enable(a,d):b===c.Physics.NINJA&&this.ninja?this.ninja.enableAABB(a):b===c.Physics.BOX2D&&this.box2d?this.box2d.enable(a):b===c.Physics.MATTERJS&&this.matter&&this.matter.enable(a)},preUpdate:function(){this.p2&&this.p2.preUpdate(),this.box2d&&this.box2d.preUpdate(),this.matter&&this.matter.preUpdate()},update:function(){this.p2&&this.p2.update(),this.box2d&&this.box2d.update(),this.matter&&this.matter.update()},setBoundsToWorld:function(){this.arcade&&this.arcade.setBoundsToWorld(),this.ninja&&this.ninja.setBoundsToWorld(),this.p2&&this.p2.setBoundsToWorld(),this.box2d&&this.box2d.setBoundsToWorld(),this.matter&&this.matter.setBoundsToWorld()},clear:function(){this.p2&&this.p2.clear(),this.box2d&&this.box2d.clear(),this.matter&&this.matter.clear()},reset:function(){this.p2&&this.p2.reset(),this.box2d&&this.box2d.reset(),this.matter&&this.matter.reset()},destroy:function(){this.p2&&this.p2.destroy(),this.box2d&&this.box2d.destroy(),this.matter&&this.matter.destroy(),this.arcade=null,this.ninja=null,this.p2=null,this.box2d=null,this.matter=null}},c.Physics.prototype.constructor=c.Physics,c.Particles=function(a){this.game=a,this.emitters={},this.ID=0},c.Particles.prototype={add:function(a){return this.emitters[a.name]=a,a},remove:function(a){delete this.emitters[a.name]},update:function(){for(var a in this.emitters)this.emitters[a].exists&&this.emitters[a].update()}},c.Particles.prototype.constructor=c.Particles,c.Video=function(a,b,d){if(void 0===b&&(b=null),void 0===d&&(d=null),this.game=a,this.key=b,this.width=0,this.height=0,this.type=c.VIDEO,this.disableTextureUpload=!1,this.touchLocked=!1,this.onPlay=new c.Signal,this.onChangeSource=new c.Signal,this.onComplete=new c.Signal,this.onAccess=new c.Signal,this.onError=new c.Signal,this.onTimeout=new c.Signal,this.timeout=15e3,this._timeOutID=null,this.video=null,this.videoStream=null,this.isStreaming=!1,this.retryLimit=20,this.retry=0,this.retryInterval=500,this._retryID=null,this._codeMuted=!1,this._muted=!1,this._codePaused=!1,this._paused=!1,this._pending=!1,this._autoplay=!1,b&&this.game.cache.checkVideoKey(b)){var e=this.game.cache.getVideo(b);e.isBlob?this.createVideoFromBlob(e.data):this.video=e.data,this.width=this.video.videoWidth,this.height=this.video.videoHeight}else d&&this.createVideoFromURL(d,!1);this.video&&!d?(this.baseTexture=new PIXI.BaseTexture(this.video),this.baseTexture.forceLoaded(this.width,this.height)):(this.baseTexture=new PIXI.BaseTexture(PIXI.TextureCache.__default.baseTexture.source),this.baseTexture.forceLoaded(this.width,this.height)),this.texture=new PIXI.Texture(this.baseTexture),this.textureFrame=new c.Frame(0,0,0,this.width,this.height,"video"),this.texture.setFrame(this.textureFrame),this.texture.valid=!1,null!==b&&this.video&&(this.texture.valid=this.video.canplay),this.snapshot=null,c.BitmapData&&(this.snapshot=new c.BitmapData(this.game,"",this.width,this.height)),!this.game.device.cocoonJS&&(this.game.device.iOS||this.game.device.android)||window.PhaserGlobal&&window.PhaserGlobal.fakeiOSTouchLock?this.setTouchLock():e&&(e.locked=!1)},c.Video.prototype={connectToMediaStream:function(a,b){return a&&b&&(this.video=a,this.videoStream=b,this.isStreaming=!0,this.baseTexture.source=this.video,this.updateTexture(null,this.video.videoWidth,this.video.videoHeight),this.onAccess.dispatch(this)),this},startMediaStream:function(a,b,c){if(void 0===a&&(a=!1),void 0===b&&(b=null),void 0===c&&(c=null),!this.game.device.getUserMedia)return this.onError.dispatch(this,"No getUserMedia"),!1;null!==this.videoStream&&this.videoStream.stop(),this.removeVideoElement(),this.video=document.createElement("video"),this.video.setAttribute("autoplay","autoplay"),null!==b&&(this.video.width=b),null!==c&&(this.video.height=c),this._timeOutID=window.setTimeout(this.getUserMediaTimeout.bind(this),this.timeout);try{navigator.getUserMedia({audio:a,video:!0},this.getUserMediaSuccess.bind(this),this.getUserMediaError.bind(this))}catch(d){this.getUserMediaError(d)}return this},getUserMediaTimeout:function(){clearTimeout(this._timeOutID),this.onTimeout.dispatch(this)},getUserMediaError:function(a){clearTimeout(this._timeOutID),this.onError.dispatch(this,a)},getUserMediaSuccess:function(a){clearTimeout(this._timeOutID),this.videoStream=a,void 0!==this.video.mozSrcObject?this.video.mozSrcObject=a:this.video.src=window.URL&&window.URL.createObjectURL(a)||a;var b=this;this.video.onloadeddata=function(){function a(){if(c>0)if(b.video.videoWidth>0){var d=b.video.videoWidth,e=b.video.videoHeight;isNaN(b.video.videoHeight)&&(e=d/(4/3)),b.video.play(),b.isStreaming=!0,b.baseTexture.source=b.video,b.updateTexture(null,d,e),b.onAccess.dispatch(b)}else window.setTimeout(a,500);else console.warn("Unable to connect to video stream. Webcam error?");c--}var c=10;a()}},createVideoFromBlob:function(a){var b=this;return this.video=document.createElement("video"),this.video.controls=!1,this.video.setAttribute("autoplay","autoplay"),this.video.addEventListener("loadeddata",function(a){b.updateTexture(a)},!0),this.video.src=window.URL.createObjectURL(a),this.video.canplay=!0,this},createVideoFromURL:function(a,b){return void 0===b&&(b=!1),this.texture&&(this.texture.valid=!1),this.video=document.createElement("video"),this.video.controls=!1,b&&this.video.setAttribute("autoplay","autoplay"),this.video.src=a,this.video.canplay=!0,this.video.load(),this.retry=this.retryLimit,this._retryID=window.setTimeout(this.checkVideoProgress.bind(this),this.retryInterval),this.key=a,this},updateTexture:function(a,b,c){var d=!1;(void 0===b||null===b)&&(b=this.video.videoWidth,d=!0),(void 0===c||null===c)&&(c=this.video.videoHeight),this.width=b,this.height=c,this.baseTexture.source!==this.video&&(this.baseTexture.source=this.video),this.baseTexture.forceLoaded(b,c),this.texture.frame.resize(b,c),this.texture.width=b,this.texture.height=c,this.texture.valid=!0,this.snapshot&&this.snapshot.resize(b,c),d&&null!==this.key&&(this.onChangeSource.dispatch(this,b,c),this._autoplay&&(this.video.play(),this.onPlay.dispatch(this,this.loop,this.playbackRate)))},complete:function(){this.onComplete.dispatch(this)},play:function(a,b){return void 0===a&&(a=!1),void 0===b&&(b=1),this.game.sound.onMute&&(this.game.sound.onMute.add(this.setMute,this),this.game.sound.onUnMute.add(this.unsetMute,this),this.game.sound.mute&&this.setMute()),this.game.onPause.add(this.setPause,this),this.game.onResume.add(this.setResume,this),this.video.addEventListener("ended",this.complete.bind(this),!0),this.video.loop=a?"loop":"",this.video.playbackRate=b,this.touchLocked?this._pending=!0:(this._pending=!1,null!==this.key&&(4!==this.video.readyState?(this.retry=this.retryLimit,this._retryID=window.setTimeout(this.checkVideoProgress.bind(this),this.retryInterval)):this.video.addEventListener("playing",this.playHandler.bind(this),!0)),this.video.play(),this.onPlay.dispatch(this,a,b)),this},playHandler:function(){this.video.removeEventListener("playing",this.playHandler.bind(this)),this.updateTexture()},stop:function(){return this.game.sound.onMute&&(this.game.sound.onMute.remove(this.setMute,this),this.game.sound.onUnMute.remove(this.unsetMute,this)),this.game.onPause.remove(this.setPause,this),this.game.onResume.remove(this.setResume,this),this.isStreaming?(this.video.mozSrcObject?(this.video.mozSrcObject.stop(),this.video.src=null):(this.video.src="",this.videoStream.stop()),this.videoStream=null,this.isStreaming=!1):(this.video.removeEventListener("ended",this.complete.bind(this)),this.touchLocked?this._pending=!1:this.video.pause()),this},add:function(a){if(Array.isArray(a))for(var b=0;b0?this._retryID=window.setTimeout(this.checkVideoProgress.bind(this),this.retryInterval):console.warn("Phaser.Video: Unable to start downloading video in time",this.isStreaming))},setTouchLock:function(){this.game.input.touch.addTouchLockCallback(this.unlock,this),this.touchLocked=!0},unlock:function(){if(this.touchLocked=!1,this.video.play(),this.onPlay.dispatch(this,this.loop,this.playbackRate),this.key){var a=this.game.cache.getVideo(this.key);a&&!a.isBlob&&(a.locked=!1)}return!0},grab:function(a,b,c){return void 0===a&&(a=!1),void 0===b&&(b=1),void 0===c&&(c=null),null===this.snapshot?void console.warn("Video.grab cannot run because Phaser.BitmapData is unavailable"):(a&&this.snapshot.cls(),this.snapshot.copy(this.video,0,0,this.width,this.height,0,0,this.width,this.height,0,0,0,1,1,b,c),this.snapshot)},removeVideoElement:function(){if(this.video){for(this.video.parentNode&&this.video.parentNode.removeChild(this.video);this.video.hasChildNodes();)this.video.removeChild(this.video.firstChild);this.video.removeAttribute("autoplay"),this.video.removeAttribute("src"),this.video=null}},destroy:function(){this.stop(),this.removeVideoElement(),this.touchLocked&&this.game.input.touch.removeTouchLockCallback(this.unlock,this),this._retryID&&window.clearTimeout(this._retryID)}},Object.defineProperty(c.Video.prototype,"currentTime",{get:function(){return this.video?this.video.currentTime:0},set:function(a){this.video.currentTime=a}}),Object.defineProperty(c.Video.prototype,"duration",{get:function(){return this.video?this.video.duration:0}}),Object.defineProperty(c.Video.prototype,"progress",{get:function(){return this.video?this.video.currentTime/this.video.duration:0}}),Object.defineProperty(c.Video.prototype,"mute",{get:function(){return this._muted},set:function(a){if(a=a||null){if(this._muted)return;this._codeMuted=!0,this.setMute()}else{if(!this._muted)return;this._codeMuted=!1,this.unsetMute()}}}),Object.defineProperty(c.Video.prototype,"paused",{get:function(){return this._paused},set:function(a){if(a=a||null,!this.touchLocked)if(a){if(this._paused)return;this._codePaused=!0,this.setPause()}else{if(!this._paused)return;this._codePaused=!1,this.setResume()}}}),Object.defineProperty(c.Video.prototype,"volume",{get:function(){return this.video?this.video.volume:1},set:function(a){0>a?a=0:a>1&&(a=1),this.video&&(this.video.volume=a)}}),Object.defineProperty(c.Video.prototype,"playbackRate",{get:function(){return this.video?this.video.playbackRate:1},set:function(a){this.video&&(this.video.playbackRate=a)}}),Object.defineProperty(c.Video.prototype,"loop",{get:function(){return this.video?this.video.loop:!1},set:function(a){a&&this.video?this.video.loop="loop":this.video&&(this.video.loop="")}}),Object.defineProperty(c.Video.prototype,"playing",{get:function(){return!(this.video.paused&&this.video.ended)}}),c.Video.prototype.constructor=c.Video,void 0===PIXI.blendModes&&(PIXI.blendModes=c.blendModes),void 0===PIXI.scaleModes&&(PIXI.scaleModes=c.scaleModes),void 0===PIXI.Texture.emptyTexture&&(PIXI.Texture.emptyTexture=new PIXI.Texture(new PIXI.BaseTexture)),void 0===PIXI.DisplayObject._tempMatrix&&(PIXI.DisplayObject._tempMatrix=new PIXI.Matrix),void 0===PIXI.RenderTexture.tempMatrix&&(PIXI.RenderTexture.tempMatrix=new PIXI.Matrix),void 0===PIXI.Graphics.POLY&&(PIXI.Graphics.POLY=c.POLYGON,PIXI.Graphics.RECT=c.RECTANGLE,PIXI.Graphics.CIRC=c.CIRCLE,PIXI.Graphics.ELIP=c.ELLIPSE,PIXI.Graphics.RREC=c.ROUNDEDRECTANGLE),PIXI.TextureSilentFail=!0,"undefined"!=typeof exports?("undefined"!=typeof module&&module.exports&&(exports=module.exports=c),exports.Phaser=c):"undefined"!=typeof define&&define.amd?define("Phaser",function(){return b.Phaser=c}()):b.Phaser=c,c}.call(this); //# sourceMappingURL=phaser-no-physics.map \ No newline at end of file diff --git a/build/phaser.js b/build/phaser.js index 8090c86fc..463f5cddd 100644 --- a/build/phaser.js +++ b/build/phaser.js @@ -7,7 +7,7 @@ * * Phaser - http://phaser.io * -* v2.4.1 "Ionin Spring" - Built: Thu Jul 23 2015 16:01:33 +* v2.4.1 "Ionin Spring" - Built: Fri Jul 24 2015 13:26:30 * * By Richard Davey http://www.photonstorm.com @photonstorm * @@ -21834,13 +21834,16 @@ PIXI.BaseTexture.prototype.destroy = function() { delete PIXI.BaseTextureCache[this.imageUrl]; delete PIXI.TextureCache[this.imageUrl]; + this.imageUrl = null; + if (!navigator.isCocoonJS) this.source.src = ''; } else if (this.source && this.source._pixiId) { delete PIXI.BaseTextureCache[this.source._pixiId]; } + this.source = null; this.unloadFromGPU(); @@ -41845,65 +41848,77 @@ Phaser.Pointer.prototype = { // If you find one, please tell us! var buttons = event.buttons; - if (buttons === undefined) + if (buttons !== undefined) { - return; - } + // Note: These are bitwise checks, not booleans - // Note: These are bitwise checks, not booleans + if (Phaser.Pointer.LEFT_BUTTON & buttons) + { + this.leftButton.start(event); + } + else + { + this.leftButton.stop(event); + } - if (Phaser.Pointer.LEFT_BUTTON & buttons) - { - this.leftButton.start(event); + if (Phaser.Pointer.RIGHT_BUTTON & buttons) + { + this.rightButton.start(event); + } + else + { + this.rightButton.stop(event); + } + + if (Phaser.Pointer.MIDDLE_BUTTON & buttons) + { + this.middleButton.start(event); + } + else + { + this.middleButton.stop(event); + } + + if (Phaser.Pointer.BACK_BUTTON & buttons) + { + this.backButton.start(event); + } + else + { + this.backButton.stop(event); + } + + if (Phaser.Pointer.FORWARD_BUTTON & buttons) + { + this.forwardButton.start(event); + } + else + { + this.forwardButton.stop(event); + } + + if (Phaser.Pointer.ERASER_BUTTON & buttons) + { + this.eraserButton.start(event); + } + else + { + this.eraserButton.stop(event); + } } else { - this.leftButton.stop(event); - } + // No buttons property (like Safari on OSX when using a trackpad) - if (Phaser.Pointer.RIGHT_BUTTON & buttons) - { - this.rightButton.start(event); - } - else - { - this.rightButton.stop(event); - } - - if (Phaser.Pointer.MIDDLE_BUTTON & buttons) - { - this.middleButton.start(event); - } - else - { - this.middleButton.stop(event); - } - - if (Phaser.Pointer.BACK_BUTTON & buttons) - { - this.backButton.start(event); - } - else - { - this.backButton.stop(event); - } - - if (Phaser.Pointer.FORWARD_BUTTON & buttons) - { - this.forwardButton.start(event); - } - else - { - this.forwardButton.stop(event); - } - - if (Phaser.Pointer.ERASER_BUTTON & buttons) - { - this.eraserButton.start(event); - } - else - { - this.eraserButton.stop(event); + if (event.type === 'mousedown') + { + this.leftButton.start(event); + } + else + { + this.leftButton.stop(event); + this.rightButton.stop(event); + } } // On OS X (and other devices with trackpads) you have to press CTRL + the pad @@ -70770,26 +70785,30 @@ Phaser.Cache.prototype = { }, /** - * Removes an image from the cache and optionally from the Pixi.BaseTextureCache as well. + * Removes an image from the cache. + * + * You can optionally elect to destroy it as well. This calls BaseTexture.destroy on it. * - * Note that this only removes it from the Phaser.Cache. If you still have references to the data elsewhere + * Note that this only removes it from the Phaser and PIXI Caches. If you still have references to the data elsewhere * then it will persist in memory. * * @method Phaser.Cache#removeImage * @param {string} key - Key of the asset you want to remove. - * @param {boolean} [removeFromPixi=true] - Should this image also be removed from the Pixi BaseTextureCache? + * @param {boolean} [removeFromPixi=true] - Should this image also be destroyed? Removing it from the PIXI.BaseTextureCache? */ removeImage: function (key, removeFromPixi) { if (removeFromPixi === undefined) { removeFromPixi = true; } - delete this._cache.image[key]; + var img = this.getImage(key, true); - if (removeFromPixi) + if (removeFromPixi && img.base) { - PIXI.BaseTextureCache[key].destroy(); + img.base.destroy(); } + delete this._cache.image[key]; + }, /** @@ -95095,10 +95114,12 @@ PIXI.TextureSilentFail = true; } exports.Phaser = Phaser; } else if (typeof define !== 'undefined' && define.amd) { - define('Phaser', (function() { return root.Phaser = Phaser; }) ()); + define('Phaser', (function() { return root.Phaser = Phaser; })() ); } else { root.Phaser = Phaser; } + + return Phaser; }).call(this); /* diff --git a/build/phaser.map b/build/phaser.map index 1fe445743..325c10295 100644 --- a/build/phaser.map +++ b/build/phaser.map @@ -1 +1 @@ -{"version":3,"file":"phaser.min.js","sources":["phaser.js"],"names":["e","exports","module","f","window","global","self","p2","t","n","r","s","o","u","a","require","i","Error","call","length",1,"_dereq_","Line","Scalar","lineInt","l1","l2","precision","a1","b1","c1","a2","b2","c2","det","eq","segmentsIntersect","p1","q1","q2","dx","dy","da","db","./Scalar",2,"Point","area","b","c","left","leftOn","right","rightOn","tmpPoint1","tmpPoint2","collinear","thresholdAngle","ab","bc","dot","magA","Math","sqrt","magB","angle","acos","sqdist",3,"Polygon","this","vertices","getIntersectionPoint","delta","prototype","at","v","first","last","clear","append","poly","from","to","push","makeCCW","br","reverse","tmp","N","pop","isReflex","tmpLine1","tmpLine2","canSee","p","dist","copy","j","targetPoly","k","getCutEdges","min","tmp1","tmp2","tmpPoly","nDiags","Number","MAX_VALUE","decomp","edges","slice","cutEdges","Array","polys","cutEdge","result","splice","indexOf","isSimple","path","quickDecomp","reflexVertices","steinerPoints","maxlevel","level","upperInt","lowerInt","upperDist","lowerDist","d","closestDist","upperIndex","lowerIndex","closestIndex","lowerPoly","upperPoly","console","warn","removeCollinearPoints","num","./Line","./Point",4,"abs",5,"./Polygon",6,"name","version","description","author","keywords","main","engines","node","repository","type","url","bugs","licenses","devDependencies","grunt","grunt-contrib-jshint","grunt-contrib-nodeunit","grunt-contrib-uglify","grunt-contrib-watch","grunt-browserify","grunt-contrib-concat","dependencies","poly-decomp",7,"AABB","options","lowerBound","vec2","create","upperBound","setFromPoints","points","position","skinSize","l","rotate","cosAngle","cos","sinAngle","sin","x","y","add","aabb","extend","overlaps","u1","u2","containsPoint","point","overlapsRay","ray","dirFracX","direction","dirFracY","t1","t2","t3","t4","tmin","max","tmax","../math/vec2","../utils/Utils",8,"Broadphase","world","boundingVolumeType","Body","BOUNDING_CIRCLE","setWorld","getCollisionPairs","boundingRadiusCheck","bodyA","bodyB","sub","d2","squaredLength","boundingRadius","aabbCheck","getAABB","boundingVolumeCheck","canCollide","KINEMATIC","STATIC","sleepState","SLEEPING","NAIVE","SAP","../objects/Body",9,"NaiveBroadphase","constructor","bodies","Ncolliding","bi","bj","aabbQuery","aabbNeedsUpdate","updateAABB","../collision/Broadphase","../shapes/Circle","../shapes/Particle","../shapes/Plane","../shapes/Shape",10,"Narrowphase","contactEquations","frictionEquations","enableFriction","enabledEquations","slipForce","frictionCoefficient","surfaceVelocity","contactEquationPool","ContactEquationPool","size","frictionEquationPool","FrictionEquationPool","restitution","stiffness","Equation","DEFAULT_STIFFNESS","relaxation","DEFAULT_RELAXATION","frictionStiffness","frictionRelaxation","enableFrictionReduction","collidingBodiesLastStep","TupleDictionary","contactSkinSize","setConvexToCapsuleShapeMiddle","convexShape","capsuleShape","set","radius","pointInConvex","worldPoint","convexOffset","convexAngle","worldVertex0","pic_worldVertex0","worldVertex1","pic_worldVertex1","r0","pic_r0","r1","pic_r1","verts","lastCross","v0","v1","cross","crossLength","Circle","Convex","Shape","Box","yAxis","fromValues","tmp3","tmp4","tmp5","tmp6","tmp7","tmp8","tmp9","tmp10","tmp11","tmp12","tmp13","tmp14","tmp15","tmp16","tmp17","tmp18","tmpArray","bodiesOverlap_shapePositionA","bodiesOverlap_shapePositionB","bodiesOverlap","shapePositionA","shapePositionB","Nshapesi","shapes","shapeA","toWorldFrame","Nshapesj","shapeB","collidedLastStep","id1","id","id2","get","reset","eqs","ce","fe","release","createContactEquation","firstImpact","needsUpdate","enabled","offset","createFrictionEquation","setSlipForce","relativeVelocity","createFrictionFromContact","contactPointA","contactPointB","rotate90cw","normalA","createFrictionFromAverage","numContacts","invNumContacts","scale","normalize","LINE","CONVEX","convexLine","convexBody","lineBody","lineShape","lineOffset","lineAngle","justTest","BOX","lineBox","boxBody","boxShape","boxOffset","boxAngle","convexCapsule_tempRect","width","height","convexCapsule_tempVec","CAPSULE","convexCapsule","convexPosition","capsuleBody","capsulePosition","capsuleAngle","circlePos","result1","circleConvex","result2","convexConvex","lineCapsule","linePosition","capsuleCapsule_tempVec1","capsuleCapsule_tempVec2","capsuleCapsule_tempRect1","capsuleCapsule","si","xi","ai","sj","xj","aj","enableFrictionBefore","circlePosi","circlePosj","circleCircle","rect","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","pos","pos0","pos1","pow","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","circle","numContacts1","circlePlane","numContacts2","numTotal","planeToCircle","temp","contact","sepAxis","worldPoint0","worldPoint1","penetrationVec","findSeparatingAxis","closestEdge1","getClosestEdge","closestEdge2","closestEdgeA","closestEdgeB","insideNumEdges","pcoa_tmp1","projectConvexOntoAxis","worldAxis","value","localAxis","fsa_tmp1","fsa_tmp2","fsa_tmp3","fsa_tmp4","fsa_tmp5","fsa_tmp6","offset1","angle1","offset2","angle2","maxDist","overlap","edge","normal","span1","span2","swapped","gce_tmp1","gce_tmp2","gce_tmp3","axis","flip","closestEdge","maxDot","circleHeightfield_candidate","circleHeightfield_dist","circleHeightfield_v0","circleHeightfield_v1","circleHeightfield_minCandidate","circleHeightfield_worldNormal","circleHeightfield_minCandidateNormal","HEIGHTFIELD","circleHeightfield","hfBody","hfShape","hfPos","hfAngle","data","heights","w","elementWidth","minCandidateNormal","idxA","floor","idxB","ceil","PI","convexHeightfield_v0","convexHeightfield_v1","convexHeightfield_tilePos","convexHeightfield_tempConvexShape","convexHeightfield","convexPos","tilePos","tileConvex","tileHeight","../equations/ContactEquation","../equations/Equation","../equations/FrictionEquation","../shapes/Box","../shapes/Convex","../utils/ContactEquationPool","../utils/FrictionEquationPool","../utils/TupleDictionary",11,"Ray","checkCollisionResponse","undefined","skipBackfaces","collisionMask","collisionGroup","mode","ANY","callback","update","distanceFromIntersectionSquared","intersect","squaredDistance","CLOSEST","ALL","intersectBodies","shouldStop","body","intersectBody","intersectBody_worldPosition","collisionResponse","worldPosition","shape","worldAngle","intersectShape","distance","_currentBody","_currentShape","raycast","reportIntersection","fraction","faceIndex","hasHit","../collision/AABB","../collision/RaycastResult",12,"RaycastResult","isStopped","getHitDistance","getHitPoint","out","lerp","stop","../collision/Ray",13,"SAPBroadphase","axisList","axisIndex","that","_addBodyHandler","_removeBodyHandler","idx","Utils","appendArray","off","on","sortAxisList","sortList",14,"Constraint","defaults","collideConnected","wakeUpBodies","equations","wakeUp","DISTANCE","GEAR","LOCK","PRISMATIC","REVOLUTE","setStiffness","setRelaxation",15,"DistanceConstraint","localAnchorA","localAnchorB","worldAnchorA","worldAnchorB","maxForce","ri","rj","computeGq","setMaxForce","upperLimitEnabled","upperLimit","lowerLimitEnabled","lowerLimit","normalEquation","G","violating","minForce","rixn","rjxn","getMaxForce","./Constraint",16,"GearConstraint","ratio","AngleLockEquation","maxTorque","setMaxTorque","setRatio","torque","getMaxTorque","../equations/AngleLockEquation",17,"LockConstraint","localAngleB","rot","g","localOffsetB","force","xAxis",18,"PrismaticConstraint","localAxisA","trans","gg","updateJacobian","disableRotationalLock","RotationalLockEquation","velocity","upperLimitEquation","ContactEquation","lowerLimitEquation","motorEquation","motorEnabled","motorSpeed","computeGW","vi","vj","wi","angularVelocity","wj","gmult","worldAxisA","orientedAnchorA","orientedAnchorB","relPosition","enableMotor","disableMotor","setLimits","lower","upper","../equations/RotationalLockEquation",19,"RevoluteConstraint","pivotA","pivotB","worldPivot","localPivotA","localPivotB","worldPivotA","worldPivotB","RotationalVelocityEquation","relAngle","motorIsEnabled","setMotorSpeed","speed","getMotorSpeed","../equations/RotationalVelocityEquation",20,"./Equation",21,"computeB","h","GW","Gq","GiMf","computeGiMf","B",22,"ARRAY_TYPE","epsilon","timeStep","multiplier","qi","qj","computeGWlambda","vlambda","wlambda","iMfi","iMfj","fi","ti","angularForce","fj","tj","invMassi","invMassSolve","invMassj","invIi","invInertiaSolve","invIj","multiply","massMultiplier","computeGiMGt","addToWlambda_temp","addToWlambda_Gi","addToWlambda_Gj","addToWlambda","deltalambda","Gi","Gj","computeInvC","eps",23,"FrictionEquation","getSlipForce",24,"worldVectorA","worldVectorB",25,26,"EventEmitter","listener","context","_listeners","listeners","has","index","emit","event","listenerArray","target",27,"ContactMaterial","materialA","materialB","Material","idCounter","friction","./Material",28,29,"PolyK","GetArea","sum","Triangulate","tgs","avl","al","i0","i1","i2","ax","ay","bx","by","cx","cy","earFound","_convex","_PointInTriangle","px","py","v0x","v0y","v1x","v1y","v2x","v2y","dot00","dot01","dot02","dot11","dot12","invDenom",30,"crossVZ","vec","zcomp","crossZV","toLocalFrame","framePosition","frameAngle","toGlobalFrame","localPoint","vectorToLocalFrame","worldVector","vectorToGlobalFrame","localVector","centroid","clone","subtract","mul","divide","div","sqrDist","len","sqrLen","negate","str","reflect","vector","getLineSegmentsIntersection","p0","p3","getLineSegmentsIntersectionFraction","s1_x","s1_y","s2_x","s2_y",31,"_idCounter","mass","invMass","inertia","invInertia","fixedRotation","fixedX","fixedY","interpolatedPosition","interpolatedAngle","previousPosition","previousAngle","damping","angularDamping","DYNAMIC","allowSleep","wantsToSleep","AWAKE","sleepSpeedLimit","sleepTimeLimit","gravityScale","idleTime","timeLastSleepy","ccdSpeedThreshold","ccdIterations","concavePath","_wakeUpAfterNarrowphase","updateMassProperties","updateSolveMassProperties","setDensity","density","totalArea","getArea","shapeAABB","bodyAngle","computeAABB","updateBoundingRadius","addShape","removeShape","m","I","r2","Icm","computeMomentOfInertia","applyForce","relativePoint","rotForce","Body_applyForce_forceWorld","Body_applyForce_pointWorld","Body_applyForce_pointLocal","applyForceLocal","localForce","worldForce","vectorToWorldFrame","Body_applyImpulse_velo","applyImpulse","impulseVector","velo","rotVelo","Body_applyImpulse_impulseWorld","Body_applyImpulse_pointWorld","Body_applyImpulse_pointLocal","applyImpulseLocal","localImpulse","worldImpulse","fromPolygon","convexes","optimalDecomp","cm","centerOfMass","updateTriangles","updateCenterOfMass","adjustCenterOfMass","adjustCenterOfMass_tmp2","adjustCenterOfMass_tmp3","adjustCenterOfMass_tmp4","offset_times_area","setZeroForce","resetConstraintVelocity","addConstraintVelocity","applyDamping","dt","wakeUpEvent","sleep","sleepEvent","sleepTick","time","dontSleep","speedSquared","speedLimitSquared","SLEEPY","overlapKeeper","bodiesAreOverlapping","integrate_fhMinv","integrate_velodt","integrate","minv","integrateToTimeOfImpact","end","startToEnd","rememberPosition","hit","startToEndAngle","timeOfImpact","rememberAngle","iter","tmid","narrowphase","getVelocityAtPoint","sleepyEvent","../events/EventEmitter",32,"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",33,"RotationalSpring","restAngle",34,35,"TopDownVehicle","chassisBody","wheels","groundBody","preStepCallback","WheelConstraint","vehicle","forwardEquation","sideEquation","steerValue","engineForce","setSideFriction","sideFriction","localForwardVector","localPosition","apply","setBrakeForce","addToWorld","addBody","wheel","addConstraint","removeFromWorld","removeBody","removeConstraint","addWheel","wheelOptions","worldVelocity","getSpeed","tmpVec","../constraints/Constraint",36,"Capsule","GSSolver","Heightfield","Particle","Plane","Pool","Solver","World","Object","defineProperty","../package.json","./collision/AABB","./collision/Broadphase","./collision/NaiveBroadphase","./collision/Narrowphase","./collision/Ray","./collision/RaycastResult","./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","./objects/TopDownVehicle","./shapes/Box","./shapes/Capsule","./shapes/Circle","./shapes/Convex","./shapes/Heightfield","./shapes/Line","./shapes/Particle","./shapes/Plane","./shapes/Shape","./solver/GSSolver","./solver/Solver","./utils/ContactEquationPool","./utils/FrictionEquationPool","./utils/Pool","./utils/Utils","./world/World",37,"arguments","axes","updateArea","./Convex","./Shape",38,"intersectCapsule_hitPointWorld","intersectCapsule_normal","intersectCapsule_l0","intersectCapsule_l1","intersectCapsule_unit_y","hitPointWorld","l0","halfLen","diagonalLengthSquared","sqrtDelta","inv2a","d1",39,"Ray_intersectSphere_intersectionPoint","Ray_intersectSphere_normal","intersectionPoint",40,"isArray","triangles","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","denom","numer","intersectConvex_rayStart","intersectConvex_rayEnd","intersectConvex_normal","rayStart","rayEnd","../math/polyk",41,"key","maxValue","minValue","updateMaxMinValues","getLineSegment","start","getSegmentIndex","getClampedSegmentIndex","intersectHeightfield_worldNormal","intersectHeightfield_l0","intersectHeightfield_l1","intersectHeightfield_localFrom","intersectHeightfield_localTo","localFrom","localTo",42,"raycast_normal","raycast_l0","raycast_l1","raycast_unit_y",43,44,"intersectPlane_planePointToFrom","intersectPlane_normal","intersectPlane_len","planePointToFrom","planeToFrom","planeToTo","n_dot_dir",45,"material","sensor",46,"GS","iterations","tolerance","arrayStep","lambda","Bs","invCs","useZeroRHS","frictionIterations","usedIterations","setArrayZero","array","solve","sortEquations","maxIter","maxFrictionIter","Neq","tolSquared","Nbodies","deltalambdaTot","iterateEquation","updateMultipliers","invDt","invC","lambdaj","GWlambda","lambdaj_plus_deltalambda","./Solver",47,"equationSortFunction","mockWorld","solveIsland","island","removeAllEquations","addEquations","getBodies","sort","addEquation","removeEquation","ISLAND",48,"destroy","equation","./Pool",49,50,"IslandNodePool","IslandNode","../world/IslandNode",51,"IslandPool","Island","../world/Island",52,"OverlapKeeper","overlappingShapesLastState","overlappingShapesCurrentState","recordPool","OverlapKeeperRecordPool","tmpDict","tmpArray1","tick","current","keys","lastObject","getByKey","setOverlapping","getNewOverlaps","getDiff","getEndOverlaps","dictA","dictB","lastData","isNewOverlap","idA","idB","getNewBodyOverlaps","getBodyDiff","getEndBodyOverlaps","accumulator","./OverlapKeeperRecord","./OverlapKeeperRecordPool","./TupleDictionary","./Utils",53,"OverlapKeeperRecord",54,"record",55,"objects","resize","object",56,"getKey","dict",57,"howmany","P2_ARRAY_TYPE","Float32Array",58,"bodyIds",59,"IslandManager","nodePool","islandPool","islands","nodes","queue","getUnvisitedNode","Nnodes","visited","visit","bds","Neqs","bfs","root","child","neighbors","split","ni","nj","./../utils/IslandNodePool","./../utils/IslandPool","./Island","./IslandNode",60,61,"springs","disabledBodyCollisionPairs","solver","islandManager","gravity","frictionGravity","useWorldGravityAsFrictionGravity","useFrictionGravityOnZeroGravity","broadphase","constraints","defaultMaterial","defaultContactMaterial","lastTimeStep","applySpringForces","applyGravity","solveConstraints","contactMaterials","stepping","bodiesToBeRemoved","islandSplit","emitImpactEvent","_constraintIdCounter","_bodyIdCounter","postStepEvent","addBodyEvent","removeBodyEvent","addSpringEvent","spring","impactEvent","contactEquation","postBroadphaseEvent","pairs","sleepMode","NO_SLEEPING","beginContactEvent","endContactEvent","preSolveEvent","BODY_SLEEPING","ISLAND_SLEEPING","constraint","addContactMaterial","contactMaterial","removeContactMaterial","getContactMaterial","cmats","step_mg","xiw","xjw","step","timeSinceLastCalled","maxSubSteps","internalStep","substeps","endOverlaps","Nsprings","np","mg","gravityLen","ignoredPairs","Nconstraints","Nresults","runNarrowphase","ev","glen","aiw","ajw","reducedMass","resolver","numFrictionBefore","numFrictionEquations","speedSquaredB","speedLimitSquaredB","speedSquaredA","speedLimitSquaredA","addSpring","evt","removeSpring","getBodyById","disableBodyCollision","enableBodyCollision","cs","cms","hitTest_tmp1","hitTest_tmp2","hitTest","pb","ps","pa","NS","setGlobalStiffness","setGlobalRelaxation","tmpAABB","../../package.json","../collision/Narrowphase","../collision/SAPBroadphase","../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","PIXI","WEBGL_RENDERER","CANVAS_RENDERER","VERSION","_UID","Uint16Array","Uint32Array","ArrayBuffer","PI_2","RAD_TO_DEG","DEG_TO_RAD","RETINA_PREFIX","defaultRenderOptions","view","transparent","antialias","preserveDrawingBuffer","resolution","clearBeforeRender","autoResize","DisplayObject","transformCallback","transformCallbackContext","pivot","rotation","alpha","visible","hitArea","renderable","parent","stage","worldAlpha","worldTransform","Matrix","worldScale","worldRotation","_sr","_cr","filterArea","_bounds","Rectangle","_currentBounds","_mask","_cacheAsBitmap","_cacheIsDirty","children","_destroyCachedSprite","item","isMask","_filters","passes","filterPasses","_filterBlock","_generateCachedSprite","updateTransform","game","tx","ty","pt","wt","rotationCache","atan2","displayObjectUpdateTransform","getBounds","matrix","EmptyRectangle","getLocalBounds","identityMatrix","setStageReference","preUpdate","generateTexture","scaleMode","renderer","bounds","renderTexture","RenderTexture","_tempMatrix","render","updateCache","toGlobal","toLocal","applyInverse","_renderCachedSprite","renderSession","_cachedSprite","gl","Sprite","_renderWebGL","_renderCanvas","texture","tempFilters","filters","anchor","DisplayObjectContainer","_width","_height","addChild","addChildAt","removeChild","swapChildren","child2","index1","getChildIndex","index2","setChildIndex","currentIndex","getChildAt","removeChildAt","removeStageReference","removeChildren","beginIndex","endIndex","begin","range","removed","displayObjectContainerUpdateTransform","childBounds","childMaxX","childMaxY","minX","Infinity","minY","maxX","maxY","childVisible","matrixCache","spriteBatch","flush","filterManager","pushFilter","maskManager","pushMask","mask","popMask","popFilter","Texture","emptyTexture","tint","cachedTint","tintedTexture","blendMode","blendModes","NORMAL","shader","baseTexture","hasLoaded","onTextureUpdate","frame","setTexture","valid","w0","w1","h0","h1","x1","y1","x2","y2","x3","y3","x4","y4","crop","currentBlendMode","globalCompositeOperation","blendModesCanvas","globalAlpha","smoothProperty","scaleModes","LINEAR","trim","roundPixels","setTransform","cw","ch","requiresReTint","CanvasTinter","getTintedTexture","drawImage","source","fromFrame","frameId","TextureCache","fromImage","imageId","crossorigin","SpriteBatch","textureThing","ready","initWebGL","fastSpriteBatch","WebGLFastSpriteBatch","setContext","shaderManager","setShader","fastShader","transform","isRotated","childTransform","Stage","backgroundColor","setBackgroundColor","backgroundColorSplit","hex2rgb","hex","toString","substr","backgroundColorString","rgb2hex","rgb","canUseNewCanvasBlendModes","document","pngHead","pngEnd","magenta","Image","src","yellow","canvas","createElement","getContext","getImageData","getNextPowerOfTwo","number","isPowerOfTwo","sign","initDefaultShaders","CompileVertexShader","shaderSrc","_CompileShader","VERTEX_SHADER","CompileFragmentShader","FRAGMENT_SHADER","shaderType","join","createShader","shaderSource","compileShader","getShaderParameter","COMPILE_STATUS","log","getShaderInfoLog","compileProgram","vertexSrc","fragmentSrc","fragmentShader","vertexShader","shaderProgram","createProgram","attachShader","linkProgram","getProgramParameter","LINK_STATUS","PixiShader","program","textureCount","firstRun","dirty","attributes","init","defaultVertexSrc","useProgram","uSampler","getUniformLocation","projectionVector","offsetVector","dimensions","aVertexPosition","getAttribLocation","aTextureCoord","colorAttribute","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","transpose","z","_dirty","instances","updateTexture","deleteProgram","PixiFastShader","uMatrix","aPositionCoord","aScale","aRotation","StripShader","translationMatrix","attribute","PrimitiveShader","tintColor","ComplexPrimitiveShader","color","WebGLGraphics","renderGraphics","graphics","webGLData","projection","primitiveShader","updateGraphics","webGL","_webGL","stencilManager","pushStencil","drawElements","TRIANGLE_FAN","UNSIGNED_SHORT","indices","popStencil","toArray","uniform1f","uniform2f","uniform3fv","bindBuffer","ARRAY_BUFFER","buffer","vertexAttribPointer","FLOAT","ELEMENT_ARRAY_BUFFER","indexBuffer","TRIANGLE_STRIP","lastIndex","clearDirty","graphicsData","graphicsDataPool","Graphics","POLY","closed","fill","switchMode","canDrawUsingSimple","buildPoly","buildComplexPoly","lineWidth","buildLine","RECT","buildRectangle","CIRC","ELIP","buildCircle","RREC","buildRoundedRectangle","upload","WebGLGraphicsData","rectData","fillColor","fillAlpha","vertPos","tempPoints","rrectData","recPoints","concat","quadraticBezierCurve","vecPos","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","pdist","indexCount","indexStart","lineColor","lineAlpha","createBuffer","glPoints","bufferData","STATIC_DRAW","glIndicies","glContexts","WebGLRenderer","defaultRenderer","_contextOptions","premultipliedAlpha","stencil","WebGLShaderManager","WebGLSpriteBatch","WebGLMaskManager","WebGLFilterManager","WebGLStencilManager","blendModeManager","WebGLBlendModeManager","drawCount","initContext","mapBlendModes","glContextId","disable","DEPTH_TEST","CULL_FACE","enable","BLEND","contextLost","__stage","viewport","bindFramebuffer","FRAMEBUFFER","clearColor","COLOR_BUFFER_BIT","renderDisplayObject","displayObject","setBlendMode","style","createTexture","UNPACK_PREMULTIPLY_ALPHA_WEBGL","NEAREST","mipmap","LINEAR_MIPMAP_LINEAR","NEAREST_MIPMAP_NEAREST","generateMipmap","_powerOf2","blendModesWebGL","ONE","ONE_MINUS_SRC_ALPHA","ADD","SRC_ALPHA","DST_ALPHA","MULTIPLY","DST_COLOR","SCREEN","OVERLAY","DARKEN","LIGHTEN","COLOR_DODGE","COLOR_BURN","HARD_LIGHT","SOFT_LIGHT","DIFFERENCE","EXCLUSION","HUE","SATURATION","COLOR","LUMINOSITY","blendModeWebGL","blendFunc","maskData","stencilStack","count","bindGraphics","STENCIL_TEST","STENCIL_BUFFER_BIT","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","positions","colors","lastIndexCount","drawing","currentBatchSize","currentBaseTexture","textures","shaders","sprites","AbstractFilter","vertexBuffer","DYNAMIC_DRAW","sprite","uvs","_uvs","aX","aY","x0","y0","renderTilingSprite","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","sizeX","sizeY","currentFilter","colorBuffer","colorArray","createFramebuffer","DEFAULT","framebufferTexture2D","COLOR_ATTACHMENT0","renderBuffer","createRenderbuffer","bindRenderbuffer","RENDERBUFFER","framebufferRenderbuffer","DEPTH_STENCIL_ATTACHMENT","renderbufferStorage","DEPTH_STENCIL","deleteFramebuffer","deleteTexture","CanvasBuffer","clearRect","CanvasMaskManager","save","cacheAlpha","CanvasGraphics","renderGraphicsMask","clip","restore","tintMethod","tintWithMultiply","fillStyle","fillRect","tintWithPerPixel","rgbValues","pixelData","pixels","canHandleAlpha","putImageData","checkInverseAlpha","s1","s2","canUseMultiply","CanvasRenderer","refresh","navigator","isCocoonJS","screencanvas","removeView","updateGraphicsTint","_fillTint","_lineTint","beginPath","moveTo","lineTo","closePath","strokeStyle","stroke","strokeRect","arc","kappa","ox","oy","xe","ye","xm","ym","bezierCurveTo","rx","ry","maxRadius","quadraticCurveTo","tintR","tintG","tintB","BaseTextureCache","BaseTextureCacheIdGenerator","BaseTexture","complete","naturalWidth","naturalHeight","imageUrl","forceLoaded","_pixiId","unloadFromGPU","updateSourceImage","newSrc","glTexture","image","crossOrigin","fromCanvas","TextureCacheIdGenerator","FrameCache","TextureSilentFail","noFrame","isTiling","requiresUpdate","setFrame","onBaseTextureLoaded","destroyBase","_updateUvs","tw","th","addTextureToCache","removeTextureFromCache","textureBuffer","renderWebGL","renderCanvas","tempMatrix","Phaser","updateBase","identity","translate","realResolution","getImage","getBase64","getCanvas","toDataURL","webGLPixels","Uint8Array","readPixels","tempCanvas","canvasData","Strip","canvasPadding","drawMode","DrawModes","_vertexBuffer","_initWebGL","_renderStrip","_indexBuffer","_uvBuffer","_colorBuffer","_renderCanvasTriangleStrip","_renderCanvasTriangles","_renderCanvasDrawTriangle","index0","textureSource","textureWidth","textureHeight","u0","v2","paddingX","paddingY","centerX","centerY","normX","normY","deltaA","deltaB","deltaC","deltaD","deltaE","deltaF","renderStripFlat","strip","updateFrame","rawX","rawY","Rope","amount","total","nextPoint","perp","perpLength","TilingSprite","textureDebug","canvasBuffer","tilePattern","refreshTexture","frameWidth","frameHeight","generateTilingTexture","createPattern","sessionBlendMode","forcePowerOfTwo","targetWidth","_frame","sourceSizeW","targetHeight","sourceSizeH","trimmed","spriteSourceSizeX","spriteSourceSizeY","define","amd","WheelEventProxy","scaleFactor","deltaMode","_scaleFactor","_deltaMode","originalEvent","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","RECTANGLE","MATRIX","POINT","ROUNDEDRECTANGLE","CREATURE","VIDEO","trunc","Function","bind","thisArg","bound","args","boundArgs","TypeError","F","proto","arg","forEach","fun","CheapArray","assert","getProperty","obj","prop","parts","setProperty","chanceRoll","chance","random","randomChoice","choice1","choice2","parseDimension","dimension","parseInt","innerWidth","innerHeight","pad","dir","padlen","isPlainObject","nodeType","hasOwnProperty","copyIsArray","deep","mixinPrototype","mixin","replace","mixinKeys","childNodes","cloneNode","diameter","_diameter","_radius","circumference","setTo","copyFrom","copyTo","dest","round","output","contains","circumferencePoint","asDegrees","offsetPoint","top","bottom","equals","intersects","degToRad","intersectsRectangle","halfWidth","xDist","halfHeight","yDist","xCornerDist","yCornerDist","xCornerDistSq","yCornerDistSq","maxCornerDistSq","Ellipse","normx","normy","fromSprite","startSprite","endSprite","useCenter","center","fromAngle","line","asSegment","intersectsPoints","pointOnLine","pointOnSegment","xMin","xMax","yMin","yMax","coordinatesOnLine","stepRate","results","sx","sy","err","e2","wrap","uc","ua","ub","normalAngle","fromArray","newPos","tx1","invert","clampX","clamp","clampY","radToDeg","getMagnitude","getMagnitudeSq","setMagnitude","magnitude","isZero","rperp","normalRightHand","negative","multiplyAdd","interpolate","project","amt","projectUnit","pointslength","parse","xProp","yProp","_points","toNumberArray","flatten","inside","ix","iy","jx","jy","calculateArea","avgHeight","centerOn","floorAll","ceilAll","inflate","containsRect","intersection","intersectsRaw","union","randomX","randomY","empty","inflatePoint","containsRaw","rw","rh","volume","sameDimensions","MIN_VALUE","RoundedRectangle","Camera","deadzone","roundPx","atLimit","totalInView","_targetPosition","_edge","_position","FOLLOW_LOCKON","FOLLOW_PLATFORMER","FOLLOW_TOPDOWN","FOLLOW_TOPDOWN_TIGHT","follow","helper","unfollow","focusOn","setPosition","focusOnXY","updateTarget","checkBounds","setBoundsToWorld","setSize","Create","bmd","make","bitmapData","ctx","palettes","A","C","D","E","PALETTE_ARNE","PALETTE_JMP","PALETTE_CGA","PALETTE_C64","PALETTE_JAPANESE_MACHINE","pixelWidth","pixelHeight","palette","row","grid","cellWidth","cellHeight","State","camera","cache","input","load","math","sound","tweens","particles","physics","rnd","preload","loadUpdate","loadRender","preRender","paused","resumed","pauseUpdate","shutdown","StateManager","pendingState","states","_pendingState","_clearWorld","_clearCache","_created","_args","onStateChange","Signal","onInitCallback","onPreloadCallback","onCreateCallback","onUpdateCallback","onRenderCallback","onResizeCallback","onPreRenderCallback","onLoadUpdateCallback","onLoadRenderCallback","onPausedCallback","onResumedCallback","onPauseUpdateCallback","onShutDownCallback","boot","onPause","pause","onResume","resume","state","autoStart","newState","isBooted","remove","callbackContext","clearWorld","clearCache","checkState","restart","dummy","previousStateKey","clearCurrentState","setCurrentState","dispatch","totalQueuedFiles","totalQueuedPacks","loadComplete","removeAll","debug","link","unlink","_kickstart","getCurrentState","elapsedTime","renderType","_bindings","_prevParams","memorize","_shouldPropagate","active","_boundDispatch","validateListener","fnName","_registerListener","isOnce","listenerContext","priority","binding","prevIndex","_indexOfListener","SignalBinding","_addBinding","execute","_priority","cur","_listener","addOnce","_destroy","getNumListeners","halt","bindings","paramsArr","forget","dispose","_this","signal","_isOnce","_signal","callCount","params","handlerReturn","detach","isBound","getListener","getSignal","Filter","prevPoint","Date","mouse","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","exists","currentRenderOrderID","_hiddenVar","_onChange","_backgroundColor","config","parseConfig","DOM","getOffset","Canvas","setUserSelect","setTouchAction","checkVisibility","webkitHidden","mozHidden","msHidden","hidden","visibilityChange","addEventListener","onblur","onfocus","onpagehide","onpageshow","device","cocoonJSApp","CocoonJS","App","onSuspended","onActivated","focusLoss","focusGain","gamePaused","gameResumed","Color","valueToColor","getColor","RGBtoString","removeEventListener","Group","addToStage","enableBody","physicsBodyType","Physics","ARCADE","physicsType","alive","ignoreDestroy","pendingDestroy","classType","cursor","enableBodyDebug","physicsSortDirection","onDestroy","cursorIndex","fixedToCamera","cameraOffset","hash","_sortProperty","RETURN_NONE","RETURN_TOTAL","RETURN_CHILD","SORT_ASCENDING","SORT_DESCENDING","silent","addToHash","events","onAddedToGroup$dispatch","removeFromHash","addMultiple","moveAll","addAt","updateZ","getAt","createMultiple","quantity","resetCursor","next","previous","swap","child1","bringToTop","getIndex","sendToBack","moveUp","moveDown","xy","oldChild","newChild","hasProperty","operation","checkProperty","checkAlive","checkVisible","setAll","setAllChildren","checkAll","addAll","property","subAll","multiplyAll","divideAll","callAllExists","existsValue","callbackFromArray","callAll","method","methodLength","contextLength","renderOrderID","predicate","checkExists","ArraySet","forEachExists","iterate","forEachAlive","forEachDead","order","ascendingSortHandler","descendingSortHandler","customSort","sortHandler","returnType","getFirstExists","getFirstAlive","getFirstDead","getTop","getBottom","countLiving","countDead","getRandom","ArrayUtils","getRandomItem","destroyPhase","onRemovedFromGroup$dispatch","group","removeBetween","destroyChildren","soft","_definedSize","stateChange","setBounds","useBounds","horizontal","vertical","between","FlexGrid","manager","boundsCustom","boundsFluid","boundsFull","boundsNone","positionCustom","positionFluid","positionFull","positionNone","scaleCustom","scaleFluid","scaleFluidInversed","scaleFull","scaleNone","customWidth","customHeight","customOffsetX","customOffsetY","ratioH","ratioV","layers","createCustomLayer","layer","FlexLayer","createFluidLayer","createFullLayer","createFixedLayer","persist","onResize","fitSprite","scaleSprite","text","geom","uuid","topLeft","topMiddle","topRight","bottomLeft","bottomMiddle","bottomRight","ScaleManager","dom","minWidth","maxWidth","minHeight","maxHeight","forceLandscape","forcePortrait","incorrectOrientation","_pageAlignHorizontally","_pageAlignVertically","onOrientationChange","enterIncorrectOrientation","leaveIncorrectOrientation","fullScreenTarget","_createdFullScreenTarget","onFullScreenInit","onFullScreenChange","onFullScreenError","screenOrientation","getScreenOrientation","scaleFactorInversed","margin","aspectRatio","sourceAspectRatio","windowConstraints","compatibility","supportsFullScreen","orientationFallback","noMargins","scrollTo","forceMinimumDocumentHeight","canExpandParent","clickTrampoline","_scaleMode","NO_SCALE","_fullScreenScaleMode","parentIsWindow","parentNode","parentScaleFactor","trackParentInterval","onSizeChange","onResizeContext","_pendingScaleMode","_fullScreenRestore","_gameSize","_userScaleFactor","_userScaleTrim","_lastUpdate","_updateThrottle","_updateThrottleReset","_parentBounds","_tempBounds","_lastReportedCanvasSize","_lastReportedGameSize","_booted","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","visualBounds","newWidth","newHeight","updateDimensions","queueUpdate","currentScaleMode","setUserScale","hScale","vScale","hTrim","vTrim","setResizeCallback","signalSizeChange","setMinMax","prevThrottle","prevWidth","prevHeight","boundsChanged","orientationChanged","updateOrientationState","updateLayout","throttle","updateScalingAndBounds","forceOrientation","classifyOrientation","orientation","previousOrientation","previouslyIncorrect","isLandscape","isPortrait","changed","correctnessChanged","scrollTop","reflowGame","documentElement","setMaximum","setExactFit","isFullScreen","boundingParent","setShowAll","resetCanvas","reflowCanvas","layoutBounds","clientRect","getBoundingClientRect","wc","windowBounds","alignCanvas","parentBounds","canvasBounds","currentEdge","targetEdge","marginLeft","marginRight","marginTop","marginBottom","pageAlignHorizontally","pageAlignVertically","cssWidth","cssHeight","expanding","createFullScreenTarget","fsTarget","background","startFullScreen","allowTrampoline","setTimeout","activePointer","mousePointer","addClickTrampoline","smoothed","cleanupCreatedTarget","initData","targetElement","insertBefore","appendChild","fullscreenKeyboard","requestFullscreen","Element","ALLOW_KEYBOARD_INPUT","stopFullScreen","cancelFullscreen","prepScreenMode","enteringFullscreen","createdTarget","enterFullScreen","leaveFullScreen","letterBox","scaleX1","scaleY1","scaleX2","scaleY2","scaleOnWidth","Game","physicsConfig","isRunning","raf","net","Device","lockRender","pendingStep","stepCount","onBlur","onFocus","_paused","_codePaused","currentUpdateID","updatesThisFrame","_deltaTime","_lastCount","_spiraling","fpsProblemNotifier","forceSingleUpdate","_nextFpsNotification","enableDebug","RandomDataGenerator","now","whenReady","seed","setUpRenderer","GameObjectFactory","GameObjectCreator","Cache","Loader","Time","TweenManager","Input","SoundManager","Particles","Net","Debug","showDebugHeader","RequestAnimationFrame","stopFocus","focus","hideBanner","webAudio","contextRestored","addToDOM","preventDefault","clearGLTextures","updateLogic","desiredFps","updateRender","slowMotion","slowStep","elapsed","enableStep","disableStep","removeFromDOM","setMute","cordova","iOS","unsetMute","hitCanvas","hitContext","moveCallbacks","pollRate","multiInputOverride","MOUSE_TOUCH_COMBINE","maxPointers","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","Touch","MSPointer","Keyboard","Gamepad","_onClickTrampoline","onClickTrampoline","addMoveCallback","deleteMoveCallback","hard","resetSpeed","startPointer","countActivePointers","updatePointer","identifier","move","stopPointer","limit","getPointer","isActive","getPointerFromIdentifier","getPointerFromId","pointerId","getLocalPosition","worldVisible","TileSprite","processClickTrampolines","mouseDownCallback","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","BACK_BUTTON","FORWARD_BUTTON","WHEEL_UP","WHEEL_DOWN","onMouseDown","onMouseMove","onMouseUp","_onMouseUpGlobal","onMouseUpGlobal","onMouseOut","onMouseOver","onMouseWheel","wheelEvent","mouseMoveCallback","withinGame","bindEvent","deltaY","requestPointerLock","element","mozRequestPointerLock","webkitRequestPointerLock","_pointerLockChange","pointerLockChange","pointerLockElement","mozPointerLockElement","webkitPointerLockElement","releasePointerLock","exitPointerLock","mozExitPointerLock","webkitExitPointerLock","_stubsGenerated","makeBinder","defineProperties","detail","deltaX","wheelDeltaX","deltaZ","pointerDownCallback","pointerMoveCallback","pointerUpCallback","_onMSPointerDown","_onMSPointerMove","_onMSPointerUp","onPointerDown","onPointerMove","onPointerUp","pointerType","DeviceButton","buttonCode","isDown","isUp","timeDown","duration","timeUp","repeats","altKey","shiftKey","ctrlKey","onFloat","padFloat","justPressed","justReleased","leftButton","middleButton","rightButton","backButton","forwardButton","eraserButton","ERASER_BUTTON","_holdSent","_history","_nextDrop","_stateReset","clientX","clientY","pageX","pageY","screenX","screenY","rawMovementX","rawMovementY","movementX","movementY","isMouse","previousTapTime","totalTouches","msSinceLastClick","targetObject","positionDown","positionUp","_clickTrampolines","_trampolineTargetObject","resetButtons","updateButtons","buttons","totalActivePointers","_touchedHandler","processInteractiveObjects","shift","fromClick","pollLocked","mozMovementX","webkitMovementX","mozMovementY","webkitMovementY","isDragged","highestRenderOrderID","highestInputPriorityID","candidateTarget","currentNode","checked","validForInput","checkPointerDown","checkPointerOver","priorityID","_pointerOutHandler","_pointerOverHandler","leave","currentPointers","callbackArgs","trampolines","trampoline","_releasedHandler","resetMovement","touchLockCallbacks","touchStartCallback","touchMoveCallback","touchEndCallback","touchEnterCallback","touchLeaveCallback","touchCancelCallback","_onTouchStart","_onTouchMove","_onTouchEnd","_onTouchEnter","_onTouchLeave","_onTouchCancel","onTouchStart","onTouchMove","onTouchEnd","onTouchEnter","onTouchLeave","onTouchCancel","consumeDocumentTouches","_documentTouchMove","addTouchLockCallback","removeTouchLockCallback","changedTouches","InputHandler","useHandCursor","_setHandCursor","allowHorizontalDrag","allowVerticalDrag","snapOffset","snapOnDrag","snapOnRelease","snapX","snapY","snapOffsetX","snapOffsetY","pixelPerfectOver","pixelPerfectClick","pixelPerfectAlpha","draggable","boundsRect","boundsSprite","consumePointerEvent","scaleLayer","dragOffset","dragFromCenter","dragStartPoint","snapPoint","_dragPoint","_dragPhase","_wasEnabled","_tempPoint","_pointerData","isOver","isOut","timeOver","timeOut","downDuration","onAddedToGroup","addedToGroup","onRemovedFromGroup","removedFromGroup","flagged","highestID","highestRenderID","includePixelPerfect","isPixelPerfect","pointerX","pointerY","pointerDown","pointerUp","pointerTimeDown","pointerTimeUp","pointerOver","pointerOut","pointerTimeOver","pointerTimeOut","pointerDragged","fastTest","checkPixel","_dx","_dy","_draggedPointerID","updateDrag","onInputOver$dispatch","onInputOut$dispatch","onInputDown$dispatch","startDrag","onInputUp$dispatch","stopDrag","globalToLocalX","globalToLocalY","checkBoundsRect","checkBoundsSprite","onDragUpdate","justOver","delay","overDuration","justOut","enableDrag","lockCenter","pixelPerfect","alphaThreshold","disableDrag","onDragStart$dispatch","onDragStop$dispatch","setDragLock","allowHorizontal","allowVertical","enableSnap","onDrag","onRelease","disableSnap","_gamepadIndexMap","_rawPads","_active","_gamepadSupportAvailable","webkitGetGamepads","webkitGamepads","userAgent","getGamepads","_prevRawGamepadTypes","_prevTimestamps","onConnectCallback","onDisconnectCallback","onDownCallback","onUpCallback","onAxisCallback","onFloatCallback","_ongamepadconnected","_gamepaddisconnected","_gamepads","SinglePad","addCallbacks","callbacks","onConnect","onDisconnect","onAxis","_onGamepadConnected","onGamepadConnected","_onGamepadDisconnected","onGamepadDisconnected","newPad","connect","removedPad","disconnect","_pollGamepads","pad1","pollStatus","pad2","pad3","pad4","rawGamepads","gamepadsChanged","singlePad","validConnections","rawIndices","padIndices","connected","rawPad","setDeadZones","deadZone","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","processButtonDown","processButtonUp","processButtonFloat","processAxisChange","triggerCallback","disconnectingIndex","axisCode","buttonValue","Key","keycode","_enabled","keyCode","onHoldCallback","onHoldContext","_justDown","_justUp","processKeyDown","processKeyUp","upDuration","pressEvent","onPressCallback","_keys","_capture","_onKeyDown","_onKeyPress","_onKeyUp","_k","onPress","addKey","addKeyCapture","addKeys","removeKey","removeKeyCapture","createCursorKeys","up","down","processKeyPress","clearCaptures","String","fromCharCode","charCode","charCodeAt","H","J","K","L","M","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","COMMA","UNDERSCORE","PERIOD","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","PLUS","MINUS","INSERT","DELETE","HELP","NUM_LOCK","Component","Angle","wrapAngle","Animation","play","frameRate","loop","killOnComplete","animations","AutoCull","autoCull","inCamera","checkWorldBounds","Bounds","BringToTop","Core","install","components","Events","PhysicsBody","AnimationManager","LoadTexture","loadTexture","FixedToCamera","previousRotation","fresh","_exists","P2JS","customRender","Crop","cropRect","_crop","updateCrop","resetFrame","Delta","Destroy","onDestroy$dispatch","Video","onChangeSource","resizeFrame","BitmapText","_glyphs","_parent","_onDestroy","_onAddedToGroup","_onRemovedFromGroup","_onRemovedFromWorld","_onKilled","_onRevived","_onEnterBounds","_onOutOfBounds","_onInputOver","_onInputOut","_onInputDown","_onInputUp","_onDragStart","_onDragUpdate","_onDragStop","_onAnimationStart","_onAnimationComplete","_onAnimationLoop","onRemovedFromWorld","onKilled","onRevived","onOutOfBounds","onEnterBounds","onInputOver","onInputOut","onInputDown","onInputUp","onDragStart","onDragStop","onAnimationStart","onAnimationComplete","onAnimationLoop","backing","_fixedToCamera","Health","health","maxHealth","damage","kill","heal","InCamera","InputEnabled","inputEnabled","InWorld","_outOfBoundsFired","onEnterBounds$dispatch","onOutOfBounds$dispatch","outOfBoundsKill","inWorld","LifeSpan","lifespan","physicsElapsedMS","revive","onRevived$dispatch","onKilled$dispatch","stopAnimation","BitmapData","hasFrameData","loadFrameData","getFrameData","img","base","frameData","frameName","Overlap","_reset","Reset","ScaleMinMax","checkTransform","scaleMin","scaleMax","setScaleMinMax","Smoothed","existing","creature","mesh","Creature","tween","physicsGroup","audio","audioSprite","addSprite","tileSprite","rope","Text","overFrame","outFrame","downFrame","upFrame","Button","emitter","maxParticles","Arcade","Emitter","retroFont","font","characterWidth","characterHeight","chars","charsPerRow","xSpacing","ySpacing","xOffset","yOffset","RetroFont","bitmapText","tilemap","tileWidth","Tilemap","addToCache","addRenderTexture","video","addBitmapData","Tween","align","preUpdatePhysics","preUpdateLifeSpan","preUpdateInWorld","preUpdateCore","_scroll","def","physicsElapsed","autoScroll","stopScroll","_hasUpdateAnimation","_updateAnimationCallback","updateAnimation","_updateAnimation","segments","difference","_onOverFrame","_onOutFrame","_onDownFrame","_onUpFrame","onOverSound","onOutSound","onDownSound","onUpSound","onOverSoundMarker","onOutSoundMarker","onDownSoundMarker","onUpSoundMarker","onOverMouseOnly","freezeFrames","forceOut","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","autoScale","scaleData","_s","autoAlpha","alphaData","_a","onEmit","setAlphaData","setScaleData","imageData","textureFrame","Frame","disableTextureUpload","cls","_image","_pos","_size","_scale","_rotate","_alpha","prev","_anchor","_tempR","_tempG","_tempB","_circle","_swapCanvas","moveH","moveV","draw","addImage","processPixelRGB","pixel","createColor","unpackPixel","getPixel32","setPixel32","processPixel","replaceRGB","g1","g2","region","packPixel","setHSL","HSLtoRGB","shiftHSL","limitValue","red","green","blue","immediate","LITTLE_ENDIAN","setPixel","getPixel","getPixelRGB","hsl","hsv","getPixels","getFirstPixel","scan","anchorX","anchorY","copyRect","drawGroup","shadow","blur","shadowColor","shadowBlur","shadowOffsetX","shadowOffsetY","alphaMask","sourceRect","maskRect","blendSourceAtop","blendReset","extract","destination","prevFont","fillText","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","currentPath","boundsPadding","_localBounds","webGLDirty","cachedSpriteDirty","lineStyle","drawShape","cpX2","cpY2","dt2","dt3","arcTo","mm","dd","cc","tt","k1","k2","j1","j2","qx","qy","startAngle","endAngle","anticlockwise","sweep","segs","startX","startY","filling","theta","theta2","cTheta","sTheta","segMinus","remainder","real","beginFill","endFill","drawRect","drawRoundedRect","drawCircle","drawEllipse","drawPolygon","updateCachedSpriteTexture","_prevTint","updateLocalBounds","tempPoint","cachedSprite","destroyCachedSprite","GraphicsData","drawTriangle","cull","triangle","cameraToFace","cb","faceNormal","drawTriangles","point1","point2","point3","renderXY","renderRawXY","textBounds","strokeColors","autoRound","_res","_text","_fontComponents","_lineSpacing","_charCount","setStyle","updateText","setShadow","shadowStroke","shadowFill","boundsAlignH","boundsAlignV","strokeThickness","wordWrap","wordWrapWidth","tabs","fontToComponents","fontStyle","fontVariant","fontWeight","fontSize","componentsToFont","outputText","runWordWrap","lines","lineWidths","maxLineWidth","fontProperties","determineFontProperties","measureText","tab","section","snapToCeil","lineHeight","lineSpacing","textBaseline","lineCap","lineJoin","linePositionX","linePositionY","ascent","updateLine","updateShadow","strokeText","renderTabLine","snap","letter","clearColors","addColor","addStrokeColor","spaceLeft","words","wordWidth","wordWidthWithSpace","updateFont","match","fontFamily","setText","parseList","list","setTextBounds","properties","fontPropertiesCache","fontPropertiesCanvas","fontPropertiesContext","baseline","descent","imagedata","exec","parseFloat","textWidth","textHeight","_prevAnchor","_maxWidth","_data","getBitmapFont","_font","_fontSize","_align","_tint","sourceWidth","sourceHeight","scanLine","lastSpace","prevCharCode","test","charAt","charData","kerning","xAdvance","purgeGlyphs","kept","checkImageKey","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","content","characterSpacing","allowLowerCase","buildRetroFontText","getLongestLine","pasteLine","longestLine","removeUnsupportedCharacters","stripCR","newString","aChar","code","updateOffset","diffX","diffY","frames","getFrames","newText","toUpperCase","deviceReadyAt","initialized","nodeWebkit","electron","ejecta","crosswalk","chromeOS","linux","macOS","windows","windowsPhone","canvasBitBltShift","file","fileSystem","localStorage","worker","css3D","typedArray","vibration","getUserMedia","quirksMode","arora","chromeVersion","epiphany","firefox","firefoxVersion","ie","ieVersion","trident","tridentVersion","mobileSafari","midori","opera","safari","silk","audioData","ogg","opus","mp3","wav","m4a","webm","oggVideo","h264Video","mp4Video","webmVideo","vp9Video","hlsVideo","iPhone","iPhone4","pixelRatio","littleEndian","support32bit","onInitialized","nonPrimer","readyCheck","_readyCheck","_monitor","_queue","readyState","_initialize","_checkOS","vita","kindle","_checkFeatures","getItem","error","WebGLRenderingContext","compatMode","webkitGetUserMedia","mozGetUserMedia","msGetUserMedia","oGetUserMedia","URL","webkitURL","mozURL","msURL","_checkInput","maxTouchPoints","msPointerEnabled","pointerEnabled","_checkFullScreenSupport","fs","cfs","_checkBrowser","RegExp","$1","$3","process","versions","_checkVideo","videoElement","canPlayType","_checkAudio","audioElement","_checkDevice","toLowerCase","Int8Array","_checkIsLittleEndian","Uint8ClampedArray","Int32Array","_checkIsUint8ClampedImageData","vibrate","webkitVibrate","mozVibrate","msVibrate","elem","createImageData","_checkCSS3D","has3d","el","transforms","webkitTransform","OTransform","msTransform","MozTransform","getComputedStyle","getPropertyValue","canPlayAudio","canPlayVideo","isConsoleOpen","profile","profileEnd","isAndroidStockBrowser","matches","box","scrollY","scrollLeft","scrollX","clientTop","clientLeft","cushion","calibrate","coords","getAspectRatio","inLayoutViewport","primaryFallback","screen","mozOrientation","msOrientation","PORTRAIT","LANDSCAPE","matchMedia","documentBounds","pageXOffset","pageYOffset","treatAsDesktop","clientWidth","clientHeight","offsetWidth","scrollWidth","offsetHeight","scrollHeight","display","msTouchAction","overflowHidden","overflow","vendor","prefix","setImageRenderingCrisp","msInterpolationMode","setImageRenderingBicubic","forceSetTimeOut","vendors","requestAnimationFrame","cancelAnimationFrame","_isSetTimeOut","_onLoop","_timeOutID","updateSetTimeout","updateRAF","rafTime","timeToCall","clearTimeout","isSetTimeOut","isRAF","PI2","fuzzyEqual","fuzzyLessThan","fuzzyGreaterThan","fuzzyCeil","val","fuzzyFloor","average","shear","snapTo","gap","snapToFloor","roundTo","place","floorTo","ceilTo","angleBetween","angleBetweenY","angleBetweenPoints","angleBetweenPointsY","reverseAngle","angleRad","normalizeAngle","maxAdd","minSub","wrapValue","isOdd","isEven","minProperty","maxProperty","radians","linearInterpolation","linear","bezierInterpolation","bernstein","catmullRomInterpolation","catmullRom","factorial","res","roundAwayFromZero","sinCosGenerator","sinAmplitude","cosAmplitude","frequency","frq","cosTable","sinTable","distanceSq","distancePow","clampBottom","within","mapLinear","smoothstep","smootherstep","percent","degreeToRadiansFactor","radianToDegreesFactor","degrees","seeds","s0","sow","integer","frac","integerInRange","realInRange","pick","ary","weightedPick","QuadTree","maxObjects","maxLevels","_empty","subWidth","subHeight","populate","populateHandler","insert","retrieve","returnObjects","getHostName","location","hostname","checkDomainName","domain","updateQueryString","redirect","href","re","separator","getQueryString","parameter","keyValues","search","substring","decodeURI","decodeURIComponent","_tweens","_add","easeMap","Power0","Easing","Power1","Power2","Power3","Power4","Linear","None","Quad","Quadratic","Out","Cubic","Quart","Quartic","Quint","Quintic","Sine","Sinusoidal","Expo","Exponential","Circ","Circular","Elastic","Back","Bounce","Quad.easeIn","In","Cubic.easeIn","Quart.easeIn","Quint.easeIn","Sine.easeIn","Expo.easeIn","Circ.easeIn","Elastic.easeIn","Back.easeIn","Bounce.easeIn","Quad.easeOut","Cubic.easeOut","Quart.easeOut","Quint.easeOut","Sine.easeOut","Expo.easeOut","Circ.easeOut","Elastic.easeOut","Back.easeOut","Bounce.easeOut","Quad.easeInOut","InOut","Cubic.easeInOut","Quart.easeInOut","Quint.easeInOut","Sine.easeInOut","Expo.easeInOut","Circ.easeInOut","Elastic.easeInOut","Back.easeInOut","Bounce.easeInOut","_pauseAll","_resumeAll","getAll","pendingDelete","removeFrom","_manager","addTweens","numTweens","isTweening","some","_pause","_resume","pauseAll","resumeAll","timeline","timeScale","repeatCounter","onStart","onLoop","onRepeat","onChildComplete","onComplete","chainedTween","isPaused","_onUpdateCallback","_onUpdateCallbackContext","_pausedTime","_hasStarted","ease","yoyo","Default","TweenData","vEnd","loadValues","updateTweenData","repeatDelay","yoyoDelay","easing","interpolation","repeatAll","chain","startTime","status","PENDING","RUNNING","LOOPED","COMPLETE","generateData","vStart","vStartCache","vEndCache","inReverse","easingFunction","interpolationFunction","interpolationContext","isFrom","yoyoCounter","elapsedMS","fps","blob","reversed","asin","prevTime","suggestedFps","advancedTiming","fpsMin","fpsMax","msMin","msMax","pauseDuration","timeExpected","Timer","_frameCount","_elapsedAccumulator","_started","_timeLastSecond","_pauseStarted","_justResumed","_timers","timer","autoDestroy","updateAdvancedTiming","updateTimers","previousDateNow","timeCallExpected","elapsedSince","since","elapsedSecondsSince","running","expired","nextTick","timeCap","_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","validateFrames","checkFrameName","isPlaying","getAnimation","refreshFrame","getFrame","getFrameByName","_frameIndex","_frames","loopCount","isFinished","_pauseStartTime","_frameDiff","_frameSkip","onUpdate","_timeLastFrame","_timeNextFrame","updateCurrentFrame","onAnimationStart$dispatch","useLocalFrameIndex","frameIndex","dispatchComplete","onAnimationComplete$dispatch","onAnimationLoop$dispatch","signalUpdate","fromPlay","generateFrameNames","suffix","zeroPad","rotated","rotationDirection","spriteSourceSizeW","spriteSourceSizeH","setTrim","actualWidth","actualHeight","destX","destY","destWidth","destHeight","getRect","_frameNames","getFrameRange","AnimationParser","spriteSheet","frameMax","spacing","column","JSONData","json","newFrame","filename","sourceSize","spriteSourceSize","JSONDataHash","XMLData","xml","getElementsByTagName","frameX","frameY","autoResolveURL","_cache","binary","bitmapFont","_urlMap","_urlResolver","_urlTemp","onSoundUnlock","_cacheMap","TEXTURE","SOUND","PHYSICS","BINARY","BITMAPFONT","JSON","XML","SHADER","RENDER_TEXTURE","addDefaultImage","addMissingImage","addCanvas","removeImage","_resolveURL","addSound","audioTag","decoded","isDecoding","touchLocked","addText","addPhysicsData","addTilemap","mapData","addBinary","binaryData","addBitmapFont","atlasData","atlasType","LoaderParser","jsonBitmapFont","xmlBitmapFont","addJSON","addXML","addVideo","isBlob","addShader","addSpriteSheet","addTextureAtlas","TEXTURE_ATLAS_XML_STARLING","reloadSound","getSound","reloadSoundComplete","updateSound","decodedSound","isSoundDecoded","isSoundReady","checkKey","checkURL","checkCanvasKey","checkTextureKey","checkSoundKey","checkTextKey","checkPhysicsKey","checkTilemapKey","checkBinaryKey","checkBitmapDataKey","checkBitmapFontKey","checkJSONKey","checkXMLKey","checkVideoKey","checkShaderKey","checkRenderTextureKey","full","getTextureFrame","getSoundData","getText","getPhysicsData","fixtureKey","fixtures","fixture","getTilemapData","getBinary","getBitmapData","getJSON","getXML","getVideo","getShader","getRenderTexture","getBaseTexture","getFrameCount","getFrameByIndex","getPixiTexture","getPixiBaseTexture","getURL","getKeys","removeCanvas","removeFromPixi","removeSound","removeText","removePhysics","removeTilemap","removeBinary","removeBitmapData","removeBitmapFont","removeJSON","removeXML","removeVideo","removeShader","removeRenderTexture","removeSpriteSheet","removeTextureAtlas","atlas","baseURL","isLoading","preloadSprite","onLoadStart","onLoadComplete","onPackComplete","onFileStart","onFileComplete","onFileError","useXDomainRequest","_warnedAboutXDomainRequest","enableParallel","maxParallelDownloads","_withSyncPointDepth","_fileList","_flightQueue","_processingHead","_fileLoadStarted","_totalPackCount","_totalFileCount","_loadedPackCount","_loadedFileCount","TEXTURE_ATLAS_JSON_ARRAY","TEXTURE_ATLAS_JSON_HASH","PHYSICS_LIME_CORONA_JSON","PHYSICS_PHASER_JSON","setPreloadSprite","checkKeyExists","getAssetIndex","bestFound","loaded","loading","getAsset","fileIndex","addToFileList","overwrite","extension","syncPoint","currentFile","replaceInFileList","pack","script","spritesheet","urls","autoDecode","noAudio","audiosprite","jsonURL","jsonData","loadEvent","asBlob","CSV","TILED_JSON","LIME_CORONA_JSON","textureURL","atlasURL","parseXml","atlasJSONArray","atlasJSONHash","atlasXML","withSyncPoint","addSyncPoint","asset","removeFile","updateProgress","processLoadQueue","finishedLoading","requestUrl","requestObject","progress","syncblock","inflightLimit","processPack","loadFile","abnormal","asyncComplete","errorMessage","packData","transformUrl","xhrLoad","fileComplete","loadImageTag","getAudioURL","usingWebAudio","usingAudioTag","loadAudioTag","fileError","getVideoURL","loadVideoTag","jsonLoadComplete","xmlLoadComplete","csvLoadComplete","onload","onerror","controls","autoplay","videoLoadEvent","canplay","Audio","playThroughEvent","XDomainRequest","xhrLoadWithXDR","xhr","XMLHttpRequest","open","responseType","message","send","timeout","ontimeout","onprogress","videoType","uri","lastIndexOf","audioType","reason","loadNext","responseText","Blob","response","decode","language","defer","head","contentType","domparser","DOMParser","parseFromString","ActiveXObject","async","loadXML","totalLoadedFiles","totalLoadedPacks","progressFloat","info","common","getAttribute","letters","kernings","second","finalizeBitmapFont","_face","_lineHeight","_id","_xoffset","_yoffset","_xadvance","_second","_first","_amount","bitmapFontData","autoplayKey","sounds","spritemap","addMarker","connectToMaster","markers","totalDuration","currentTime","durationMS","stopTime","pausedPosition","pausedTime","currentMarker","fadeTween","pendingPlayback","override","allowMultiple","externalNode","masterGainNode","gainNode","_sound","masterGain","createGain","createGainNode","gain","soundHasUnlocked","onDecoded","onPlay","onStop","onMute","onMarkerComplete","onFadeComplete","_volume","_buffer","_muted","_tempMarker","_tempPosition","_tempVolume","_muteVolume","_tempLoop","_onDecodedEventDispatched","removeMarker","onEndedHandler","isDecoded","loopFull","forceRestart","noteOff","createBufferSource","onended","noteGrainOn","muted","prevMarker","fadeIn","fadeTo","fadeOut","fadeComplete","mute","onSoundDecode","onVolumeChange","onUnMute","channels","_codeMuted","_unlockSource","_sounds","_watchList","_watching","_watchCallback","_watchContext","disableAudio","disableWebAudio","audioContext","fakeiOSTouchLock","setTouchLock","unlock","noteOn","stopAll","soundData","decodeAudioData","setDecodedCallback","files","playbackState","PLAYING_STATE","FINISHED_STATE","removeByKey","columnWidth","renderShadow","currentAlpha","currentColor","soundInfo","cameraInfo","hideIfUp","downColor","upColor","worldX","worldY","spriteInputInfo","justDown","justUp","inputInfo","spriteBounds","filled","rectangle","ropeSegments","segment","spriteInfo","spriteCoords","lineInfo","forceType","quadTree","quadtree","NINJA","Ninja","BOX2D","Box2D","renderBody","bodyInfo","renderBodyInfo","box2d","box2dWorld","renderDebugDraw","box2dBody","randomIndex","removeRandomItem","shuffle","transposeMatrix","sourceRowCount","sourceColCount","rotateMatrix","findClosest","arr","NaN","low","high","POSITIVE_INFINITY","numberArray","numberArrayStep","rgba","RGBtoHSL","RGBtoHSV","fromRGBA","toRGBA","q","hueToColor","updateColor","HSVtoRGB","color32","getColor32","componentToHex","hexToRGB","hexToColor","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","blendNormal","blendAverage","blendSubtract","blendNegation","blendLinearDodge","blendLinearBurn","blendLinearLight","blendVividLight","blendPinLight","blendHardMix","blendReflect","blendGlow","blendPhoenix","LinkedList","entity","arcade","ninja","chipmunk","matter","CHIPMUNK","MATTERJS","P2","Matter","startSystem","system","enableAABB","checkCollision","OVERLAP_BIAS","forceX","sortDirection","LEFT_RIGHT","skipQuadTree","_total","SORT_NONE","RIGHT_LEFT","TOP_BOTTOM","BOTTOM_TOP","updateMotion","velocityDelta","computeVelocity","angularAcceleration","angularDrag","maxAngular","acceleration","drag","maxVelocity","allowGravity","object1","object2","overlapCallback","processCallback","collideHandler","collide","collideCallback","sortLeftRight","sortRightLeft","sortTopBottom","sortBottomTop","overlapOnly","collideGroupVsSelf","collideSpriteVsSprite","collideSpriteVsGroup","collideSpriteVsTilemapLayer","collideGroupVsGroup","collideGroupVsTilemapLayer","sprite1","sprite2","separate","items","group1","group2","body1","body2","separateX","separateY","immovable","maxOverlap","deltaAbsX","embedded","touching","none","overlapX","customSeparateX","bounce","moves","nv1","nv2","avg","deltaAbsY","overlapY","customSeparateY","getObjectsUnderPointer","getObjectsAtLocation","callbackArg","moveToObject","maxTime","distanceBetween","moveToPointer","angleToPointer","distanceToPointer","moveToXY","distanceToXY","velocityFromAngle","velocityFromRotation","accelerationFromRotation","accelerateToObject","xSpeedMax","ySpeedMax","accelerateToPointer","accelerateToXY","angleToXY","allowRotation","preRotation","newVelocity","deltaMax","facing","collideWorldBounds","any","wasTouching","blocked","tilePadding","syncBounds","_sx","_sy","updateBounds","asx","asy","check","onFloor","onWall","TilemapCollision","TILE_BIAS","tilemapLayer","getTiles","separateTile","tile","collisionCallback","collisionCallbackContext","faceLeft","faceRight","faceTop","faceBottom","tileCheckX","tileCheckY","collideRight","collideLeft","processTileSeparationX","collideDown","collideUp","processTileSeparationY","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","_boundsLeft","_boundsRight","_boundsTop","_boundsBottom","_boundsOwnGroup","removeBodyNextStep","setImpactEvents","impactHandler","setPostBroadphaseCallback","postBroadphaseHandler","_bodyCallbacks","_bodyCallbackContext","_groupCallbacks","_groupCallbackContext","setCollisionGroup","setWorldMaterial","updateBoundsCollisionGroup","fixedStepTime","impactCallback","createDistanceConstraint","getBody","createGearConstraint","createRevoluteConstraint","createLockConstraint","createPrismaticConstraint","lockRotation","anchorA","anchorB","setMaterial","createMaterial","createContactMaterial","getSprings","getConstraints","filterStatic","physicsPosition","query","toJSON","createCollisionGroup","bitmask","createSpring","worldA","worldB","localA","localB","createRotationalSpring","createBody","addPolygon","createParticle","convertCollisionObjects","map","collision","polyline","clearTilemapLayerBodies","getLayer","convertTilemap","optimize","collides","getTileRight","addRectangle","FixtureList","rawList","namedFixtures","groupedFixtures","allFixtures","setCategory","bit","setter","getFixtures","setMask","setSensor","getFixtureByKey","getGroup","groupID","_ref","_results","callee","PointProxy","collidesWith","removeNextStep","debugBody","_collideWorldBounds","setRectangleFromSprite","createBodyCallback","createGroupCallback","getCollisionMask","updateCollisionMask","clearCollision","clearGroup","clearMask","shapeChanged","impulse","localX","localY","setZeroRotation","setZeroVelocity","setZeroDamping","rotateLeft","rotateRight","moveForward","moveBackward","thrust","moveLeft","moveRight","updateSpriteTransform","resetDamping","resetMass","clearShapes","addCircle","addPlane","addParticle","addLine","addCapsule","setCircle","setRectangle","addPhaserPolygon","createdFixtures","fixtureData","shapesOfFixture","addFixture","generatedShapes","categoryBits","maskBits","isSensor","polygons","loadPolygon","BodyDebug","settings","defaultSettings","pixelsPerLengthUnit","debugPolygons","ppu","lw","vrot","_j","_ref1","randomPastelHex","drawCapsule","drawPlane","drawLine","drawRectangle","drawConvex","drawPath","lastx","lasty","diagMargin","diagSize","maxLength","xd","yd","mix","rgbToHex","ImageCollection","firstgid","imageWidth","imageHeight","imageMargin","imageSpacing","images","containsImageIndex","imageIndex","gid","Tile","flipped","scanned","setCollisionCallback","setCollision","resetCollision","isInteresting","faces","TilemapParser","widthInPixels","heightInPixels","tilesets","imagecollections","tiles","collideIndexes","currentLayer","debugMap","_tempA","NORTH","EAST","SOUTH","WEST","setTileSize","createBlankLayer","addTilesetImage","tileset","tileMargin","tileSpacing","getTilesetIndex","setImage","newSet","Tileset","countX","countY","columns","rows","createFromObjects","CustomClass","adjustY","createFromTiles","replacements","customClass","lh","createLayer","getLayerIndex","TilemapLayer","indexes","getImageIndex","getObjectIndex","setTileIndexCallback","setTileLocationCallback","recalculate","setCollisionByIndex","calculateFaces","setCollisionBetween","setCollisionByExclusion","setPreventRecalculate","preventingRecalculate","needToRecalculate","above","below","getTileAbove","getTileBelow","getTileLeft","setLayer","hasTile","removeTile","removeTileWorldXY","putTile","putTileWorldXY","searchTileIndex","skip","getTile","nonNull","getTileWorldXY","paste","tileblock","tileA","tileB","swapHandler","removeAllLayers","dump","txt","renderSettings","enableScrollDelta","overdrawRatio","copyCanvas","debugSettings","missingImageFill","debuggedTileOverfill","forceFullRedraw","debugAlpha","facingEdgeStroke","collidingTileOverfill","scrollFactorX","scrollFactorY","rayStepRate","_wrap","_mc","renderWidth","renderHeight","_scrollX","_scrollY","ensureSharedCopyCanvas","sharedCopyCanvas","resizeWorld","_fixX","_unfixX","_fixY","_unfixY","getTileX","getTileY","getTileXY","getRayCastTiles","interestingFace","coord","fetchAll","wy","wx","resolveTileset","tileIndex","setIndex","containsTileIndex","resetTilesetCache","setScale","xScale","yScale","shiftCanvas","copyW","copyH","copyContext","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","flippedVal","tileproperties","tileProperties","updateTileData","imagewidth","imageheight","newCollection","polygon","ellipse","sid","drawCoords","coordIndex","setSpacing","rowCount","colCount","emitters","ID","minParticleSpeed","maxParticleSpeed","minParticleScale","maxParticleScale","minRotation","maxRotation","minParticleAlpha","maxParticleAlpha","particleClass","particleDrag","particleAnchor","emitX","emitY","particleBringToTop","particleSendToBack","_minParticleScale","_maxParticleScale","_quantity","_timer","_counter","_flowQuantity","_flowTotal","_explode","emitParticle","makeParticles","particle","rndKey","rndFrame","explode","flow","forceQuantity","setXSpeed","setYSpeed","setRotation","setAlpha","rate","tweenData","onAccess","onError","onTimeout","videoStream","isStreaming","retryLimit","retry","retryInterval","_retryID","_pending","_autoplay","_video","createVideoFromBlob","videoWidth","videoHeight","createVideoFromURL","snapshot","connectToMediaStream","stream","startMediaStream","captureAudio","removeVideoElement","setAttribute","getUserMediaTimeout","getUserMediaSuccess","getUserMediaError","mozSrcObject","createObjectURL","onloadeddata","checkStream","checkVideoProgress","change","playbackRate","setPause","setResume","playHandler","playing","ended","changeSource","grab","hasChildNodes","firstChild","removeAttribute"],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"phaser.min.js","sources":["phaser.js"],"names":["e","exports","module","f","window","global","self","p2","t","n","r","s","o","u","a","require","i","Error","call","length",1,"_dereq_","Line","Scalar","lineInt","l1","l2","precision","a1","b1","c1","a2","b2","c2","det","eq","segmentsIntersect","p1","q1","q2","dx","dy","da","db","./Scalar",2,"Point","area","b","c","left","leftOn","right","rightOn","tmpPoint1","tmpPoint2","collinear","thresholdAngle","ab","bc","dot","magA","Math","sqrt","magB","angle","acos","sqdist",3,"Polygon","this","vertices","getIntersectionPoint","delta","prototype","at","v","first","last","clear","append","poly","from","to","push","makeCCW","br","reverse","tmp","N","pop","isReflex","tmpLine1","tmpLine2","canSee","p","dist","copy","j","targetPoly","k","getCutEdges","min","tmp1","tmp2","tmpPoly","nDiags","Number","MAX_VALUE","decomp","edges","slice","cutEdges","Array","polys","cutEdge","result","splice","indexOf","isSimple","path","quickDecomp","reflexVertices","steinerPoints","maxlevel","level","upperInt","lowerInt","upperDist","lowerDist","d","closestDist","upperIndex","lowerIndex","closestIndex","lowerPoly","upperPoly","console","warn","removeCollinearPoints","num","./Line","./Point",4,"abs",5,"./Polygon",6,"name","version","description","author","keywords","main","engines","node","repository","type","url","bugs","licenses","devDependencies","grunt","grunt-contrib-jshint","grunt-contrib-nodeunit","grunt-contrib-uglify","grunt-contrib-watch","grunt-browserify","grunt-contrib-concat","dependencies","poly-decomp",7,"AABB","options","lowerBound","vec2","create","upperBound","setFromPoints","points","position","skinSize","l","rotate","cosAngle","cos","sinAngle","sin","x","y","add","aabb","extend","overlaps","u1","u2","containsPoint","point","overlapsRay","ray","dirFracX","direction","dirFracY","t1","t2","t3","t4","tmin","max","tmax","../math/vec2","../utils/Utils",8,"Broadphase","world","boundingVolumeType","Body","BOUNDING_CIRCLE","setWorld","getCollisionPairs","boundingRadiusCheck","bodyA","bodyB","sub","d2","squaredLength","boundingRadius","aabbCheck","getAABB","boundingVolumeCheck","canCollide","KINEMATIC","STATIC","sleepState","SLEEPING","NAIVE","SAP","../objects/Body",9,"NaiveBroadphase","constructor","bodies","Ncolliding","bi","bj","aabbQuery","aabbNeedsUpdate","updateAABB","../collision/Broadphase","../shapes/Circle","../shapes/Particle","../shapes/Plane","../shapes/Shape",10,"Narrowphase","contactEquations","frictionEquations","enableFriction","enabledEquations","slipForce","frictionCoefficient","surfaceVelocity","contactEquationPool","ContactEquationPool","size","frictionEquationPool","FrictionEquationPool","restitution","stiffness","Equation","DEFAULT_STIFFNESS","relaxation","DEFAULT_RELAXATION","frictionStiffness","frictionRelaxation","enableFrictionReduction","collidingBodiesLastStep","TupleDictionary","contactSkinSize","setConvexToCapsuleShapeMiddle","convexShape","capsuleShape","set","radius","pointInConvex","worldPoint","convexOffset","convexAngle","worldVertex0","pic_worldVertex0","worldVertex1","pic_worldVertex1","r0","pic_r0","r1","pic_r1","verts","lastCross","v0","v1","cross","crossLength","Circle","Convex","Shape","Box","yAxis","fromValues","tmp3","tmp4","tmp5","tmp6","tmp7","tmp8","tmp9","tmp10","tmp11","tmp12","tmp13","tmp14","tmp15","tmp16","tmp17","tmp18","tmpArray","bodiesOverlap_shapePositionA","bodiesOverlap_shapePositionB","bodiesOverlap","shapePositionA","shapePositionB","Nshapesi","shapes","shapeA","toWorldFrame","Nshapesj","shapeB","collidedLastStep","id1","id","id2","get","reset","eqs","ce","fe","release","createContactEquation","firstImpact","needsUpdate","enabled","offset","createFrictionEquation","setSlipForce","relativeVelocity","createFrictionFromContact","contactPointA","contactPointB","rotate90cw","normalA","createFrictionFromAverage","numContacts","invNumContacts","scale","normalize","LINE","CONVEX","convexLine","convexBody","lineBody","lineShape","lineOffset","lineAngle","justTest","BOX","lineBox","boxBody","boxShape","boxOffset","boxAngle","convexCapsule_tempRect","width","height","convexCapsule_tempVec","CAPSULE","convexCapsule","convexPosition","capsuleBody","capsulePosition","capsuleAngle","circlePos","result1","circleConvex","result2","convexConvex","lineCapsule","linePosition","capsuleCapsule_tempVec1","capsuleCapsule_tempVec2","capsuleCapsule_tempRect1","capsuleCapsule","si","xi","ai","sj","xj","aj","enableFrictionBefore","circlePosi","circlePosj","circleCircle","rect","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","pos","pos0","pos1","pow","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","circle","numContacts1","circlePlane","numContacts2","numTotal","planeToCircle","temp","contact","sepAxis","worldPoint0","worldPoint1","penetrationVec","findSeparatingAxis","closestEdge1","getClosestEdge","closestEdge2","closestEdgeA","closestEdgeB","insideNumEdges","pcoa_tmp1","projectConvexOntoAxis","worldAxis","value","localAxis","fsa_tmp1","fsa_tmp2","fsa_tmp3","fsa_tmp4","fsa_tmp5","fsa_tmp6","offset1","angle1","offset2","angle2","maxDist","overlap","edge","normal","span1","span2","swapped","gce_tmp1","gce_tmp2","gce_tmp3","axis","flip","closestEdge","maxDot","circleHeightfield_candidate","circleHeightfield_dist","circleHeightfield_v0","circleHeightfield_v1","circleHeightfield_minCandidate","circleHeightfield_worldNormal","circleHeightfield_minCandidateNormal","HEIGHTFIELD","circleHeightfield","hfBody","hfShape","hfPos","hfAngle","data","heights","w","elementWidth","minCandidateNormal","idxA","floor","idxB","ceil","PI","convexHeightfield_v0","convexHeightfield_v1","convexHeightfield_tilePos","convexHeightfield_tempConvexShape","convexHeightfield","convexPos","tilePos","tileConvex","tileHeight","../equations/ContactEquation","../equations/Equation","../equations/FrictionEquation","../shapes/Box","../shapes/Convex","../utils/ContactEquationPool","../utils/FrictionEquationPool","../utils/TupleDictionary",11,"Ray","checkCollisionResponse","undefined","skipBackfaces","collisionMask","collisionGroup","mode","ANY","callback","update","distanceFromIntersectionSquared","intersect","squaredDistance","CLOSEST","ALL","intersectBodies","shouldStop","body","intersectBody","intersectBody_worldPosition","collisionResponse","worldPosition","shape","worldAngle","intersectShape","distance","_currentBody","_currentShape","raycast","reportIntersection","fraction","faceIndex","hasHit","../collision/AABB","../collision/RaycastResult",12,"RaycastResult","isStopped","getHitDistance","getHitPoint","out","lerp","stop","../collision/Ray",13,"SAPBroadphase","axisList","axisIndex","that","_addBodyHandler","_removeBodyHandler","idx","Utils","appendArray","off","on","sortAxisList","sortList",14,"Constraint","defaults","collideConnected","wakeUpBodies","equations","wakeUp","DISTANCE","GEAR","LOCK","PRISMATIC","REVOLUTE","setStiffness","setRelaxation",15,"DistanceConstraint","localAnchorA","localAnchorB","worldAnchorA","worldAnchorB","maxForce","ri","rj","computeGq","setMaxForce","upperLimitEnabled","upperLimit","lowerLimitEnabled","lowerLimit","normalEquation","G","violating","minForce","rixn","rjxn","getMaxForce","./Constraint",16,"GearConstraint","ratio","AngleLockEquation","maxTorque","setMaxTorque","setRatio","torque","getMaxTorque","../equations/AngleLockEquation",17,"LockConstraint","localAngleB","rot","g","localOffsetB","force","xAxis",18,"PrismaticConstraint","localAxisA","trans","gg","updateJacobian","disableRotationalLock","RotationalLockEquation","velocity","upperLimitEquation","ContactEquation","lowerLimitEquation","motorEquation","motorEnabled","motorSpeed","computeGW","vi","vj","wi","angularVelocity","wj","gmult","worldAxisA","orientedAnchorA","orientedAnchorB","relPosition","enableMotor","disableMotor","setLimits","lower","upper","../equations/RotationalLockEquation",19,"RevoluteConstraint","pivotA","pivotB","worldPivot","localPivotA","localPivotB","worldPivotA","worldPivotB","RotationalVelocityEquation","relAngle","motorIsEnabled","setMotorSpeed","speed","getMotorSpeed","../equations/RotationalVelocityEquation",20,"./Equation",21,"computeB","h","GW","Gq","GiMf","computeGiMf","B",22,"ARRAY_TYPE","epsilon","timeStep","multiplier","qi","qj","computeGWlambda","vlambda","wlambda","iMfi","iMfj","fi","ti","angularForce","fj","tj","invMassi","invMassSolve","invMassj","invIi","invInertiaSolve","invIj","multiply","massMultiplier","computeGiMGt","addToWlambda_temp","addToWlambda_Gi","addToWlambda_Gj","addToWlambda","deltalambda","Gi","Gj","computeInvC","eps",23,"FrictionEquation","getSlipForce",24,"worldVectorA","worldVectorB",25,26,"EventEmitter","listener","context","_listeners","listeners","has","index","emit","event","listenerArray","target",27,"ContactMaterial","materialA","materialB","Material","idCounter","friction","./Material",28,29,"PolyK","GetArea","sum","Triangulate","tgs","avl","al","i0","i1","i2","ax","ay","bx","by","cx","cy","earFound","_convex","_PointInTriangle","px","py","v0x","v0y","v1x","v1y","v2x","v2y","dot00","dot01","dot02","dot11","dot12","invDenom",30,"crossVZ","vec","zcomp","crossZV","toLocalFrame","framePosition","frameAngle","toGlobalFrame","localPoint","vectorToLocalFrame","worldVector","vectorToGlobalFrame","localVector","centroid","clone","subtract","mul","divide","div","sqrDist","len","sqrLen","negate","str","reflect","vector","getLineSegmentsIntersection","p0","p3","getLineSegmentsIntersectionFraction","s1_x","s1_y","s2_x","s2_y",31,"_idCounter","mass","invMass","inertia","invInertia","fixedRotation","fixedX","fixedY","interpolatedPosition","interpolatedAngle","previousPosition","previousAngle","damping","angularDamping","DYNAMIC","allowSleep","wantsToSleep","AWAKE","sleepSpeedLimit","sleepTimeLimit","gravityScale","idleTime","timeLastSleepy","ccdSpeedThreshold","ccdIterations","concavePath","_wakeUpAfterNarrowphase","updateMassProperties","updateSolveMassProperties","setDensity","density","totalArea","getArea","shapeAABB","bodyAngle","computeAABB","updateBoundingRadius","addShape","removeShape","m","I","r2","Icm","computeMomentOfInertia","applyForce","relativePoint","rotForce","Body_applyForce_forceWorld","Body_applyForce_pointWorld","Body_applyForce_pointLocal","applyForceLocal","localForce","worldForce","vectorToWorldFrame","Body_applyImpulse_velo","applyImpulse","impulseVector","velo","rotVelo","Body_applyImpulse_impulseWorld","Body_applyImpulse_pointWorld","Body_applyImpulse_pointLocal","applyImpulseLocal","localImpulse","worldImpulse","fromPolygon","convexes","optimalDecomp","cm","centerOfMass","updateTriangles","updateCenterOfMass","adjustCenterOfMass","adjustCenterOfMass_tmp2","adjustCenterOfMass_tmp3","adjustCenterOfMass_tmp4","offset_times_area","setZeroForce","resetConstraintVelocity","addConstraintVelocity","applyDamping","dt","wakeUpEvent","sleep","sleepEvent","sleepTick","time","dontSleep","speedSquared","speedLimitSquared","SLEEPY","overlapKeeper","bodiesAreOverlapping","integrate_fhMinv","integrate_velodt","integrate","minv","integrateToTimeOfImpact","end","startToEnd","rememberPosition","hit","startToEndAngle","timeOfImpact","rememberAngle","iter","tmid","narrowphase","getVelocityAtPoint","sleepyEvent","../events/EventEmitter",32,"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",33,"RotationalSpring","restAngle",34,35,"TopDownVehicle","chassisBody","wheels","groundBody","preStepCallback","WheelConstraint","vehicle","forwardEquation","sideEquation","steerValue","engineForce","setSideFriction","sideFriction","localForwardVector","localPosition","apply","setBrakeForce","addToWorld","addBody","wheel","addConstraint","removeFromWorld","removeBody","removeConstraint","addWheel","wheelOptions","worldVelocity","getSpeed","tmpVec","../constraints/Constraint",36,"Capsule","GSSolver","Heightfield","Particle","Plane","Pool","Solver","World","Object","defineProperty","../package.json","./collision/AABB","./collision/Broadphase","./collision/NaiveBroadphase","./collision/Narrowphase","./collision/Ray","./collision/RaycastResult","./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","./objects/TopDownVehicle","./shapes/Box","./shapes/Capsule","./shapes/Circle","./shapes/Convex","./shapes/Heightfield","./shapes/Line","./shapes/Particle","./shapes/Plane","./shapes/Shape","./solver/GSSolver","./solver/Solver","./utils/ContactEquationPool","./utils/FrictionEquationPool","./utils/Pool","./utils/Utils","./world/World",37,"arguments","axes","updateArea","./Convex","./Shape",38,"intersectCapsule_hitPointWorld","intersectCapsule_normal","intersectCapsule_l0","intersectCapsule_l1","intersectCapsule_unit_y","hitPointWorld","l0","halfLen","diagonalLengthSquared","sqrtDelta","inv2a","d1",39,"Ray_intersectSphere_intersectionPoint","Ray_intersectSphere_normal","intersectionPoint",40,"isArray","triangles","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","denom","numer","intersectConvex_rayStart","intersectConvex_rayEnd","intersectConvex_normal","rayStart","rayEnd","../math/polyk",41,"key","maxValue","minValue","updateMaxMinValues","getLineSegment","start","getSegmentIndex","getClampedSegmentIndex","intersectHeightfield_worldNormal","intersectHeightfield_l0","intersectHeightfield_l1","intersectHeightfield_localFrom","intersectHeightfield_localTo","localFrom","localTo",42,"raycast_normal","raycast_l0","raycast_l1","raycast_unit_y",43,44,"intersectPlane_planePointToFrom","intersectPlane_normal","intersectPlane_len","planePointToFrom","planeToFrom","planeToTo","n_dot_dir",45,"material","sensor",46,"GS","iterations","tolerance","arrayStep","lambda","Bs","invCs","useZeroRHS","frictionIterations","usedIterations","setArrayZero","array","solve","sortEquations","maxIter","maxFrictionIter","Neq","tolSquared","Nbodies","deltalambdaTot","iterateEquation","updateMultipliers","invDt","invC","lambdaj","GWlambda","lambdaj_plus_deltalambda","./Solver",47,"equationSortFunction","mockWorld","solveIsland","island","removeAllEquations","addEquations","getBodies","sort","addEquation","removeEquation","ISLAND",48,"destroy","equation","./Pool",49,50,"IslandNodePool","IslandNode","../world/IslandNode",51,"IslandPool","Island","../world/Island",52,"OverlapKeeper","overlappingShapesLastState","overlappingShapesCurrentState","recordPool","OverlapKeeperRecordPool","tmpDict","tmpArray1","tick","current","keys","lastObject","getByKey","setOverlapping","getNewOverlaps","getDiff","getEndOverlaps","dictA","dictB","lastData","isNewOverlap","idA","idB","getNewBodyOverlaps","getBodyDiff","getEndBodyOverlaps","accumulator","./OverlapKeeperRecord","./OverlapKeeperRecordPool","./TupleDictionary","./Utils",53,"OverlapKeeperRecord",54,"record",55,"objects","resize","object",56,"getKey","dict",57,"howmany","P2_ARRAY_TYPE","Float32Array",58,"bodyIds",59,"IslandManager","nodePool","islandPool","islands","nodes","queue","getUnvisitedNode","Nnodes","visited","visit","bds","Neqs","bfs","root","child","neighbors","split","ni","nj","./../utils/IslandNodePool","./../utils/IslandPool","./Island","./IslandNode",60,61,"springs","disabledBodyCollisionPairs","solver","islandManager","gravity","frictionGravity","useWorldGravityAsFrictionGravity","useFrictionGravityOnZeroGravity","broadphase","constraints","defaultMaterial","defaultContactMaterial","lastTimeStep","applySpringForces","applyGravity","solveConstraints","contactMaterials","stepping","bodiesToBeRemoved","islandSplit","emitImpactEvent","_constraintIdCounter","_bodyIdCounter","postStepEvent","addBodyEvent","removeBodyEvent","addSpringEvent","spring","impactEvent","contactEquation","postBroadphaseEvent","pairs","sleepMode","NO_SLEEPING","beginContactEvent","endContactEvent","preSolveEvent","BODY_SLEEPING","ISLAND_SLEEPING","constraint","addContactMaterial","contactMaterial","removeContactMaterial","getContactMaterial","cmats","step_mg","xiw","xjw","step","timeSinceLastCalled","maxSubSteps","internalStep","substeps","endOverlaps","Nsprings","np","mg","gravityLen","ignoredPairs","Nconstraints","Nresults","runNarrowphase","ev","glen","aiw","ajw","reducedMass","resolver","numFrictionBefore","numFrictionEquations","speedSquaredB","speedLimitSquaredB","speedSquaredA","speedLimitSquaredA","addSpring","evt","removeSpring","getBodyById","disableBodyCollision","enableBodyCollision","cs","cms","hitTest_tmp1","hitTest_tmp2","hitTest","pb","ps","pa","NS","setGlobalStiffness","setGlobalRelaxation","tmpAABB","../../package.json","../collision/Narrowphase","../collision/SAPBroadphase","../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","PIXI","WEBGL_RENDERER","CANVAS_RENDERER","VERSION","_UID","Uint16Array","Uint32Array","ArrayBuffer","PI_2","RAD_TO_DEG","DEG_TO_RAD","RETINA_PREFIX","defaultRenderOptions","view","transparent","antialias","preserveDrawingBuffer","resolution","clearBeforeRender","autoResize","DisplayObject","transformCallback","transformCallbackContext","pivot","rotation","alpha","visible","hitArea","renderable","parent","stage","worldAlpha","worldTransform","Matrix","worldScale","worldRotation","_sr","_cr","filterArea","_bounds","Rectangle","_currentBounds","_mask","_cacheAsBitmap","_cacheIsDirty","children","_destroyCachedSprite","item","isMask","_filters","passes","filterPasses","_filterBlock","_generateCachedSprite","updateTransform","game","tx","ty","pt","wt","rotationCache","atan2","displayObjectUpdateTransform","getBounds","matrix","EmptyRectangle","getLocalBounds","identityMatrix","setStageReference","preUpdate","generateTexture","scaleMode","renderer","bounds","renderTexture","RenderTexture","_tempMatrix","render","updateCache","toGlobal","toLocal","applyInverse","_renderCachedSprite","renderSession","_cachedSprite","gl","Sprite","_renderWebGL","_renderCanvas","texture","tempFilters","filters","anchor","DisplayObjectContainer","_width","_height","addChild","addChildAt","removeChild","swapChildren","child2","index1","getChildIndex","index2","setChildIndex","currentIndex","getChildAt","removeChildAt","removeStageReference","removeChildren","beginIndex","endIndex","begin","range","removed","displayObjectContainerUpdateTransform","childBounds","childMaxX","childMaxY","minX","Infinity","minY","maxX","maxY","childVisible","matrixCache","spriteBatch","flush","filterManager","pushFilter","maskManager","pushMask","mask","popMask","popFilter","Texture","emptyTexture","tint","cachedTint","tintedTexture","blendMode","blendModes","NORMAL","shader","baseTexture","hasLoaded","onTextureUpdate","frame","setTexture","valid","w0","w1","h0","h1","x1","y1","x2","y2","x3","y3","x4","y4","crop","currentBlendMode","globalCompositeOperation","blendModesCanvas","globalAlpha","smoothProperty","scaleModes","LINEAR","trim","roundPixels","setTransform","cw","ch","requiresReTint","CanvasTinter","getTintedTexture","drawImage","source","fromFrame","frameId","TextureCache","fromImage","imageId","crossorigin","SpriteBatch","textureThing","ready","initWebGL","fastSpriteBatch","WebGLFastSpriteBatch","setContext","shaderManager","setShader","fastShader","transform","isRotated","childTransform","Stage","backgroundColor","setBackgroundColor","backgroundColorSplit","hex2rgb","hex","toString","substr","backgroundColorString","rgb2hex","rgb","canUseNewCanvasBlendModes","document","pngHead","pngEnd","magenta","Image","src","yellow","canvas","createElement","getContext","getImageData","getNextPowerOfTwo","number","isPowerOfTwo","sign","initDefaultShaders","CompileVertexShader","shaderSrc","_CompileShader","VERTEX_SHADER","CompileFragmentShader","FRAGMENT_SHADER","shaderType","join","createShader","shaderSource","compileShader","getShaderParameter","COMPILE_STATUS","log","getShaderInfoLog","compileProgram","vertexSrc","fragmentSrc","fragmentShader","vertexShader","shaderProgram","createProgram","attachShader","linkProgram","getProgramParameter","LINK_STATUS","PixiShader","program","textureCount","firstRun","dirty","attributes","init","defaultVertexSrc","useProgram","uSampler","getUniformLocation","projectionVector","offsetVector","dimensions","aVertexPosition","getAttribLocation","aTextureCoord","colorAttribute","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","transpose","z","_dirty","instances","updateTexture","deleteProgram","PixiFastShader","uMatrix","aPositionCoord","aScale","aRotation","StripShader","translationMatrix","attribute","PrimitiveShader","tintColor","ComplexPrimitiveShader","color","WebGLGraphics","renderGraphics","graphics","webGLData","projection","primitiveShader","updateGraphics","webGL","_webGL","stencilManager","pushStencil","drawElements","TRIANGLE_FAN","UNSIGNED_SHORT","indices","popStencil","toArray","uniform1f","uniform2f","uniform3fv","bindBuffer","ARRAY_BUFFER","buffer","vertexAttribPointer","FLOAT","ELEMENT_ARRAY_BUFFER","indexBuffer","TRIANGLE_STRIP","lastIndex","clearDirty","graphicsData","graphicsDataPool","Graphics","POLY","closed","fill","switchMode","canDrawUsingSimple","buildPoly","buildComplexPoly","lineWidth","buildLine","RECT","buildRectangle","CIRC","ELIP","buildCircle","RREC","buildRoundedRectangle","upload","WebGLGraphicsData","rectData","fillColor","fillAlpha","vertPos","tempPoints","rrectData","recPoints","concat","quadraticBezierCurve","vecPos","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","pdist","indexCount","indexStart","lineColor","lineAlpha","createBuffer","glPoints","bufferData","STATIC_DRAW","glIndicies","glContexts","WebGLRenderer","defaultRenderer","_contextOptions","premultipliedAlpha","stencil","WebGLShaderManager","WebGLSpriteBatch","WebGLMaskManager","WebGLFilterManager","WebGLStencilManager","blendModeManager","WebGLBlendModeManager","drawCount","initContext","mapBlendModes","glContextId","disable","DEPTH_TEST","CULL_FACE","enable","BLEND","contextLost","__stage","viewport","bindFramebuffer","FRAMEBUFFER","clearColor","COLOR_BUFFER_BIT","renderDisplayObject","displayObject","setBlendMode","style","createTexture","UNPACK_PREMULTIPLY_ALPHA_WEBGL","NEAREST","mipmap","LINEAR_MIPMAP_LINEAR","NEAREST_MIPMAP_NEAREST","generateMipmap","_powerOf2","blendModesWebGL","ONE","ONE_MINUS_SRC_ALPHA","ADD","SRC_ALPHA","DST_ALPHA","MULTIPLY","DST_COLOR","SCREEN","OVERLAY","DARKEN","LIGHTEN","COLOR_DODGE","COLOR_BURN","HARD_LIGHT","SOFT_LIGHT","DIFFERENCE","EXCLUSION","HUE","SATURATION","COLOR","LUMINOSITY","blendModeWebGL","blendFunc","maskData","stencilStack","count","bindGraphics","STENCIL_TEST","STENCIL_BUFFER_BIT","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","positions","colors","lastIndexCount","drawing","currentBatchSize","currentBaseTexture","textures","shaders","sprites","AbstractFilter","vertexBuffer","DYNAMIC_DRAW","sprite","uvs","_uvs","aX","aY","x0","y0","renderTilingSprite","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","sizeX","sizeY","currentFilter","colorBuffer","colorArray","createFramebuffer","DEFAULT","framebufferTexture2D","COLOR_ATTACHMENT0","renderBuffer","createRenderbuffer","bindRenderbuffer","RENDERBUFFER","framebufferRenderbuffer","DEPTH_STENCIL_ATTACHMENT","renderbufferStorage","DEPTH_STENCIL","deleteFramebuffer","deleteTexture","CanvasBuffer","clearRect","CanvasMaskManager","save","cacheAlpha","CanvasGraphics","renderGraphicsMask","clip","restore","tintMethod","tintWithMultiply","fillStyle","fillRect","tintWithPerPixel","rgbValues","pixelData","pixels","canHandleAlpha","putImageData","checkInverseAlpha","s1","s2","canUseMultiply","CanvasRenderer","refresh","navigator","isCocoonJS","screencanvas","removeView","updateGraphicsTint","_fillTint","_lineTint","beginPath","moveTo","lineTo","closePath","strokeStyle","stroke","strokeRect","arc","kappa","ox","oy","xe","ye","xm","ym","bezierCurveTo","rx","ry","maxRadius","quadraticCurveTo","tintR","tintG","tintB","BaseTextureCache","BaseTextureCacheIdGenerator","BaseTexture","complete","naturalWidth","naturalHeight","imageUrl","forceLoaded","_pixiId","unloadFromGPU","updateSourceImage","newSrc","glTexture","image","crossOrigin","fromCanvas","TextureCacheIdGenerator","FrameCache","TextureSilentFail","noFrame","isTiling","requiresUpdate","setFrame","onBaseTextureLoaded","destroyBase","_updateUvs","tw","th","addTextureToCache","removeTextureFromCache","textureBuffer","renderWebGL","renderCanvas","tempMatrix","Phaser","updateBase","identity","translate","realResolution","getImage","getBase64","getCanvas","toDataURL","webGLPixels","Uint8Array","readPixels","tempCanvas","canvasData","Strip","canvasPadding","drawMode","DrawModes","_vertexBuffer","_initWebGL","_renderStrip","_indexBuffer","_uvBuffer","_colorBuffer","_renderCanvasTriangleStrip","_renderCanvasTriangles","_renderCanvasDrawTriangle","index0","textureSource","textureWidth","textureHeight","u0","v2","paddingX","paddingY","centerX","centerY","normX","normY","deltaA","deltaB","deltaC","deltaD","deltaE","deltaF","renderStripFlat","strip","updateFrame","rawX","rawY","Rope","amount","total","nextPoint","perp","perpLength","TilingSprite","textureDebug","canvasBuffer","tilePattern","refreshTexture","frameWidth","frameHeight","generateTilingTexture","createPattern","sessionBlendMode","forcePowerOfTwo","targetWidth","_frame","sourceSizeW","targetHeight","sourceSizeH","trimmed","spriteSourceSizeX","spriteSourceSizeY","define","amd","WheelEventProxy","scaleFactor","deltaMode","_scaleFactor","_deltaMode","originalEvent","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","RECTANGLE","MATRIX","POINT","ROUNDEDRECTANGLE","CREATURE","VIDEO","trunc","Function","bind","thisArg","bound","args","boundArgs","TypeError","F","proto","arg","forEach","fun","CheapArray","assert","getProperty","obj","prop","parts","setProperty","chanceRoll","chance","random","randomChoice","choice1","choice2","parseDimension","dimension","parseInt","innerWidth","innerHeight","pad","dir","padlen","isPlainObject","nodeType","hasOwnProperty","copyIsArray","deep","mixinPrototype","mixin","replace","mixinKeys","childNodes","cloneNode","diameter","_diameter","_radius","circumference","setTo","copyFrom","copyTo","dest","round","output","contains","circumferencePoint","asDegrees","offsetPoint","top","bottom","equals","intersects","degToRad","intersectsRectangle","halfWidth","xDist","halfHeight","yDist","xCornerDist","yCornerDist","xCornerDistSq","yCornerDistSq","maxCornerDistSq","Ellipse","normx","normy","fromSprite","startSprite","endSprite","useCenter","center","fromAngle","line","asSegment","intersectsPoints","pointOnLine","pointOnSegment","xMin","xMax","yMin","yMax","coordinatesOnLine","stepRate","results","sx","sy","err","e2","wrap","uc","ua","ub","normalAngle","fromArray","newPos","tx1","invert","clampX","clamp","clampY","radToDeg","getMagnitude","getMagnitudeSq","setMagnitude","magnitude","isZero","rperp","normalRightHand","negative","multiplyAdd","interpolate","project","amt","projectUnit","pointslength","parse","xProp","yProp","_points","toNumberArray","flatten","inside","ix","iy","jx","jy","calculateArea","avgHeight","centerOn","floorAll","ceilAll","inflate","containsRect","intersection","intersectsRaw","union","randomX","randomY","empty","inflatePoint","containsRaw","rw","rh","volume","sameDimensions","MIN_VALUE","RoundedRectangle","Camera","deadzone","roundPx","atLimit","totalInView","_targetPosition","_edge","_position","FOLLOW_LOCKON","FOLLOW_PLATFORMER","FOLLOW_TOPDOWN","FOLLOW_TOPDOWN_TIGHT","follow","helper","unfollow","focusOn","setPosition","focusOnXY","updateTarget","checkBounds","setBoundsToWorld","setSize","Create","bmd","make","bitmapData","ctx","palettes","A","C","D","E","PALETTE_ARNE","PALETTE_JMP","PALETTE_CGA","PALETTE_C64","PALETTE_JAPANESE_MACHINE","pixelWidth","pixelHeight","palette","row","grid","cellWidth","cellHeight","State","camera","cache","input","load","math","sound","tweens","particles","physics","rnd","preload","loadUpdate","loadRender","preRender","paused","resumed","pauseUpdate","shutdown","StateManager","pendingState","states","_pendingState","_clearWorld","_clearCache","_created","_args","onStateChange","Signal","onInitCallback","onPreloadCallback","onCreateCallback","onUpdateCallback","onRenderCallback","onResizeCallback","onPreRenderCallback","onLoadUpdateCallback","onLoadRenderCallback","onPausedCallback","onResumedCallback","onPauseUpdateCallback","onShutDownCallback","boot","onPause","pause","onResume","resume","state","autoStart","newState","isBooted","remove","callbackContext","clearWorld","clearCache","checkState","restart","dummy","previousStateKey","clearCurrentState","setCurrentState","dispatch","totalQueuedFiles","totalQueuedPacks","loadComplete","removeAll","debug","link","unlink","_kickstart","getCurrentState","elapsedTime","renderType","_bindings","_prevParams","memorize","_shouldPropagate","active","_boundDispatch","validateListener","fnName","_registerListener","isOnce","listenerContext","priority","binding","prevIndex","_indexOfListener","SignalBinding","_addBinding","execute","_priority","cur","_listener","addOnce","_destroy","getNumListeners","halt","bindings","paramsArr","forget","dispose","_this","signal","_isOnce","_signal","callCount","params","handlerReturn","detach","isBound","getListener","getSignal","Filter","prevPoint","Date","mouse","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","exists","currentRenderOrderID","_hiddenVar","_onChange","_backgroundColor","config","parseConfig","DOM","getOffset","Canvas","setUserSelect","setTouchAction","checkVisibility","webkitHidden","mozHidden","msHidden","hidden","visibilityChange","addEventListener","onblur","onfocus","onpagehide","onpageshow","device","cocoonJSApp","CocoonJS","App","onSuspended","onActivated","focusLoss","focusGain","gamePaused","gameResumed","Color","valueToColor","getColor","RGBtoString","removeEventListener","Group","addToStage","enableBody","physicsBodyType","Physics","ARCADE","physicsType","alive","ignoreDestroy","pendingDestroy","classType","cursor","enableBodyDebug","physicsSortDirection","onDestroy","cursorIndex","fixedToCamera","cameraOffset","hash","_sortProperty","RETURN_NONE","RETURN_TOTAL","RETURN_CHILD","SORT_ASCENDING","SORT_DESCENDING","silent","addToHash","events","onAddedToGroup$dispatch","removeFromHash","addMultiple","moveAll","addAt","updateZ","getAt","createMultiple","quantity","resetCursor","next","previous","swap","child1","bringToTop","getIndex","sendToBack","moveUp","moveDown","xy","oldChild","newChild","hasProperty","operation","checkProperty","checkAlive","checkVisible","setAll","setAllChildren","checkAll","addAll","property","subAll","multiplyAll","divideAll","callAllExists","existsValue","callbackFromArray","callAll","method","methodLength","contextLength","renderOrderID","predicate","checkExists","ArraySet","forEachExists","iterate","forEachAlive","forEachDead","order","ascendingSortHandler","descendingSortHandler","customSort","sortHandler","returnType","getFirstExists","getFirstAlive","getFirstDead","getTop","getBottom","countLiving","countDead","getRandom","ArrayUtils","getRandomItem","destroyPhase","onRemovedFromGroup$dispatch","group","removeBetween","destroyChildren","soft","_definedSize","stateChange","setBounds","useBounds","horizontal","vertical","between","FlexGrid","manager","boundsCustom","boundsFluid","boundsFull","boundsNone","positionCustom","positionFluid","positionFull","positionNone","scaleCustom","scaleFluid","scaleFluidInversed","scaleFull","scaleNone","customWidth","customHeight","customOffsetX","customOffsetY","ratioH","ratioV","layers","createCustomLayer","layer","FlexLayer","createFluidLayer","createFullLayer","createFixedLayer","persist","onResize","fitSprite","scaleSprite","text","geom","uuid","topLeft","topMiddle","topRight","bottomLeft","bottomMiddle","bottomRight","ScaleManager","dom","minWidth","maxWidth","minHeight","maxHeight","forceLandscape","forcePortrait","incorrectOrientation","_pageAlignHorizontally","_pageAlignVertically","onOrientationChange","enterIncorrectOrientation","leaveIncorrectOrientation","fullScreenTarget","_createdFullScreenTarget","onFullScreenInit","onFullScreenChange","onFullScreenError","screenOrientation","getScreenOrientation","scaleFactorInversed","margin","aspectRatio","sourceAspectRatio","windowConstraints","compatibility","supportsFullScreen","orientationFallback","noMargins","scrollTo","forceMinimumDocumentHeight","canExpandParent","clickTrampoline","_scaleMode","NO_SCALE","_fullScreenScaleMode","parentIsWindow","parentNode","parentScaleFactor","trackParentInterval","onSizeChange","onResizeContext","_pendingScaleMode","_fullScreenRestore","_gameSize","_userScaleFactor","_userScaleTrim","_lastUpdate","_updateThrottle","_updateThrottleReset","_parentBounds","_tempBounds","_lastReportedCanvasSize","_lastReportedGameSize","_booted","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","visualBounds","newWidth","newHeight","updateDimensions","queueUpdate","currentScaleMode","setUserScale","hScale","vScale","hTrim","vTrim","setResizeCallback","signalSizeChange","setMinMax","prevThrottle","prevWidth","prevHeight","boundsChanged","orientationChanged","updateOrientationState","updateLayout","throttle","updateScalingAndBounds","forceOrientation","classifyOrientation","orientation","previousOrientation","previouslyIncorrect","isLandscape","isPortrait","changed","correctnessChanged","scrollTop","reflowGame","documentElement","setMaximum","setExactFit","isFullScreen","boundingParent","setShowAll","resetCanvas","reflowCanvas","layoutBounds","clientRect","getBoundingClientRect","wc","windowBounds","alignCanvas","parentBounds","canvasBounds","currentEdge","targetEdge","marginLeft","marginRight","marginTop","marginBottom","pageAlignHorizontally","pageAlignVertically","cssWidth","cssHeight","expanding","createFullScreenTarget","fsTarget","background","startFullScreen","allowTrampoline","setTimeout","activePointer","mousePointer","addClickTrampoline","smoothed","cleanupCreatedTarget","initData","targetElement","insertBefore","appendChild","fullscreenKeyboard","requestFullscreen","Element","ALLOW_KEYBOARD_INPUT","stopFullScreen","cancelFullscreen","prepScreenMode","enteringFullscreen","createdTarget","enterFullScreen","leaveFullScreen","letterBox","scaleX1","scaleY1","scaleX2","scaleY2","scaleOnWidth","Game","physicsConfig","isRunning","raf","net","Device","lockRender","pendingStep","stepCount","onBlur","onFocus","_paused","_codePaused","currentUpdateID","updatesThisFrame","_deltaTime","_lastCount","_spiraling","fpsProblemNotifier","forceSingleUpdate","_nextFpsNotification","enableDebug","RandomDataGenerator","now","whenReady","seed","setUpRenderer","GameObjectFactory","GameObjectCreator","Cache","Loader","Time","TweenManager","Input","SoundManager","Particles","Net","Debug","showDebugHeader","RequestAnimationFrame","stopFocus","focus","hideBanner","webAudio","contextRestored","addToDOM","preventDefault","clearGLTextures","updateLogic","desiredFps","updateRender","slowMotion","slowStep","elapsed","enableStep","disableStep","removeFromDOM","setMute","cordova","iOS","unsetMute","hitCanvas","hitContext","moveCallbacks","pollRate","multiInputOverride","MOUSE_TOUCH_COMBINE","maxPointers","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","Touch","MSPointer","Keyboard","Gamepad","_onClickTrampoline","onClickTrampoline","addMoveCallback","deleteMoveCallback","hard","resetSpeed","startPointer","countActivePointers","updatePointer","identifier","move","stopPointer","limit","getPointer","isActive","getPointerFromIdentifier","getPointerFromId","pointerId","getLocalPosition","worldVisible","TileSprite","processClickTrampolines","mouseDownCallback","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","BACK_BUTTON","FORWARD_BUTTON","WHEEL_UP","WHEEL_DOWN","onMouseDown","onMouseMove","onMouseUp","_onMouseUpGlobal","onMouseUpGlobal","onMouseOut","onMouseOver","onMouseWheel","wheelEvent","mouseMoveCallback","withinGame","bindEvent","deltaY","requestPointerLock","element","mozRequestPointerLock","webkitRequestPointerLock","_pointerLockChange","pointerLockChange","pointerLockElement","mozPointerLockElement","webkitPointerLockElement","releasePointerLock","exitPointerLock","mozExitPointerLock","webkitExitPointerLock","_stubsGenerated","makeBinder","defineProperties","detail","deltaX","wheelDeltaX","deltaZ","pointerDownCallback","pointerMoveCallback","pointerUpCallback","_onMSPointerDown","_onMSPointerMove","_onMSPointerUp","onPointerDown","onPointerMove","onPointerUp","pointerType","DeviceButton","buttonCode","isDown","isUp","timeDown","duration","timeUp","repeats","altKey","shiftKey","ctrlKey","onFloat","padFloat","justPressed","justReleased","leftButton","middleButton","rightButton","backButton","forwardButton","eraserButton","ERASER_BUTTON","_holdSent","_history","_nextDrop","_stateReset","clientX","clientY","pageX","pageY","screenX","screenY","rawMovementX","rawMovementY","movementX","movementY","isMouse","previousTapTime","totalTouches","msSinceLastClick","targetObject","positionDown","positionUp","_clickTrampolines","_trampolineTargetObject","resetButtons","updateButtons","buttons","totalActivePointers","_touchedHandler","processInteractiveObjects","shift","fromClick","pollLocked","mozMovementX","webkitMovementX","mozMovementY","webkitMovementY","isDragged","highestRenderOrderID","highestInputPriorityID","candidateTarget","currentNode","checked","validForInput","checkPointerDown","checkPointerOver","priorityID","_pointerOutHandler","_pointerOverHandler","leave","currentPointers","callbackArgs","trampolines","trampoline","_releasedHandler","resetMovement","touchLockCallbacks","touchStartCallback","touchMoveCallback","touchEndCallback","touchEnterCallback","touchLeaveCallback","touchCancelCallback","_onTouchStart","_onTouchMove","_onTouchEnd","_onTouchEnter","_onTouchLeave","_onTouchCancel","onTouchStart","onTouchMove","onTouchEnd","onTouchEnter","onTouchLeave","onTouchCancel","consumeDocumentTouches","_documentTouchMove","addTouchLockCallback","removeTouchLockCallback","changedTouches","InputHandler","useHandCursor","_setHandCursor","allowHorizontalDrag","allowVerticalDrag","snapOffset","snapOnDrag","snapOnRelease","snapX","snapY","snapOffsetX","snapOffsetY","pixelPerfectOver","pixelPerfectClick","pixelPerfectAlpha","draggable","boundsRect","boundsSprite","consumePointerEvent","scaleLayer","dragOffset","dragFromCenter","dragStartPoint","snapPoint","_dragPoint","_dragPhase","_wasEnabled","_tempPoint","_pointerData","isOver","isOut","timeOver","timeOut","downDuration","onAddedToGroup","addedToGroup","onRemovedFromGroup","removedFromGroup","flagged","highestID","highestRenderID","includePixelPerfect","isPixelPerfect","pointerX","pointerY","pointerDown","pointerUp","pointerTimeDown","pointerTimeUp","pointerOver","pointerOut","pointerTimeOver","pointerTimeOut","pointerDragged","fastTest","checkPixel","_dx","_dy","_draggedPointerID","updateDrag","onInputOver$dispatch","onInputOut$dispatch","onInputDown$dispatch","startDrag","onInputUp$dispatch","stopDrag","globalToLocalX","globalToLocalY","checkBoundsRect","checkBoundsSprite","onDragUpdate","justOver","delay","overDuration","justOut","enableDrag","lockCenter","pixelPerfect","alphaThreshold","disableDrag","onDragStart$dispatch","onDragStop$dispatch","setDragLock","allowHorizontal","allowVertical","enableSnap","onDrag","onRelease","disableSnap","_gamepadIndexMap","_rawPads","_active","_gamepadSupportAvailable","webkitGetGamepads","webkitGamepads","userAgent","getGamepads","_prevRawGamepadTypes","_prevTimestamps","onConnectCallback","onDisconnectCallback","onDownCallback","onUpCallback","onAxisCallback","onFloatCallback","_ongamepadconnected","_gamepaddisconnected","_gamepads","SinglePad","addCallbacks","callbacks","onConnect","onDisconnect","onAxis","_onGamepadConnected","onGamepadConnected","_onGamepadDisconnected","onGamepadDisconnected","newPad","connect","removedPad","disconnect","_pollGamepads","pad1","pollStatus","pad2","pad3","pad4","rawGamepads","gamepadsChanged","singlePad","validConnections","rawIndices","padIndices","connected","rawPad","setDeadZones","deadZone","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","processButtonDown","processButtonUp","processButtonFloat","processAxisChange","triggerCallback","disconnectingIndex","axisCode","buttonValue","Key","keycode","_enabled","keyCode","onHoldCallback","onHoldContext","_justDown","_justUp","processKeyDown","processKeyUp","upDuration","pressEvent","onPressCallback","_keys","_capture","_onKeyDown","_onKeyPress","_onKeyUp","_k","onPress","addKey","addKeyCapture","addKeys","removeKey","removeKeyCapture","createCursorKeys","up","down","processKeyPress","clearCaptures","String","fromCharCode","charCode","charCodeAt","H","J","K","L","M","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","COMMA","UNDERSCORE","PERIOD","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","PLUS","MINUS","INSERT","DELETE","HELP","NUM_LOCK","Component","Angle","wrapAngle","Animation","play","frameRate","loop","killOnComplete","animations","AutoCull","autoCull","inCamera","checkWorldBounds","Bounds","BringToTop","Core","install","components","Events","PhysicsBody","AnimationManager","LoadTexture","loadTexture","FixedToCamera","previousRotation","fresh","_exists","P2JS","customRender","Crop","cropRect","_crop","updateCrop","resetFrame","Delta","Destroy","onDestroy$dispatch","Video","onChangeSource","resizeFrame","BitmapText","_glyphs","_parent","_onDestroy","_onAddedToGroup","_onRemovedFromGroup","_onRemovedFromWorld","_onKilled","_onRevived","_onEnterBounds","_onOutOfBounds","_onInputOver","_onInputOut","_onInputDown","_onInputUp","_onDragStart","_onDragUpdate","_onDragStop","_onAnimationStart","_onAnimationComplete","_onAnimationLoop","onRemovedFromWorld","onKilled","onRevived","onOutOfBounds","onEnterBounds","onInputOver","onInputOut","onInputDown","onInputUp","onDragStart","onDragStop","onAnimationStart","onAnimationComplete","onAnimationLoop","backing","_fixedToCamera","Health","health","maxHealth","damage","kill","heal","InCamera","InputEnabled","inputEnabled","InWorld","_outOfBoundsFired","onEnterBounds$dispatch","onOutOfBounds$dispatch","outOfBoundsKill","inWorld","LifeSpan","lifespan","physicsElapsedMS","revive","onRevived$dispatch","onKilled$dispatch","stopAnimation","BitmapData","hasFrameData","loadFrameData","getFrameData","img","base","frameData","frameName","Overlap","_reset","Reset","ScaleMinMax","checkTransform","scaleMin","scaleMax","setScaleMinMax","Smoothed","existing","creature","mesh","Creature","tween","physicsGroup","audio","audioSprite","addSprite","tileSprite","rope","Text","overFrame","outFrame","downFrame","upFrame","Button","emitter","maxParticles","Arcade","Emitter","retroFont","font","characterWidth","characterHeight","chars","charsPerRow","xSpacing","ySpacing","xOffset","yOffset","RetroFont","bitmapText","tilemap","tileWidth","Tilemap","addToCache","addRenderTexture","video","addBitmapData","Tween","align","preUpdatePhysics","preUpdateLifeSpan","preUpdateInWorld","preUpdateCore","_scroll","def","physicsElapsed","autoScroll","stopScroll","_hasUpdateAnimation","_updateAnimationCallback","updateAnimation","_updateAnimation","segments","difference","_onOverFrame","_onOutFrame","_onDownFrame","_onUpFrame","onOverSound","onOutSound","onDownSound","onUpSound","onOverSoundMarker","onOutSoundMarker","onDownSoundMarker","onUpSoundMarker","onOverMouseOnly","freezeFrames","forceOut","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","autoScale","scaleData","_s","autoAlpha","alphaData","_a","onEmit","setAlphaData","setScaleData","imageData","textureFrame","Frame","disableTextureUpload","cls","_image","_pos","_size","_scale","_rotate","_alpha","prev","_anchor","_tempR","_tempG","_tempB","_circle","_swapCanvas","moveH","moveV","draw","addImage","processPixelRGB","pixel","createColor","unpackPixel","getPixel32","setPixel32","processPixel","replaceRGB","g1","g2","region","packPixel","setHSL","HSLtoRGB","shiftHSL","limitValue","red","green","blue","immediate","LITTLE_ENDIAN","setPixel","getPixel","getPixelRGB","hsl","hsv","getPixels","getFirstPixel","scan","anchorX","anchorY","copyRect","drawGroup","shadow","blur","shadowColor","shadowBlur","shadowOffsetX","shadowOffsetY","alphaMask","sourceRect","maskRect","blendSourceAtop","blendReset","extract","destination","prevFont","fillText","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","currentPath","boundsPadding","_localBounds","webGLDirty","cachedSpriteDirty","lineStyle","drawShape","cpX2","cpY2","dt2","dt3","arcTo","mm","dd","cc","tt","k1","k2","j1","j2","qx","qy","startAngle","endAngle","anticlockwise","sweep","segs","startX","startY","filling","theta","theta2","cTheta","sTheta","segMinus","remainder","real","beginFill","endFill","drawRect","drawRoundedRect","drawCircle","drawEllipse","drawPolygon","updateCachedSpriteTexture","_prevTint","updateLocalBounds","tempPoint","cachedSprite","destroyCachedSprite","GraphicsData","drawTriangle","cull","triangle","cameraToFace","cb","faceNormal","drawTriangles","point1","point2","point3","renderXY","renderRawXY","textBounds","strokeColors","autoRound","_res","_text","_fontComponents","_lineSpacing","_charCount","setStyle","updateText","setShadow","shadowStroke","shadowFill","boundsAlignH","boundsAlignV","strokeThickness","wordWrap","wordWrapWidth","tabs","fontToComponents","fontStyle","fontVariant","fontWeight","fontSize","componentsToFont","outputText","runWordWrap","lines","lineWidths","maxLineWidth","fontProperties","determineFontProperties","measureText","tab","section","snapToCeil","lineHeight","lineSpacing","textBaseline","lineCap","lineJoin","linePositionX","linePositionY","ascent","updateLine","updateShadow","strokeText","renderTabLine","snap","letter","clearColors","addColor","addStrokeColor","spaceLeft","words","wordWidth","wordWidthWithSpace","updateFont","match","fontFamily","setText","parseList","list","setTextBounds","properties","fontPropertiesCache","fontPropertiesCanvas","fontPropertiesContext","baseline","descent","imagedata","exec","parseFloat","textWidth","textHeight","_prevAnchor","_maxWidth","_data","getBitmapFont","_font","_fontSize","_align","_tint","sourceWidth","sourceHeight","scanLine","lastSpace","prevCharCode","test","charAt","charData","kerning","xAdvance","purgeGlyphs","kept","checkImageKey","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","content","characterSpacing","allowLowerCase","buildRetroFontText","getLongestLine","pasteLine","longestLine","removeUnsupportedCharacters","stripCR","newString","aChar","code","updateOffset","diffX","diffY","frames","getFrames","newText","toUpperCase","deviceReadyAt","initialized","nodeWebkit","electron","ejecta","crosswalk","chromeOS","linux","macOS","windows","windowsPhone","canvasBitBltShift","file","fileSystem","localStorage","worker","css3D","typedArray","vibration","getUserMedia","quirksMode","arora","chromeVersion","epiphany","firefox","firefoxVersion","ie","ieVersion","trident","tridentVersion","mobileSafari","midori","opera","safari","silk","audioData","ogg","opus","mp3","wav","m4a","webm","oggVideo","h264Video","mp4Video","webmVideo","vp9Video","hlsVideo","iPhone","iPhone4","pixelRatio","littleEndian","support32bit","onInitialized","nonPrimer","readyCheck","_readyCheck","_monitor","_queue","readyState","_initialize","_checkOS","vita","kindle","_checkFeatures","getItem","error","WebGLRenderingContext","compatMode","webkitGetUserMedia","mozGetUserMedia","msGetUserMedia","oGetUserMedia","URL","webkitURL","mozURL","msURL","_checkInput","maxTouchPoints","msPointerEnabled","pointerEnabled","_checkFullScreenSupport","fs","cfs","_checkBrowser","RegExp","$1","$3","process","versions","_checkVideo","videoElement","canPlayType","_checkAudio","audioElement","_checkDevice","toLowerCase","Int8Array","_checkIsLittleEndian","Uint8ClampedArray","Int32Array","_checkIsUint8ClampedImageData","vibrate","webkitVibrate","mozVibrate","msVibrate","elem","createImageData","_checkCSS3D","has3d","el","transforms","webkitTransform","OTransform","msTransform","MozTransform","getComputedStyle","getPropertyValue","canPlayAudio","canPlayVideo","isConsoleOpen","profile","profileEnd","isAndroidStockBrowser","matches","box","scrollY","scrollLeft","scrollX","clientTop","clientLeft","cushion","calibrate","coords","getAspectRatio","inLayoutViewport","primaryFallback","screen","mozOrientation","msOrientation","PORTRAIT","LANDSCAPE","matchMedia","documentBounds","pageXOffset","pageYOffset","treatAsDesktop","clientWidth","clientHeight","offsetWidth","scrollWidth","offsetHeight","scrollHeight","display","msTouchAction","overflowHidden","overflow","vendor","prefix","setImageRenderingCrisp","msInterpolationMode","setImageRenderingBicubic","forceSetTimeOut","vendors","requestAnimationFrame","cancelAnimationFrame","_isSetTimeOut","_onLoop","_timeOutID","updateSetTimeout","updateRAF","rafTime","timeToCall","clearTimeout","isSetTimeOut","isRAF","PI2","fuzzyEqual","fuzzyLessThan","fuzzyGreaterThan","fuzzyCeil","val","fuzzyFloor","average","shear","snapTo","gap","snapToFloor","roundTo","place","floorTo","ceilTo","angleBetween","angleBetweenY","angleBetweenPoints","angleBetweenPointsY","reverseAngle","angleRad","normalizeAngle","maxAdd","minSub","wrapValue","isOdd","isEven","minProperty","maxProperty","radians","linearInterpolation","linear","bezierInterpolation","bernstein","catmullRomInterpolation","catmullRom","factorial","res","roundAwayFromZero","sinCosGenerator","sinAmplitude","cosAmplitude","frequency","frq","cosTable","sinTable","distanceSq","distancePow","clampBottom","within","mapLinear","smoothstep","smootherstep","percent","degreeToRadiansFactor","radianToDegreesFactor","degrees","seeds","s0","sow","integer","frac","integerInRange","realInRange","pick","ary","weightedPick","QuadTree","maxObjects","maxLevels","_empty","subWidth","subHeight","populate","populateHandler","insert","retrieve","returnObjects","getHostName","location","hostname","checkDomainName","domain","updateQueryString","redirect","href","re","separator","getQueryString","parameter","keyValues","search","substring","decodeURI","decodeURIComponent","_tweens","_add","easeMap","Power0","Easing","Power1","Power2","Power3","Power4","Linear","None","Quad","Quadratic","Out","Cubic","Quart","Quartic","Quint","Quintic","Sine","Sinusoidal","Expo","Exponential","Circ","Circular","Elastic","Back","Bounce","Quad.easeIn","In","Cubic.easeIn","Quart.easeIn","Quint.easeIn","Sine.easeIn","Expo.easeIn","Circ.easeIn","Elastic.easeIn","Back.easeIn","Bounce.easeIn","Quad.easeOut","Cubic.easeOut","Quart.easeOut","Quint.easeOut","Sine.easeOut","Expo.easeOut","Circ.easeOut","Elastic.easeOut","Back.easeOut","Bounce.easeOut","Quad.easeInOut","InOut","Cubic.easeInOut","Quart.easeInOut","Quint.easeInOut","Sine.easeInOut","Expo.easeInOut","Circ.easeInOut","Elastic.easeInOut","Back.easeInOut","Bounce.easeInOut","_pauseAll","_resumeAll","getAll","pendingDelete","removeFrom","_manager","addTweens","numTweens","isTweening","some","_pause","_resume","pauseAll","resumeAll","timeline","timeScale","repeatCounter","onStart","onLoop","onRepeat","onChildComplete","onComplete","chainedTween","isPaused","_onUpdateCallback","_onUpdateCallbackContext","_pausedTime","_hasStarted","ease","yoyo","Default","TweenData","vEnd","loadValues","updateTweenData","repeatDelay","yoyoDelay","easing","interpolation","repeatAll","chain","startTime","status","PENDING","RUNNING","LOOPED","COMPLETE","generateData","vStart","vStartCache","vEndCache","inReverse","easingFunction","interpolationFunction","interpolationContext","isFrom","yoyoCounter","elapsedMS","fps","blob","reversed","asin","prevTime","suggestedFps","advancedTiming","fpsMin","fpsMax","msMin","msMax","pauseDuration","timeExpected","Timer","_frameCount","_elapsedAccumulator","_started","_timeLastSecond","_pauseStarted","_justResumed","_timers","timer","autoDestroy","updateAdvancedTiming","updateTimers","previousDateNow","timeCallExpected","elapsedSince","since","elapsedSecondsSince","running","expired","nextTick","timeCap","_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","validateFrames","checkFrameName","isPlaying","getAnimation","refreshFrame","getFrame","getFrameByName","_frameIndex","_frames","loopCount","isFinished","_pauseStartTime","_frameDiff","_frameSkip","onUpdate","_timeLastFrame","_timeNextFrame","updateCurrentFrame","onAnimationStart$dispatch","useLocalFrameIndex","frameIndex","dispatchComplete","onAnimationComplete$dispatch","onAnimationLoop$dispatch","signalUpdate","fromPlay","generateFrameNames","suffix","zeroPad","rotated","rotationDirection","spriteSourceSizeW","spriteSourceSizeH","setTrim","actualWidth","actualHeight","destX","destY","destWidth","destHeight","getRect","_frameNames","getFrameRange","AnimationParser","spriteSheet","frameMax","spacing","column","JSONData","json","newFrame","filename","sourceSize","spriteSourceSize","JSONDataHash","XMLData","xml","getElementsByTagName","frameX","frameY","autoResolveURL","_cache","binary","bitmapFont","_urlMap","_urlResolver","_urlTemp","onSoundUnlock","_cacheMap","TEXTURE","SOUND","PHYSICS","BINARY","BITMAPFONT","JSON","XML","SHADER","RENDER_TEXTURE","addDefaultImage","addMissingImage","addCanvas","removeImage","_resolveURL","addSound","audioTag","decoded","isDecoding","touchLocked","addText","addPhysicsData","addTilemap","mapData","addBinary","binaryData","addBitmapFont","atlasData","atlasType","LoaderParser","jsonBitmapFont","xmlBitmapFont","addJSON","addXML","addVideo","isBlob","addShader","addSpriteSheet","addTextureAtlas","TEXTURE_ATLAS_XML_STARLING","reloadSound","getSound","reloadSoundComplete","updateSound","decodedSound","isSoundDecoded","isSoundReady","checkKey","checkURL","checkCanvasKey","checkTextureKey","checkSoundKey","checkTextKey","checkPhysicsKey","checkTilemapKey","checkBinaryKey","checkBitmapDataKey","checkBitmapFontKey","checkJSONKey","checkXMLKey","checkVideoKey","checkShaderKey","checkRenderTextureKey","full","getTextureFrame","getSoundData","getText","getPhysicsData","fixtureKey","fixtures","fixture","getTilemapData","getBinary","getBitmapData","getJSON","getXML","getVideo","getShader","getRenderTexture","getBaseTexture","getFrameCount","getFrameByIndex","getPixiTexture","getPixiBaseTexture","getURL","getKeys","removeCanvas","removeFromPixi","removeSound","removeText","removePhysics","removeTilemap","removeBinary","removeBitmapData","removeBitmapFont","removeJSON","removeXML","removeVideo","removeShader","removeRenderTexture","removeSpriteSheet","removeTextureAtlas","atlas","baseURL","isLoading","preloadSprite","onLoadStart","onLoadComplete","onPackComplete","onFileStart","onFileComplete","onFileError","useXDomainRequest","_warnedAboutXDomainRequest","enableParallel","maxParallelDownloads","_withSyncPointDepth","_fileList","_flightQueue","_processingHead","_fileLoadStarted","_totalPackCount","_totalFileCount","_loadedPackCount","_loadedFileCount","TEXTURE_ATLAS_JSON_ARRAY","TEXTURE_ATLAS_JSON_HASH","PHYSICS_LIME_CORONA_JSON","PHYSICS_PHASER_JSON","setPreloadSprite","checkKeyExists","getAssetIndex","bestFound","loaded","loading","getAsset","fileIndex","addToFileList","overwrite","extension","syncPoint","currentFile","replaceInFileList","pack","script","spritesheet","urls","autoDecode","noAudio","audiosprite","jsonURL","jsonData","loadEvent","asBlob","CSV","TILED_JSON","LIME_CORONA_JSON","textureURL","atlasURL","parseXml","atlasJSONArray","atlasJSONHash","atlasXML","withSyncPoint","addSyncPoint","asset","removeFile","updateProgress","processLoadQueue","finishedLoading","requestUrl","requestObject","progress","syncblock","inflightLimit","processPack","loadFile","abnormal","asyncComplete","errorMessage","packData","transformUrl","xhrLoad","fileComplete","loadImageTag","getAudioURL","usingWebAudio","usingAudioTag","loadAudioTag","fileError","getVideoURL","loadVideoTag","jsonLoadComplete","xmlLoadComplete","csvLoadComplete","onload","onerror","controls","autoplay","videoLoadEvent","canplay","Audio","playThroughEvent","XDomainRequest","xhrLoadWithXDR","xhr","XMLHttpRequest","open","responseType","message","send","timeout","ontimeout","onprogress","videoType","uri","lastIndexOf","audioType","reason","loadNext","responseText","Blob","response","decode","language","defer","head","contentType","domparser","DOMParser","parseFromString","ActiveXObject","async","loadXML","totalLoadedFiles","totalLoadedPacks","progressFloat","info","common","getAttribute","letters","kernings","second","finalizeBitmapFont","_face","_lineHeight","_id","_xoffset","_yoffset","_xadvance","_second","_first","_amount","bitmapFontData","autoplayKey","sounds","spritemap","addMarker","connectToMaster","markers","totalDuration","currentTime","durationMS","stopTime","pausedPosition","pausedTime","currentMarker","fadeTween","pendingPlayback","override","allowMultiple","externalNode","masterGainNode","gainNode","_sound","masterGain","createGain","createGainNode","gain","soundHasUnlocked","onDecoded","onPlay","onStop","onMute","onMarkerComplete","onFadeComplete","_volume","_buffer","_muted","_tempMarker","_tempPosition","_tempVolume","_muteVolume","_tempLoop","_onDecodedEventDispatched","removeMarker","onEndedHandler","isDecoded","loopFull","forceRestart","noteOff","createBufferSource","onended","noteGrainOn","muted","prevMarker","fadeIn","fadeTo","fadeOut","fadeComplete","mute","onSoundDecode","onVolumeChange","onUnMute","channels","_codeMuted","_unlockSource","_sounds","_watchList","_watching","_watchCallback","_watchContext","disableAudio","disableWebAudio","audioContext","fakeiOSTouchLock","setTouchLock","unlock","noteOn","stopAll","soundData","decodeAudioData","setDecodedCallback","files","playbackState","PLAYING_STATE","FINISHED_STATE","removeByKey","columnWidth","renderShadow","currentAlpha","currentColor","soundInfo","cameraInfo","hideIfUp","downColor","upColor","worldX","worldY","spriteInputInfo","justDown","justUp","inputInfo","spriteBounds","filled","rectangle","ropeSegments","segment","spriteInfo","spriteCoords","lineInfo","forceType","quadTree","quadtree","NINJA","Ninja","BOX2D","Box2D","renderBody","bodyInfo","renderBodyInfo","box2d","box2dWorld","renderDebugDraw","box2dBody","randomIndex","removeRandomItem","shuffle","transposeMatrix","sourceRowCount","sourceColCount","rotateMatrix","findClosest","arr","NaN","low","high","POSITIVE_INFINITY","numberArray","numberArrayStep","rgba","RGBtoHSL","RGBtoHSV","fromRGBA","toRGBA","q","hueToColor","updateColor","HSVtoRGB","color32","getColor32","componentToHex","hexToRGB","hexToColor","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","blendNormal","blendAverage","blendSubtract","blendNegation","blendLinearDodge","blendLinearBurn","blendLinearLight","blendVividLight","blendPinLight","blendHardMix","blendReflect","blendGlow","blendPhoenix","LinkedList","entity","arcade","ninja","chipmunk","matter","CHIPMUNK","MATTERJS","P2","Matter","startSystem","system","enableAABB","checkCollision","OVERLAP_BIAS","forceX","sortDirection","LEFT_RIGHT","skipQuadTree","_total","SORT_NONE","RIGHT_LEFT","TOP_BOTTOM","BOTTOM_TOP","updateMotion","velocityDelta","computeVelocity","angularAcceleration","angularDrag","maxAngular","acceleration","drag","maxVelocity","allowGravity","object1","object2","overlapCallback","processCallback","collideHandler","collide","collideCallback","sortLeftRight","sortRightLeft","sortTopBottom","sortBottomTop","overlapOnly","collideGroupVsSelf","collideSpriteVsSprite","collideSpriteVsGroup","collideSpriteVsTilemapLayer","collideGroupVsGroup","collideGroupVsTilemapLayer","sprite1","sprite2","separate","items","group1","group2","body1","body2","separateX","separateY","immovable","maxOverlap","deltaAbsX","embedded","touching","none","overlapX","customSeparateX","bounce","moves","nv1","nv2","avg","deltaAbsY","overlapY","customSeparateY","getObjectsUnderPointer","getObjectsAtLocation","callbackArg","moveToObject","maxTime","distanceBetween","moveToPointer","angleToPointer","distanceToPointer","moveToXY","distanceToXY","velocityFromAngle","velocityFromRotation","accelerationFromRotation","accelerateToObject","xSpeedMax","ySpeedMax","accelerateToPointer","accelerateToXY","angleToXY","allowRotation","preRotation","newVelocity","deltaMax","facing","collideWorldBounds","any","wasTouching","blocked","tilePadding","syncBounds","_sx","_sy","updateBounds","asx","asy","check","onFloor","onWall","TilemapCollision","TILE_BIAS","tilemapLayer","getTiles","separateTile","tile","collisionCallback","collisionCallbackContext","faceLeft","faceRight","faceTop","faceBottom","tileCheckX","tileCheckY","collideRight","collideLeft","processTileSeparationX","collideDown","collideUp","processTileSeparationY","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","_boundsLeft","_boundsRight","_boundsTop","_boundsBottom","_boundsOwnGroup","removeBodyNextStep","setImpactEvents","impactHandler","setPostBroadphaseCallback","postBroadphaseHandler","_bodyCallbacks","_bodyCallbackContext","_groupCallbacks","_groupCallbackContext","setCollisionGroup","setWorldMaterial","updateBoundsCollisionGroup","fixedStepTime","impactCallback","createDistanceConstraint","getBody","createGearConstraint","createRevoluteConstraint","createLockConstraint","createPrismaticConstraint","lockRotation","anchorA","anchorB","setMaterial","createMaterial","createContactMaterial","getSprings","getConstraints","filterStatic","physicsPosition","query","toJSON","createCollisionGroup","bitmask","createSpring","worldA","worldB","localA","localB","createRotationalSpring","createBody","addPolygon","createParticle","convertCollisionObjects","map","collision","polyline","clearTilemapLayerBodies","getLayer","convertTilemap","optimize","collides","getTileRight","addRectangle","FixtureList","rawList","namedFixtures","groupedFixtures","allFixtures","setCategory","bit","setter","getFixtures","setMask","setSensor","getFixtureByKey","getGroup","groupID","_ref","_results","callee","PointProxy","collidesWith","removeNextStep","debugBody","_collideWorldBounds","setRectangleFromSprite","createBodyCallback","createGroupCallback","getCollisionMask","updateCollisionMask","clearCollision","clearGroup","clearMask","shapeChanged","impulse","localX","localY","setZeroRotation","setZeroVelocity","setZeroDamping","rotateLeft","rotateRight","moveForward","moveBackward","thrust","moveLeft","moveRight","updateSpriteTransform","resetDamping","resetMass","clearShapes","addCircle","addPlane","addParticle","addLine","addCapsule","setCircle","setRectangle","addPhaserPolygon","createdFixtures","fixtureData","shapesOfFixture","addFixture","generatedShapes","categoryBits","maskBits","isSensor","polygons","loadPolygon","BodyDebug","settings","defaultSettings","pixelsPerLengthUnit","debugPolygons","ppu","lw","vrot","_j","_ref1","randomPastelHex","drawCapsule","drawPlane","drawLine","drawRectangle","drawConvex","drawPath","lastx","lasty","diagMargin","diagSize","maxLength","xd","yd","mix","rgbToHex","ImageCollection","firstgid","imageWidth","imageHeight","imageMargin","imageSpacing","images","containsImageIndex","imageIndex","gid","Tile","flipped","scanned","setCollisionCallback","setCollision","resetCollision","isInteresting","faces","TilemapParser","widthInPixels","heightInPixels","tilesets","imagecollections","tiles","collideIndexes","currentLayer","debugMap","_tempA","NORTH","EAST","SOUTH","WEST","setTileSize","createBlankLayer","addTilesetImage","tileset","tileMargin","tileSpacing","getTilesetIndex","setImage","newSet","Tileset","countX","countY","columns","rows","createFromObjects","CustomClass","adjustY","createFromTiles","replacements","customClass","lh","createLayer","getLayerIndex","TilemapLayer","indexes","getImageIndex","getObjectIndex","setTileIndexCallback","setTileLocationCallback","recalculate","setCollisionByIndex","calculateFaces","setCollisionBetween","setCollisionByExclusion","setPreventRecalculate","preventingRecalculate","needToRecalculate","above","below","getTileAbove","getTileBelow","getTileLeft","setLayer","hasTile","removeTile","removeTileWorldXY","putTile","putTileWorldXY","searchTileIndex","skip","getTile","nonNull","getTileWorldXY","paste","tileblock","tileA","tileB","swapHandler","removeAllLayers","dump","txt","renderSettings","enableScrollDelta","overdrawRatio","copyCanvas","debugSettings","missingImageFill","debuggedTileOverfill","forceFullRedraw","debugAlpha","facingEdgeStroke","collidingTileOverfill","scrollFactorX","scrollFactorY","rayStepRate","_wrap","_mc","renderWidth","renderHeight","_scrollX","_scrollY","ensureSharedCopyCanvas","sharedCopyCanvas","resizeWorld","_fixX","_unfixX","_fixY","_unfixY","getTileX","getTileY","getTileXY","getRayCastTiles","interestingFace","coord","fetchAll","wy","wx","resolveTileset","tileIndex","setIndex","containsTileIndex","resetTilesetCache","setScale","xScale","yScale","shiftCanvas","copyW","copyH","copyContext","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","flippedVal","tileproperties","tileProperties","updateTileData","imagewidth","imageheight","newCollection","polygon","ellipse","sid","drawCoords","coordIndex","setSpacing","rowCount","colCount","emitters","ID","minParticleSpeed","maxParticleSpeed","minParticleScale","maxParticleScale","minRotation","maxRotation","minParticleAlpha","maxParticleAlpha","particleClass","particleDrag","particleAnchor","emitX","emitY","particleBringToTop","particleSendToBack","_minParticleScale","_maxParticleScale","_quantity","_timer","_counter","_flowQuantity","_flowTotal","_explode","emitParticle","makeParticles","particle","rndKey","rndFrame","explode","flow","forceQuantity","setXSpeed","setYSpeed","setRotation","setAlpha","rate","tweenData","onAccess","onError","onTimeout","videoStream","isStreaming","retryLimit","retry","retryInterval","_retryID","_pending","_autoplay","_video","createVideoFromBlob","videoWidth","videoHeight","createVideoFromURL","snapshot","connectToMediaStream","stream","startMediaStream","captureAudio","removeVideoElement","setAttribute","getUserMediaTimeout","getUserMediaSuccess","getUserMediaError","mozSrcObject","createObjectURL","onloadeddata","checkStream","checkVideoProgress","change","playbackRate","setPause","setResume","playHandler","playing","ended","changeSource","grab","hasChildNodes","firstChild","removeAttribute"],"mappings":"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"} \ No newline at end of file diff --git a/build/phaser.min.js b/build/phaser.min.js index 005522920..44f580399 100644 --- a/build/phaser.min.js +++ b/build/phaser.min.js @@ -10,17 +10,17 @@ if(-1!==b)return this.removeChildAt(b)},b.DisplayObjectContainer.prototype.remov }}return b}},c.Circle=function(a,b,d){a=a||0,b=b||0,d=d||0,this.x=a,this.y=b,this._diameter=d,this._radius=0,d>0&&(this._radius=.5*d),this.type=c.CIRCLE},c.Circle.prototype={circumference:function(){return 2*Math.PI*this._radius},random:function(a){void 0===a&&(a=new c.Point);var b=2*Math.PI*Math.random(),d=Math.random()+Math.random(),e=d>1?2-d:d,f=e*Math.cos(b),g=e*Math.sin(b);return a.x=this.x+f*this.radius,a.y=this.y+g*this.radius,a},getBounds:function(){return new c.Rectangle(this.x-this.radius,this.y-this.radius,this.diameter,this.diameter)},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 void 0===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 void 0===d&&(d=!1),void 0===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.Ellipse=function(a,b,d,e){a=a||0,b=b||0,d=d||0,e=e||0,this.x=a,this.y=b,this.width=d,this.height=e,this.type=c.ELLIPSE},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 void 0===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)},random:function(a){void 0===a&&(a=new c.Point);var b=Math.random()*Math.PI*2,d=Math.random();return a.x=Math.sqrt(d)*Math.cos(b),a.y=Math.sqrt(d)*Math.sin(b),a.x=this.x+a.x*this.width/2,a.y=this.y+a.y*this.height/2,a},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},PIXI.Ellipse=c.Ellipse,c.Line=function(a,b,d,e){a=a||0,b=b||0,d=d||0,e=e||0,this.start=new c.Point(a,b),this.end=new c.Point(d,e),this.type=c.LINE},c.Line.prototype={setTo:function(a,b,c,d){return this.start.setTo(a,b),this.end.setTo(c,d),this},fromSprite:function(a,b,c){return void 0===c&&(c=!1),c?this.setTo(a.center.x,a.center.y,b.center.x,b.center.y):this.setTo(a.x,a.y,b.x,b.y)},fromAngle:function(a,b,c,d){return this.start.setTo(a,b),this.end.setTo(a+Math.cos(c)*d,b+Math.sin(c)*d),this},rotate:function(a,b){var c=this.start.x,d=this.start.y;return this.start.rotate(this.end.x,this.end.y,a,b,this.length),this.end.rotate(c,d,a,b,this.length),this},intersects:function(a,b,d){return c.Line.intersectsPoints(this.start,this.end,a.start,a.end,b,d)},reflect:function(a){return c.Line.reflect(this,a)},pointOnLine:function(a,b){return(a-this.start.x)*(this.end.y-this.start.y)===(this.end.x-this.start.x)*(b-this.start.y)},pointOnSegment:function(a,b){var c=Math.min(this.start.x,this.end.x),d=Math.max(this.start.x,this.end.x),e=Math.min(this.start.y,this.end.y),f=Math.max(this.start.y,this.end.y);return this.pointOnLine(a,b)&&a>=c&&d>=a&&b>=e&&f>=b},random:function(a){void 0===a&&(a=new c.Point);var b=Math.random();return a.x=this.start.x+b*(this.end.x-this.start.x),a.y=this.start.y+b*(this.end.y-this.start.y),a},coordinatesOnLine:function(a,b){void 0===a&&(a=1),void 0===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 void 0===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)}}),Object.defineProperty(c.Line.prototype,"normalX",{get:function(){return Math.cos(this.angle-1.5707963267948966)}}),Object.defineProperty(c.Line.prototype,"normalY",{get:function(){return Math.sin(this.angle-1.5707963267948966)}}),Object.defineProperty(c.Line.prototype,"normalAngle",{get:function(){return c.Math.wrap(this.angle-1.5707963267948966,-Math.PI,Math.PI)}}),c.Line.intersectsPoints=function(a,b,d,e,f,g){void 0===f&&(f=!0),void 0===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.Line.reflect=function(a,b){return 2*b.normalAngle-3.141592653589793-a.angle},c.Matrix=function(a,b,d,e,f,g){a=a||1,b=b||0,d=d||0,e=e||1,f=f||0,g=g||0,this.a=a,this.b=b,this.c=d,this.d=e,this.tx=f,this.ty=g,this.type=c.MATRIX},c.Matrix.prototype={fromArray:function(a){return this.setTo(a[0],a[1],a[3],a[4],a[2],a[5])},setTo:function(a,b,c,d,e,f){return this.a=a,this.b=b,this.c=c,this.d=d,this.tx=e,this.ty=f,this},clone:function(a){return void 0===a||null===a?a=new c.Matrix(this.a,this.b,this.c,this.d,this.tx,this.ty):(a.a=this.a,a.b=this.b,a.c=this.c,a.d=this.d,a.tx=this.tx,a.ty=this.ty),a},copyTo:function(a){return a.copyFrom(this),a},copyFrom:function(a){return this.a=a.a,this.b=a.b,this.c=a.c,this.d=a.d,this.tx=a.tx,this.ty=a.ty,this},toArray:function(a,b){return void 0===b&&(b=new PIXI.Float32Array(9)),a?(b[0]=this.a,b[1]=this.b,b[2]=0,b[3]=this.c,b[4]=this.d,b[5]=0,b[6]=this.tx,b[7]=this.ty,b[8]=1):(b[0]=this.a,b[1]=this.c,b[2]=this.tx,b[3]=this.b,b[4]=this.d,b[5]=this.ty,b[6]=0,b[7]=0,b[8]=1),b},apply:function(a,b){return void 0===b&&(b=new c.Point),b.x=this.a*a.x+this.c*a.y+this.tx,b.y=this.b*a.x+this.d*a.y+this.ty,b},applyInverse:function(a,b){void 0===b&&(b=new c.Point);var d=1/(this.a*this.d+this.c*-this.b),e=a.x,f=a.y;return b.x=this.d*d*e+-this.c*d*f+(this.ty*this.c-this.tx*this.d)*d,b.y=this.a*d*f+-this.b*d*e+(-this.ty*this.a+this.tx*this.b)*d,b},translate:function(a,b){return this.tx+=a,this.ty+=b,this},scale:function(a,b){return this.a*=a,this.d*=b,this.c*=a,this.b*=b,this.tx*=a,this.ty*=b,this},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},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},identity:function(){return this.setTo(1,0,0,1,0,0)}},c.identityMatrix=new c.Matrix,PIXI.Matrix=c.Matrix,PIXI.identityMatrix=c.identityMatrix,c.Point=function(a,b){a=a||0,b=b||0,this.x=a,this.y=b,this.type=c.POINT},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 void 0===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 void 0===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)},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 void 0===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 void 0===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 void 0===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 void 0===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.negative=function(a,b){return void 0===b&&(b=new c.Point),b.setTo(-a.x,-a.y)},c.Point.multiplyAdd=function(a,b,d,e){return void 0===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 void 0===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 void 0===b&&(b=new c.Point),b.setTo(-a.y,a.x)},c.Point.rperp=function(a,b){return void 0===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){void 0===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){void 0===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 void 0===b&&(b=new c.Point),b.setTo(-1*a.y,a.x)},c.Point.normalize=function(a,b){void 0===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){void 0===f&&(f=!1),void 0===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.x=b+g*Math.cos(h),a.y=d+g*Math.sin(h),a},c.Point.centroid=function(a,b){if(void 0===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.Polygon=function(){this.area=0,this._points=[],arguments.length>0&&this.setTo.apply(this,arguments),this.closed=!0,this.type=c.POLYGON},c.Polygon.prototype={toNumberArray:function(a){void 0===a&&(a=[]);for(var b=0;b=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,c=0,d=a.length;d>c;c++){if("number"==typeof a[c]){var e=new PIXI.Point(a[c],a[c+1]);c++}else var e=new PIXI.Point(a[c].x,a[c].y);this._points.push(e),e.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.Polygon=c.Polygon,c.Rectangle=function(a,b,d,e){a=a||0,b=b||0,d=d||0,e=e||0,this.x=a,this.y=b,this.width=d,this.height=e,this.type=c.RECTANGLE},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 void 0===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)},ceil:function(){this.x=Math.ceil(this.x),this.y=Math.ceil(this.y)},ceilAll:function(){this.x=Math.ceil(this.x),this.y=Math.ceil(this.y),this.width=Math.ceil(this.width),this.height=Math.ceil(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)},resize:function(a,b){return this.width=a,this.height=b,this},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){return c.Rectangle.intersects(this,a)},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)},random:function(a){return void 0===a&&(a=new c.Point),a.x=this.randomX,a.y=this.randomY,a},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,"bottomLeft",{get:function(){return new c.Point(this.x,this.bottom)},set:function(a){this.x=a.x,this.bottom=a.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 void 0===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 void 0===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 void 0===f&&(f=0),!(b>a.right+f||ca.bottom+f||ed&&(d=a.x),a.xf&&(f=a.y),a.y=c&&a<=c+this.width){var d=this.y;if(b>=d&&b<=d+this.height)return!0}return!1}},c.RoundedRectangle.prototype.constructor=c.RoundedRectangle,PIXI.RoundedRectangle=c.RoundedRectangle,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.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.displayObject=null,this.scale=null,this.totalInView=0,this._targetPosition=new c.Point,this._edge=0,this._position=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={preUpdate:function(){this.totalInView=0},follow:function(a,b){void 0===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),this.target.parent&&this._targetPosition.multiply(this.target.parent.worldTransform.a,this.target.parent.worldTransform.d),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.copyFrom(this.game.world.bounds)},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.Create=function(a){this.game=a,this.bmd=a.make.bitmapData(),this.canvas=this.bmd.canvas,this.ctx=this.bmd.context,this.palettes=[{0:"#000",1:"#9D9D9D",2:"#FFF",3:"#BE2633",4:"#E06F8B",5:"#493C2B",6:"#A46422",7:"#EB8931",8:"#F7E26B",9:"#2F484E",A:"#44891A",B:"#A3CE27",C:"#1B2632",D:"#005784",E:"#31A2F2",F:"#B2DCEF"},{0:"#000",1:"#191028",2:"#46af45",3:"#a1d685",4:"#453e78",5:"#7664fe",6:"#833129",7:"#9ec2e8",8:"#dc534b",9:"#e18d79",A:"#d6b97b",B:"#e9d8a1",C:"#216c4b",D:"#d365c8",E:"#afaab9",F:"#f5f4eb"},{0:"#000",1:"#2234d1",2:"#0c7e45",3:"#44aacc",4:"#8a3622",5:"#5c2e78",6:"#aa5c3d",7:"#b5b5b5",8:"#5e606e",9:"#4c81fb",A:"#6cd947",B:"#7be2f9",C:"#eb8a60",D:"#e23d69",E:"#ffd93f",F:"#fff"},{0:"#000",1:"#fff",2:"#8b4131",3:"#7bbdc5",4:"#8b41ac",5:"#6aac41",6:"#3931a4",7:"#d5de73",8:"#945a20",9:"#5a4100",A:"#bd736a",B:"#525252",C:"#838383",D:"#acee8b",E:"#7b73de",F:"#acacac"},{0:"#000",1:"#191028",2:"#46af45",3:"#a1d685",4:"#453e78",5:"#7664fe",6:"#833129",7:"#9ec2e8",8:"#dc534b",9:"#e18d79",A:"#d6b97b",B:"#e9d8a1",C:"#216c4b",D:"#d365c8",E:"#afaab9",F:"#fff"}]},c.Create.PALETTE_ARNE=0,c.Create.PALETTE_JMP=1,c.Create.PALETTE_CGA=2,c.Create.PALETTE_C64=3,c.Create.PALETTE_JAPANESE_MACHINE=4,c.Create.prototype={texture:function(a,b,c,d,e){void 0===c&&(c=8),void 0===d&&(d=c),void 0===e&&(e=0);var f=b[0].length*c,g=b.length*d;this.bmd.resize(f,g),this.bmd.clear();for(var h=0;hg;g+=e)this.ctx.fillRect(0,g,b,1);for(var h=0;b>h;h+=d)this.ctx.fillRect(h,0,1,c);return this.bmd.generateTexture(a)}},c.Create.prototype.constructor=c.Create,c.State=function(){this.game=null,this.key="",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={init:function(){},preload:function(){},loadUpdate:function(){},loadRender:function(){},create:function(){},update:function(){},preRender:function(){},render:function(){},resize:function(){},paused:function(){},resumed: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.onStateChange=new c.Signal,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),null!==this._pendingState&&"string"!=typeof this._pendingState&&this.add("default",this._pendingState,!0)},add:function(a,b,d){void 0===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.onPreRenderCallback=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){void 0===b&&(b=!0),void 0===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){void 0===a&&(a=!0),void 0===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){var a=this.current;if(this.clearCurrentState(),this.setCurrentState(this._pendingState),this.onStateChange.dispatch(this.current,a),this.current!==this._pendingState)return;this._pendingState=null,this.onPreloadCallback?(this.game.load.reset(!0),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||this.states[a].create||this.states[a].update||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,this.states[a].key=a},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&&this.game.physics.reset(),this.current=a,this._created=!1,this.onInitCallback.apply(this.callbackContext,this._args),a===this._pendingState&&(this._args=[]),this.game._kickstart=!0},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(a){this._created&&this.onPreRenderCallback&&this.onPreRenderCallback.call(this.callbackContext,this.game,a)},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.context.restore()):this.onRenderCallback.call(this.callbackContext,this.game)):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,this.current=""}},c.StateManager.prototype.constructor=c.StateManager,Object.defineProperty(c.StateManager.prototype,"created",{get:function(){return this._created}}),c.Signal=function(){},c.Signal.prototype={_bindings:null,_prevParams:null,memorize:!1,_shouldPropagate:!0,active:!0,_boundDispatch:!0,validateListener:function(a,b){if("function"!=typeof a)throw new Error("Phaser.Signal: listener is a required param of {fn}() and should be a Function.".replace("{fn}",b))},_registerListener:function(a,b,d,e,f){var g,h=this._indexOfListener(a,d);if(-1!==h){if(g=this._bindings[h],g.isOnce()!==b)throw new Error("You cannot add"+(b?"":"Once")+"() then add"+(b?"Once":"")+"() the same listener without removing the relationship first.")}else g=new c.SignalBinding(this,a,b,d,e,f),this._addBinding(g);return this.memorize&&this._prevParams&&g.execute(this._prevParams),g},_addBinding:function(a){this._bindings||(this._bindings=[]);var b=this._bindings.length;do b--;while(this._bindings[b]&&a._priority<=this._bindings[b]._priority);this._bindings.splice(b+1,0,a)},_indexOfListener:function(a,b){if(!this._bindings)return-1;void 0===b&&(b=null);for(var c,d=this._bindings.length;d--;)if(c=this._bindings[d],c._listener===a&&c.context===b)return d;return-1},has:function(a,b){return-1!==this._indexOfListener(a,b)},add:function(a,b,c){this.validateListener(a,"add");var d=[];if(arguments.length>3)for(var e=3;e3)for(var e=3;ea||a>=this.children.length?-1:this.getChildAt(a)},c.Group.prototype.create=function(a,b,c,d,e){void 0===e&&(e=!0);var f=new this.classType(this.game,a,b,c,d);return f.exists=e,f.visible=e,f.alive=e,this.addChild(f),f.z=this.children.length,this.enableBody&&this.game.physics.enable(f,this.physicsBodyType,this.enableBodyDebug),f.events&&f.events.onAddedToGroup$dispatch(f,this),null===this.cursor&&(this.cursor=f),f},c.Group.prototype.createMultiple=function(a,b,c,d){void 0===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 void 0===a&&(a=0),a>this.children.length-1&&(a=0),this.cursor?(this.cursorIndex=a,this.cursor=this.children[this.cursorIndex],this.cursor):void 0},c.Group.prototype.next=function(){return this.cursor?(this.cursorIndex>=this.children.length-1?this.cursorIndex=0:this.cursorIndex++,this.cursor=this.children[this.cursorIndex],this.cursor):void 0},c.Group.prototype.previous=function(){return this.cursor?(0===this.cursorIndex?this.cursorIndex=this.children.length-1:this.cursorIndex--,this.cursor=this.children[this.cursorIndex],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);return-1!==d?(b.parent&&(b.parent instanceof c.Group?b.parent.remove(b):b.parent.removeChild(b)),this.remove(a),this.addAt(b,d),a):void 0},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(void 0===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 void 0===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 void 0===g&&(g=!1),b=b.split("."),void 0===d&&(d=!1),void 0===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){void 0===c&&(c=!1),void 0===d&&(d=!1),void 0===f&&(f=!1),a=a.split("."),e=e||0;for(var g=0;g2){c=[];for(var d=2;d2){e=[];for(var f=2;f2){d=[null];for(var e=2;e2){d=[null];for(var e=2;e2){d=[null];for(var e=2;eb[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;for(var h=0,i=0;i0?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(void 0===b&&(b=!1),void 0===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.removeFromHash(a),this.updateZ(),this.cursor===a&&this.next(),b&&d&&d.destroy(!0),!0},c.Group.prototype.moveAll=function(a,b){if(void 0===b&&(b=!1),this.children.length>0&&a instanceof c.Group){do a.add(this.children[0],b);while(this.children.length>0);this.hash=[],this.cursor=null}return a},c.Group.prototype.removeAll=function(a,b){if(void 0===a&&(a=!1),void 0===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]);this.removeFromHash(c),a&&c&&c.destroy(!0)}while(this.children.length>0);this.hash=[],this.cursor=null}},c.Group.prototype.removeBetween=function(a,b,c,d){if(void 0===b&&(b=this.children.length-1),void 0===c&&(c=!1),void 0===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]);this.removeFromHash(f),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||(void 0===a&&(a=!0),void 0===b&&(b=!1),this.onDestroy.dispatch(this,a,b),this.removeAll(a),this.cursor=null,this.filters=null,this.pendingDestroy=!1,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)}}),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,this.game.state.onStateChange.add(this.stateChange,this) },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.stateChange=function(){this.x=0,this.y=0,this.camera.reset()},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.x=a,this.y=b,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,this.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();(f||g)&&(this.onResize&&this.onResize.call(this.onResizeContext,this,e),this.updateLayout(),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,Object.defineProperty(c.ScaleManager.prototype,"boundingParent",{get:function(){if(this.parentIsWindow||this.isFullScreen&&!this._createdFullScreenTarget)return null;var a=this.game.canvas&&this.game.canvas.parentNode;return a||null}}),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,"isGamePortrait",{get:function(){return this.height>this.width}}),Object.defineProperty(c.ScaleManager.prototype,"isGameLandscape",{get:function(){return this.width>this.height}}),c.Game=function(a,b,d,e,f,g,h,i){return this.id=c.GAMES.push(this)-1,this.config=null,this.physicsConfig=i,this.parent="",this.width=800,this.height=600,this.resolution=1,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.plugins=null,this.rnd=null,this.device=c.Device,this.camera=null,this.canvas=null,this.context=null,this.debug=null,this.particles=null,this.create=null,this.lockRender=!1,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.currentUpdateID=0,this.updatesThisFrame=1,this._deltaTime=0,this._lastCount=0,this._spiraling=0,this._kickstart=!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)),this.device.whenReady(this.boot,this),this},c.Game.prototype={parseConfig:function(a){this.config=a,void 0===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.resolution&&(this.resolution=a.resolution),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||(this.onPause=new c.Signal,this.onResume=new c.Signal,this.onBlur=new c.Signal,this.onFocus=new c.Signal,this.isBooted=!0,this.math=c.Math,this.scale=new c.ScaleManager(this,this._width,this._height),this.stage=new c.Stage(this),this.setUpRenderer(),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.create=new c.Create(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.debug={preUpdate:function(){},update:function(){},reset:function(){}},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._kickstart=!0,window.focus&&(!window.PhaserGlobal||window.PhaserGlobal&&!window.PhaserGlobal.stopFocus)&&window.focus(),this.raf.start())},showDebugHeader:function(){if(!window.PhaserGlobal||!window.PhaserGlobal.hideBanner){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: #9854d8","background: #6c2ca7","color: #ffffff; background: #450f78;","background: #6c2ca7","background: #9854d8","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:this.resolution,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:this.resolution,antialias:this.antialias,preserveDrawingBuffer:this.preserveDrawingBuffer}),this.context=null,this.canvas.addEventListener("webglcontextlost",this.contextLost.bind(this),!1),this.canvas.addEventListener("webglcontextrestored",this.contextRestored.bind(this),!1);this.renderType!==c.HEADLESS&&(this.stage.smoothed=this.antialias,c.Canvas.addToDOM(this.canvas,this.parent,!1),c.Canvas.setTouchAction(this.canvas))},contextLost:function(a){a.preventDefault(),this.renderer.contextLost=!0},contextRestored:function(){this.renderer.initContext(),this.cache.clearGLTextures(),this.renderer.contextLost=!1 -},update:function(a){if(this.time.update(a),this._kickstart)return this.updateLogic(1/this.time.desiredFps),this.stage.updateTransform(),this.updateRender(this.time.slowMotion*this.time.desiredFps),void(this._kickstart=!1);if(this._spiraling>1&&!this.forceSingleUpdate)this.time.time>this._nextFpsNotification&&(this._nextFpsNotification=this.time.time+1e4,this.fpsProblemNotifier.dispatch()),this._deltaTime=0,this._spiraling=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);var c=0;for(this.updatesThisFrame=Math.floor(this._deltaTime/b),this.forceSingleUpdate&&(this.updatesThisFrame=Math.min(1,this.updatesThisFrame));this._deltaTime>=b&&(this._deltaTime-=b,this.currentUpdateID=c,this.updateLogic(1/this.time.desiredFps),this.stage.updateTransform(),c++,!this.forceSingleUpdate||1!==c););c>this._lastCount?this._spiraling++:c=c.Input.MAX_POINTERS)return console.warn("Phaser.Input.addPointer: Maximum limit of "+c.Input.MAX_POINTERS+" pointers reached."),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&&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 a-b},getPointer:function(a){void 0===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._pollCounterthis.game.time.time},justReleased:function(a){return a=a||250,this.isUp&&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,this.altKey=!1,this.shiftKey=!1,this.ctrlKey=!1},destroy:function(){this.onDown.dispose(),this.onUp.dispose(),this.onFloat.dispose(),this.parent=null,this.game=null}},c.DeviceButton.prototype.constructor=c.DeviceButton,Object.defineProperty(c.DeviceButton.prototype,"duration",{get:function(){return this.isUp?-1:this.game.time.time-this.timeDown}}),c.Pointer=function(a,b){this.game=a,this.id=b,this.type=c.POINTER,this.exists=!0,this.identifier=0,this.pointerId=null,this.target=null,this.button=null,this.leftButton=new c.DeviceButton(this,c.Pointer.LEFT_BUTTON),this.middleButton=new c.DeviceButton(this,c.Pointer.MIDDLE_BUTTON),this.rightButton=new c.DeviceButton(this,c.Pointer.RIGHT_BUTTON),this.backButton=new c.DeviceButton(this,c.Pointer.BACK_BUTTON),this.forwardButton=new c.DeviceButton(this,c.Pointer.FORWARD_BUTTON),this.eraserButton=new c.DeviceButton(this,c.Pointer.ERASER_BUTTON),this._holdSent=!1,this._history=[],this._nextDrop=0,this._stateReset=!1,this.withinGame=!1,this.clientX=-1,this.clientY=-1,this.pageX=-1,this.pageY=-1,this.screenX=-1,this.screenY=-1,this.rawMovementX=0,this.rawMovementY=0,this.movementX=0,this.movementY=0,this.x=-1,this.y=-1,this.isMouse=0===b,this.isDown=!1,this.isUp=!0,this.timeDown=0,this.timeUp=0,this.previousTapTime=0,this.totalTouches=0,this.msSinceLastClick=Number.MAX_VALUE,this.targetObject=null,this.active=!1,this.dirty=!1,this.position=new c.Point,this.positionDown=new c.Point,this.positionUp=new c.Point,this.circle=new c.Circle(0,0,44),this._clickTrampolines=null,this._trampolineTargetObject=null},c.Pointer.NO_BUTTON=0,c.Pointer.LEFT_BUTTON=1,c.Pointer.RIGHT_BUTTON=2,c.Pointer.MIDDLE_BUTTON=4,c.Pointer.BACK_BUTTON=8,c.Pointer.FORWARD_BUTTON=16,c.Pointer.ERASER_BUTTON=32,c.Pointer.prototype={resetButtons:function(){this.isDown=!1,this.isUp=!0,this.isMouse&&(this.leftButton.reset(),this.middleButton.reset(),this.rightButton.reset(),this.backButton.reset(),this.forwardButton.reset(),this.eraserButton.reset())},updateButtons:function(a){this.button=a.button;var b=a.buttons;void 0!==b&&(c.Pointer.LEFT_BUTTON&b?this.leftButton.start(a):this.leftButton.stop(a),c.Pointer.RIGHT_BUTTON&b?this.rightButton.start(a):this.rightButton.stop(a),c.Pointer.MIDDLE_BUTTON&b?this.middleButton.start(a):this.middleButton.stop(a),c.Pointer.BACK_BUTTON&b?this.backButton.start(a):this.backButton.stop(a),c.Pointer.FORWARD_BUTTON&b?this.forwardButton.start(a):this.forwardButton.stop(a),c.Pointer.ERASER_BUTTON&b?this.eraserButton.start(a):this.eraserButton.stop(a),a.ctrlKey&&this.leftButton.isDown&&this.rightButton.start(a),this.isUp=!0,this.isDown=!1,(this.leftButton.isDown||this.rightButton.isDown||this.middleButton.isDown||this.backButton.isDown||this.forwardButton.isDown||this.eraserButton.isDown)&&(this.isUp=!1,this.isDown=!0))},start:function(a){return a.pointerId&&(this.pointerId=a.pointerId),this.identifier=a.identifier,this.target=a.target,this.isMouse?this.updateButtons(a):(this.isDown=!0,this.isUp=!1),this._history=[],this.active=!0,this.withinGame=!0,this.dirty=!1,this._clickTrampolines=null,this._trampolineTargetObject=null,this.msSinceLastClick=this.game.time.time-this.timeDown,this.timeDown=this.game.time.time,this._holdSent=!1,this.move(a,!0),this.positionDown.setTo(this.x,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.totalActivePointers)&&(this.game.input.x=this.x,this.game.input.y=this.y,this.game.input.position.setTo(this.x,this.y),this.game.input.onDown.dispatch(this,a),this.game.input.resetSpeed(this.x,this.y)),this._stateReset=!1,this.totalTouches++,null!==this.targetObject&&this.targetObject._touchedHandler(this),this},update:function(){this.active&&(this.dirty&&(this.game.input.interactiveItems.total>0&&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.totalActivePointers)&&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(void 0===b&&(b=!1),void 0!==a.button&&(this.button=a.button),b&&this.updateButtons(a),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.totalActivePointers)&&(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.renderOrderID,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.renderOrderID,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&&this.withinGame?void a.preventDefault():(this.isMouse?this.updateButtons(a):(this.isDown=!1,this.isUp=!0),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.totalActivePointers)&&(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.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&&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;fd;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}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 void 0===c&&(c=!0),0===this.sprite.scale.x||0===this.sprite.scale.y||this.priorityIDa||this.priorityID===a&&this.sprite.renderOrderIDb;b++)if(this._pointerData[b].isOver)return!0}return!1},pointerOut:function(a){if(this.enabled){if(void 0!==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)?(void 0===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)?(void 0===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&&this._pointerData[a.id].isOver){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.snapPoint.set(this.sprite.cameraOffset.x,this.sprite.cameraOffset.y))):(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,this.snapPoint.set(this.sprite.x,this.sprite.y))),this.sprite.events.onDragUpdate.dispatch(this.sprite,a,b,c,this.snapPoint),!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){var b=this.sprite.x,c=this.sprite.y;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 d=this.sprite.getBounds();this.sprite.x=this.globalToLocalX(a.x)+(this.sprite.x-d.centerX),this.sprite.y=this.globalToLocalY(a.y)+(this.sprite.y-d.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.dragStartPoint.set(b,c),this.sprite.events.onDragStart$dispatch(this.sprite,a,b,c)},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){void 0===a&&(a=!0),void 0===b&&(b=!0),this.allowHorizontalDrag=a,this.allowVerticalDrag=b},enableSnap:function(a,b,c,d,e,f){void 0===c&&(c=!0),void 0===d&&(d=!1),void 0===e&&(e=0),void 0===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.leftthis.boundsRect.right&&(this.sprite.x=this.boundsRect.right-(this.sprite.width-this.sprite.offsetX)),this.sprite.topthis.boundsRect.bottom&&(this.sprite.y=this.boundsRect.bottom-(this.sprite.height-this.sprite.offsetY)))},checkBoundsSprite:function(){this.sprite.fixedToCamera&&this.boundsSprite.fixedToCamera?(this.sprite.cameraOffset.xthis.boundsSprite.cameraOffset.x+this.boundsSprite.width&&(this.sprite.cameraOffset.x=this.boundsSprite.cameraOffset.x+this.boundsSprite.width-this.sprite.width),this.sprite.cameraOffset.ythis.boundsSprite.cameraOffset.y+this.boundsSprite.height&&(this.sprite.cameraOffset.y=this.boundsSprite.cameraOffset.y+this.boundsSprite.height-this.sprite.height)):(this.sprite.leftthis.boundsSprite.right&&(this.sprite.x=this.boundsSprite.right-(this.sprite.width-this.sprite.offsetX)),this.sprite.topthis.boundsSprite.bottom&&(this.sprite.y=this.boundsSprite.bottom-(this.sprite.height-this.sprite.offsetY)))}},c.InputHandler.prototype.constructor=c.InputHandler,c.Gamepad=function(a){this.game=a,this._gamepadIndexMap={},this._rawPads=[],this._active=!1,this.enabled=!0,this._gamepadSupportAvailable=!!navigator.webkitGetGamepads||!!navigator.webkitGamepads||-1!=navigator.userAgent.indexOf("Firefox/")||!!navigator.getGamepads,this._prevRawGamepadTypes=[],this._prevTimestamps=[],this.callbackContext=this,this.onConnectCallback=null,this.onDisconnectCallback=null,this.onDownCallback=null,this.onUpCallback=null,this.onAxisCallback=null,this.onFloatCallback=null,this._ongamepadconnected=null,this._gamepaddisconnected=null,this._gamepads=[new c.SinglePad(a,this),new c.SinglePad(a,this),new c.SinglePad(a,this),new c.SinglePad(a,this)]},c.Gamepad.prototype={addCallbacks:function(a,b){"undefined"!=typeof b&&(this.onConnectCallback="function"==typeof b.onConnect?b.onConnect:this.onConnectCallback,this.onDisconnectCallback="function"==typeof b.onDisconnect?b.onDisconnect:this.onDisconnectCallback,this.onDownCallback="function"==typeof b.onDown?b.onDown:this.onDownCallback,this.onUpCallback="function"==typeof b.onUp?b.onUp:this.onUpCallback,this.onAxisCallback="function"==typeof b.onAxis?b.onAxis:this.onAxisCallback,this.onFloatCallback="function"==typeof b.onFloat?b.onFloat:this.onFloatCallback,this.callbackContext=a)},start:function(){if(!this._active){this._active=!0;var a=this;this._onGamepadConnected=function(b){return a.onGamepadConnected(b)},this._onGamepadDisconnected=function(b){return a.onGamepadDisconnected(b)},window.addEventListener("gamepadconnected",this._onGamepadConnected,!1),window.addEventListener("gamepaddisconnected",this._onGamepadDisconnected,!1)}},onGamepadConnected:function(a){var b=a.gamepad;this._rawPads.push(b),this._gamepads[b.index].connect(b)},onGamepadDisconnected:function(a){var b=a.gamepad;for(var c in this._rawPads)this._rawPads[c].index===b.index&&this._rawPads.splice(c,1);this._gamepads[b.index].disconnect()},update:function(){this._pollGamepads(),this.pad1.pollStatus(),this.pad2.pollStatus(),this.pad3.pollStatus(),this.pad4.pollStatus()},_pollGamepads:function(){if(navigator.getGamepads)var a=navigator.getGamepads();else if(navigator.webkitGetGamepads)var a=navigator.webkitGetGamepads();else if(navigator.webkitGamepads)var a=navigator.webkitGamepads();if(a){this._rawPads=[];for(var b=!1,c=0;c0&&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.maxHealth&&(this.health=this.maxHealth)),this}},c.Component.InCamera=function(){},c.Component.InCamera.prototype={inCamera:{get:function(){return this.game.world.camera.view.intersects(this._bounds)}}},c.Component.InputEnabled=function(){},c.Component.InputEnabled.prototype={input:null,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()}}},c.Component.InWorld=function(){},c.Component.InWorld.preUpdate=function(){if((this.autoCull||this.checkWorldBounds)&&(this._bounds.copyFrom(this.getBounds()),this._bounds.x+=this.game.camera.view.x,this._bounds.y+=this.game.camera.view.y,this.autoCull&&(this.game.world.camera.view.intersects(this._bounds)?(this.renderable=!0,this.game.world.camera.totalInView++):this.renderable=!1),this.checkWorldBounds))if(this._outOfBoundsFired&&this.game.world.bounds.intersects(this._bounds))this._outOfBoundsFired=!1,this.events.onEnterBounds$dispatch(this);else if(!this._outOfBoundsFired&&!this.game.world.bounds.intersects(this._bounds)&&(this._outOfBoundsFired=!0,this.events.onOutOfBounds$dispatch(this),this.outOfBoundsKill))return this.kill(),!1;return!0},c.Component.InWorld.prototype={checkWorldBounds:!1,outOfBoundsKill:!1,_outOfBoundsFired:!1,inWorld:{get:function(){return this.game.world.bounds.intersects(this.getBounds())}}},c.Component.LifeSpan=function(){},c.Component.LifeSpan.preUpdate=function(){return this.lifespan>0&&(this.lifespan-=this.game.time.physicsElapsedMS,this.lifespan<=0)?(this.kill(),!1):!0},c.Component.LifeSpan.prototype={alive:!0,lifespan:0,revive:function(a){return void 0===a&&(a=1),this.alive=!0,this.exists=!0,this.visible=!0,"number"==typeof this.health&&(this.health=a),this.events&&this.events.onRevived$dispatch(this),this},kill:function(){return this.alive=!1,this.exists=!1,this.visible=!1,this.events&&this.events.onKilled$dispatch(this),this}},c.Component.LoadTexture=function(){},c.Component.LoadTexture.prototype={customRender:!1,_frame:null,loadTexture:function(a,b,d){b=b||0,(d||void 0===d)&&this.animations&&this.animations.stop(),this.key=a,this.customRender=!1;var e=this.game.cache,f=!0,g=!this.texture.baseTexture.scaleMode;if(c.RenderTexture&&a instanceof c.RenderTexture)this.key=a.key,this.setTexture(a);else if(c.BitmapData&&a instanceof c.BitmapData)this.customRender=!0,this.setTexture(a.texture),e.hasFrameData(a.key,c.Cache.BITMAPDATA)&&(f=!this.animations.loadFrameData(e.getFrameData(a.key,c.Cache.BITMAPDATA),b));else if(c.Video&&a instanceof c.Video){this.customRender=!0;var h=a.texture.valid;this.setTexture(a.texture),this.setFrame(a.texture.frame.clone()),a.onChangeSource.add(this.resizeFrame,this),this.texture.valid=h}else if(a instanceof PIXI.Texture)this.setTexture(a);else{var i=e.getImage(a,!0);this.key=i.key,this.setTexture(new PIXI.Texture(i.base)),f=!this.animations.loadFrameData(i.frameData,b)}f&&(this._frame=c.Rectangle.clone(this.texture.frame)),g||(this.texture.baseTexture.scaleMode=1)},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.requiresReTint=!0,this.texture._updateUvs(),this.tilingTexture&&(this.refreshTexture=!0)},resizeFrame:function(a,b,c){this.texture.frame.resize(b,c),this.texture.setFrame(this.texture.frame)},resetFrame:function(){this._frame&&this.setFrame(this._frame)},frame:{get:function(){return this.animations.frame},set:function(a){this.animations.frame=a}},frameName:{get:function(){return this.animations.frameName},set:function(a){this.animations.frameName=a}}},c.Component.Overlap=function(){},c.Component.Overlap.prototype={overlap:function(a){return c.Rectangle.intersects(this.getBounds(),a.getBounds())}},c.Component.PhysicsBody=function(){},c.Component.PhysicsBody.preUpdate=function(){return this.fresh&&this.exists?(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.previousPosition.set(this.world.x,this.world.y),this.previousRotation=this.rotation,this.body&&this.body.preUpdate(),this.fresh=!1,!1):(this.previousPosition.set(this.world.x,this.world.y),this.previousRotation=this.rotation,this._exists&&this.parent.exists?!0:(this.renderOrderID=-1,!1))},c.Component.PhysicsBody.postUpdate=function(){this.exists&&this.body&&this.body.postUpdate()},c.Component.PhysicsBody.prototype={body:null,x:{get:function(){return this.position.x},set:function(a){this.position.x=a,this.body&&!this.body.dirty&&(this.body._reset=!0)}},y:{get:function(){return this.position.y},set:function(a){this.position.y=a,this.body&&!this.body.dirty&&(this.body._reset=!0)}}},c.Component.Reset=function(){},c.Component.Reset.prototype.reset=function(a,b,c){return void 0===c&&(c=1),this.world.set(a,b),this.position.set(a,b),this.fresh=!0,this.exists=!0,this.visible=!0,this.renderable=!0,this.components.InWorld&&(this._outOfBoundsFired=!1),this.components.LifeSpan&&(this.alive=!0,this.health=c),this.components.PhysicsBody&&this.body&&this.body.reset(a,b,!1,!1),this},c.Component.ScaleMinMax=function(){},c.Component.ScaleMinMax.prototype={transformCallback:this.checkTransform,transformCallbackContext:this,scaleMin:null,scaleMax:null,checkTransform:function(a){this.scaleMin&&(a.athis.scaleMax.x&&(a.a=this.scaleMax.x),a.d>this.scaleMax.y&&(a.d=this.scaleMax.y))},setScaleMinMax:function(a,b,d,e){void 0===b?b=d=e=a:void 0===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)}},c.Component.Smoothed=function(){},c.Component.Smoothed.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)}}},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 void 0===f&&(f=this.world),f.add(new c.Image(this.game,a,b,d,e))},sprite:function(a,b,c,d,e){return void 0===e&&(e=this.world),e.create(a,b,c,d)},creature:function(a,b,d,e,f){void 0===f&&(f=this.world);var g=new c.Creature(this.game,a,b,d,e);return f.add(g),g},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 void 0===a&&(a=null),void 0===b&&(b="group"),void 0===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 void 0===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 void 0===g&&(g=this.world),g.add(new c.Rope(this.game,a,b,d,e,f))},text:function(a,b,d,e,f){return void 0===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 void 0===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 void 0===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 void 0===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){(void 0===d||""===d)&&(d=this.game.rnd.uuid()),void 0===e&&(e=!1);var f=new c.RenderTexture(this.game,a,b,d);return e&&this.game.cache.addRenderTexture(d,f),f},video:function(a,b){return new c.Video(this.game,a,b)},bitmapData:function(a,b,d,e){void 0===e&&(e=!1),(void 0===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,this.game.tweens)},group:function(a,b,d,e,f){return new c.Group(this.game,a,b,d,e,f)},spriteBatch:function(a,b,d){return void 0===b&&(b="group"),void 0===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,g){return new c.BitmapText(this.game,a,b,d,e,f,g)},tilemap:function(a,b,d,e,f){return new c.Tilemap(this.game,a,b,d,e,f)},renderTexture:function(a,b,d,e){(void 0===d||""===d)&&(d=this.game.rnd.uuid()),void 0===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){void 0===e&&(e=!1),(void 0===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.Sprite=function(a,b,d,e,f){b=b||0,d=d||0,e=e||null,f=f||null,this.type=c.SPRITE,this.physicsType=c.SPRITE,PIXI.Sprite.call(this,PIXI.TextureCache.__default),c.Component.Core.init.call(this,a,b,d,e,f)},c.Sprite.prototype=Object.create(PIXI.Sprite.prototype),c.Sprite.prototype.constructor=c.Sprite,c.Component.Core.install.call(c.Sprite.prototype,["Angle","Animation","AutoCull","Bounds","BringToTop","Crop","Delta","Destroy","FixedToCamera","Health","InCamera","InputEnabled","InWorld","LifeSpan","LoadTexture","Overlap","PhysicsBody","Reset","ScaleMinMax","Smoothed"]),c.Sprite.prototype.preUpdatePhysics=c.Component.PhysicsBody.preUpdate,c.Sprite.prototype.preUpdateLifeSpan=c.Component.LifeSpan.preUpdate,c.Sprite.prototype.preUpdateInWorld=c.Component.InWorld.preUpdate,c.Sprite.prototype.preUpdateCore=c.Component.Core.preUpdate,c.Sprite.prototype.preUpdate=function(){return this.preUpdatePhysics()&&this.preUpdateLifeSpan()&&this.preUpdateInWorld()?this.preUpdateCore():!1},c.Image=function(a,b,d,e,f){b=b||0,d=d||0,e=e||null,f=f||null,this.type=c.IMAGE,PIXI.Sprite.call(this,PIXI.TextureCache.__default),c.Component.Core.init.call(this,a,b,d,e,f)},c.Image.prototype=Object.create(PIXI.Sprite.prototype),c.Image.prototype.constructor=c.Image,c.Component.Core.install.call(c.Image.prototype,["Angle","Animation","AutoCull","Bounds","BringToTop","Crop","Destroy","FixedToCamera","InputEnabled","LifeSpan","LoadTexture","Overlap","Reset","Smoothed"]),c.Image.prototype.preUpdateInWorld=c.Component.InWorld.preUpdate,c.Image.prototype.preUpdateCore=c.Component.Core.preUpdate,c.Image.prototype.preUpdate=function(){return this.preUpdateInWorld()?this.preUpdateCore():!1},c.TileSprite=function(a,b,d,e,f,g,h){b=b||0,d=d||0,e=e||256,f=f||256,g=g||null,h=h||null,this.type=c.TILESPRITE,this.physicsType=c.SPRITE,this._scroll=new c.Point;var i=a.cache.getImage("__default",!0);PIXI.TilingSprite.call(this,new PIXI.Texture(i.base),e,f),c.Component.Core.init.call(this,a,b,d,g,h)},c.TileSprite.prototype=Object.create(PIXI.TilingSprite.prototype),c.TileSprite.prototype.constructor=c.TileSprite,c.Component.Core.install.call(c.TileSprite.prototype,["Angle","Animation","AutoCull","Bounds","BringToTop","Destroy","FixedToCamera","Health","InCamera","InputEnabled","InWorld","LifeSpan","LoadTexture","Overlap","PhysicsBody","Reset","Smoothed"]),c.TileSprite.prototype.preUpdatePhysics=c.Component.PhysicsBody.preUpdate,c.TileSprite.prototype.preUpdateLifeSpan=c.Component.LifeSpan.preUpdate,c.TileSprite.prototype.preUpdateInWorld=c.Component.InWorld.preUpdate,c.TileSprite.prototype.preUpdateCore=c.Component.Core.preUpdate,c.TileSprite.prototype.preUpdate=function(){return 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.preUpdatePhysics()&&this.preUpdateLifeSpan()&&this.preUpdateInWorld()?this.preUpdateCore():!1},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.destroy=function(a){c.Component.Destroy.prototype.destroy.call(this,a),PIXI.TilingSprite.prototype.destroy.call(this)},c.TileSprite.prototype.reset=function(a,b){return c.Component.Reset.prototype.reset.call(this,a,b),this.tilePosition.x=0,this.tilePosition.y=0,this},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.type=c.ROPE,this._scroll=new c.Point,PIXI.Rope.call(this,PIXI.TextureCache.__default,this.points),c.Component.Core.init.call(this,a,b,d,e,f)},c.Rope.prototype=Object.create(PIXI.Rope.prototype),c.Rope.prototype.constructor=c.Rope,c.Component.Core.install.call(c.Rope.prototype,["Angle","Animation","AutoCull","Bounds","BringToTop","Crop","Delta","Destroy","FixedToCamera","InputEnabled","InWorld","LifeSpan","LoadTexture","Overlap","PhysicsBody","Reset","ScaleMinMax","Smoothed"]),c.Rope.prototype.preUpdatePhysics=c.Component.PhysicsBody.preUpdate,c.Rope.prototype.preUpdateLifeSpan=c.Component.LifeSpan.preUpdate,c.Rope.prototype.preUpdateInWorld=c.Component.InWorld.preUpdate,c.Rope.prototype.preUpdateCore=c.Component.Core.preUpdate,c.Rope.prototype.preUpdate=function(){return 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.preUpdatePhysics()&&this.preUpdateLifeSpan()&&this.preUpdateInWorld()?this.preUpdateCore():!1},c.Rope.prototype.update=function(){this._hasUpdateAnimation&&this.updateAnimation.call(this)},c.Rope.prototype.reset=function(a,b){return c.Component.Reset.prototype.reset.call(this,a,b),this.tilePosition.x=0,this.tilePosition.y=0,this},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;k1&&!this.forceSingleUpdate)this.time.time>this._nextFpsNotification&&(this._nextFpsNotification=this.time.time+1e4,this.fpsProblemNotifier.dispatch()),this._deltaTime=0,this._spiraling=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);var c=0;for(this.updatesThisFrame=Math.floor(this._deltaTime/b),this.forceSingleUpdate&&(this.updatesThisFrame=Math.min(1,this.updatesThisFrame));this._deltaTime>=b&&(this._deltaTime-=b,this.currentUpdateID=c,this.updateLogic(1/this.time.desiredFps),this.stage.updateTransform(),c++,!this.forceSingleUpdate||1!==c););c>this._lastCount?this._spiraling++:c=c.Input.MAX_POINTERS)return console.warn("Phaser.Input.addPointer: Maximum limit of "+c.Input.MAX_POINTERS+" pointers reached."),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&&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 a-b},getPointer:function(a){void 0===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._pollCounterthis.game.time.time},justReleased:function(a){return a=a||250,this.isUp&&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,this.altKey=!1,this.shiftKey=!1,this.ctrlKey=!1},destroy:function(){this.onDown.dispose(),this.onUp.dispose(),this.onFloat.dispose(),this.parent=null,this.game=null}},c.DeviceButton.prototype.constructor=c.DeviceButton,Object.defineProperty(c.DeviceButton.prototype,"duration",{get:function(){return this.isUp?-1:this.game.time.time-this.timeDown}}),c.Pointer=function(a,b){this.game=a,this.id=b,this.type=c.POINTER,this.exists=!0,this.identifier=0,this.pointerId=null,this.target=null,this.button=null,this.leftButton=new c.DeviceButton(this,c.Pointer.LEFT_BUTTON),this.middleButton=new c.DeviceButton(this,c.Pointer.MIDDLE_BUTTON),this.rightButton=new c.DeviceButton(this,c.Pointer.RIGHT_BUTTON),this.backButton=new c.DeviceButton(this,c.Pointer.BACK_BUTTON),this.forwardButton=new c.DeviceButton(this,c.Pointer.FORWARD_BUTTON),this.eraserButton=new c.DeviceButton(this,c.Pointer.ERASER_BUTTON),this._holdSent=!1,this._history=[],this._nextDrop=0,this._stateReset=!1,this.withinGame=!1,this.clientX=-1,this.clientY=-1,this.pageX=-1,this.pageY=-1,this.screenX=-1,this.screenY=-1,this.rawMovementX=0,this.rawMovementY=0,this.movementX=0,this.movementY=0,this.x=-1,this.y=-1,this.isMouse=0===b,this.isDown=!1,this.isUp=!0,this.timeDown=0,this.timeUp=0,this.previousTapTime=0,this.totalTouches=0,this.msSinceLastClick=Number.MAX_VALUE,this.targetObject=null,this.active=!1,this.dirty=!1,this.position=new c.Point,this.positionDown=new c.Point,this.positionUp=new c.Point,this.circle=new c.Circle(0,0,44),this._clickTrampolines=null,this._trampolineTargetObject=null},c.Pointer.NO_BUTTON=0,c.Pointer.LEFT_BUTTON=1,c.Pointer.RIGHT_BUTTON=2,c.Pointer.MIDDLE_BUTTON=4,c.Pointer.BACK_BUTTON=8,c.Pointer.FORWARD_BUTTON=16,c.Pointer.ERASER_BUTTON=32,c.Pointer.prototype={resetButtons:function(){this.isDown=!1,this.isUp=!0,this.isMouse&&(this.leftButton.reset(),this.middleButton.reset(),this.rightButton.reset(),this.backButton.reset(),this.forwardButton.reset(),this.eraserButton.reset())},updateButtons:function(a){this.button=a.button;var b=a.buttons;void 0!==b?(c.Pointer.LEFT_BUTTON&b?this.leftButton.start(a):this.leftButton.stop(a),c.Pointer.RIGHT_BUTTON&b?this.rightButton.start(a):this.rightButton.stop(a),c.Pointer.MIDDLE_BUTTON&b?this.middleButton.start(a):this.middleButton.stop(a),c.Pointer.BACK_BUTTON&b?this.backButton.start(a):this.backButton.stop(a),c.Pointer.FORWARD_BUTTON&b?this.forwardButton.start(a):this.forwardButton.stop(a),c.Pointer.ERASER_BUTTON&b?this.eraserButton.start(a):this.eraserButton.stop(a)):"mousedown"===a.type?this.leftButton.start(a):(this.leftButton.stop(a),this.rightButton.stop(a)),a.ctrlKey&&this.leftButton.isDown&&this.rightButton.start(a),this.isUp=!0,this.isDown=!1,(this.leftButton.isDown||this.rightButton.isDown||this.middleButton.isDown||this.backButton.isDown||this.forwardButton.isDown||this.eraserButton.isDown)&&(this.isUp=!1,this.isDown=!0)},start:function(a){return a.pointerId&&(this.pointerId=a.pointerId),this.identifier=a.identifier,this.target=a.target,this.isMouse?this.updateButtons(a):(this.isDown=!0,this.isUp=!1),this._history=[],this.active=!0,this.withinGame=!0,this.dirty=!1,this._clickTrampolines=null,this._trampolineTargetObject=null,this.msSinceLastClick=this.game.time.time-this.timeDown,this.timeDown=this.game.time.time,this._holdSent=!1,this.move(a,!0),this.positionDown.setTo(this.x,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.totalActivePointers)&&(this.game.input.x=this.x,this.game.input.y=this.y,this.game.input.position.setTo(this.x,this.y),this.game.input.onDown.dispatch(this,a),this.game.input.resetSpeed(this.x,this.y)),this._stateReset=!1,this.totalTouches++,null!==this.targetObject&&this.targetObject._touchedHandler(this),this},update:function(){this.active&&(this.dirty&&(this.game.input.interactiveItems.total>0&&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.totalActivePointers)&&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(void 0===b&&(b=!1),void 0!==a.button&&(this.button=a.button),b&&this.updateButtons(a),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.totalActivePointers)&&(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.renderOrderID,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.renderOrderID,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&&this.withinGame?void a.preventDefault():(this.isMouse?this.updateButtons(a):(this.isDown=!1,this.isUp=!0),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.totalActivePointers)&&(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.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&&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;fd;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}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 void 0===c&&(c=!0),0===this.sprite.scale.x||0===this.sprite.scale.y||this.priorityIDa||this.priorityID===a&&this.sprite.renderOrderIDb;b++)if(this._pointerData[b].isOver)return!0}return!1},pointerOut:function(a){if(this.enabled){if(void 0!==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)?(void 0===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)?(void 0===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&&this._pointerData[a.id].isOver){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.snapPoint.set(this.sprite.cameraOffset.x,this.sprite.cameraOffset.y))):(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,this.snapPoint.set(this.sprite.x,this.sprite.y))),this.sprite.events.onDragUpdate.dispatch(this.sprite,a,b,c,this.snapPoint),!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){var b=this.sprite.x,c=this.sprite.y;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 d=this.sprite.getBounds();this.sprite.x=this.globalToLocalX(a.x)+(this.sprite.x-d.centerX),this.sprite.y=this.globalToLocalY(a.y)+(this.sprite.y-d.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.dragStartPoint.set(b,c),this.sprite.events.onDragStart$dispatch(this.sprite,a,b,c)},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){void 0===a&&(a=!0),void 0===b&&(b=!0),this.allowHorizontalDrag=a,this.allowVerticalDrag=b},enableSnap:function(a,b,c,d,e,f){void 0===c&&(c=!0),void 0===d&&(d=!1),void 0===e&&(e=0),void 0===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.leftthis.boundsRect.right&&(this.sprite.x=this.boundsRect.right-(this.sprite.width-this.sprite.offsetX)),this.sprite.topthis.boundsRect.bottom&&(this.sprite.y=this.boundsRect.bottom-(this.sprite.height-this.sprite.offsetY)))},checkBoundsSprite:function(){this.sprite.fixedToCamera&&this.boundsSprite.fixedToCamera?(this.sprite.cameraOffset.xthis.boundsSprite.cameraOffset.x+this.boundsSprite.width&&(this.sprite.cameraOffset.x=this.boundsSprite.cameraOffset.x+this.boundsSprite.width-this.sprite.width),this.sprite.cameraOffset.ythis.boundsSprite.cameraOffset.y+this.boundsSprite.height&&(this.sprite.cameraOffset.y=this.boundsSprite.cameraOffset.y+this.boundsSprite.height-this.sprite.height)):(this.sprite.leftthis.boundsSprite.right&&(this.sprite.x=this.boundsSprite.right-(this.sprite.width-this.sprite.offsetX)),this.sprite.topthis.boundsSprite.bottom&&(this.sprite.y=this.boundsSprite.bottom-(this.sprite.height-this.sprite.offsetY)))}},c.InputHandler.prototype.constructor=c.InputHandler,c.Gamepad=function(a){this.game=a,this._gamepadIndexMap={},this._rawPads=[],this._active=!1,this.enabled=!0,this._gamepadSupportAvailable=!!navigator.webkitGetGamepads||!!navigator.webkitGamepads||-1!=navigator.userAgent.indexOf("Firefox/")||!!navigator.getGamepads,this._prevRawGamepadTypes=[],this._prevTimestamps=[],this.callbackContext=this,this.onConnectCallback=null,this.onDisconnectCallback=null,this.onDownCallback=null,this.onUpCallback=null,this.onAxisCallback=null,this.onFloatCallback=null,this._ongamepadconnected=null,this._gamepaddisconnected=null,this._gamepads=[new c.SinglePad(a,this),new c.SinglePad(a,this),new c.SinglePad(a,this),new c.SinglePad(a,this)]},c.Gamepad.prototype={addCallbacks:function(a,b){"undefined"!=typeof b&&(this.onConnectCallback="function"==typeof b.onConnect?b.onConnect:this.onConnectCallback,this.onDisconnectCallback="function"==typeof b.onDisconnect?b.onDisconnect:this.onDisconnectCallback,this.onDownCallback="function"==typeof b.onDown?b.onDown:this.onDownCallback,this.onUpCallback="function"==typeof b.onUp?b.onUp:this.onUpCallback,this.onAxisCallback="function"==typeof b.onAxis?b.onAxis:this.onAxisCallback,this.onFloatCallback="function"==typeof b.onFloat?b.onFloat:this.onFloatCallback,this.callbackContext=a)},start:function(){if(!this._active){this._active=!0;var a=this;this._onGamepadConnected=function(b){return a.onGamepadConnected(b)},this._onGamepadDisconnected=function(b){return a.onGamepadDisconnected(b)},window.addEventListener("gamepadconnected",this._onGamepadConnected,!1),window.addEventListener("gamepaddisconnected",this._onGamepadDisconnected,!1)}},onGamepadConnected:function(a){var b=a.gamepad;this._rawPads.push(b),this._gamepads[b.index].connect(b)},onGamepadDisconnected:function(a){var b=a.gamepad;for(var c in this._rawPads)this._rawPads[c].index===b.index&&this._rawPads.splice(c,1);this._gamepads[b.index].disconnect()},update:function(){this._pollGamepads(),this.pad1.pollStatus(),this.pad2.pollStatus(),this.pad3.pollStatus(),this.pad4.pollStatus()},_pollGamepads:function(){if(navigator.getGamepads)var a=navigator.getGamepads();else if(navigator.webkitGetGamepads)var a=navigator.webkitGetGamepads();else if(navigator.webkitGamepads)var a=navigator.webkitGamepads();if(a){this._rawPads=[];for(var b=!1,c=0;c0&&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.maxHealth&&(this.health=this.maxHealth)),this}},c.Component.InCamera=function(){},c.Component.InCamera.prototype={inCamera:{get:function(){return this.game.world.camera.view.intersects(this._bounds)}}},c.Component.InputEnabled=function(){},c.Component.InputEnabled.prototype={input:null,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()}}},c.Component.InWorld=function(){},c.Component.InWorld.preUpdate=function(){if((this.autoCull||this.checkWorldBounds)&&(this._bounds.copyFrom(this.getBounds()),this._bounds.x+=this.game.camera.view.x,this._bounds.y+=this.game.camera.view.y,this.autoCull&&(this.game.world.camera.view.intersects(this._bounds)?(this.renderable=!0,this.game.world.camera.totalInView++):this.renderable=!1),this.checkWorldBounds))if(this._outOfBoundsFired&&this.game.world.bounds.intersects(this._bounds))this._outOfBoundsFired=!1,this.events.onEnterBounds$dispatch(this);else if(!this._outOfBoundsFired&&!this.game.world.bounds.intersects(this._bounds)&&(this._outOfBoundsFired=!0,this.events.onOutOfBounds$dispatch(this),this.outOfBoundsKill))return this.kill(),!1;return!0},c.Component.InWorld.prototype={checkWorldBounds:!1,outOfBoundsKill:!1,_outOfBoundsFired:!1,inWorld:{get:function(){return this.game.world.bounds.intersects(this.getBounds())}}},c.Component.LifeSpan=function(){},c.Component.LifeSpan.preUpdate=function(){return this.lifespan>0&&(this.lifespan-=this.game.time.physicsElapsedMS,this.lifespan<=0)?(this.kill(),!1):!0},c.Component.LifeSpan.prototype={alive:!0,lifespan:0,revive:function(a){return void 0===a&&(a=1),this.alive=!0,this.exists=!0,this.visible=!0,"number"==typeof this.health&&(this.health=a),this.events&&this.events.onRevived$dispatch(this),this},kill:function(){return this.alive=!1,this.exists=!1,this.visible=!1,this.events&&this.events.onKilled$dispatch(this),this}},c.Component.LoadTexture=function(){},c.Component.LoadTexture.prototype={customRender:!1,_frame:null,loadTexture:function(a,b,d){b=b||0,(d||void 0===d)&&this.animations&&this.animations.stop(),this.key=a,this.customRender=!1;var e=this.game.cache,f=!0,g=!this.texture.baseTexture.scaleMode;if(c.RenderTexture&&a instanceof c.RenderTexture)this.key=a.key,this.setTexture(a);else if(c.BitmapData&&a instanceof c.BitmapData)this.customRender=!0,this.setTexture(a.texture),e.hasFrameData(a.key,c.Cache.BITMAPDATA)&&(f=!this.animations.loadFrameData(e.getFrameData(a.key,c.Cache.BITMAPDATA),b));else if(c.Video&&a instanceof c.Video){this.customRender=!0;var h=a.texture.valid;this.setTexture(a.texture),this.setFrame(a.texture.frame.clone()),a.onChangeSource.add(this.resizeFrame,this),this.texture.valid=h}else if(a instanceof PIXI.Texture)this.setTexture(a);else{var i=e.getImage(a,!0);this.key=i.key,this.setTexture(new PIXI.Texture(i.base)),f=!this.animations.loadFrameData(i.frameData,b)}f&&(this._frame=c.Rectangle.clone(this.texture.frame)),g||(this.texture.baseTexture.scaleMode=1)},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.requiresReTint=!0,this.texture._updateUvs(),this.tilingTexture&&(this.refreshTexture=!0)},resizeFrame:function(a,b,c){this.texture.frame.resize(b,c),this.texture.setFrame(this.texture.frame)},resetFrame:function(){this._frame&&this.setFrame(this._frame)},frame:{get:function(){return this.animations.frame},set:function(a){this.animations.frame=a}},frameName:{get:function(){return this.animations.frameName},set:function(a){this.animations.frameName=a}}},c.Component.Overlap=function(){},c.Component.Overlap.prototype={overlap:function(a){return c.Rectangle.intersects(this.getBounds(),a.getBounds())}},c.Component.PhysicsBody=function(){},c.Component.PhysicsBody.preUpdate=function(){return this.fresh&&this.exists?(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.previousPosition.set(this.world.x,this.world.y),this.previousRotation=this.rotation,this.body&&this.body.preUpdate(),this.fresh=!1,!1):(this.previousPosition.set(this.world.x,this.world.y),this.previousRotation=this.rotation,this._exists&&this.parent.exists?!0:(this.renderOrderID=-1,!1))},c.Component.PhysicsBody.postUpdate=function(){this.exists&&this.body&&this.body.postUpdate()},c.Component.PhysicsBody.prototype={body:null,x:{get:function(){return this.position.x},set:function(a){this.position.x=a,this.body&&!this.body.dirty&&(this.body._reset=!0)}},y:{get:function(){return this.position.y},set:function(a){this.position.y=a,this.body&&!this.body.dirty&&(this.body._reset=!0)}}},c.Component.Reset=function(){},c.Component.Reset.prototype.reset=function(a,b,c){return void 0===c&&(c=1),this.world.set(a,b),this.position.set(a,b),this.fresh=!0,this.exists=!0,this.visible=!0,this.renderable=!0,this.components.InWorld&&(this._outOfBoundsFired=!1),this.components.LifeSpan&&(this.alive=!0,this.health=c),this.components.PhysicsBody&&this.body&&this.body.reset(a,b,!1,!1),this},c.Component.ScaleMinMax=function(){},c.Component.ScaleMinMax.prototype={transformCallback:this.checkTransform,transformCallbackContext:this,scaleMin:null,scaleMax:null,checkTransform:function(a){this.scaleMin&&(a.athis.scaleMax.x&&(a.a=this.scaleMax.x),a.d>this.scaleMax.y&&(a.d=this.scaleMax.y))},setScaleMinMax:function(a,b,d,e){void 0===b?b=d=e=a:void 0===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)}},c.Component.Smoothed=function(){},c.Component.Smoothed.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)}}},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 void 0===f&&(f=this.world),f.add(new c.Image(this.game,a,b,d,e))},sprite:function(a,b,c,d,e){return void 0===e&&(e=this.world),e.create(a,b,c,d)},creature:function(a,b,d,e,f){void 0===f&&(f=this.world);var g=new c.Creature(this.game,a,b,d,e);return f.add(g),g},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 void 0===a&&(a=null),void 0===b&&(b="group"),void 0===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 void 0===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 void 0===g&&(g=this.world),g.add(new c.Rope(this.game,a,b,d,e,f))},text:function(a,b,d,e,f){return void 0===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 void 0===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 void 0===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 void 0===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){(void 0===d||""===d)&&(d=this.game.rnd.uuid()),void 0===e&&(e=!1);var f=new c.RenderTexture(this.game,a,b,d);return e&&this.game.cache.addRenderTexture(d,f),f},video:function(a,b){return new c.Video(this.game,a,b)},bitmapData:function(a,b,d,e){void 0===e&&(e=!1),(void 0===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,this.game.tweens)},group:function(a,b,d,e,f){return new c.Group(this.game,a,b,d,e,f)},spriteBatch:function(a,b,d){return void 0===b&&(b="group"),void 0===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,g){return new c.BitmapText(this.game,a,b,d,e,f,g)},tilemap:function(a,b,d,e,f){return new c.Tilemap(this.game,a,b,d,e,f)},renderTexture:function(a,b,d,e){(void 0===d||""===d)&&(d=this.game.rnd.uuid()),void 0===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){void 0===e&&(e=!1),(void 0===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.Sprite=function(a,b,d,e,f){b=b||0,d=d||0,e=e||null,f=f||null,this.type=c.SPRITE,this.physicsType=c.SPRITE,PIXI.Sprite.call(this,PIXI.TextureCache.__default),c.Component.Core.init.call(this,a,b,d,e,f)},c.Sprite.prototype=Object.create(PIXI.Sprite.prototype),c.Sprite.prototype.constructor=c.Sprite,c.Component.Core.install.call(c.Sprite.prototype,["Angle","Animation","AutoCull","Bounds","BringToTop","Crop","Delta","Destroy","FixedToCamera","Health","InCamera","InputEnabled","InWorld","LifeSpan","LoadTexture","Overlap","PhysicsBody","Reset","ScaleMinMax","Smoothed"]),c.Sprite.prototype.preUpdatePhysics=c.Component.PhysicsBody.preUpdate,c.Sprite.prototype.preUpdateLifeSpan=c.Component.LifeSpan.preUpdate,c.Sprite.prototype.preUpdateInWorld=c.Component.InWorld.preUpdate,c.Sprite.prototype.preUpdateCore=c.Component.Core.preUpdate,c.Sprite.prototype.preUpdate=function(){return this.preUpdatePhysics()&&this.preUpdateLifeSpan()&&this.preUpdateInWorld()?this.preUpdateCore():!1},c.Image=function(a,b,d,e,f){b=b||0,d=d||0,e=e||null,f=f||null,this.type=c.IMAGE,PIXI.Sprite.call(this,PIXI.TextureCache.__default),c.Component.Core.init.call(this,a,b,d,e,f)},c.Image.prototype=Object.create(PIXI.Sprite.prototype),c.Image.prototype.constructor=c.Image,c.Component.Core.install.call(c.Image.prototype,["Angle","Animation","AutoCull","Bounds","BringToTop","Crop","Destroy","FixedToCamera","InputEnabled","LifeSpan","LoadTexture","Overlap","Reset","Smoothed"]),c.Image.prototype.preUpdateInWorld=c.Component.InWorld.preUpdate,c.Image.prototype.preUpdateCore=c.Component.Core.preUpdate,c.Image.prototype.preUpdate=function(){return this.preUpdateInWorld()?this.preUpdateCore():!1},c.TileSprite=function(a,b,d,e,f,g,h){b=b||0,d=d||0,e=e||256,f=f||256,g=g||null,h=h||null,this.type=c.TILESPRITE,this.physicsType=c.SPRITE,this._scroll=new c.Point;var i=a.cache.getImage("__default",!0);PIXI.TilingSprite.call(this,new PIXI.Texture(i.base),e,f),c.Component.Core.init.call(this,a,b,d,g,h)},c.TileSprite.prototype=Object.create(PIXI.TilingSprite.prototype),c.TileSprite.prototype.constructor=c.TileSprite,c.Component.Core.install.call(c.TileSprite.prototype,["Angle","Animation","AutoCull","Bounds","BringToTop","Destroy","FixedToCamera","Health","InCamera","InputEnabled","InWorld","LifeSpan","LoadTexture","Overlap","PhysicsBody","Reset","Smoothed"]),c.TileSprite.prototype.preUpdatePhysics=c.Component.PhysicsBody.preUpdate,c.TileSprite.prototype.preUpdateLifeSpan=c.Component.LifeSpan.preUpdate,c.TileSprite.prototype.preUpdateInWorld=c.Component.InWorld.preUpdate,c.TileSprite.prototype.preUpdateCore=c.Component.Core.preUpdate,c.TileSprite.prototype.preUpdate=function(){return 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.preUpdatePhysics()&&this.preUpdateLifeSpan()&&this.preUpdateInWorld()?this.preUpdateCore():!1},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.destroy=function(a){c.Component.Destroy.prototype.destroy.call(this,a),PIXI.TilingSprite.prototype.destroy.call(this)},c.TileSprite.prototype.reset=function(a,b){return c.Component.Reset.prototype.reset.call(this,a,b),this.tilePosition.x=0,this.tilePosition.y=0,this},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.type=c.ROPE,this._scroll=new c.Point,PIXI.Rope.call(this,PIXI.TextureCache.__default,this.points),c.Component.Core.init.call(this,a,b,d,e,f)},c.Rope.prototype=Object.create(PIXI.Rope.prototype),c.Rope.prototype.constructor=c.Rope,c.Component.Core.install.call(c.Rope.prototype,["Angle","Animation","AutoCull","Bounds","BringToTop","Crop","Delta","Destroy","FixedToCamera","InputEnabled","InWorld","LifeSpan","LoadTexture","Overlap","PhysicsBody","Reset","ScaleMinMax","Smoothed"]),c.Rope.prototype.preUpdatePhysics=c.Component.PhysicsBody.preUpdate,c.Rope.prototype.preUpdateLifeSpan=c.Component.LifeSpan.preUpdate,c.Rope.prototype.preUpdateInWorld=c.Component.InWorld.preUpdate,c.Rope.prototype.preUpdateCore=c.Component.Core.preUpdate,c.Rope.prototype.preUpdate=function(){return 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.preUpdatePhysics()&&this.preUpdateLifeSpan()&&this.preUpdateInWorld()?this.preUpdateCore():!1},c.Rope.prototype.update=function(){this._hasUpdateAnimation&&this.updateAnimation.call(this)},c.Rope.prototype.reset=function(a,b){return c.Component.Reset.prototype.reset.call(this,a,b),this.tilePosition.x=0,this.tilePosition.y=0,this},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=Math.abs(a);var f=this.width-a;c.drawImage(e,0,0,a,d,f,0,a,d),c.drawImage(e,a,0,f,d,0,0,f,d)}else{var f=this.width-a;c.drawImage(e,f,0,a,d,0,0,a,d),c.drawImage(e,0,0,f,d,a,0,f,d)}return this.clear(),this.copy(this._swapCanvas)},moveV:function(a){var b=this._swapCanvas,c=b.getContext("2d"),d=this.width,e=this.canvas;if(c.clearRect(0,0,this.width,this.height),0>a){a=Math.abs(a);var f=this.height-a;c.drawImage(e,0,0,d,a,0,f,d,a),c.drawImage(e,0,a,d,f,0,0,d,f)}else{var f=this.height-a;c.drawImage(e,0,f,d,a,0,0,d,a),c.drawImage(e,0,0,d,f,0,a,d,f)}return this.clear(),this.copy(this._swapCanvas)},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){void 0===c&&(c=0),void 0===d&&(d=0),void 0===e&&(e=this.width),void 0===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((void 0===a||null===a)&&(a=!1),(void 0===b||null===b)&&(b=!1),(void 0===d||null===d)&&(d=!1),a||b||d){void 0===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){void 0===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 void 0===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((void 0===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,(void 0===g||null===g)&&(g=a.x),(void 0===h||null===h)&&(h=a.y),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(void 0===b||null===b)&&(b=0),(void 0===d||null===d)&&(d=0),e&&(this._size.x=e),f&&(this._size.y=f),(void 0===g||null===g)&&(g=b),(void 0===h||null===h)&&(h=d),(void 0===i||null===i)&&(i=this._size.x),(void 0===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),void 0===q&&(q=null),void 0===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)},drawGroup:function(a,b,c){return a.total>0&&a.forEachExists(this.copy,this,null,null,null,null,null,null,null,null,null,null,null,null,null,null,b,c),this},shadow:function(a,b,c,d){void 0===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 void 0===d||null===d?this.draw(b).blendSourceAtop():this.draw(b,d.x,d.y,d.width,d.height).blendSourceAtop(),void 0===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 void 0===e&&(e=255),void 0===f&&(f=!1),void 0===g&&(g=b),void 0===h&&(h=c),void 0===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},text:function(a,b,c,d,e,f){void 0===b&&(b=0),void 0===c&&(c=0),void 0===d&&(d="14px Courier"),void 0===e&&(e="rgb(255,255,255)"),void 0===f&&(f=!0);var g=this.context.font;this.context.font=d,f&&(this.context.fillStyle="rgb(0,0,0)",this.context.fillText(a,b+1,c+1)),this.context.fillStyle=e,this.context.fillText(a,b,c),this.context.font=g},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(void 0===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,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,PIXI.Graphics.prototype.lineStyle=function(a,b,c){return this.lineWidth=a||0,this.lineColor=b||0,this.lineAlpha=void 0===c?1:c,this.currentPath&&(this.currentPath.shape.points.length?this.drawShape(new PIXI.Polygon(this.currentPath.shape.points.slice(-2))):(this.currentPath.lineWidth=this.lineWidth,this.currentPath.lineColor=this.lineColor,this.currentPath.lineAlpha=this.lineAlpha)),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||this.moveTo(0,0),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){if(d===e)return this;void 0===f&&(f=!1),!f&&d>=e?e+=2*Math.PI:f&&e>=d&&(d+=2*Math.PI);var g=f?-1*(d-e):e-d,h=40*Math.ceil(Math.abs(g)/(2*Math.PI));if(0===g)return this;var i=a+Math.cos(d)*c,j=b+Math.sin(d)*c;f&&this.filling?this.moveTo(a,b):this.moveTo(i,j);for(var k=this.currentPath.shape.points,l=g/(2*h),m=2*l,n=Math.cos(l),o=Math.sin(l),p=h-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);k.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){(a instanceof c.Polygon||a instanceof PIXI.Polygon)&&(a=a.points);var b=a;if(!Array.isArray(b)){b=new Array(arguments.length);for(var d=0;dp?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._currentBounds=this._bounds}return this._currentBounds},PIXI.Graphics.prototype.containsPoint=function(a){this.worldTransform.applyInverse(a,tempPoint);for(var b=this.graphicsData,c=0;ch?h:a,b=h+j>b?h+j:b,d=d>i?i:d,e=i+k>e?i+k:e;else if(n===PIXI.Graphics.CIRC)h=f.x,i=f.y,j=f.radius+o/2,k=f.radius+o/2,a=a>h-j?h-j:a,b=h+j>b?h+j:b,d=d>i-k?i-k:d,e=i+k>e?i+k:e;else if(n===PIXI.Graphics.ELIP)h=f.x,i=f.y,j=f.width+o/2,k=f.height+o/2,a=a>h-j?h-j:a,b=h+j>b?h+j:b,d=d>i-k?i-k:d,e=i+k>e?i+k:e;else{g=f.points;for(var p=0;ph-o?h-o:a,b=h+o>b?h+o:b,d=d>i-o?i-o:d,e=i+o>e?i+o:e}}else a=0,b=0,d=0,e=0;var q=this.boundsPadding;this._localBounds.x=a-q,this._localBounds.width=b-a+2*q,this._localBounds.y=d-q,this._localBounds.height=e-d+2*q},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,a instanceof c.Polygon&&(a=a.clone(),a.flatten());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},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.GraphicsData=function(a,b,c,d,e,f,g){this.lineWidth=a,this.lineColor=b,this.lineAlpha=c,this._lineTint=b,this.fillColor=d,this.fillAlpha=e,this._fillTint=d,this.fill=f,this.shape=g,this.type=g.type},PIXI.GraphicsData.prototype.constructor=PIXI.GraphicsData,PIXI.GraphicsData.prototype.clone=function(){return new GraphicsData(this.lineWidth,this.lineColor,this.lineAlpha,this.fillColor,this.fillAlpha,this.fill,this.shape)},c.Graphics=function(a,b,d){void 0===b&&(b=0),void 0===d&&(d=0),this.type=c.GRAPHICS,this.physicsType=c.SPRITE,PIXI.Graphics.call(this),c.Component.Core.init.call(this,a,b,d,"",null)},c.Graphics.prototype=Object.create(PIXI.Graphics.prototype),c.Graphics.prototype.constructor=c.Graphics,c.Component.Core.install.call(c.Graphics.prototype,["Angle","AutoCull","Bounds","Destroy","FixedToCamera","InputEnabled","InWorld","LifeSpan","PhysicsBody","Reset"]),c.Graphics.prototype.preUpdatePhysics=c.Component.PhysicsBody.preUpdate,c.Graphics.prototype.preUpdateLifeSpan=c.Component.LifeSpan.preUpdate,c.Graphics.prototype.preUpdateInWorld=c.Component.InWorld.preUpdate,c.Graphics.prototype.preUpdateCore=c.Component.Core.preUpdate,c.Graphics.prototype.preUpdate=function(){return this.preUpdatePhysics()&&this.preUpdateLifeSpan()&&this.preUpdateInWorld()?this.preUpdateCore():!1},c.Graphics.prototype.destroy=function(a){this.clear(),c.Component.Destroy.prototype.destroy.call(this,a)},c.Graphics.prototype.drawTriangle=function(a,b){void 0===b&&(b=!1);var d=new c.Polygon(a);if(b){var e=new c.Point(this.game.camera.x-a[0].x,this.game.camera.y-a[0].y),f=new c.Point(a[1].x-a[0].x,a[1].y-a[0].y),g=new c.Point(a[1].x-a[2].x,a[1].y-a[2].y),h=g.cross(f);e.dot(h)>0&&this.drawPolygon(d)}else this.drawPolygon(d)},c.Graphics.prototype.drawTriangles=function(a,b,d){void 0===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;e0&&(j+=c[k-1]),h=j+l}else for(var k=0;kq&&Math.abs(q)>o&&(q=-o),0!==q){var m=q*(b.length-1);p+=m}this.canvas.height=p*this._res,this.context.scale(this._res,this._res),navigator.isCocoonJS&&this.context.clearRect(0,0,this.canvas.width,this.canvas.height),this.style.backgroundColor&&(this.context.fillStyle=this.style.backgroundColor,this.context.fillRect(0,0,this.canvas.width,this.canvas.height)),this.context.fillStyle=this.style.fill,this.context.font=this.style.font,this.context.strokeStyle=this.style.stroke,this.context.textBaseline="alphabetic",this.context.lineWidth=this.style.strokeThickness,this.context.lineCap="round",this.context.lineJoin="round";var r,s;for(this._charCount=0,g=0;g0&&(s+=q*g),"right"===this.style.align?r+=e-d[g]:"center"===this.style.align&&(r+=(e-d[g])/2),this.autoRound&&(r=Math.round(r),s=Math.round(s)),this.colors.length>0||this.strokeColors.length>0?this.updateLine(b[g],r,s):(this.style.stroke&&this.style.strokeThickness&&(this.updateShadow(this.style.shadowStroke),0===c?this.context.strokeText(b[g],r,s):this.renderTabLine(b[g],r,s,!1)),this.style.fill&&(this.updateShadow(this.style.shadowFill),0===c?this.context.fillText(b[g],r,s):this.renderTabLine(b[g],r,s,!0)));this.updateTexture()},c.Text.prototype.renderTabLine=function(a,b,c,d){var e=a.split(/(?:\t)/),f=this.style.tabs,g=0;if(Array.isArray(f))for(var h=0,i=0;i0&&(h+=f[i-1]),g=b+h,d?this.context.fillText(e[i],g,c):this.context.strokeText(e[i],g,c);else for(var i=0;ie?(g>0&&(b+="\n"),b+=f[g]+" ",e=this.style.wordWrapWidth-h):(e-=i,b+=f[g]+" ")}dd&&(this.style.wordWrapWidth=d)),this.updateTexture(),this},c.Text.prototype.updateTexture=function(){var a=this.texture.baseTexture,b=this.texture.crop,c=this.texture.frame,d=this.canvas.width,e=this.canvas.height;if(a.width=d,a.height=e,b.width=d,b.height=e,c.width=d,c.height=e,this.texture.width=d,this.texture.height=e,this._width=d,this._height=e,this.textBounds){var f=this.textBounds.x,g=this.textBounds.y;"right"===this.style.boundsAlignH?f=this.textBounds.width-this.canvas.width:"center"===this.style.boundsAlignH&&(f=this.textBounds.halfWidth-this.canvas.width/2),"bottom"===this.style.boundsAlignV?g=this.textBounds.height-this.canvas.height:"middle"===this.style.boundsAlignV&&(g=this.textBounds.halfHeight-this.canvas.height/2),this.pivot.x=-f,this.pivot.y=-g}this.renderable=0!==d&&0!==e,this.texture.baseTexture.dirty()},c.Text.prototype._renderWebGL=function(a){this.dirty&&(this.updateText(),this.dirty=!1),PIXI.Sprite.prototype._renderWebGL.call(this,a)},c.Text.prototype._renderCanvas=function(a){this.dirty&&(this.updateText(),this.dirty=!1),PIXI.Sprite.prototype._renderCanvas.call(this,a)},c.Text.prototype.determineFontProperties=function(a){var b=c.Text.fontPropertiesCache[a];if(!b){b={};var d=c.Text.fontPropertiesCanvas,e=c.Text.fontPropertiesContext;e.font=a;var f=Math.ceil(e.measureText("|MÉq").width),g=Math.ceil(e.measureText("|MÉq").width),h=2*g;if(g=1.4*g|0,d.width=f,d.height=h,e.fillStyle="#f00",e.fillRect(0,0,f,h),e.font=a,e.textBaseline="alphabetic",e.fillStyle="#000",e.fillText("|MÉq",0,g),!e.getImageData(0,0,f,h))return b.ascent=g,b.descent=g+6,b.fontSize=b.ascent+b.descent,c.Text.fontPropertiesCache[a]=b,b;var i,j,k=e.getImageData(0,0,f,h).data,l=k.length,m=4*f,n=0,o=!1;for(i=0;g>i;i++){for(j=0;m>j;j+=4)if(255!==k[n+j]){o=!0;break}if(o)break;n+=m}for(b.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}b.descent=i-g,b.descent+=6,b.fontSize=b.ascent+b.descent,c.Text.fontPropertiesCache[a]=b}return b},c.Text.prototype.getBounds=function(a){return this.dirty&&(this.updateText(),this.dirty=!1),PIXI.Sprite.prototype.getBounds.call(this,a)},Object.defineProperty(c.Text.prototype,"text",{get:function(){return this._text},set:function(a){a!==this._text&&(this._text=a.toString()||"",this.dirty=!0,this.parent&&this.updateTransform())}}),Object.defineProperty(c.Text.prototype,"cssFont",{get:function(){return this.componentsToFont(this._fontComponents)},set:function(a){a=a||"bold 20pt Arial",this._fontComponents=this.fontToComponents(a),this.updateFont(this._fontComponents)}}),Object.defineProperty(c.Text.prototype,"font",{get:function(){return this._fontComponents.fontFamily},set:function(a){a=a||"Arial",a=a.trim(),/^(?:inherit|serif|sans-serif|cursive|fantasy|monospace)$/.exec(a)||/['",]/.exec(a)||(a="'"+a+"'"),this._fontComponents.fontFamily=a,this.updateFont(this._fontComponents)}}),Object.defineProperty(c.Text.prototype,"fontSize",{get:function(){var a=this._fontComponents.fontSize;return a&&/(?:^0$|px$)/.exec(a)?parseInt(a,10):a},set:function(a){a=a||"0","number"==typeof a&&(a+="px"),this._fontComponents.fontSize=a,this.updateFont(this._fontComponents)}}),Object.defineProperty(c.Text.prototype,"fontWeight",{get:function(){return this._fontComponents.fontWeight||"normal"},set:function(a){a=a||"normal",this._fontComponents.fontWeight=a,this.updateFont(this._fontComponents)}}),Object.defineProperty(c.Text.prototype,"fontStyle",{get:function(){return this._fontComponents.fontStyle||"normal"},set:function(a){a=a||"normal",this._fontComponents.fontStyle=a,this.updateFont(this._fontComponents)}}),Object.defineProperty(c.Text.prototype,"fontVariant",{get:function(){return this._fontComponents.fontVariant||"normal"},set:function(a){a=a||"normal",this._fontComponents.fontVariant=a,this.updateFont(this._fontComponents)}}),Object.defineProperty(c.Text.prototype,"fill",{get:function(){return this.style.fill},set:function(a){a!==this.style.fill&&(this.style.fill=a,this.dirty=!0)}}),Object.defineProperty(c.Text.prototype,"align",{get:function(){return this.style.align},set:function(a){a!==this.style.align&&(this.style.align=a,this.dirty=!0)}}),Object.defineProperty(c.Text.prototype,"resolution",{get:function(){return this._res},set:function(a){a!==this._res&&(this._res=a,this.dirty=!0)}}),Object.defineProperty(c.Text.prototype,"tabs",{get:function(){return this.style.tabs},set:function(a){a!==this.style.tabs&&(this.style.tabs=a,this.dirty=!0)}}),Object.defineProperty(c.Text.prototype,"boundsAlignH",{get:function(){return this.style.boundsAlignH},set:function(a){a!==this.style.boundsAlignH&&(this.style.boundsAlignH=a,this.dirty=!0)}}),Object.defineProperty(c.Text.prototype,"boundsAlignV",{get:function(){return this.style.boundsAlignV},set:function(a){a!==this.style.boundsAlignV&&(this.style.boundsAlignV=a,this.dirty=!0)}}),Object.defineProperty(c.Text.prototype,"stroke",{get:function(){return this.style.stroke},set:function(a){a!==this.style.stroke&&(this.style.stroke=a,this.dirty=!0)}}),Object.defineProperty(c.Text.prototype,"strokeThickness",{get:function(){return this.style.strokeThickness},set:function(a){a!==this.style.strokeThickness&&(this.style.strokeThickness=a,this.dirty=!0)}}),Object.defineProperty(c.Text.prototype,"wordWrap",{get:function(){return this.style.wordWrap},set:function(a){a!==this.style.wordWrap&&(this.style.wordWrap=a,this.dirty=!0)}}),Object.defineProperty(c.Text.prototype,"wordWrapWidth",{get:function(){return this.style.wordWrapWidth},set:function(a){a!==this.style.wordWrapWidth&&(this.style.wordWrapWidth=a,this.dirty=!0)}}),Object.defineProperty(c.Text.prototype,"lineSpacing",{get:function(){return this._lineSpacing},set:function(a){a!==this._lineSpacing&&(this._lineSpacing=parseFloat(a),this.dirty=!0,this.parent&&this.updateTransform())}}),Object.defineProperty(c.Text.prototype,"shadowOffsetX",{get:function(){return this.style.shadowOffsetX},set:function(a){a!==this.style.shadowOffsetX&&(this.style.shadowOffsetX=a,this.dirty=!0)}}),Object.defineProperty(c.Text.prototype,"shadowOffsetY",{get:function(){return this.style.shadowOffsetY},set:function(a){a!==this.style.shadowOffsetY&&(this.style.shadowOffsetY=a,this.dirty=!0)}}),Object.defineProperty(c.Text.prototype,"shadowColor",{get:function(){return this.style.shadowColor},set:function(a){a!==this.style.shadowColor&&(this.style.shadowColor=a,this.dirty=!0)}}),Object.defineProperty(c.Text.prototype,"shadowBlur",{get:function(){return this.style.shadowBlur},set:function(a){a!==this.style.shadowBlur&&(this.style.shadowBlur=a,this.dirty=!0)}}),Object.defineProperty(c.Text.prototype,"shadowStroke",{get:function(){return this.style.shadowStroke},set:function(a){a!==this.style.shadowStroke&&(this.style.shadowStroke=a,this.dirty=!0)}}),Object.defineProperty(c.Text.prototype,"shadowFill",{get:function(){return this.style.shadowFill},set:function(a){a!==this.style.shadowFill&&(this.style.shadowFill=a,this.dirty=!0)}}),Object.defineProperty(c.Text.prototype,"width",{get:function(){return this.dirty&&(this.updateText(),this.dirty=!1),this.scale.x*this.texture.frame.width},set:function(a){this.scale.x=a/this.texture.frame.width,this._width=a}}),Object.defineProperty(c.Text.prototype,"height",{get:function(){return this.dirty&&(this.updateText(),this.dirty=!1),this.scale.y*this.texture.frame.height},set:function(a){this.scale.y=a/this.texture.frame.height,this._height=a}}),c.Text.fontPropertiesCache={},c.Text.fontPropertiesCanvas=document.createElement("canvas"),c.Text.fontPropertiesContext=c.Text.fontPropertiesCanvas.getContext("2d"),c.BitmapText=function(a,b,d,e,f,g,h){b=b||0,d=d||0,e=e||"",f=f||"",g=g||32,h=h||"left",PIXI.DisplayObjectContainer.call(this),this.type=c.BITMAPTEXT,this.physicsType=c.SPRITE,this.textWidth=0,this.textHeight=0,this.anchor=new c.Point,this._prevAnchor=new c.Point,this._glyphs=[],this._maxWidth=0,this._text=f,this._data=a.cache.getBitmapFont(e),this._font=e,this._fontSize=g,this._align=h,this._tint=16777215,this.updateText(),this.dirty=!1,c.Component.Core.init.call(this,a,b,d,"",null)},c.BitmapText.prototype=Object.create(PIXI.DisplayObjectContainer.prototype),c.BitmapText.prototype.constructor=c.BitmapText,c.Component.Core.install.call(c.BitmapText.prototype,["Angle","AutoCull","Bounds","Destroy","FixedToCamera","InputEnabled","InWorld","LifeSpan","PhysicsBody","Reset"]),c.BitmapText.prototype.preUpdatePhysics=c.Component.PhysicsBody.preUpdate,c.BitmapText.prototype.preUpdateLifeSpan=c.Component.LifeSpan.preUpdate,c.BitmapText.prototype.preUpdateInWorld=c.Component.InWorld.preUpdate,c.BitmapText.prototype.preUpdateCore=c.Component.Core.preUpdate,c.BitmapText.prototype.preUpdate=function(){return this.preUpdatePhysics()&&this.preUpdateLifeSpan()&&this.preUpdateInWorld()?this.preUpdateCore():!1},c.BitmapText.prototype.postUpdate=function(){c.Component.PhysicsBody.postUpdate.call(this),c.Component.FixedToCamera.postUpdate.call(this),this.body&&this.body.type===c.Physics.ARCADE&&(this.textWidth!==this.body.sourceWidth||this.textHeight!==this.body.sourceHeight)&&this.body.setSize(this.textWidth,this.textHeight)},c.BitmapText.prototype.setText=function(a){this.text=a},c.BitmapText.prototype.scanLine=function(a,b,c){for(var d=0,e=0,f=-1,g=null,h=this._maxWidth>0?this._maxWidth:null,i=[],j=0;j=h&&f>-1)return{width:e,text:c.substr(0,j-(j-f)),end:k,chars:i};e+=m.xAdvance*b,i.push(d+m.xOffset*b),d+=m.xAdvance*b,g=l}}return{width:e,text:c,end:k,chars:i}},c.BitmapText.prototype.updateText=function(){var a=this._data.font;if(a){var b=this.text,c=this._fontSize/a.size,d=[],e=0;this.textWidth=0;do{var f=this.scanLine(a,c,b);f.y=e,d.push(f),f.width>this.textWidth&&(this.textWidth=f.width),e+=a.lineHeight*c,b=b.substr(f.text.length+1)}while(f.end===!1);this.textHeight=e;for(var g=0,h=0,i=this.textWidth*this.anchor.x,j=this.textHeight*this.anchor.y,k=0;k0&&(this._fontSize=a,this.updateText())}}),Object.defineProperty(c.BitmapText.prototype,"text",{get:function(){return this._text},set:function(a){a!==this._text&&(this._text=a.toString()||"",this.updateText())}}),Object.defineProperty(c.BitmapText.prototype,"maxWidth",{get:function(){return this._maxWidth},set:function(a){a!==this._maxWidth&&(this._maxWidth=a,this.updateText())}}),c.RetroFont=function(a,b,d,e,f,g,h,i,j,k){if(!a.cache.checkImageKey(b))return!1;(void 0===g||null===g)&&(g=a.cache.getImage(b).width/d),this.characterWidth=d,this.characterHeight=e,this.characterSpacingX=h||0,this.characterSpacingY=i||0,this.characterPerRow=g,this.offsetX=j||0,this.offsetY=k||0,this.align="left",this.multiLine=!1,this.autoUpperCase=!0,this.customSpacingX=0,this.customSpacingY=0,this.fixedWidth=0,this.fontSet=a.cache.getImage(b),this._text="",this.grabData=[],this.frameData=new c.FrameData;for(var l=this.offsetX,m=this.offsetY,n=0,o=0;o?@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){void 0===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 this.fixedWidth>0?this.resize(this.fixedWidth,this.characterHeight,!0):this.resize(this._text.length*(this.characterWidth+this.customSpacingX),this.characterHeight,!0),a=0,this.align===c.RetroFont.ALIGN_RIGHT?a=this.width-this._text.length*(this.characterWidth+this.customSpacingX):this.align===c.RetroFont.ALIGN_CENTER&&(a=this.width/2-this._text.length*(this.characterWidth+this.customSpacingX)/2,a+=this.customSpacingX/2),0>a&&(a=0),this.pasteLine(this._text,a,0,this.customSpacingX);this.requiresReTint=!0},c.RetroFont.prototype.pasteLine=function(a,b,c,d){for(var e=0;e=0&&(this.stamp.frame=this.grabData[a.charCodeAt(e)],this.renderXY(this.stamp,b,c,!1),b+=this.characterWidth+d,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;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.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.type=c.ROPE,this._scroll=new c.Point,PIXI.Rope.call(this,PIXI.TextureCache.__default,this.points),c.Component.Core.init.call(this,a,b,d,e,f)},c.Rope.prototype=Object.create(PIXI.Rope.prototype),c.Rope.prototype.constructor=c.Rope,c.Component.Core.install.call(c.Rope.prototype,["Angle","Animation","AutoCull","Bounds","BringToTop","Crop","Delta","Destroy","FixedToCamera","InputEnabled","InWorld","LifeSpan","LoadTexture","Overlap","PhysicsBody","Reset","ScaleMinMax","Smoothed"]),c.Rope.prototype.preUpdatePhysics=c.Component.PhysicsBody.preUpdate,c.Rope.prototype.preUpdateLifeSpan=c.Component.LifeSpan.preUpdate,c.Rope.prototype.preUpdateInWorld=c.Component.InWorld.preUpdate,c.Rope.prototype.preUpdateCore=c.Component.Core.preUpdate,c.Rope.prototype.preUpdate=function(){return 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.preUpdatePhysics()&&this.preUpdateLifeSpan()&&this.preUpdateInWorld()?this.preUpdateCore():!1},c.Rope.prototype.update=function(){this._hasUpdateAnimation&&this.updateAnimation.call(this)},c.Rope.prototype.reset=function(a,b){return c.Component.Reset.prototype.reset.call(this,a,b),this.tilePosition.x=0,this.tilePosition.y=0,this},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;k=1)&&(l.touch=!0),(window.navigator.msPointerEnabled||window.navigator.pointerEnabled)&&(l.mspointer=!0),l.cocoonJS||("onwheel"in window||l.ie&&"WheelEvent"in window?l.wheelEvent="wheel":"onmousewheel"in window?l.wheelEvent="mousewheel":l.firefox&&"MouseScrollEvent"in window&&(l.wheelEvent="DOMMouseScroll"))}function d(){for(var a=["requestFullscreen","requestFullScreen","webkitRequestFullscreen","webkitRequestFullScreen","msRequestFullscreen","msRequestFullScreen","mozRequestFullScreen","mozRequestFullscreen"],b=document.createElement("div"),c=0;c0&&"none"!==a}var l=this;a(),g(),f(),e(),k(),h(),b(),d(),c()},c.Device.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},c.Device.canPlayVideo=function(a){return"webm"===a&&(this.webmVideo||this.vp9Video)?!0:"mp4"===a&&(this.mp4Video||this.h264Video)?!0:"ogg"===a&&this.oggVideo?!0:"mpeg"===a&&this.hlsVideo?!0:!1},c.Device.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.isAndroidStockBrowser=function(){var a=window.navigator.userAgent.match(/Android.*AppleWebKit\/([\d.]+)/);return a&&a[1]<537},c.DOM={getOffset:function(a,b){b=b||new c.Point;var d=a.getBoundingClientRect(),e=c.DOM.scrollY,f=c.DOM.scrollX,g=document.documentElement.clientTop,h=document.documentElement.clientLeft;return b.x=d.left+f-h,b.y=d.top+e-g,b},getBounds:function(a,b){return void 0===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.visualBounds:1===a.nodeType?this.getBounds(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},inLayoutViewport:function(a,b){var c=this.getBounds(a,b);return!!c&&c.bottom>=0&&c.right>=0&&c.top<=this.layoutBounds.width&&c.left<=this.layoutBounds.height},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.visualBounds.height>this.visualBounds.width?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.visualBounds.height>this.visualBounds.width?d:e},visualBounds:new c.Rectangle,layoutBounds:new c.Rectangle,documentBounds:new c.Rectangle},c.Device.whenReady(function(a){var b=window&&"pageXOffset"in window?function(){return window.pageXOffset}:function(){return document.documentElement.scrollLeft},d=window&&"pageYOffset"in window?function(){return window.pageYOffset}:function(){return document.documentElement.scrollTop};Object.defineProperty(c.DOM,"scrollX",{get:b}),Object.defineProperty(c.DOM,"scrollY",{get:d}),Object.defineProperty(c.DOM.visualBounds,"x",{get:b}),Object.defineProperty(c.DOM.visualBounds,"y",{get:d}),Object.defineProperty(c.DOM.layoutBounds,"x",{value:0}),Object.defineProperty(c.DOM.layoutBounds,"y",{value:0});var e=a.desktop&&document.documentElement.clientWidth<=window.innerWidth&&document.documentElement.clientHeight<=window.innerHeight;if(e){var f=function(){return Math.max(window.innerWidth,document.documentElement.clientWidth)},g=function(){return Math.max(window.innerHeight,document.documentElement.clientHeight)};Object.defineProperty(c.DOM.visualBounds,"width",{get:f}),Object.defineProperty(c.DOM.visualBounds,"height",{get:g}),Object.defineProperty(c.DOM.layoutBounds,"width",{get:f}),Object.defineProperty(c.DOM.layoutBounds,"height",{get:g})}else Object.defineProperty(c.DOM.visualBounds,"width",{get:function(){return window.innerWidth}}),Object.defineProperty(c.DOM.visualBounds,"height",{get:function(){return window.innerHeight}}),Object.defineProperty(c.DOM.layoutBounds,"width",{get:function(){var a=document.documentElement.clientWidth,b=window.innerWidth;return b>a?b:a}}),Object.defineProperty(c.DOM.layoutBounds,"height",{get:function(){var a=document.documentElement.clientHeight,b=window.innerHeight;return b>a?b:a}});Object.defineProperty(c.DOM.documentBounds,"x",{value:0}),Object.defineProperty(c.DOM.documentBounds,"y",{value:0}),Object.defineProperty(c.DOM.documentBounds,"width",{get:function(){var a=document.documentElement;return Math.max(a.clientWidth,a.offsetWidth,a.scrollWidth)}}),Object.defineProperty(c.DOM.documentBounds,"height",{get:function(){var a=document.documentElement;return Math.max(a.clientHeight,a.offsetHeight,a.scrollHeight)}})},null,!0),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 void 0===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){var c=["i","mozI","oI","webkitI","msI"];for(var d in c){var e=c[d]+"mageSmoothingEnabled";if(e in a)return a[e]=b,a}return 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.RequestAnimationFrame=function(a,b){void 0===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 void 0===c&&(c=1e-4),a>b-c},fuzzyCeil:function(a,b){return void 0===b&&(b=1e-4),Math.ceil(a-b)},fuzzyFloor:function(a,b){return void 0===b&&(b=1e-4),Math.floor(a+b)},average:function(){for(var a=0,b=0;b=0?a:a+2*Math.PI},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},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)},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)},roundAwayFromZero:function(a){return a>0?Math.ceil(a):Math.floor(a)},sinCosGenerator:function(a,b,c,d){void 0===b&&(b=1),void 0===c&&(c=1),void 0===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}},distance:function(a,b,c,d){var e=a-c,f=b-d;return Math.sqrt(e*e+f*f)},distanceSq:function(a,b,c,d){var e=a-c,f=b-d;return e*e+f*f},distancePow:function(a,b,c,d,e){return void 0===e&&(e=2),Math.sqrt(Math.pow(c-a,e)+Math.pow(d-b,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 void 0===c&&(c=0),a>b||c>b?1:c>a||c>a?0:(a-c)/b}};var j=Math.PI/180,k=180/Math.PI;c.Math.degToRad=function(a){return a*j},c.Math.radToDeg=function(a){return a*k},c.RandomDataGenerator=function(a){void 0===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){if(this.s0=this.hash(" "),this.s1=this.hash(this.s0),this.s2=this.hash(this.s1),this.c=1,a)for(var b=0;b>>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)+.5)]},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){void 0===c&&(c=!1),(void 0===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){void 0===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.easeMap={Power0:c.Easing.Power0,Power1:c.Easing.Power1,Power2:c.Easing.Power2,Power3:c.Easing.Power3,Power4:c.Easing.Power4,Linear:c.Easing.Linear.None,Quad:c.Easing.Quadratic.Out,Cubic:c.Easing.Cubic.Out,Quart:c.Easing.Quartic.Out,Quint:c.Easing.Quintic.Out,Sine:c.Easing.Sinusoidal.Out,Expo:c.Easing.Exponential.Out,Circ:c.Easing.Circular.Out,Elastic:c.Easing.Elastic.Out,Back:c.Easing.Back.Out,Bounce:c.Easing.Bounce.Out,"Quad.easeIn":c.Easing.Quadratic.In,"Cubic.easeIn":c.Easing.Cubic.In,"Quart.easeIn":c.Easing.Quartic.In,"Quint.easeIn":c.Easing.Quintic.In,"Sine.easeIn":c.Easing.Sinusoidal.In,"Expo.easeIn":c.Easing.Exponential.In,"Circ.easeIn":c.Easing.Circular.In,"Elastic.easeIn":c.Easing.Elastic.In,"Back.easeIn":c.Easing.Back.In,"Bounce.easeIn":c.Easing.Bounce.In,"Quad.easeOut":c.Easing.Quadratic.Out,"Cubic.easeOut":c.Easing.Cubic.Out,"Quart.easeOut":c.Easing.Quartic.Out,"Quint.easeOut":c.Easing.Quintic.Out,"Sine.easeOut":c.Easing.Sinusoidal.Out,"Expo.easeOut":c.Easing.Exponential.Out,"Circ.easeOut":c.Easing.Circular.Out,"Elastic.easeOut":c.Easing.Elastic.Out,"Back.easeOut":c.Easing.Back.Out,"Bounce.easeOut":c.Easing.Bounce.Out,"Quad.easeInOut":c.Easing.Quadratic.InOut,"Cubic.easeInOut":c.Easing.Cubic.InOut,"Quart.easeInOut":c.Easing.Quartic.InOut,"Quint.easeInOut":c.Easing.Quintic.InOut,"Sine.easeInOut":c.Easing.Sinusoidal.InOut,"Expo.easeInOut":c.Easing.Exponential.InOut,"Circ.easeInOut":c.Easing.Circular.InOut,"Elastic.easeInOut":c.Easing.Elastic.InOut,"Back.easeInOut":c.Easing.Back.InOut,"Bounce.easeInOut":c.Easing.Bounce.InOut},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;ad;d++)this.removeFrom(a[d]);else if(a.type===c.GROUP&&b)for(var d=0,e=a.children.length;e>d;d++)this.removeFrom(a.children[d]);else{for(d=0,e=this._tweens.length;e>d;d++)a===this._tweens[d].target&&this.remove(this._tweens[d]);for(d=0,e=this._add.length;e>d;d++)a===this._add[d].target&&this.remove(this._add[d])}},add:function(a){a._manager=this,this._add.push(a)},create:function(a){return new c.Tween(a,this.game,this)},remove:function(a){var b=this._tweens.indexOf(a);-1!==b?this._tweens[b].pendingDelete=!0:(b=this._add.indexOf(a),-1!==b&&(this._add[b].pendingDelete=!0))},update:function(){var a=this._add.length,b=this._tweens.length;if(0===b&&0===a)return!1;for(var c=0;b>c;)this._tweens[c].update(this.game.time.time)?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.target===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.game=b,this.target=a,this.manager=d,this.timeline=[],this.reverse=!1,this.timeScale=1,this.repeatCounter=0,this.pendingDelete=!1,this.onStart=new c.Signal,this.onLoop=new c.Signal,this.onRepeat=new c.Signal,this.onChildComplete=new c.Signal,this.onComplete=new c.Signal,this.isRunning=!1,this.current=0,this.properties={},this.chainedTween=null,this.isPaused=!1,this._onUpdateCallback=null,this._onUpdateCallbackContext=null,this._pausedTime=0,this._codePaused=!1,this._hasStarted=!1},c.Tween.prototype={to:function(a,b,d,e,f,g,h){return(void 0===b||0>=b)&&(b=1e3),(void 0===d||null===d)&&(d=c.Easing.Default),void 0===e&&(e=!1),void 0===f&&(f=0),void 0===g&&(g=0),void 0===h&&(h=!1),"string"==typeof d&&this.manager.easeMap[d]&&(d=this.manager.easeMap[d]),this.isRunning?(console.warn("Phaser.Tween.to cannot be called after Tween.start"),this):(this.timeline.push(new c.TweenData(this).to(a,b,d,f,g,h)),e&&this.start(),this)},from:function(a,b,d,e,f,g,h){return void 0===b&&(b=1e3),(void 0===d||null===d)&&(d=c.Easing.Default),void 0===e&&(e=!1),void 0===f&&(f=0),void 0===g&&(g=0),void 0===h&&(h=!1),"string"==typeof d&&this.manager.easeMap[d]&&(d=this.manager.easeMap[d]),this.isRunning?(console.warn("Phaser.Tween.from cannot be called after Tween.start"),this):(this.timeline.push(new c.TweenData(this).from(a,b,d,f,g,h)),e&&this.start(),this)},start:function(a){if(void 0===a&&(a=0),null===this.game||null===this.target||0===this.timeline.length||this.isRunning)return this;for(var b=0;ba||a>this.timeline.length-1)&&(a=0),this.current=a,this.timeline[this.current].start(),this},stop:function(a){return void 0===a&&(a=!1),this.isRunning=!1,this._onUpdateCallback=null,this._onUpdateCallbackContext=null,a&&(this.onComplete.dispatch(this.target,this),this.chainedTween&&this.chainedTween.start()),this.manager.remove(this),this},updateTweenData:function(a,b,c){if(0===this.timeline.length)return this;if(void 0===c&&(c=0),-1===c)for(var d=0;d0?arguments[a-1].chainedTween=arguments[a]:this.chainedTween=arguments[a];return this},loop:function(a){return void 0===a&&(a=!0),a?this.repeatAll(-1):this.repeatCounter=0,this},onUpdateCallback:function(a,b){return this._onUpdateCallback=a,this._onUpdateCallbackContext=b,this},pause:function(){this.isPaused=!0,this._codePaused=!0,this._pausedTime=this.game.time.time},_pause:function(){this._codePaused||(this.isPaused=!0,this._pausedTime=this.game.time.time)},resume:function(){if(this.isPaused){this.isPaused=!1,this._codePaused=!1;for(var a=0;a0?(this.repeatCounter--,this.timeline[this.current].start(),this.onRepeat.dispatch(this.target,this),!0):(this.isRunning=!1,this.onComplete.dispatch(this.target,this),this.chainedTween&&this.chainedTween.start(),!1):(this.onChildComplete.dispatch(this.target,this),this.timeline[this.current].start(),!0)}},generateData:function(a,b){if(null===this.game||null===this.target)return null;void 0===a&&(a=60),void 0===b&&(b=[]);for(var c=0;c=1)&&(l.touch=!0),(window.navigator.msPointerEnabled||window.navigator.pointerEnabled)&&(l.mspointer=!0),l.cocoonJS||("onwheel"in window||l.ie&&"WheelEvent"in window?l.wheelEvent="wheel":"onmousewheel"in window?l.wheelEvent="mousewheel":l.firefox&&"MouseScrollEvent"in window&&(l.wheelEvent="DOMMouseScroll"))}function d(){for(var a=["requestFullscreen","requestFullScreen","webkitRequestFullscreen","webkitRequestFullScreen","msRequestFullscreen","msRequestFullScreen","mozRequestFullScreen","mozRequestFullscreen"],b=document.createElement("div"),c=0;c0&&"none"!==a}var l=this;a(),g(),f(),e(),k(),h(),b(),d(),c()},c.Device.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},c.Device.canPlayVideo=function(a){return"webm"===a&&(this.webmVideo||this.vp9Video)?!0:"mp4"===a&&(this.mp4Video||this.h264Video)?!0:"ogg"===a&&this.oggVideo?!0:"mpeg"===a&&this.hlsVideo?!0:!1},c.Device.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.isAndroidStockBrowser=function(){var a=window.navigator.userAgent.match(/Android.*AppleWebKit\/([\d.]+)/);return a&&a[1]<537},c.DOM={getOffset:function(a,b){b=b||new c.Point;var d=a.getBoundingClientRect(),e=c.DOM.scrollY,f=c.DOM.scrollX,g=document.documentElement.clientTop,h=document.documentElement.clientLeft;return b.x=d.left+f-h,b.y=d.top+e-g,b},getBounds:function(a,b){return void 0===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.visualBounds:1===a.nodeType?this.getBounds(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},inLayoutViewport:function(a,b){var c=this.getBounds(a,b);return!!c&&c.bottom>=0&&c.right>=0&&c.top<=this.layoutBounds.width&&c.left<=this.layoutBounds.height},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.visualBounds.height>this.visualBounds.width?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.visualBounds.height>this.visualBounds.width?d:e},visualBounds:new c.Rectangle,layoutBounds:new c.Rectangle,documentBounds:new c.Rectangle},c.Device.whenReady(function(a){var b=window&&"pageXOffset"in window?function(){return window.pageXOffset}:function(){return document.documentElement.scrollLeft},d=window&&"pageYOffset"in window?function(){return window.pageYOffset}:function(){return document.documentElement.scrollTop};Object.defineProperty(c.DOM,"scrollX",{get:b}),Object.defineProperty(c.DOM,"scrollY",{get:d}),Object.defineProperty(c.DOM.visualBounds,"x",{get:b}),Object.defineProperty(c.DOM.visualBounds,"y",{get:d}),Object.defineProperty(c.DOM.layoutBounds,"x",{value:0}),Object.defineProperty(c.DOM.layoutBounds,"y",{value:0});var e=a.desktop&&document.documentElement.clientWidth<=window.innerWidth&&document.documentElement.clientHeight<=window.innerHeight;if(e){var f=function(){return Math.max(window.innerWidth,document.documentElement.clientWidth)},g=function(){return Math.max(window.innerHeight,document.documentElement.clientHeight)};Object.defineProperty(c.DOM.visualBounds,"width",{get:f}),Object.defineProperty(c.DOM.visualBounds,"height",{get:g}),Object.defineProperty(c.DOM.layoutBounds,"width",{get:f}),Object.defineProperty(c.DOM.layoutBounds,"height",{get:g})}else Object.defineProperty(c.DOM.visualBounds,"width",{get:function(){return window.innerWidth}}),Object.defineProperty(c.DOM.visualBounds,"height",{get:function(){return window.innerHeight}}),Object.defineProperty(c.DOM.layoutBounds,"width",{get:function(){var a=document.documentElement.clientWidth,b=window.innerWidth;return b>a?b:a}}),Object.defineProperty(c.DOM.layoutBounds,"height",{get:function(){var a=document.documentElement.clientHeight,b=window.innerHeight;return b>a?b:a}});Object.defineProperty(c.DOM.documentBounds,"x",{value:0}),Object.defineProperty(c.DOM.documentBounds,"y",{value:0}),Object.defineProperty(c.DOM.documentBounds,"width",{get:function(){var a=document.documentElement;return Math.max(a.clientWidth,a.offsetWidth,a.scrollWidth)}}),Object.defineProperty(c.DOM.documentBounds,"height",{get:function(){var a=document.documentElement;return Math.max(a.clientHeight,a.offsetHeight,a.scrollHeight)}})},null,!0),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 void 0===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){var c=["i","mozI","oI","webkitI","msI"];for(var d in c){var e=c[d]+"mageSmoothingEnabled";if(e in a)return a[e]=b,a}return 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.RequestAnimationFrame=function(a,b){void 0===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 void 0===c&&(c=1e-4),a>b-c},fuzzyCeil:function(a,b){return void 0===b&&(b=1e-4),Math.ceil(a-b)},fuzzyFloor:function(a,b){return void 0===b&&(b=1e-4),Math.floor(a+b)},average:function(){for(var a=0,b=0;b=0?a:a+2*Math.PI},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},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)},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)},roundAwayFromZero:function(a){return a>0?Math.ceil(a):Math.floor(a)},sinCosGenerator:function(a,b,c,d){void 0===b&&(b=1),void 0===c&&(c=1),void 0===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}},distance:function(a,b,c,d){var e=a-c,f=b-d;return Math.sqrt(e*e+f*f)},distanceSq:function(a,b,c,d){var e=a-c,f=b-d;return e*e+f*f},distancePow:function(a,b,c,d,e){return void 0===e&&(e=2),Math.sqrt(Math.pow(c-a,e)+Math.pow(d-b,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 void 0===c&&(c=0),a>b||c>b?1:c>a||c>a?0:(a-c)/b}};var j=Math.PI/180,k=180/Math.PI;return c.Math.degToRad=function(a){return a*j},c.Math.radToDeg=function(a){return a*k},c.RandomDataGenerator=function(a){void 0===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){if(this.s0=this.hash(" "),this.s1=this.hash(this.s0),this.s2=this.hash(this.s1),this.c=1,a)for(var b=0;b>>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)+.5)]},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){void 0===c&&(c=!1),(void 0===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){void 0===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.easeMap={Power0:c.Easing.Power0,Power1:c.Easing.Power1,Power2:c.Easing.Power2,Power3:c.Easing.Power3,Power4:c.Easing.Power4,Linear:c.Easing.Linear.None,Quad:c.Easing.Quadratic.Out,Cubic:c.Easing.Cubic.Out,Quart:c.Easing.Quartic.Out,Quint:c.Easing.Quintic.Out,Sine:c.Easing.Sinusoidal.Out,Expo:c.Easing.Exponential.Out,Circ:c.Easing.Circular.Out,Elastic:c.Easing.Elastic.Out,Back:c.Easing.Back.Out,Bounce:c.Easing.Bounce.Out,"Quad.easeIn":c.Easing.Quadratic.In,"Cubic.easeIn":c.Easing.Cubic.In,"Quart.easeIn":c.Easing.Quartic.In,"Quint.easeIn":c.Easing.Quintic.In,"Sine.easeIn":c.Easing.Sinusoidal.In,"Expo.easeIn":c.Easing.Exponential.In,"Circ.easeIn":c.Easing.Circular.In,"Elastic.easeIn":c.Easing.Elastic.In,"Back.easeIn":c.Easing.Back.In,"Bounce.easeIn":c.Easing.Bounce.In,"Quad.easeOut":c.Easing.Quadratic.Out,"Cubic.easeOut":c.Easing.Cubic.Out,"Quart.easeOut":c.Easing.Quartic.Out,"Quint.easeOut":c.Easing.Quintic.Out,"Sine.easeOut":c.Easing.Sinusoidal.Out,"Expo.easeOut":c.Easing.Exponential.Out,"Circ.easeOut":c.Easing.Circular.Out,"Elastic.easeOut":c.Easing.Elastic.Out,"Back.easeOut":c.Easing.Back.Out,"Bounce.easeOut":c.Easing.Bounce.Out,"Quad.easeInOut":c.Easing.Quadratic.InOut,"Cubic.easeInOut":c.Easing.Cubic.InOut,"Quart.easeInOut":c.Easing.Quartic.InOut,"Quint.easeInOut":c.Easing.Quintic.InOut,"Sine.easeInOut":c.Easing.Sinusoidal.InOut,"Expo.easeInOut":c.Easing.Exponential.InOut,"Circ.easeInOut":c.Easing.Circular.InOut,"Elastic.easeInOut":c.Easing.Elastic.InOut,"Back.easeInOut":c.Easing.Back.InOut,"Bounce.easeInOut":c.Easing.Bounce.InOut},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;ad;d++)this.removeFrom(a[d]);else if(a.type===c.GROUP&&b)for(var d=0,e=a.children.length;e>d;d++)this.removeFrom(a.children[d]);else{for(d=0,e=this._tweens.length;e>d;d++)a===this._tweens[d].target&&this.remove(this._tweens[d]);for(d=0,e=this._add.length;e>d;d++)a===this._add[d].target&&this.remove(this._add[d])}},add:function(a){a._manager=this,this._add.push(a)},create:function(a){return new c.Tween(a,this.game,this)},remove:function(a){var b=this._tweens.indexOf(a);-1!==b?this._tweens[b].pendingDelete=!0:(b=this._add.indexOf(a),-1!==b&&(this._add[b].pendingDelete=!0))},update:function(){var a=this._add.length,b=this._tweens.length;if(0===b&&0===a)return!1;for(var c=0;b>c;)this._tweens[c].update(this.game.time.time)?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.target===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.game=b,this.target=a,this.manager=d,this.timeline=[],this.reverse=!1,this.timeScale=1,this.repeatCounter=0,this.pendingDelete=!1,this.onStart=new c.Signal,this.onLoop=new c.Signal,this.onRepeat=new c.Signal,this.onChildComplete=new c.Signal,this.onComplete=new c.Signal,this.isRunning=!1,this.current=0,this.properties={},this.chainedTween=null,this.isPaused=!1,this._onUpdateCallback=null,this._onUpdateCallbackContext=null,this._pausedTime=0,this._codePaused=!1,this._hasStarted=!1},c.Tween.prototype={to:function(a,b,d,e,f,g,h){return(void 0===b||0>=b)&&(b=1e3),(void 0===d||null===d)&&(d=c.Easing.Default),void 0===e&&(e=!1),void 0===f&&(f=0),void 0===g&&(g=0),void 0===h&&(h=!1),"string"==typeof d&&this.manager.easeMap[d]&&(d=this.manager.easeMap[d]),this.isRunning?(console.warn("Phaser.Tween.to cannot be called after Tween.start"),this):(this.timeline.push(new c.TweenData(this).to(a,b,d,f,g,h)),e&&this.start(),this)},from:function(a,b,d,e,f,g,h){return void 0===b&&(b=1e3),(void 0===d||null===d)&&(d=c.Easing.Default),void 0===e&&(e=!1),void 0===f&&(f=0),void 0===g&&(g=0),void 0===h&&(h=!1),"string"==typeof d&&this.manager.easeMap[d]&&(d=this.manager.easeMap[d]),this.isRunning?(console.warn("Phaser.Tween.from cannot be called after Tween.start"),this):(this.timeline.push(new c.TweenData(this).from(a,b,d,f,g,h)),e&&this.start(),this)},start:function(a){if(void 0===a&&(a=0),null===this.game||null===this.target||0===this.timeline.length||this.isRunning)return this;for(var b=0;ba||a>this.timeline.length-1)&&(a=0),this.current=a,this.timeline[this.current].start(),this},stop:function(a){return void 0===a&&(a=!1),this.isRunning=!1,this._onUpdateCallback=null,this._onUpdateCallbackContext=null,a&&(this.onComplete.dispatch(this.target,this),this.chainedTween&&this.chainedTween.start()),this.manager.remove(this),this},updateTweenData:function(a,b,c){if(0===this.timeline.length)return this;if(void 0===c&&(c=0),-1===c)for(var d=0;d0?arguments[a-1].chainedTween=arguments[a]:this.chainedTween=arguments[a];return this},loop:function(a){return void 0===a&&(a=!0),a?this.repeatAll(-1):this.repeatCounter=0,this},onUpdateCallback:function(a,b){return this._onUpdateCallback=a,this._onUpdateCallbackContext=b,this},pause:function(){this.isPaused=!0,this._codePaused=!0,this._pausedTime=this.game.time.time},_pause:function(){this._codePaused||(this.isPaused=!0,this._pausedTime=this.game.time.time)},resume:function(){if(this.isPaused){this.isPaused=!1,this._codePaused=!1;for(var a=0;a0?(this.repeatCounter--,this.timeline[this.current].start(),this.onRepeat.dispatch(this.target,this),!0):(this.isRunning=!1,this.onComplete.dispatch(this.target,this),this.chainedTween&&this.chainedTween.start(),!1):(this.onChildComplete.dispatch(this.target,this),this.timeline[this.current].start(),!0)}},generateData:function(a,b){if(null===this.game||null===this.target)return null;void 0===a&&(a=60),void 0===b&&(b=[]);for(var c=0;c0?!1:!0,this.isFrom)for(var a in this.vStartCache)this.vStart[a]=this.vEndCache[a],this.vEnd[a]=this.vStartCache[a],this.parent.target[a]=this.vStart[a];return this.value=0,this.yoyoCounter=0,this},loadValues:function(){for(var a in this.parent.properties){if(this.vStart[a]=this.parent.properties[a],Array.isArray(this.vEnd[a])){if(0===this.vEnd[a].length)continue;0===this.percent&&(this.vEnd[a]=[this.vStart[a]].concat(this.vEnd[a]))}"undefined"!=typeof this.vEnd[a]?("string"==typeof this.vEnd[a]&&(this.vEnd[a]=this.vStart[a]+parseFloat(this.vEnd[a],10)),this.parent.properties[a]=this.vEnd[a]):this.vEnd[a]=this.vStart[a],this.vStartCache[a]=this.vStart[a],this.vEndCache[a]=this.vEnd[a]}return this},update:function(a){if(this.isRunning){if(a=this.startTime))return c.TweenData.PENDING;this.isRunning=!0}this.parent.reverse?(this.dt-=this.game.time.elapsedMS*this.parent.timeScale,this.dt=Math.max(this.dt,0)):(this.dt+=this.game.time.elapsedMS*this.parent.timeScale,this.dt=Math.min(this.dt,this.duration)),this.percent=this.dt/this.duration,this.value=this.easingFunction(this.percent);for(var b in this.vEnd){var d=this.vStart[b],e=this.vEnd[b];this.parent.target[b]=Array.isArray(e)?this.interpolationFunction.call(this.interpolationContext,e,this.value):d+(e-d)*this.value}return!this.parent.reverse&&1===this.percent||this.parent.reverse&&0===this.percent?this.repeat():c.TweenData.RUNNING},generateData:function(a){this.dt=this.parent.reverse?this.duration:0;var b=[],c=!1,d=1/a*1e3;do{this.parent.reverse?(this.dt-=d,this.dt=Math.max(this.dt,0)):(this.dt+=d,this.dt=Math.min(this.dt,this.duration)),this.percent=this.dt/this.duration,this.value=this.easingFunction(this.percent);var e={};for(var f in this.vEnd){var g=this.vStart[f],h=this.vEnd[f];e[f]=Array.isArray(h)?this.interpolationFunction(h,this.value):g+(h-g)*this.value}b.push(e),(!this.parent.reverse&&1===this.percent||this.parent.reverse&&0===this.percent)&&(c=!0)}while(!c);if(this.yoyo){var i=b.slice();i.reverse(),b=b.concat(i)}return b},repeat:function(){if(this.yoyo){if(this.inReverse&&0===this.repeatCounter)return c.TweenData.COMPLETE;this.inReverse=!this.inReverse}else if(0===this.repeatCounter)return c.TweenData.COMPLETE;if(this.inReverse)for(var a in this.vStartCache)this.vStart[a]=this.vEndCache[a],this.vEnd[a]=this.vStartCache[a];else{for(var a in this.vStartCache)this.vStart[a]=this.vStartCache[a],this.vEnd[a]=this.vEndCache[a];this.repeatCounter>0&&this.repeatCounter--}return this.startTime=this.game.time.time,this.yoyo&&this.inReverse?this.startTime+=this.yoyoDelay:this.inReverse||(this.startTime+=this.repeatDelay),this.dt=this.parent.reverse?this.duration:0,c.TweenData.LOOPED}},c.TweenData.prototype.constructor=c.TweenData,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 0===a?0:1===a?1:1-Math.cos(a*Math.PI/2)},Out:function(a){return 0===a?0:1===a?1:Math.sin(a*Math.PI/2)},InOut:function(a){return 0===a?0:1===a?1:.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.Easing.Power0=c.Easing.Linear.None,c.Easing.Power1=c.Easing.Quadratic.Out,c.Easing.Power2=c.Easing.Cubic.Out,c.Easing.Power3=c.Easing.Quartic.Out,c.Easing.Power4=c.Easing.Quintic.Out,c.Time=function(a){this.game=a,this.time=0,this.prevTime=0,this.now=0,this.elapsed=0,this.elapsedMS=0,this.physicsElapsed=0,this.physicsElapsedMS=0,this.desiredFps=60,this.suggestedFps=null,this.slowMotion=1,this.advancedTiming=!1,this.frames=0,this.fps=0,this.fpsMin=1e3,this.fpsMax=0,this.msMin=1e3,this.msMax=0,this.pauseDuration=0,this.timeToCall=0,this.timeExpected=0,this.events=new c.Timer(this.game,!1),this._frameCount=0,this._elapsedAccumulator=0,this._started=0,this._timeLastSecond=0,this._pauseStarted=0,this._justResumed=!1,this._timers=[]},c.Time.prototype={boot:function(){this._started=Date.now(),this.time=Date.now(),this.events.start()},add:function(a){return this._timers.push(a),a},create:function(a){void 0===a&&(a=!0);var b=new c.Timer(this.game,a);return this._timers.push(b),b},removeAll:function(){for(var a=0;aa;)this._timers[a].update(this.time)?a++:(this._timers.splice(a,1),b--)},updateAdvancedTiming:function(){this._frameCount++,this._elapsedAccumulator+=this.elapsed,this._frameCount>=2*this.desiredFps&&(this.suggestedFps=5*Math.floor(200/(this._elapsedAccumulator/this._frameCount)),this._frameCount=0,this._elapsedAccumulator=0),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)},gamePaused:function(){this._pauseStarted=Date.now(),this.events.pause();for(var a=this._timers.length;a--;)this._timers[a]._pause()},gameResumed:function(){this.time=Date.now(),this.pauseDuration=this.time-this._pauseStarted,this.events.resume();for(var a=this._timers.length;a--;)this._timers[a]._resume()},totalElapsedSeconds:function(){return.001*(this.time-this._started)},elapsedSince:function(a){return this.time-a},elapsedSecondsSince:function(a){return.001*(this.time-a)},reset:function(){this._started=this.time,this.removeAll()}},c.Time.prototype.constructor=c.Time,c.Timer=function(a,b){void 0===b&&(b=!0),this.game=a,this.running=!1,this.autoDestroy=b,this.expired=!1,this.elapsed=0,this.events=[],this.onComplete=new c.Signal,this.nextTick=0,this.timeCap=1e3,this.paused=!1,this._codePaused=!1,this._started=0,this._pauseStarted=0,this._pauseTotal=0,this._now=Date.now(),this._len=0,this._marked=0,this._i=0,this._diff=0,this._newTick=0},c.Timer.MINUTE=6e4,c.Timer.SECOND=1e3,c.Timer.HALF=500,c.Timer.QUARTER=250,c.Timer.prototype={create:function(a,b,d,e,f,g){a=Math.round(a);var h=a;h+=0===this._now?this.game.time.time:this._now;var i=new c.TimerEvent(this,a,h,d,b,e,f,g);return this.events.push(i),this.order(),this.expired=!1,i},add:function(a,b,c){return this.create(a,!1,0,b,c,Array.prototype.splice.call(arguments,3))},repeat:function(a,b,c,d){return this.create(a,!1,b,c,d,Array.prototype.splice.call(arguments,4))},loop:function(a,b,c){return this.create(a,!0,0,b,c,Array.prototype.splice.call(arguments,3))},start:function(a){if(!this.running){this._started=this.game.time.time+(a||0),this.running=!0;for(var b=0;b0&&(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.events[this._i].pendingDelete;)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},destroy:function(){this.onComplete.removeAll(),this.running=!1,this.events=[],this._len=0,this._i=0}},Object.defineProperty(c.Timer.prototype,"next",{get:function(){return this.nextTick}}),Object.defineProperty(c.Timer.prototype,"duration",{get:function(){return this.running&&this.nextTick>this._now?this.nextTick-this._now:0}}),Object.defineProperty(c.Timer.prototype,"length",{get:function(){return this.events.length}}),Object.defineProperty(c.Timer.prototype,"ms",{get:function(){return this.running?this._now-this._started-this._pauseTotal:0}}),Object.defineProperty(c.Timer.prototype,"seconds",{get:function(){return this.running?.001*this.ms:0}}),c.Timer.prototype.constructor=c.Timer,c.TimerEvent=function(a,b,c,d,e,f,g,h){this.timer=a,this.delay=b,this.tick=c,this.repeatCount=d-1,this.loop=e,this.callback=f,this.callbackContext=g,this.args=h,this.pendingDelete=!1},c.TimerEvent.prototype.constructor=c.TimerEvent,c.AnimationManager=function(a){this.sprite=a,this.game=a.game,this.currentFrame=null,this.currentAnim=null,this.updateIfVisible=!0,this.isLoaded=!1,this._frameData=null,this._anims={},this._outputFrames=[]},c.AnimationManager.prototype={loadFrameData:function(a,b){if(void 0===a)return!1;if(this.isLoaded)for(var c in this._anims)this._anims[c].updateFrameData(a);return this._frameData=a,void 0===b||null===b?this.frame=0:"string"==typeof b?this.frameName=b:this.frame=b,this.isLoaded=!0,!0},copyFrameData:function(a,b){if(this._frameData=a.clone(),this.isLoaded)for(var c in this._anims)this._anims[c].updateFrameData(this._frameData);return void 0===b||null===b?this.frame=0:"string"==typeof b?this.frameName=b:this.frame=b,this.isLoaded=!0,!0},add:function(a,b,d,e,f){return b=b||[],d=d||60,void 0===e&&(e=!1),void 0===f&&(f=b&&"number"==typeof b[0]?!0:!1),this._outputFrames=[],this._frameData.getFrameIndexes(b,f,this._outputFrames),this._anims[a]=new c.Animation(this.game,this.sprite,a,this._frameData,this._outputFrames,d,e),this.currentAnim=this._anims[a],this.sprite.tilingTexture&&(this.sprite.refreshTexture=!0),this._anims[a]},validateFrames:function(a,b){void 0===b&&(b=!0);for(var c=0;cthis._frameData.total)return!1}else if(this._frameData.checkFrameName(a[c])===!1)return!1;return!0},play:function(a,b,c,d){return this._anims[a]?this.currentAnim===this._anims[a]?this.currentAnim.isPlaying===!1?(this.currentAnim.paused=!1,this.currentAnim.play(b,c,d)):this.currentAnim:(this.currentAnim&&this.currentAnim.isPlaying&&this.currentAnim.stop(),this.currentAnim=this._anims[a],this.currentAnim.paused=!1,this.currentFrame=this.currentAnim.currentFrame,this.currentAnim.play(b,c,d)):void 0},stop:function(a,b){void 0===b&&(b=!1),"string"==typeof a?this._anims[a]&&(this.currentAnim=this._anims[a],this.currentAnim.stop(b)):this.currentAnim&&this.currentAnim.stop(b)},update:function(){return this.updateIfVisible&&!this.sprite.visible?!1:this.currentAnim&&this.currentAnim.update()?(this.currentFrame=this.currentAnim.currentFrame,!0):!1},next:function(a){this.currentAnim&&(this.currentAnim.next(a),this.currentFrame=this.currentAnim.currentFrame)},previous:function(a){this.currentAnim&&(this.currentAnim.previous(a),this.currentFrame=this.currentAnim.currentFrame)},getAnimation:function(a){return"string"==typeof a&&this._anims[a]?this._anims[a]:null},refreshFrame:function(){this.sprite.setTexture(PIXI.TextureCache[this.currentFrame.uuid])},destroy:function(){var a=null;for(var a in this._anims)this._anims.hasOwnProperty(a)&&this._anims[a].destroy();this._anims={},this._outputFrames=[],this._frameData=null,this.currentAnim=null,this.currentFrame=null,this.sprite=null,this.game=null}},c.AnimationManager.prototype.constructor=c.AnimationManager,Object.defineProperty(c.AnimationManager.prototype,"frameData",{get:function(){return this._frameData}}),Object.defineProperty(c.AnimationManager.prototype,"frameTotal",{get:function(){return this._frameData.total}}),Object.defineProperty(c.AnimationManager.prototype,"paused",{get:function(){return this.currentAnim.isPaused},set:function(a){this.currentAnim.paused=a}}),Object.defineProperty(c.AnimationManager.prototype,"name",{get:function(){return this.currentAnim?this.currentAnim.name:void 0}}),Object.defineProperty(c.AnimationManager.prototype,"frame",{get:function(){return this.currentFrame?this.currentFrame.index:void 0},set:function(a){"number"==typeof a&&this._frameData&&null!==this._frameData.getFrame(a)&&(this.currentFrame=this._frameData.getFrame(a),this.currentFrame&&this.sprite.setFrame(this.currentFrame))}}),Object.defineProperty(c.AnimationManager.prototype,"frameName",{get:function(){return this.currentFrame?this.currentFrame.name:void 0},set:function(a){"string"==typeof a&&this._frameData&&null!==this._frameData.getFrameByName(a)?(this.currentFrame=this._frameData.getFrameByName(a),this.currentFrame&&(this._frameIndex=this.currentFrame.index,this.sprite.setFrame(this.currentFrame))):console.warn("Cannot set frameName: "+a)}}),c.Animation=function(a,b,d,e,f,g,h){void 0===h&&(h=!1),this.game=a,this._parent=b,this._frameData=e,this.name=d,this._frames=[],this._frames=this._frames.concat(f),this.delay=1e3/g,this.loop=h,this.loopCount=0,this.killOnComplete=!1,this.isFinished=!1,this.isPlaying=!1,this.isPaused=!1,this._pauseStartTime=0,this._frameIndex=0,this._frameDiff=0,this._frameSkip=1,this.currentFrame=this._frameData.getFrame(this._frames[this._frameIndex]),this.onStart=new c.Signal,this.onUpdate=null,this.onComplete=new c.Signal,this.onLoop=new c.Signal,this.game.onPause.add(this.onPause,this),this.game.onResume.add(this.onResume,this)},c.Animation.prototype={play:function(a,b,c){return"number"==typeof a&&(this.delay=1e3/a),"boolean"==typeof b&&(this.loop=b),"undefined"!=typeof c&&(this.killOnComplete=c),this.isPlaying=!0,this.isFinished=!1,this.paused=!1,this.loopCount=0,this._timeLastFrame=this.game.time.time,this._timeNextFrame=this.game.time.time+this.delay,this._frameIndex=0,this.updateCurrentFrame(!1,!0),this._parent.events.onAnimationStart$dispatch(this._parent,this),this.onStart.dispatch(this._parent,this),this._parent.animations.currentAnim=this,this._parent.animations.currentFrame=this.currentFrame,this},restart:function(){this.isPlaying=!0,this.isFinished=!1,this.paused=!1,this.loopCount=0,this._timeLastFrame=this.game.time.time,this._timeNextFrame=this.game.time.time+this.delay,this._frameIndex=0,this.currentFrame=this._frameData.getFrame(this._frames[this._frameIndex]),this._parent.setFrame(this.currentFrame),this._parent.animations.currentAnim=this,this._parent.animations.currentFrame=this.currentFrame,this.onStart.dispatch(this._parent,this)},setFrame:function(a,b){var c;if(void 0===b&&(b=!1),"string"==typeof a)for(var d=0;d=this._timeNextFrame?(this._frameSkip=1,this._frameDiff=this.game.time.time-this._timeNextFrame,this._timeLastFrame=this.game.time.time,this._frameDiff>this.delay&&(this._frameSkip=Math.floor(this._frameDiff/this.delay),this._frameDiff-=this._frameSkip*this.delay),this._timeNextFrame=this.game.time.time+(this.delay-this._frameDiff),this._frameIndex+=this._frameSkip,this._frameIndex>=this._frames.length?this.loop?(this._frameIndex%=this._frames.length,this.currentFrame=this._frameData.getFrame(this._frames[this._frameIndex]),this.currentFrame&&this._parent.setFrame(this.currentFrame),this.loopCount++,this._parent.events.onAnimationLoop$dispatch(this._parent,this),this.onLoop.dispatch(this._parent,this),this.onUpdate?(this.onUpdate.dispatch(this,this.currentFrame),!!this._frameData):!0):(this.complete(),!1):this.updateCurrentFrame(!0)):!1},updateCurrentFrame:function(a,b){if(void 0===b&&(b=!1),!this._frameData)return!1;var c=this.currentFrame.index;return this.currentFrame=this._frameData.getFrame(this._frames[this._frameIndex]),this.currentFrame&&(b||!b&&c!==this.currentFrame.index)&&this._parent.setFrame(this.currentFrame),this.onUpdate&&a?(this.onUpdate.dispatch(this,this.currentFrame),!!this._frameData):!0},next:function(a){void 0===a&&(a=1);var b=this._frameIndex+a;b>=this._frames.length&&(this.loop?b%=this._frames.length:b=this._frames.length-1),b!==this._frameIndex&&(this._frameIndex=b,this.updateCurrentFrame(!0))},previous:function(a){void 0===a&&(a=1);var b=this._frameIndex-a;0>b&&(this.loop?b=this._frames.length+b:b++),b!==this._frameIndex&&(this._frameIndex=b,this.updateCurrentFrame(!0))},updateFrameData:function(a){this._frameData=a,this.currentFrame=this._frameData?this._frameData.getFrame(this._frames[this._frameIndex%this._frames.length]):null},destroy:function(){this._frameData&&(this.game.onPause.remove(this.onPause,this),this.game.onResume.remove(this.onResume,this),this.game=null,this._parent=null,this._frames=null,this._frameData=null,this.currentFrame=null,this.isPlaying=!1,this.onStart.dispose(),this.onLoop.dispose(),this.onComplete.dispose(),this.onUpdate&&this.onUpdate.dispose())},complete:function(){this._frameIndex=this._frames.length-1,this.currentFrame=this._frameData.getFrame(this._frames[this._frameIndex]),this.isPlaying=!1,this.isFinished=!0,this.paused=!1,this._parent.events.onAnimationComplete$dispatch(this._parent,this),this.onComplete.dispatch(this._parent,this),this.killOnComplete&&this._parent.kill()}},c.Animation.prototype.constructor=c.Animation,Object.defineProperty(c.Animation.prototype,"paused",{get:function(){return this.isPaused},set:function(a){this.isPaused=a,a?this._pauseStartTime=this.game.time.time:this.isPlaying&&(this._timeNextFrame=this.game.time.time+this.delay)}}),Object.defineProperty(c.Animation.prototype,"frameTotal",{get:function(){return this._frames.length}}),Object.defineProperty(c.Animation.prototype,"frame",{get:function(){return null!==this.currentFrame?this.currentFrame.index:this._frameIndex},set:function(a){this.currentFrame=this._frameData.getFrame(this._frames[a]),null!==this.currentFrame&&(this._frameIndex=a,this._parent.setFrame(this.currentFrame),this.onUpdate&&this.onUpdate.dispatch(this,this.currentFrame))}}),Object.defineProperty(c.Animation.prototype,"speed",{get:function(){return Math.round(1e3/this.delay)},set:function(a){a>=1&&(this.delay=1e3/a)}}),Object.defineProperty(c.Animation.prototype,"enableUpdate",{get:function(){return null!==this.onUpdate},set:function(a){a&&null===this.onUpdate?this.onUpdate=new c.Signal:a||null===this.onUpdate||(this.onUpdate.dispose(),this.onUpdate=null)}}),c.Animation.generateFrameNames=function(a,b,d,e,f){void 0===e&&(e="");var g=[],h="";if(d>b)for(var i=b;d>=i;i++)h="number"==typeof f?c.Utils.pad(i.toString(),f,"0",1):i.toString(),h=a+h+e,g.push(h);else for(var i=b;i>=d;i--)h="number"==typeof f?c.Utils.pad(i.toString(),f,"0",1):i.toString(),h=a+h+e,g.push(h);return g},c.Frame=function(a,b,d,e,f,g){this.index=a,this.x=b,this.y=d,this.width=e,this.height=f,this.name=g,this.centerX=Math.floor(e/2),this.centerY=Math.floor(f/2),this.distance=c.Math.distance(0,0,e,f),this.rotated=!1,this.rotationDirection="cw",this.trimmed=!1,this.sourceSizeW=e,this.sourceSizeH=f,this.spriteSourceSizeX=0,this.spriteSourceSizeY=0,this.spriteSourceSizeW=0,this.spriteSourceSizeH=0,this.right=this.x+this.width,this.bottom=this.y+this.height},c.Frame.prototype={resize:function(a,b){this.width=a,this.height=b,this.centerX=Math.floor(a/2),this.centerY=Math.floor(b/2),this.distance=c.Math.distance(0,0,a,b),this.sourceSizeW=a,this.sourceSizeH=b,this.right=this.x+a,this.bottom=this.y+b},setTrim:function(a,b,c,d,e,f,g){this.trimmed=a,a&&(this.sourceSizeW=b,this.sourceSizeH=c,this.centerX=Math.floor(b/2),this.centerY=Math.floor(c/2),this.spriteSourceSizeX=d,this.spriteSourceSizeY=e,this.spriteSourceSizeW=f,this.spriteSourceSizeH=g)},clone:function(){var a=new c.Frame(this.index,this.x,this.y,this.width,this.height,this.name);for(var b in this)this.hasOwnProperty(b)&&(a[b]=this[b]);return a},getRect:function(a){return void 0===a?a=new c.Rectangle(this.x,this.y,this.width,this.height):a.setTo(this.x,this.y,this.width,this.height),a}},c.Frame.prototype.constructor=c.Frame,c.FrameData=function(){this._frames=[],this._frameNames=[]},c.FrameData.prototype={addFrame:function(a){return a.index=this._frames.length,this._frames.push(a),""!==a.name&&(this._frameNames[a.name]=a.index),a},getFrame:function(a){return a>=this._frames.length&&(a=0),this._frames[a]},getFrameByName:function(a){return"number"==typeof this._frameNames[a]?this._frames[this._frameNames[a]]:null},checkFrameName:function(a){return null==this._frameNames[a]?!1:!0},clone:function(){for(var a=new c.FrameData,b=0;b=d;d++)c.push(this._frames[d]);return c},getFrames:function(a,b,c){if(void 0===b&&(b=!0),void 0===c&&(c=[]),void 0===a||0===a.length)for(var d=0;d=d&&(d=Math.floor(-j/Math.min(-1,d))),0>=e&&(e=Math.floor(-k/Math.min(-1,e)));var l=Math.floor((j-g)/(d+h)),m=Math.floor((k-g)/(e+h)),n=l*m;if(-1!==f&&(n=f),0===j||0===k||d>j||e>k||0===n)return console.warn("Phaser.AnimationParser.spriteSheet: '"+b+"'s width/height zero or width/height < given frameWidth/frameHeight"),null;for(var o=new c.FrameData,p=g,q=g,r=0;n>r;r++)o.addFrame(new c.Frame(r,p,q,d,e,"")),p+=d+h,p+d>j&&(p=g,q+=e+h);return o},JSONData:function(a,b){if(!b.frames)return console.warn("Phaser.AnimationParser.JSONData: Invalid Texture Atlas JSON given, missing 'frames' array"),void console.log(b);for(var d,e=new c.FrameData,f=b.frames,g=0;g tag");for(var d,e,f,g,h,i,j,k,l,m,n,o=new c.FrameData,p=b.getElementsByTagName("SubTexture"),q=0;q-1},getAssetIndex:function(a,b){for(var c=-1,d=0;d-1?{index:c,file:this._fileList[c]}:!1},reset:function(a,b){void 0===b&&(b=!1),this.resetLocked||(a&&(this.preloadSprite=null),this.isLoading=!1,this._processingHead=0,this._fileList.length=0,this._flightQueue.length=0,this._fileLoadStarted=!1,this._totalFileCount=0,this._totalPackCount=0,this._loadedPackCount=0,this._loadedFileCount=0,b&&(this.onLoadStart.removeAll(),this.onLoadComplete.removeAll(),this.onPackComplete.removeAll(),this.onFileStart.removeAll(),this.onFileComplete.removeAll(),this.onFileError.removeAll()))},addToFileList:function(a,b,c,d,e,f){if(void 0===e&&(e=!1),void 0===b||""===b)return console.warn("Phaser.Loader: Invalid or no key given of type "+a),this;if(void 0===c||null===c){if(!f)return console.warn("Phaser.Loader: No URL given for file type: "+a+" key: "+b),this;c=b+f}var g={type:a,key:b,path:this.path,url:c,syncPoint:this._withSyncPointDepth>0,data:null,loading:!1,loaded:!1,error:!1};if(d)for(var h in d)g[h]=d[h];var i=this.getAssetIndex(a,b);if(e&&i>-1){var j=this._fileList[i];j.loading||j.loaded?(this._fileList.push(g),this._totalFileCount++):this._fileList[i]=g}else-1===i&&(this._fileList.push(g),this._totalFileCount++);return this},replaceInFileList:function(a,b,c,d){return this.addToFileList(a,b,c,d,!0)},pack:function(a,b,c,d){if(void 0===b&&(b=null),void 0===c&&(c=null),void 0===d&&(d=null),!b&&!c)return console.warn("Phaser.Loader.pack - Both url and data are null. One must be set."),this;var e={type:"packfile",key:a,url:b,path:this.path,syncPoint:!0,data:null,loading:!1,loaded:!1,error:!1,callbackContext:d};c&&("string"==typeof c&&(c=JSON.parse(c)),e.data=c||{},e.loaded=!0);for(var f=0;f=e||d&&this._loadedPackCount===this._totalPackCount)break}if(this.updateProgress(),this._processingHead>=this._fileList.length)this.finishedLoading();else if(!this._flightQueue.length){console.warn("Phaser.Loader - aborting: processing queue empty, loading may have stalled");var f=this;setTimeout(function(){f.finishedLoading(!0)},2e3)}},finishedLoading:function(a){this.hasLoaded||(this.hasLoaded=!0,this.isLoading=!1,a||this._fileLoadStarted||(this._fileLoadStarted=!0,this.onLoadStart.dispatch()),this.onLoadComplete.dispatch(),this.reset(),this.game.state.loadComplete())},asyncComplete:function(a,b){void 0===b&&(b=""),a.loaded=!0,a.error=!!b,b&&(a.errorMessage=b,console.warn("Phaser.Loader - "+a.type+"["+a.key+"]: "+b)),this.processLoadQueue()},processPack:function(a){var b=a.data[a.key];if(!b)return void console.warn("Phaser.Loader - "+a.key+": pack has data, but not for pack key");for(var d=0;d=10)||(this._warnedAboutXDomainRequest=!0,console.warn("Phaser.Loader - using XDomainRequest outside of IE 9"));var f=new window.XDomainRequest;f.open("GET",b,!0),f.responseType=c,f.timeout=3e3,e=e||this.fileError;var g=this;f.onerror=function(){try{return e.call(g,a,f)}catch(b){g.asyncComplete(a,b.message||"Exception")}},f.ontimeout=function(){try{return e.call(g,a,f)}catch(b){g.asyncComplete(a,b.message||"Exception")}},f.onprogress=function(){},f.onload=function(){try{return d.call(g,a,f)}catch(b){g.asyncComplete(a,b.message||"Exception")}},a.requestObject=f,a.requestUrl=b,setTimeout(function(){f.send()},0)},getVideoURL:function(a){for(var b=0;b=0&&(d=d.substr(0,d.indexOf("?")));var e=d.substr((Math.max(0,d.lastIndexOf("."))||1/0)+1);c=e.toLowerCase()}if(this.game.device.canPlayVideo(c))return a[b]}return null},getAudioURL:function(a){if(this.game.sound.noAudio)return null;for(var b=0;b=0&&(d=d.substr(0,d.indexOf("?")));var e=d.substr((Math.max(0,d.lastIndexOf("."))||1/0)+1);c=e.toLowerCase()}if(this.game.device.canPlayAudio(c))return a[b]}return null},fileError:function(a,b,c){var d=a.requestUrl||this.transformUrl(a.url,a),e="error loading asset from URL "+d;!c&&b&&(c=b.status),c&&(e=e+" ("+c+")"),this.asyncComplete(a,e)},fileComplete:function(a,b){var d=!0;switch(a.type){case"packfile":var e=JSON.parse(b.responseText);a.data=e||{};break;case"image":this.cache.addImage(a.key,a.url,a.data);break;case"spritesheet":this.cache.addSpriteSheet(a.key,a.url,a.data,a.frameWidth,a.frameHeight,a.frameMax,a.margin,a.spacing);break;case"textureatlas":if(null==a.atlasURL)this.cache.addTextureAtlas(a.key,a.url,a.data,a.atlasData,a.format);else if(d=!1,a.format==c.Loader.TEXTURE_ATLAS_JSON_ARRAY||a.format==c.Loader.TEXTURE_ATLAS_JSON_HASH)this.xhrLoad(a,this.transformUrl(a.atlasURL,a),"text",this.jsonLoadComplete);else{if(a.format!=c.Loader.TEXTURE_ATLAS_XML_STARLING)throw new Error("Phaser.Loader. Invalid Texture Atlas format: "+a.format);this.xhrLoad(a,this.transformUrl(a.atlasURL,a),"text",this.xmlLoadComplete)}break;case"bitmapfont":a.atlasURL?(d=!1,this.xhrLoad(a,this.transformUrl(a.atlasURL,a),"text",function(a,b){var c;try{c=JSON.parse(b.responseText)}catch(d){}c?(a.atlasType="json",this.jsonLoadComplete(a,b)):(a.atlasType="xml",this.xmlLoadComplete(a,b))})):this.cache.addBitmapFont(a.key,a.url,a.data,a.atlasData,a.atlasType,a.xSpacing,a.ySpacing);break;case"video":if(a.asBlob)try{a.data=new Blob([new Uint8Array(b.response)])}catch(f){throw new Error("Phaser.Loader. Unable to parse video file as Blob: "+a.key)}this.cache.addVideo(a.key,a.url,a.data,a.asBlob);break;case"audio":this.game.sound.usingWebAudio?(a.data=b.response,this.cache.addSound(a.key,a.url,a.data,!0,!1),a.autoDecode&&this.game.sound.decode(a.key)):this.cache.addSound(a.key,a.url,a.data,!1,!0);break;case"text":a.data=b.responseText,this.cache.addText(a.key,a.url,a.data);break;case"shader":a.data=b.responseText,this.cache.addShader(a.key,a.url,a.data);break;case"physics":var e=JSON.parse(b.responseText);this.cache.addPhysicsData(a.key,a.url,e,a.format);break;case"script":a.data=document.createElement("script"),a.data.language="javascript",a.data.type="text/javascript",a.data.defer=!1,a.data.text=b.responseText,document.head.appendChild(a.data),a.callback&&(a.data=a.callback.call(a.callbackContext,a.key,b.responseText));break;case"binary":a.data=a.callback?a.callback.call(a.callbackContext,a.key,b.response):b.response,this.cache.addBinary(a.key,a.data)}d&&this.asyncComplete(a)},jsonLoadComplete:function(a,b){var c=JSON.parse(b.responseText);"tilemap"===a.type?this.cache.addTilemap(a.key,a.url,c,a.format):"bitmapfont"===a.type?this.cache.addBitmapFont(a.key,a.url,a.data,c,a.atlasType,a.xSpacing,a.ySpacing):"json"===a.type?this.cache.addJSON(a.key,a.url,c):this.cache.addTextureAtlas(a.key,a.url,a.data,c,a.format),this.asyncComplete(a)},csvLoadComplete:function(a,b){var c=b.responseText;this.cache.addTilemap(a.key,a.url,c,a.format),this.asyncComplete(a)},xmlLoadComplete:function(a,b){var c=b.responseText,d=this.parseXml(c);if(!d){var e=b.responseType||b.contentType;return console.warn("Phaser.Loader - "+a.key+": invalid XML ("+e+")"),void this.asyncComplete(a,"invalid XML")}"bitmapfont"===a.type?this.cache.addBitmapFont(a.key,a.url,a.data,d,a.atlasType,a.xSpacing,a.ySpacing):"textureatlas"===a.type?this.cache.addTextureAtlas(a.key,a.url,a.data,d,a.format):"xml"===a.type&&this.cache.addXML(a.key,a.url,d),this.asyncComplete(a)},parseXml:function(a){var b;try{if(window.DOMParser){var c=new DOMParser;b=c.parseFromString(a,"text/xml")}else b=new ActiveXObject("Microsoft.XMLDOM"),b.async="false",b.loadXML(a)}catch(d){b=null}return b&&b.documentElement&&!b.getElementsByTagName("parsererror").length?b:null},updateProgress:function(){this.preloadSprite&&(0===this.preloadSprite.direction?this.preloadSprite.rect.width=Math.floor(this.preloadSprite.width/100*this.progress):this.preloadSprite.rect.height=Math.floor(this.preloadSprite.height/100*this.progress),this.preloadSprite.sprite?this.preloadSprite.sprite.updateCrop():this.preloadSprite=null)},totalLoadedFiles:function(){return this._loadedFileCount},totalQueuedFiles:function(){return this._totalFileCount-this._loadedFileCount},totalLoadedPacks:function(){return this._totalPackCount},totalQueuedPacks:function(){return this._totalPackCount-this._loadedPackCount}},Object.defineProperty(c.Loader.prototype,"progressFloat",{get:function(){var a=this._loadedFileCount/this._totalFileCount*100;return c.Math.clamp(a||0,0,100)}}),Object.defineProperty(c.Loader.prototype,"progress",{get:function(){return Math.round(this.progressFloat)}}),c.Loader.prototype.constructor=c.Loader,c.LoaderParser={bitmapFont:function(a,b,c,d){return this.xmlBitmapFont(a,b,c,d)},xmlBitmapFont:function(a,b,c,d){var e={},f=a.getElementsByTagName("info")[0],g=a.getElementsByTagName("common")[0];e.font=f.getAttribute("face"),e.size=parseInt(f.getAttribute("size"),10),e.lineHeight=parseInt(g.getAttribute("lineHeight"),10)+d,e.chars={};for(var h=a.getElementsByTagName("char"),i=0;i-1},getAssetIndex:function(a,b){for(var c=-1,d=0;d-1?{index:c,file:this._fileList[c]}:!1},reset:function(a,b){void 0===b&&(b=!1),this.resetLocked||(a&&(this.preloadSprite=null),this.isLoading=!1,this._processingHead=0,this._fileList.length=0,this._flightQueue.length=0,this._fileLoadStarted=!1,this._totalFileCount=0,this._totalPackCount=0,this._loadedPackCount=0,this._loadedFileCount=0,b&&(this.onLoadStart.removeAll(),this.onLoadComplete.removeAll(),this.onPackComplete.removeAll(),this.onFileStart.removeAll(),this.onFileComplete.removeAll(),this.onFileError.removeAll()))},addToFileList:function(a,b,c,d,e,f){if(void 0===e&&(e=!1),void 0===b||""===b)return console.warn("Phaser.Loader: Invalid or no key given of type "+a),this;if(void 0===c||null===c){if(!f)return console.warn("Phaser.Loader: No URL given for file type: "+a+" key: "+b),this;c=b+f}var g={type:a,key:b,path:this.path,url:c,syncPoint:this._withSyncPointDepth>0,data:null,loading:!1,loaded:!1,error:!1};if(d)for(var h in d)g[h]=d[h];var i=this.getAssetIndex(a,b);if(e&&i>-1){var j=this._fileList[i];j.loading||j.loaded?(this._fileList.push(g),this._totalFileCount++):this._fileList[i]=g}else-1===i&&(this._fileList.push(g),this._totalFileCount++);return this},replaceInFileList:function(a,b,c,d){return this.addToFileList(a,b,c,d,!0)},pack:function(a,b,c,d){if(void 0===b&&(b=null),void 0===c&&(c=null),void 0===d&&(d=null),!b&&!c)return console.warn("Phaser.Loader.pack - Both url and data are null. One must be set."),this;var e={type:"packfile",key:a,url:b,path:this.path,syncPoint:!0,data:null,loading:!1,loaded:!1,error:!1,callbackContext:d};c&&("string"==typeof c&&(c=JSON.parse(c)),e.data=c||{},e.loaded=!0);for(var f=0;f=e||d&&this._loadedPackCount===this._totalPackCount)break}if(this.updateProgress(),this._processingHead>=this._fileList.length)this.finishedLoading();else if(!this._flightQueue.length){console.warn("Phaser.Loader - aborting: processing queue empty, loading may have stalled");var f=this;setTimeout(function(){f.finishedLoading(!0)},2e3)}},finishedLoading:function(a){this.hasLoaded||(this.hasLoaded=!0,this.isLoading=!1,a||this._fileLoadStarted||(this._fileLoadStarted=!0,this.onLoadStart.dispatch()),this.onLoadComplete.dispatch(),this.reset(),this.game.state.loadComplete())},asyncComplete:function(a,b){void 0===b&&(b=""),a.loaded=!0,a.error=!!b,b&&(a.errorMessage=b,console.warn("Phaser.Loader - "+a.type+"["+a.key+"]: "+b)),this.processLoadQueue()},processPack:function(a){var b=a.data[a.key];if(!b)return void console.warn("Phaser.Loader - "+a.key+": pack has data, but not for pack key");for(var d=0;d=10)||(this._warnedAboutXDomainRequest=!0,console.warn("Phaser.Loader - using XDomainRequest outside of IE 9"));var f=new window.XDomainRequest;f.open("GET",b,!0),f.responseType=c,f.timeout=3e3,e=e||this.fileError;var g=this;f.onerror=function(){try{return e.call(g,a,f)}catch(b){g.asyncComplete(a,b.message||"Exception")}},f.ontimeout=function(){try{return e.call(g,a,f)}catch(b){g.asyncComplete(a,b.message||"Exception")}},f.onprogress=function(){},f.onload=function(){try{return d.call(g,a,f)}catch(b){g.asyncComplete(a,b.message||"Exception")}},a.requestObject=f,a.requestUrl=b,setTimeout(function(){f.send()},0)},getVideoURL:function(a){for(var b=0;b=0&&(d=d.substr(0,d.indexOf("?")));var e=d.substr((Math.max(0,d.lastIndexOf("."))||1/0)+1);c=e.toLowerCase()}if(this.game.device.canPlayVideo(c))return a[b]}return null},getAudioURL:function(a){if(this.game.sound.noAudio)return null;for(var b=0;b=0&&(d=d.substr(0,d.indexOf("?")));var e=d.substr((Math.max(0,d.lastIndexOf("."))||1/0)+1);c=e.toLowerCase()}if(this.game.device.canPlayAudio(c))return a[b]}return null},fileError:function(a,b,c){var d=a.requestUrl||this.transformUrl(a.url,a),e="error loading asset from URL "+d;!c&&b&&(c=b.status),c&&(e=e+" ("+c+")"),this.asyncComplete(a,e)},fileComplete:function(a,b){var d=!0;switch(a.type){case"packfile":var e=JSON.parse(b.responseText);a.data=e||{};break;case"image":this.cache.addImage(a.key,a.url,a.data);break;case"spritesheet":this.cache.addSpriteSheet(a.key,a.url,a.data,a.frameWidth,a.frameHeight,a.frameMax,a.margin,a.spacing);break;case"textureatlas":if(null==a.atlasURL)this.cache.addTextureAtlas(a.key,a.url,a.data,a.atlasData,a.format);else if(d=!1,a.format==c.Loader.TEXTURE_ATLAS_JSON_ARRAY||a.format==c.Loader.TEXTURE_ATLAS_JSON_HASH)this.xhrLoad(a,this.transformUrl(a.atlasURL,a),"text",this.jsonLoadComplete);else{if(a.format!=c.Loader.TEXTURE_ATLAS_XML_STARLING)throw new Error("Phaser.Loader. Invalid Texture Atlas format: "+a.format);this.xhrLoad(a,this.transformUrl(a.atlasURL,a),"text",this.xmlLoadComplete)}break;case"bitmapfont":a.atlasURL?(d=!1,this.xhrLoad(a,this.transformUrl(a.atlasURL,a),"text",function(a,b){var c;try{c=JSON.parse(b.responseText)}catch(d){}c?(a.atlasType="json",this.jsonLoadComplete(a,b)):(a.atlasType="xml",this.xmlLoadComplete(a,b))})):this.cache.addBitmapFont(a.key,a.url,a.data,a.atlasData,a.atlasType,a.xSpacing,a.ySpacing);break;case"video":if(a.asBlob)try{a.data=new Blob([new Uint8Array(b.response)])}catch(f){throw new Error("Phaser.Loader. Unable to parse video file as Blob: "+a.key)}this.cache.addVideo(a.key,a.url,a.data,a.asBlob);break;case"audio":this.game.sound.usingWebAudio?(a.data=b.response,this.cache.addSound(a.key,a.url,a.data,!0,!1),a.autoDecode&&this.game.sound.decode(a.key)):this.cache.addSound(a.key,a.url,a.data,!1,!0);break;case"text":a.data=b.responseText,this.cache.addText(a.key,a.url,a.data);break;case"shader":a.data=b.responseText,this.cache.addShader(a.key,a.url,a.data);break;case"physics":var e=JSON.parse(b.responseText);this.cache.addPhysicsData(a.key,a.url,e,a.format);break;case"script":a.data=document.createElement("script"),a.data.language="javascript",a.data.type="text/javascript",a.data.defer=!1,a.data.text=b.responseText,document.head.appendChild(a.data),a.callback&&(a.data=a.callback.call(a.callbackContext,a.key,b.responseText));break;case"binary":a.data=a.callback?a.callback.call(a.callbackContext,a.key,b.response):b.response,this.cache.addBinary(a.key,a.data)}d&&this.asyncComplete(a)},jsonLoadComplete:function(a,b){var c=JSON.parse(b.responseText);"tilemap"===a.type?this.cache.addTilemap(a.key,a.url,c,a.format):"bitmapfont"===a.type?this.cache.addBitmapFont(a.key,a.url,a.data,c,a.atlasType,a.xSpacing,a.ySpacing):"json"===a.type?this.cache.addJSON(a.key,a.url,c):this.cache.addTextureAtlas(a.key,a.url,a.data,c,a.format),this.asyncComplete(a)},csvLoadComplete:function(a,b){var c=b.responseText;this.cache.addTilemap(a.key,a.url,c,a.format),this.asyncComplete(a)},xmlLoadComplete:function(a,b){var c=b.responseText,d=this.parseXml(c);if(!d){var e=b.responseType||b.contentType;return console.warn("Phaser.Loader - "+a.key+": invalid XML ("+e+")"),void this.asyncComplete(a,"invalid XML")}"bitmapfont"===a.type?this.cache.addBitmapFont(a.key,a.url,a.data,d,a.atlasType,a.xSpacing,a.ySpacing):"textureatlas"===a.type?this.cache.addTextureAtlas(a.key,a.url,a.data,d,a.format):"xml"===a.type&&this.cache.addXML(a.key,a.url,d),this.asyncComplete(a)},parseXml:function(a){var b;try{if(window.DOMParser){var c=new DOMParser;b=c.parseFromString(a,"text/xml")}else b=new ActiveXObject("Microsoft.XMLDOM"),b.async="false",b.loadXML(a)}catch(d){b=null}return b&&b.documentElement&&!b.getElementsByTagName("parsererror").length?b:null},updateProgress:function(){this.preloadSprite&&(0===this.preloadSprite.direction?this.preloadSprite.rect.width=Math.floor(this.preloadSprite.width/100*this.progress):this.preloadSprite.rect.height=Math.floor(this.preloadSprite.height/100*this.progress),this.preloadSprite.sprite?this.preloadSprite.sprite.updateCrop():this.preloadSprite=null)},totalLoadedFiles:function(){return this._loadedFileCount},totalQueuedFiles:function(){return this._totalFileCount-this._loadedFileCount},totalLoadedPacks:function(){return this._totalPackCount},totalQueuedPacks:function(){return this._totalPackCount-this._loadedPackCount}},Object.defineProperty(c.Loader.prototype,"progressFloat",{get:function(){var a=this._loadedFileCount/this._totalFileCount*100;return c.Math.clamp(a||0,0,100)}}),Object.defineProperty(c.Loader.prototype,"progress",{get:function(){return Math.round(this.progressFloat)}}),c.Loader.prototype.constructor=c.Loader,c.LoaderParser={bitmapFont:function(a,b,c,d){return this.xmlBitmapFont(a,b,c,d)},xmlBitmapFont:function(a,b,c,d){var e={},f=a.getElementsByTagName("info")[0],g=a.getElementsByTagName("common")[0];e.font=f.getAttribute("face"),e.size=parseInt(f.getAttribute("size"),10),e.lineHeight=parseInt(g.getAttribute("lineHeight"),10)+d,e.chars={};for(var h=a.getElementsByTagName("char"),i=0;i=this.durationMS&&(this.usingWebAudio?this.loop?(this.onLoop.dispatch(this),""===this.currentMarker?(this.currentTime=0,this.startTime=this.game.time.time):(this.onMarkerComplete.dispatch(this.currentMarker,this),this.play(this.currentMarker,0,this.volume,!0,!0))):""!==this.currentMarker&&this.stop():this.loop?(this.onLoop.dispatch(this),this.play(this.currentMarker,0,this.volume,!0,!0)):this.stop()))},loopFull:function(a){this.play(null,0,a,!0)},play:function(a,b,c,d,e){if((void 0===a||a===!1||null===a)&&(a=""),void 0===e&&(e=!0),this.isPlaying&&!this.allowMultiple&&!e&&!this.override)return this;if(this._sound&&this.isPlaying&&!this.allowMultiple&&(this.override||e))if(this.usingWebAudio)if(this._sound.disconnect(this.externalNode?this.externalNode:this.gainNode),void 0===this._sound.stop)this._sound.noteOff(0);else try{this._sound.stop(0)}catch(f){}else this.usingAudioTag&&(this._sound.pause(),this._sound.currentTime=0);if(""===a&&Object.keys(this.markers).length>0)return this;if(""!==a){if(this.currentMarker=a,!this.markers[a])return this;this.position=this.markers[a].start,this.volume=this.markers[a].volume,this.loop=this.markers[a].loop,this.duration=this.markers[a].duration,this.durationMS=this.markers[a].durationMS,"undefined"!=typeof c&&(this.volume=c),"undefined"!=typeof d&&(this.loop=d),this._tempMarker=a,this._tempPosition=this.position,this._tempVolume=this.volume,this._tempLoop=this.loop}else b=b||0,void 0===c&&(c=this._volume),void 0===d&&(d=this.loop),this.position=b,this.volume=c,this.loop=d,this.duration=0,this.durationMS=0,this._tempMarker=a,this._tempPosition=b,this._tempVolume=c,this._tempLoop=d;return this.usingWebAudio?this.game.cache.isSoundDecoded(this.key)?(this._sound=this.context.createBufferSource(),this._sound.connect(this.externalNode?this.externalNode:this.gainNode),this._buffer=this.game.cache.getSoundData(this.key),this._sound.buffer=this._buffer,this.loop&&""===a&&(this._sound.loop=!0),this.loop||""!==a||(this._sound.onended=this.onEndedHandler.bind(this)),this.totalDuration=this._sound.buffer.duration,0===this.duration&&(this.duration=this.totalDuration,this.durationMS=Math.ceil(1e3*this.totalDuration)),void 0===this._sound.start?this._sound.noteGrainOn(0,this.position,this.duration):this.loop&&""===a?this._sound.start(0,0):this._sound.start(0,this.position,this.duration),this.isPlaying=!0,this.startTime=this.game.time.time,this.currentTime=0,this.stopTime=this.startTime+this.durationMS,this.onPlay.dispatch(this)):(this.pendingPlayback=!0,this.game.cache.getSound(this.key)&&this.game.cache.getSound(this.key).isDecoding===!1&&this.game.sound.decode(this.key,this)):this.game.cache.getSound(this.key)&&this.game.cache.getSound(this.key).locked?(this.game.cache.reloadSound(this.key),this.pendingPlayback=!0):this._sound&&(this.game.device.cocoonJS||4===this._sound.readyState)?(this._sound.play(),this.totalDuration=this._sound.duration,0===this.duration&&(this.duration=this.totalDuration,this.durationMS=1e3*this.totalDuration),this._sound.currentTime=this.position,this._sound.muted=this._muted,this._sound.volume=this._muted?0:this._volume,this.isPlaying=!0,this.startTime=this.game.time.time,this.currentTime=0,this.stopTime=this.startTime+this.durationMS,this.onPlay.dispatch(this)):this.pendingPlayback=!0,this},restart:function(a,b,c,d){a=a||"",b=b||0,c=c||1,void 0===d&&(d=!1),this.play(a,b,c,d,!0)},pause:function(){this.isPlaying&&this._sound&&(this.paused=!0,this.pausedPosition=this.currentTime,this.pausedTime=this.game.time.time,this.onPause.dispatch(this),this.stop())},resume:function(){if(this.paused&&this._sound){if(this.usingWebAudio){var a=this.position+this.pausedPosition/1e3;this._sound=this.context.createBufferSource(),this._sound.buffer=this._buffer,this._sound.connect(this.externalNode?this.externalNode:this.gainNode),this.loop&&(this._sound.loop=!0),this.loop||""!==this.currentMarker||(this._sound.onended=this.onEndedHandler.bind(this));var b=this.duration-this.pausedPosition/1e3;void 0===this._sound.start?this._sound.noteGrainOn(0,a,b):this.loop&&this.game.device.chrome?42===this.game.device.chromeVersion?this._sound.start(0):this._sound.start(0,a):this._sound.start(0,a,b)}else this._sound.play();this.isPlaying=!0,this.paused=!1,this.startTime+=this.game.time.time-this.pausedTime,this.onResume.dispatch(this)}},stop:function(){if(this.isPlaying&&this._sound)if(this.usingWebAudio)if(this._sound.disconnect(this.externalNode?this.externalNode:this.gainNode),void 0===this._sound.stop)this._sound.noteOff(0);else try{this._sound.stop(0)}catch(a){}else this.usingAudioTag&&(this._sound.pause(),this._sound.currentTime=0);this.pendingPlayback=!1,this.isPlaying=!1;var b=this.currentMarker;""!==this.currentMarker&&this.onMarkerComplete.dispatch(this.currentMarker,this),this.currentMarker="",null!==this.fadeTween&&this.fadeTween.stop(),this.paused||this.onStop.dispatch(this,b)},fadeIn:function(a,b,c){void 0===b&&(b=!1),void 0===c&&(c=this.currentMarker),this.paused||(this.play(c,0,0,b),this.fadeTo(a,1))},fadeOut:function(a){this.fadeTo(a,0)},fadeTo:function(a,b){if(this.isPlaying&&!this.paused&&b!==this.volume){if(void 0===a&&(a=1e3),void 0===b)return void console.warn("Phaser.Sound.fadeTo: No Volume Specified.");this.fadeTween=this.game.add.tween(this).to({volume:b},a,c.Easing.Linear.None,!0),this.fadeTween.onComplete.add(this.fadeComplete,this)}},fadeComplete:function(){this.onFadeComplete.dispatch(this,this.volume),0===this.volume&&this.stop()},destroy:function(a){void 0===a&&(a=!0),this.stop(),a?this.game.sound.remove(this):(this.markers={},this.context=null,this._buffer=null,this.externalNode=null,this.onDecoded.dispose(),this.onPlay.dispose(),this.onPause.dispose(),this.onResume.dispose(),this.onLoop.dispose(),this.onStop.dispose(),this.onMute.dispose(),this.onMarkerComplete.dispose())}},c.Sound.prototype.constructor=c.Sound,Object.defineProperty(c.Sound.prototype,"isDecoding",{get:function(){return this.game.cache.getSound(this.key).isDecoding}}),Object.defineProperty(c.Sound.prototype,"isDecoded",{get:function(){return this.game.cache.isSoundDecoded(this.key)}}),Object.defineProperty(c.Sound.prototype,"mute",{get:function(){return this._muted||this.game.sound.mute},set:function(a){a=a||!1,a!==this._muted&&(a?(this._muted=!0,this._muteVolume=this._tempVolume,this.usingWebAudio?this.gainNode.gain.value=0:this.usingAudioTag&&this._sound&&(this._sound.volume=0)):(this._muted=!1,this.usingWebAudio?this.gainNode.gain.value=this._muteVolume:this.usingAudioTag&&this._sound&&(this._sound.volume=this._muteVolume)),this.onMute.dispatch(this))}}),Object.defineProperty(c.Sound.prototype,"volume",{get:function(){return this._volume},set:function(a){return this.game.device.firefox&&this.usingAudioTag&&(a=this.game.math.clamp(a,0,1)),this._muted?void(this._muteVolume=a):(this._tempVolume=a,this._volume=a,void(this.usingWebAudio?this.gainNode.gain.value=a:this.usingAudioTag&&this._sound&&(this._sound.volume=a)))}}),c.SoundManager=function(a){this.game=a,this.onSoundDecode=new c.Signal,this.onVolumeChange=new c.Signal,this.onMute=new c.Signal,this.onUnMute=new c.Signal,this.context=null,this.usingWebAudio=!1,this.usingAudioTag=!1,this.noAudio=!1,this.connectToMaster=!0,this.touchLocked=!1,this.channels=32,this._codeMuted=!1,this._muted=!1,this._unlockSource=null,this._volume=1,this._sounds=[],this._watchList=new c.ArraySet,this._watching=!1,this._watchCallback=null,this._watchContext=null},c.SoundManager.prototype={boot:function(){if(this.game.device.iOS&&this.game.device.webAudio===!1&&(this.channels=1),window.PhaserGlobal){if(window.PhaserGlobal.disableAudio===!0)return this.noAudio=!0,void(this.touchLocked=!1);if(window.PhaserGlobal.disableWebAudio===!0)return this.usingAudioTag=!0,void(this.touchLocked=!1)}if(window.PhaserGlobal&&window.PhaserGlobal.audioContext)this.context=window.PhaserGlobal.audioContext;else if(window.AudioContext)try{this.context=new window.AudioContext}catch(a){this.context=null,this.usingWebAudio=!1,this.touchLocked=!1}else if(window.webkitAudioContext)try{this.context=new window.webkitAudioContext}catch(a){this.context=null,this.usingWebAudio=!1,this.touchLocked=!1}if(null===this.context){if(void 0===window.Audio)return void(this.noAudio=!0);this.usingAudioTag=!0}else this.usingWebAudio=!0,this.masterGain=void 0===this.context.createGain?this.context.createGainNode():this.context.createGain(),this.masterGain.gain.value=1,this.masterGain.connect(this.context.destination);this.noAudio||(!this.game.device.cocoonJS&&this.game.device.iOS||window.PhaserGlobal&&window.PhaserGlobal.fakeiOSTouchLock)&&this.setTouchLock()},setTouchLock:function(){this.game.input.touch.addTouchLockCallback(this.unlock,this),this.touchLocked=!0},unlock:function(){if(this.noAudio||!this.touchLocked||null!==this._unlockSource)return!0;if(this.usingAudioTag)this.touchLocked=!1,this._unlockSource=null;else if(this.usingWebAudio){var a=this.context.createBuffer(1,1,22050);this._unlockSource=this.context.createBufferSource(),this._unlockSource.buffer=a,this._unlockSource.connect(this.context.destination),void 0===this._unlockSource.start?this._unlockSource.noteOn(0):this._unlockSource.start(0)}return!0},stopAll:function(){if(!this.noAudio)for(var a=0;aa?a=0:a>1&&(a=1),this._volume!==a){if(this._volume=a,this.usingWebAudio)this.masterGain.gain.value=a;else for(var b=0;b-1},reset:function(){this.list.length=0},remove:function(a){var b=this.list.indexOf(a);return b>-1?(this.list.splice(b,1),a):void 0},setAll:function(a,b){for(var c=this.list.length;c--;)this.list[c]&&(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)},removeAll:function(a){void 0===a&&(a=!1);for(var b=this.list.length;b--;)if(this.list[b]){var c=this.remove(this.list[b]);a&&c.destroy()}this.position=0,this.list=[]}},Object.defineProperty(c.ArraySet.prototype,"total",{get:function(){return this.list.length}}),Object.defineProperty(c.ArraySet.prototype,"first",{get:function(){return this.position=0,this.list.length>0?this.list[0]:null}}),Object.defineProperty(c.ArraySet.prototype,"next",{get:function(){return this.position0;b--){var c=Math.floor(Math.random()*(b+1)),d=a[b];a[b]=a[c],a[c]=d}return a},transposeMatrix:function(a){for(var b=a.length,c=a[0].length,d=new Array(c),e=0;c>e;e++){d[e]=new Array(b);for(var f=b-1;f>-1;f--)d[e][f]=a[f][e]}return d},rotateMatrix:function(a,b){if("string"!=typeof b&&(b=(b%360+360)%360),90===b||-270===b||"rotateLeft"===b)a=c.ArrayUtils.transposeMatrix(a),a=a.reverse();else if(-90===b||270===b||"rotateRight"===b)a=a.reverse(),a=c.ArrayUtils.transposeMatrix(a);else if(180===Math.abs(b)||"rotate180"===b){for(var d=0;d=e-a?e:d},rotate:function(a){var b=a.shift();return a.push(b),b},numberArray:function(a,b){for(var c=[],d=a;b>=d;d++)c.push(d);return c},numberArrayStep:function(a,b,d){a=+a||0;var e=typeof b;"number"!==e&&"string"!==e||!d||d[b]!==a||(b=d=null),d=null==d?1:+d||0,null===b?(b=a,a=0):b=+b||0;for(var f=-1,g=Math.max(c.Math.roundAwayFromZero((b-a)/(d||1)),0),h=new Array(g);++f>>0:(a<<24|b<<16|d<<8|e)>>>0},unpackPixel:function(a,b,d,e){return(void 0===b||null===b)&&(b=c.Color.createColor()),(void 0===d||null===d)&&(d=!1),(void 0===e||null===e)&&(e=!1),c.Device.LITTLE_ENDIAN?(b.a=(4278190080&a)>>>24,b.b=(16711680&a)>>>16,b.g=(65280&a)>>>8,b.r=255&a):(b.r=(4278190080&a)>>>24,b.g=(16711680&a)>>>16,b.b=(65280&a)>>>8,b.a=255&a),b.color=a,b.rgba="rgba("+b.r+","+b.g+","+b.b+","+b.a/255+")",d&&c.Color.RGBtoHSL(b.r,b.g,b.b,b),e&&c.Color.RGBtoHSV(b.r,b.g,b.b,b),b},fromRGBA:function(a,b){return b||(b=c.Color.createColor()),b.r=(4278190080&a)>>>24,b.g=(16711680&a)>>>16,b.b=(65280&a)>>>8,b.a=255&a,b.rgba="rgba("+b.r+","+b.g+","+b.b+","+b.a+")",b},toRGBA:function(a,b,c,d){return a<<24|b<<16|c<<8|d},RGBtoHSL:function(a,b,d,e){e||(e=c.Color.createColor(a,b,d,1)),a/=255,b/=255,d/=255;var f=Math.min(a,b,d),g=Math.max(a,b,d);if(e.h=0,e.s=0,e.l=(g+f)/2,g!==f){var h=g-f;e.s=e.l>.5?h/(2-g-f):h/(g+f),g===a?e.h=(b-d)/h+(d>b?6:0):g===b?e.h=(d-a)/h+2:g===d&&(e.h=(a-b)/h+4),e.h/=6}return e},HSLtoRGB:function(a,b,d,e){if(e?(e.r=d,e.g=d,e.b=d):e=c.Color.createColor(d,d,d),0!==b){var f=.5>d?d*(1+b):d+b-d*b,g=2*d-f;e.r=c.Color.hueToColor(g,f,a+1/3),e.g=c.Color.hueToColor(g,f,a),e.b=c.Color.hueToColor(g,f,a-1/3)}return e.r=Math.floor(255*e.r|0),e.g=Math.floor(255*e.g|0),e.b=Math.floor(255*e.b|0),c.Color.updateColor(e),e},RGBtoHSV:function(a,b,d,e){e||(e=c.Color.createColor(a,b,d,255)),a/=255,b/=255,d/=255;var f=Math.min(a,b,d),g=Math.max(a,b,d),h=g-f;return e.h=0,e.s=0===g?0:h/g,e.v=g,g!==f&&(g===a?e.h=(b-d)/h+(d>b?6:0):g===b?e.h=(d-a)/h+2:g===d&&(e.h=(a-b)/h+4),e.h/=6),e},HSVtoRGB:function(a,b,d,e){void 0===e&&(e=c.Color.createColor(0,0,0,1,a,b,0,d));var f,g,h,i=Math.floor(6*a),j=6*a-i,k=d*(1-b),l=d*(1-j*b),m=d*(1-(1-j)*b);switch(i%6){case 0:f=d,g=m,h=k;break;case 1:f=l,g=d,h=k;break;case 2:f=k,g=d,h=m;break;case 3:f=k,g=l,h=d;break;case 4:f=m,g=k,h=d;break;case 5:f=d,g=k,h=l}return e.r=Math.floor(255*f),e.g=Math.floor(255*g),e.b=Math.floor(255*h),c.Color.updateColor(e),e},hueToColor:function(a,b,c){return 0>c&&(c+=1),c>1&&(c-=1),1/6>c?a+6*(b-a)*c:.5>c?b:2/3>c?a+(b-a)*(2/3-c)*6:a},createColor:function(a,b,d,e,f,g,h,i){var j={r:a||0,g:b||0,b:d||0,a:e||1,h:f||0,s:g||0,l:h||0,v:i||0,color:0,color32:0,rgba:""};return c.Color.updateColor(j)},updateColor:function(a){return a.rgba="rgba("+a.r.toString()+","+a.g.toString()+","+a.b.toString()+","+a.a.toString()+")",a.color=c.Color.getColor(a.r,a.g,a.b),a.color32=c.Color.getColor32(a.a,a.r,a.g,a.b),a},getColor32:function(a,b,c,d){return a<<24|b<<16|c<<8|d},getColor:function(a,b,c){return a<<16|b<<8|c},RGBtoString:function(a,b,d,e,f){return void 0===e&&(e=255),void 0===f&&(f="#"),"#"===f?"#"+((1<<24)+(a<<16)+(b<<8)+d).toString(16).slice(1):"0x"+c.Color.componentToHex(e)+c.Color.componentToHex(a)+c.Color.componentToHex(b)+c.Color.componentToHex(d)},hexToRGB:function(a){var b=c.Color.hexToColor(a);return b?c.Color.getColor32(b.a,b.r,b.g,b.b):void 0},hexToColor:function(a,b){a=a.replace(/^(?:#|0x)?([a-f\d])([a-f\d])([a-f\d])$/i,function(a,b,c,d){return b+b+c+c+d+d});var d=/^(?:#|0x)?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i.exec(a);if(d){var e=parseInt(d[1],16),f=parseInt(d[2],16),g=parseInt(d[3],16);b?(b.r=e,b.g=f,b.b=g):b=c.Color.createColor(e,f,g)}return b},webToColor:function(a,b){b||(b=c.Color.createColor());var d=/^rgba?\(\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d+)\s*(?:,\s*(\d+(?:\.\d+)?))?\s*\)$/.exec(a);return d&&(b.r=parseInt(d[1],10),b.g=parseInt(d[2],10),b.b=parseInt(d[3],10),b.a=void 0!==d[4]?parseFloat(d[4]):1,c.Color.updateColor(b)),b},valueToColor:function(a,b){if(b||(b=c.Color.createColor()),"string"==typeof a)return 0===a.indexOf("rgb")?c.Color.webToColor(a,b):(b.a=1,c.Color.hexToColor(a,b));if("number"==typeof a){var d=c.Color.getRGB(a);return b.r=d.r,b.g=d.g,b.b=d.b,b.a=d.a/255,b }return b},componentToHex:function(a){var b=a.toString(16);return 1==b.length?"0"+b:b},HSVColorWheel:function(a,b){void 0===a&&(a=1),void 0===b&&(b=1);for(var d=[],e=0;359>=e;e++)d.push(c.Color.HSVtoRGB(e/359,a,b));return d},HSLColorWheel:function(a,b){void 0===a&&(a=.5),void 0===b&&(b=.5);for(var d=[],e=0;359>=e;e++)d.push(c.Color.HSLtoRGB(e/359,a,b));return d},interpolateColor:function(a,b,d,e,f){void 0===f&&(f=255);var g=c.Color.getRGB(a),h=c.Color.getRGB(b),i=(h.red-g.red)*e/d+g.red,j=(h.green-g.green)*e/d+g.green,k=(h.blue-g.blue)*e/d+g.blue;return c.Color.getColor32(f,i,j,k)},interpolateColorWithRGB:function(a,b,d,e,f,g){var h=c.Color.getRGB(a),i=(b-h.red)*g/f+h.red,j=(d-h.green)*g/f+h.green,k=(e-h.blue)*g/f+h.blue;return c.Color.getColor(i,j,k)},interpolateRGB:function(a,b,d,e,f,g,h,i){var j=(e-a)*i/h+a,k=(f-b)*i/h+b,l=(g-d)*i/h+d;return c.Color.getColor(j,k,l)},getRandomColor:function(a,b,d){if(void 0===a&&(a=0),void 0===b&&(b=255),void 0===d&&(d=255),b>255||a>b)return c.Color.getColor(255,255,255);var e=a+Math.round(Math.random()*(b-a)),f=a+Math.round(Math.random()*(b-a)),g=a+Math.round(Math.random()*(b-a));return c.Color.getColor32(d,e,f,g)},getRGB:function(a){return a>16777215?{alpha:a>>>24,red:a>>16&255,green:a>>8&255,blue:255&a,a:a>>>24,r:a>>16&255,g:a>>8&255,b:255&a}:{alpha:255,red:a>>16&255,green:a>>8&255,blue:255&a,a:255,r:a>>16&255,g:a>>8&255,b:255&a}},getWebRGB:function(a){if("object"==typeof a)return"rgba("+a.r.toString()+","+a.g.toString()+","+a.b.toString()+","+(a.a/255).toString()+")";var b=c.Color.getRGB(a);return"rgba("+b.r.toString()+","+b.g.toString()+","+b.b.toString()+","+(b.a/255).toString()+")"},getAlpha:function(a){return a>>>24},getAlphaFloat:function(a){return(a>>>24)/255},getRed:function(a){return a>>16&255},getGreen:function(a){return a>>8&255},getBlue:function(a){return 255&a},blendNormal:function(a){return a},blendLighten:function(a,b){return b>a?b:a},blendDarken:function(a,b){return b>a?a:b},blendMultiply:function(a,b){return a*b/255},blendAverage:function(a,b){return(a+b)/2},blendAdd:function(a,b){return Math.min(255,a+b)},blendSubtract:function(a,b){return Math.max(0,a+b-255)},blendDifference:function(a,b){return Math.abs(a-b)},blendNegation:function(a,b){return 255-Math.abs(255-a-b)},blendScreen:function(a,b){return 255-((255-a)*(255-b)>>8)},blendExclusion:function(a,b){return a+b-2*a*b/255},blendOverlay:function(a,b){return 128>b?2*a*b/255:255-2*(255-a)*(255-b)/255},blendSoftLight:function(a,b){return 128>b?2*((a>>1)+64)*(b/255):255-2*(255-((a>>1)+64))*(255-b)/255},blendHardLight:function(a,b){return c.Color.blendOverlay(b,a)},blendColorDodge:function(a,b){return 255===b?b:Math.min(255,(a<<8)/(255-b))},blendColorBurn:function(a,b){return 0===b?b:Math.max(0,255-(255-a<<8)/b)},blendLinearDodge:function(a,b){return c.Color.blendAdd(a,b)},blendLinearBurn:function(a,b){return c.Color.blendSubtract(a,b)},blendLinearLight:function(a,b){return 128>b?c.Color.blendLinearBurn(a,2*b):c.Color.blendLinearDodge(a,2*(b-128))},blendVividLight:function(a,b){return 128>b?c.Color.blendColorBurn(a,2*b):c.Color.blendColorDodge(a,2*(b-128))},blendPinLight:function(a,b){return 128>b?c.Color.blendDarken(a,2*b):c.Color.blendLighten(a,2*(b-128))},blendHardMix:function(a,b){return c.Color.blendVividLight(a,b)<128?0:255},blendReflect:function(a,b){return 255===b?b:Math.min(255,a*a/(255-b))},blendGlow:function(a,b){return c.Color.blendReflect(b,a)},blendPhoenix:function(a,b){return Math.min(a,b)-Math.max(a,b)+255}},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.Physics=function(a,b){b=b||{},this.game=a,this.config=b,this.arcade=null,this.p2=null,this.ninja=null,this.box2d=null,this.chipmunk=null,this.matter=null,this.parseConfig()},c.Physics.ARCADE=0,c.Physics.P2JS=1,c.Physics.NINJA=2,c.Physics.BOX2D=3,c.Physics.CHIPMUNK=4,c.Physics.MATTERJS=5,c.Physics.prototype={parseConfig:function(){this.config.hasOwnProperty("arcade")&&this.config.arcade!==!0||!c.Physics.hasOwnProperty("Arcade")||(this.arcade=new c.Physics.Arcade(this.game)),this.config.hasOwnProperty("ninja")&&this.config.ninja===!0&&c.Physics.hasOwnProperty("Ninja")&&(this.ninja=new c.Physics.Ninja(this.game)),this.config.hasOwnProperty("p2")&&this.config.p2===!0&&c.Physics.hasOwnProperty("P2")&&(this.p2=new c.Physics.P2(this.game,this.config)),this.config.hasOwnProperty("box2d")&&this.config.box2d===!0&&c.Physics.hasOwnProperty("BOX2D")&&(this.box2d=new c.Physics.BOX2D(this.game,this.config)),this.config.hasOwnProperty("matter")&&this.config.matter===!0&&c.Physics.hasOwnProperty("Matter")&&(this.matter=new c.Physics.Matter(this.game,this.config))},startSystem:function(a){a===c.Physics.ARCADE?this.arcade=new c.Physics.Arcade(this.game):a===c.Physics.P2JS?null===this.p2?this.p2=new c.Physics.P2(this.game,this.config):this.p2.reset():a===c.Physics.NINJA?this.ninja=new c.Physics.Ninja(this.game):a===c.Physics.BOX2D?null===this.box2d?this.box2d=new c.Physics.Box2D(this.game,this.config):this.box2d.reset():a===c.Physics.MATTERJS&&(null===this.matter?this.matter=new c.Physics.Matter(this.game,this.config):this.matter.reset())},enable:function(a,b,d){void 0===b&&(b=c.Physics.ARCADE),void 0===d&&(d=!1),b===c.Physics.ARCADE?this.arcade.enable(a):b===c.Physics.P2JS&&this.p2?this.p2.enable(a,d):b===c.Physics.NINJA&&this.ninja?this.ninja.enableAABB(a):b===c.Physics.BOX2D&&this.box2d?this.box2d.enable(a):b===c.Physics.MATTERJS&&this.matter&&this.matter.enable(a)},preUpdate:function(){this.p2&&this.p2.preUpdate(),this.box2d&&this.box2d.preUpdate(),this.matter&&this.matter.preUpdate()},update:function(){this.p2&&this.p2.update(),this.box2d&&this.box2d.update(),this.matter&&this.matter.update()},setBoundsToWorld:function(){this.arcade&&this.arcade.setBoundsToWorld(),this.ninja&&this.ninja.setBoundsToWorld(),this.p2&&this.p2.setBoundsToWorld(),this.box2d&&this.box2d.setBoundsToWorld(),this.matter&&this.matter.setBoundsToWorld()},clear:function(){this.p2&&this.p2.clear(),this.box2d&&this.box2d.clear(),this.matter&&this.matter.clear()},reset:function(){this.p2&&this.p2.reset(),this.box2d&&this.box2d.reset(),this.matter&&this.matter.reset()},destroy:function(){this.p2&&this.p2.destroy(),this.box2d&&this.box2d.destroy(),this.matter&&this.matter.destroy(),this.arcade=null,this.ninja=null,this.p2=null,this.box2d=null,this.matter=null}},c.Physics.prototype.constructor=c.Physics,c.Physics.Arcade=function(a){this.game=a,this.gravity=new c.Point,this.bounds=new c.Rectangle(0,0,a.world.width,a.world.height),this.checkCollision={up:!0,down:!0,left:!0,right:!0},this.maxObjects=10,this.maxLevels=4,this.OVERLAP_BIAS=4,this.forceX=!1,this.sortDirection=c.Physics.Arcade.LEFT_RIGHT,this.skipQuadTree=!0,this.isPaused=!1,this.quadTree=new c.QuadTree(this.game.world.bounds.x,this.game.world.bounds.y,this.game.world.bounds.width,this.game.world.bounds.height,this.maxObjects,this.maxLevels),this._total=0,this.setBoundsToWorld()},c.Physics.Arcade.prototype.constructor=c.Physics.Arcade,c.Physics.Arcade.SORT_NONE=0,c.Physics.Arcade.LEFT_RIGHT=1,c.Physics.Arcade.RIGHT_LEFT=2,c.Physics.Arcade.TOP_BOTTOM=3,c.Physics.Arcade.BOTTOM_TOP=4,c.Physics.Arcade.prototype={setBounds:function(a,b,c,d){this.bounds.setTo(a,b,c,d)},setBoundsToWorld:function(){this.bounds.copyFrom(this.game.world.bounds)},enable:function(a,b){void 0===b&&(b=!0);var d=1;if(Array.isArray(a))for(d=a.length;d--;)a[d]instanceof c.Group?this.enable(a[d].children,b):(this.enableBody(a[d]),b&&a[d].hasOwnProperty("children")&&a[d].children.length>0&&this.enable(a[d],!0));else a instanceof c.Group?this.enable(a.children,b):(this.enableBody(a),b&&a.hasOwnProperty("children")&&a.children.length>0&&this.enable(a.children,!0))},enableBody:function(a){a.hasOwnProperty("body")&&null===a.body&&(a.body=new c.Physics.Arcade.Body(a),a.parent&&a.parent instanceof c.Group&&a.parent.addToHash(a))},updateMotion:function(a){var b=this.computeVelocity(0,a,a.angularVelocity,a.angularAcceleration,a.angularDrag,a.maxAngular)-a.angularVelocity;a.angularVelocity+=b,a.rotation+=a.angularVelocity*this.game.time.physicsElapsed,a.velocity.x=this.computeVelocity(1,a,a.velocity.x,a.acceleration.x,a.drag.x,a.maxVelocity.x),a.velocity.y=this.computeVelocity(2,a,a.velocity.y,a.acceleration.y,a.drag.y,a.maxVelocity.y)},computeVelocity:function(a,b,c,d,e,f){return void 0===f&&(f=1e4),1===a&&b.allowGravity?c+=(this.gravity.x+b.gravity.x)*this.game.time.physicsElapsed:2===a&&b.allowGravity&&(c+=(this.gravity.y+b.gravity.y)*this.game.time.physicsElapsed),d?c+=d*this.game.time.physicsElapsed:e&&(e*=this.game.time.physicsElapsed,c-e>0?c-=e:0>c+e?c+=e:c=0),c>f?c=f:-f>c&&(c=-f),c},overlap:function(a,b,c,d,e){if(c=c||null,d=d||null,e=e||c,this._total=0,!Array.isArray(a)&&Array.isArray(b))for(var f=0;f0},collide:function(a,b,c,d,e){if(c=c||null,d=d||null,e=e||c,this._total=0,!Array.isArray(a)&&Array.isArray(b))for(var f=0;f0},sortLeftRight:function(a,b){return a.body&&b.body?a.body.x-b.body.x:0},sortRightLeft:function(a,b){return a.body&&b.body?b.body.x-a.body.x:0},sortTopBottom:function(a,b){return a.body&&b.body?a.body.y-b.body.y:0},sortBottomTop:function(a,b){return a.body&&b.body?b.body.y-a.body.y:0},sort:function(a,b){null!==a.physicsSortDirection?b=a.physicsSortDirection:void 0===b&&(b=this.sortDirection),b===c.Physics.Arcade.LEFT_RIGHT?a.hash.sort(this.sortLeftRight):b===c.Physics.Arcade.RIGHT_LEFT?a.hash.sort(this.sortRightLeft):b===c.Physics.Arcade.TOP_BOTTOM?a.hash.sort(this.sortTopBottom):b===c.Physics.Arcade.BOTTOM_TOP&&a.hash.sort(this.sortBottomTop)},collideHandler:function(a,b,d,e,f,g){return void 0===b&&a.physicsType===c.GROUP?(this.sort(a),void this.collideGroupVsSelf(a,d,e,f,g)):void(a&&b&&a.exists&&b.exists&&(this.sortDirection!==c.Physics.Arcade.SORT_NONE&&(a.physicsType===c.GROUP&&this.sort(a),b.physicsType===c.GROUP&&this.sort(b)),a.physicsType===c.SPRITE?b.physicsType===c.SPRITE?this.collideSpriteVsSprite(a,b,d,e,f,g):b.physicsType===c.GROUP?this.collideSpriteVsGroup(a,b,d,e,f,g):b.physicsType===c.TILEMAPLAYER&&this.collideSpriteVsTilemapLayer(a,b,d,e,f,g):a.physicsType===c.GROUP?b.physicsType===c.SPRITE?this.collideSpriteVsGroup(b,a,d,e,f,g):b.physicsType===c.GROUP?this.collideGroupVsGroup(a,b,d,e,f,g):b.physicsType===c.TILEMAPLAYER&&this.collideGroupVsTilemapLayer(a,b,d,e,f,g):a.physicsType===c.TILEMAPLAYER&&(b.physicsType===c.SPRITE?this.collideSpriteVsTilemapLayer(b,a,d,e,f,g):b.physicsType===c.GROUP&&this.collideGroupVsTilemapLayer(b,a,d,e,f,g))))},collideSpriteVsSprite:function(a,b,c,d,e,f){return a.body&&b.body?(this.separate(a.body,b.body,d,e,f)&&(c&&c.call(e,a,b),this._total++),!0):!1},collideSpriteVsGroup:function(a,b,d,e,f,g){if(0!==b.length&&a.body){var h;if(this.skipQuadTree||a.body.skipQuadTree){for(var i=0;ih.right)break;if(h.x>a.body.right)continue}else if(this.sortDirection===c.Physics.Arcade.TOP_BOTTOM){if(a.body.bottomh.bottom)break;if(h.y>a.body.bottom)continue}this.collideSpriteVsSprite(a,b.hash[i],d,e,f,g)}}else{this.quadTree.clear(),this.quadTree.reset(this.game.world.bounds.x,this.game.world.bounds.y,this.game.world.bounds.width,this.game.world.bounds.height,this.maxObjects,this.maxLevels),this.quadTree.populate(b);for(var j=this.quadTree.retrieve(a),i=0;ij.body.right)continue;if(j.body.x>h.body.right)break}else if(this.sortDirection===c.Physics.Arcade.TOP_BOTTOM){if(h.body.bottomj.body.bottom)continue;if(j.body.y>h.body.bottom)break}this.collideSpriteVsSprite(h,j,b,d,e,f)}},collideGroupVsGroup:function(a,b,d,e,f,g){if(0!==a.length&&0!==b.length)for(var h=0;h=b.right?!1:a.position.y>=b.bottom?!1:!0},separateX:function(a,b,c){if(a.immovable&&b.immovable)return!1;var d=0;if(this.intersects(a,b)){var e=a.deltaAbsX()+b.deltaAbsX()+this.OVERLAP_BIAS;if(0===a.deltaX()&&0===b.deltaX()?(a.embedded=!0,b.embedded=!0):a.deltaX()>b.deltaX()?(d=a.right-b.x,d>e||a.checkCollision.right===!1||b.checkCollision.left===!1?d=0:(a.touching.none=!1,a.touching.right=!0,b.touching.none=!1,b.touching.left=!0)):a.deltaX()e||a.checkCollision.left===!1||b.checkCollision.right===!1?d=0:(a.touching.none=!1,a.touching.left=!0,b.touching.none=!1,b.touching.right=!0)),a.overlapX=d,b.overlapX=d,0!==d){if(c||a.customSeparateX||b.customSeparateX)return!0;var f=a.velocity.x,g=b.velocity.x;if(a.immovable||b.immovable)a.immovable?b.immovable||(b.x+=d,b.velocity.x=f-g*b.bounce.x,a.moves&&(b.y+=(a.y-a.prev.y)*a.friction.y)):(a.x=a.x-d,a.velocity.x=g-f*a.bounce.x,b.moves&&(a.y+=(b.y-b.prev.y)*b.friction.y));else{d*=.5,a.x=a.x-d,b.x+=d;var h=Math.sqrt(g*g*b.mass/a.mass)*(g>0?1:-1),i=Math.sqrt(f*f*a.mass/b.mass)*(f>0?1:-1),j=.5*(h+i);h-=j,i-=j,a.velocity.x=j+h*a.bounce.x,b.velocity.x=j+i*b.bounce.x}return!0}}return!1},separateY:function(a,b,c){if(a.immovable&&b.immovable)return!1;var d=0;if(this.intersects(a,b)){var e=a.deltaAbsY()+b.deltaAbsY()+this.OVERLAP_BIAS;if(0===a.deltaY()&&0===b.deltaY()?(a.embedded=!0,b.embedded=!0):a.deltaY()>b.deltaY()?(d=a.bottom-b.y,d>e||a.checkCollision.down===!1||b.checkCollision.up===!1?d=0:(a.touching.none=!1,a.touching.down=!0,b.touching.none=!1,b.touching.up=!0)):a.deltaY()e||a.checkCollision.up===!1||b.checkCollision.down===!1?d=0:(a.touching.none=!1,a.touching.up=!0,b.touching.none=!1,b.touching.down=!0)),a.overlapY=d,b.overlapY=d,0!==d){if(c||a.customSeparateY||b.customSeparateY)return!0;var f=a.velocity.y,g=b.velocity.y;if(a.immovable||b.immovable)a.immovable?b.immovable||(b.y+=d,b.velocity.y=f-g*b.bounce.y,a.moves&&(b.x+=(a.x-a.prev.x)*a.friction.x)):(a.y=a.y-d,a.velocity.y=g-f*a.bounce.y,b.moves&&(a.x+=(b.x-b.prev.x)*b.friction.x));else{d*=.5,a.y=a.y-d,b.y+=d;var h=Math.sqrt(g*g*b.mass/a.mass)*(g>0?1:-1),i=Math.sqrt(f*f*a.mass/b.mass)*(f>0?1:-1),j=.5*(h+i);h-=j,i-=j,a.velocity.y=j+h*a.bounce.y,b.velocity.y=j+i*b.bounce.y}return!0}}return!1},getObjectsUnderPointer:function(a,b,c,d){return 0!==b.length&&a.exists?this.getObjectsAtLocation(a.x,a.y,b,c,d,a):void 0},getObjectsAtLocation:function(a,b,d,e,f,g){this.quadTree.clear(),this.quadTree.reset(this.game.world.bounds.x,this.game.world.bounds.y,this.game.world.bounds.width,this.game.world.bounds.height,this.maxObjects,this.maxLevels),this.quadTree.populate(d);for(var h=new c.Rectangle(a,b,1,1),i=[],j=this.quadTree.retrieve(h),k=0;k0&&(c=this.distanceBetween(a,b)/(d/1e3)),a.body.velocity.x=Math.cos(e)*c,a.body.velocity.y=Math.sin(e)*c,e},moveToPointer:function(a,b,c,d){void 0===b&&(b=60),c=c||this.game.input.activePointer,void 0===d&&(d=0);var e=this.angleToPointer(a,c);return d>0&&(b=this.distanceToPointer(a,c)/(d/1e3)),a.body.velocity.x=Math.cos(e)*b,a.body.velocity.y=Math.sin(e)*b,e},moveToXY:function(a,b,c,d,e){void 0===d&&(d=60),void 0===e&&(e=0);var f=Math.atan2(c-a.y,b-a.x);return e>0&&(d=this.distanceToXY(a,b,c)/(e/1e3)),a.body.velocity.x=Math.cos(f)*d,a.body.velocity.y=Math.sin(f)*d,f},velocityFromAngle:function(a,b,d){return void 0===b&&(b=60),d=d||new c.Point,d.setTo(Math.cos(this.game.math.degToRad(a))*b,Math.sin(this.game.math.degToRad(a))*b)},velocityFromRotation:function(a,b,d){return void 0===b&&(b=60),d=d||new c.Point,d.setTo(Math.cos(a)*b,Math.sin(a)*b)},accelerationFromRotation:function(a,b,d){return void 0===b&&(b=60),d=d||new c.Point,d.setTo(Math.cos(a)*b,Math.sin(a)*b)},accelerateToObject:function(a,b,c,d,e){void 0===c&&(c=60),void 0===d&&(d=1e3),void 0===e&&(e=1e3);var f=this.angleBetween(a,b);return a.body.acceleration.setTo(Math.cos(f)*c,Math.sin(f)*c),a.body.maxVelocity.setTo(d,e),f},accelerateToPointer:function(a,b,c,d,e){void 0===c&&(c=60),void 0===b&&(b=this.game.input.activePointer),void 0===d&&(d=1e3),void 0===e&&(e=1e3);var f=this.angleToPointer(a,b);return a.body.acceleration.setTo(Math.cos(f)*c,Math.sin(f)*c),a.body.maxVelocity.setTo(d,e),f},accelerateToXY:function(a,b,c,d,e,f){void 0===d&&(d=60),void 0===e&&(e=1e3),void 0===f&&(f=1e3);var g=this.angleToXY(a,b,c);return a.body.acceleration.setTo(Math.cos(g)*d,Math.sin(g)*d),a.body.maxVelocity.setTo(e,f),g},distanceBetween:function(a,b){var c=a.x-b.x,d=a.y-b.y;return Math.sqrt(c*c+d*d)},distanceToXY:function(a,b,c){var d=a.x-b,e=a.y-c;return Math.sqrt(d*d+e*e)},distanceToPointer:function(a,b){b=b||this.game.input.activePointer;var c=a.x-b.worldX,d=a.y-b.worldY;return Math.sqrt(c*c+d*d)},angleBetween:function(a,b){var c=b.x-a.x,d=b.y-a.y;return Math.atan2(d,c)},angleToXY:function(a,b,c){var d=b-a.x,e=c-a.y;return Math.atan2(e,d)},angleToPointer:function(a,b){b=b||this.game.input.activePointer;var c=b.worldX-a.x,d=b.worldY-a.y;return Math.atan2(d,c)}},c.Physics.Arcade.Body=function(a){this.sprite=a,this.game=a.game,this.type=c.Physics.ARCADE,this.enable=!0,this.offset=new c.Point,this.position=new c.Point(a.x,a.y),this.prev=new c.Point(this.position.x,this.position.y),this.allowRotation=!0,this.rotation=a.rotation,this.preRotation=a.rotation,this.width=a.width,this.height=a.height,this.sourceWidth=a.width,this.sourceHeight=a.height,a.texture&&(this.sourceWidth=a.texture.frame.width,this.sourceHeight=a.texture.frame.height),this.halfWidth=Math.abs(a.width/2),this.halfHeight=Math.abs(a.height/2),this.center=new c.Point(a.x+this.halfWidth,a.y+this.halfHeight),this.velocity=new c.Point,this.newVelocity=new c.Point(0,0),this.deltaMax=new c.Point(0,0),this.acceleration=new c.Point,this.drag=new c.Point,this.allowGravity=!0,this.gravity=new c.Point(0,0),this.bounce=new c.Point,this.maxVelocity=new c.Point(1e4,1e4),this.friction=new c.Point(1,0),this.angularVelocity=0,this.angularAcceleration=0,this.angularDrag=0,this.maxAngular=1e3,this.mass=1,this.angle=0,this.speed=0,this.facing=c.NONE,this.immovable=!1,this.moves=!0,this.customSeparateX=!1,this.customSeparateY=!1,this.overlapX=0,this.overlapY=0,this.embedded=!1,this.collideWorldBounds=!1,this.checkCollision={none:!1,any:!0,up:!0,down:!0,left:!0,right:!0},this.touching={none:!0,up:!1,down:!1,left:!1,right:!1},this.wasTouching={none:!0,up:!1,down:!1,left:!1,right:!1},this.blocked={up:!1,down:!1,left:!1,right:!1},this.tilePadding=new c.Point,this.dirty=!1,this.skipQuadTree=!1,this.syncBounds=!1,this._reset=!0,this._sx=a.scale.x,this._sy=a.scale.y,this._dx=0,this._dy=0},c.Physics.Arcade.Body.prototype={updateBounds:function(){if(this.syncBounds){var a=this.sprite.getBounds();a.ceilAll(),(a.width!==this.width||a.height!==this.height)&&(this.width=a.width,this.height=a.height,this._reset=!0)}else{var b=Math.abs(this.sprite.scale.x),c=Math.abs(this.sprite.scale.y);(b!==this._sx||c!==this._sy)&&(this.width=this.sourceWidth*b,this.height=this.sourceHeight*c,this._sx=b,this._sy=c,this._reset=!0)}this._reset&&(this.halfWidth=Math.floor(this.width/2),this.halfHeight=Math.floor(this.height/2),this.center.setTo(this.position.x+this.halfWidth,this.position.y+this.halfHeight))},preUpdate:function(){this.enable&&!this.game.physics.arcade.isPaused&&(this.dirty=!0,this.wasTouching.none=this.touching.none,this.wasTouching.up=this.touching.up,this.wasTouching.down=this.touching.down,this.wasTouching.left=this.touching.left,this.wasTouching.right=this.touching.right,this.touching.none=!0,this.touching.up=!1,this.touching.down=!1,this.touching.left=!1,this.touching.right=!1,this.blocked.up=!1,this.blocked.down=!1,this.blocked.left=!1,this.blocked.right=!1,this.embedded=!1,this.updateBounds(),this.position.x=this.sprite.world.x-this.sprite.anchor.x*this.width+this.offset.x,this.position.y=this.sprite.world.y-this.sprite.anchor.y*this.height+this.offset.y,this.rotation=this.sprite.angle,this.preRotation=this.rotation,(this._reset||this.sprite.fresh)&&(this.prev.x=this.position.x,this.prev.y=this.position.y),this.moves&&(this.game.physics.arcade.updateMotion(this),this.newVelocity.set(this.velocity.x*this.game.time.physicsElapsed,this.velocity.y*this.game.time.physicsElapsed),this.position.x+=this.newVelocity.x,this.position.y+=this.newVelocity.y,(this.position.x!==this.prev.x||this.position.y!==this.prev.y)&&(this.speed=Math.sqrt(this.velocity.x*this.velocity.x+this.velocity.y*this.velocity.y),this.angle=Math.atan2(this.velocity.y,this.velocity.x)),this.collideWorldBounds&&this.checkWorldBounds()),this._dx=this.deltaX(),this._dy=this.deltaY(),this._reset=!1)},postUpdate:function(){this.enable&&this.dirty&&(this.dirty=!1,this.deltaX()<0?this.facing=c.LEFT:this.deltaX()>0&&(this.facing=c.RIGHT),this.deltaY()<0?this.facing=c.UP:this.deltaY()>0&&(this.facing=c.DOWN),this.moves&&(this._dx=this.deltaX(),this._dy=this.deltaY(),0!==this.deltaMax.x&&0!==this._dx&&(this._dx<0&&this._dx<-this.deltaMax.x?this._dx=-this.deltaMax.x:this._dx>0&&this._dx>this.deltaMax.x&&(this._dx=this.deltaMax.x)),0!==this.deltaMax.y&&0!==this._dy&&(this._dy<0&&this._dy<-this.deltaMax.y?this._dy=-this.deltaMax.y:this._dy>0&&this._dy>this.deltaMax.y&&(this._dy=this.deltaMax.y)),this.sprite.position.x+=this._dx,this.sprite.position.y+=this._dy,this._reset=!0),this.center.setTo(this.position.x+this.halfWidth,this.position.y+this.halfHeight),this.allowRotation&&(this.sprite.angle+=this.deltaZ()),this.prev.x=this.position.x,this.prev.y=this.position.y)},destroy:function(){this.sprite.parent&&this.sprite.parent instanceof c.Group&&this.sprite.parent.removeFromHash(this.sprite),this.sprite.body=null,this.sprite=null},checkWorldBounds:function(){var a=this.position,b=this.game.physics.arcade.bounds,c=this.game.physics.arcade.checkCollision;a.xb.right&&c.right&&(a.x=b.right-this.width,this.velocity.x*=-this.bounce.x,this.blocked.right=!0),a.yb.bottom&&c.down&&(a.y=b.bottom-this.height,this.velocity.y*=-this.bounce.y,this.blocked.down=!0)},setSize:function(a,b,c,d){void 0===c&&(c=this.offset.x),void 0===d&&(d=this.offset.y),this.sourceWidth=a,this.sourceHeight=b,this.width=this.sourceWidth*this._sx,this.height=this.sourceHeight*this._sy,this.halfWidth=Math.floor(this.width/2),this.halfHeight=Math.floor(this.height/2),this.offset.setTo(c,d),this.center.setTo(this.position.x+this.halfWidth,this.position.y+this.halfHeight)},reset:function(a,b){this.velocity.set(0),this.acceleration.set(0),this.speed=0,this.angularVelocity=0,this.angularAcceleration=0,this.position.x=a-this.sprite.anchor.x*this.width+this.offset.x,this.position.y=b-this.sprite.anchor.y*this.height+this.offset.y,this.prev.x=this.position.x,this.prev.y=this.position.y,this.rotation=this.sprite.angle,this.preRotation=this.rotation,this._sx=this.sprite.scale.x,this._sy=this.sprite.scale.y,this.center.setTo(this.position.x+this.halfWidth,this.position.y+this.halfHeight)},hitTest:function(a,b){return c.Rectangle.contains(this,a,b)},onFloor:function(){return this.blocked.down},onWall:function(){return this.blocked.left||this.blocked.right},deltaAbsX:function(){return this.deltaX()>0?this.deltaX():-this.deltaX()},deltaAbsY:function(){return this.deltaY()>0?this.deltaY():-this.deltaY()},deltaX:function(){return this.position.x-this.prev.x},deltaY:function(){return this.position.y-this.prev.y},deltaZ:function(){return this.rotation-this.preRotation}},Object.defineProperty(c.Physics.Arcade.Body.prototype,"bottom",{get:function(){return this.position.y+this.height}}),Object.defineProperty(c.Physics.Arcade.Body.prototype,"right",{get:function(){return this.position.x+this.width}}),Object.defineProperty(c.Physics.Arcade.Body.prototype,"x",{get:function(){return this.position.x},set:function(a){this.position.x=a}}),Object.defineProperty(c.Physics.Arcade.Body.prototype,"y",{get:function(){return this.position.y},set:function(a){this.position.y=a}}),c.Physics.Arcade.Body.render=function(a,b,c,d){void 0===d&&(d=!0),c=c||"rgba(0,255,0,0.4)",d?(a.fillStyle=c,a.fillRect(b.position.x-b.game.camera.x,b.position.y-b.game.camera.y,b.width,b.height)):(a.strokeStyle=c,a.strokeRect(b.position.x-b.game.camera.x,b.position.y-b.game.camera.y,b.width,b.height))},c.Physics.Arcade.Body.renderBodyInfo=function(a,b){a.line("x: "+b.x.toFixed(2),"y: "+b.y.toFixed(2),"width: "+b.width,"height: "+b.height),a.line("velocity x: "+b.velocity.x.toFixed(2),"y: "+b.velocity.y.toFixed(2),"deltaX: "+b._dx.toFixed(2),"deltaY: "+b._dy.toFixed(2)),a.line("acceleration x: "+b.acceleration.x.toFixed(2),"y: "+b.acceleration.y.toFixed(2),"speed: "+b.speed.toFixed(2),"angle: "+b.angle.toFixed(2)),a.line("gravity x: "+b.gravity.x,"y: "+b.gravity.y,"bounce x: "+b.bounce.x.toFixed(2),"y: "+b.bounce.y.toFixed(2)),a.line("touching left: "+b.touching.left,"right: "+b.touching.right,"up: "+b.touching.up,"down: "+b.touching.down),a.line("blocked left: "+b.blocked.left,"right: "+b.blocked.right,"up: "+b.blocked.up,"down: "+b.blocked.down)},c.Physics.Arcade.Body.prototype.constructor=c.Physics.Arcade.Body,c.Physics.Arcade.TilemapCollision=function(){},c.Physics.Arcade.TilemapCollision.prototype={TILE_BIAS:16,collideSpriteVsTilemapLayer:function(a,b,c,d,e,f){if(a.body){var g=b.getTiles(a.body.position.x-a.body.tilePadding.x,a.body.position.y-a.body.tilePadding.y,a.body.width+a.body.tilePadding.x,a.body.height+a.body.tilePadding.y,!1,!1);if(0!==g.length)for(var h=0;hb.deltaAbsY()?g=-1:b.deltaAbsX()g){if((c.faceLeft||c.faceRight)&&(e=this.tileCheckX(b,c),0!==e&&!c.intersects(b.position.x,b.position.y,b.right,b.bottom)))return!0;(c.faceTop||c.faceBottom)&&(f=this.tileCheckY(b,c))}else{if((c.faceTop||c.faceBottom)&&(f=this.tileCheckY(b,c),0!==f&&!c.intersects(b.position.x,b.position.y,b.right,b.bottom)))return!0;(c.faceLeft||c.faceRight)&&(e=this.tileCheckX(b,c))}return 0!==e||0!==f},tileCheckX:function(a,b){var c=0;return a.deltaX()<0&&!a.blocked.left&&b.collideRight&&a.checkCollision.left?b.faceRight&&a.x0&&!a.blocked.right&&b.collideLeft&&a.checkCollision.right&&b.faceLeft&&a.right>b.left&&(c=a.right-b.left,c>this.TILE_BIAS&&(c=0)),0!==c&&(a.customSeparateX?a.overlapX=c:this.processTileSeparationX(a,c)),c},tileCheckY:function(a,b){var c=0;return a.deltaY()<0&&!a.blocked.up&&b.collideDown&&a.checkCollision.up?b.faceBottom&&a.y0&&!a.blocked.down&&b.collideUp&&a.checkCollision.down&&b.faceTop&&a.bottom>b.top&&(c=a.bottom-b.top,c>this.TILE_BIAS&&(c=0)),0!==c&&(a.customSeparateY?a.overlapY=c:this.processTileSeparationY(a,c)),c},processTileSeparationX:function(a,b){0>b?a.blocked.left=!0:b>0&&(a.blocked.right=!0),a.position.x-=b,a.velocity.x=0===a.bounce.x?0:-a.velocity.x*a.bounce.x},processTileSeparationY:function(a,b){0>b?a.blocked.up=!0:b>0&&(a.blocked.down=!0),a.position.y-=b,a.velocity.y=0===a.bounce.y?0:-a.velocity.y*a.bounce.y}},c.Utils.mixinPrototype(c.Physics.Arcade.prototype,c.Physics.Arcade.TilemapCollision.prototype),p2.Body.prototype.parent=null,p2.Spring.prototype.parent=null,c.Physics.P2=function(a,b){this.game=a,void 0===b?b={gravity:[0,0],broadphase:new p2.SAPBroadphase}:(b.hasOwnProperty("gravity")||(b.gravity=[0,0]),b.hasOwnProperty("broadphase")||(b.broadphase=new p2.SAPBroadphase)),this.config=b,this.world=new p2.World(this.config),this.frameRate=1/60,this.useElapsedTime=!1,this.paused=!1,this.materials=[],this.gravity=new c.Physics.P2.InversePointProxy(this,this.world.gravity),this.walls={left:null,right:null,top:null,bottom:null},this.onBodyAdded=new c.Signal,this.onBodyRemoved=new c.Signal,this.onSpringAdded=new c.Signal,this.onSpringRemoved=new c.Signal,this.onConstraintAdded=new c.Signal,this.onConstraintRemoved=new c.Signal,this.onContactMaterialAdded=new c.Signal,this.onContactMaterialRemoved=new c.Signal,this.postBroadphaseCallback=null,this.callbackContext=null,this.onBeginContact=new c.Signal,this.onEndContact=new c.Signal,b.hasOwnProperty("mpx")&&b.hasOwnProperty("pxm")&&b.hasOwnProperty("mpxi")&&b.hasOwnProperty("pxmi")&&(this.mpx=b.mpx,this.mpxi=b.mpxi,this.pxm=b.pxm,this.pxmi=b.pxmi),this.world.on("beginContact",this.beginContactHandler,this),this.world.on("endContact",this.endContactHandler,this),this.collisionGroups=[],this.nothingCollisionGroup=new c.Physics.P2.CollisionGroup(1),this.boundsCollisionGroup=new c.Physics.P2.CollisionGroup(2),this.everythingCollisionGroup=new c.Physics.P2.CollisionGroup(2147483648),this.boundsCollidesWith=[],this._toRemove=[],this._collisionGroupID=2,this._boundsLeft=!0,this._boundsRight=!0,this._boundsTop=!0,this._boundsBottom=!0,this._boundsOwnGroup=!1,this.setBoundsToWorld(!0,!0,!0,!0,!1) },c.Physics.P2.prototype={removeBodyNextStep:function(a){this._toRemove.push(a)},preUpdate:function(){for(var a=this._toRemove.length;a--;)this.removeBody(this._toRemove[a]);this._toRemove.length=0},enable:function(a,b,d){void 0===b&&(b=!1),void 0===d&&(d=!0);var e=1;if(Array.isArray(a))for(e=a.length;e--;)a[e]instanceof c.Group?this.enable(a[e].children,b,d):(this.enableBody(a[e],b),d&&a[e].hasOwnProperty("children")&&a[e].children.length>0&&this.enable(a[e],b,!0));else a instanceof c.Group?this.enable(a.children,b,d):(this.enableBody(a,b),d&&a.hasOwnProperty("children")&&a.children.length>0&&this.enable(a.children,b,!0))},enableBody:function(a,b){a.hasOwnProperty("body")&&null===a.body&&(a.body=new c.Physics.P2.Body(this.game,a,a.x,a.y,1),a.body.debug=b,"undefined"!=typeof a.anchor&&a.anchor.set(.5))},setImpactEvents:function(a){a?this.world.on("impact",this.impactHandler,this):this.world.off("impact",this.impactHandler,this)},setPostBroadphaseCallback:function(a,b){this.postBroadphaseCallback=a,this.callbackContext=b,null!==a?this.world.on("postBroadphase",this.postBroadphaseHandler,this):this.world.off("postBroadphase",this.postBroadphaseHandler,this)},postBroadphaseHandler:function(a){if(this.postBroadphaseCallback&&0!==a.pairs.length)for(var b=a.pairs.length-2;b>=0;b-=2)a.pairs[b].parent&&a.pairs[b+1].parent&&!this.postBroadphaseCallback.call(this.callbackContext,a.pairs[b].parent,a.pairs[b+1].parent)&&a.pairs.splice(b,2)},impactHandler:function(a){if(a.bodyA.parent&&a.bodyB.parent){var b=a.bodyA.parent,c=a.bodyB.parent;b._bodyCallbacks[a.bodyB.id]&&b._bodyCallbacks[a.bodyB.id].call(b._bodyCallbackContext[a.bodyB.id],b,c,a.shapeA,a.shapeB),c._bodyCallbacks[a.bodyA.id]&&c._bodyCallbacks[a.bodyA.id].call(c._bodyCallbackContext[a.bodyA.id],c,b,a.shapeB,a.shapeA),b._groupCallbacks[a.shapeB.collisionGroup]&&b._groupCallbacks[a.shapeB.collisionGroup].call(b._groupCallbackContext[a.shapeB.collisionGroup],b,c,a.shapeA,a.shapeB),c._groupCallbacks[a.shapeA.collisionGroup]&&c._groupCallbacks[a.shapeA.collisionGroup].call(c._groupCallbackContext[a.shapeA.collisionGroup],c,b,a.shapeB,a.shapeA)}},beginContactHandler:function(a){a.bodyA&&a.bodyB&&(this.onBeginContact.dispatch(a.bodyA,a.bodyB,a.shapeA,a.shapeB,a.contactEquations),a.bodyA.parent&&a.bodyA.parent.onBeginContact.dispatch(a.bodyB.parent,a.bodyB,a.shapeA,a.shapeB,a.contactEquations),a.bodyB.parent&&a.bodyB.parent.onBeginContact.dispatch(a.bodyA.parent,a.bodyA,a.shapeB,a.shapeA,a.contactEquations))},endContactHandler:function(a){a.bodyA&&a.bodyB&&(this.onEndContact.dispatch(a.bodyA,a.bodyB,a.shapeA,a.shapeB),a.bodyA.parent&&a.bodyA.parent.onEndContact.dispatch(a.bodyB.parent,a.bodyB,a.shapeA,a.shapeB),a.bodyB.parent&&a.bodyB.parent.onEndContact.dispatch(a.bodyA.parent,a.bodyA,a.shapeB,a.shapeA))},setBoundsToWorld:function(a,b,c,d,e){this.setBounds(this.game.world.bounds.x,this.game.world.bounds.y,this.game.world.bounds.width,this.game.world.bounds.height,a,b,c,d,e)},setWorldMaterial:function(a,b,c,d,e){void 0===b&&(b=!0),void 0===c&&(c=!0),void 0===d&&(d=!0),void 0===e&&(e=!0),b&&this.walls.left&&(this.walls.left.shapes[0].material=a),c&&this.walls.right&&(this.walls.right.shapes[0].material=a),d&&this.walls.top&&(this.walls.top.shapes[0].material=a),e&&this.walls.bottom&&(this.walls.bottom.shapes[0].material=a)},updateBoundsCollisionGroup:function(a){var b=this.everythingCollisionGroup.mask;void 0===a&&(b=this.boundsCollisionGroup.mask),this.walls.left&&(this.walls.left.shapes[0].collisionGroup=b),this.walls.right&&(this.walls.right.shapes[0].collisionGroup=b),this.walls.top&&(this.walls.top.shapes[0].collisionGroup=b),this.walls.bottom&&(this.walls.bottom.shapes[0].collisionGroup=b)},setBounds:function(a,b,c,d,e,f,g,h,i){void 0===e&&(e=this._boundsLeft),void 0===f&&(f=this._boundsRight),void 0===g&&(g=this._boundsTop),void 0===h&&(h=this._boundsBottom),void 0===i&&(i=this._boundsOwnGroup),this.walls.left&&this.world.removeBody(this.walls.left),this.walls.right&&this.world.removeBody(this.walls.right),this.walls.top&&this.world.removeBody(this.walls.top),this.walls.bottom&&this.world.removeBody(this.walls.bottom),e&&(this.walls.left=new p2.Body({mass:0,position:[this.pxmi(a),this.pxmi(b)],angle:1.5707963267948966}),this.walls.left.addShape(new p2.Plane),i&&(this.walls.left.shapes[0].collisionGroup=this.boundsCollisionGroup.mask),this.world.addBody(this.walls.left)),f&&(this.walls.right=new p2.Body({mass:0,position:[this.pxmi(a+c),this.pxmi(b)],angle:-1.5707963267948966}),this.walls.right.addShape(new p2.Plane),i&&(this.walls.right.shapes[0].collisionGroup=this.boundsCollisionGroup.mask),this.world.addBody(this.walls.right)),g&&(this.walls.top=new p2.Body({mass:0,position:[this.pxmi(a),this.pxmi(b)],angle:-3.141592653589793}),this.walls.top.addShape(new p2.Plane),i&&(this.walls.top.shapes[0].collisionGroup=this.boundsCollisionGroup.mask),this.world.addBody(this.walls.top)),h&&(this.walls.bottom=new p2.Body({mass:0,position:[this.pxmi(a),this.pxmi(b+d)]}),this.walls.bottom.addShape(new p2.Plane),i&&(this.walls.bottom.shapes[0].collisionGroup=this.boundsCollisionGroup.mask),this.world.addBody(this.walls.bottom)),this._boundsLeft=e,this._boundsRight=f,this._boundsTop=g,this._boundsBottom=h,this._boundsOwnGroup=i},pause:function(){this.paused=!0},resume:function(){this.paused=!1},update:function(){this.paused||this.world.step(this.useElapsedTime?this.game.time.physicsElapsed:this.frameRate)},reset:function(){this.world.on("beginContact",this.beginContactHandler,this),this.world.on("endContact",this.endContactHandler,this),this.nothingCollisionGroup=new c.Physics.P2.CollisionGroup(1),this.boundsCollisionGroup=new c.Physics.P2.CollisionGroup(2),this.everythingCollisionGroup=new c.Physics.P2.CollisionGroup(2147483648),this._collisionGroupID=2,this.setBoundsToWorld(!0,!0,!0,!0,!1)},clear:function(){this.world.time=0,this.world.fixedStepTime=0,this.world.solver&&this.world.solver.equations.length&&this.world.solver.removeAllEquations();for(var a=this.world.constraints,b=a.length-1;b>=0;b--)this.world.removeConstraint(a[b]);for(var c=this.world.bodies,b=c.length-1;b>=0;b--)this.world.removeBody(c[b]);for(var d=this.world.springs,b=d.length-1;b>=0;b--)this.world.removeSpring(d[b]);for(var e=this.world.contactMaterials,b=e.length-1;b>=0;b--)this.world.removeContactMaterial(e[b]);this.world.off("beginContact",this.beginContactHandler,this),this.world.off("endContact",this.endContactHandler,this),this.postBroadphaseCallback=null,this.callbackContext=null,this.impactCallback=null,this.collisionGroups=[],this._toRemove=[],this.boundsCollidesWith=[]},destroy:function(){this.clear(),this.game=null},addBody:function(a){return a.data.world?!1:(this.world.addBody(a.data),this.onBodyAdded.dispatch(a),!0)},removeBody:function(a){return a.data.world==this.world&&(this.world.removeBody(a.data),this.onBodyRemoved.dispatch(a)),a},addSpring:function(a){return this.world.addSpring(a instanceof c.Physics.P2.Spring||a instanceof c.Physics.P2.RotationalSpring?a.data:a),this.onSpringAdded.dispatch(a),a},removeSpring:function(a){return this.world.removeSpring(a instanceof c.Physics.P2.Spring||a instanceof c.Physics.P2.RotationalSpring?a.data:a),this.onSpringRemoved.dispatch(a),a},createDistanceConstraint:function(a,b,d,e,f,g){return a=this.getBody(a),b=this.getBody(b),a&&b?this.addConstraint(new c.Physics.P2.DistanceConstraint(this,a,b,d,e,f,g)):void console.warn("Cannot create Constraint, invalid body objects given")},createGearConstraint:function(a,b,d,e){return a=this.getBody(a),b=this.getBody(b),a&&b?this.addConstraint(new c.Physics.P2.GearConstraint(this,a,b,d,e)):void console.warn("Cannot create Constraint, invalid body objects given")},createRevoluteConstraint:function(a,b,d,e,f,g){return a=this.getBody(a),d=this.getBody(d),a&&d?this.addConstraint(new c.Physics.P2.RevoluteConstraint(this,a,b,d,e,f,g)):void console.warn("Cannot create Constraint, invalid body objects given")},createLockConstraint:function(a,b,d,e,f){return a=this.getBody(a),b=this.getBody(b),a&&b?this.addConstraint(new c.Physics.P2.LockConstraint(this,a,b,d,e,f)):void console.warn("Cannot create Constraint, invalid body objects given")},createPrismaticConstraint:function(a,b,d,e,f,g,h){return a=this.getBody(a),b=this.getBody(b),a&&b?this.addConstraint(new c.Physics.P2.PrismaticConstraint(this,a,b,d,e,f,g,h)):void console.warn("Cannot create Constraint, invalid body objects given")},addConstraint:function(a){return this.world.addConstraint(a),this.onConstraintAdded.dispatch(a),a},removeConstraint:function(a){return this.world.removeConstraint(a),this.onConstraintRemoved.dispatch(a),a},addContactMaterial:function(a){return this.world.addContactMaterial(a),this.onContactMaterialAdded.dispatch(a),a},removeContactMaterial:function(a){return this.world.removeContactMaterial(a),this.onContactMaterialRemoved.dispatch(a),a},getContactMaterial:function(a,b){return this.world.getContactMaterial(a,b)},setMaterial:function(a,b){for(var c=b.length;c--;)b[c].setMaterial(a)},createMaterial:function(a,b){a=a||"";var d=new c.Physics.P2.Material(a);return this.materials.push(d),"undefined"!=typeof b&&b.setMaterial(d),d},createContactMaterial:function(a,b,d){void 0===a&&(a=this.createMaterial()),void 0===b&&(b=this.createMaterial());var e=new c.Physics.P2.ContactMaterial(a,b,d);return this.addContactMaterial(e)},getBodies:function(){for(var a=[],b=this.world.bodies.length;b--;)a.push(this.world.bodies[b].parent);return a},getBody:function(a){return a instanceof p2.Body?a:a instanceof c.Physics.P2.Body?a.data:a.body&&a.body.type===c.Physics.P2JS?a.body.data:null},getSprings:function(){for(var a=[],b=this.world.springs.length;b--;)a.push(this.world.springs[b].parent);return a},getConstraints:function(){for(var a=[],b=this.world.constraints.length;b--;)a.push(this.world.constraints[b]);return a},hitTest:function(a,b,d,e){void 0===b&&(b=this.world.bodies),void 0===d&&(d=5),void 0===e&&(e=!1);for(var f=[this.pxmi(a.x),this.pxmi(a.y)],g=[],h=b.length;h--;)b[h]instanceof c.Physics.P2.Body&&(!e||b[h].data.type!==p2.Body.STATIC)?g.push(b[h].data):b[h]instanceof p2.Body&&b[h].parent&&(!e||b[h].type!==p2.Body.STATIC)?g.push(b[h]):b[h]instanceof c.Sprite&&b[h].hasOwnProperty("body")&&(!e||b[h].body.data.type!==p2.Body.STATIC)&&g.push(b[h].body.data);return this.world.hitTest(f,g,d)},toJSON:function(){return this.world.toJSON()},createCollisionGroup:function(a){var b=Math.pow(2,this._collisionGroupID);this.walls.left&&(this.walls.left.shapes[0].collisionMask=this.walls.left.shapes[0].collisionMask|b),this.walls.right&&(this.walls.right.shapes[0].collisionMask=this.walls.right.shapes[0].collisionMask|b),this.walls.top&&(this.walls.top.shapes[0].collisionMask=this.walls.top.shapes[0].collisionMask|b),this.walls.bottom&&(this.walls.bottom.shapes[0].collisionMask=this.walls.bottom.shapes[0].collisionMask|b),this._collisionGroupID++;var d=new c.Physics.P2.CollisionGroup(b);return this.collisionGroups.push(d),a&&this.setCollisionGroup(a,d),d},setCollisionGroup:function(a,b){if(a instanceof c.Group)for(var d=0;de;e++){var g=a.collision[b][e],h=this.createBody(g.x,g.y,0,c,{},g.polyline);h&&d.push(h)}return d},clearTilemapLayerBodies:function(a,b){b=a.getLayer(b);for(var c=a.layers[b].bodies.length;c--;)a.layers[b].bodies[c].destroy();a.layers[b].bodies.length=0},convertTilemap:function(a,b,c,d){b=a.getLayer(b),void 0===c&&(c=!0),void 0===d&&(d=!0),this.clearTilemapLayerBodies(a,b);for(var e=0,f=0,g=0,h=0,i=a.layers[b].height;i>h;h++){e=0;for(var j=0,k=a.layers[b].width;k>j;j++){var l=a.layers[b].data[h][j];if(l&&l.index>-1&&l.collides)if(d){var m=a.getTileRight(b,j,h);if(0===e&&(f=l.x*l.width,g=l.y*l.height,e=l.width),m&&m.collides)e+=l.width;else{var n=this.createBody(f,g,0,!1);n.addRectangle(e,l.height,e/2,l.height/2,0),c&&this.addBody(n),a.layers[b].bodies.push(n),e=0}}else{var n=this.createBody(l.x*l.width,l.y*l.height,0,!1);n.addRectangle(l.width,l.height,l.width/2,l.height/2,0),c&&this.addBody(n),a.layers[b].bodies.push(n)}}}return a.layers[b].bodies},mpx:function(a){return a*=20},pxm:function(a){return.05*a},mpxi:function(a){return a*=-20},pxmi:function(a){return a*-.05}},Object.defineProperty(c.Physics.P2.prototype,"friction",{get:function(){return this.world.defaultContactMaterial.friction},set:function(a){this.world.defaultContactMaterial.friction=a}}),Object.defineProperty(c.Physics.P2.prototype,"restitution",{get:function(){return this.world.defaultContactMaterial.restitution},set:function(a){this.world.defaultContactMaterial.restitution=a}}),Object.defineProperty(c.Physics.P2.prototype,"contactMaterial",{get:function(){return this.world.defaultContactMaterial},set:function(a){this.world.defaultContactMaterial=a}}),Object.defineProperty(c.Physics.P2.prototype,"applySpringForces",{get:function(){return this.world.applySpringForces},set:function(a){this.world.applySpringForces=a}}),Object.defineProperty(c.Physics.P2.prototype,"applyDamping",{get:function(){return this.world.applyDamping},set:function(a){this.world.applyDamping=a}}),Object.defineProperty(c.Physics.P2.prototype,"applyGravity",{get:function(){return this.world.applyGravity},set:function(a){this.world.applyGravity=a}}),Object.defineProperty(c.Physics.P2.prototype,"solveConstraints",{get:function(){return this.world.solveConstraints},set:function(a){this.world.solveConstraints=a}}),Object.defineProperty(c.Physics.P2.prototype,"time",{get:function(){return this.world.time}}),Object.defineProperty(c.Physics.P2.prototype,"emitImpactEvent",{get:function(){return this.world.emitImpactEvent},set:function(a){this.world.emitImpactEvent=a}}),Object.defineProperty(c.Physics.P2.prototype,"sleepMode",{get:function(){return this.world.sleepMode},set:function(a){this.world.sleepMode=a}}),Object.defineProperty(c.Physics.P2.prototype,"total",{get:function(){return this.world.bodies.length}}),c.Physics.P2.FixtureList=function(a){Array.isArray(a)||(a=[a]),this.rawList=a,this.init(),this.parse(this.rawList)},c.Physics.P2.FixtureList.prototype={init:function(){this.namedFixtures={},this.groupedFixtures=[],this.allFixtures=[]},setCategory:function(a,b){var c=function(b){b.collisionGroup=a};this.getFixtures(b).forEach(c)},setMask:function(a,b){var c=function(b){b.collisionMask=a};this.getFixtures(b).forEach(c)},setSensor:function(a,b){var c=function(b){b.sensor=a};this.getFixtures(b).forEach(c)},setMaterial:function(a,b){var c=function(b){b.material=a};this.getFixtures(b).forEach(c)},getFixtures:function(a){var b=[];if(a){a instanceof Array||(a=[a]);var c=this;return a.forEach(function(a){c.namedFixtures[a]&&b.push(c.namedFixtures[a])}),this.flatten(b)}return this.allFixtures},getFixtureByKey:function(a){return this.namedFixtures[a]},getGroup:function(a){return this.groupedFixtures[a]},parse:function(){var a,b,c,d;c=this.rawList,d=[];for(a in c)b=c[a],isNaN(a-0)?this.namedFixtures[a]=this.flatten(b):(this.groupedFixtures[a]=this.groupedFixtures[a]||[],this.groupedFixtures[a]=this.groupedFixtures[a].concat(b)),d.push(this.allFixtures=this.flatten(this.groupedFixtures))},flatten:function(a){var b,c;return b=[],c=arguments.callee,a.forEach(function(a){return Array.prototype.push.apply(b,Array.isArray(a)?c(a):[a])}),b}},c.Physics.P2.PointProxy=function(a,b){this.world=a,this.destination=b},c.Physics.P2.PointProxy.prototype.constructor=c.Physics.P2.PointProxy,Object.defineProperty(c.Physics.P2.PointProxy.prototype,"x",{get:function(){return this.world.mpx(this.destination[0])},set:function(a){this.destination[0]=this.world.pxm(a)}}),Object.defineProperty(c.Physics.P2.PointProxy.prototype,"y",{get:function(){return this.world.mpx(this.destination[1])},set:function(a){this.destination[1]=this.world.pxm(a)}}),Object.defineProperty(c.Physics.P2.PointProxy.prototype,"mx",{get:function(){return this.destination[0]},set:function(a){this.destination[0]=a}}),Object.defineProperty(c.Physics.P2.PointProxy.prototype,"my",{get:function(){return this.destination[1]},set:function(a){this.destination[1]=a}}),c.Physics.P2.InversePointProxy=function(a,b){this.world=a,this.destination=b},c.Physics.P2.InversePointProxy.prototype.constructor=c.Physics.P2.InversePointProxy,Object.defineProperty(c.Physics.P2.InversePointProxy.prototype,"x",{get:function(){return this.world.mpxi(this.destination[0])},set:function(a){this.destination[0]=this.world.pxmi(a)}}),Object.defineProperty(c.Physics.P2.InversePointProxy.prototype,"y",{get:function(){return this.world.mpxi(this.destination[1])},set:function(a){this.destination[1]=this.world.pxmi(a)}}),Object.defineProperty(c.Physics.P2.InversePointProxy.prototype,"mx",{get:function(){return this.destination[0]},set:function(a){this.destination[0]=-a}}),Object.defineProperty(c.Physics.P2.InversePointProxy.prototype,"my",{get:function(){return this.destination[1]},set:function(a){this.destination[1]=-a}}),c.Physics.P2.Body=function(a,b,d,e,f){b=b||null,d=d||0,e=e||0,void 0===f&&(f=1),this.game=a,this.world=a.physics.p2,this.sprite=b,this.type=c.Physics.P2JS,this.offset=new c.Point,this.data=new p2.Body({position:[this.world.pxmi(d),this.world.pxmi(e)],mass:f}),this.data.parent=this,this.velocity=new c.Physics.P2.InversePointProxy(this.world,this.data.velocity),this.force=new c.Physics.P2.InversePointProxy(this.world,this.data.force),this.gravity=new c.Point,this.onBeginContact=new c.Signal,this.onEndContact=new c.Signal,this.collidesWith=[],this.removeNextStep=!1,this.debugBody=null,this.dirty=!1,this._collideWorldBounds=!0,this._bodyCallbacks={},this._bodyCallbackContext={},this._groupCallbacks={},this._groupCallbackContext={},this._reset=!1,b&&(this.setRectangleFromSprite(b),b.exists&&this.game.physics.p2.addBody(this))},c.Physics.P2.Body.prototype={createBodyCallback:function(a,b,c){var d=-1;a.id?d=a.id:a.body&&(d=a.body.id),d>-1&&(null===b?(delete this._bodyCallbacks[d],delete this._bodyCallbackContext[d]):(this._bodyCallbacks[d]=b,this._bodyCallbackContext[d]=c))},createGroupCallback:function(a,b,c){null===b?(delete this._groupCallbacks[a.mask],delete this._groupCallbackContext[a.mask]):(this._groupCallbacks[a.mask]=b,this._groupCallbackContext[a.mask]=c)},getCollisionMask:function(){var a=0;this._collideWorldBounds&&(a=this.game.physics.p2.boundsCollisionGroup.mask);for(var b=0;b=0;c--)this.data.shapes[c].collisionMask=b;else a.collisionMask=b},setCollisionGroup:function(a,b){var c=this.getCollisionMask();if(void 0===b)for(var d=this.data.shapes.length-1;d>=0;d--)this.data.shapes[d].collisionGroup=a.mask,this.data.shapes[d].collisionMask=c;else b.collisionGroup=a.mask,b.collisionMask=c},clearCollision:function(a,b,c){if(void 0===a&&(a=!0),void 0===b&&(b=!0),void 0===c)for(var d=this.data.shapes.length-1;d>=0;d--)a&&(this.data.shapes[d].collisionGroup=null),b&&(this.data.shapes[d].collisionMask=null);else a&&(c.collisionGroup=null),b&&(c.collisionMask=null);a&&(this.collidesWith.length=0)},collides:function(a,b,c,d){if(Array.isArray(a))for(var e=0;e=0;e--)this.data.shapes[e].collisionMask=f;else d.collisionMask=f},adjustCenterOfMass:function(){this.data.adjustCenterOfMass(),this.shapeChanged()},getVelocityAtPoint:function(a,b){return this.data.getVelocityAtPoint(a,b)},applyDamping:function(a){this.data.applyDamping(a)},applyImpulse:function(a,b,c){this.data.applyImpulse(a,[this.world.pxmi(b),this.world.pxmi(c)])},applyImpulseLocal:function(a,b,c){this.data.applyImpulseLocal(a,[this.world.pxmi(b),this.world.pxmi(c)])},applyForce:function(a,b,c){this.data.applyForce(a,[this.world.pxmi(b),this.world.pxmi(c)])},setZeroForce:function(){this.data.setZeroForce()},setZeroRotation:function(){this.data.angularVelocity=0},setZeroVelocity:function(){this.data.velocity[0]=0,this.data.velocity[1]=0},setZeroDamping:function(){this.data.damping=0,this.data.angularDamping=0},toLocalFrame:function(a,b){return this.data.toLocalFrame(a,b)},toWorldFrame:function(a,b){return this.data.toWorldFrame(a,b)},rotateLeft:function(a){this.data.angularVelocity=this.world.pxm(-a)},rotateRight:function(a){this.data.angularVelocity=this.world.pxm(a)},moveForward:function(a){var b=this.world.pxmi(-a),c=this.data.angle+Math.PI/2;this.data.velocity[0]=b*Math.cos(c),this.data.velocity[1]=b*Math.sin(c)},moveBackward:function(a){var b=this.world.pxmi(-a),c=this.data.angle+Math.PI/2;this.data.velocity[0]=-(b*Math.cos(c)),this.data.velocity[1]=-(b*Math.sin(c))},thrust:function(a){var b=this.world.pxmi(-a),c=this.data.angle+Math.PI/2;this.data.force[0]+=b*Math.cos(c),this.data.force[1]+=b*Math.sin(c)},reverse:function(a){var b=this.world.pxmi(-a),c=this.data.angle+Math.PI/2;this.data.force[0]-=b*Math.cos(c),this.data.force[1]-=b*Math.sin(c)},moveLeft:function(a){this.data.velocity[0]=this.world.pxmi(-a)},moveRight:function(a){this.data.velocity[0]=this.world.pxmi(a)},moveUp:function(a){this.data.velocity[1]=this.world.pxmi(-a)},moveDown:function(a){this.data.velocity[1]=this.world.pxmi(a)},preUpdate:function(){this.dirty=!0,this.removeNextStep&&(this.removeFromWorld(),this.removeNextStep=!1)},postUpdate:function(){this.sprite.x=this.world.mpxi(this.data.position[0]),this.sprite.y=this.world.mpxi(this.data.position[1]),this.fixedRotation||(this.sprite.rotation=this.data.angle),this.debugBody&&this.debugBody.updateSpriteTransform(),this.dirty=!1},reset:function(a,b,c,d){void 0===c&&(c=!1),void 0===d&&(d=!1),this.setZeroForce(),this.setZeroVelocity(),this.setZeroRotation(),c&&this.setZeroDamping(),d&&(this.mass=1),this.x=a,this.y=b},addToWorld:function(){if(this.game.physics.p2._toRemove)for(var a=0;ad;d+=2)c.push([b[d],b[d+1]]);var f=c.length-1;c[f][0]===c[0][0]&&c[f][1]===c[0][1]&&c.pop();for(var g=0;g=0;c--)this.data.shapes[c].material=a;else b.material=a},shapeChanged:function(){this.debugBody&&this.debugBody.draw()},addPhaserPolygon:function(a,b){for(var c=this.game.cache.getPhysicsData(a,b),d=[],e=0;e=0?o>n:n>o;e=o>=0?++n:--n)k=b.vertices[e],p2.vec2.rotate(m,k,a),l.push([(m[0]+i[0])*this.ppu,-(m[1]+i[1])*this.ppu]);this.drawConvex(j,l,b.triangles,f,c,g,this.settings.debugPolygons,[i[0]*this.ppu,-i[1]*this.ppu])}d++}}},drawRectangle:function(a,b,c,d,e,f,g,h,i){void 0===i&&(i=1),void 0===g&&(g=0),a.lineStyle(i,g,1),a.beginFill(h),a.drawRect(b-e/2,c-f/2,e,f)},drawCircle:function(a,b,c,d,e,f,g){void 0===g&&(g=1),void 0===f&&(f=16777215),a.lineStyle(g,0,1),a.beginFill(f,1),a.drawCircle(b,c,2*-e),a.endFill(),a.moveTo(b,c),a.lineTo(b+e*Math.cos(-d),c+e*Math.sin(-d))},drawLine:function(a,b,c,d){void 0===d&&(d=1),void 0===c&&(c=0),a.lineStyle(5*d,c,1),a.moveTo(-b/2,0),a.lineTo(b/2,0)},drawConvex:function(a,b,c,d,e,f,g,h){var i,j,k,l,m,n,o,p,q,r,s;if(void 0===f&&(f=1),void 0===d&&(d=0),g){for(i=[16711680,65280,255],j=0;j!==b.length+1;)l=b[j%b.length],m=b[(j+1)%b.length],o=l[0],r=l[1],p=m[0],s=m[1],a.lineStyle(f,i[j%i.length],1),a.moveTo(o,-r),a.lineTo(p,-s),a.drawCircle(o,-r,2*f),j++;return a.lineStyle(f,0,1),a.drawCircle(h[0],h[1],2*f)}for(a.lineStyle(f,d,1),a.beginFill(e),j=0;j!==b.length;)k=b[j],n=k[0],q=k[1],0===j?a.moveTo(n,-q):a.lineTo(n,-q),j++;return a.endFill(),b.length>2?(a.moveTo(b[b.length-1][0],-b[b.length-1][1]),a.lineTo(b[0][0],-b[0][1])):void 0},drawPath:function(a,b,c,d,e){var f,g,h,i,j,k,l,m,n,o,p,q,r;for(void 0===e&&(e=1),void 0===c&&(c=0),a.lineStyle(e,c,1),"number"==typeof d&&a.beginFill(d),h=null,i=null,g=0;g2&&"number"==typeof d&&(a.moveTo(b[b.length-1][0],b[b.length-1][1]),a.lineTo(b[0][0],b[0][1]))},drawPlane:function(a,b,c,d,e,f,g,h,i,j){var k,l,m;void 0===f&&(f=1),void 0===d&&(d=16777215),a.lineStyle(f,e,11),a.beginFill(d),k=i,a.moveTo(b,-c),l=b+Math.cos(j)*this.game.width,m=c+Math.sin(j)*this.game.height,a.lineTo(l,-m),a.moveTo(b,-c),l=b+Math.cos(j)*-this.game.width,m=c+Math.sin(j)*-this.game.height,a.lineTo(l,-m)},drawCapsule:function(a,b,c,d,e,f,g,h,i){void 0===i&&(i=1),void 0===g&&(g=0),a.lineStyle(i,g,1);var j=Math.cos(d),k=Math.sin(d);a.beginFill(h,1),a.drawCircle(-e/2*j+b,-e/2*k+c,2*-f),a.drawCircle(e/2*j+b,e/2*k+c,2*-f),a.endFill(),a.lineStyle(i,g,0),a.beginFill(h,1),a.moveTo(-e/2*j+f*k+b,-e/2*k+f*j+c),a.lineTo(e/2*j+f*k+b,e/2*k+f*j+c),a.lineTo(e/2*j-f*k+b,e/2*k-f*j+c),a.lineTo(-e/2*j-f*k+b,-e/2*k-f*j+c),a.endFill(),a.lineStyle(i,g,1),a.moveTo(-e/2*j+f*k+b,-e/2*k+f*j+c),a.lineTo(e/2*j+f*k+b,e/2*k+f*j+c),a.moveTo(-e/2*j-f*k+b,-e/2*k-f*j+c),a.lineTo(e/2*j-f*k+b,e/2*k-f*j+c)},randomPastelHex:function(){var a,b,c,d;return c=[255,255,255],d=Math.floor(256*Math.random()),b=Math.floor(256*Math.random()),a=Math.floor(256*Math.random()),d=Math.floor((d+3*c[0])/4),b=Math.floor((b+3*c[1])/4),a=Math.floor((a+3*c[2])/4),this.rgbToHex(d,b,a)},rgbToHex:function(a,b,c){return this.componentToHex(a)+this.componentToHex(b)+this.componentToHex(c)},componentToHex:function(a){var b;return b=a.toString(16),2===b.len?b:b+"0"}}),c.Physics.P2.Spring=function(a,b,c,d,e,f,g,h,i,j){this.game=a.game,this.world=a,void 0===d&&(d=1),void 0===e&&(e=100),void 0===f&&(f=1),d=a.pxm(d);var k={restLength:d,stiffness:e,damping:f};"undefined"!=typeof g&&null!==g&&(k.worldAnchorA=[a.pxm(g[0]),a.pxm(g[1])]),"undefined"!=typeof h&&null!==h&&(k.worldAnchorB=[a.pxm(h[0]),a.pxm(h[1])]),"undefined"!=typeof i&&null!==i&&(k.localAnchorA=[a.pxm(i[0]),a.pxm(i[1])]),"undefined"!=typeof j&&null!==j&&(k.localAnchorB=[a.pxm(j[0]),a.pxm(j[1])]),this.data=new p2.LinearSpring(b,c,k),this.data.parent=this},c.Physics.P2.Spring.prototype.constructor=c.Physics.P2.Spring,c.Physics.P2.RotationalSpring=function(a,b,c,d,e,f){this.game=a.game,this.world=a,void 0===d&&(d=null),void 0===e&&(e=100),void 0===f&&(f=1),d&&(d=a.pxm(d));var g={restAngle:d,stiffness:e,damping:f};this.data=new p2.RotationalSpring(b,c,g),this.data.parent=this},c.Physics.P2.Spring.prototype.constructor=c.Physics.P2.Spring,c.Physics.P2.Material=function(a){this.name=a,p2.Material.call(this)},c.Physics.P2.Material.prototype=Object.create(p2.Material.prototype),c.Physics.P2.Material.prototype.constructor=c.Physics.P2.Material,c.Physics.P2.ContactMaterial=function(a,b,c){p2.ContactMaterial.call(this,a,b,c)},c.Physics.P2.ContactMaterial.prototype=Object.create(p2.ContactMaterial.prototype),c.Physics.P2.ContactMaterial.prototype.constructor=c.Physics.P2.ContactMaterial,c.Physics.P2.CollisionGroup=function(a){this.mask=a},c.Physics.P2.DistanceConstraint=function(a,b,c,d,e,f,g){void 0===d&&(d=100),void 0===e&&(e=[0,0]),void 0===f&&(f=[0,0]),void 0===g&&(g=Number.MAX_VALUE),this.game=a.game,this.world=a,d=a.pxm(d),e=[a.pxmi(e[0]),a.pxmi(e[1])],f=[a.pxmi(f[0]),a.pxmi(f[1])];var h={distance:d,localAnchorA:e,localAnchorB:f,maxForce:g};p2.DistanceConstraint.call(this,b,c,h)},c.Physics.P2.DistanceConstraint.prototype=Object.create(p2.DistanceConstraint.prototype),c.Physics.P2.DistanceConstraint.prototype.constructor=c.Physics.P2.DistanceConstraint,c.Physics.P2.GearConstraint=function(a,b,c,d,e){void 0===d&&(d=0),void 0===e&&(e=1),this.game=a.game,this.world=a;var f={angle:d,ratio:e};p2.GearConstraint.call(this,b,c,f)},c.Physics.P2.GearConstraint.prototype=Object.create(p2.GearConstraint.prototype),c.Physics.P2.GearConstraint.prototype.constructor=c.Physics.P2.GearConstraint,c.Physics.P2.LockConstraint=function(a,b,c,d,e,f){void 0===d&&(d=[0,0]),void 0===e&&(e=0),void 0===f&&(f=Number.MAX_VALUE),this.game=a.game,this.world=a,d=[a.pxm(d[0]),a.pxm(d[1])];var g={localOffsetB:d,localAngleB:e,maxForce:f};p2.LockConstraint.call(this,b,c,g)},c.Physics.P2.LockConstraint.prototype=Object.create(p2.LockConstraint.prototype),c.Physics.P2.LockConstraint.prototype.constructor=c.Physics.P2.LockConstraint,c.Physics.P2.PrismaticConstraint=function(a,b,c,d,e,f,g,h){void 0===d&&(d=!0),void 0===e&&(e=[0,0]),void 0===f&&(f=[0,0]),void 0===g&&(g=[0,0]),void 0===h&&(h=Number.MAX_VALUE),this.game=a.game,this.world=a,e=[a.pxmi(e[0]),a.pxmi(e[1])],f=[a.pxmi(f[0]),a.pxmi(f[1])];var i={localAnchorA:e,localAnchorB:f,localAxisA:g,maxForce:h,disableRotationalLock:!d};p2.PrismaticConstraint.call(this,b,c,i)},c.Physics.P2.PrismaticConstraint.prototype=Object.create(p2.PrismaticConstraint.prototype),c.Physics.P2.PrismaticConstraint.prototype.constructor=c.Physics.P2.PrismaticConstraint,c.Physics.P2.RevoluteConstraint=function(a,b,c,d,e,f,g){void 0===f&&(f=Number.MAX_VALUE),void 0===g&&(g=null),this.game=a.game,this.world=a,c=[a.pxmi(c[0]),a.pxmi(c[1])],e=[a.pxmi(e[0]),a.pxmi(e[1])],g&&(g=[a.pxmi(g[0]),a.pxmi(g[1])]);var h={worldPivot:g,localPivotA:c,localPivotB:e,maxForce:f};p2.RevoluteConstraint.call(this,b,d,h)},c.Physics.P2.RevoluteConstraint.prototype=Object.create(p2.RevoluteConstraint.prototype),c.Physics.P2.RevoluteConstraint.prototype.constructor=c.Physics.P2.RevoluteConstraint,c.ImageCollection=function(a,b,c,d,e,f,g){(void 0===c||0>=c)&&(c=32),(void 0===d||0>=d)&&(d=32),void 0===e&&(e=0),void 0===f&&(f=0),this.name=a,this.firstgid=0|b,this.imageWidth=0|c,this.imageHeight=0|d,this.imageMargin=0|e,this.imageSpacing=0|f,this.properties=g||{},this.images=[],this.total=0},c.ImageCollection.prototype={containsImageIndex:function(a){return a>=this.firstgid&&athis.right||b>this.bottom)},intersects:function(a,b,c,d){return c<=this.worldX?!1:d<=this.worldY?!1:a>=this.worldX+this.width?!1:b>=this.worldY+this.height?!1:!0},setCollisionCallback:function(a,b){this.collisionCallback=a,this.collisionCallbackContext=b},destroy:function(){this.collisionCallback=null,this.collisionCallbackContext=null,this.properties=null},setCollision:function(a,b,c,d){this.collideLeft=a,this.collideRight=b,this.collideUp=c,this.collideDown=d,this.faceLeft=a,this.faceRight=b,this.faceTop=c,this.faceBottom=d},resetCollision:function(){this.collideLeft=!1,this.collideRight=!1,this.collideUp=!1,this.collideDown=!1,this.faceTop=!1,this.faceBottom=!1,this.faceLeft=!1,this.faceRight=!1},isInteresting:function(a,b){return a&&b?this.collideLeft||this.collideRight||this.collideUp||this.collideDown||this.faceTop||this.faceBottom||this.faceLeft||this.faceRight||this.collisionCallback:a?this.collideLeft||this.collideRight||this.collideUp||this.collideDown:b?this.faceTop||this.faceBottom||this.faceLeft||this.faceRight:!1},copy:function(a){this.index=a.index,this.alpha=a.alpha,this.properties=a.properties,this.collideUp=a.collideUp,this.collideDown=a.collideDown,this.collideLeft=a.collideLeft,this.collideRight=a.collideRight,this.collisionCallback=a.collisionCallback,this.collisionCallbackContext=a.collisionCallbackContext}},c.Tile.prototype.constructor=c.Tile,Object.defineProperty(c.Tile.prototype,"collides",{get:function(){return this.collideLeft||this.collideRight||this.collideUp||this.collideDown}}),Object.defineProperty(c.Tile.prototype,"canCollide",{get:function(){return this.collideLeft||this.collideRight||this.collideUp||this.collideDown||this.collisionCallback}}),Object.defineProperty(c.Tile.prototype,"left",{get:function(){return this.worldX}}),Object.defineProperty(c.Tile.prototype,"right",{get:function(){return this.worldX+this.width}}),Object.defineProperty(c.Tile.prototype,"top",{get:function(){return this.worldY}}),Object.defineProperty(c.Tile.prototype,"bottom",{get:function(){return this.worldY+this.height}}),c.Tilemap=function(a,b,d,e,f,g){this.game=a,this.key=b;var h=c.TilemapParser.parse(this.game,b,d,e,f,g);null!==h&&(this.width=h.width,this.height=h.height,this.tileWidth=h.tileWidth,this.tileHeight=h.tileHeight,this.orientation=h.orientation,this.format=h.format,this.version=h.version,this.properties=h.properties,this.widthInPixels=h.widthInPixels,this.heightInPixels=h.heightInPixels,this.layers=h.layers,this.tilesets=h.tilesets,this.imagecollections=h.imagecollections,this.tiles=h.tiles,this.objects=h.objects,this.collideIndexes=[],this.collision=h.collision,this.images=h.images,this.currentLayer=0,this.debugMap=[],this._results=[],this._tempA=0,this._tempB=0)},c.Tilemap.CSV=0,c.Tilemap.TILED_JSON=1,c.Tilemap.NORTH=0,c.Tilemap.EAST=1,c.Tilemap.SOUTH=2,c.Tilemap.WEST=3,c.Tilemap.prototype={create:function(a,b,c,d,e,f){return void 0===f&&(f=this.game.world),this.width=b,this.height=c,this.setTileSize(d,e),this.layers.length=0,this.createBlankLayer(a,b,c,d,e,f)},setTileSize:function(a,b){this.tileWidth=a,this.tileHeight=b,this.widthInPixels=this.width*a,this.heightInPixels=this.height*b},addTilesetImage:function(a,b,d,e,f,g,h){if(void 0===a)return null;void 0===d&&(d=this.tileWidth),void 0===e&&(e=this.tileHeight),void 0===f&&(f=0),void 0===g&&(g=0),void 0===h&&(h=0),0===d&&(d=32),0===e&&(e=32);var i=null;if((void 0===b||null===b)&&(b=a),b instanceof c.BitmapData)i=b.canvas;else{if(!this.game.cache.checkImageKey(b))return console.warn('Phaser.Tilemap.addTilesetImage: Invalid image key given: "'+b+'"'),null;i=this.game.cache.getImage(b)}var j=this.getTilesetIndex(a);if(null===j&&this.format===c.Tilemap.TILED_JSON)return console.warn('Phaser.Tilemap.addTilesetImage: No data found in the JSON matching the tileset name: "'+b+'"'),null;if(this.tilesets[j])return this.tilesets[j].setImage(i),this.tilesets[j];var k=new c.Tileset(a,h,d,e,f,g,{});k.setImage(i),this.tilesets.push(k);for(var l=this.tilesets.length-1,m=f,n=f,o=0,p=0,q=0,r=h;rm;m++)if("undefined"!=typeof this.objects[a][m].gid&&"number"==typeof b&&this.objects[a][m].gid===b&&(l=!0),"undefined"!=typeof this.objects[a][m].id&&"number"==typeof b&&this.objects[a][m].id===b&&(l=!0),"undefined"!=typeof this.objects[a][m].name&&"string"==typeof b&&this.objects[a][m].name===b&&(l=!0),l){k=new i(this.game,this.objects[a][m].x,this.objects[a][m].y,d,e),k.name=this.objects[a][m].name,k.visible=this.objects[a][m].visible,k.autoCull=g,k.exists=f,k.width=this.objects[a][m].width,k.height=this.objects[a][m].height,this.objects[a][m].rotation&&(k.angle=this.objects[a][m].rotation),j&&(k.y-=k.height),h.add(k);for(var o in this.objects[a][m].properties)h.set(k,o,this.objects[a][m].properties[o],!1,!1,0,!0)}},createFromTiles:function(a,b,d,e,f,g){"number"==typeof a&&(a=[a]),void 0===b||null===b?b=[]:"number"==typeof b&&(b=[b]),e=this.getLayer(e),void 0===f&&(f=this.game.world),void 0===g&&(g={}),void 0===g.customClass&&(g.customClass=c.Sprite),void 0===g.adjustY&&(g.adjustY=!0);var h=this.layers[e].width,i=this.layers[e].height;if(this.copy(0,0,h,i,e),this._results.length<2)return 0;for(var j,k=0,l=1,m=this._results.length;m>l;l++)if(-1!==a.indexOf(this._results[l].index)){j=new g.customClass(this.game,this._results[l].worldX,this._results[l].worldY,d);for(var n in g)j[n]=g[n];f.add(j),k++}if(1===b.length)for(l=0;l1)for(l=0;lthis.layers.length?void console.warn("Tilemap.createLayer: Invalid layer ID given: "+f):e.add(new c.TilemapLayer(this.game,this,f,b,d))},createBlankLayer:function(a,b,d,e,f,g){if(void 0===g&&(g=this.game.world),null!==this.getLayerIndex(a))return void console.warn("Tilemap.createBlankLayer: Layer with matching name already exists");for(var h,i={name:a,x:0,y:0,width:b,height:d,widthInPixels:b*e,heightInPixels:d*f,alpha:1,visible:!0,properties:{},indexes:[],callbacks:[],bodies:[],data:null},j=[],k=0;d>k;k++){h=[];for(var l=0;b>l;l++)h.push(new c.Tile(i,-1,l,k,e,f));j.push(h)}i.data=j,this.layers.push(i),this.currentLayer=this.layers.length-1;var m=i.widthInPixels,n=i.heightInPixels;m>this.game.width&&(m=this.game.width),n>this.game.height&&(n=this.game.height);var j=new c.TilemapLayer(this.game,this,this.layers.length-1,m,n);return j.name=a,g.add(j)},getIndex:function(a,b){for(var c=0;ce;e++)this.layers[d].callbacks[a[e]]={callback:b,callbackContext:c}},setTileLocationCallback:function(a,b,c,d,e,f,g){if(g=this.getLayer(g),this.copy(a,b,c,d,g),!(this._results.length<2))for(var h=1;hb)){for(var f=a;b>=f;f++)this.setCollisionByIndex(f,c,d,!1);e&&this.calculateFaces(d)}},setCollisionByExclusion:function(a,b,c,d){void 0===b&&(b=!0),void 0===d&&(d=!0),c=this.getLayer(c);for(var e=0,f=this.tiles.length;f>e;e++)-1===a.indexOf(e)&&this.setCollisionByIndex(e,b,c,!1);d&&this.calculateFaces(c)},setCollisionByIndex:function(a,b,c,d){if(void 0===b&&(b=!0),void 0===c&&(c=this.currentLayer),void 0===d&&(d=!0),b)this.collideIndexes.push(a);else{var e=this.collideIndexes.indexOf(a);e>-1&&this.collideIndexes.splice(e,1)}for(var f=0;ff;f++)for(var h=0,i=this.layers[a].width;i>h;h++){var j=this.layers[a].data[f][h];j&&(b=this.getTileAbove(a,h,f),c=this.getTileBelow(a,h,f),d=this.getTileLeft(a,h,f),e=this.getTileRight(a,h,f),j.collides&&(j.faceTop=!0,j.faceBottom=!0,j.faceLeft=!0,j.faceRight=!0),b&&b.collides&&(j.faceTop=!1),c&&c.collides&&(j.faceBottom=!1),d&&d.collides&&(j.faceLeft=!1),e&&e.collides&&(j.faceRight=!1))}},getTileAbove:function(a,b,c){return c>0?this.layers[a].data[c-1][b]:null},getTileBelow:function(a,b,c){return c0?this.layers[a].data[c][b-1]:null},getTileRight:function(a,b,c){return b-1},removeTile:function(a,b,d){if(d=this.getLayer(d),a>=0&&a=0&&b=0&&b=0&&d-1?this.layers[e].data[d][b].setCollision(!0,!0,!0,!0):this.layers[e].data[d][b].resetCollision(),this.layers[e].dirty=!0,this.calculateFaces(e),this.layers[e].data[d][b]}return null},putTileWorldXY:function(a,b,c,d,e,f){return f=this.getLayer(f),b=this.game.math.snapToFloor(b,d)/d,c=this.game.math.snapToFloor(c,e)/e,this.putTile(a,b,c,f)},searchTileIndex:function(a,b,c,d){void 0===b&&(b=0),void 0===c&&(c=!1),d=this.getLayer(d);var e=0;if(c){for(var f=this.layers[d].height-1;f>=0;f--)for(var g=this.layers[d].width-1;g>=0;g--)if(this.layers[d].data[f][g].index===a){if(e===b)return this.layers[d].data[f][g];e++}}else for(var f=0;f=0&&a=0&&ba&&(a=0),0>b&&(b=0),c>this.layers[e].width&&(c=this.layers[e].width),d>this.layers[e].height&&(d=this.layers[e].height),this._results.length=0,this._results.push({x:a,y:b,width:c,height:d,layer:e});for(var f=b;b+d>f;f++)for(var g=a;a+c>g;g++)this._results.push(this.layers[e].data[f][g]);return this._results},paste:function(a,b,c,d){if(void 0===a&&(a=0),void 0===b&&(b=0),d=this.getLayer(d),c&&!(c.length<2)){for(var e=a-c[1].x,f=b-c[1].y,g=1;g1?this.debugMap[this.layers[this.currentLayer].data[c][d]]?"background: "+this.debugMap[this.layers[this.currentLayer].data[c][d]]:"background: #ffffff":"background: rgb(0, 0, 0)");a+="\n"}b[0]=a,console.log.apply(console,b)},destroy:function(){this.removeAllLayers(),this.data=[],this.game=null}},c.Tilemap.prototype.constructor=c.Tilemap,Object.defineProperty(c.Tilemap.prototype,"layer",{get:function(){return this.layers[this.currentLayer]},set:function(a){a!==this.currentLayer&&this.setLayer(a)}}),c.TilemapLayer=function(a,b,d,e,f){e|=0,f|=0,c.Sprite.call(this,a,0,0),this.map=b,this.index=d,this.layer=b.layers[d],this.canvas=c.Canvas.create(e,f),this.context=this.canvas.getContext("2d"),this.setTexture(new PIXI.Texture(new PIXI.BaseTexture(this.canvas))),this.type=c.TILEMAPLAYER,this.physicsType=c.TILEMAPLAYER,this.renderSettings={enableScrollDelta:!1,overdrawRatio:.2,copyCanvas:null},this.debug=!1,this.exists=!0,this.debugSettings={missingImageFill:"rgb(255,255,255)",debuggedTileOverfill:"rgba(0,255,0,0.4)",forceFullRedraw:!0,debugAlpha:.5,facingEdgeStroke:"rgba(0,255,0,1)",collidingTileOverfill:"rgba(0,255,0,0.2)"},this.scrollFactorX=1,this.scrollFactorY=1,this.dirty=!0,this.rayStepRate=4,this._wrap=!1,this._mc={scrollX:0,scrollY:0,renderWidth:0,renderHeight:0,tileWidth:b.tileWidth,tileHeight:b.tileHeight,cw:b.tileWidth,ch:b.tileHeight,tilesets:[]},this._scrollX=0,this._scrollY=0,this._results=[],a.device.canvasBitBltShift||(this.renderSettings.copyCanvas=c.TilemapLayer.ensureSharedCopyCanvas()),this.fixedToCamera=!0},c.TilemapLayer.prototype=Object.create(c.Sprite.prototype),c.TilemapLayer.prototype.constructor=c.TilemapLayer,c.TilemapLayer.prototype.preUpdateCore=c.Component.Core.preUpdate,c.TilemapLayer.sharedCopyCanvas=null,c.TilemapLayer.ensureSharedCopyCanvas=function(){return this.sharedCopyCanvas||(this.sharedCopyCanvas=c.Canvas.create(2,2)),this.sharedCopyCanvas},c.TilemapLayer.prototype.preUpdate=function(){return this.preUpdateCore()},c.TilemapLayer.prototype.postUpdate=function(){c.Component.FixedToCamera.postUpdate.call(this);var a=this.game.camera;this.scrollX=a.x*this.scrollFactorX/this.scale.x,this.scrollY=a.y*this.scrollFactorY/this.scale.y,this.render()},c.TilemapLayer.prototype.resize=function(a,b){this.canvas.width=a,this.canvas.height=b,this.texture.frame.resize(a,b),this.texture.width=a,this.texture.height=b,this.texture.crop.width=a,this.texture.crop.height=b,this.texture.baseTexture.width=a,this.texture.baseTexture.height=b,this.texture.baseTexture.dirty(),this.texture.requiresUpdate=!0,this.texture._updateUvs(),this.dirty=!0},c.TilemapLayer.prototype.resizeWorld=function(){this.game.world.setBounds(0,0,this.layer.widthInPixels*this.scale.x,this.layer.heightInPixels*this.scale.y)},c.TilemapLayer.prototype._fixX=function(a){return 0>a&&(a=0),1===this.scrollFactorX?a:this._scrollX+(a-this._scrollX/this.scrollFactorX)},c.TilemapLayer.prototype._unfixX=function(a){return 1===this.scrollFactorX?a:this._scrollX/this.scrollFactorX+(a-this._scrollX)},c.TilemapLayer.prototype._fixY=function(a){return 0>a&&(a=0),1===this.scrollFactorY?a:this._scrollY+(a-this._scrollY/this.scrollFactorY)},c.TilemapLayer.prototype._unfixY=function(a){return 1===this.scrollFactorY?a:this._scrollY/this.scrollFactorY+(a-this._scrollY)},c.TilemapLayer.prototype.getTileX=function(a){return Math.floor(this._fixX(a)/this._mc.tileWidth)},c.TilemapLayer.prototype.getTileY=function(a){return Math.floor(this._fixY(a)/this._mc.tileHeight)},c.TilemapLayer.prototype.getTileXY=function(a,b,c){return c.x=this.getTileX(a),c.y=this.getTileY(b),c},c.TilemapLayer.prototype.getRayCastTiles=function(a,b,c,d){b||(b=this.rayStepRate),void 0===c&&(c=!1),void 0===d&&(d=!1);var e=this.getTiles(a.x,a.y,a.width,a.height,c,d);if(0===e.length)return[];for(var f=a.coordinatesOnLine(b),g=[],h=0;hl;l++)for(var m=h;h+j>m;m++){var n=this.layer.data[l];n&&n[m]&&(g||n[m].isInteresting(e,f))&&this._results.push(n[m])}return this._results.slice()},c.TilemapLayer.prototype.resolveTileset=function(a){var b=this._mc.tilesets;if(2e3>a)for(;b.lengthb&&(g=-b,i=0),0>c&&(h=-c,j=0);var k=this.renderSettings.copyCanvas;if(k){(k.width=c&&(c=Math.max(0,c),e=Math.min(h-1,e)),f>=d&&(d=Math.max(0,d),f=Math.min(i-1,f)));var n,o,p,q,r,s,t=c*j-a,u=d*k-b,v=(c+(1<<20)*h)%h,w=(d+(1<<20)*i)%i;for(g.fillStyle=this.tileColor,q=w,s=f-d,o=u;s>=0;q++,s--,o+=k){q>=i&&(q-=i);var x=this.layer.data[q];for(p=v,r=e-c,n=t;r>=0;p++,r--,n+=j){p>=h&&(p-=h);var y=x[p];if(y&&!(y.index<0)){var z=y.index,A=l[z];void 0===A&&(A=this.resolveTileset(z)),y.alpha===m||this.debug||(g.globalAlpha=y.alpha,m=y.alpha),A?y.rotation||y.flipped?(g.save(),g.translate(n+y.centerX,o+y.centerY),g.rotate(y.rotation),y.flipped&&g.scale(-1,1),A.draw(g,-y.centerX,-y.centerY,z),g.restore()):A.draw(g,n,o,z):this.debugSettings.missingImageFill&&(g.fillStyle=this.debugSettings.missingImageFill,g.fillRect(n,o,j,k)),y.debug&&this.debugSettings.debuggedTileOverfill&&(g.fillStyle=this.debugSettings.debuggedTileOverfill,g.fillRect(n,o,j,k))}}}},c.TilemapLayer.prototype.renderDeltaScroll=function(a,b){var c=this._mc.scrollX,d=this._mc.scrollY,e=this.canvas.width,f=this.canvas.height,g=this._mc.tileWidth,h=this._mc.tileHeight,i=0,j=-g,k=0,l=-h;if(0>a?(i=e+a,j=e-1):a>0&&(j=a),0>b?(k=f+b,l=f-1):b>0&&(l=b),this.shiftCanvas(this.context,a,b),i=Math.floor((i+c)/g),j=Math.floor((j+c)/g),k=Math.floor((k+d)/h),l=Math.floor((l+d)/h),j>=i){this.context.clearRect(i*g-c,0,(j-i+1)*g,f);var m=Math.floor((0+d)/h),n=Math.floor((f-1+d)/h); -this.renderRegion(c,d,i,m,j,n)}if(l>=k){this.context.clearRect(0,k*h-d,e,(l-k+1)*h);var o=Math.floor((0+c)/g),p=Math.floor((e-1+c)/g);this.renderRegion(c,d,o,k,p,l)}},c.TilemapLayer.prototype.renderFull=function(){var a=this._mc.scrollX,b=this._mc.scrollY,c=this.canvas.width,d=this.canvas.height,e=this._mc.tileWidth,f=this._mc.tileHeight,g=Math.floor(a/e),h=Math.floor((c-1+a)/e),i=Math.floor(b/f),j=Math.floor((d-1+b)/f);this.context.clearRect(0,0,c,d),this.renderRegion(a,b,g,i,h,j)},c.TilemapLayer.prototype.render=function(){var a=!1;if(this.visible){this.context.save(),(this.dirty||this.layer.dirty)&&(this.layer.dirty=!1,a=!0);var b=this.canvas.width,c=this.canvas.height,d=0|this._scrollX,e=0|this._scrollY,f=this._mc,g=f.scrollX-d,h=f.scrollY-e;if(a||0!==g||0!==h||f.renderWidth!==b||f.renderHeight!==c)return f.scrollX=d,f.scrollY=e,(f.renderWidth!==b||f.renderHeight!==c)&&(f.renderWidth=b,f.renderHeight=c),this.debug&&(this.context.globalAlpha=this.debugSettings.debugAlpha,this.debugSettings.forceFullRedraw&&(a=!0)),!a&&this.renderSettings.enableScrollDelta&&Math.abs(g)+Math.abs(h)=0;d++,f--,b+=o){d>=m&&(d-=m);var x=this.layer.data[d];for(c=v,e=q-p,a=t;e>=0;c++,e--,a+=n){c>=l&&(c-=l);var y=x[c];!y||y.index<0||!y.collides||(this.debugSettings.collidingTileOverfill&&(i.fillStyle=this.debugSettings.collidingTileOverfill,i.fillRect(a,b,this._mc.cw,this._mc.ch)),this.debugSettings.facingEdgeStroke&&(i.beginPath(),y.faceTop&&(i.moveTo(a,b),i.lineTo(a+this._mc.cw,b)),y.faceBottom&&(i.moveTo(a,b+this._mc.ch),i.lineTo(a+this._mc.cw,b+this._mc.ch)),y.faceLeft&&(i.moveTo(a,b),i.lineTo(a,b+this._mc.ch)),y.faceRight&&(i.moveTo(a+this._mc.cw,b),i.lineTo(a+this._mc.cw,b+this._mc.ch)),i.stroke()))}}},Object.defineProperty(c.TilemapLayer.prototype,"wrap",{get:function(){return this._wrap},set:function(a){this._wrap=a,this.dirty=!0}}),Object.defineProperty(c.TilemapLayer.prototype,"scrollX",{get:function(){return this._scrollX},set:function(a){this._scrollX=a}}),Object.defineProperty(c.TilemapLayer.prototype,"scrollY",{get:function(){return this._scrollY},set:function(a){this._scrollY=a}}),Object.defineProperty(c.TilemapLayer.prototype,"collisionWidth",{get:function(){return this._mc.cw},set:function(a){this._mc.cw=0|a,this.dirty=!0}}),Object.defineProperty(c.TilemapLayer.prototype,"collisionHeight",{get:function(){return this._mc.ch},set:function(a){this._mc.ch=0|a,this.dirty=!0}}),c.TilemapParser={parse:function(a,b,d,e,f,g){if(void 0===d&&(d=32),void 0===e&&(e=32),void 0===f&&(f=10),void 0===g&&(g=10),void 0===b)return this.getEmptyData();if(null===b)return this.getEmptyData(d,e,f,g);var h=a.cache.getTilemapData(b);if(h){if(h.format===c.Tilemap.CSV)return this.parseCSV(b,h.data,d,e);if(!h.format||h.format===c.Tilemap.TILED_JSON)return this.parseTiledJSON(h.data)}else console.warn("Phaser.TilemapParser.parse - No map data found for key "+b)},parseCSV:function(a,b,d,e){var f=this.getEmptyData();b=b.trim();for(var g=[],h=b.split("\n"),i=h.length,j=0,k=0;ko;o++){if(h=0,i=!1,k=a.layers[f].data[o],k>536870912)switch(j=0,k>2147483648&&(k-=2147483648,j+=4),k>1073741824&&(k-=1073741824,j+=2),k>536870912&&(k-=536870912,j+=1),j){case 5:h=Math.PI/2;break;case 6:h=Math.PI;break;case 3:h=3*Math.PI/2;break;case 4:h=0,i=!0;break;case 7:h=Math.PI/2,i=!0;break;case 2:h=Math.PI,i=!0;break;case 1:h=3*Math.PI/2,i=!0}k>0?(m.push(new c.Tile(g,k,l,n.length,a.tilewidth,a.tileheight)),m[m.length-1].rotation=h,m[m.length-1].flipped=i):m.push(new c.Tile(g,-1,l,n.length,a.tilewidth,a.tileheight)),l++,l===a.layers[f].width&&(n.push(m),l=0,m=[])}g.data=n,e.push(g)}d.layers=e;for(var q=[],f=0;fz;z++)if(a.layers[f].objects[z].gid){var A={gid:a.layers[f].objects[z].gid,name:a.layers[f].objects[z].name,type:a.layers[f].objects[z].hasOwnProperty("type")?a.layers[f].objects[z].type:"",x:a.layers[f].objects[z].x,y:a.layers[f].objects[z].y,visible:a.layers[f].objects[z].visible,properties:a.layers[f].objects[z].properties};a.layers[f].objects[z].rotation&&(A.rotation=a.layers[f].objects[z].rotation),x[a.layers[f].name].push(A)}else if(a.layers[f].objects[z].polyline){var A={name:a.layers[f].objects[z].name,type:a.layers[f].objects[z].type,x:a.layers[f].objects[z].x,y:a.layers[f].objects[z].y,width:a.layers[f].objects[z].width,height:a.layers[f].objects[z].height,visible:a.layers[f].objects[z].visible,properties:a.layers[f].objects[z].properties};a.layers[f].objects[z].rotation&&(A.rotation=a.layers[f].objects[z].rotation),A.polyline=[];for(var B=0;B=c)&&(c=32),(void 0===d||0>=d)&&(d=32),void 0===e&&(e=0),void 0===f&&(f=0),this.name=a,this.firstgid=0|b,this.tileWidth=0|c,this.tileHeight=0|d,this.tileMargin=0|e,this.tileSpacing=0|f,this.properties=g||{},this.image=null,this.rows=0,this.columns=0,this.total=0,this.drawCoords=[]},c.Tileset.prototype={draw:function(a,b,c,d){var e=d-this.firstgid<<1;e>=0&&e+1=this.firstgid&&a=this._timer)if(this._timer=this.game.time.time+this.frequency*this.game.time.slowMotion,0!==this._flowTotal)if(this._flowQuantity>0){for(var a=0;a=this._flowTotal)){this.on=!1;break}}else this.emitParticle()&&(this._counter++,-1!==this._flowTotal&&this._counter>=this._flowTotal&&(this.on=!1));else this.emitParticle()&&(this._counter++,this._quantity>0&&this._counter>=this._quantity&&(this.on=!1));for(var a=this.children.length;a--;)this.children[a].exists&&this.children[a].update()},c.Particles.Arcade.Emitter.prototype.makeParticles=function(a,b,c,d,e){void 0===b&&(b=0),void 0===c&&(c=this.maxParticles),void 0===d&&(d=!1),void 0===e&&(e=!1);var f,g=0,h=a,i=b;for(this._frames=b,c>this.maxParticles&&(this.maxParticles=c);c>g;)Array.isArray(a)&&(h=this.game.rnd.pick(a)),Array.isArray(b)&&(i=this.game.rnd.pick(b)),f=new this.particleClass(this.game,0,0,h,i),this.game.physics.arcade.enable(f,!1),d?(f.body.checkCollision.any=!0,f.body.checkCollision.none=!1):f.body.checkCollision.none=!0,f.body.collideWorldBounds=e,f.body.skipQuadTree=!0,f.exists=!1,f.visible=!1,f.anchor.copyFrom(this.particleAnchor),this.add(f),g++;return this},c.Particles.Arcade.Emitter.prototype.kill=function(){this.on=!1,this.alive=!1,this.exists=!1},c.Particles.Arcade.Emitter.prototype.revive=function(){this.alive=!0,this.exists=!0},c.Particles.Arcade.Emitter.prototype.explode=function(a,b){this._flowTotal=0,this.start(!0,a,0,b,!1)},c.Particles.Arcade.Emitter.prototype.flow=function(a,b,c,d,e){(void 0===c||0===c)&&(c=1),void 0===d&&(d=-1),void 0===e&&(e=!0),c>this.maxParticles&&(c=this.maxParticles),this._counter=0,this._flowQuantity=c,this._flowTotal=d,e?(this.start(!0,a,b,c),this._counter+=c,this.on=!0,this._timer=this.game.time.time+b*this.game.time.slowMotion):this.start(!1,a,b,c)},c.Particles.Arcade.Emitter.prototype.start=function(a,b,c,d,e){if(void 0===a&&(a=!0),void 0===b&&(b=0),(void 0===c||null===c)&&(c=250),void 0===d&&(d=0),void 0===e&&(e=!1),d>this.maxParticles&&(d=this.maxParticles),this.revive(),this.visible=!0,this.lifespan=b,this.frequency=c,a||e)for(var f=0;d>f;f++)this.emitParticle();else this.on=!0,this._quantity+=d,this._counter=0,this._timer=this.game.time.time+c*this.game.time.slowMotion},c.Particles.Arcade.Emitter.prototype.emitParticle=function(){var a=this.getFirstExists(!1);return null===a?!1:(this.width>1||this.height>1?a.reset(this.game.rnd.integerInRange(this.left,this.right),this.game.rnd.integerInRange(this.top,this.bottom)):a.reset(this.emitX,this.emitY),a.angle=0,a.lifespan=this.lifespan,this.particleBringToTop?this.bringToTop(a):this.particleSendToBack&&this.sendToBack(a),this.autoScale?a.setScaleData(this.scaleData):1!==this.minParticleScale||1!==this.maxParticleScale?a.scale.set(this.game.rnd.realInRange(this.minParticleScale,this.maxParticleScale)):(this._minParticleScale.x!==this._maxParticleScale.x||this._minParticleScale.y!==this._maxParticleScale.y)&&a.scale.set(this.game.rnd.realInRange(this._minParticleScale.x,this._maxParticleScale.x),this.game.rnd.realInRange(this._minParticleScale.y,this._maxParticleScale.y)),a.frame=Array.isArray("object"===this._frames)?this.game.rnd.pick(this._frames):this._frames,this.autoAlpha?a.setAlphaData(this.alphaData):a.alpha=this.game.rnd.realInRange(this.minParticleAlpha,this.maxParticleAlpha),a.blendMode=this.blendMode,a.body.updateBounds(),a.body.bounce.setTo(this.bounce.x,this.bounce.y),a.body.velocity.x=this.game.rnd.between(this.minParticleSpeed.x,this.maxParticleSpeed.x),a.body.velocity.y=this.game.rnd.between(this.minParticleSpeed.y,this.maxParticleSpeed.y),a.body.angularVelocity=this.game.rnd.between(this.minRotation,this.maxRotation),a.body.gravity.y=this.gravity,a.body.drag.x=this.particleDrag.x,a.body.drag.y=this.particleDrag.y,a.body.angularDrag=this.angularDrag,a.onEmit(),!0)},c.Particles.Arcade.Emitter.prototype.destroy=function(){this.game.particles.remove(this),c.Group.prototype.destroy.call(this,!0,!1)},c.Particles.Arcade.Emitter.prototype.setSize=function(a,b){this.area.width=a,this.area.height=b},c.Particles.Arcade.Emitter.prototype.setXSpeed=function(a,b){a=a||0,b=b||0,this.minParticleSpeed.x=a,this.maxParticleSpeed.x=b},c.Particles.Arcade.Emitter.prototype.setYSpeed=function(a,b){a=a||0,b=b||0,this.minParticleSpeed.y=a,this.maxParticleSpeed.y=b},c.Particles.Arcade.Emitter.prototype.setRotation=function(a,b){a=a||0,b=b||0,this.minRotation=a,this.maxRotation=b},c.Particles.Arcade.Emitter.prototype.setAlpha=function(a,b,d,e,f){if(void 0===a&&(a=1),void 0===b&&(b=1),void 0===d&&(d=0),void 0===e&&(e=c.Easing.Linear.None),void 0===f&&(f=!1),this.minParticleAlpha=a,this.maxParticleAlpha=b,this.autoAlpha=!1,d>0&&a!==b){var g={v:a},h=this.game.make.tween(g).to({v:b},d,e);h.yoyo(f),this.alphaData=h.generateData(60),this.alphaData.reverse(),this.autoAlpha=!0}},c.Particles.Arcade.Emitter.prototype.setScale=function(a,b,d,e,f,g,h){if(void 0===a&&(a=1),void 0===b&&(b=1),void 0===d&&(d=1),void 0===e&&(e=1),void 0===f&&(f=0),void 0===g&&(g=c.Easing.Linear.None),void 0===h&&(h=!1),this.minParticleScale=1,this.maxParticleScale=1,this._minParticleScale.set(a,d),this._maxParticleScale.set(b,e),this.autoScale=!1,f>0&&(a!==b||d!==e)){var i={x:a,y:d},j=this.game.make.tween(i).to({x:b,y:e},f,g);j.yoyo(h),this.scaleData=j.generateData(60),this.scaleData.reverse(),this.autoScale=!0}},c.Particles.Arcade.Emitter.prototype.at=function(a){a.center?(this.emitX=a.center.x,this.emitY=a.center.y):(this.emitX=a.world.x+a.anchor.x*a.width,this.emitY=a.world.y+a.anchor.y*a.height)},Object.defineProperty(c.Particles.Arcade.Emitter.prototype,"width",{get:function(){return this.area.width},set:function(a){this.area.width=a}}),Object.defineProperty(c.Particles.Arcade.Emitter.prototype,"height",{get:function(){return this.area.height},set:function(a){this.area.height=a}}),Object.defineProperty(c.Particles.Arcade.Emitter.prototype,"x",{get:function(){return this.emitX},set:function(a){this.emitX=a}}),Object.defineProperty(c.Particles.Arcade.Emitter.prototype,"y",{get:function(){return this.emitY},set:function(a){this.emitY=a}}),Object.defineProperty(c.Particles.Arcade.Emitter.prototype,"left",{get:function(){return Math.floor(this.x-this.area.width/2)}}),Object.defineProperty(c.Particles.Arcade.Emitter.prototype,"right",{get:function(){return Math.floor(this.x+this.area.width/2)}}),Object.defineProperty(c.Particles.Arcade.Emitter.prototype,"top",{get:function(){return Math.floor(this.y-this.area.height/2)}}),Object.defineProperty(c.Particles.Arcade.Emitter.prototype,"bottom",{get:function(){return Math.floor(this.y+this.area.height/2)}}),c.Video=function(a,b,d){if(void 0===b&&(b=null),void 0===d&&(d=null),this.game=a,this.key=b,this.width=0,this.height=0,this.type=c.VIDEO,this.disableTextureUpload=!1,this.touchLocked=!1,this.onPlay=new c.Signal,this.onChangeSource=new c.Signal,this.onComplete=new c.Signal,this.onAccess=new c.Signal,this.onError=new c.Signal,this.onTimeout=new c.Signal,this.timeout=15e3,this._timeOutID=null,this.video=null,this.videoStream=null,this.isStreaming=!1,this.retryLimit=20,this.retry=0,this.retryInterval=500,this._retryID=null,this._codeMuted=!1,this._muted=!1,this._codePaused=!1,this._paused=!1,this._pending=!1,this._autoplay=!1,b&&this.game.cache.checkVideoKey(b)){var e=this.game.cache.getVideo(b);e.isBlob?this.createVideoFromBlob(e.data):this.video=e.data,this.width=this.video.videoWidth,this.height=this.video.videoHeight}else d&&this.createVideoFromURL(d,!1);this.video&&!d?(this.baseTexture=new PIXI.BaseTexture(this.video),this.baseTexture.forceLoaded(this.width,this.height)):(this.baseTexture=new PIXI.BaseTexture(PIXI.TextureCache.__default.baseTexture.source),this.baseTexture.forceLoaded(this.width,this.height)),this.texture=new PIXI.Texture(this.baseTexture),this.textureFrame=new c.Frame(0,0,0,this.width,this.height,"video"),this.texture.setFrame(this.textureFrame),this.texture.valid=!1,null!==b&&this.video&&(this.texture.valid=this.video.canplay),this.snapshot=null,c.BitmapData&&(this.snapshot=new c.BitmapData(this.game,"",this.width,this.height)),!this.game.device.cocoonJS&&(this.game.device.iOS||this.game.device.android)||window.PhaserGlobal&&window.PhaserGlobal.fakeiOSTouchLock?this.setTouchLock():e&&(e.locked=!1)},c.Video.prototype={connectToMediaStream:function(a,b){return a&&b&&(this.video=a,this.videoStream=b,this.isStreaming=!0,this.baseTexture.source=this.video,this.updateTexture(null,this.video.videoWidth,this.video.videoHeight),this.onAccess.dispatch(this)),this},startMediaStream:function(a,b,c){if(void 0===a&&(a=!1),void 0===b&&(b=null),void 0===c&&(c=null),!this.game.device.getUserMedia)return this.onError.dispatch(this,"No getUserMedia"),!1;null!==this.videoStream&&this.videoStream.stop(),this.removeVideoElement(),this.video=document.createElement("video"),this.video.setAttribute("autoplay","autoplay"),null!==b&&(this.video.width=b),null!==c&&(this.video.height=c),this._timeOutID=window.setTimeout(this.getUserMediaTimeout.bind(this),this.timeout);try{navigator.getUserMedia({audio:a,video:!0},this.getUserMediaSuccess.bind(this),this.getUserMediaError.bind(this))}catch(d){this.getUserMediaError(d)}return this},getUserMediaTimeout:function(){clearTimeout(this._timeOutID),this.onTimeout.dispatch(this)},getUserMediaError:function(a){clearTimeout(this._timeOutID),this.onError.dispatch(this,a)},getUserMediaSuccess:function(a){clearTimeout(this._timeOutID),this.videoStream=a,void 0!==this.video.mozSrcObject?this.video.mozSrcObject=a:this.video.src=window.URL&&window.URL.createObjectURL(a)||a;var b=this;this.video.onloadeddata=function(){function a(){if(c>0)if(b.video.videoWidth>0){var d=b.video.videoWidth,e=b.video.videoHeight;isNaN(b.video.videoHeight)&&(e=d/(4/3)),b.video.play(),b.isStreaming=!0,b.baseTexture.source=b.video,b.updateTexture(null,d,e),b.onAccess.dispatch(b)}else window.setTimeout(a,500);else console.warn("Unable to connect to video stream. Webcam error?");c--}var c=10;a()}},createVideoFromBlob:function(a){var b=this;return this.video=document.createElement("video"),this.video.controls=!1,this.video.setAttribute("autoplay","autoplay"),this.video.addEventListener("loadeddata",function(a){b.updateTexture(a)},!0),this.video.src=window.URL.createObjectURL(a),this.video.canplay=!0,this},createVideoFromURL:function(a,b){return void 0===b&&(b=!1),this.texture&&(this.texture.valid=!1),this.video=document.createElement("video"),this.video.controls=!1,b&&this.video.setAttribute("autoplay","autoplay"),this.video.src=a,this.video.canplay=!0,this.video.load(),this.retry=this.retryLimit,this._retryID=window.setTimeout(this.checkVideoProgress.bind(this),this.retryInterval),this.key=a,this},updateTexture:function(a,b,c){var d=!1;(void 0===b||null===b)&&(b=this.video.videoWidth,d=!0),(void 0===c||null===c)&&(c=this.video.videoHeight),this.width=b,this.height=c,this.baseTexture.source!==this.video&&(this.baseTexture.source=this.video),this.baseTexture.forceLoaded(b,c),this.texture.frame.resize(b,c),this.texture.width=b,this.texture.height=c,this.texture.valid=!0,this.snapshot&&this.snapshot.resize(b,c),d&&null!==this.key&&(this.onChangeSource.dispatch(this,b,c),this._autoplay&&(this.video.play(),this.onPlay.dispatch(this,this.loop,this.playbackRate)))},complete:function(){this.onComplete.dispatch(this)},play:function(a,b){return void 0===a&&(a=!1),void 0===b&&(b=1),this.game.sound.onMute&&(this.game.sound.onMute.add(this.setMute,this),this.game.sound.onUnMute.add(this.unsetMute,this),this.game.sound.mute&&this.setMute()),this.game.onPause.add(this.setPause,this),this.game.onResume.add(this.setResume,this),this.video.addEventListener("ended",this.complete.bind(this),!0),this.video.loop=a?"loop":"",this.video.playbackRate=b,this.touchLocked?this._pending=!0:(this._pending=!1,null!==this.key&&(4!==this.video.readyState?(this.retry=this.retryLimit,this._retryID=window.setTimeout(this.checkVideoProgress.bind(this),this.retryInterval)):this.video.addEventListener("playing",this.playHandler.bind(this),!0)),this.video.play(),this.onPlay.dispatch(this,a,b)),this},playHandler:function(){this.video.removeEventListener("playing",this.playHandler.bind(this)),this.updateTexture()},stop:function(){return this.game.sound.onMute&&(this.game.sound.onMute.remove(this.setMute,this),this.game.sound.onUnMute.remove(this.unsetMute,this)),this.game.onPause.remove(this.setPause,this),this.game.onResume.remove(this.setResume,this),this.isStreaming?(this.video.mozSrcObject?(this.video.mozSrcObject.stop(),this.video.src=null):(this.video.src="",this.videoStream.stop()),this.videoStream=null,this.isStreaming=!1):(this.video.removeEventListener("ended",this.complete.bind(this)),this.touchLocked?this._pending=!1:this.video.pause()),this},add:function(a){if(Array.isArray(a))for(var b=0;b0?this._retryID=window.setTimeout(this.checkVideoProgress.bind(this),this.retryInterval):console.warn("Phaser.Video: Unable to start downloading video in time",this.isStreaming))},setTouchLock:function(){this.game.input.touch.addTouchLockCallback(this.unlock,this),this.touchLocked=!0},unlock:function(){if(this.touchLocked=!1,this.video.play(),this.onPlay.dispatch(this,this.loop,this.playbackRate),this.key){var a=this.game.cache.getVideo(this.key);a&&!a.isBlob&&(a.locked=!1)}return!0},grab:function(a,b,c){return void 0===a&&(a=!1),void 0===b&&(b=1),void 0===c&&(c=null),null===this.snapshot?void console.warn("Video.grab cannot run because Phaser.BitmapData is unavailable"):(a&&this.snapshot.cls(),this.snapshot.copy(this.video,0,0,this.width,this.height,0,0,this.width,this.height,0,0,0,1,1,b,c),this.snapshot)},removeVideoElement:function(){if(this.video){for(this.video.parentNode&&this.video.parentNode.removeChild(this.video);this.video.hasChildNodes();)this.video.removeChild(this.video.firstChild);this.video.removeAttribute("autoplay"),this.video.removeAttribute("src"),this.video=null}},destroy:function(){this.stop(),this.removeVideoElement(),this.touchLocked&&this.game.input.touch.removeTouchLockCallback(this.unlock,this),this._retryID&&window.clearTimeout(this._retryID)}},Object.defineProperty(c.Video.prototype,"currentTime",{get:function(){return this.video?this.video.currentTime:0},set:function(a){this.video.currentTime=a}}),Object.defineProperty(c.Video.prototype,"duration",{get:function(){return this.video?this.video.duration:0}}),Object.defineProperty(c.Video.prototype,"progress",{get:function(){return this.video?this.video.currentTime/this.video.duration:0}}),Object.defineProperty(c.Video.prototype,"mute",{get:function(){return this._muted},set:function(a){if(a=a||null){if(this._muted)return;this._codeMuted=!0,this.setMute()}else{if(!this._muted)return;this._codeMuted=!1,this.unsetMute()}}}),Object.defineProperty(c.Video.prototype,"paused",{get:function(){return this._paused},set:function(a){if(a=a||null,!this.touchLocked)if(a){if(this._paused)return;this._codePaused=!0,this.setPause()}else{if(!this._paused)return;this._codePaused=!1,this.setResume()}}}),Object.defineProperty(c.Video.prototype,"volume",{get:function(){return this.video?this.video.volume:1},set:function(a){0>a?a=0:a>1&&(a=1),this.video&&(this.video.volume=a)}}),Object.defineProperty(c.Video.prototype,"playbackRate",{get:function(){return this.video?this.video.playbackRate:1},set:function(a){this.video&&(this.video.playbackRate=a)}}),Object.defineProperty(c.Video.prototype,"loop",{get:function(){return this.video?this.video.loop:!1},set:function(a){a&&this.video?this.video.loop="loop":this.video&&(this.video.loop="")}}),Object.defineProperty(c.Video.prototype,"playing",{get:function(){return!(this.video.paused&&this.video.ended)}}),c.Video.prototype.constructor=c.Video,void 0===PIXI.blendModes&&(PIXI.blendModes=c.blendModes),void 0===PIXI.scaleModes&&(PIXI.scaleModes=c.scaleModes),void 0===PIXI.Texture.emptyTexture&&(PIXI.Texture.emptyTexture=new PIXI.Texture(new PIXI.BaseTexture)),void 0===PIXI.DisplayObject._tempMatrix&&(PIXI.DisplayObject._tempMatrix=new PIXI.Matrix),void 0===PIXI.RenderTexture.tempMatrix&&(PIXI.RenderTexture.tempMatrix=new PIXI.Matrix),void 0===PIXI.Graphics.POLY&&(PIXI.Graphics.POLY=c.POLYGON,PIXI.Graphics.RECT=c.RECTANGLE,PIXI.Graphics.CIRC=c.CIRCLE,PIXI.Graphics.ELIP=c.ELLIPSE,PIXI.Graphics.RREC=c.ROUNDEDRECTANGLE),PIXI.TextureSilentFail=!0,"undefined"!=typeof exports?("undefined"!=typeof module&&module.exports&&(exports=module.exports=c),exports.Phaser=c):"undefined"!=typeof define&&define.amd?define("Phaser",function(){return b.Phaser=c}()):b.Phaser=c}.call(this); +this.renderRegion(c,d,i,m,j,n)}if(l>=k){this.context.clearRect(0,k*h-d,e,(l-k+1)*h);var o=Math.floor((0+c)/g),p=Math.floor((e-1+c)/g);this.renderRegion(c,d,o,k,p,l)}},c.TilemapLayer.prototype.renderFull=function(){var a=this._mc.scrollX,b=this._mc.scrollY,c=this.canvas.width,d=this.canvas.height,e=this._mc.tileWidth,f=this._mc.tileHeight,g=Math.floor(a/e),h=Math.floor((c-1+a)/e),i=Math.floor(b/f),j=Math.floor((d-1+b)/f);this.context.clearRect(0,0,c,d),this.renderRegion(a,b,g,i,h,j)},c.TilemapLayer.prototype.render=function(){var a=!1;if(this.visible){this.context.save(),(this.dirty||this.layer.dirty)&&(this.layer.dirty=!1,a=!0);var b=this.canvas.width,c=this.canvas.height,d=0|this._scrollX,e=0|this._scrollY,f=this._mc,g=f.scrollX-d,h=f.scrollY-e;if(a||0!==g||0!==h||f.renderWidth!==b||f.renderHeight!==c)return f.scrollX=d,f.scrollY=e,(f.renderWidth!==b||f.renderHeight!==c)&&(f.renderWidth=b,f.renderHeight=c),this.debug&&(this.context.globalAlpha=this.debugSettings.debugAlpha,this.debugSettings.forceFullRedraw&&(a=!0)),!a&&this.renderSettings.enableScrollDelta&&Math.abs(g)+Math.abs(h)=0;d++,f--,b+=o){d>=m&&(d-=m);var x=this.layer.data[d];for(c=v,e=q-p,a=t;e>=0;c++,e--,a+=n){c>=l&&(c-=l);var y=x[c];!y||y.index<0||!y.collides||(this.debugSettings.collidingTileOverfill&&(i.fillStyle=this.debugSettings.collidingTileOverfill,i.fillRect(a,b,this._mc.cw,this._mc.ch)),this.debugSettings.facingEdgeStroke&&(i.beginPath(),y.faceTop&&(i.moveTo(a,b),i.lineTo(a+this._mc.cw,b)),y.faceBottom&&(i.moveTo(a,b+this._mc.ch),i.lineTo(a+this._mc.cw,b+this._mc.ch)),y.faceLeft&&(i.moveTo(a,b),i.lineTo(a,b+this._mc.ch)),y.faceRight&&(i.moveTo(a+this._mc.cw,b),i.lineTo(a+this._mc.cw,b+this._mc.ch)),i.stroke()))}}},Object.defineProperty(c.TilemapLayer.prototype,"wrap",{get:function(){return this._wrap},set:function(a){this._wrap=a,this.dirty=!0}}),Object.defineProperty(c.TilemapLayer.prototype,"scrollX",{get:function(){return this._scrollX},set:function(a){this._scrollX=a}}),Object.defineProperty(c.TilemapLayer.prototype,"scrollY",{get:function(){return this._scrollY},set:function(a){this._scrollY=a}}),Object.defineProperty(c.TilemapLayer.prototype,"collisionWidth",{get:function(){return this._mc.cw},set:function(a){this._mc.cw=0|a,this.dirty=!0}}),Object.defineProperty(c.TilemapLayer.prototype,"collisionHeight",{get:function(){return this._mc.ch},set:function(a){this._mc.ch=0|a,this.dirty=!0}}),c.TilemapParser={parse:function(a,b,d,e,f,g){if(void 0===d&&(d=32),void 0===e&&(e=32),void 0===f&&(f=10),void 0===g&&(g=10),void 0===b)return this.getEmptyData();if(null===b)return this.getEmptyData(d,e,f,g);var h=a.cache.getTilemapData(b);if(h){if(h.format===c.Tilemap.CSV)return this.parseCSV(b,h.data,d,e);if(!h.format||h.format===c.Tilemap.TILED_JSON)return this.parseTiledJSON(h.data)}else console.warn("Phaser.TilemapParser.parse - No map data found for key "+b)},parseCSV:function(a,b,d,e){var f=this.getEmptyData();b=b.trim();for(var g=[],h=b.split("\n"),i=h.length,j=0,k=0;ko;o++){if(h=0,i=!1,k=a.layers[f].data[o],k>536870912)switch(j=0,k>2147483648&&(k-=2147483648,j+=4),k>1073741824&&(k-=1073741824,j+=2),k>536870912&&(k-=536870912,j+=1),j){case 5:h=Math.PI/2;break;case 6:h=Math.PI;break;case 3:h=3*Math.PI/2;break;case 4:h=0,i=!0;break;case 7:h=Math.PI/2,i=!0;break;case 2:h=Math.PI,i=!0;break;case 1:h=3*Math.PI/2,i=!0}k>0?(m.push(new c.Tile(g,k,l,n.length,a.tilewidth,a.tileheight)),m[m.length-1].rotation=h,m[m.length-1].flipped=i):m.push(new c.Tile(g,-1,l,n.length,a.tilewidth,a.tileheight)),l++,l===a.layers[f].width&&(n.push(m),l=0,m=[])}g.data=n,e.push(g)}d.layers=e;for(var q=[],f=0;fz;z++)if(a.layers[f].objects[z].gid){var A={gid:a.layers[f].objects[z].gid,name:a.layers[f].objects[z].name,type:a.layers[f].objects[z].hasOwnProperty("type")?a.layers[f].objects[z].type:"",x:a.layers[f].objects[z].x,y:a.layers[f].objects[z].y,visible:a.layers[f].objects[z].visible,properties:a.layers[f].objects[z].properties};a.layers[f].objects[z].rotation&&(A.rotation=a.layers[f].objects[z].rotation),x[a.layers[f].name].push(A)}else if(a.layers[f].objects[z].polyline){var A={name:a.layers[f].objects[z].name,type:a.layers[f].objects[z].type,x:a.layers[f].objects[z].x,y:a.layers[f].objects[z].y,width:a.layers[f].objects[z].width,height:a.layers[f].objects[z].height,visible:a.layers[f].objects[z].visible,properties:a.layers[f].objects[z].properties};a.layers[f].objects[z].rotation&&(A.rotation=a.layers[f].objects[z].rotation),A.polyline=[];for(var B=0;B=c)&&(c=32),(void 0===d||0>=d)&&(d=32),void 0===e&&(e=0),void 0===f&&(f=0),this.name=a,this.firstgid=0|b,this.tileWidth=0|c,this.tileHeight=0|d,this.tileMargin=0|e,this.tileSpacing=0|f,this.properties=g||{},this.image=null,this.rows=0,this.columns=0,this.total=0,this.drawCoords=[]},c.Tileset.prototype={draw:function(a,b,c,d){var e=d-this.firstgid<<1;e>=0&&e+1=this.firstgid&&a=this._timer)if(this._timer=this.game.time.time+this.frequency*this.game.time.slowMotion,0!==this._flowTotal)if(this._flowQuantity>0){for(var a=0;a=this._flowTotal)){this.on=!1;break}}else this.emitParticle()&&(this._counter++,-1!==this._flowTotal&&this._counter>=this._flowTotal&&(this.on=!1));else this.emitParticle()&&(this._counter++,this._quantity>0&&this._counter>=this._quantity&&(this.on=!1));for(var a=this.children.length;a--;)this.children[a].exists&&this.children[a].update()},c.Particles.Arcade.Emitter.prototype.makeParticles=function(a,b,c,d,e){void 0===b&&(b=0),void 0===c&&(c=this.maxParticles),void 0===d&&(d=!1),void 0===e&&(e=!1);var f,g=0,h=a,i=b;for(this._frames=b,c>this.maxParticles&&(this.maxParticles=c);c>g;)Array.isArray(a)&&(h=this.game.rnd.pick(a)),Array.isArray(b)&&(i=this.game.rnd.pick(b)),f=new this.particleClass(this.game,0,0,h,i),this.game.physics.arcade.enable(f,!1),d?(f.body.checkCollision.any=!0,f.body.checkCollision.none=!1):f.body.checkCollision.none=!0,f.body.collideWorldBounds=e,f.body.skipQuadTree=!0,f.exists=!1,f.visible=!1,f.anchor.copyFrom(this.particleAnchor),this.add(f),g++;return this},c.Particles.Arcade.Emitter.prototype.kill=function(){this.on=!1,this.alive=!1,this.exists=!1},c.Particles.Arcade.Emitter.prototype.revive=function(){this.alive=!0,this.exists=!0},c.Particles.Arcade.Emitter.prototype.explode=function(a,b){this._flowTotal=0,this.start(!0,a,0,b,!1)},c.Particles.Arcade.Emitter.prototype.flow=function(a,b,c,d,e){(void 0===c||0===c)&&(c=1),void 0===d&&(d=-1),void 0===e&&(e=!0),c>this.maxParticles&&(c=this.maxParticles),this._counter=0,this._flowQuantity=c,this._flowTotal=d,e?(this.start(!0,a,b,c),this._counter+=c,this.on=!0,this._timer=this.game.time.time+b*this.game.time.slowMotion):this.start(!1,a,b,c)},c.Particles.Arcade.Emitter.prototype.start=function(a,b,c,d,e){if(void 0===a&&(a=!0),void 0===b&&(b=0),(void 0===c||null===c)&&(c=250),void 0===d&&(d=0),void 0===e&&(e=!1),d>this.maxParticles&&(d=this.maxParticles),this.revive(),this.visible=!0,this.lifespan=b,this.frequency=c,a||e)for(var f=0;d>f;f++)this.emitParticle();else this.on=!0,this._quantity+=d,this._counter=0,this._timer=this.game.time.time+c*this.game.time.slowMotion},c.Particles.Arcade.Emitter.prototype.emitParticle=function(){var a=this.getFirstExists(!1);return null===a?!1:(this.width>1||this.height>1?a.reset(this.game.rnd.integerInRange(this.left,this.right),this.game.rnd.integerInRange(this.top,this.bottom)):a.reset(this.emitX,this.emitY),a.angle=0,a.lifespan=this.lifespan,this.particleBringToTop?this.bringToTop(a):this.particleSendToBack&&this.sendToBack(a),this.autoScale?a.setScaleData(this.scaleData):1!==this.minParticleScale||1!==this.maxParticleScale?a.scale.set(this.game.rnd.realInRange(this.minParticleScale,this.maxParticleScale)):(this._minParticleScale.x!==this._maxParticleScale.x||this._minParticleScale.y!==this._maxParticleScale.y)&&a.scale.set(this.game.rnd.realInRange(this._minParticleScale.x,this._maxParticleScale.x),this.game.rnd.realInRange(this._minParticleScale.y,this._maxParticleScale.y)),a.frame=Array.isArray("object"===this._frames)?this.game.rnd.pick(this._frames):this._frames,this.autoAlpha?a.setAlphaData(this.alphaData):a.alpha=this.game.rnd.realInRange(this.minParticleAlpha,this.maxParticleAlpha),a.blendMode=this.blendMode,a.body.updateBounds(),a.body.bounce.setTo(this.bounce.x,this.bounce.y),a.body.velocity.x=this.game.rnd.between(this.minParticleSpeed.x,this.maxParticleSpeed.x),a.body.velocity.y=this.game.rnd.between(this.minParticleSpeed.y,this.maxParticleSpeed.y),a.body.angularVelocity=this.game.rnd.between(this.minRotation,this.maxRotation),a.body.gravity.y=this.gravity,a.body.drag.x=this.particleDrag.x,a.body.drag.y=this.particleDrag.y,a.body.angularDrag=this.angularDrag,a.onEmit(),!0)},c.Particles.Arcade.Emitter.prototype.destroy=function(){this.game.particles.remove(this),c.Group.prototype.destroy.call(this,!0,!1)},c.Particles.Arcade.Emitter.prototype.setSize=function(a,b){this.area.width=a,this.area.height=b},c.Particles.Arcade.Emitter.prototype.setXSpeed=function(a,b){a=a||0,b=b||0,this.minParticleSpeed.x=a,this.maxParticleSpeed.x=b},c.Particles.Arcade.Emitter.prototype.setYSpeed=function(a,b){a=a||0,b=b||0,this.minParticleSpeed.y=a,this.maxParticleSpeed.y=b},c.Particles.Arcade.Emitter.prototype.setRotation=function(a,b){a=a||0,b=b||0,this.minRotation=a,this.maxRotation=b},c.Particles.Arcade.Emitter.prototype.setAlpha=function(a,b,d,e,f){if(void 0===a&&(a=1),void 0===b&&(b=1),void 0===d&&(d=0),void 0===e&&(e=c.Easing.Linear.None),void 0===f&&(f=!1),this.minParticleAlpha=a,this.maxParticleAlpha=b,this.autoAlpha=!1,d>0&&a!==b){var g={v:a},h=this.game.make.tween(g).to({v:b},d,e);h.yoyo(f),this.alphaData=h.generateData(60),this.alphaData.reverse(),this.autoAlpha=!0}},c.Particles.Arcade.Emitter.prototype.setScale=function(a,b,d,e,f,g,h){if(void 0===a&&(a=1),void 0===b&&(b=1),void 0===d&&(d=1),void 0===e&&(e=1),void 0===f&&(f=0),void 0===g&&(g=c.Easing.Linear.None),void 0===h&&(h=!1),this.minParticleScale=1,this.maxParticleScale=1,this._minParticleScale.set(a,d),this._maxParticleScale.set(b,e),this.autoScale=!1,f>0&&(a!==b||d!==e)){var i={x:a,y:d},j=this.game.make.tween(i).to({x:b,y:e},f,g);j.yoyo(h),this.scaleData=j.generateData(60),this.scaleData.reverse(),this.autoScale=!0}},c.Particles.Arcade.Emitter.prototype.at=function(a){a.center?(this.emitX=a.center.x,this.emitY=a.center.y):(this.emitX=a.world.x+a.anchor.x*a.width,this.emitY=a.world.y+a.anchor.y*a.height)},Object.defineProperty(c.Particles.Arcade.Emitter.prototype,"width",{get:function(){return this.area.width},set:function(a){this.area.width=a}}),Object.defineProperty(c.Particles.Arcade.Emitter.prototype,"height",{get:function(){return this.area.height},set:function(a){this.area.height=a}}),Object.defineProperty(c.Particles.Arcade.Emitter.prototype,"x",{get:function(){return this.emitX},set:function(a){this.emitX=a}}),Object.defineProperty(c.Particles.Arcade.Emitter.prototype,"y",{get:function(){return this.emitY},set:function(a){this.emitY=a}}),Object.defineProperty(c.Particles.Arcade.Emitter.prototype,"left",{get:function(){return Math.floor(this.x-this.area.width/2)}}),Object.defineProperty(c.Particles.Arcade.Emitter.prototype,"right",{get:function(){return Math.floor(this.x+this.area.width/2)}}),Object.defineProperty(c.Particles.Arcade.Emitter.prototype,"top",{get:function(){return Math.floor(this.y-this.area.height/2)}}),Object.defineProperty(c.Particles.Arcade.Emitter.prototype,"bottom",{get:function(){return Math.floor(this.y+this.area.height/2)}}),c.Video=function(a,b,d){if(void 0===b&&(b=null),void 0===d&&(d=null),this.game=a,this.key=b,this.width=0,this.height=0,this.type=c.VIDEO,this.disableTextureUpload=!1,this.touchLocked=!1,this.onPlay=new c.Signal,this.onChangeSource=new c.Signal,this.onComplete=new c.Signal,this.onAccess=new c.Signal,this.onError=new c.Signal,this.onTimeout=new c.Signal,this.timeout=15e3,this._timeOutID=null,this.video=null,this.videoStream=null,this.isStreaming=!1,this.retryLimit=20,this.retry=0,this.retryInterval=500,this._retryID=null,this._codeMuted=!1,this._muted=!1,this._codePaused=!1,this._paused=!1,this._pending=!1,this._autoplay=!1,b&&this.game.cache.checkVideoKey(b)){var e=this.game.cache.getVideo(b);e.isBlob?this.createVideoFromBlob(e.data):this.video=e.data,this.width=this.video.videoWidth,this.height=this.video.videoHeight}else d&&this.createVideoFromURL(d,!1);this.video&&!d?(this.baseTexture=new PIXI.BaseTexture(this.video),this.baseTexture.forceLoaded(this.width,this.height)):(this.baseTexture=new PIXI.BaseTexture(PIXI.TextureCache.__default.baseTexture.source),this.baseTexture.forceLoaded(this.width,this.height)),this.texture=new PIXI.Texture(this.baseTexture),this.textureFrame=new c.Frame(0,0,0,this.width,this.height,"video"),this.texture.setFrame(this.textureFrame),this.texture.valid=!1,null!==b&&this.video&&(this.texture.valid=this.video.canplay),this.snapshot=null,c.BitmapData&&(this.snapshot=new c.BitmapData(this.game,"",this.width,this.height)),!this.game.device.cocoonJS&&(this.game.device.iOS||this.game.device.android)||window.PhaserGlobal&&window.PhaserGlobal.fakeiOSTouchLock?this.setTouchLock():e&&(e.locked=!1)},c.Video.prototype={connectToMediaStream:function(a,b){return a&&b&&(this.video=a,this.videoStream=b,this.isStreaming=!0,this.baseTexture.source=this.video,this.updateTexture(null,this.video.videoWidth,this.video.videoHeight),this.onAccess.dispatch(this)),this},startMediaStream:function(a,b,c){if(void 0===a&&(a=!1),void 0===b&&(b=null),void 0===c&&(c=null),!this.game.device.getUserMedia)return this.onError.dispatch(this,"No getUserMedia"),!1;null!==this.videoStream&&this.videoStream.stop(),this.removeVideoElement(),this.video=document.createElement("video"),this.video.setAttribute("autoplay","autoplay"),null!==b&&(this.video.width=b),null!==c&&(this.video.height=c),this._timeOutID=window.setTimeout(this.getUserMediaTimeout.bind(this),this.timeout);try{navigator.getUserMedia({audio:a,video:!0},this.getUserMediaSuccess.bind(this),this.getUserMediaError.bind(this))}catch(d){this.getUserMediaError(d)}return this},getUserMediaTimeout:function(){clearTimeout(this._timeOutID),this.onTimeout.dispatch(this)},getUserMediaError:function(a){clearTimeout(this._timeOutID),this.onError.dispatch(this,a)},getUserMediaSuccess:function(a){clearTimeout(this._timeOutID),this.videoStream=a,void 0!==this.video.mozSrcObject?this.video.mozSrcObject=a:this.video.src=window.URL&&window.URL.createObjectURL(a)||a;var b=this;this.video.onloadeddata=function(){function a(){if(c>0)if(b.video.videoWidth>0){var d=b.video.videoWidth,e=b.video.videoHeight;isNaN(b.video.videoHeight)&&(e=d/(4/3)),b.video.play(),b.isStreaming=!0,b.baseTexture.source=b.video,b.updateTexture(null,d,e),b.onAccess.dispatch(b)}else window.setTimeout(a,500);else console.warn("Unable to connect to video stream. Webcam error?");c--}var c=10;a()}},createVideoFromBlob:function(a){var b=this;return this.video=document.createElement("video"),this.video.controls=!1,this.video.setAttribute("autoplay","autoplay"),this.video.addEventListener("loadeddata",function(a){b.updateTexture(a)},!0),this.video.src=window.URL.createObjectURL(a),this.video.canplay=!0,this},createVideoFromURL:function(a,b){return void 0===b&&(b=!1),this.texture&&(this.texture.valid=!1),this.video=document.createElement("video"),this.video.controls=!1,b&&this.video.setAttribute("autoplay","autoplay"),this.video.src=a,this.video.canplay=!0,this.video.load(),this.retry=this.retryLimit,this._retryID=window.setTimeout(this.checkVideoProgress.bind(this),this.retryInterval),this.key=a,this},updateTexture:function(a,b,c){var d=!1;(void 0===b||null===b)&&(b=this.video.videoWidth,d=!0),(void 0===c||null===c)&&(c=this.video.videoHeight),this.width=b,this.height=c,this.baseTexture.source!==this.video&&(this.baseTexture.source=this.video),this.baseTexture.forceLoaded(b,c),this.texture.frame.resize(b,c),this.texture.width=b,this.texture.height=c,this.texture.valid=!0,this.snapshot&&this.snapshot.resize(b,c),d&&null!==this.key&&(this.onChangeSource.dispatch(this,b,c),this._autoplay&&(this.video.play(),this.onPlay.dispatch(this,this.loop,this.playbackRate)))},complete:function(){this.onComplete.dispatch(this)},play:function(a,b){return void 0===a&&(a=!1),void 0===b&&(b=1),this.game.sound.onMute&&(this.game.sound.onMute.add(this.setMute,this),this.game.sound.onUnMute.add(this.unsetMute,this),this.game.sound.mute&&this.setMute()),this.game.onPause.add(this.setPause,this),this.game.onResume.add(this.setResume,this),this.video.addEventListener("ended",this.complete.bind(this),!0),this.video.loop=a?"loop":"",this.video.playbackRate=b,this.touchLocked?this._pending=!0:(this._pending=!1,null!==this.key&&(4!==this.video.readyState?(this.retry=this.retryLimit,this._retryID=window.setTimeout(this.checkVideoProgress.bind(this),this.retryInterval)):this.video.addEventListener("playing",this.playHandler.bind(this),!0)),this.video.play(),this.onPlay.dispatch(this,a,b)),this},playHandler:function(){this.video.removeEventListener("playing",this.playHandler.bind(this)),this.updateTexture()},stop:function(){return this.game.sound.onMute&&(this.game.sound.onMute.remove(this.setMute,this),this.game.sound.onUnMute.remove(this.unsetMute,this)),this.game.onPause.remove(this.setPause,this),this.game.onResume.remove(this.setResume,this),this.isStreaming?(this.video.mozSrcObject?(this.video.mozSrcObject.stop(),this.video.src=null):(this.video.src="",this.videoStream.stop()),this.videoStream=null,this.isStreaming=!1):(this.video.removeEventListener("ended",this.complete.bind(this)),this.touchLocked?this._pending=!1:this.video.pause()),this},add:function(a){if(Array.isArray(a))for(var b=0;b0?this._retryID=window.setTimeout(this.checkVideoProgress.bind(this),this.retryInterval):console.warn("Phaser.Video: Unable to start downloading video in time",this.isStreaming))},setTouchLock:function(){this.game.input.touch.addTouchLockCallback(this.unlock,this),this.touchLocked=!0},unlock:function(){if(this.touchLocked=!1,this.video.play(),this.onPlay.dispatch(this,this.loop,this.playbackRate),this.key){var a=this.game.cache.getVideo(this.key);a&&!a.isBlob&&(a.locked=!1)}return!0},grab:function(a,b,c){return void 0===a&&(a=!1),void 0===b&&(b=1),void 0===c&&(c=null),null===this.snapshot?void console.warn("Video.grab cannot run because Phaser.BitmapData is unavailable"):(a&&this.snapshot.cls(),this.snapshot.copy(this.video,0,0,this.width,this.height,0,0,this.width,this.height,0,0,0,1,1,b,c),this.snapshot)},removeVideoElement:function(){if(this.video){for(this.video.parentNode&&this.video.parentNode.removeChild(this.video);this.video.hasChildNodes();)this.video.removeChild(this.video.firstChild);this.video.removeAttribute("autoplay"),this.video.removeAttribute("src"),this.video=null}},destroy:function(){this.stop(),this.removeVideoElement(),this.touchLocked&&this.game.input.touch.removeTouchLockCallback(this.unlock,this),this._retryID&&window.clearTimeout(this._retryID)}},Object.defineProperty(c.Video.prototype,"currentTime",{get:function(){return this.video?this.video.currentTime:0},set:function(a){this.video.currentTime=a}}),Object.defineProperty(c.Video.prototype,"duration",{get:function(){return this.video?this.video.duration:0}}),Object.defineProperty(c.Video.prototype,"progress",{get:function(){return this.video?this.video.currentTime/this.video.duration:0}}),Object.defineProperty(c.Video.prototype,"mute",{get:function(){return this._muted},set:function(a){if(a=a||null){if(this._muted)return;this._codeMuted=!0,this.setMute()}else{if(!this._muted)return;this._codeMuted=!1,this.unsetMute()}}}),Object.defineProperty(c.Video.prototype,"paused",{get:function(){return this._paused},set:function(a){if(a=a||null,!this.touchLocked)if(a){if(this._paused)return;this._codePaused=!0,this.setPause()}else{if(!this._paused)return;this._codePaused=!1,this.setResume()}}}),Object.defineProperty(c.Video.prototype,"volume",{get:function(){return this.video?this.video.volume:1},set:function(a){0>a?a=0:a>1&&(a=1),this.video&&(this.video.volume=a)}}),Object.defineProperty(c.Video.prototype,"playbackRate",{get:function(){return this.video?this.video.playbackRate:1},set:function(a){this.video&&(this.video.playbackRate=a)}}),Object.defineProperty(c.Video.prototype,"loop",{get:function(){return this.video?this.video.loop:!1},set:function(a){a&&this.video?this.video.loop="loop":this.video&&(this.video.loop="")}}),Object.defineProperty(c.Video.prototype,"playing",{get:function(){return!(this.video.paused&&this.video.ended)}}),c.Video.prototype.constructor=c.Video,void 0===PIXI.blendModes&&(PIXI.blendModes=c.blendModes),void 0===PIXI.scaleModes&&(PIXI.scaleModes=c.scaleModes),void 0===PIXI.Texture.emptyTexture&&(PIXI.Texture.emptyTexture=new PIXI.Texture(new PIXI.BaseTexture)),void 0===PIXI.DisplayObject._tempMatrix&&(PIXI.DisplayObject._tempMatrix=new PIXI.Matrix),void 0===PIXI.RenderTexture.tempMatrix&&(PIXI.RenderTexture.tempMatrix=new PIXI.Matrix),void 0===PIXI.Graphics.POLY&&(PIXI.Graphics.POLY=c.POLYGON,PIXI.Graphics.RECT=c.RECTANGLE,PIXI.Graphics.CIRC=c.CIRCLE,PIXI.Graphics.ELIP=c.ELLIPSE,PIXI.Graphics.RREC=c.ROUNDEDRECTANGLE),PIXI.TextureSilentFail=!0,"undefined"!=typeof exports?("undefined"!=typeof module&&module.exports&&(exports=module.exports=c),exports.Phaser=c):"undefined"!=typeof define&&define.amd?define("Phaser",function(){return b.Phaser=c}()):b.Phaser=c,c}.call(this); //# sourceMappingURL=phaser.map \ No newline at end of file From 9401755ab94dacb06af68cfea964c7a6d3a20e67 Mon Sep 17 00:00:00 2001 From: photonstorm Date: Fri, 24 Jul 2015 13:30:46 +0100 Subject: [PATCH 17/17] Phaser 2.4.1 docs. --- docs/PIXI.AbstractFilter.html | 2 +- docs/PIXI.BaseTexture.html | 12 +- docs/PIXI.CanvasBuffer.html | 2 +- docs/PIXI.CanvasGraphics.html | 2 +- docs/PIXI.CanvasMaskManager.html | 2 +- docs/PIXI.CanvasRenderer.html | 2 +- docs/PIXI.CanvasTinter.html | 2 +- docs/PIXI.ComplexPrimitiveShader.html | 2 +- docs/PIXI.DisplayObject.html | 2 +- docs/PIXI.DisplayObjectContainer.html | 2 +- docs/PIXI.Event.html | 2 +- docs/PIXI.EventTarget.html | 2 +- docs/PIXI.FilterTexture.html | 2 +- docs/PIXI.Graphics.html | 2 +- docs/PIXI.GraphicsData.html | 2 +- docs/PIXI.PIXI.html | 2 +- docs/PIXI.PixiFastShader.html | 2 +- docs/PIXI.PixiShader.html | 2 +- docs/PIXI.PolyK.html | 2 +- docs/PIXI.PrimitiveShader.html | 2 +- docs/PIXI.RenderTexture.html | 2 +- docs/PIXI.Rope.html | 2 +- docs/PIXI.Sprite.html | 2 +- docs/PIXI.SpriteBatch.html | 2 +- docs/PIXI.Stage.html | 2 +- docs/PIXI.Strip.html | 2 +- docs/PIXI.StripShader.html | 2 +- docs/PIXI.Texture.html | 2 +- docs/PIXI.TilingSprite.html | 114 +- docs/PIXI.WebGLBlendModeManager.html | 2 +- docs/PIXI.WebGLFastSpriteBatch.html | 2 +- docs/PIXI.WebGLFilterManager.html | 2 +- docs/PIXI.WebGLRenderer.html | 2 +- docs/PIXI.html | 2 +- docs/Phaser.Animation.html | 2 +- docs/Phaser.AnimationManager.html | 2 +- docs/Phaser.AnimationParser.html | 2 +- docs/Phaser.ArraySet.html | 2 +- docs/Phaser.ArrayUtils.html | 2 +- docs/Phaser.AudioSprite.html | 2 +- docs/Phaser.BitmapData.html | 2 +- docs/Phaser.BitmapText.html | 132 +- docs/Phaser.Button.html | 154 +-- docs/Phaser.Cache.html | 186 +-- docs/Phaser.Camera.html | 2 +- docs/Phaser.Canvas.html | 2 +- docs/Phaser.Circle.html | 2 +- docs/Phaser.Color.html | 2 +- docs/Phaser.Component.Angle.html | 2 +- docs/Phaser.Component.Animation.html | 2 +- docs/Phaser.Component.AutoCull.html | 2 +- docs/Phaser.Component.Bounds.html | 2 +- docs/Phaser.Component.BringToTop.html | 2 +- docs/Phaser.Component.Core.html | 2 +- docs/Phaser.Component.Crop.html | 2 +- docs/Phaser.Component.Delta.html | 2 +- docs/Phaser.Component.Destroy.html | 2 +- docs/Phaser.Component.FixedToCamera.html | 2 +- docs/Phaser.Component.Health.html | 2 +- docs/Phaser.Component.InCamera.html | 2 +- docs/Phaser.Component.InWorld.html | 2 +- docs/Phaser.Component.InputEnabled.html | 2 +- docs/Phaser.Component.LifeSpan.html | 2 +- docs/Phaser.Component.LoadTexture.html | 2 +- docs/Phaser.Component.Overlap.html | 2 +- docs/Phaser.Component.PhysicsBody.html | 2 +- docs/Phaser.Component.Reset.html | 2 +- docs/Phaser.Component.ScaleMinMax.html | 2 +- docs/Phaser.Component.Smoothed.html | 2 +- docs/Phaser.Create.html | 2 +- docs/Phaser.Creature.html | 1157 ++++++++++++++++- docs/Phaser.DOM.html | 2 +- docs/Phaser.Device.html | 10 +- docs/Phaser.DeviceButton.html | 2 +- docs/Phaser.Easing.Back.html | 2 +- docs/Phaser.Easing.Bounce.html | 2 +- docs/Phaser.Easing.Circular.html | 2 +- docs/Phaser.Easing.Cubic.html | 2 +- docs/Phaser.Easing.Elastic.html | 2 +- docs/Phaser.Easing.Exponential.html | 2 +- docs/Phaser.Easing.Linear.html | 2 +- docs/Phaser.Easing.Quadratic.html | 2 +- docs/Phaser.Easing.Quartic.html | 2 +- docs/Phaser.Easing.Quintic.html | 2 +- docs/Phaser.Easing.Sinusoidal.html | 2 +- docs/Phaser.Easing.html | 2 +- docs/Phaser.Ellipse.html | 2 +- docs/Phaser.Events.html | 2 +- docs/Phaser.Filter.html | 2 +- docs/Phaser.FlexGrid.html | 2 +- docs/Phaser.FlexLayer.html | 2 +- docs/Phaser.Frame.html | 2 +- docs/Phaser.FrameData.html | 2 +- docs/Phaser.Game.html | 2 +- docs/Phaser.GameObjectCreator.html | 2 +- docs/Phaser.GameObjectFactory.html | 325 ++++- docs/Phaser.Gamepad.html | 2 +- docs/Phaser.Graphics.html | 132 +- docs/Phaser.Group.html | 2 +- docs/Phaser.Image.html | 2 +- docs/Phaser.ImageCollection.html | 2 +- docs/Phaser.Input.html | 2 +- docs/Phaser.InputHandler.html | 2 +- docs/Phaser.Key.html | 2 +- docs/Phaser.Keyboard.html | 2 +- docs/Phaser.Line.html | 2 +- docs/Phaser.LinkedList.html | 2 +- docs/Phaser.Loader.html | 2 +- docs/Phaser.LoaderParser.html | 2 +- docs/Phaser.MSPointer.html | 2 +- docs/Phaser.Math.html | 2 +- docs/Phaser.Matrix.html | 2 +- docs/Phaser.Mouse.html | 2 +- docs/Phaser.Net.html | 2 +- docs/Phaser.Particle.html | 378 +++--- docs/Phaser.Particles.Arcade.Emitter.html | 2 +- docs/Phaser.Particles.Arcade.html | 2 +- docs/Phaser.Particles.html | 2 +- docs/Phaser.Physics.Arcade.Body.html | 2 +- docs/Phaser.Physics.Arcade.html | 2 +- ...haser.Physics.Arcade.html#TilemapCollision | 2 +- docs/Phaser.Physics.Ninja.AABB.html | 2 +- docs/Phaser.Physics.Ninja.Body.html | 2 +- docs/Phaser.Physics.Ninja.Circle.html | 2 +- docs/Phaser.Physics.Ninja.Tile.html | 2 +- docs/Phaser.Physics.Ninja.html | 2 +- docs/Phaser.Physics.P2.Body.html | 2 +- docs/Phaser.Physics.P2.BodyDebug.html | 2 +- docs/Phaser.Physics.P2.CollisionGroup.html | 2 +- docs/Phaser.Physics.P2.ContactMaterial.html | 2 +- .../Phaser.Physics.P2.DistanceConstraint.html | 2 +- docs/Phaser.Physics.P2.FixtureList.html | 2 +- docs/Phaser.Physics.P2.GearConstraint.html | 2 +- docs/Phaser.Physics.P2.InversePointProxy.html | 2 +- docs/Phaser.Physics.P2.LockConstraint.html | 2 +- docs/Phaser.Physics.P2.Material.html | 2 +- docs/Phaser.Physics.P2.PointProxy.html | 2 +- ...Phaser.Physics.P2.PrismaticConstraint.html | 2 +- .../Phaser.Physics.P2.RevoluteConstraint.html | 2 +- docs/Phaser.Physics.P2.RotationalSpring.html | 2 +- docs/Phaser.Physics.P2.Spring.html | 2 +- docs/Phaser.Physics.P2.html | 2 +- docs/Phaser.Physics.html | 156 +-- docs/Phaser.Plugin.html | 2 +- docs/Phaser.PluginManager.html | 2 +- docs/Phaser.Point.html | 2 +- docs/Phaser.Pointer.html | 30 +- docs/Phaser.Polygon.html | 2 +- docs/Phaser.QuadTree.html | 2 +- docs/Phaser.RandomDataGenerator.html | 2 +- docs/Phaser.Rectangle.html | 2 +- docs/Phaser.RenderTexture.html | 2 +- docs/Phaser.RequestAnimationFrame.html | 2 +- docs/Phaser.RetroFont.html | 2 +- docs/Phaser.Rope.html | 246 ++-- docs/Phaser.RoundedRectangle.html | 2 +- docs/Phaser.ScaleManager.html | 2 +- docs/Phaser.Signal.html | 2 +- docs/Phaser.SignalBinding.html | 2 +- docs/Phaser.SinglePad.html | 2 +- docs/Phaser.Sound.html | 114 +- docs/Phaser.SoundManager.html | 2 +- docs/Phaser.Sprite.html | 124 +- docs/Phaser.SpriteBatch.html | 2 +- docs/Phaser.Stage.html | 2 +- docs/Phaser.State.html | 2 +- docs/Phaser.StateManager.html | 2 +- docs/Phaser.Text.html | 254 ++-- docs/Phaser.Tile.html | 2 +- docs/Phaser.TileSprite.html | 246 ++-- docs/Phaser.Tilemap.html | 2 +- docs/Phaser.TilemapLayer.html | 522 ++++---- docs/Phaser.TilemapParser.html | 2 +- docs/Phaser.Tileset.html | 2 +- docs/Phaser.Time.html | 2 +- docs/Phaser.Timer.html | 2 +- docs/Phaser.TimerEvent.html | 2 +- docs/Phaser.Touch.html | 2 +- docs/Phaser.Tween.html | 2 +- docs/Phaser.TweenData.html | 2 +- docs/Phaser.TweenManager.html | 2 +- docs/Phaser.Utils.Debug.html | 430 +++--- docs/Phaser.Utils.html | 2 +- docs/Phaser.Video.html | 400 +++++- docs/Phaser.World.html | 2 +- docs/Phaser.html | 2 +- docs/classes.list.html | 2 +- docs/docs_pixi-jsdoc.js.html | 12 +- docs/global.html | 2 +- docs/index.html | 50 +- docs/namespaces.list.html | 2 +- docs/pixi-jsdoc.js | 10 +- docs/src_Phaser.js.html | 4 +- docs/src_animation_Animation.js.html | 2 +- docs/src_animation_AnimationManager.js.html | 2 +- docs/src_animation_AnimationParser.js.html | 2 +- docs/src_animation_Frame.js.html | 2 +- docs/src_animation_FrameData.js.html | 2 +- docs/src_core_Camera.js.html | 2 +- docs/src_core_Create.js.html | 2 +- docs/src_core_Filter.js.html | 2 +- docs/src_core_FlexGrid.js.html | 2 +- docs/src_core_FlexLayer.js.html | 2 +- docs/src_core_Game.js.html | 2 +- docs/src_core_Group.js.html | 2 +- docs/src_core_Plugin.js.html | 2 +- docs/src_core_PluginManager.js.html | 2 +- docs/src_core_ScaleManager.js.html | 2 +- docs/src_core_Signal.js.html | 2 +- docs/src_core_SignalBinding.js.html | 2 +- docs/src_core_Stage.js.html | 2 +- docs/src_core_State.js.html | 2 +- docs/src_core_StateManager.js.html | 2 +- docs/src_core_World.js.html | 2 +- docs/src_gameobjects_BitmapData.js.html | 2 +- docs/src_gameobjects_BitmapText.js.html | 2 +- docs/src_gameobjects_Button.js.html | 2 +- docs/src_gameobjects_Creature.js.html | 405 +++++- .../src_gameobjects_GameObjectCreator.js.html | 2 +- .../src_gameobjects_GameObjectFactory.js.html | 35 +- docs/src_gameobjects_Graphics.js.html | 2 +- docs/src_gameobjects_Image.js.html | 2 +- docs/src_gameobjects_Particle.js.html | 2 +- docs/src_gameobjects_RenderTexture.js.html | 2 +- docs/src_gameobjects_RetroFont.js.html | 2 +- docs/src_gameobjects_Rope.js.html | 2 +- docs/src_gameobjects_Sprite.js.html | 2 +- docs/src_gameobjects_SpriteBatch.js.html | 2 +- docs/src_gameobjects_Text.js.html | 2 +- docs/src_gameobjects_TileSprite.js.html | 2 +- docs/src_gameobjects_Video.js.html | 30 +- docs/src_gameobjects_components_Angle.js.html | 2 +- ...c_gameobjects_components_Animation.js.html | 2 +- ...rc_gameobjects_components_AutoCull.js.html | 2 +- .../src_gameobjects_components_Bounds.js.html | 2 +- ..._gameobjects_components_BringToTop.js.html | 2 +- ...c_gameobjects_components_Component.js.html | 2 +- docs/src_gameobjects_components_Core.js.html | 2 +- docs/src_gameobjects_components_Crop.js.html | 2 +- docs/src_gameobjects_components_Delta.js.html | 2 +- ...src_gameobjects_components_Destroy.js.html | 2 +- .../src_gameobjects_components_Events.js.html | 2 +- ...meobjects_components_FixedToCamera.js.html | 2 +- .../src_gameobjects_components_Health.js.html | 2 +- ...rc_gameobjects_components_InCamera.js.html | 2 +- ...src_gameobjects_components_InWorld.js.html | 2 +- ...ameobjects_components_InputEnabled.js.html | 2 +- ...rc_gameobjects_components_LifeSpan.js.html | 2 +- ...gameobjects_components_LoadTexture.js.html | 2 +- ...src_gameobjects_components_Overlap.js.html | 2 +- ...gameobjects_components_PhysicsBody.js.html | 2 +- docs/src_gameobjects_components_Reset.js.html | 2 +- ...gameobjects_components_ScaleMinMax.js.html | 2 +- ...rc_gameobjects_components_Smoothed.js.html | 2 +- docs/src_geom_Circle.js.html | 2 +- docs/src_geom_Ellipse.js.html | 2 +- docs/src_geom_Line.js.html | 2 +- docs/src_geom_Matrix.js.html | 2 +- docs/src_geom_Point.js.html | 2 +- docs/src_geom_Polygon.js.html | 2 +- docs/src_geom_Rectangle.js.html | 2 +- docs/src_geom_RoundedRectangle.js.html | 2 +- docs/src_input_DeviceButton.js.html | 2 +- docs/src_input_Gamepad.js.html | 2 +- docs/src_input_Input.js.html | 2 +- docs/src_input_InputHandler.js.html | 2 +- docs/src_input_Key.js.html | 2 +- docs/src_input_Keyboard.js.html | 2 +- docs/src_input_MSPointer.js.html | 2 +- docs/src_input_Mouse.js.html | 2 +- docs/src_input_Pointer.js.html | 118 +- docs/src_input_SinglePad.js.html | 2 +- docs/src_input_Touch.js.html | 2 +- docs/src_loader_Cache.js.html | 63 +- docs/src_loader_Loader.js.html | 2 +- docs/src_loader_LoaderParser.js.html | 2 +- docs/src_math_Math.js.html | 2 +- docs/src_math_QuadTree.js.html | 2 +- docs/src_math_RandomDataGenerator.js.html | 2 +- docs/src_net_Net.js.html | 2 +- docs/src_particles_Particles.js.html | 2 +- ...c_particles_arcade_ArcadeParticles.js.html | 2 +- docs/src_particles_arcade_Emitter.js.html | 2 +- docs/src_physics_Physics.js.html | 2 +- docs/src_physics_arcade_Body.js.html | 2 +- ...rc_physics_arcade_TilemapCollision.js.html | 2 +- docs/src_physics_arcade_World.js.html | 2 +- docs/src_physics_ninja_AABB.js.html | 2 +- docs/src_physics_ninja_Body.js.html | 2 +- docs/src_physics_ninja_Circle.js.html | 2 +- docs/src_physics_ninja_Tile.js.html | 2 +- docs/src_physics_ninja_World.js.html | 2 +- docs/src_physics_p2_Body.js.html | 2 +- docs/src_physics_p2_BodyDebug.js.html | 2 +- docs/src_physics_p2_CollisionGroup.js.html | 2 +- docs/src_physics_p2_ContactMaterial.js.html | 2 +- .../src_physics_p2_DistanceConstraint.js.html | 2 +- docs/src_physics_p2_FixtureList.js.html | 2 +- docs/src_physics_p2_GearConstraint.js.html | 2 +- docs/src_physics_p2_InversePointProxy.js.html | 2 +- docs/src_physics_p2_LockConstraint.js.html | 2 +- docs/src_physics_p2_Material.js.html | 2 +- docs/src_physics_p2_PointProxy.js.html | 2 +- ...src_physics_p2_PrismaticConstraint.js.html | 2 +- .../src_physics_p2_RevoluteConstraint.js.html | 2 +- docs/src_physics_p2_RotationalSpring.js.html | 2 +- docs/src_physics_p2_Spring.js.html | 2 +- docs/src_physics_p2_World.js.html | 2 +- docs/src_pixi_Pixi.js.html | 2 +- docs/src_pixi_display_DisplayObject.js.html | 2 +- ...ixi_display_DisplayObjectContainer.js.html | 2 +- docs/src_pixi_display_Sprite.js.html | 2 +- docs/src_pixi_display_SpriteBatch.js.html | 2 +- docs/src_pixi_display_Stage.js.html | 2 +- docs/src_pixi_extras_Rope.js.html | 2 +- docs/src_pixi_extras_Strip.js.html | 2 +- docs/src_pixi_extras_TilingSprite.js.html | 2 +- docs/src_pixi_filters_AbstractFilter.js.html | 2 +- docs/src_pixi_primitives_Graphics.js.html | 2 +- docs/src_pixi_primitives_GraphicsData.js.html | 2 +- ...xi_renderers_canvas_CanvasGraphics.js.html | 2 +- ...xi_renderers_canvas_CanvasRenderer.js.html | 2 +- ...enderers_canvas_utils_CanvasBuffer.js.html | 2 +- ...ers_canvas_utils_CanvasMaskManager.js.html | 2 +- ...enderers_canvas_utils_CanvasTinter.js.html | 2 +- ...pixi_renderers_webgl_WebGLRenderer.js.html | 2 +- ...bgl_shaders_ComplexPrimitiveShader.js.html | 2 +- ...erers_webgl_shaders_PixiFastShader.js.html | 2 +- ...renderers_webgl_shaders_PixiShader.js.html | 2 +- ...rers_webgl_shaders_PrimitiveShader.js.html | 2 +- ...enderers_webgl_shaders_StripShader.js.html | 2 +- ...enderers_webgl_utils_FilterTexture.js.html | 2 +- ..._webgl_utils_WebGLBlendModeManager.js.html | 2 +- ...s_webgl_utils_WebGLFastSpriteBatch.js.html | 2 +- ...ers_webgl_utils_WebGLFilterManager.js.html | 2 +- ...enderers_webgl_utils_WebGLGraphics.js.html | 2 +- ...erers_webgl_utils_WebGLMaskManager.js.html | 2 +- ...ers_webgl_utils_WebGLShaderManager.js.html | 2 +- ...erers_webgl_utils_WebGLShaderUtils.js.html | 2 +- ...erers_webgl_utils_WebGLSpriteBatch.js.html | 2 +- ...rs_webgl_utils_WebGLStencilManager.js.html | 2 +- docs/src_pixi_textures_BaseTexture.js.html | 5 +- docs/src_pixi_textures_RenderTexture.js.html | 2 +- docs/src_pixi_textures_Texture.js.html | 2 +- docs/src_pixi_utils_EventTarget.js.html | 2 +- docs/src_pixi_utils_Polyk.js.html | 2 +- docs/src_pixi_utils_Utils.js.html | 2 +- docs/src_sound_AudioSprite.js.html | 2 +- docs/src_sound_Sound.js.html | 2 +- docs/src_sound_SoundManager.js.html | 2 +- docs/src_system_Canvas.js.html | 2 +- docs/src_system_DOM.js.html | 2 +- docs/src_system_Device.js.html | 7 +- docs/src_system_RequestAnimationFrame.js.html | 2 +- docs/src_tilemap_ImageCollection.js.html | 2 +- docs/src_tilemap_Tile.js.html | 2 +- docs/src_tilemap_Tilemap.js.html | 2 +- docs/src_tilemap_TilemapLayer.js.html | 2 +- docs/src_tilemap_TilemapParser.js.html | 2 +- docs/src_tilemap_Tileset.js.html | 2 +- docs/src_time_Time.js.html | 2 +- docs/src_time_Timer.js.html | 2 +- docs/src_time_TimerEvent.js.html | 2 +- docs/src_tween_Easing.js.html | 2 +- docs/src_tween_Tween.js.html | 2 +- docs/src_tween_TweenData.js.html | 2 +- docs/src_tween_TweenManager.js.html | 2 +- docs/src_utils_ArraySet.js.html | 2 +- docs/src_utils_ArrayUtils.js.html | 2 +- docs/src_utils_Color.js.html | 2 +- docs/src_utils_Debug.js.html | 2 +- docs/src_utils_LinkedList.js.html | 2 +- docs/src_utils_Utils.js.html | 2 +- typescript/phaser.comments.d.ts | 17 +- 374 files changed, 4395 insertions(+), 2167 deletions(-) diff --git a/docs/PIXI.AbstractFilter.html b/docs/PIXI.AbstractFilter.html index eca4983a9..74320080c 100644 --- a/docs/PIXI.AbstractFilter.html +++ b/docs/PIXI.AbstractFilter.html @@ -1467,7 +1467,7 @@ If you want to make a custom filter this should be your base class.

Documentation generated by JSDoc 3.3.0-alpha10 - on Wed Jul 22 2015 14:55:22 GMT+0100 (GMT Daylight Time) using the DocStrap template. + on Fri Jul 24 2015 13:29:56 GMT+0100 (GMT Daylight Time) using the DocStrap template. diff --git a/docs/PIXI.BaseTexture.html b/docs/PIXI.BaseTexture.html index b3488cdbd..459b46783 100644 --- a/docs/PIXI.BaseTexture.html +++ b/docs/PIXI.BaseTexture.html @@ -1905,7 +1905,7 @@ Also the texture must be a power of two size to work

Source - - pixi/textures/BaseTexture.js, line 276 + pixi/textures/BaseTexture.js, line 279
@@ -2084,7 +2084,7 @@ If the image is not in the base texture cache it will be created and loaded.

Source - - pixi/textures/BaseTexture.js, line 233 + pixi/textures/BaseTexture.js, line 236
@@ -2224,7 +2224,7 @@ If the image is not in the base texture cache it will be created and loaded.

Source - - pixi/textures/BaseTexture.js, line 192 + pixi/textures/BaseTexture.js, line 195
@@ -2443,7 +2443,7 @@ Atexture is still 100% usable and will simply be reuploaded if there is a sprite
Source - - pixi/textures/BaseTexture.js, line 205 + pixi/textures/BaseTexture.js, line 208
@@ -2562,7 +2562,7 @@ Atexture is still 100% usable and will simply be reuploaded if there is a sprite
Source - - pixi/textures/BaseTexture.js, line 179 + pixi/textures/BaseTexture.js, line 182
@@ -2611,7 +2611,7 @@ Atexture is still 100% usable and will simply be reuploaded if there is a sprite Documentation generated by JSDoc 3.3.0-alpha10 - on Wed Jul 22 2015 14:55:22 GMT+0100 (GMT Daylight Time) using the DocStrap template. + on Fri Jul 24 2015 13:29:56 GMT+0100 (GMT Daylight Time) using the DocStrap template. diff --git a/docs/PIXI.CanvasBuffer.html b/docs/PIXI.CanvasBuffer.html index b921bcede..ec77723d8 100644 --- a/docs/PIXI.CanvasBuffer.html +++ b/docs/PIXI.CanvasBuffer.html @@ -1658,7 +1658,7 @@ Documentation generated by JSDoc 3.3.0-alpha10 - on Wed Jul 22 2015 14:55:22 GMT+0100 (GMT Daylight Time) using the DocStrap template. + on Fri Jul 24 2015 13:29:56 GMT+0100 (GMT Daylight Time) using the DocStrap template. diff --git a/docs/PIXI.CanvasGraphics.html b/docs/PIXI.CanvasGraphics.html index a11b87408..27765433a 100644 --- a/docs/PIXI.CanvasGraphics.html +++ b/docs/PIXI.CanvasGraphics.html @@ -1212,7 +1212,7 @@ Documentation generated by JSDoc 3.3.0-alpha10 - on Wed Jul 22 2015 14:55:22 GMT+0100 (GMT Daylight Time) using the DocStrap template. + on Fri Jul 24 2015 13:29:56 GMT+0100 (GMT Daylight Time) using the DocStrap template. diff --git a/docs/PIXI.CanvasMaskManager.html b/docs/PIXI.CanvasMaskManager.html index da2c7d399..e02a688c4 100644 --- a/docs/PIXI.CanvasMaskManager.html +++ b/docs/PIXI.CanvasMaskManager.html @@ -1477,7 +1477,7 @@ Documentation generated by JSDoc 3.3.0-alpha10 - on Wed Jul 22 2015 14:55:22 GMT+0100 (GMT Daylight Time) using the DocStrap template. + on Fri Jul 24 2015 13:29:56 GMT+0100 (GMT Daylight Time) using the DocStrap template. diff --git a/docs/PIXI.CanvasRenderer.html b/docs/PIXI.CanvasRenderer.html index 18c4610b7..cc9a733e1 100644 --- a/docs/PIXI.CanvasRenderer.html +++ b/docs/PIXI.CanvasRenderer.html @@ -2503,7 +2503,7 @@ Disable this by setting this to false. For example if your game has a canvas fil Documentation generated by JSDoc 3.3.0-alpha10 - on Wed Jul 22 2015 14:55:22 GMT+0100 (GMT Daylight Time) using the DocStrap template. + on Fri Jul 24 2015 13:29:56 GMT+0100 (GMT Daylight Time) using the DocStrap template. diff --git a/docs/PIXI.CanvasTinter.html b/docs/PIXI.CanvasTinter.html index 41669c4e5..50cf5230b 100644 --- a/docs/PIXI.CanvasTinter.html +++ b/docs/PIXI.CanvasTinter.html @@ -1965,7 +1965,7 @@ This property is only applicable if using tintWithPerPixel.

Documentation generated by JSDoc 3.3.0-alpha10 - on Wed Jul 22 2015 14:55:22 GMT+0100 (GMT Daylight Time) using the DocStrap template. + on Fri Jul 24 2015 13:29:56 GMT+0100 (GMT Daylight Time) using the DocStrap template. diff --git a/docs/PIXI.ComplexPrimitiveShader.html b/docs/PIXI.ComplexPrimitiveShader.html index 1b89ce067..58d8bf094 100644 --- a/docs/PIXI.ComplexPrimitiveShader.html +++ b/docs/PIXI.ComplexPrimitiveShader.html @@ -1625,7 +1625,7 @@ Documentation generated by JSDoc 3.3.0-alpha10 - on Wed Jul 22 2015 14:55:22 GMT+0100 (GMT Daylight Time) using the DocStrap template. + on Fri Jul 24 2015 13:29:56 GMT+0100 (GMT Daylight Time) using the DocStrap template. diff --git a/docs/PIXI.DisplayObject.html b/docs/PIXI.DisplayObject.html index 70f3173ab..ee5ed8167 100644 --- a/docs/PIXI.DisplayObject.html +++ b/docs/PIXI.DisplayObject.html @@ -3621,7 +3621,7 @@ This can be quite useful if your displayObject is static / complicated and needs Documentation generated by JSDoc 3.3.0-alpha10 - on Wed Jul 22 2015 14:55:22 GMT+0100 (GMT Daylight Time) using the DocStrap template. + on Fri Jul 24 2015 13:29:56 GMT+0100 (GMT Daylight Time) using the DocStrap template. diff --git a/docs/PIXI.DisplayObjectContainer.html b/docs/PIXI.DisplayObjectContainer.html index 21e5dc095..8f55f6143 100644 --- a/docs/PIXI.DisplayObjectContainer.html +++ b/docs/PIXI.DisplayObjectContainer.html @@ -5254,7 +5254,7 @@ This can be quite useful if your displayObject is static / complicated and needs Documentation generated by JSDoc 3.3.0-alpha10 - on Wed Jul 22 2015 14:55:22 GMT+0100 (GMT Daylight Time) using the DocStrap template. + on Fri Jul 24 2015 13:29:56 GMT+0100 (GMT Daylight Time) using the DocStrap template. diff --git a/docs/PIXI.Event.html b/docs/PIXI.Event.html index e72bf2b7f..b42204945 100644 --- a/docs/PIXI.Event.html +++ b/docs/PIXI.Event.html @@ -1685,7 +1685,7 @@ Documentation generated by JSDoc 3.3.0-alpha10 - on Wed Jul 22 2015 14:55:22 GMT+0100 (GMT Daylight Time) using the DocStrap template. + on Fri Jul 24 2015 13:29:56 GMT+0100 (GMT Daylight Time) using the DocStrap template. diff --git a/docs/PIXI.EventTarget.html b/docs/PIXI.EventTarget.html index 223becd96..98b5948d8 100644 --- a/docs/PIXI.EventTarget.html +++ b/docs/PIXI.EventTarget.html @@ -2158,7 +2158,7 @@ Documentation generated by JSDoc 3.3.0-alpha10 - on Wed Jul 22 2015 14:55:22 GMT+0100 (GMT Daylight Time) using the DocStrap template. + on Fri Jul 24 2015 13:29:56 GMT+0100 (GMT Daylight Time) using the DocStrap template. diff --git a/docs/PIXI.FilterTexture.html b/docs/PIXI.FilterTexture.html index afe330538..d792d79d0 100644 --- a/docs/PIXI.FilterTexture.html +++ b/docs/PIXI.FilterTexture.html @@ -1824,7 +1824,7 @@ Documentation generated by JSDoc 3.3.0-alpha10 - on Wed Jul 22 2015 14:55:22 GMT+0100 (GMT Daylight Time) using the DocStrap template. + on Fri Jul 24 2015 13:29:56 GMT+0100 (GMT Daylight Time) using the DocStrap template. diff --git a/docs/PIXI.Graphics.html b/docs/PIXI.Graphics.html index 82a96b6e8..ba9bf5e6c 100644 --- a/docs/PIXI.Graphics.html +++ b/docs/PIXI.Graphics.html @@ -8442,7 +8442,7 @@ Based on: https://stackoverflow.com/questions/785097/how-do-i-implement-a-bezier Documentation generated by JSDoc 3.3.0-alpha10 - on Wed Jul 22 2015 14:55:23 GMT+0100 (GMT Daylight Time) using the DocStrap template. + on Fri Jul 24 2015 13:29:57 GMT+0100 (GMT Daylight Time) using the DocStrap template. diff --git a/docs/PIXI.GraphicsData.html b/docs/PIXI.GraphicsData.html index f8f603470..8d178f713 100644 --- a/docs/PIXI.GraphicsData.html +++ b/docs/PIXI.GraphicsData.html @@ -1212,7 +1212,7 @@ Documentation generated by JSDoc 3.3.0-alpha10 - on Wed Jul 22 2015 14:55:23 GMT+0100 (GMT Daylight Time) using the DocStrap template. + on Fri Jul 24 2015 13:29:57 GMT+0100 (GMT Daylight Time) using the DocStrap template. diff --git a/docs/PIXI.PIXI.html b/docs/PIXI.PIXI.html index 81ee5f4e4..c42e9162c 100644 --- a/docs/PIXI.PIXI.html +++ b/docs/PIXI.PIXI.html @@ -2297,7 +2297,7 @@ this function is taken from Starling Framework as its pretty neat ;)

Documentation generated by JSDoc 3.3.0-alpha10 - on Wed Jul 22 2015 14:55:23 GMT+0100 (GMT Daylight Time) using the DocStrap template. + on Fri Jul 24 2015 13:29:57 GMT+0100 (GMT Daylight Time) using the DocStrap template. diff --git a/docs/PIXI.PixiFastShader.html b/docs/PIXI.PixiFastShader.html index e46178ad2..5a13a6edc 100644 --- a/docs/PIXI.PixiFastShader.html +++ b/docs/PIXI.PixiFastShader.html @@ -1681,7 +1681,7 @@ Documentation generated by JSDoc 3.3.0-alpha10 - on Wed Jul 22 2015 14:55:23 GMT+0100 (GMT Daylight Time) using the DocStrap template. + on Fri Jul 24 2015 13:29:57 GMT+0100 (GMT Daylight Time) using the DocStrap template. diff --git a/docs/PIXI.PixiShader.html b/docs/PIXI.PixiShader.html index 788e2c722..0f5779797 100644 --- a/docs/PIXI.PixiShader.html +++ b/docs/PIXI.PixiShader.html @@ -1949,7 +1949,7 @@ http://www.khronos.org/registry/gles/specs/2.0/GLSL_ES_Specification_1.0.17.pdf< Documentation generated by JSDoc 3.3.0-alpha10 - on Wed Jul 22 2015 14:55:23 GMT+0100 (GMT Daylight Time) using the DocStrap template. + on Fri Jul 24 2015 13:29:57 GMT+0100 (GMT Daylight Time) using the DocStrap template. diff --git a/docs/PIXI.PolyK.html b/docs/PIXI.PolyK.html index 536bfd4e3..29536b4b9 100644 --- a/docs/PIXI.PolyK.html +++ b/docs/PIXI.PolyK.html @@ -1288,7 +1288,7 @@ Slightly modified by Mat Groves (matgroves.com);

Documentation generated by JSDoc 3.3.0-alpha10 - on Wed Jul 22 2015 14:55:23 GMT+0100 (GMT Daylight Time) using the DocStrap template. + on Fri Jul 24 2015 13:29:57 GMT+0100 (GMT Daylight Time) using the DocStrap template. diff --git a/docs/PIXI.PrimitiveShader.html b/docs/PIXI.PrimitiveShader.html index 27d94b3fc..20b4731e0 100644 --- a/docs/PIXI.PrimitiveShader.html +++ b/docs/PIXI.PrimitiveShader.html @@ -1625,7 +1625,7 @@ Documentation generated by JSDoc 3.3.0-alpha10 - on Wed Jul 22 2015 14:55:23 GMT+0100 (GMT Daylight Time) using the DocStrap template. + on Fri Jul 24 2015 13:29:57 GMT+0100 (GMT Daylight Time) using the DocStrap template. diff --git a/docs/PIXI.RenderTexture.html b/docs/PIXI.RenderTexture.html index 06f4f2a06..8221a9ab6 100644 --- a/docs/PIXI.RenderTexture.html +++ b/docs/PIXI.RenderTexture.html @@ -2899,7 +2899,7 @@ irrespective of the actual frame size or placement (which can be influenced by t Documentation generated by JSDoc 3.3.0-alpha10 - on Wed Jul 22 2015 14:55:23 GMT+0100 (GMT Daylight Time) using the DocStrap template. + on Fri Jul 24 2015 13:29:57 GMT+0100 (GMT Daylight Time) using the DocStrap template. diff --git a/docs/PIXI.Rope.html b/docs/PIXI.Rope.html index 474829071..6ee7229bb 100644 --- a/docs/PIXI.Rope.html +++ b/docs/PIXI.Rope.html @@ -5701,7 +5701,7 @@ This can be quite useful if your displayObject is static / complicated and needs Documentation generated by JSDoc 3.3.0-alpha10 - on Wed Jul 22 2015 14:55:23 GMT+0100 (GMT Daylight Time) using the DocStrap template. + on Fri Jul 24 2015 13:29:57 GMT+0100 (GMT Daylight Time) using the DocStrap template. diff --git a/docs/PIXI.Sprite.html b/docs/PIXI.Sprite.html index 6559802f9..16d4c7f88 100644 --- a/docs/PIXI.Sprite.html +++ b/docs/PIXI.Sprite.html @@ -6170,7 +6170,7 @@ This can be quite useful if your displayObject is static / complicated and needs Documentation generated by JSDoc 3.3.0-alpha10 - on Wed Jul 22 2015 14:55:23 GMT+0100 (GMT Daylight Time) using the DocStrap template. + on Fri Jul 24 2015 13:29:57 GMT+0100 (GMT Daylight Time) using the DocStrap template. diff --git a/docs/PIXI.SpriteBatch.html b/docs/PIXI.SpriteBatch.html index 54e56c21a..3f50e3628 100644 --- a/docs/PIXI.SpriteBatch.html +++ b/docs/PIXI.SpriteBatch.html @@ -1271,7 +1271,7 @@ And here you have a hundred sprites that will be renderer at the speed of light< Documentation generated by JSDoc 3.3.0-alpha10 - on Wed Jul 22 2015 14:55:23 GMT+0100 (GMT Daylight Time) using the DocStrap template. + on Fri Jul 24 2015 13:29:57 GMT+0100 (GMT Daylight Time) using the DocStrap template. diff --git a/docs/PIXI.Stage.html b/docs/PIXI.Stage.html index 7b1073ab8..13b714356 100644 --- a/docs/PIXI.Stage.html +++ b/docs/PIXI.Stage.html @@ -5509,7 +5509,7 @@ This can be quite useful if your displayObject is static / complicated and needs Documentation generated by JSDoc 3.3.0-alpha10 - on Wed Jul 22 2015 14:55:23 GMT+0100 (GMT Daylight Time) using the DocStrap template. + on Fri Jul 24 2015 13:29:57 GMT+0100 (GMT Daylight Time) using the DocStrap template. diff --git a/docs/PIXI.Strip.html b/docs/PIXI.Strip.html index 90163f632..b98b21621 100644 --- a/docs/PIXI.Strip.html +++ b/docs/PIXI.Strip.html @@ -5695,7 +5695,7 @@ This can be quite useful if your displayObject is static / complicated and needs Documentation generated by JSDoc 3.3.0-alpha10 - on Wed Jul 22 2015 14:55:23 GMT+0100 (GMT Daylight Time) using the DocStrap template. + on Fri Jul 24 2015 13:29:57 GMT+0100 (GMT Daylight Time) using the DocStrap template. diff --git a/docs/PIXI.StripShader.html b/docs/PIXI.StripShader.html index f32d4729d..8309610c6 100644 --- a/docs/PIXI.StripShader.html +++ b/docs/PIXI.StripShader.html @@ -1625,7 +1625,7 @@ Documentation generated by JSDoc 3.3.0-alpha10 - on Wed Jul 22 2015 14:55:23 GMT+0100 (GMT Daylight Time) using the DocStrap template. + on Fri Jul 24 2015 13:29:57 GMT+0100 (GMT Daylight Time) using the DocStrap template. diff --git a/docs/PIXI.Texture.html b/docs/PIXI.Texture.html index 8a4fe1610..4ec18e919 100644 --- a/docs/PIXI.Texture.html +++ b/docs/PIXI.Texture.html @@ -2980,7 +2980,7 @@ If the image is not in the texture cache it will be created and loaded.

Documentation generated by JSDoc 3.3.0-alpha10 - on Wed Jul 22 2015 14:55:23 GMT+0100 (GMT Daylight Time) using the DocStrap template. + on Fri Jul 24 2015 13:29:57 GMT+0100 (GMT Daylight Time) using the DocStrap template. diff --git a/docs/PIXI.TilingSprite.html b/docs/PIXI.TilingSprite.html index 595368262..cf090cd0c 100644 --- a/docs/PIXI.TilingSprite.html +++ b/docs/PIXI.TilingSprite.html @@ -3304,62 +3304,6 @@ This ability allows you to check any of the matrix values and perform actions su - - - - - - - - -
-

width :Number

- - -
-
- - - -
-

The width of the sprite, setting this will actually modify the scale to achieve the value set

-
- - - - - -
- - - - - - - - - - - - - - - - - - - -
Source - - pixi/extras/TilingSprite.js, line 514 -
- - - - - - -
@@ -3416,6 +3360,62 @@ This ability allows you to check any of the matrix values and perform actions su + + + + +
+ + + +
+

width :Number

+ + +
+
+ + + +
+

The width of the sprite, setting this will actually modify the scale to achieve the value set

+
+ + + + + +
+ + + + + + + + + + + + + + + + + + + +
Source - + pixi/extras/TilingSprite.js, line 514 +
+ + + + + + +
@@ -6586,7 +6586,7 @@ This can be quite useful if your displayObject is static / complicated and needs Documentation generated by JSDoc 3.3.0-alpha10 - on Wed Jul 22 2015 14:55:23 GMT+0100 (GMT Daylight Time) using the DocStrap template. + on Fri Jul 24 2015 13:29:57 GMT+0100 (GMT Daylight Time) using the DocStrap template. diff --git a/docs/PIXI.WebGLBlendModeManager.html b/docs/PIXI.WebGLBlendModeManager.html index d1a9c5f64..21ba58ffc 100644 --- a/docs/PIXI.WebGLBlendModeManager.html +++ b/docs/PIXI.WebGLBlendModeManager.html @@ -1625,7 +1625,7 @@ Documentation generated by JSDoc 3.3.0-alpha10 - on Wed Jul 22 2015 14:55:23 GMT+0100 (GMT Daylight Time) using the DocStrap template. + on Fri Jul 24 2015 13:29:57 GMT+0100 (GMT Daylight Time) using the DocStrap template. diff --git a/docs/PIXI.WebGLFastSpriteBatch.html b/docs/PIXI.WebGLFastSpriteBatch.html index add7c42bf..0a1fb2c15 100644 --- a/docs/PIXI.WebGLFastSpriteBatch.html +++ b/docs/PIXI.WebGLFastSpriteBatch.html @@ -2755,7 +2755,7 @@ Documentation generated by JSDoc 3.3.0-alpha10 - on Wed Jul 22 2015 14:55:23 GMT+0100 (GMT Daylight Time) using the DocStrap template. + on Fri Jul 24 2015 13:29:58 GMT+0100 (GMT Daylight Time) using the DocStrap template. diff --git a/docs/PIXI.WebGLFilterManager.html b/docs/PIXI.WebGLFilterManager.html index b5e62b2fc..cf09e95e1 100644 --- a/docs/PIXI.WebGLFilterManager.html +++ b/docs/PIXI.WebGLFilterManager.html @@ -2146,7 +2146,7 @@ Documentation generated by JSDoc 3.3.0-alpha10 - on Wed Jul 22 2015 14:55:24 GMT+0100 (GMT Daylight Time) using the DocStrap template. + on Fri Jul 24 2015 13:29:58 GMT+0100 (GMT Daylight Time) using the DocStrap template. diff --git a/docs/PIXI.WebGLRenderer.html b/docs/PIXI.WebGLRenderer.html index bebf91515..f0ffa0a74 100644 --- a/docs/PIXI.WebGLRenderer.html +++ b/docs/PIXI.WebGLRenderer.html @@ -3127,7 +3127,7 @@ Disable this by setting this to false. For example: if your game has a canvas fi Documentation generated by JSDoc 3.3.0-alpha10 - on Wed Jul 22 2015 14:55:24 GMT+0100 (GMT Daylight Time) using the DocStrap template. + on Fri Jul 24 2015 13:29:58 GMT+0100 (GMT Daylight Time) using the DocStrap template. diff --git a/docs/PIXI.html b/docs/PIXI.html index 67cf1f12d..eb45d12b5 100644 --- a/docs/PIXI.html +++ b/docs/PIXI.html @@ -1508,7 +1508,7 @@ Documentation generated by JSDoc 3.3.0-alpha10 - on Wed Jul 22 2015 14:55:22 GMT+0100 (GMT Daylight Time) using the DocStrap template. + on Fri Jul 24 2015 13:29:56 GMT+0100 (GMT Daylight Time) using the DocStrap template. diff --git a/docs/Phaser.Animation.html b/docs/Phaser.Animation.html index c8f79c7b8..e6c310229 100644 --- a/docs/Phaser.Animation.html +++ b/docs/Phaser.Animation.html @@ -4355,7 +4355,7 @@ If dispatchComplete is true it will dispatch the complete events, o Documentation generated by JSDoc 3.3.0-alpha10 - on Wed Jul 22 2015 14:55:12 GMT+0100 (GMT Daylight Time) using the DocStrap template. + on Fri Jul 24 2015 13:29:46 GMT+0100 (GMT Daylight Time) using the DocStrap template. diff --git a/docs/Phaser.AnimationManager.html b/docs/Phaser.AnimationManager.html index f3f104b1c..a6f4b33b0 100644 --- a/docs/Phaser.AnimationManager.html +++ b/docs/Phaser.AnimationManager.html @@ -3569,7 +3569,7 @@ The currentAnim property of the AnimationManager is automatically set to the ani Documentation generated by JSDoc 3.3.0-alpha10 - on Wed Jul 22 2015 14:55:12 GMT+0100 (GMT Daylight Time) using the DocStrap template. + on Fri Jul 24 2015 13:29:46 GMT+0100 (GMT Daylight Time) using the DocStrap template. diff --git a/docs/Phaser.AnimationParser.html b/docs/Phaser.AnimationParser.html index 8e63ea8fc..c92e12d31 100644 --- a/docs/Phaser.AnimationParser.html +++ b/docs/Phaser.AnimationParser.html @@ -2082,7 +2082,7 @@ Documentation generated by JSDoc 3.3.0-alpha10 - on Wed Jul 22 2015 14:55:12 GMT+0100 (GMT Daylight Time) using the DocStrap template. + on Fri Jul 24 2015 13:29:46 GMT+0100 (GMT Daylight Time) using the DocStrap template. diff --git a/docs/Phaser.ArraySet.html b/docs/Phaser.ArraySet.html index aba131f0d..0ab799a39 100644 --- a/docs/Phaser.ArraySet.html +++ b/docs/Phaser.ArraySet.html @@ -2820,7 +2820,7 @@ Returns null if not found.

Documentation generated by JSDoc 3.3.0-alpha10 - on Wed Jul 22 2015 14:55:12 GMT+0100 (GMT Daylight Time) using the DocStrap template. + on Fri Jul 24 2015 13:29:46 GMT+0100 (GMT Daylight Time) using the DocStrap template. diff --git a/docs/Phaser.ArrayUtils.html b/docs/Phaser.ArrayUtils.html index bdb5de9b1..e157b3ac2 100644 --- a/docs/Phaser.ArrayUtils.html +++ b/docs/Phaser.ArrayUtils.html @@ -2739,7 +2739,7 @@ for forward compatibility make sure to pass in actual numbers.

Documentation generated by JSDoc 3.3.0-alpha10 - on Wed Jul 22 2015 14:55:12 GMT+0100 (GMT Daylight Time) using the DocStrap template. + on Fri Jul 24 2015 13:29:46 GMT+0100 (GMT Daylight Time) using the DocStrap template. diff --git a/docs/Phaser.AudioSprite.html b/docs/Phaser.AudioSprite.html index 0d24318b6..a8068a609 100644 --- a/docs/Phaser.AudioSprite.html +++ b/docs/Phaser.AudioSprite.html @@ -2106,7 +2106,7 @@ The JSON follows the format of that created by https://github.com/tonistiigi/aud Documentation generated by JSDoc 3.3.0-alpha10 - on Wed Jul 22 2015 14:55:12 GMT+0100 (GMT Daylight Time) using the DocStrap template. + on Fri Jul 24 2015 13:29:46 GMT+0100 (GMT Daylight Time) using the DocStrap template. diff --git a/docs/Phaser.BitmapData.html b/docs/Phaser.BitmapData.html index 0d470415e..8583531b3 100644 --- a/docs/Phaser.BitmapData.html +++ b/docs/Phaser.BitmapData.html @@ -14662,7 +14662,7 @@ If not given the dimensions defaults to the full size of the context.

Documentation generated by JSDoc 3.3.0-alpha10 - on Wed Jul 22 2015 14:55:12 GMT+0100 (GMT Daylight Time) using the DocStrap template. + on Fri Jul 24 2015 13:29:46 GMT+0100 (GMT Daylight Time) using the DocStrap template. diff --git a/docs/Phaser.BitmapText.html b/docs/Phaser.BitmapText.html index bc9b0f591..7fee29255 100644 --- a/docs/Phaser.BitmapText.html +++ b/docs/Phaser.BitmapText.html @@ -5948,67 +5948,6 @@ This value is updated at the end of updateTransform and takes all parent transfo - - - - -
- - - -
-

x :Number

- - -
-
- - - -
-

The position of the displayObject on the x axis relative to the local coordinates of the parent.

-
- - - - - -
- - - - - - - -
Inherited From:
-
- - - - - - - - - - - - - -
Source - - pixi/display/DisplayObject.js, line 726 -
- - - - - - -
@@ -6080,7 +6019,7 @@ This value is updated at the end of updateTransform and takes all parent transfo

y :Number

+ id="x">x :Number
@@ -6089,7 +6028,7 @@ This value is updated at the end of updateTransform and takes all parent transfo
-

The position of the displayObject on the y axis relative to the local coordinates of the parent.

+

The position of the displayObject on the x axis relative to the local coordinates of the parent.

@@ -6106,7 +6045,7 @@ This value is updated at the end of updateTransform and takes all parent transfo
Inherited From:
@@ -6122,7 +6061,7 @@ This value is updated at the end of updateTransform and takes all parent transfo
Source - - pixi/display/DisplayObject.js, line 744 + pixi/display/DisplayObject.js, line 726
@@ -6192,6 +6131,67 @@ This value is updated at the end of updateTransform and takes all parent transfo + + + + + + + + +
+

y :Number

+ + +
+
+ + + +
+

The position of the displayObject on the y axis relative to the local coordinates of the parent.

+
+ + + + + +
+ + + + + + + +
Inherited From:
+
+ + + + + + + + + + + + + +
Source - + pixi/display/DisplayObject.js, line 744 +
+ + + + + + +
@@ -9787,7 +9787,7 @@ Remember if this Game Object has any children you should call update on those to Documentation generated by JSDoc 3.3.0-alpha10 - on Wed Jul 22 2015 14:55:12 GMT+0100 (GMT Daylight Time) using the DocStrap template. + on Fri Jul 24 2015 13:29:46 GMT+0100 (GMT Daylight Time) using the DocStrap template. diff --git a/docs/Phaser.Button.html b/docs/Phaser.Button.html index d93d77640..5eed5ddf5 100644 --- a/docs/Phaser.Button.html +++ b/docs/Phaser.Button.html @@ -7614,6 +7614,82 @@ in which case the values are duplicated to a local object.

+
+ + + +
+

destroy()

+ + +
+
+ + + +
+

Destroy this DisplayObject. +Removes all references to transformCallbacks, its parent, the stage, filters, bounds, mask and cached Sprites.

+
+ + + + + + + + + + + +
+ + + + + + + +
Inherited From:
+
+ + + + + + + + + + + + + +
Source - + pixi/display/DisplayObject.js, line 242 +
+ + + + + + + +
+ + + + + + + + + + +
@@ -7760,82 +7836,6 @@ and nulls its reference to game, freeing it up for garbage collecti - - - - -
-

destroy()

- - -
-
- - - -
-

Destroy this DisplayObject. -Removes all references to transformCallbacks, its parent, the stage, filters, bounds, mask and cached Sprites.

-
- - - - - - - - - - - -
- - - - - - - -
Inherited From:
-
- - - - - - - - - - - - - -
Source - - pixi/display/DisplayObject.js, line 242 -
- - - - - - - -
- - - - - - - - - - -
@@ -14223,7 +14223,7 @@ or the rectangle it references, then you need to update the crop frame by callin Documentation generated by JSDoc 3.3.0-alpha10 - on Wed Jul 22 2015 14:55:12 GMT+0100 (GMT Daylight Time) using the DocStrap template. + on Fri Jul 24 2015 13:29:46 GMT+0100 (GMT Daylight Time) using the DocStrap template. diff --git a/docs/Phaser.Cache.html b/docs/Phaser.Cache.html index 33101e781..6e6da6d31 100644 --- a/docs/Phaser.Cache.html +++ b/docs/Phaser.Cache.html @@ -2325,7 +2325,7 @@ then used as an asset store.

Source - - loader/Cache.js, line 392 + loader/Cache.js, line 396
@@ -2557,7 +2557,7 @@ then used as an asset store.

Source - - loader/Cache.js, line 405 + loader/Cache.js, line 409
@@ -2875,7 +2875,7 @@ then used as an asset store.

Source - - loader/Cache.js, line 430 + loader/Cache.js, line 434
@@ -3499,7 +3499,7 @@ If an image already exists in the cache with the same key then it is removed and
Source - - loader/Cache.js, line 465 + loader/Cache.js, line 469
@@ -3579,7 +3579,7 @@ This image is skipped when Cache.destroy is called due to its inter
Source - - loader/Cache.js, line 287 + loader/Cache.js, line 289
@@ -3767,7 +3767,7 @@ This image is skipped when Cache.destroy is called due to its inter
Source - - loader/Cache.js, line 358 + loader/Cache.js, line 362
@@ -3909,7 +3909,7 @@ This image is skipped when Cache.destroy is called due to its inter
Source - - loader/Cache.js, line 530 + loader/Cache.js, line 534
@@ -4074,7 +4074,7 @@ This image is skipped when Cache.destroy is called due to its inter
Source - - loader/Cache.js, line 514 + loader/Cache.js, line 518
@@ -4285,7 +4285,7 @@ This image is skipped when Cache.destroy is called due to its inter
Source - - loader/Cache.js, line 306 + loader/Cache.js, line 310
@@ -4677,7 +4677,7 @@ This image is skipped when Cache.destroy is called due to its inter
Source - - loader/Cache.js, line 543 + loader/Cache.js, line 547
@@ -4842,7 +4842,7 @@ This image is skipped when Cache.destroy is called due to its inter
Source - - loader/Cache.js, line 342 + loader/Cache.js, line 346
@@ -5053,7 +5053,7 @@ This image is skipped when Cache.destroy is called due to its inter
Source - - loader/Cache.js, line 576 + loader/Cache.js, line 580
@@ -5241,7 +5241,7 @@ This image is skipped when Cache.destroy is called due to its inter
Source - - loader/Cache.js, line 375 + loader/Cache.js, line 379
@@ -5429,7 +5429,7 @@ This image is skipped when Cache.destroy is called due to its inter
Source - - loader/Cache.js, line 497 + loader/Cache.js, line 501
@@ -5594,7 +5594,7 @@ This image is skipped when Cache.destroy is called due to its inter
Source - - loader/Cache.js, line 481 + loader/Cache.js, line 485
@@ -5733,7 +5733,7 @@ This image is skipped when Cache.destroy is called due to its inter
Source - - loader/Cache.js, line 871 + loader/Cache.js, line 875
@@ -5872,7 +5872,7 @@ This image is skipped when Cache.destroy is called due to its inter
Source - - loader/Cache.js, line 884 + loader/Cache.js, line 888
@@ -6011,7 +6011,7 @@ This image is skipped when Cache.destroy is called due to its inter
Source - - loader/Cache.js, line 897 + loader/Cache.js, line 901
@@ -6150,7 +6150,7 @@ This image is skipped when Cache.destroy is called due to its inter
Source - - loader/Cache.js, line 780 + loader/Cache.js, line 784
@@ -6289,7 +6289,7 @@ This image is skipped when Cache.destroy is called due to its inter
Source - - loader/Cache.js, line 793 + loader/Cache.js, line 797
@@ -6428,7 +6428,7 @@ This image is skipped when Cache.destroy is called due to its inter
Source - - loader/Cache.js, line 910 + loader/Cache.js, line 914
@@ -6590,7 +6590,7 @@ This image is skipped when Cache.destroy is called due to its inter
Source - - loader/Cache.js, line 740 + loader/Cache.js, line 744
@@ -6729,7 +6729,7 @@ This image is skipped when Cache.destroy is called due to its inter
Source - - loader/Cache.js, line 845 + loader/Cache.js, line 849
@@ -6868,7 +6868,7 @@ This image is skipped when Cache.destroy is called due to its inter
Source - - loader/Cache.js, line 962 + loader/Cache.js, line 966
@@ -7007,7 +7007,7 @@ This image is skipped when Cache.destroy is called due to its inter
Source - - loader/Cache.js, line 949 + loader/Cache.js, line 953
@@ -7146,7 +7146,7 @@ This image is skipped when Cache.destroy is called due to its inter
Source - - loader/Cache.js, line 819 + loader/Cache.js, line 823
@@ -7285,7 +7285,7 @@ This image is skipped when Cache.destroy is called due to its inter
Source - - loader/Cache.js, line 832 + loader/Cache.js, line 836
@@ -7424,7 +7424,7 @@ This image is skipped when Cache.destroy is called due to its inter
Source - - loader/Cache.js, line 806 + loader/Cache.js, line 810
@@ -7563,7 +7563,7 @@ This image is skipped when Cache.destroy is called due to its inter
Source - - loader/Cache.js, line 858 + loader/Cache.js, line 862
@@ -7705,7 +7705,7 @@ which may cause double-load instances.

Source - - loader/Cache.js, line 759 + loader/Cache.js, line 763
@@ -7844,7 +7844,7 @@ which may cause double-load instances.

Source - - loader/Cache.js, line 936 + loader/Cache.js, line 940
@@ -7983,7 +7983,7 @@ which may cause double-load instances.

Source - - loader/Cache.js, line 923 + loader/Cache.js, line 927
@@ -8061,7 +8061,7 @@ This is called automatically when the WebGL context is lost and then restored.Source - - loader/Cache.js, line 1877 + loader/Cache.js, line 1906 @@ -8203,7 +8203,7 @@ This is called automatically when the WebGL context is lost and then restored.Source - - loader/Cache.js, line 682 + loader/Cache.js, line 686 @@ -8274,7 +8274,7 @@ If an object in the cache has a destroy method it will also be call
Source - - loader/Cache.js, line 1927 + loader/Cache.js, line 1956
@@ -8468,7 +8468,7 @@ If an object in the cache has a destroy method it will also be call
Source - - loader/Cache.js, line 1382 + loader/Cache.js, line 1386
@@ -8609,7 +8609,7 @@ If an object in the cache has a destroy method it will also be call
Source - - loader/Cache.js, line 1222 + loader/Cache.js, line 1226
@@ -8750,7 +8750,7 @@ If an object in the cache has a destroy method it will also be call
Source - - loader/Cache.js, line 1239 + loader/Cache.js, line 1243
@@ -8891,7 +8891,7 @@ If an object in the cache has a destroy method it will also be call
Source - - loader/Cache.js, line 1256 + loader/Cache.js, line 1260
@@ -9032,7 +9032,7 @@ If an object in the cache has a destroy method it will also be call
Source - - loader/Cache.js, line 1017 + loader/Cache.js, line 1021
@@ -9171,7 +9171,7 @@ If an object in the cache has a destroy method it will also be call
Source - - loader/Cache.js, line 1398 + loader/Cache.js, line 1402
@@ -9333,7 +9333,7 @@ If an object in the cache has a destroy method it will also be call
Source - - loader/Cache.js, line 1482 + loader/Cache.js, line 1486
@@ -9495,7 +9495,7 @@ If an object in the cache has a destroy method it will also be call
Source - - loader/Cache.js, line 1505 + loader/Cache.js, line 1509
@@ -9634,7 +9634,7 @@ If an object in the cache has a destroy method it will also be call
Source - - loader/Cache.js, line 1411 + loader/Cache.js, line 1415
@@ -9775,7 +9775,7 @@ If an object in the cache has a destroy method it will also be call
Source - - loader/Cache.js, line 1433 + loader/Cache.js, line 1437
@@ -9975,7 +9975,7 @@ If an object in the cache has a destroy method it will also be call
Source - - loader/Cache.js, line 1034 + loader/Cache.js, line 1038
@@ -10223,7 +10223,7 @@ publicly for your own use as well.

Source - - loader/Cache.js, line 979 + loader/Cache.js, line 983
@@ -10421,7 +10421,7 @@ of it by setting the clone argument to true.

Source - - loader/Cache.js, line 1273 + loader/Cache.js, line 1277
@@ -10580,7 +10580,7 @@ of it by setting the clone argument to true.

Source - - loader/Cache.js, line 1597 + loader/Cache.js, line 1622
@@ -10812,7 +10812,7 @@ of it by setting the clone argument to true.

Source - - loader/Cache.js, line 1143 + loader/Cache.js, line 1147
@@ -10852,7 +10852,8 @@ of it by setting the clone argument to true.

-

Gets a PIXI.BaseTexture by key from the PIXI.BaseTExtureCache.

+

Gets a PIXI.BaseTexture by key from the PIXI.BaseTextureCache.

+

If the texture isn't found in the cache, then it searches the Phaser Image Cache.

@@ -10925,7 +10926,7 @@ of it by setting the clone argument to true.

-

The BaseTexture object.

+

The BaseTexture object or null if not found.

@@ -10962,7 +10963,7 @@ of it by setting the clone argument to true.

Source - - loader/Cache.js, line 1550 + loader/Cache.js, line 1565
@@ -11003,6 +11004,8 @@ of it by setting the clone argument to true.

Gets a PIXI.Texture by key from the PIXI.TextureCache.

+

If the texture isn't found in the cache, then it searches the Phaser Image Cache and +creates a new PIXI.Texture object which is then returned.

@@ -11112,7 +11115,7 @@ of it by setting the clone argument to true.

Source - - loader/Cache.js, line 1528 + loader/Cache.js, line 1532
@@ -11253,7 +11256,7 @@ of it by setting the clone argument to true.

Source - - loader/Cache.js, line 1361 + loader/Cache.js, line 1365
@@ -11394,7 +11397,7 @@ of it by setting the clone argument to true.

Source - - loader/Cache.js, line 1344 + loader/Cache.js, line 1348
@@ -11535,7 +11538,7 @@ of it by setting the clone argument to true.

Source - - loader/Cache.js, line 1092 + loader/Cache.js, line 1096
@@ -11676,7 +11679,7 @@ of it by setting the clone argument to true.

Source - - loader/Cache.js, line 1109 + loader/Cache.js, line 1113
@@ -11817,7 +11820,7 @@ of it by setting the clone argument to true.

Source - - loader/Cache.js, line 1126 + loader/Cache.js, line 1130
@@ -11957,7 +11960,7 @@ of it by setting the clone argument to true.

Source - - loader/Cache.js, line 1077 + loader/Cache.js, line 1081
@@ -12098,7 +12101,7 @@ of it by setting the clone argument to true.

Source - - loader/Cache.js, line 1205 + loader/Cache.js, line 1209
@@ -12239,7 +12242,7 @@ Be aware that every call to this function makes a DOM src query, so use carefull
Source - - loader/Cache.js, line 1572 + loader/Cache.js, line 1597
@@ -12380,7 +12383,7 @@ Be aware that every call to this function makes a DOM src query, so use carefull
Source - - loader/Cache.js, line 1327 + loader/Cache.js, line 1331
@@ -12521,7 +12524,7 @@ Be aware that every call to this function makes a DOM src query, so use carefull
Source - - loader/Cache.js, line 1310 + loader/Cache.js, line 1314
@@ -12660,7 +12663,7 @@ Be aware that every call to this function makes a DOM src query, so use carefull
Source - - loader/Cache.js, line 1450 + loader/Cache.js, line 1454
@@ -12799,7 +12802,7 @@ Be aware that every call to this function makes a DOM src query, so use carefull
Source - - loader/Cache.js, line 699 + loader/Cache.js, line 703
@@ -12939,7 +12942,7 @@ A sound is considered ready when it has finished decoding and the device is no l
Source - - loader/Cache.js, line 717 + loader/Cache.js, line 721
@@ -13058,7 +13061,7 @@ A sound is considered ready when it has finished decoding and the device is no l
Source - - loader/Cache.js, line 622 + loader/Cache.js, line 626
@@ -13177,7 +13180,7 @@ A sound is considered ready when it has finished decoding and the device is no l
Source - - loader/Cache.js, line 647 + loader/Cache.js, line 651
@@ -13298,7 +13301,7 @@ then it will persist in memory.

Source - - loader/Cache.js, line 1727 + loader/Cache.js, line 1756
@@ -13419,7 +13422,7 @@ then it will persist in memory.

Source - - loader/Cache.js, line 1742 + loader/Cache.js, line 1771
@@ -13540,7 +13543,7 @@ then it will persist in memory.

Source - - loader/Cache.js, line 1757 + loader/Cache.js, line 1786
@@ -13661,7 +13664,7 @@ then it will persist in memory.

Source - - loader/Cache.js, line 1629 + loader/Cache.js, line 1654
@@ -13697,8 +13700,9 @@ then it will persist in memory.

-

Removes an image from the cache and optionally from the Pixi.BaseTextureCache as well.

-

Note that this only removes it from the Phaser.Cache. If you still have references to the data elsewhere +

Removes an image from the cache.

+

You can optionally elect to destroy it as well. This calls BaseTexture.destroy on it.

+

Note that this only removes it from the Phaser and PIXI Caches. If you still have references to the data elsewhere then it will persist in memory.

@@ -13804,7 +13808,7 @@ then it will persist in memory.

-

Should this image also be removed from the Pixi BaseTextureCache?

+

Should this image also be destroyed? Removing it from the PIXI.BaseTextureCache?

@@ -13837,7 +13841,7 @@ then it will persist in memory.

Source - - loader/Cache.js, line 1644 + loader/Cache.js, line 1669
@@ -13958,7 +13962,7 @@ then it will persist in memory.

Source - - loader/Cache.js, line 1772 + loader/Cache.js, line 1801
@@ -14079,7 +14083,7 @@ then it will persist in memory.

Source - - loader/Cache.js, line 1697 + loader/Cache.js, line 1726
@@ -14200,7 +14204,7 @@ then it will persist in memory.

Source - - loader/Cache.js, line 1832 + loader/Cache.js, line 1861
@@ -14321,7 +14325,7 @@ then it will persist in memory.

Source - - loader/Cache.js, line 1817 + loader/Cache.js, line 1846
@@ -14442,7 +14446,7 @@ then it will persist in memory.

Source - - loader/Cache.js, line 1667 + loader/Cache.js, line 1696
@@ -14563,7 +14567,7 @@ then it will persist in memory.

Source - - loader/Cache.js, line 1847 + loader/Cache.js, line 1876
@@ -14684,7 +14688,7 @@ then it will persist in memory.

Source - - loader/Cache.js, line 1682 + loader/Cache.js, line 1711
@@ -14805,7 +14809,7 @@ then it will persist in memory.

Source - - loader/Cache.js, line 1862 + loader/Cache.js, line 1891
@@ -14926,7 +14930,7 @@ then it will persist in memory.

Source - - loader/Cache.js, line 1712 + loader/Cache.js, line 1741
@@ -15047,7 +15051,7 @@ then it will persist in memory.

Source - - loader/Cache.js, line 1802 + loader/Cache.js, line 1831
@@ -15168,7 +15172,7 @@ then it will persist in memory.

Source - - loader/Cache.js, line 1787 + loader/Cache.js, line 1816
@@ -15377,7 +15381,7 @@ then it will persist in memory.

Source - - loader/Cache.js, line 1463 + loader/Cache.js, line 1467
@@ -15496,7 +15500,7 @@ then it will persist in memory.

Source - - loader/Cache.js, line 665 + loader/Cache.js, line 669
@@ -15545,7 +15549,7 @@ then it will persist in memory.

Documentation generated by JSDoc 3.3.0-alpha10 - on Wed Jul 22 2015 14:55:13 GMT+0100 (GMT Daylight Time) using the DocStrap template. + on Fri Jul 24 2015 13:29:46 GMT+0100 (GMT Daylight Time) using the DocStrap template. diff --git a/docs/Phaser.Camera.html b/docs/Phaser.Camera.html index 11a94d2bf..7beafcca0 100644 --- a/docs/Phaser.Camera.html +++ b/docs/Phaser.Camera.html @@ -3754,7 +3754,7 @@ without having to use game.camera.x and game.camera.y.

Documentation generated by JSDoc 3.3.0-alpha10 - on Wed Jul 22 2015 14:55:13 GMT+0100 (GMT Daylight Time) using the DocStrap template. + on Fri Jul 24 2015 13:29:47 GMT+0100 (GMT Daylight Time) using the DocStrap template. diff --git a/docs/Phaser.Canvas.html b/docs/Phaser.Canvas.html index a269e4869..ecbdcb45a 100644 --- a/docs/Phaser.Canvas.html +++ b/docs/Phaser.Canvas.html @@ -3213,7 +3213,7 @@ patchy on earlier browsers, especially on mobile.

Documentation generated by JSDoc 3.3.0-alpha10 - on Wed Jul 22 2015 14:55:13 GMT+0100 (GMT Daylight Time) using the DocStrap template. + on Fri Jul 24 2015 13:29:47 GMT+0100 (GMT Daylight Time) using the DocStrap template. diff --git a/docs/Phaser.Circle.html b/docs/Phaser.Circle.html index 9b3c4a780..ad3eed519 100644 --- a/docs/Phaser.Circle.html +++ b/docs/Phaser.Circle.html @@ -4839,7 +4839,7 @@ This method checks the radius distances between the two Circle objects to see if Documentation generated by JSDoc 3.3.0-alpha10 - on Wed Jul 22 2015 14:55:13 GMT+0100 (GMT Daylight Time) using the DocStrap template. + on Fri Jul 24 2015 13:29:47 GMT+0100 (GMT Daylight Time) using the DocStrap template. diff --git a/docs/Phaser.Color.html b/docs/Phaser.Color.html index 1ff1fcaae..45d277c76 100644 --- a/docs/Phaser.Color.html +++ b/docs/Phaser.Color.html @@ -11832,7 +11832,7 @@ endian-independent method, use fromRGBA(rgba) and toRGBA(r, g, b, a).

Documentation generated by JSDoc 3.3.0-alpha10 - on Wed Jul 22 2015 14:55:13 GMT+0100 (GMT Daylight Time) using the DocStrap template. + on Fri Jul 24 2015 13:29:47 GMT+0100 (GMT Daylight Time) using the DocStrap template. diff --git a/docs/Phaser.Component.Angle.html b/docs/Phaser.Component.Angle.html index e4fefc47b..9831b4334 100644 --- a/docs/Phaser.Component.Angle.html +++ b/docs/Phaser.Component.Angle.html @@ -1277,7 +1277,7 @@ Working in radians is slightly faster as it doesn't have to perform any calculat Documentation generated by JSDoc 3.3.0-alpha10 - on Wed Jul 22 2015 14:55:13 GMT+0100 (GMT Daylight Time) using the DocStrap template. + on Fri Jul 24 2015 13:29:47 GMT+0100 (GMT Daylight Time) using the DocStrap template. diff --git a/docs/Phaser.Component.Animation.html b/docs/Phaser.Component.Animation.html index 5bdbc0784..edc5d2430 100644 --- a/docs/Phaser.Component.Animation.html +++ b/docs/Phaser.Component.Animation.html @@ -1491,7 +1491,7 @@ If you need to reset an already running animation do so directly on the Animatio Documentation generated by JSDoc 3.3.0-alpha10 - on Wed Jul 22 2015 14:55:13 GMT+0100 (GMT Daylight Time) using the DocStrap template. + on Fri Jul 24 2015 13:29:47 GMT+0100 (GMT Daylight Time) using the DocStrap template. diff --git a/docs/Phaser.Component.AutoCull.html b/docs/Phaser.Component.AutoCull.html index 912e658f9..876bee432 100644 --- a/docs/Phaser.Component.AutoCull.html +++ b/docs/Phaser.Component.AutoCull.html @@ -1337,7 +1337,7 @@ Returns true if they do, otherwise false if fully outs Documentation generated by JSDoc 3.3.0-alpha10 - on Wed Jul 22 2015 14:55:13 GMT+0100 (GMT Daylight Time) using the DocStrap template. + on Fri Jul 24 2015 13:29:47 GMT+0100 (GMT Daylight Time) using the DocStrap template. diff --git a/docs/Phaser.Component.Bounds.html b/docs/Phaser.Component.Bounds.html index 03f80ce3c..ea04e9ed9 100644 --- a/docs/Phaser.Component.Bounds.html +++ b/docs/Phaser.Component.Bounds.html @@ -1560,7 +1560,7 @@ This is the same as y - offsetY.

Documentation generated by JSDoc 3.3.0-alpha10 - on Wed Jul 22 2015 14:55:13 GMT+0100 (GMT Daylight Time) using the DocStrap template. + on Fri Jul 24 2015 13:29:47 GMT+0100 (GMT Daylight Time) using the DocStrap template. diff --git a/docs/Phaser.Component.BringToTop.html b/docs/Phaser.Component.BringToTop.html index 5e7530b58..15e9c21d9 100644 --- a/docs/Phaser.Component.BringToTop.html +++ b/docs/Phaser.Component.BringToTop.html @@ -1588,7 +1588,7 @@ because the World is the root Group from which all Game Objects descend.

Documentation generated by JSDoc 3.3.0-alpha10 - on Wed Jul 22 2015 14:55:13 GMT+0100 (GMT Daylight Time) using the DocStrap template. + on Fri Jul 24 2015 13:29:47 GMT+0100 (GMT Daylight Time) using the DocStrap template. diff --git a/docs/Phaser.Component.Core.html b/docs/Phaser.Component.Core.html index f1e86f7ed..1398d15b7 100644 --- a/docs/Phaser.Component.Core.html +++ b/docs/Phaser.Component.Core.html @@ -2432,7 +2432,7 @@ Remember if this Game Object has any children you should call update on those to Documentation generated by JSDoc 3.3.0-alpha10 - on Wed Jul 22 2015 14:55:13 GMT+0100 (GMT Daylight Time) using the DocStrap template. + on Fri Jul 24 2015 13:29:47 GMT+0100 (GMT Daylight Time) using the DocStrap template. diff --git a/docs/Phaser.Component.Crop.html b/docs/Phaser.Component.Crop.html index 1ebb62f69..e5c8f2819 100644 --- a/docs/Phaser.Component.Crop.html +++ b/docs/Phaser.Component.Crop.html @@ -1534,7 +1534,7 @@ or the rectangle it references, then you need to update the crop frame by callin Documentation generated by JSDoc 3.3.0-alpha10 - on Wed Jul 22 2015 14:55:13 GMT+0100 (GMT Daylight Time) using the DocStrap template. + on Fri Jul 24 2015 13:29:47 GMT+0100 (GMT Daylight Time) using the DocStrap template. diff --git a/docs/Phaser.Component.Delta.html b/docs/Phaser.Component.Delta.html index df0a9a942..a020a8c2f 100644 --- a/docs/Phaser.Component.Delta.html +++ b/docs/Phaser.Component.Delta.html @@ -1386,7 +1386,7 @@ Documentation generated by JSDoc 3.3.0-alpha10 - on Wed Jul 22 2015 14:55:13 GMT+0100 (GMT Daylight Time) using the DocStrap template. + on Fri Jul 24 2015 13:29:47 GMT+0100 (GMT Daylight Time) using the DocStrap template. diff --git a/docs/Phaser.Component.Destroy.html b/docs/Phaser.Component.Destroy.html index 8082335a2..5edb15e77 100644 --- a/docs/Phaser.Component.Destroy.html +++ b/docs/Phaser.Component.Destroy.html @@ -1418,7 +1418,7 @@ and nulls its reference to game, freeing it up for garbage collecti Documentation generated by JSDoc 3.3.0-alpha10 - on Wed Jul 22 2015 14:55:13 GMT+0100 (GMT Daylight Time) using the DocStrap template. + on Fri Jul 24 2015 13:29:47 GMT+0100 (GMT Daylight Time) using the DocStrap template. diff --git a/docs/Phaser.Component.FixedToCamera.html b/docs/Phaser.Component.FixedToCamera.html index 13598fc16..ee3e52699 100644 --- a/docs/Phaser.Component.FixedToCamera.html +++ b/docs/Phaser.Component.FixedToCamera.html @@ -1412,7 +1412,7 @@ Called automatically by the Game Object.

Documentation generated by JSDoc 3.3.0-alpha10 - on Wed Jul 22 2015 14:55:13 GMT+0100 (GMT Daylight Time) using the DocStrap template. + on Fri Jul 24 2015 13:29:47 GMT+0100 (GMT Daylight Time) using the DocStrap template. diff --git a/docs/Phaser.Component.Health.html b/docs/Phaser.Component.Health.html index ed47b2b0e..c20be66b0 100644 --- a/docs/Phaser.Component.Health.html +++ b/docs/Phaser.Component.Health.html @@ -1451,7 +1451,7 @@ the health value never exceeds the maximum.

Documentation generated by JSDoc 3.3.0-alpha10 - on Wed Jul 22 2015 14:55:13 GMT+0100 (GMT Daylight Time) using the DocStrap template. + on Fri Jul 24 2015 13:29:47 GMT+0100 (GMT Daylight Time) using the DocStrap template. diff --git a/docs/Phaser.Component.InCamera.html b/docs/Phaser.Component.InCamera.html index 16da93931..e5163b0bb 100644 --- a/docs/Phaser.Component.InCamera.html +++ b/docs/Phaser.Component.InCamera.html @@ -1274,7 +1274,7 @@ Documentation generated by JSDoc 3.3.0-alpha10 - on Wed Jul 22 2015 14:55:13 GMT+0100 (GMT Daylight Time) using the DocStrap template. + on Fri Jul 24 2015 13:29:47 GMT+0100 (GMT Daylight Time) using the DocStrap template. diff --git a/docs/Phaser.Component.InWorld.html b/docs/Phaser.Component.InWorld.html index 40de9d4b4..87a87e71e 100644 --- a/docs/Phaser.Component.InWorld.html +++ b/docs/Phaser.Component.InWorld.html @@ -1473,7 +1473,7 @@ Called automatically by the Game Object.

Documentation generated by JSDoc 3.3.0-alpha10 - on Wed Jul 22 2015 14:55:13 GMT+0100 (GMT Daylight Time) using the DocStrap template. + on Fri Jul 24 2015 13:29:47 GMT+0100 (GMT Daylight Time) using the DocStrap template. diff --git a/docs/Phaser.Component.InputEnabled.html b/docs/Phaser.Component.InputEnabled.html index 30a9129ff..0777147dc 100644 --- a/docs/Phaser.Component.InputEnabled.html +++ b/docs/Phaser.Component.InputEnabled.html @@ -1347,7 +1347,7 @@ for this Game Object and it will then start to process click / touch events and Documentation generated by JSDoc 3.3.0-alpha10 - on Wed Jul 22 2015 14:55:13 GMT+0100 (GMT Daylight Time) using the DocStrap template. + on Fri Jul 24 2015 13:29:47 GMT+0100 (GMT Daylight Time) using the DocStrap template. diff --git a/docs/Phaser.Component.LifeSpan.html b/docs/Phaser.Component.LifeSpan.html index 836cde3dd..77eb750dc 100644 --- a/docs/Phaser.Component.LifeSpan.html +++ b/docs/Phaser.Component.LifeSpan.html @@ -1672,7 +1672,7 @@ it doesn't destroy the object or free it up from memory.

Documentation generated by JSDoc 3.3.0-alpha10 - on Wed Jul 22 2015 14:55:13 GMT+0100 (GMT Daylight Time) using the DocStrap template. + on Fri Jul 24 2015 13:29:47 GMT+0100 (GMT Daylight Time) using the DocStrap template. diff --git a/docs/Phaser.Component.LoadTexture.html b/docs/Phaser.Component.LoadTexture.html index 7c351daac..3d2169e59 100644 --- a/docs/Phaser.Component.LoadTexture.html +++ b/docs/Phaser.Component.LoadTexture.html @@ -1928,7 +1928,7 @@ it can be useful to adjust the dimensions directly in this way.

Documentation generated by JSDoc 3.3.0-alpha10 - on Wed Jul 22 2015 14:55:13 GMT+0100 (GMT Daylight Time) using the DocStrap template. + on Fri Jul 24 2015 13:29:47 GMT+0100 (GMT Daylight Time) using the DocStrap template. diff --git a/docs/Phaser.Component.Overlap.html b/docs/Phaser.Component.Overlap.html index 486e104e0..3dd4f501a 100644 --- a/docs/Phaser.Component.Overlap.html +++ b/docs/Phaser.Component.Overlap.html @@ -1371,7 +1371,7 @@ It should be fine for low-volume testing where physics isn't required.

Documentation generated by JSDoc 3.3.0-alpha10 - on Wed Jul 22 2015 14:55:14 GMT+0100 (GMT Daylight Time) using the DocStrap template. + on Fri Jul 24 2015 13:29:47 GMT+0100 (GMT Daylight Time) using the DocStrap template. diff --git a/docs/Phaser.Component.PhysicsBody.html b/docs/Phaser.Component.PhysicsBody.html index 5f0b735f7..0cce659db 100644 --- a/docs/Phaser.Component.PhysicsBody.html +++ b/docs/Phaser.Component.PhysicsBody.html @@ -1561,7 +1561,7 @@ Called automatically by the Game Object.

Documentation generated by JSDoc 3.3.0-alpha10 - on Wed Jul 22 2015 14:55:14 GMT+0100 (GMT Daylight Time) using the DocStrap template. + on Fri Jul 24 2015 13:29:47 GMT+0100 (GMT Daylight Time) using the DocStrap template. diff --git a/docs/Phaser.Component.Reset.html b/docs/Phaser.Component.Reset.html index ac0d18a5d..6992f443d 100644 --- a/docs/Phaser.Component.Reset.html +++ b/docs/Phaser.Component.Reset.html @@ -1449,7 +1449,7 @@ Documentation generated by JSDoc 3.3.0-alpha10 - on Wed Jul 22 2015 14:55:14 GMT+0100 (GMT Daylight Time) using the DocStrap template. + on Fri Jul 24 2015 13:29:48 GMT+0100 (GMT Daylight Time) using the DocStrap template. diff --git a/docs/Phaser.Component.ScaleMinMax.html b/docs/Phaser.Component.ScaleMinMax.html index 373339cab..1ba39d98a 100644 --- a/docs/Phaser.Component.ScaleMinMax.html +++ b/docs/Phaser.Component.ScaleMinMax.html @@ -1658,7 +1658,7 @@ or pass null for the maxX and maxY parame Documentation generated by JSDoc 3.3.0-alpha10 - on Wed Jul 22 2015 14:55:14 GMT+0100 (GMT Daylight Time) using the DocStrap template. + on Fri Jul 24 2015 13:29:48 GMT+0100 (GMT Daylight Time) using the DocStrap template. diff --git a/docs/Phaser.Component.Smoothed.html b/docs/Phaser.Component.Smoothed.html index 7d19c50d7..ad4fda460 100644 --- a/docs/Phaser.Component.Smoothed.html +++ b/docs/Phaser.Component.Smoothed.html @@ -1274,7 +1274,7 @@ Documentation generated by JSDoc 3.3.0-alpha10 - on Wed Jul 22 2015 14:55:14 GMT+0100 (GMT Daylight Time) using the DocStrap template. + on Fri Jul 24 2015 13:29:48 GMT+0100 (GMT Daylight Time) using the DocStrap template. diff --git a/docs/Phaser.Create.html b/docs/Phaser.Create.html index ec8a432df..c658b08a4 100644 --- a/docs/Phaser.Create.html +++ b/docs/Phaser.Create.html @@ -2455,7 +2455,7 @@ for sprites the same way you use any other texture: game.add.sprite(0, 0, Documentation generated by JSDoc 3.3.0-alpha10 - on Wed Jul 22 2015 14:55:14 GMT+0100 (GMT Daylight Time) using the DocStrap template. + on Fri Jul 24 2015 13:29:48 GMT+0100 (GMT Daylight Time) using the DocStrap template. diff --git a/docs/Phaser.Creature.html b/docs/Phaser.Creature.html index e5dc1fe5c..f9d37bb1e 100644 --- a/docs/Phaser.Creature.html +++ b/docs/Phaser.Creature.html @@ -1106,7 +1106,7 @@

new Creature(game, manager, x, y, key)

+ id="Creature">new Creature(game, x, y, key, mesh, animation)
@@ -1118,10 +1118,11 @@

Creature is a custom Game Object used in conjunction with the Creature Runtime libraries by Kestrel Moon Studios.

It allows you to display animated Game Objects that were created with the Creature Automated Animation Tool.

Note 1: You can only use Phaser.Creature objects in WebGL enabled games. They do not work in Canvas mode games.

-

Note 2: You must use a build of Phaser that includes the Creature runtimes, or have them loaded before your Phaser game boots.

+

Note 2: You must use a build of Phaser that includes the CreatureMeshBone.js runtime and gl-matrix.js, or have them +loaded before your Phaser game boots.

See the Phaser custom build process for more details.

-

By default the Creature runtimes are NOT included in any pre-configured version of Phaser. -So you'll need to do grunt custom to create a build that includes them.

+

By default the Creature runtimes are NOT included in any pre-configured version of Phaser.

+

So you'll need to do grunt custom to create a build that includes them.

@@ -1143,8 +1144,12 @@ So you'll need to do grunt custom to create a build that includes t Type + Argument + + Default + Description @@ -1168,7 +1173,19 @@ So you'll need to do grunt custom to create a build that includes t + + + + + + + + + + + +

A reference to the currently running game.

@@ -1176,29 +1193,6 @@ So you'll need to do grunt custom to create a build that includes t - - - manager - - - - - -CreatureManager - - - - - - - - - -

A reference to the CreatureManager instance.

- - - - x @@ -1214,7 +1208,19 @@ So you'll need to do grunt custom to create a build that includes t + + + + + + + + + + + +

The x coordinate of the Game Object. The coordinate is relative to any parent container this Game Object may be in.

@@ -1237,7 +1243,19 @@ So you'll need to do grunt custom to create a build that includes t + + + + + + + + + + + +

The y coordinate of the Game Object. The coordinate is relative to any parent container this Game Object may be in.

@@ -1263,13 +1281,99 @@ So you'll need to do grunt custom to create a build that includes t + + + + + + + + + + + +

The texture used by the Creature Object during rendering. It can be a string which is a reference to the Cache entry, or an instance of a PIXI.Texture.

+ + + + mesh + + + + + +string + + + + + + + + + + + + + + + + + + + + + +

The mesh data for the Creature Object. It should be a string which is a reference to the Cache JSON entry.

+ + + + + + + animation + + + + + +string + + + + + + + + + <optional>
+ + + + + + + + + + + + 'default' + + + + +

The animation within the mesh data to play.

+ + + @@ -1299,7 +1403,7 @@ So you'll need to do grunt custom to create a build that includes t
Source - - gameobjects/Creature.js, line 39 + gameobjects/Creature.js, line 42
@@ -1549,6 +1653,62 @@ Working in radians is slightly faster as it doesn't have to perform any calculat + + + + + + + + +
+

animation :CreatureAnimation

+ + +
+
+ + + +
+

The CreatureAnimation instance.

+
+ + + + + +
+ + + + + + + + + + + + + + + + + + + +
Source - + gameobjects/Creature.js, line 69 +
+ + + + + + +
@@ -1882,6 +2042,69 @@ To remove simply set this property to 'null'

+ + + + +
+ + + +
+

<internal> colors :PIXI.Uint16Array

+ + +
+
+ + + +
+

The vertices colors

+
+ + + + + +
+ + + + + + + + + +
Internal:
+
    + +
  • This member is internal (protected) and may be modified or removed in the future.
  • + +
+ + + + + + + + + + + +
Source - + gameobjects/Creature.js, line 142 +
+ + + + + + +
@@ -1950,6 +2173,132 @@ To remove simply set this property to 'null'

+ + + + +
+ + + +
+

<internal> creatureBoundsMax :Phaser.Point

+ + +
+
+ + + +
+

The maximum bounds point.

+
+ + + + + +
+ + + + + + + + + +
Internal:
+
    + +
  • This member is internal (protected) and may be modified or removed in the future.
  • + +
+ + + + + + + + + + + +
Source - + gameobjects/Creature.js, line 111 +
+ + + + + + + +
+ + + +
+ + + +
+

<internal> creatureBoundsMin :Phaser.Point

+ + +
+
+ + + +
+

The minimum bounds point.

+
+ + + + + +
+ + + + + + + + + +
Internal:
+
    + +
  • This member is internal (protected) and may be modified or removed in the future.
  • + +
+ + + + + + + + + + + +
Source - + gameobjects/Creature.js, line 105 +
+ + + + + + +
@@ -2741,6 +3090,121 @@ Returns true if they do, otherwise false if fully outs + + + + +
+ + + +
+

<internal> indices :PIXI.Uint16Array

+ + +
+
+ + + + + + + +
+ + + + + + + + + +
Internal:
+
    + +
  • This member is internal (protected) and may be modified or removed in the future.
  • + +
+ + + + + + + + + + + +
Source - + gameobjects/Creature.js, line 131 +
+ + + + + + + +
+ + + +
+ + + +
+

isPlaying :boolean

+ + +
+
+ + + +
+

Is the current animation playing?

+
+ + + + + +
+ + + + + + + + + + + + + + + + + + + +
Source - + gameobjects/Creature.js, line 443 +
+ + + + + + +
@@ -2896,6 +3360,118 @@ When it reaches zero it will call the kill method.

+ + + + +
+ + + +
+

loop :boolean

+ + +
+
+ + + +
+

Should the current animation loop or not?

+
+ + + + + +
+ + + + + + + + + + + + + + + + + + + +
Source - + gameobjects/Creature.js, line 463 +
+ + + + + + + +
+ + + +
+ + + +
+

manager :CreatureManager

+ + +
+
+ + + +
+

The CreatureManager instance for this object.

+
+ + + + + +
+ + + + + + + + + + + + + + + + + + + +
Source - + gameobjects/Creature.js, line 74 +
+ + + + + + +
@@ -3706,7 +4282,7 @@ This property is mostly used internally by the renderers, but is exposed for the

timeDelta :number

+ id="texture">texture :PIXI.Texture
@@ -3715,7 +4291,7 @@ This property is mostly used internally by the renderers, but is exposed for the
-

How quickly the animation time/playback advances

+

The texture the animation is using.

@@ -3743,7 +4319,66 @@ This property is mostly used internally by the renderers, but is exposed for the
Source - - gameobjects/Creature.js, line 54 + gameobjects/Creature.js, line 94 +
+ + + + + + + + + + + + + + + +
+

timeDelta :number

+ + +
+
+ + + +
+

How quickly the animation advances.

+
+ + + + + +
+ + + + + + + + + + + + + + + + + +
Default Value:
+
  • 0.05
+ + + +
Source - + gameobjects/Creature.js, line 80
@@ -3924,7 +4559,133 @@ This ability allows you to check any of the matrix values and perform actions su
Source - - gameobjects/Creature.js, line 49 + gameobjects/Creature.js, line 50 +
+ + + + + + + +
+ + + +
+ + + +
+

<internal> uvs :PIXI.Float32Array

+ + +
+
+ + + +
+

The UV data.

+
+ + + + + +
+ + + + + + + + + +
Internal:
+
    + +
  • This member is internal (protected) and may be modified or removed in the future.
  • + +
+ + + + + + + + + + + +
Source - + gameobjects/Creature.js, line 125 +
+ + + + + + + +
+ + + +
+ + + +
+

<internal> vertices :PIXI.Float32Array

+ + +
+
+ + + +
+

The vertices data.

+
+ + + + + +
+ + + + + + + + + +
Internal:
+
    + +
  • This member is internal (protected) and may be modified or removed in the future.
  • + +
+ + + + + + + + + + + +
Source - + gameobjects/Creature.js, line 119
@@ -6219,6 +6980,145 @@ because the World is the root Group from which all Game Objects descend.

+
+ + + +
+

play(loop)

+ + +
+
+ + + +
+

Plays the currently set animation.

+
+ + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeArgumentDefaultDescription
loop + + +boolean + + + + + + <optional>
+ + + + + +
+ + false + +

Should the animation loop?

+ + + + + + +
+ + + + + + + + + + + + + + + + + + + +
Source - + gameobjects/Creature.js, line 413 +
+ + + + + + + +
+ + + + + + + + + + +
@@ -6350,7 +7250,7 @@ because the World is the root Group from which all Game Objects descend.

Source - - gameobjects/Creature.js, line 93 + gameobjects/Creature.js, line 169
@@ -7383,6 +8283,125 @@ because the World is the root Group from which all Game Objects descend.

+ + + + +
+

setAnimation(key)

+ + +
+
+ + + +
+

Sets the Animation this Creature object will play, as defined in the mesh data.

+
+ + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
key + + +string + + + +

The key of the animation to set, as defined in the mesh data.

+ + + + + + +
+ + + + + + + + + + + + + + + + + + + +
Source - + gameobjects/Creature.js, line 400 +
+ + + + + + + +
+ + + + + + + + + + +
@@ -7654,6 +8673,76 @@ because the World is the root Group from which all Game Objects descend.

+ + + + +
+

stop()

+ + +
+
+ + + +
+

Stops the currently playing animation.

+
+ + + + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + +
Source - + gameobjects/Creature.js, line 431 +
+ + + + + + + +
+ + + + + + + + + + +
@@ -8312,7 +9401,7 @@ Remember if this Game Object has any children you should call update on those to Documentation generated by JSDoc 3.3.0-alpha10 - on Wed Jul 22 2015 14:55:14 GMT+0100 (GMT Daylight Time) using the DocStrap template. + on Fri Jul 24 2015 13:29:48 GMT+0100 (GMT Daylight Time) using the DocStrap template. diff --git a/docs/Phaser.DOM.html b/docs/Phaser.DOM.html index 0cb62300b..9a45edca0 100644 --- a/docs/Phaser.DOM.html +++ b/docs/Phaser.DOM.html @@ -2695,7 +2695,7 @@ inLayoutViewport(element, -100) is true if the element is in the vi Documentation generated by JSDoc 3.3.0-alpha10 - on Wed Jul 22 2015 14:55:14 GMT+0100 (GMT Daylight Time) using the DocStrap template. + on Fri Jul 24 2015 13:29:48 GMT+0100 (GMT Daylight Time) using the DocStrap template. diff --git a/docs/Phaser.Device.html b/docs/Phaser.Device.html index 073ac2e9e..33bc7808e 100644 --- a/docs/Phaser.Device.html +++ b/docs/Phaser.Device.html @@ -6095,7 +6095,7 @@ if the device is already "ready". See Source - - system/Device.js, line 1193 + system/Device.js, line 1192 @@ -6234,7 +6234,7 @@ if the device is already "ready". See Source - - system/Device.js, line 1232 + system/Device.js, line 1231 @@ -6306,7 +6306,7 @@ This is available before the device "ready" event.

Source - - system/Device.js, line 1298 + system/Device.js, line 1297
@@ -6384,7 +6384,7 @@ It used to work in Chrome, but then they removed the ability: Source - - system/Device.js, line 1263 + system/Device.js, line 1262 @@ -6433,7 +6433,7 @@ It used to work in Chrome, but then they removed the ability: Documentation generated by JSDoc 3.3.0-alpha10 - on Wed Jul 22 2015 14:55:14 GMT+0100 (GMT Daylight Time) using the DocStrap template. + on Fri Jul 24 2015 13:29:48 GMT+0100 (GMT Daylight Time) using the DocStrap template. diff --git a/docs/Phaser.DeviceButton.html b/docs/Phaser.DeviceButton.html index a4433aa72..f9479d2f5 100644 --- a/docs/Phaser.DeviceButton.html +++ b/docs/Phaser.DeviceButton.html @@ -3305,7 +3305,7 @@ Handles the button up state.

Documentation generated by JSDoc 3.3.0-alpha10 - on Wed Jul 22 2015 14:55:14 GMT+0100 (GMT Daylight Time) using the DocStrap template. + on Fri Jul 24 2015 13:29:48 GMT+0100 (GMT Daylight Time) using the DocStrap template. diff --git a/docs/Phaser.Easing.Back.html b/docs/Phaser.Easing.Back.html index ccc84bb08..fa0d86554 100644 --- a/docs/Phaser.Easing.Back.html +++ b/docs/Phaser.Easing.Back.html @@ -1633,7 +1633,7 @@ Documentation generated by JSDoc 3.3.0-alpha10 - on Wed Jul 22 2015 14:55:14 GMT+0100 (GMT Daylight Time) using the DocStrap template. + on Fri Jul 24 2015 13:29:48 GMT+0100 (GMT Daylight Time) using the DocStrap template. diff --git a/docs/Phaser.Easing.Bounce.html b/docs/Phaser.Easing.Bounce.html index 245f98933..aaa237d28 100644 --- a/docs/Phaser.Easing.Bounce.html +++ b/docs/Phaser.Easing.Bounce.html @@ -1633,7 +1633,7 @@ Documentation generated by JSDoc 3.3.0-alpha10 - on Wed Jul 22 2015 14:55:14 GMT+0100 (GMT Daylight Time) using the DocStrap template. + on Fri Jul 24 2015 13:29:48 GMT+0100 (GMT Daylight Time) using the DocStrap template. diff --git a/docs/Phaser.Easing.Circular.html b/docs/Phaser.Easing.Circular.html index 0041e0f8c..c34662485 100644 --- a/docs/Phaser.Easing.Circular.html +++ b/docs/Phaser.Easing.Circular.html @@ -1633,7 +1633,7 @@ Documentation generated by JSDoc 3.3.0-alpha10 - on Wed Jul 22 2015 14:55:14 GMT+0100 (GMT Daylight Time) using the DocStrap template. + on Fri Jul 24 2015 13:29:48 GMT+0100 (GMT Daylight Time) using the DocStrap template. diff --git a/docs/Phaser.Easing.Cubic.html b/docs/Phaser.Easing.Cubic.html index a7594759b..c3d83b07b 100644 --- a/docs/Phaser.Easing.Cubic.html +++ b/docs/Phaser.Easing.Cubic.html @@ -1633,7 +1633,7 @@ Documentation generated by JSDoc 3.3.0-alpha10 - on Wed Jul 22 2015 14:55:14 GMT+0100 (GMT Daylight Time) using the DocStrap template. + on Fri Jul 24 2015 13:29:48 GMT+0100 (GMT Daylight Time) using the DocStrap template. diff --git a/docs/Phaser.Easing.Elastic.html b/docs/Phaser.Easing.Elastic.html index ad41d373e..aa6e9ac0c 100644 --- a/docs/Phaser.Easing.Elastic.html +++ b/docs/Phaser.Easing.Elastic.html @@ -1633,7 +1633,7 @@ Documentation generated by JSDoc 3.3.0-alpha10 - on Wed Jul 22 2015 14:55:14 GMT+0100 (GMT Daylight Time) using the DocStrap template. + on Fri Jul 24 2015 13:29:48 GMT+0100 (GMT Daylight Time) using the DocStrap template. diff --git a/docs/Phaser.Easing.Exponential.html b/docs/Phaser.Easing.Exponential.html index 74306a3f3..63db30b2c 100644 --- a/docs/Phaser.Easing.Exponential.html +++ b/docs/Phaser.Easing.Exponential.html @@ -1633,7 +1633,7 @@ Documentation generated by JSDoc 3.3.0-alpha10 - on Wed Jul 22 2015 14:55:14 GMT+0100 (GMT Daylight Time) using the DocStrap template. + on Fri Jul 24 2015 13:29:48 GMT+0100 (GMT Daylight Time) using the DocStrap template. diff --git a/docs/Phaser.Easing.Linear.html b/docs/Phaser.Easing.Linear.html index cd07e343f..54b428888 100644 --- a/docs/Phaser.Easing.Linear.html +++ b/docs/Phaser.Easing.Linear.html @@ -1355,7 +1355,7 @@ Documentation generated by JSDoc 3.3.0-alpha10 - on Wed Jul 22 2015 14:55:14 GMT+0100 (GMT Daylight Time) using the DocStrap template. + on Fri Jul 24 2015 13:29:48 GMT+0100 (GMT Daylight Time) using the DocStrap template. diff --git a/docs/Phaser.Easing.Quadratic.html b/docs/Phaser.Easing.Quadratic.html index 610bd71b0..97770dcc5 100644 --- a/docs/Phaser.Easing.Quadratic.html +++ b/docs/Phaser.Easing.Quadratic.html @@ -1633,7 +1633,7 @@ Documentation generated by JSDoc 3.3.0-alpha10 - on Wed Jul 22 2015 14:55:14 GMT+0100 (GMT Daylight Time) using the DocStrap template. + on Fri Jul 24 2015 13:29:48 GMT+0100 (GMT Daylight Time) using the DocStrap template. diff --git a/docs/Phaser.Easing.Quartic.html b/docs/Phaser.Easing.Quartic.html index cc5d8ea71..4f6169bb1 100644 --- a/docs/Phaser.Easing.Quartic.html +++ b/docs/Phaser.Easing.Quartic.html @@ -1633,7 +1633,7 @@ Documentation generated by JSDoc 3.3.0-alpha10 - on Wed Jul 22 2015 14:55:14 GMT+0100 (GMT Daylight Time) using the DocStrap template. + on Fri Jul 24 2015 13:29:48 GMT+0100 (GMT Daylight Time) using the DocStrap template. diff --git a/docs/Phaser.Easing.Quintic.html b/docs/Phaser.Easing.Quintic.html index 648ffcf08..891c2d387 100644 --- a/docs/Phaser.Easing.Quintic.html +++ b/docs/Phaser.Easing.Quintic.html @@ -1633,7 +1633,7 @@ Documentation generated by JSDoc 3.3.0-alpha10 - on Wed Jul 22 2015 14:55:14 GMT+0100 (GMT Daylight Time) using the DocStrap template. + on Fri Jul 24 2015 13:29:48 GMT+0100 (GMT Daylight Time) using the DocStrap template. diff --git a/docs/Phaser.Easing.Sinusoidal.html b/docs/Phaser.Easing.Sinusoidal.html index 3838bcd9a..7f4050b8b 100644 --- a/docs/Phaser.Easing.Sinusoidal.html +++ b/docs/Phaser.Easing.Sinusoidal.html @@ -1633,7 +1633,7 @@ Documentation generated by JSDoc 3.3.0-alpha10 - on Wed Jul 22 2015 14:55:15 GMT+0100 (GMT Daylight Time) using the DocStrap template. + on Fri Jul 24 2015 13:29:48 GMT+0100 (GMT Daylight Time) using the DocStrap template. diff --git a/docs/Phaser.Easing.html b/docs/Phaser.Easing.html index c77e26676..362ab4b36 100644 --- a/docs/Phaser.Easing.html +++ b/docs/Phaser.Easing.html @@ -1306,7 +1306,7 @@ Documentation generated by JSDoc 3.3.0-alpha10 - on Wed Jul 22 2015 14:55:14 GMT+0100 (GMT Daylight Time) using the DocStrap template. + on Fri Jul 24 2015 13:29:48 GMT+0100 (GMT Daylight Time) using the DocStrap template. diff --git a/docs/Phaser.Ellipse.html b/docs/Phaser.Ellipse.html index 7547f795d..fa5053eed 100644 --- a/docs/Phaser.Ellipse.html +++ b/docs/Phaser.Ellipse.html @@ -3274,7 +3274,7 @@ If set to true it will reset all of the Ellipse objects properties to 0. An Elli Documentation generated by JSDoc 3.3.0-alpha10 - on Wed Jul 22 2015 14:55:15 GMT+0100 (GMT Daylight Time) using the DocStrap template. + on Fri Jul 24 2015 13:29:48 GMT+0100 (GMT Daylight Time) using the DocStrap template. diff --git a/docs/Phaser.Events.html b/docs/Phaser.Events.html index dafb0c0bd..e1a61ee7a 100644 --- a/docs/Phaser.Events.html +++ b/docs/Phaser.Events.html @@ -2408,7 +2408,7 @@ and the Animation-related events only apply to game objects with animations like Documentation generated by JSDoc 3.3.0-alpha10 - on Wed Jul 22 2015 14:55:15 GMT+0100 (GMT Daylight Time) using the DocStrap template. + on Fri Jul 24 2015 13:29:48 GMT+0100 (GMT Daylight Time) using the DocStrap template. diff --git a/docs/Phaser.Filter.html b/docs/Phaser.Filter.html index 19dc5f0c7..9c60b9970 100644 --- a/docs/Phaser.Filter.html +++ b/docs/Phaser.Filter.html @@ -2254,7 +2254,7 @@ Documentation generated by JSDoc 3.3.0-alpha10 - on Wed Jul 22 2015 14:55:15 GMT+0100 (GMT Daylight Time) using the DocStrap template. + on Fri Jul 24 2015 13:29:49 GMT+0100 (GMT Daylight Time) using the DocStrap template. diff --git a/docs/Phaser.FlexGrid.html b/docs/Phaser.FlexGrid.html index 1788b3862..ad1107a3e 100644 --- a/docs/Phaser.FlexGrid.html +++ b/docs/Phaser.FlexGrid.html @@ -2918,7 +2918,7 @@ to provide for game object positioning in a responsive manner.

Documentation generated by JSDoc 3.3.0-alpha10 - on Wed Jul 22 2015 14:55:15 GMT+0100 (GMT Daylight Time) using the DocStrap template. + on Fri Jul 24 2015 13:29:49 GMT+0100 (GMT Daylight Time) using the DocStrap template. diff --git a/docs/Phaser.FlexLayer.html b/docs/Phaser.FlexLayer.html index 1e897c0d1..c7f79564f 100644 --- a/docs/Phaser.FlexLayer.html +++ b/docs/Phaser.FlexLayer.html @@ -18713,7 +18713,7 @@ For example to depth sort Sprites for Zelda-style game you might call grou Documentation generated by JSDoc 3.3.0-alpha10 - on Wed Jul 22 2015 14:55:15 GMT+0100 (GMT Daylight Time) using the DocStrap template. + on Fri Jul 24 2015 13:29:49 GMT+0100 (GMT Daylight Time) using the DocStrap template. diff --git a/docs/Phaser.Frame.html b/docs/Phaser.Frame.html index 18e74363b..e076940d2 100644 --- a/docs/Phaser.Frame.html +++ b/docs/Phaser.Frame.html @@ -3166,7 +3166,7 @@ Note that all properties are cloned, including the name, index and UUID.

Documentation generated by JSDoc 3.3.0-alpha10 - on Wed Jul 22 2015 14:55:15 GMT+0100 (GMT Daylight Time) using the DocStrap template. + on Fri Jul 24 2015 13:29:49 GMT+0100 (GMT Daylight Time) using the DocStrap template. diff --git a/docs/Phaser.FrameData.html b/docs/Phaser.FrameData.html index 87416920e..8ffa991d7 100644 --- a/docs/Phaser.FrameData.html +++ b/docs/Phaser.FrameData.html @@ -2603,7 +2603,7 @@ The frames are returned in the output array, or if none is provided in a new Arr Documentation generated by JSDoc 3.3.0-alpha10 - on Wed Jul 22 2015 14:55:15 GMT+0100 (GMT Daylight Time) using the DocStrap template. + on Fri Jul 24 2015 13:29:49 GMT+0100 (GMT Daylight Time) using the DocStrap template. diff --git a/docs/Phaser.Game.html b/docs/Phaser.Game.html index 840bf4138..fc1a2ecbd 100644 --- a/docs/Phaser.Game.html +++ b/docs/Phaser.Game.html @@ -6057,7 +6057,7 @@ Phaser will only render when this boolean is false.

Documentation generated by JSDoc 3.3.0-alpha10 - on Wed Jul 22 2015 14:55:15 GMT+0100 (GMT Daylight Time) using the DocStrap template. + on Fri Jul 24 2015 13:29:49 GMT+0100 (GMT Daylight Time) using the DocStrap template. diff --git a/docs/Phaser.GameObjectCreator.html b/docs/Phaser.GameObjectCreator.html index ec24f09a3..04fc0b9d3 100644 --- a/docs/Phaser.GameObjectCreator.html +++ b/docs/Phaser.GameObjectCreator.html @@ -6699,7 +6699,7 @@ Note that all Tilemaps use a base tile size to calculate dimensions from, but th Documentation generated by JSDoc 3.3.0-alpha10 - on Wed Jul 22 2015 14:55:15 GMT+0100 (GMT Daylight Time) using the DocStrap template. + on Fri Jul 24 2015 13:29:49 GMT+0100 (GMT Daylight Time) using the DocStrap template. diff --git a/docs/Phaser.GameObjectFactory.html b/docs/Phaser.GameObjectFactory.html index 5b56e3c88..28b2a1161 100644 --- a/docs/Phaser.GameObjectFactory.html +++ b/docs/Phaser.GameObjectFactory.html @@ -1620,7 +1620,7 @@ using game.add.

Source - - gameobjects/GameObjectFactory.js, line 167 + gameobjects/GameObjectFactory.js, line 200
@@ -1759,7 +1759,7 @@ using game.add.

Source - - gameobjects/GameObjectFactory.js, line 199 + gameobjects/GameObjectFactory.js, line 232
@@ -2036,7 +2036,7 @@ using game.add.

Source - - gameobjects/GameObjectFactory.js, line 463 + gameobjects/GameObjectFactory.js, line 496
@@ -2387,7 +2387,7 @@ Littera (Web-based, free): http://kvazars.com/littera/

Source - - gameobjects/GameObjectFactory.js, line 362 + gameobjects/GameObjectFactory.js, line 395
@@ -2893,7 +2893,288 @@ Littera (Web-based, free): http://kvazars.com/littera/

Source - - gameobjects/GameObjectFactory.js, line 274 + gameobjects/GameObjectFactory.js, line 307 +
+ + + + + + + + + + + + + + + + + + + + + + + +
+

creature(x, y, key, group) → {Phaser.Creature}

+ + +
+
+ + + +
+

Create a new Creature Animation object.

+

Creature is a custom Game Object used in conjunction with the Creature Runtime libraries by Kestrel Moon Studios.

+

It allows you to display animated Game Objects that were created with the Creature Automated Animation Tool.

+

Note 1: You can only use Phaser.Creature objects in WebGL enabled games. They do not work in Canvas mode games.

+

Note 2: You must use a build of Phaser that includes the CreatureMeshBone.js runtime and gl-matrix.js, or have them +loaded before your Phaser game boots.

+

See the Phaser custom build process for more details.

+
+ + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeArgumentDefaultDescription
x + + +number + + + + + + <optional>
+ + + + + +
+ + 0 + +

The x coordinate of the creature. The coordinate is relative to any parent container this creature may be in.

y + + +number + + + + + + <optional>
+ + + + + +
+ + 0 + +

The y coordinate of the creature. The coordinate is relative to any parent container this creature may be in.

key + + +string +| + +PIXI.Texture + + + + + + <optional>
+ + + + + +
+ +

The image used as a texture by this creature object during rendering. If a string Phaser will get for an entry in the Image Cache. Or it can be an instance of a PIXI.Texture.

group + + +Phaser.Group + + + + + + <optional>
+ + + + + +
+ +

Optional Group to add the object to. If not specified it will be added to the World group.

+ + + + +
Returns:
+
+ + + +
+ +Phaser.Creature + + - +
+ +
+

The newly created Sprite object.

+
+ + + +
+ + + +
+ + + + + + + + + + + + + + + + + + + +
Source - + gameobjects/GameObjectFactory.js, line 95
@@ -3133,7 +3414,7 @@ at set intervals, and fixes their positions and velocities accordingly.

Source - - gameobjects/GameObjectFactory.js, line 315 + gameobjects/GameObjectFactory.js, line 348
@@ -3434,7 +3715,7 @@ at set intervals, and fixes their positions and velocities accordingly.

Source - - gameobjects/GameObjectFactory.js, line 491 + gameobjects/GameObjectFactory.js, line 524
@@ -3669,7 +3950,7 @@ at set intervals, and fixes their positions and velocities accordingly.

Source - - gameobjects/GameObjectFactory.js, line 298 + gameobjects/GameObjectFactory.js, line 331
@@ -3982,7 +4263,7 @@ at set intervals, and fixes their positions and velocities accordingly.

Source - - gameobjects/GameObjectFactory.js, line 110 + gameobjects/GameObjectFactory.js, line 143
@@ -4585,7 +4866,7 @@ are automatically given a physics body.

Source - - gameobjects/GameObjectFactory.js, line 127 + gameobjects/GameObjectFactory.js, line 160
@@ -4771,7 +5052,7 @@ are automatically given a physics body.

Source - - gameobjects/GameObjectFactory.js, line 511 + gameobjects/GameObjectFactory.js, line 544
@@ -5047,7 +5328,7 @@ are automatically given a physics body.

Source - - gameobjects/GameObjectFactory.js, line 421 + gameobjects/GameObjectFactory.js, line 454
@@ -5504,7 +5785,7 @@ i.e. if you need each Image to have different text in it, then you need to creat
Source - - gameobjects/GameObjectFactory.js, line 334 + gameobjects/GameObjectFactory.js, line 367
@@ -5864,7 +6145,7 @@ i.e. if you need each Image to have different text in it, then you need to creat
Source - - gameobjects/GameObjectFactory.js, line 233 + gameobjects/GameObjectFactory.js, line 266
@@ -6136,7 +6417,7 @@ i.e. if you need each Image to have different text in it, then you need to creat
Source - - gameobjects/GameObjectFactory.js, line 183 + gameobjects/GameObjectFactory.js, line 216
@@ -6701,7 +6982,7 @@ The speed gains are specifically for WebGL. In Canvas mode you won't see any rea
Source - - gameobjects/GameObjectFactory.js, line 146 + gameobjects/GameObjectFactory.js, line 179
@@ -7012,7 +7293,7 @@ The speed gains are specifically for WebGL. In Canvas mode you won't see any rea
Source - - gameobjects/GameObjectFactory.js, line 255 + gameobjects/GameObjectFactory.js, line 288
@@ -7330,7 +7611,7 @@ Note that all Tilemaps use a base tile size to calculate dimensions from, but th
Source - - gameobjects/GameObjectFactory.js, line 398 + gameobjects/GameObjectFactory.js, line 431
@@ -7684,7 +7965,7 @@ Note that all Tilemaps use a base tile size to calculate dimensions from, but th
Source - - gameobjects/GameObjectFactory.js, line 212 + gameobjects/GameObjectFactory.js, line 245
@@ -7824,7 +8105,7 @@ Note that all Tilemaps use a base tile size to calculate dimensions from, but th
Source - - gameobjects/GameObjectFactory.js, line 95 + gameobjects/GameObjectFactory.js, line 128
@@ -8029,7 +8310,7 @@ Note that all Tilemaps use a base tile size to calculate dimensions from, but th
Source - - gameobjects/GameObjectFactory.js, line 447 + gameobjects/GameObjectFactory.js, line 480
@@ -8078,7 +8359,7 @@ Note that all Tilemaps use a base tile size to calculate dimensions from, but th Documentation generated by JSDoc 3.3.0-alpha10 - on Wed Jul 22 2015 14:55:15 GMT+0100 (GMT Daylight Time) using the DocStrap template. + on Fri Jul 24 2015 13:29:49 GMT+0100 (GMT Daylight Time) using the DocStrap template. diff --git a/docs/Phaser.Gamepad.html b/docs/Phaser.Gamepad.html index c6bd60aac..4864d5a17 100644 --- a/docs/Phaser.Gamepad.html +++ b/docs/Phaser.Gamepad.html @@ -3271,7 +3271,7 @@ This MUST be called manually before Phaser will start polling the Gamepad API. Documentation generated by JSDoc 3.3.0-alpha10 - on Wed Jul 22 2015 14:55:15 GMT+0100 (GMT Daylight Time) using the DocStrap template. + on Fri Jul 24 2015 13:29:49 GMT+0100 (GMT Daylight Time) using the DocStrap template. diff --git a/docs/Phaser.Graphics.html b/docs/Phaser.Graphics.html index c3bac9ffe..62cce76cd 100644 --- a/docs/Phaser.Graphics.html +++ b/docs/Phaser.Graphics.html @@ -5599,67 +5599,6 @@ This value is updated at the end of updateTransform and takes all parent transfo -
- - - -
- - - -
-

x :Number

- - -
-
- - - -
-

The position of the displayObject on the x axis relative to the local coordinates of the parent.

-
- - - - - -
- - - - - - - -
Inherited From:
-
- - - - - - - - - - - - - -
Source - - pixi/display/DisplayObject.js, line 726 -
- - - - - - -
@@ -5731,7 +5670,7 @@ This value is updated at the end of updateTransform and takes all parent transfo

y :number

+ id="x">x :Number
@@ -5740,7 +5679,7 @@ This value is updated at the end of updateTransform and takes all parent transfo
-

The position of the Game Object on the y axis relative to the local coordinates of the parent.

+

The position of the displayObject on the x axis relative to the local coordinates of the parent.

@@ -5757,7 +5696,7 @@ This value is updated at the end of updateTransform and takes all parent transfo
Inherited From:
@@ -5773,7 +5712,7 @@ This value is updated at the end of updateTransform and takes all parent transfo
Source - - gameobjects/components/PhysicsBody.js, line 124 + pixi/display/DisplayObject.js, line 726
@@ -5843,6 +5782,67 @@ This value is updated at the end of updateTransform and takes all parent transfo + + + + + + + + +
+

y :number

+ + +
+
+ + + +
+

The position of the Game Object on the y axis relative to the local coordinates of the parent.

+
+ + + + + +
+ + + + + + + +
Inherited From:
+
+ + + + + + + + + + + + + +
Source - + gameobjects/components/PhysicsBody.js, line 124 +
+ + + + + + +
@@ -11998,7 +11998,7 @@ Remember if this Game Object has any children you should call update on those to Documentation generated by JSDoc 3.3.0-alpha10 - on Wed Jul 22 2015 14:55:15 GMT+0100 (GMT Daylight Time) using the DocStrap template. + on Fri Jul 24 2015 13:29:49 GMT+0100 (GMT Daylight Time) using the DocStrap template. diff --git a/docs/Phaser.Group.html b/docs/Phaser.Group.html index 47b20c3cf..2ae13fa47 100644 --- a/docs/Phaser.Group.html +++ b/docs/Phaser.Group.html @@ -17993,7 +17993,7 @@ For example to depth sort Sprites for Zelda-style game you might call grou Documentation generated by JSDoc 3.3.0-alpha10 - on Wed Jul 22 2015 14:55:15 GMT+0100 (GMT Daylight Time) using the DocStrap template. + on Fri Jul 24 2015 13:29:49 GMT+0100 (GMT Daylight Time) using the DocStrap template. diff --git a/docs/Phaser.Image.html b/docs/Phaser.Image.html index 5831770d5..8f1b77c38 100644 --- a/docs/Phaser.Image.html +++ b/docs/Phaser.Image.html @@ -11058,7 +11058,7 @@ or the rectangle it references, then you need to update the crop frame by callin Documentation generated by JSDoc 3.3.0-alpha10 - on Wed Jul 22 2015 14:55:16 GMT+0100 (GMT Daylight Time) using the DocStrap template. + on Fri Jul 24 2015 13:29:49 GMT+0100 (GMT Daylight Time) using the DocStrap template. diff --git a/docs/Phaser.ImageCollection.html b/docs/Phaser.ImageCollection.html index e034fe8da..2c3e25c87 100644 --- a/docs/Phaser.ImageCollection.html +++ b/docs/Phaser.ImageCollection.html @@ -2356,7 +2356,7 @@ Use setSpacing to change.

Documentation generated by JSDoc 3.3.0-alpha10 - on Wed Jul 22 2015 14:55:16 GMT+0100 (GMT Daylight Time) using the DocStrap template. + on Fri Jul 24 2015 13:29:50 GMT+0100 (GMT Daylight Time) using the DocStrap template. diff --git a/docs/Phaser.Input.html b/docs/Phaser.Input.html index 2627c5042..8dce9c50f 100644 --- a/docs/Phaser.Input.html +++ b/docs/Phaser.Input.html @@ -6580,7 +6580,7 @@ This is called automatically and should not normally need to be invoked.

Documentation generated by JSDoc 3.3.0-alpha10 - on Wed Jul 22 2015 14:55:16 GMT+0100 (GMT Daylight Time) using the DocStrap template. + on Fri Jul 24 2015 13:29:50 GMT+0100 (GMT Daylight Time) using the DocStrap template. diff --git a/docs/Phaser.InputHandler.html b/docs/Phaser.InputHandler.html index 65b7d8dd5..0a138aeec 100644 --- a/docs/Phaser.InputHandler.html +++ b/docs/Phaser.InputHandler.html @@ -8626,7 +8626,7 @@ This is called by Phaser.Pointer and shouldn't typically be called directly.

Documentation generated by JSDoc 3.3.0-alpha10 - on Wed Jul 22 2015 14:55:16 GMT+0100 (GMT Daylight Time) using the DocStrap template. + on Fri Jul 24 2015 13:29:50 GMT+0100 (GMT Daylight Time) using the DocStrap template. diff --git a/docs/Phaser.Key.html b/docs/Phaser.Key.html index 4de33739f..7c5c4ad82 100644 --- a/docs/Phaser.Key.html +++ b/docs/Phaser.Key.html @@ -3000,7 +3000,7 @@ or was pressed down longer ago than then given duration.

Documentation generated by JSDoc 3.3.0-alpha10 - on Wed Jul 22 2015 14:55:16 GMT+0100 (GMT Daylight Time) using the DocStrap template. + on Fri Jul 24 2015 13:29:50 GMT+0100 (GMT Daylight Time) using the DocStrap template. diff --git a/docs/Phaser.Keyboard.html b/docs/Phaser.Keyboard.html index 2bd96f125..b7d9d686b 100644 --- a/docs/Phaser.Keyboard.html +++ b/docs/Phaser.Keyboard.html @@ -4221,7 +4221,7 @@ or was pressed down longer ago than then given duration.

Documentation generated by JSDoc 3.3.0-alpha10 - on Wed Jul 22 2015 14:55:16 GMT+0100 (GMT Daylight Time) using the DocStrap template. + on Fri Jul 24 2015 13:29:50 GMT+0100 (GMT Daylight Time) using the DocStrap template. diff --git a/docs/Phaser.Line.html b/docs/Phaser.Line.html index e40aa8d91..19a1e498c 100644 --- a/docs/Phaser.Line.html +++ b/docs/Phaser.Line.html @@ -5287,7 +5287,7 @@ This is the outgoing angle based on the angle of this line and the normalAngle o Documentation generated by JSDoc 3.3.0-alpha10 - on Wed Jul 22 2015 14:55:16 GMT+0100 (GMT Daylight Time) using the DocStrap template. + on Fri Jul 24 2015 13:29:50 GMT+0100 (GMT Daylight Time) using the DocStrap template. diff --git a/docs/Phaser.LinkedList.html b/docs/Phaser.LinkedList.html index fedda4d1c..25a3a7690 100644 --- a/docs/Phaser.LinkedList.html +++ b/docs/Phaser.LinkedList.html @@ -1969,7 +1969,7 @@ The function must exist on the member.

Documentation generated by JSDoc 3.3.0-alpha10 - on Wed Jul 22 2015 14:55:16 GMT+0100 (GMT Daylight Time) using the DocStrap template. + on Fri Jul 24 2015 13:29:50 GMT+0100 (GMT Daylight Time) using the DocStrap template. diff --git a/docs/Phaser.Loader.html b/docs/Phaser.Loader.html index 00d0eb411..be8bdc12d 100644 --- a/docs/Phaser.Loader.html +++ b/docs/Phaser.Loader.html @@ -10942,7 +10942,7 @@ If you do not desire this action then provide a URL.

Documentation generated by JSDoc 3.3.0-alpha10 - on Wed Jul 22 2015 14:55:16 GMT+0100 (GMT Daylight Time) using the DocStrap template. + on Fri Jul 24 2015 13:29:50 GMT+0100 (GMT Daylight Time) using the DocStrap template. diff --git a/docs/Phaser.LoaderParser.html b/docs/Phaser.LoaderParser.html index 864ad4a04..3277664df 100644 --- a/docs/Phaser.LoaderParser.html +++ b/docs/Phaser.LoaderParser.html @@ -2020,7 +2020,7 @@ Documentation generated by JSDoc 3.3.0-alpha10 - on Wed Jul 22 2015 14:55:16 GMT+0100 (GMT Daylight Time) using the DocStrap template. + on Fri Jul 24 2015 13:29:50 GMT+0100 (GMT Daylight Time) using the DocStrap template. diff --git a/docs/Phaser.MSPointer.html b/docs/Phaser.MSPointer.html index 2896f4411..fca33db2f 100644 --- a/docs/Phaser.MSPointer.html +++ b/docs/Phaser.MSPointer.html @@ -2361,7 +2361,7 @@ Access this property only inside a Pointer event handler and do not keep referen Documentation generated by JSDoc 3.3.0-alpha10 - on Wed Jul 22 2015 14:55:16 GMT+0100 (GMT Daylight Time) using the DocStrap template. + on Fri Jul 24 2015 13:29:50 GMT+0100 (GMT Daylight Time) using the DocStrap template. diff --git a/docs/Phaser.Math.html b/docs/Phaser.Math.html index 18843b43c..ea0c40e2a 100644 --- a/docs/Phaser.Math.html +++ b/docs/Phaser.Math.html @@ -10825,7 +10825,7 @@ As will 14 snap to 10... but 16 will snap to 15.

Documentation generated by JSDoc 3.3.0-alpha10 - on Wed Jul 22 2015 14:55:16 GMT+0100 (GMT Daylight Time) using the DocStrap template. + on Fri Jul 24 2015 13:29:50 GMT+0100 (GMT Daylight Time) using the DocStrap template. diff --git a/docs/Phaser.Matrix.html b/docs/Phaser.Matrix.html index f1f6abcb4..31977bcd6 100644 --- a/docs/Phaser.Matrix.html +++ b/docs/Phaser.Matrix.html @@ -3960,7 +3960,7 @@ This is the same as Matrix.tx += x.

Documentation generated by JSDoc 3.3.0-alpha10 - on Wed Jul 22 2015 14:55:16 GMT+0100 (GMT Daylight Time) using the DocStrap template. + on Fri Jul 24 2015 13:29:50 GMT+0100 (GMT Daylight Time) using the DocStrap template. diff --git a/docs/Phaser.Mouse.html b/docs/Phaser.Mouse.html index 5ab3778af..d315698c5 100644 --- a/docs/Phaser.Mouse.html +++ b/docs/Phaser.Mouse.html @@ -3855,7 +3855,7 @@ If the browser successfully enters a locked state the event Phaser.Mouse.pointer Documentation generated by JSDoc 3.3.0-alpha10 - on Wed Jul 22 2015 14:55:16 GMT+0100 (GMT Daylight Time) using the DocStrap template. + on Fri Jul 24 2015 13:29:50 GMT+0100 (GMT Daylight Time) using the DocStrap template. diff --git a/docs/Phaser.Net.html b/docs/Phaser.Net.html index 02ce4495b..6c9923d7d 100644 --- a/docs/Phaser.Net.html +++ b/docs/Phaser.Net.html @@ -2011,7 +2011,7 @@ Optionally you can redirect to the new url, or just return it as a string.

Documentation generated by JSDoc 3.3.0-alpha10 - on Wed Jul 22 2015 14:55:16 GMT+0100 (GMT Daylight Time) using the DocStrap template. + on Fri Jul 24 2015 13:29:50 GMT+0100 (GMT Daylight Time) using the DocStrap template. diff --git a/docs/Phaser.Particle.html b/docs/Phaser.Particle.html index fa1f8634c..bb3d68042 100644 --- a/docs/Phaser.Particle.html +++ b/docs/Phaser.Particle.html @@ -3777,6 +3777,68 @@ Setting it is a neat way of optimising the hitTest function that the interaction + + + + +
+ + + +
+

<readonly> inCamera :boolean

+ + +
+
+ + + +
+

Checks if the Game Objects bounds intersect with the Game Camera bounds. +Returns true if they do, otherwise false if fully outside of the Cameras bounds.

+
+ + + + + +
+ + + + + + + +
Inherited From:
+
+ + + + + + + + + + + + + +
Source - + gameobjects/components/AutoCull.js, line 37 +
+ + + + + + +
@@ -3840,68 +3902,6 @@ Setting it is a neat way of optimising the hitTest function that the interaction - - - - -
- - - -
-

<readonly> inCamera :boolean

- - -
-
- - - -
-

Checks if the Game Objects bounds intersect with the Game Camera bounds. -Returns true if they do, otherwise false if fully outside of the Cameras bounds.

-
- - - - - -
- - - - - - - -
Inherited From:
-
- - - - - - - - - - - - - -
Source - - gameobjects/components/AutoCull.js, line 37 -
- - - - - - -
@@ -6191,67 +6191,6 @@ This ability allows you to check any of the matrix values and perform actions su - - - - -
- - - -
-

transformCallbackContext :object

- - -
-
- - - -
-

The context under which transformCallback is called.

-
- - - - - -
- - - - - - - -
Inherited From:
-
- - - - - - - - - - - - - -
Source - - gameobjects/components/ScaleMinMax.js, line 26 -
- - - - - - -
@@ -6313,6 +6252,67 @@ This ability allows you to check any of the matrix values and perform actions su + + + + +
+ + + +
+

transformCallbackContext :object

+ + +
+
+ + + +
+

The context under which transformCallback is called.

+
+ + + + + +
+ + + + + + + +
Inherited From:
+
+ + + + + + + + + + + + + +
Source - + gameobjects/components/ScaleMinMax.js, line 26 +
+ + + + + + +
@@ -6867,67 +6867,6 @@ This value is updated at the end of updateTransform and takes all parent transfo - - - - -
- - - -
-

x :Number

- - -
-
- - - -
-

The position of the displayObject on the x axis relative to the local coordinates of the parent.

-
- - - - - -
- - - - - - - -
Inherited From:
-
- - - - - - - - - - - - - -
Source - - pixi/display/DisplayObject.js, line 726 -
- - - - - - -
@@ -6999,7 +6938,7 @@ This value is updated at the end of updateTransform and takes all parent transfo

y :number

+ id="x">x :Number
@@ -7008,7 +6947,7 @@ This value is updated at the end of updateTransform and takes all parent transfo
-

The position of the Game Object on the y axis relative to the local coordinates of the parent.

+

The position of the displayObject on the x axis relative to the local coordinates of the parent.

@@ -7025,7 +6964,7 @@ This value is updated at the end of updateTransform and takes all parent transfo
Inherited From:
@@ -7041,7 +6980,7 @@ This value is updated at the end of updateTransform and takes all parent transfo
Source - - gameobjects/components/PhysicsBody.js, line 124 + pixi/display/DisplayObject.js, line 726
@@ -7111,6 +7050,67 @@ This value is updated at the end of updateTransform and takes all parent transfo + + + + + + + + +
+

y :number

+ + +
+
+ + + +
+

The position of the Game Object on the y axis relative to the local coordinates of the parent.

+
+ + + + + +
+ + + + + + + +
Inherited From:
+
+ + + + + + + + + + + + + +
Source - + gameobjects/components/PhysicsBody.js, line 124 +
+ + + + + + +
@@ -12785,7 +12785,7 @@ or the rectangle it references, then you need to update the crop frame by callin Documentation generated by JSDoc 3.3.0-alpha10 - on Wed Jul 22 2015 14:55:17 GMT+0100 (GMT Daylight Time) using the DocStrap template. + on Fri Jul 24 2015 13:29:50 GMT+0100 (GMT Daylight Time) using the DocStrap template. diff --git a/docs/Phaser.Particles.Arcade.Emitter.html b/docs/Phaser.Particles.Arcade.Emitter.html index b88e91e10..3a63ea954 100644 --- a/docs/Phaser.Particles.Arcade.Emitter.html +++ b/docs/Phaser.Particles.Arcade.Emitter.html @@ -22542,7 +22542,7 @@ For example to depth sort Sprites for Zelda-style game you might call grou Documentation generated by JSDoc 3.3.0-alpha10 - on Wed Jul 22 2015 14:55:17 GMT+0100 (GMT Daylight Time) using the DocStrap template. + on Fri Jul 24 2015 13:29:51 GMT+0100 (GMT Daylight Time) using the DocStrap template. diff --git a/docs/Phaser.Particles.Arcade.html b/docs/Phaser.Particles.Arcade.html index 042dbc5cd..15ea5a1f1 100644 --- a/docs/Phaser.Particles.Arcade.html +++ b/docs/Phaser.Particles.Arcade.html @@ -1226,7 +1226,7 @@ Documentation generated by JSDoc 3.3.0-alpha10 - on Wed Jul 22 2015 14:55:17 GMT+0100 (GMT Daylight Time) using the DocStrap template. + on Fri Jul 24 2015 13:29:51 GMT+0100 (GMT Daylight Time) using the DocStrap template. diff --git a/docs/Phaser.Particles.html b/docs/Phaser.Particles.html index 103fdd329..6e3646d97 100644 --- a/docs/Phaser.Particles.html +++ b/docs/Phaser.Particles.html @@ -1789,7 +1789,7 @@ Documentation generated by JSDoc 3.3.0-alpha10 - on Wed Jul 22 2015 14:55:17 GMT+0100 (GMT Daylight Time) using the DocStrap template. + on Fri Jul 24 2015 13:29:51 GMT+0100 (GMT Daylight Time) using the DocStrap template. diff --git a/docs/Phaser.Physics.Arcade.Body.html b/docs/Phaser.Physics.Arcade.Body.html index 11a3a1dd6..d9aefab3d 100644 --- a/docs/Phaser.Physics.Arcade.Body.html +++ b/docs/Phaser.Physics.Arcade.Body.html @@ -6433,7 +6433,7 @@ is the position of the Body relative to the top-left of the Sprite.

Documentation generated by JSDoc 3.3.0-alpha10 - on Wed Jul 22 2015 14:55:17 GMT+0100 (GMT Daylight Time) using the DocStrap template. + on Fri Jul 24 2015 13:29:51 GMT+0100 (GMT Daylight Time) using the DocStrap template. diff --git a/docs/Phaser.Physics.Arcade.html b/docs/Phaser.Physics.Arcade.html index 1f425882e..bde8d5d6a 100644 --- a/docs/Phaser.Physics.Arcade.html +++ b/docs/Phaser.Physics.Arcade.html @@ -9141,7 +9141,7 @@ One way to use this is: velocityFromRotation(rotation, 200, sprite.velocity) whi Documentation generated by JSDoc 3.3.0-alpha10 - on Wed Jul 22 2015 14:55:17 GMT+0100 (GMT Daylight Time) using the DocStrap template. + on Fri Jul 24 2015 13:29:51 GMT+0100 (GMT Daylight Time) using the DocStrap template. diff --git a/docs/Phaser.Physics.Arcade.html#TilemapCollision b/docs/Phaser.Physics.Arcade.html#TilemapCollision index 53b5998b3..f4d755411 100644 --- a/docs/Phaser.Physics.Arcade.html#TilemapCollision +++ b/docs/Phaser.Physics.Arcade.html#TilemapCollision @@ -1321,7 +1321,7 @@ Documentation generated by JSDoc 3.3.0-alpha10 - on Wed Jul 22 2015 14:55:17 GMT+0100 (GMT Daylight Time) using the DocStrap template. + on Fri Jul 24 2015 13:29:51 GMT+0100 (GMT Daylight Time) using the DocStrap template. diff --git a/docs/Phaser.Physics.Ninja.AABB.html b/docs/Phaser.Physics.Ninja.AABB.html index 213b9b584..bdba6ecd2 100644 --- a/docs/Phaser.Physics.Ninja.AABB.html +++ b/docs/Phaser.Physics.Ninja.AABB.html @@ -5156,7 +5156,7 @@ Note: This class could be massively optimised and reduced in size. I leave that Documentation generated by JSDoc 3.3.0-alpha10 - on Wed Jul 22 2015 14:55:17 GMT+0100 (GMT Daylight Time) using the DocStrap template. + on Fri Jul 24 2015 13:29:51 GMT+0100 (GMT Daylight Time) using the DocStrap template. diff --git a/docs/Phaser.Physics.Ninja.Body.html b/docs/Phaser.Physics.Ninja.Body.html index a071f483d..31199285f 100644 --- a/docs/Phaser.Physics.Ninja.Body.html +++ b/docs/Phaser.Physics.Ninja.Body.html @@ -4154,7 +4154,7 @@ touching.up = true means the collision happened to the top of this Body for exam Documentation generated by JSDoc 3.3.0-alpha10 - on Wed Jul 22 2015 14:55:17 GMT+0100 (GMT Daylight Time) using the DocStrap template. + on Fri Jul 24 2015 13:29:51 GMT+0100 (GMT Daylight Time) using the DocStrap template. diff --git a/docs/Phaser.Physics.Ninja.Circle.html b/docs/Phaser.Physics.Ninja.Circle.html index 1a21cda98..1602caa64 100644 --- a/docs/Phaser.Physics.Ninja.Circle.html +++ b/docs/Phaser.Physics.Ninja.Circle.html @@ -5362,7 +5362,7 @@ Note: This class could be massively optimised and reduced in size. I leave that Documentation generated by JSDoc 3.3.0-alpha10 - on Wed Jul 22 2015 14:55:17 GMT+0100 (GMT Daylight Time) using the DocStrap template. + on Fri Jul 24 2015 13:29:51 GMT+0100 (GMT Daylight Time) using the DocStrap template. diff --git a/docs/Phaser.Physics.Ninja.Tile.html b/docs/Phaser.Physics.Ninja.Tile.html index 166118411..440826609 100644 --- a/docs/Phaser.Physics.Ninja.Tile.html +++ b/docs/Phaser.Physics.Ninja.Tile.html @@ -3014,7 +3014,7 @@ Also note that as Tiles are primarily used for levels they have gravity disabled Documentation generated by JSDoc 3.3.0-alpha10 - on Wed Jul 22 2015 14:55:17 GMT+0100 (GMT Daylight Time) using the DocStrap template. + on Fri Jul 24 2015 13:29:51 GMT+0100 (GMT Daylight Time) using the DocStrap template. diff --git a/docs/Phaser.Physics.Ninja.html b/docs/Phaser.Physics.Ninja.html index 4798d1734..727277e4e 100644 --- a/docs/Phaser.Physics.Ninja.html +++ b/docs/Phaser.Physics.Ninja.html @@ -4191,7 +4191,7 @@ The second parameter can be an array of objects, of differing types.

Documentation generated by JSDoc 3.3.0-alpha10 - on Wed Jul 22 2015 14:55:17 GMT+0100 (GMT Daylight Time) using the DocStrap template. + on Fri Jul 24 2015 13:29:51 GMT+0100 (GMT Daylight Time) using the DocStrap template. diff --git a/docs/Phaser.Physics.P2.Body.html b/docs/Phaser.Physics.P2.Body.html index 09cbbcc2f..5fecaa603 100644 --- a/docs/Phaser.Physics.P2.Body.html +++ b/docs/Phaser.Physics.P2.Body.html @@ -11873,7 +11873,7 @@ The speed is represented in pixels per second. So a value of 100 would move 100 Documentation generated by JSDoc 3.3.0-alpha10 - on Wed Jul 22 2015 14:55:18 GMT+0100 (GMT Daylight Time) using the DocStrap template. + on Fri Jul 24 2015 13:29:51 GMT+0100 (GMT Daylight Time) using the DocStrap template. diff --git a/docs/Phaser.Physics.P2.BodyDebug.html b/docs/Phaser.Physics.P2.BodyDebug.html index ac5d6ccaf..1f30874d0 100644 --- a/docs/Phaser.Physics.P2.BodyDebug.html +++ b/docs/Phaser.Physics.P2.BodyDebug.html @@ -18298,7 +18298,7 @@ For example to depth sort Sprites for Zelda-style game you might call grou Documentation generated by JSDoc 3.3.0-alpha10 - on Wed Jul 22 2015 14:55:18 GMT+0100 (GMT Daylight Time) using the DocStrap template. + on Fri Jul 24 2015 13:29:52 GMT+0100 (GMT Daylight Time) using the DocStrap template. diff --git a/docs/Phaser.Physics.P2.CollisionGroup.html b/docs/Phaser.Physics.P2.CollisionGroup.html index fce612e84..1ac8f2210 100644 --- a/docs/Phaser.Physics.P2.CollisionGroup.html +++ b/docs/Phaser.Physics.P2.CollisionGroup.html @@ -1321,7 +1321,7 @@ Documentation generated by JSDoc 3.3.0-alpha10 - on Wed Jul 22 2015 14:55:18 GMT+0100 (GMT Daylight Time) using the DocStrap template. + on Fri Jul 24 2015 13:29:52 GMT+0100 (GMT Daylight Time) using the DocStrap template. diff --git a/docs/Phaser.Physics.P2.ContactMaterial.html b/docs/Phaser.Physics.P2.ContactMaterial.html index be8337e0f..a03549681 100644 --- a/docs/Phaser.Physics.P2.ContactMaterial.html +++ b/docs/Phaser.Physics.P2.ContactMaterial.html @@ -1335,7 +1335,7 @@ Documentation generated by JSDoc 3.3.0-alpha10 - on Wed Jul 22 2015 14:55:18 GMT+0100 (GMT Daylight Time) using the DocStrap template. + on Fri Jul 24 2015 13:29:52 GMT+0100 (GMT Daylight Time) using the DocStrap template. diff --git a/docs/Phaser.Physics.P2.DistanceConstraint.html b/docs/Phaser.Physics.P2.DistanceConstraint.html index f732524fd..2e2b40732 100644 --- a/docs/Phaser.Physics.P2.DistanceConstraint.html +++ b/docs/Phaser.Physics.P2.DistanceConstraint.html @@ -1611,7 +1611,7 @@ Documentation generated by JSDoc 3.3.0-alpha10 - on Wed Jul 22 2015 14:55:18 GMT+0100 (GMT Daylight Time) using the DocStrap template. + on Fri Jul 24 2015 13:29:52 GMT+0100 (GMT Daylight Time) using the DocStrap template. diff --git a/docs/Phaser.Physics.P2.FixtureList.html b/docs/Phaser.Physics.P2.FixtureList.html index 0965cd1db..eb49817fc 100644 --- a/docs/Phaser.Physics.P2.FixtureList.html +++ b/docs/Phaser.Physics.P2.FixtureList.html @@ -2434,7 +2434,7 @@ during runtime (to remove parts, set masks, categories & sensor properties)< Documentation generated by JSDoc 3.3.0-alpha10 - on Wed Jul 22 2015 14:55:18 GMT+0100 (GMT Daylight Time) using the DocStrap template. + on Fri Jul 24 2015 13:29:52 GMT+0100 (GMT Daylight Time) using the DocStrap template. diff --git a/docs/Phaser.Physics.P2.GearConstraint.html b/docs/Phaser.Physics.P2.GearConstraint.html index c1ce5204b..041acdd88 100644 --- a/docs/Phaser.Physics.P2.GearConstraint.html +++ b/docs/Phaser.Physics.P2.GearConstraint.html @@ -1541,7 +1541,7 @@ Documentation generated by JSDoc 3.3.0-alpha10 - on Wed Jul 22 2015 14:55:18 GMT+0100 (GMT Daylight Time) using the DocStrap template. + on Fri Jul 24 2015 13:29:52 GMT+0100 (GMT Daylight Time) using the DocStrap template. diff --git a/docs/Phaser.Physics.P2.InversePointProxy.html b/docs/Phaser.Physics.P2.InversePointProxy.html index a115053d3..84661fb1f 100644 --- a/docs/Phaser.Physics.P2.InversePointProxy.html +++ b/docs/Phaser.Physics.P2.InversePointProxy.html @@ -1512,7 +1512,7 @@ Documentation generated by JSDoc 3.3.0-alpha10 - on Wed Jul 22 2015 14:55:18 GMT+0100 (GMT Daylight Time) using the DocStrap template. + on Fri Jul 24 2015 13:29:52 GMT+0100 (GMT Daylight Time) using the DocStrap template. diff --git a/docs/Phaser.Physics.P2.LockConstraint.html b/docs/Phaser.Physics.P2.LockConstraint.html index 707252ad9..68083177f 100644 --- a/docs/Phaser.Physics.P2.LockConstraint.html +++ b/docs/Phaser.Physics.P2.LockConstraint.html @@ -1576,7 +1576,7 @@ Documentation generated by JSDoc 3.3.0-alpha10 - on Wed Jul 22 2015 14:55:18 GMT+0100 (GMT Daylight Time) using the DocStrap template. + on Fri Jul 24 2015 13:29:52 GMT+0100 (GMT Daylight Time) using the DocStrap template. diff --git a/docs/Phaser.Physics.P2.Material.html b/docs/Phaser.Physics.P2.Material.html index 794ed01cd..b010589cb 100644 --- a/docs/Phaser.Physics.P2.Material.html +++ b/docs/Phaser.Physics.P2.Material.html @@ -1322,7 +1322,7 @@ Documentation generated by JSDoc 3.3.0-alpha10 - on Wed Jul 22 2015 14:55:18 GMT+0100 (GMT Daylight Time) using the DocStrap template. + on Fri Jul 24 2015 13:29:52 GMT+0100 (GMT Daylight Time) using the DocStrap template. diff --git a/docs/Phaser.Physics.P2.PointProxy.html b/docs/Phaser.Physics.P2.PointProxy.html index 5818b770b..1452a724c 100644 --- a/docs/Phaser.Physics.P2.PointProxy.html +++ b/docs/Phaser.Physics.P2.PointProxy.html @@ -1512,7 +1512,7 @@ Documentation generated by JSDoc 3.3.0-alpha10 - on Wed Jul 22 2015 14:55:18 GMT+0100 (GMT Daylight Time) using the DocStrap template. + on Fri Jul 24 2015 13:29:52 GMT+0100 (GMT Daylight Time) using the DocStrap template. diff --git a/docs/Phaser.Physics.P2.PrismaticConstraint.html b/docs/Phaser.Physics.P2.PrismaticConstraint.html index b2ccaf740..288302f49 100644 --- a/docs/Phaser.Physics.P2.PrismaticConstraint.html +++ b/docs/Phaser.Physics.P2.PrismaticConstraint.html @@ -1650,7 +1650,7 @@ Documentation generated by JSDoc 3.3.0-alpha10 - on Wed Jul 22 2015 14:55:18 GMT+0100 (GMT Daylight Time) using the DocStrap template. + on Fri Jul 24 2015 13:29:52 GMT+0100 (GMT Daylight Time) using the DocStrap template. diff --git a/docs/Phaser.Physics.P2.RevoluteConstraint.html b/docs/Phaser.Physics.P2.RevoluteConstraint.html index 269110057..aa2c2a043 100644 --- a/docs/Phaser.Physics.P2.RevoluteConstraint.html +++ b/docs/Phaser.Physics.P2.RevoluteConstraint.html @@ -1612,7 +1612,7 @@ The pivot points are given in world (pixel) coordinates.

Documentation generated by JSDoc 3.3.0-alpha10 - on Wed Jul 22 2015 14:55:18 GMT+0100 (GMT Daylight Time) using the DocStrap template. + on Fri Jul 24 2015 13:29:52 GMT+0100 (GMT Daylight Time) using the DocStrap template. diff --git a/docs/Phaser.Physics.P2.RotationalSpring.html b/docs/Phaser.Physics.P2.RotationalSpring.html index d5b830f97..c013a99f3 100644 --- a/docs/Phaser.Physics.P2.RotationalSpring.html +++ b/docs/Phaser.Physics.P2.RotationalSpring.html @@ -1634,7 +1634,7 @@ Documentation generated by JSDoc 3.3.0-alpha10 - on Wed Jul 22 2015 14:55:18 GMT+0100 (GMT Daylight Time) using the DocStrap template. + on Fri Jul 24 2015 13:29:52 GMT+0100 (GMT Daylight Time) using the DocStrap template. diff --git a/docs/Phaser.Physics.P2.Spring.html b/docs/Phaser.Physics.P2.Spring.html index 75a1bdfd1..e0487ec33 100644 --- a/docs/Phaser.Physics.P2.Spring.html +++ b/docs/Phaser.Physics.P2.Spring.html @@ -1784,7 +1784,7 @@ Documentation generated by JSDoc 3.3.0-alpha10 - on Wed Jul 22 2015 14:55:18 GMT+0100 (GMT Daylight Time) using the DocStrap template. + on Fri Jul 24 2015 13:29:52 GMT+0100 (GMT Daylight Time) using the DocStrap template. diff --git a/docs/Phaser.Physics.P2.html b/docs/Phaser.Physics.P2.html index 076824b99..d5f7857ec 100644 --- a/docs/Phaser.Physics.P2.html +++ b/docs/Phaser.Physics.P2.html @@ -13014,7 +13014,7 @@ To fix this you need to adjust the bounds to use its own collision group first B Documentation generated by JSDoc 3.3.0-alpha10 - on Wed Jul 22 2015 14:55:18 GMT+0100 (GMT Daylight Time) using the DocStrap template. + on Fri Jul 24 2015 13:29:51 GMT+0100 (GMT Daylight Time) using the DocStrap template. diff --git a/docs/Phaser.Physics.html b/docs/Phaser.Physics.html index 4e1eb1b4d..5ebcfb0c3 100644 --- a/docs/Phaser.Physics.html +++ b/docs/Phaser.Physics.html @@ -2687,6 +2687,83 @@ individual physics systems enable methods instead of using this gen +
+ + + +
+

<internal> setBoundsToWorld()

+ + +
+
+ + + +
+

Updates the physics bounds to match the world dimensions.

+
+ + + + + + + + + + + +
+ + + + + + + + + +
Internal:
+
    + +
  • This member is internal (protected) and may be modified or removed in the future.
  • + +
+ + + + + + + + + + + +
Source - + physics/Physics.js, line 310 +
+ + + + + + + +
+ + + + + + + + + + +
@@ -2983,83 +3060,6 @@ You can optionally set which 'walls' to create: left, right, top or bottom.

- - - - -
-

<internal> setBoundsToWorld()

- - -
-
- - - -
-

Updates the physics bounds to match the world dimensions.

-
- - - - - - - - - - - -
- - - - - - - - - -
Internal:
-
    - -
  • This member is internal (protected) and may be modified or removed in the future.
  • - -
- - - - - - - - - - - -
Source - - physics/Physics.js, line 310 -
- - - - - - - -
- - - - - - - - - - -
@@ -3585,7 +3585,7 @@ then set Phaser.Physics.p2 (or whichever system you want to recreate) to n Documentation generated by JSDoc 3.3.0-alpha10 - on Wed Jul 22 2015 14:55:17 GMT+0100 (GMT Daylight Time) using the DocStrap template. + on Fri Jul 24 2015 13:29:51 GMT+0100 (GMT Daylight Time) using the DocStrap template. diff --git a/docs/Phaser.Plugin.html b/docs/Phaser.Plugin.html index acf6610dc..dd6afca74 100644 --- a/docs/Phaser.Plugin.html +++ b/docs/Phaser.Plugin.html @@ -2171,7 +2171,7 @@ It is only called if active is set to true.

Documentation generated by JSDoc 3.3.0-alpha10 - on Wed Jul 22 2015 14:55:18 GMT+0100 (GMT Daylight Time) using the DocStrap template. + on Fri Jul 24 2015 13:29:52 GMT+0100 (GMT Daylight Time) using the DocStrap template. diff --git a/docs/Phaser.PluginManager.html b/docs/Phaser.PluginManager.html index efd618b6f..7f3f76f40 100644 --- a/docs/Phaser.PluginManager.html +++ b/docs/Phaser.PluginManager.html @@ -2192,7 +2192,7 @@ It only calls plugins who have active=true.

Documentation generated by JSDoc 3.3.0-alpha10 - on Wed Jul 22 2015 14:55:18 GMT+0100 (GMT Daylight Time) using the DocStrap template. + on Fri Jul 24 2015 13:29:52 GMT+0100 (GMT Daylight Time) using the DocStrap template. diff --git a/docs/Phaser.Point.html b/docs/Phaser.Point.html index ea199dace..4624343f9 100644 --- a/docs/Phaser.Point.html +++ b/docs/Phaser.Point.html @@ -9644,7 +9644,7 @@ If you omit the y value then the x value will be appli Documentation generated by JSDoc 3.3.0-alpha10 - on Wed Jul 22 2015 14:55:19 GMT+0100 (GMT Daylight Time) using the DocStrap template. + on Fri Jul 24 2015 13:29:52 GMT+0100 (GMT Daylight Time) using the DocStrap template. diff --git a/docs/Phaser.Pointer.html b/docs/Phaser.Pointer.html index 162f36245..e2424df39 100644 --- a/docs/Phaser.Pointer.html +++ b/docs/Phaser.Pointer.html @@ -2104,7 +2104,7 @@ If you need to test a specific mouse or pen button then access the buttons direc
Source - - input/Pointer.js, line 1083 + input/Pointer.js, line 1095
@@ -4121,7 +4121,7 @@ button control.

Source - - input/Pointer.js, line 1107 + input/Pointer.js, line 1119
@@ -4229,7 +4229,7 @@ button control.

Source - - input/Pointer.js, line 1123 + input/Pointer.js, line 1135
@@ -4542,7 +4542,7 @@ Click trampolines can only be added to pointers that are currently down.

Source - - input/Pointer.js, line 964 + input/Pointer.js, line 976
@@ -4695,7 +4695,7 @@ If you wish to check if the Pointer was pressed down just once then see the Spri
Source - - input/Pointer.js, line 932 + input/Pointer.js, line 944
@@ -4848,7 +4848,7 @@ If you wish to check if the Pointer was released just once then see the Sprite.e
Source - - input/Pointer.js, line 948 + input/Pointer.js, line 960
@@ -4973,7 +4973,7 @@ If you wish to check if the Pointer was released just once then see the Sprite.e
Source - - input/Pointer.js, line 838 + input/Pointer.js, line 850
@@ -5153,7 +5153,7 @@ If you wish to check if the Pointer was released just once then see the Sprite.e
Source - - input/Pointer.js, line 633 + input/Pointer.js, line 645
@@ -5319,7 +5319,7 @@ If you wish to check if the Pointer was released just once then see the Sprite.e
Source - - input/Pointer.js, line 728 + input/Pointer.js, line 740
@@ -5389,7 +5389,7 @@ If you wish to check if the Pointer was released just once then see the Sprite.e
Source - - input/Pointer.js, line 1038 + input/Pointer.js, line 1050
@@ -5536,7 +5536,7 @@ If you wish to check if the Pointer was released just once then see the Sprite.e
Source - - input/Pointer.js, line 1068 + input/Pointer.js, line 1080
@@ -5655,7 +5655,7 @@ If you wish to check if the Pointer was released just once then see the Sprite.e
Source - - input/Pointer.js, line 517 + input/Pointer.js, line 529
@@ -5780,7 +5780,7 @@ If you wish to check if the Pointer was released just once then see the Sprite.e
Source - - input/Pointer.js, line 851 + input/Pointer.js, line 863
@@ -5850,7 +5850,7 @@ If you wish to check if the Pointer was released just once then see the Sprite.e
Source - - input/Pointer.js, line 583 + input/Pointer.js, line 595
@@ -6026,7 +6026,7 @@ Contains a button bitmask.

Documentation generated by JSDoc 3.3.0-alpha10 - on Wed Jul 22 2015 14:55:19 GMT+0100 (GMT Daylight Time) using the DocStrap template. + on Fri Jul 24 2015 13:29:52 GMT+0100 (GMT Daylight Time) using the DocStrap template. diff --git a/docs/Phaser.Polygon.html b/docs/Phaser.Polygon.html index 2e48d0418..33faafc7f 100644 --- a/docs/Phaser.Polygon.html +++ b/docs/Phaser.Polygon.html @@ -2254,7 +2254,7 @@ This is a deep clone, the resulting copy contains new Phaser.Point objects

Documentation generated by JSDoc 3.3.0-alpha10 - on Wed Jul 22 2015 14:55:19 GMT+0100 (GMT Daylight Time) using the DocStrap template. + on Fri Jul 24 2015 13:29:53 GMT+0100 (GMT Daylight Time) using the DocStrap template. diff --git a/docs/Phaser.QuadTree.html b/docs/Phaser.QuadTree.html index 0649f33dc..0bde69b73 100644 --- a/docs/Phaser.QuadTree.html +++ b/docs/Phaser.QuadTree.html @@ -2997,7 +2997,7 @@ Original version at https://github.com/timohausmann/quadtree-js/

Documentation generated by JSDoc 3.3.0-alpha10 - on Wed Jul 22 2015 14:55:19 GMT+0100 (GMT Daylight Time) using the DocStrap template. + on Fri Jul 24 2015 13:29:53 GMT+0100 (GMT Daylight Time) using the DocStrap template. diff --git a/docs/Phaser.RandomDataGenerator.html b/docs/Phaser.RandomDataGenerator.html index f75d55259..1bfb093b9 100644 --- a/docs/Phaser.RandomDataGenerator.html +++ b/docs/Phaser.RandomDataGenerator.html @@ -2871,7 +2871,7 @@ This method is an alias for RandomDataGenerator.integerInRange.

Documentation generated by JSDoc 3.3.0-alpha10 - on Wed Jul 22 2015 14:55:19 GMT+0100 (GMT Daylight Time) using the DocStrap template. + on Fri Jul 24 2015 13:29:53 GMT+0100 (GMT Daylight Time) using the DocStrap template. diff --git a/docs/Phaser.Rectangle.html b/docs/Phaser.Rectangle.html index 6c90a9ed8..992bc00f0 100644 --- a/docs/Phaser.Rectangle.html +++ b/docs/Phaser.Rectangle.html @@ -8815,7 +8815,7 @@ The x and y positions remain unchanged.

Documentation generated by JSDoc 3.3.0-alpha10 - on Wed Jul 22 2015 14:55:19 GMT+0100 (GMT Daylight Time) using the DocStrap template. + on Fri Jul 24 2015 13:29:53 GMT+0100 (GMT Daylight Time) using the DocStrap template. diff --git a/docs/Phaser.RenderTexture.html b/docs/Phaser.RenderTexture.html index 925d3f7c1..a31873d18 100644 --- a/docs/Phaser.RenderTexture.html +++ b/docs/Phaser.RenderTexture.html @@ -4015,7 +4015,7 @@ pass null, leave it undefined or pass displayObject.worldTran Documentation generated by JSDoc 3.3.0-alpha10 - on Wed Jul 22 2015 14:55:19 GMT+0100 (GMT Daylight Time) using the DocStrap template. + on Fri Jul 24 2015 13:29:53 GMT+0100 (GMT Daylight Time) using the DocStrap template. diff --git a/docs/Phaser.RequestAnimationFrame.html b/docs/Phaser.RequestAnimationFrame.html index f5c374616..5b87d6124 100644 --- a/docs/Phaser.RequestAnimationFrame.html +++ b/docs/Phaser.RequestAnimationFrame.html @@ -1955,7 +1955,7 @@ Documentation generated by JSDoc 3.3.0-alpha10 - on Wed Jul 22 2015 14:55:19 GMT+0100 (GMT Daylight Time) using the DocStrap template. + on Fri Jul 24 2015 13:29:53 GMT+0100 (GMT Daylight Time) using the DocStrap template. diff --git a/docs/Phaser.RetroFont.html b/docs/Phaser.RetroFont.html index 8a6967b0f..b0153e7fe 100644 --- a/docs/Phaser.RetroFont.html +++ b/docs/Phaser.RetroFont.html @@ -7196,7 +7196,7 @@ So if the current offsetY is 8 and you want it to start rendering from y16 you w Documentation generated by JSDoc 3.3.0-alpha10 - on Wed Jul 22 2015 14:55:19 GMT+0100 (GMT Daylight Time) using the DocStrap template. + on Fri Jul 24 2015 13:29:53 GMT+0100 (GMT Daylight Time) using the DocStrap template. diff --git a/docs/Phaser.Rope.html b/docs/Phaser.Rope.html index d91f21f5f..02c043d88 100644 --- a/docs/Phaser.Rope.html +++ b/docs/Phaser.Rope.html @@ -5599,67 +5599,6 @@ This ability allows you to check any of the matrix values and perform actions su - - - - - - - - -
-

transformCallbackContext :object

- - -
-
- - - -
-

The context under which transformCallback is called.

-
- - - - - -
- - - - - - - -
Inherited From:
-
- - - - - - - - - - - - - -
Source - - gameobjects/components/ScaleMinMax.js, line 26 -
- - - - - - -
@@ -5721,6 +5660,67 @@ This ability allows you to check any of the matrix values and perform actions su + + + + +
+ + + +
+

transformCallbackContext :object

+ + +
+
+ + + +
+

The context under which transformCallback is called.

+
+ + + + + +
+ + + + + + + +
Inherited From:
+
+ + + + + + + + + + + + + +
Source - + gameobjects/components/ScaleMinMax.js, line 26 +
+ + + + + + +
@@ -6326,67 +6326,6 @@ This value is updated at the end of updateTransform and takes all parent transfo - - - - -
- - - -
-

x :Number

- - -
-
- - - -
-

The position of the displayObject on the x axis relative to the local coordinates of the parent.

-
- - - - - -
- - - - - - - -
Inherited From:
-
- - - - - - - - - - - - - -
Source - - pixi/display/DisplayObject.js, line 726 -
- - - - - - -
@@ -6448,6 +6387,67 @@ This value is updated at the end of updateTransform and takes all parent transfo + + + + +
+ + + +
+

x :Number

+ + +
+
+ + + +
+

The position of the displayObject on the x axis relative to the local coordinates of the parent.

+
+ + + + + +
+ + + + + + + +
Inherited From:
+
+ + + + + + + + + + + + + +
Source - + pixi/display/DisplayObject.js, line 726 +
+ + + + + + +
@@ -11818,7 +11818,7 @@ or the rectangle it references, then you need to update the crop frame by callin Documentation generated by JSDoc 3.3.0-alpha10 - on Wed Jul 22 2015 14:55:19 GMT+0100 (GMT Daylight Time) using the DocStrap template. + on Fri Jul 24 2015 13:29:53 GMT+0100 (GMT Daylight Time) using the DocStrap template. diff --git a/docs/Phaser.RoundedRectangle.html b/docs/Phaser.RoundedRectangle.html index 1e1649697..0877448fd 100644 --- a/docs/Phaser.RoundedRectangle.html +++ b/docs/Phaser.RoundedRectangle.html @@ -2035,7 +2035,7 @@ radius properties as this RoundedRectangle object.

Documentation generated by JSDoc 3.3.0-alpha10 - on Wed Jul 22 2015 14:55:19 GMT+0100 (GMT Daylight Time) using the DocStrap template. + on Fri Jul 24 2015 13:29:53 GMT+0100 (GMT Daylight Time) using the DocStrap template. diff --git a/docs/Phaser.ScaleManager.html b/docs/Phaser.ScaleManager.html index ecda070a7..85c1ac20d 100644 --- a/docs/Phaser.ScaleManager.html +++ b/docs/Phaser.ScaleManager.html @@ -7178,7 +7178,7 @@ device is reported to support fullscreen mode.

Documentation generated by JSDoc 3.3.0-alpha10 - on Wed Jul 22 2015 14:55:19 GMT+0100 (GMT Daylight Time) using the DocStrap template. + on Fri Jul 24 2015 13:29:53 GMT+0100 (GMT Daylight Time) using the DocStrap template. diff --git a/docs/Phaser.Signal.html b/docs/Phaser.Signal.html index e654ccb25..c9bf32808 100644 --- a/docs/Phaser.Signal.html +++ b/docs/Phaser.Signal.html @@ -2930,7 +2930,7 @@ See active to enable/disable the signal Documentation generated by JSDoc 3.3.0-alpha10 - on Wed Jul 22 2015 14:55:19 GMT+0100 (GMT Daylight Time) using the DocStrap template. + on Fri Jul 24 2015 13:29:53 GMT+0100 (GMT Daylight Time) using the DocStrap template. diff --git a/docs/Phaser.SignalBinding.html b/docs/Phaser.SignalBinding.html index 9551b43c2..69002bb07 100644 --- a/docs/Phaser.SignalBinding.html +++ b/docs/Phaser.SignalBinding.html @@ -2393,7 +2393,7 @@ If binding was added using Signal.addOnce() it will be automaticall Documentation generated by JSDoc 3.3.0-alpha10 - on Wed Jul 22 2015 14:55:19 GMT+0100 (GMT Daylight Time) using the DocStrap template. + on Fri Jul 24 2015 13:29:53 GMT+0100 (GMT Daylight Time) using the DocStrap template. diff --git a/docs/Phaser.SinglePad.html b/docs/Phaser.SinglePad.html index 4207592aa..af74a5bb8 100644 --- a/docs/Phaser.SinglePad.html +++ b/docs/Phaser.SinglePad.html @@ -4080,7 +4080,7 @@ The DeviceButton object can then be polled, have events attached to it, etc.

Documentation generated by JSDoc 3.3.0-alpha10 - on Wed Jul 22 2015 14:55:20 GMT+0100 (GMT Daylight Time) using the DocStrap template. + on Fri Jul 24 2015 13:29:53 GMT+0100 (GMT Daylight Time) using the DocStrap template. diff --git a/docs/Phaser.Sound.html b/docs/Phaser.Sound.html index 54a14d8c2..1656183e6 100644 --- a/docs/Phaser.Sound.html +++ b/docs/Phaser.Sound.html @@ -3615,62 +3615,6 @@ - - - - -
- - - -
-

<readonly> volume :number

- - -
-
- - - -
-

Gets or sets the volume of this sound, a value between 0 and 1.

-
- - - - - -
- - - - - - - - - - - - - - - - - - - -
Source - - sound/Sound.js, line 1103 -
- - - - - - -
@@ -3727,6 +3671,62 @@ + + + + +
+ + + +
+

<readonly> volume :number

+ + +
+
+ + + +
+

Gets or sets the volume of this sound, a value between 0 and 1.

+
+ + + + + +
+ + + + + + + + + + + + + + + + + + + +
Source - + sound/Sound.js, line 1103 +
+ + + + + + +
@@ -6067,7 +6067,7 @@ Doesn't get called if the sound is set to loop or is a section of an Audio Sprit Documentation generated by JSDoc 3.3.0-alpha10 - on Wed Jul 22 2015 14:55:20 GMT+0100 (GMT Daylight Time) using the DocStrap template. + on Fri Jul 24 2015 13:29:53 GMT+0100 (GMT Daylight Time) using the DocStrap template. diff --git a/docs/Phaser.SoundManager.html b/docs/Phaser.SoundManager.html index 423b0649e..ede4be2d6 100644 --- a/docs/Phaser.SoundManager.html +++ b/docs/Phaser.SoundManager.html @@ -3928,7 +3928,7 @@ Required for iOS audio device unlocking. Mostly just used internally.

Documentation generated by JSDoc 3.3.0-alpha10 - on Wed Jul 22 2015 14:55:20 GMT+0100 (GMT Daylight Time) using the DocStrap template. + on Fri Jul 24 2015 13:29:53 GMT+0100 (GMT Daylight Time) using the DocStrap template. diff --git a/docs/Phaser.Sprite.html b/docs/Phaser.Sprite.html index 822b63a1b..8954b6c19 100644 --- a/docs/Phaser.Sprite.html +++ b/docs/Phaser.Sprite.html @@ -6772,67 +6772,6 @@ This value is updated at the end of updateTransform and takes all parent transfo - - - - -
- - - -
-

y :Number

- - -
-
- - - -
-

The position of the displayObject on the y axis relative to the local coordinates of the parent.

-
- - - - - -
- - - - - - - -
Inherited From:
-
- - - - - - - - - - - - - -
Source - - pixi/display/DisplayObject.js, line 744 -
- - - - - - -
@@ -6894,6 +6833,67 @@ This value is updated at the end of updateTransform and takes all parent transfo + + + + +
+ + + +
+

y :Number

+ + +
+
+ + + +
+

The position of the displayObject on the y axis relative to the local coordinates of the parent.

+
+ + + + + +
+ + + + + + + +
Inherited From:
+
+ + + + + + + + + + + + + +
Source - + pixi/display/DisplayObject.js, line 744 +
+ + + + + + +
@@ -12374,7 +12374,7 @@ or the rectangle it references, then you need to update the crop frame by callin Documentation generated by JSDoc 3.3.0-alpha10 - on Wed Jul 22 2015 14:55:20 GMT+0100 (GMT Daylight Time) using the DocStrap template. + on Fri Jul 24 2015 13:29:54 GMT+0100 (GMT Daylight Time) using the DocStrap template. diff --git a/docs/Phaser.SpriteBatch.html b/docs/Phaser.SpriteBatch.html index 3072e13c2..09a3261b0 100644 --- a/docs/Phaser.SpriteBatch.html +++ b/docs/Phaser.SpriteBatch.html @@ -18073,7 +18073,7 @@ For example to depth sort Sprites for Zelda-style game you might call grou Documentation generated by JSDoc 3.3.0-alpha10 - on Wed Jul 22 2015 14:55:20 GMT+0100 (GMT Daylight Time) using the DocStrap template. + on Fri Jul 24 2015 13:29:54 GMT+0100 (GMT Daylight Time) using the DocStrap template. diff --git a/docs/Phaser.Stage.html b/docs/Phaser.Stage.html index 365168a6c..d39ba1967 100644 --- a/docs/Phaser.Stage.html +++ b/docs/Phaser.Stage.html @@ -6441,7 +6441,7 @@ This overrides the Pixi default as we don't need the interactionManager, but do Documentation generated by JSDoc 3.3.0-alpha10 - on Wed Jul 22 2015 14:55:20 GMT+0100 (GMT Daylight Time) using the DocStrap template. + on Fri Jul 24 2015 13:29:54 GMT+0100 (GMT Daylight Time) using the DocStrap template. diff --git a/docs/Phaser.State.html b/docs/Phaser.State.html index 33496cfd8..8273a2e88 100644 --- a/docs/Phaser.State.html +++ b/docs/Phaser.State.html @@ -3149,7 +3149,7 @@ If is called BEFORE Stage, Tweens, Sounds, Input, Physics, Particles and Plugins Documentation generated by JSDoc 3.3.0-alpha10 - on Wed Jul 22 2015 14:55:20 GMT+0100 (GMT Daylight Time) using the DocStrap template. + on Fri Jul 24 2015 13:29:54 GMT+0100 (GMT Daylight Time) using the DocStrap template. diff --git a/docs/Phaser.StateManager.html b/docs/Phaser.StateManager.html index 22f361f3f..a160e6c50 100644 --- a/docs/Phaser.StateManager.html +++ b/docs/Phaser.StateManager.html @@ -4499,7 +4499,7 @@ You don't recover from this without rebuilding the Phaser instance again.

Documentation generated by JSDoc 3.3.0-alpha10 - on Wed Jul 22 2015 14:55:20 GMT+0100 (GMT Daylight Time) using the DocStrap template. + on Fri Jul 24 2015 13:29:54 GMT+0100 (GMT Daylight Time) using the DocStrap template. diff --git a/docs/Phaser.Text.html b/docs/Phaser.Text.html index 10d18beba..08b42c9e2 100644 --- a/docs/Phaser.Text.html +++ b/docs/Phaser.Text.html @@ -8254,67 +8254,6 @@ This ability allows you to check any of the matrix values and perform actions su - - - - -
- - - -
-

transformCallbackContext :object

- - -
-
- - - -
-

The context under which transformCallback is called.

-
- - - - - -
- - - - - - - -
Inherited From:
-
- - - - - - - - - - - - - -
Source - - gameobjects/components/ScaleMinMax.js, line 26 -
- - - - - - -
@@ -8376,6 +8315,67 @@ This ability allows you to check any of the matrix values and perform actions su + + + + +
+ + + +
+

transformCallbackContext :object

+ + +
+
+ + + +
+

The context under which transformCallback is called.

+
+ + + + + +
+ + + + + + + +
Inherited From:
+
+ + + + + + + + + + + + + +
Source - + gameobjects/components/ScaleMinMax.js, line 26 +
+ + + + + + +
@@ -9032,67 +9032,6 @@ This value is updated at the end of updateTransform and takes all parent transfo - - - - -
- - - -
-

x :Number

- - -
-
- - - -
-

The position of the displayObject on the x axis relative to the local coordinates of the parent.

-
- - - - - -
- - - - - - - -
Inherited From:
-
- - - - - - - - - - - - - -
Source - - pixi/display/DisplayObject.js, line 726 -
- - - - - - -
@@ -9164,7 +9103,7 @@ This value is updated at the end of updateTransform and takes all parent transfo

y :number

+ id="x">x :Number
@@ -9173,7 +9112,7 @@ This value is updated at the end of updateTransform and takes all parent transfo
-

The position of the Game Object on the y axis relative to the local coordinates of the parent.

+

The position of the displayObject on the x axis relative to the local coordinates of the parent.

@@ -9190,7 +9129,7 @@ This value is updated at the end of updateTransform and takes all parent transfo
Inherited From:
@@ -9206,7 +9145,7 @@ This value is updated at the end of updateTransform and takes all parent transfo
Source - - gameobjects/components/PhysicsBody.js, line 124 + pixi/display/DisplayObject.js, line 726
@@ -9276,6 +9215,67 @@ This value is updated at the end of updateTransform and takes all parent transfo + + + + + + + + +
+

y :number

+ + +
+
+ + + +
+

The position of the Game Object on the y axis relative to the local coordinates of the parent.

+
+ + + + + +
+ + + + + + + +
Inherited From:
+
+ + + + + + + + + + + + + +
Source - + gameobjects/components/PhysicsBody.js, line 124 +
+ + + + + + +
@@ -16896,7 +16896,7 @@ This is called automatically by Text.updateText.

Documentation generated by JSDoc 3.3.0-alpha10 - on Wed Jul 22 2015 14:55:20 GMT+0100 (GMT Daylight Time) using the DocStrap template. + on Fri Jul 24 2015 13:29:54 GMT+0100 (GMT Daylight Time) using the DocStrap template. diff --git a/docs/Phaser.Tile.html b/docs/Phaser.Tile.html index 2c6462d8a..9a5564132 100644 --- a/docs/Phaser.Tile.html +++ b/docs/Phaser.Tile.html @@ -4429,7 +4429,7 @@ The callback must true true for collision processing to take place.

Documentation generated by JSDoc 3.3.0-alpha10 - on Wed Jul 22 2015 14:55:21 GMT+0100 (GMT Daylight Time) using the DocStrap template. + on Fri Jul 24 2015 13:29:54 GMT+0100 (GMT Daylight Time) using the DocStrap template. diff --git a/docs/Phaser.TileSprite.html b/docs/Phaser.TileSprite.html index 274dc82a4..d9e9f3956 100644 --- a/docs/Phaser.TileSprite.html +++ b/docs/Phaser.TileSprite.html @@ -3353,67 +3353,6 @@ This property is mostly used internally by the physics systems, but is exposed f - - - - -
- - - -
-

height :Number

- - -
-
- - - -
-

The height of the tiling sprite

-
- - - - - -
- - - - - - - -
Inherited From:
-
- - - - - - - - - - - - - -
Source - - pixi/extras/TilingSprite.js, line 27 -
- - - - - - -
@@ -3475,6 +3414,67 @@ This property is mostly used internally by the physics systems, but is exposed f + + + + +
+ + + +
+

height :Number

+ + +
+
+ + + +
+

The height of the tiling sprite

+
+ + + + + +
+ + + + + + + +
Inherited From:
+
+ + + + + + + + + + + + + +
Source - + pixi/extras/TilingSprite.js, line 27 +
+ + + + + + +
@@ -6328,67 +6328,6 @@ This ability allows you to check any of the matrix values and perform actions su - - - - -
- - - -
-

width :Number

- - -
-
- - - -
-

The width of the tiling sprite

-
- - - - - -
- - - - - - - -
Inherited From:
-
- - - - - - - - - - - - - -
Source - - pixi/extras/TilingSprite.js, line 19 -
- - - - - - -
@@ -6450,6 +6389,67 @@ This ability allows you to check any of the matrix values and perform actions su + + + + +
+ + + +
+

width :Number

+ + +
+
+ + + +
+

The width of the tiling sprite

+
+ + + + + +
+ + + + + + + +
Inherited From:
+
+ + + + + + + + + + + + + +
Source - + pixi/extras/TilingSprite.js, line 19 +
+ + + + + + +
@@ -12171,7 +12171,7 @@ Remember if this Game Object has any children you should call update on those to Documentation generated by JSDoc 3.3.0-alpha10 - on Wed Jul 22 2015 14:55:21 GMT+0100 (GMT Daylight Time) using the DocStrap template. + on Fri Jul 24 2015 13:29:55 GMT+0100 (GMT Daylight Time) using the DocStrap template. diff --git a/docs/Phaser.Tilemap.html b/docs/Phaser.Tilemap.html index 2a9299fc1..7c16f4586 100644 --- a/docs/Phaser.Tilemap.html +++ b/docs/Phaser.Tilemap.html @@ -13502,7 +13502,7 @@ If you want to set a callback for a tile at a specific location on the map then Documentation generated by JSDoc 3.3.0-alpha10 - on Wed Jul 22 2015 14:55:21 GMT+0100 (GMT Daylight Time) using the DocStrap template. + on Fri Jul 24 2015 13:29:54 GMT+0100 (GMT Daylight Time) using the DocStrap template. diff --git a/docs/Phaser.TilemapLayer.html b/docs/Phaser.TilemapLayer.html index 70b0cba86..95bfe792f 100644 --- a/docs/Phaser.TilemapLayer.html +++ b/docs/Phaser.TilemapLayer.html @@ -3958,6 +3958,68 @@ Setting it is a neat way of optimising the hitTest function that the interaction + + + + +
+ + + +
+

<readonly> inCamera :boolean

+ + +
+
+ + + +
+

Checks if the Game Objects bounds intersect with the Game Camera bounds. +Returns true if they do, otherwise false if fully outside of the Cameras bounds.

+
+ + + + + +
+ + + + + + + +
Inherited From:
+
+ + + + + + + + + + + + + +
Source - + gameobjects/components/AutoCull.js, line 37 +
+ + + + + + +
@@ -4021,68 +4083,6 @@ Setting it is a neat way of optimising the hitTest function that the interaction - - - - -
- - - -
-

<readonly> inCamera :boolean

- - -
-
- - - -
-

Checks if the Game Objects bounds intersect with the Game Camera bounds. -Returns true if they do, otherwise false if fully outside of the Cameras bounds.

-
- - - - - -
- - - - - - - -
Inherited From:
-
- - - - - - - - - - - - - -
Source - - gameobjects/components/AutoCull.js, line 37 -
- - - - - - -
@@ -6842,67 +6842,6 @@ This ability allows you to check any of the matrix values and perform actions su - - - - -
- - - -
-

transformCallbackContext :object

- - -
-
- - - -
-

The context under which transformCallback is called.

-
- - - - - -
- - - - - - - -
Inherited From:
-
- - - - - - - - - - - - - -
Source - - gameobjects/components/ScaleMinMax.js, line 26 -
- - - - - - -
@@ -6964,6 +6903,67 @@ This ability allows you to check any of the matrix values and perform actions su + + + + +
+ + + +
+

transformCallbackContext :object

+ + +
+
+ + + +
+

The context under which transformCallback is called.

+
+ + + + + +
+ + + + + + + +
Inherited From:
+
+ + + + + + + + + + + + + +
Source - + gameobjects/components/ScaleMinMax.js, line 26 +
+ + + + + + +
@@ -7645,67 +7645,6 @@ This value is updated at the end of updateTransform and takes all parent transfo - - - - -
- - - -
-

y :Number

- - -
-
- - - -
-

The position of the displayObject on the y axis relative to the local coordinates of the parent.

-
- - - - - -
- - - - - - - -
Inherited From:
-
- - - - - - - - - - - - - -
Source - - pixi/display/DisplayObject.js, line 744 -
- - - - - - -
@@ -7767,6 +7706,67 @@ This value is updated at the end of updateTransform and takes all parent transfo + + + + +
+ + + +
+

y :Number

+ + +
+
+ + + +
+

The position of the displayObject on the y axis relative to the local coordinates of the parent.

+
+ + + + + +
+ + + + + + + +
Inherited From:
+
+ + + + + + + + + + + + + +
Source - + pixi/display/DisplayObject.js, line 744 +
+ + + + + + +
@@ -8513,6 +8513,82 @@ in which case the values are duplicated to a local object.

+
+ + + +
+

destroy()

+ + +
+
+ + + +
+

Destroy this DisplayObject. +Removes all references to transformCallbacks, its parent, the stage, filters, bounds, mask and cached Sprites.

+
+ + + + + + + + + + + +
+ + + + + + + +
Inherited From:
+
+ + + + + + + + + + + + + +
Source - + pixi/display/DisplayObject.js, line 242 +
+ + + + + + + +
+ + + + + + + + + + +
@@ -8659,82 +8735,6 @@ and nulls its reference to game, freeing it up for garbage collecti - - - - -
-

destroy()

- - -
-
- - - -
-

Destroy this DisplayObject. -Removes all references to transformCallbacks, its parent, the stage, filters, bounds, mask and cached Sprites.

-
- - - - - - - - - - - -
- - - - - - - -
Inherited From:
-
- - - - - - - - - - - - - -
Source - - pixi/display/DisplayObject.js, line 242 -
- - - - - - - -
- - - - - - - - - - -
@@ -14944,7 +14944,7 @@ or the rectangle it references, then you need to update the crop frame by callin Documentation generated by JSDoc 3.3.0-alpha10 - on Wed Jul 22 2015 14:55:21 GMT+0100 (GMT Daylight Time) using the DocStrap template. + on Fri Jul 24 2015 13:29:54 GMT+0100 (GMT Daylight Time) using the DocStrap template. diff --git a/docs/Phaser.TilemapParser.html b/docs/Phaser.TilemapParser.html index 6cd77b288..c33f05467 100644 --- a/docs/Phaser.TilemapParser.html +++ b/docs/Phaser.TilemapParser.html @@ -2024,7 +2024,7 @@ Documentation generated by JSDoc 3.3.0-alpha10 - on Wed Jul 22 2015 14:55:21 GMT+0100 (GMT Daylight Time) using the DocStrap template. + on Fri Jul 24 2015 13:29:55 GMT+0100 (GMT Daylight Time) using the DocStrap template. diff --git a/docs/Phaser.Tileset.html b/docs/Phaser.Tileset.html index 6e3ed6251..efb61208b 100644 --- a/docs/Phaser.Tileset.html +++ b/docs/Phaser.Tileset.html @@ -2810,7 +2810,7 @@ Use setSpacing to change.

Documentation generated by JSDoc 3.3.0-alpha10 - on Wed Jul 22 2015 14:55:21 GMT+0100 (GMT Daylight Time) using the DocStrap template. + on Fri Jul 24 2015 13:29:55 GMT+0100 (GMT Daylight Time) using the DocStrap template. diff --git a/docs/Phaser.Time.html b/docs/Phaser.Time.html index 0f8b86591..462afaf08 100644 --- a/docs/Phaser.Time.html +++ b/docs/Phaser.Time.html @@ -3623,7 +3623,7 @@ This value is only populated if Time.advancedTiming is enabled.

Documentation generated by JSDoc 3.3.0-alpha10 - on Wed Jul 22 2015 14:55:21 GMT+0100 (GMT Daylight Time) using the DocStrap template. + on Fri Jul 24 2015 13:29:55 GMT+0100 (GMT Daylight Time) using the DocStrap template. diff --git a/docs/Phaser.Timer.html b/docs/Phaser.Timer.html index 89dd8fbc1..14872e5a5 100644 --- a/docs/Phaser.Timer.html +++ b/docs/Phaser.Timer.html @@ -4262,7 +4262,7 @@ The delay is in relation to when the Timer starts, not the time it was added. If Documentation generated by JSDoc 3.3.0-alpha10 - on Wed Jul 22 2015 14:55:21 GMT+0100 (GMT Daylight Time) using the DocStrap template. + on Fri Jul 24 2015 13:29:55 GMT+0100 (GMT Daylight Time) using the DocStrap template. diff --git a/docs/Phaser.TimerEvent.html b/docs/Phaser.TimerEvent.html index d20a93588..ce2e19f08 100644 --- a/docs/Phaser.TimerEvent.html +++ b/docs/Phaser.TimerEvent.html @@ -1995,7 +1995,7 @@ When the event fires it calls a specific callback with the specified arguments.< Documentation generated by JSDoc 3.3.0-alpha10 - on Wed Jul 22 2015 14:55:21 GMT+0100 (GMT Daylight Time) using the DocStrap template. + on Fri Jul 24 2015 13:29:55 GMT+0100 (GMT Daylight Time) using the DocStrap template. diff --git a/docs/Phaser.Touch.html b/docs/Phaser.Touch.html index 6c000805c..89cd56091 100644 --- a/docs/Phaser.Touch.html +++ b/docs/Phaser.Touch.html @@ -3194,7 +3194,7 @@ Doesn't appear to be supported by most browsers on a canvas element yet.

Documentation generated by JSDoc 3.3.0-alpha10 - on Wed Jul 22 2015 14:55:21 GMT+0100 (GMT Daylight Time) using the DocStrap template. + on Fri Jul 24 2015 13:29:55 GMT+0100 (GMT Daylight Time) using the DocStrap template. diff --git a/docs/Phaser.Tween.html b/docs/Phaser.Tween.html index 947c134b9..919e016cc 100644 --- a/docs/Phaser.Tween.html +++ b/docs/Phaser.Tween.html @@ -6359,7 +6359,7 @@ If you have child tweens and pass -1 as the index value it sets the repeatDelay Documentation generated by JSDoc 3.3.0-alpha10 - on Wed Jul 22 2015 14:55:21 GMT+0100 (GMT Daylight Time) using the DocStrap template. + on Fri Jul 24 2015 13:29:55 GMT+0100 (GMT Daylight Time) using the DocStrap template. diff --git a/docs/Phaser.TweenData.html b/docs/Phaser.TweenData.html index 5139cccc7..f9b4d508b 100644 --- a/docs/Phaser.TweenData.html +++ b/docs/Phaser.TweenData.html @@ -3672,7 +3672,7 @@ For example a Sprite with an x coordinate of 100 could be tweened t Documentation generated by JSDoc 3.3.0-alpha10 - on Wed Jul 22 2015 14:55:21 GMT+0100 (GMT Daylight Time) using the DocStrap template. + on Fri Jul 24 2015 13:29:55 GMT+0100 (GMT Daylight Time) using the DocStrap template. diff --git a/docs/Phaser.TweenManager.html b/docs/Phaser.TweenManager.html index 31ffb6081..d7c1d98e7 100644 --- a/docs/Phaser.TweenManager.html +++ b/docs/Phaser.TweenManager.html @@ -2436,7 +2436,7 @@ Please see https://github.com/sole/tween.js for a full list of contributors.

Documentation generated by JSDoc 3.3.0-alpha10 - on Wed Jul 22 2015 14:55:21 GMT+0100 (GMT Daylight Time) using the DocStrap template. + on Fri Jul 24 2015 13:29:55 GMT+0100 (GMT Daylight Time) using the DocStrap template. diff --git a/docs/Phaser.Utils.Debug.html b/docs/Phaser.Utils.Debug.html index 7cffca9af..34ce31e44 100644 --- a/docs/Phaser.Utils.Debug.html +++ b/docs/Phaser.Utils.Debug.html @@ -3012,220 +3012,6 @@ the Box2D engine.

- - - - -
-

geom(object, color, filled)

- - -
-
- - - -
-

Renders a Rectangle.

-
- - - - - - - -
Parameters:
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NameTypeArgumentDefaultDescription
object - - -Phaser.Rectangle -| - -object - - - - - - - - - - - -

The geometry object to render.

color - - -string - - - - - - <optional>
- - - - - -
- -

Color of the debug info to be rendered (format is css color string).

filled - - -boolean - - - - - - <optional>
- - - - - -
- - true - -

Render the objected as a filled (default, true) or a stroked (false)

- - - - - - -
- - - - - - - - - - - - - - - - - - - -
Source - - utils/Debug.js, line 618 -
- - - - - - - -
- - - - - - - - - - -
@@ -3485,6 +3271,220 @@ the Box2D engine.

+ + + + +
+

geom(object, color, filled)

+ + +
+
+ + + +
+

Renders a Rectangle.

+
+ + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeArgumentDefaultDescription
object + + +Phaser.Rectangle +| + +object + + + + + + + + + + + +

The geometry object to render.

color + + +string + + + + + + <optional>
+ + + + + +
+ +

Color of the debug info to be rendered (format is css color string).

filled + + +boolean + + + + + + <optional>
+ + + + + +
+ + true + +

Render the objected as a filled (default, true) or a stroked (false)

+ + + + + + +
+ + + + + + + + + + + + + + + + + + + +
Source - + utils/Debug.js, line 618 +
+ + + + + + + +
+ + + + + + + + + + +
@@ -7354,7 +7354,7 @@ the Box2D engine.

Documentation generated by JSDoc 3.3.0-alpha10 - on Wed Jul 22 2015 14:55:22 GMT+0100 (GMT Daylight Time) using the DocStrap template. + on Fri Jul 24 2015 13:29:55 GMT+0100 (GMT Daylight Time) using the DocStrap template. diff --git a/docs/Phaser.Utils.html b/docs/Phaser.Utils.html index ac86adf6d..e38906627 100644 --- a/docs/Phaser.Utils.html +++ b/docs/Phaser.Utils.html @@ -2828,7 +2828,7 @@ the result is assigned directly.

Documentation generated by JSDoc 3.3.0-alpha10 - on Wed Jul 22 2015 14:55:22 GMT+0100 (GMT Daylight Time) using the DocStrap template. + on Fri Jul 24 2015 13:29:55 GMT+0100 (GMT Daylight Time) using the DocStrap template. diff --git a/docs/Phaser.Video.html b/docs/Phaser.Video.html index 0d3712239..393b65095 100644 --- a/docs/Phaser.Video.html +++ b/docs/Phaser.Video.html @@ -1679,7 +1679,7 @@ If the video isn't yet set this will always return false.

Source - - gameobjects/Video.js, line 1286 + gameobjects/Video.js, line 1314
@@ -1735,7 +1735,7 @@ If the video isn't yet set this will always return false.

Source - - gameobjects/Video.js, line 1143 + gameobjects/Video.js, line 1171
@@ -2129,7 +2129,7 @@ If the video is still touch locked (such as on iOS devices) this call has no eff
Source - - gameobjects/Video.js, line 1183 + gameobjects/Video.js, line 1211
@@ -2185,7 +2185,7 @@ If the video is still touch locked (such as on iOS devices) this call has no eff
Source - - gameobjects/Video.js, line 1263 + gameobjects/Video.js, line 1291
@@ -2241,7 +2241,7 @@ If the video is still touch locked (such as on iOS devices) this call has no eff
Source - - gameobjects/Video.js, line 1317 + gameobjects/Video.js, line 1345
@@ -2932,7 +2932,7 @@ If Phaser has been compiled without BitmapData support this property will always
Source - - gameobjects/Video.js, line 1231 + gameobjects/Video.js, line 1259
@@ -3138,7 +3138,7 @@ This will replace any texture they will currently have set.

Source - - gameobjects/Video.js, line 730 + gameobjects/Video.js, line 758
@@ -3492,7 +3492,7 @@ This will replace any texture they will currently have set.

Source - - gameobjects/Video.js, line 759 + gameobjects/Video.js, line 787
@@ -3696,7 +3696,7 @@ are adopted automatically by the new video.

Source - - gameobjects/Video.js, line 880 + gameobjects/Video.js, line 908
@@ -3767,7 +3767,169 @@ Dispatches the Video.onComplete signal.

Source - - gameobjects/Video.js, line 573 + gameobjects/Video.js, line 601 +
+ + + + + + + + + + + + + + + + + + + + + + + +
+

connectToMediaStream(video, stream) → {Phaser.Video}

+ + +
+
+ + + +
+

Connects to an external media stream for the webcam, rather than using a local one.

+
+ + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDescription
video + + +HTMLVideoElement + + + +

The HTML Video Element that the stream uses.

stream + + +MediaStream + + + +

The Video Stream data.

+ + + + +
Returns:
+
+ + + +
+ +Phaser.Video + + - +
+ +
+

This Video object for method chaining.

+
+ + + +
+ + + +
+ + + + + + + + + + + + + + + + + + + +
Source - + gameobjects/Video.js, line 296
@@ -3907,7 +4069,201 @@ This method is typically called by the Phaser.Loader and Phaser.Cache for you, b
Source - - gameobjects/Video.js, line 465 + gameobjects/Video.js, line 485 +
+ + + + + + + +
+ + + + + + + + + + + +
+ + + +
+

createVideoFromURL(url, autoplay) → {Phaser.Video}

+ + +
+
+ + + +
+

Creates a new Video element from the given URL.

+
+ + + + + + + +
Parameters:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeArgumentDefaultDescription
url + + +string + + + + + + + + + + + +

The URL of the video.

autoplay + + +boolean + + + + + + <optional>
+ + + + + +
+ + false + +

Automatically start the video?

+ + + + +
Returns:
+
+ + + +
+ +Phaser.Video + + - +
+ +
+

This Video object for method chaining.

+
+ + + +
+ + + +
+ + + + + + + + + + + + + + + + + + + +
Source - + gameobjects/Video.js, line 508
@@ -3978,7 +4334,7 @@ If any Sprites are using this Video as their texture it is up to you to manage t
Source - - gameobjects/Video.js, line 1067 + gameobjects/Video.js, line 1095
@@ -4217,7 +4573,7 @@ If any Sprites are using this Video as their texture it is up to you to manage t
Source - - gameobjects/Video.js, line 1001 + gameobjects/Video.js, line 1029
@@ -4415,7 +4771,7 @@ If any Sprites are using this Video as their texture it is up to you to manage t
Source - - gameobjects/Video.js, line 585 + gameobjects/Video.js, line 613
@@ -4486,7 +4842,7 @@ Also removes the autoplay and src attributes and nulls the reference.

Source - - gameobjects/Video.js, line 1037 + gameobjects/Video.js, line 1065
@@ -4558,7 +4914,7 @@ If you wish to suppress this functionality set Video.disableTextureUpload to Source - - gameobjects/Video.js, line 785 + gameobjects/Video.js, line 813 @@ -4629,7 +4985,7 @@ Required for mobile video unlocking. Mostly just used internally.

Source - - gameobjects/Video.js, line 959 + gameobjects/Video.js, line 987
@@ -4869,7 +5225,7 @@ You can listen for this with the onChangeSource signal.

Source - - gameobjects/Video.js, line 314 + gameobjects/Video.js, line 322
@@ -4964,7 +5320,7 @@ call Video.destroy instead.

Source - - gameobjects/Video.js, line 669 + gameobjects/Video.js, line 697
@@ -5036,7 +5392,7 @@ Only one video can be pending unlock at any one time.

Source - - gameobjects/Video.js, line 972 + gameobjects/Video.js, line 1000
@@ -5234,7 +5590,7 @@ Then dispatches the onChangeSource signal.

Source - - gameobjects/Video.js, line 522 + gameobjects/Video.js, line 550
@@ -5283,7 +5639,7 @@ Then dispatches the onChangeSource signal.

Documentation generated by JSDoc 3.3.0-alpha10 - on Wed Jul 22 2015 14:55:22 GMT+0100 (GMT Daylight Time) using the DocStrap template. + on Fri Jul 24 2015 13:29:56 GMT+0100 (GMT Daylight Time) using the DocStrap template. diff --git a/docs/Phaser.World.html b/docs/Phaser.World.html index ff8d36c24..e12499715 100644 --- a/docs/Phaser.World.html +++ b/docs/Phaser.World.html @@ -19394,7 +19394,7 @@ If sprite has a P2 body then the body (sprite.body) should be passed as first pa Documentation generated by JSDoc 3.3.0-alpha10 - on Wed Jul 22 2015 14:55:22 GMT+0100 (GMT Daylight Time) using the DocStrap template. + on Fri Jul 24 2015 13:29:56 GMT+0100 (GMT Daylight Time) using the DocStrap template. diff --git a/docs/Phaser.html b/docs/Phaser.html index 6fdcdf769..9d6dffe98 100644 --- a/docs/Phaser.html +++ b/docs/Phaser.html @@ -2003,7 +2003,7 @@ Documentation generated by JSDoc 3.3.0-alpha10 - on Wed Jul 22 2015 14:55:12 GMT+0100 (GMT Daylight Time) using the DocStrap template. + on Fri Jul 24 2015 13:29:46 GMT+0100 (GMT Daylight Time) using the DocStrap template. diff --git a/docs/classes.list.html b/docs/classes.list.html index a7ec30b1a..15f9fc353 100644 --- a/docs/classes.list.html +++ b/docs/classes.list.html @@ -2662,7 +2662,7 @@ Documentation generated by JSDoc 3.3.0-alpha10 - on Wed Jul 22 2015 14:55:12 GMT+0100 (GMT Daylight Time) using the DocStrap template. + on Fri Jul 24 2015 13:29:46 GMT+0100 (GMT Daylight Time) using the DocStrap template. diff --git a/docs/docs_pixi-jsdoc.js.html b/docs/docs_pixi-jsdoc.js.html index 3bfe60ec7..2a769de85 100644 --- a/docs/docs_pixi-jsdoc.js.html +++ b/docs/docs_pixi-jsdoc.js.html @@ -4341,20 +4341,20 @@ Important for when you don't want to modify the source object by forcing in `com * @method PIXI.BaseTexture#updateSourceImage * @param {String} newSrc - the path of the image * @sourcefile d:\wamp\www\phaser\src\pixi\textures\BaseTexture.js -* @sourceline 179 +* @sourceline 182 */ /** * @description Sets all glTextures to be dirty. * @method PIXI.BaseTexture#dirty * @sourcefile d:\wamp\www\phaser\src\pixi\textures\BaseTexture.js -* @sourceline 192 +* @sourceline 195 */ /** * @description Removes the base texture from the GPU, useful for managing resources on the GPU. Atexture is still 100% usable and will simply be reuploaded if there is a sprite on screen that is using it. * @method PIXI.BaseTexture#unloadFromGPU * @sourcefile d:\wamp\www\phaser\src\pixi\textures\BaseTexture.js -* @sourceline 205 +* @sourceline 208 */ /** * @description Helper function that creates a base texture from the given image url. @@ -4365,7 +4365,7 @@ If the image is not in the base texture cache it will be created and loaded. * @param {Number} scaleMode - See {{#crossLink "PIXI/scaleModes:property"}}PIXI.scaleModes{{/crossLink}} for possible values * @return BaseTexture * @sourcefile d:\wamp\www\phaser\src\pixi\textures\BaseTexture.js -* @sourceline 233 +* @sourceline 236 */ /** * @description Helper function that creates a base texture from the given canvas element. @@ -4374,7 +4374,7 @@ If the image is not in the base texture cache it will be created and loaded. * @param {Number} scaleMode - See {{#crossLink "PIXI/scaleModes:property"}}PIXI.scaleModes{{/crossLink}} for possible values * @return BaseTexture * @sourcefile d:\wamp\www\phaser\src\pixi\textures\BaseTexture.js -* @sourceline 276 +* @sourceline 279 */ /** * @fileoverview @@ -5011,7 +5011,7 @@ this function is taken from Starling Framework as its pretty neat ;) Documentation generated by JSDoc 3.3.0-alpha10 - on Wed Jul 22 2015 14:55:12 GMT+0100 (GMT Daylight Time) using the DocStrap template. + on Fri Jul 24 2015 13:29:45 GMT+0100 (GMT Daylight Time) using the DocStrap template. diff --git a/docs/global.html b/docs/global.html index 8cb8ae2e4..af54d28a6 100644 --- a/docs/global.html +++ b/docs/global.html @@ -4137,7 +4137,7 @@ as well as PIXI.DisplayObject and all deri Documentation generated by JSDoc 3.3.0-alpha10 - on Wed Jul 22 2015 14:55:12 GMT+0100 (GMT Daylight Time) using the DocStrap template. + on Fri Jul 24 2015 13:29:45 GMT+0100 (GMT Daylight Time) using the DocStrap template. diff --git a/docs/index.html b/docs/index.html index 1fc3c8700..80e019119 100644 --- a/docs/index.html +++ b/docs/index.html @@ -1138,10 +1138,10 @@

-

What's new in Phaser 2.4.0

+

What's new in Phaser 2.4.1

-

22nd July 2015

+

24th July 2015

Phaser 2.4 is another huge update. We had to bump the version number from 2.3 directly to 2.4 because of some API adjustments, all of which are fully detailed in the Change Log. While it's true we could have released it over a few smaller point releases, that just isn't how the cookie crumbled this time. Be sure to pay attention to the previous deprecated API calls that have been removed in 2.4.

So although you had to wait for it a couple months more than usual, Phaser 2.4 is quite simply an epic release - there is no two ways about it! Brand new video component? Check. Support for fully boned Creature animations? Check. Brand new Cache and Loader updates? Check. Dynamic sprite and gradient generator? Check. Literally hundreds of updates, enhancements and fixes across the entire codebase? Yup, those too! The Change Log seems to scroll on forever, yet the overall package size continues to come down as we optimise and streamline our code too (this release actually builds smaller than 2.3 did, just 80KB min + gz)

@@ -1150,6 +1150,7 @@

Money stuff aside please enjoy this brand new release. We'll carry on supporting Phaser 2 for the rest of 2015 at least, while development of the Phaser 3 renderer proceeds at a rapid pace too.

Make sure you check out the Phaser web site. We are going to be adding in stacks of new examples and features in the coming weeks.

But that's all for now. I hope you enjoy Phaser 2.4. Happy coding everyone! See you on the forums.

+

Happy coding everyone! See you on the forums.

Cheers,

Rich - @photonstorm

boogie

@@ -1167,11 +1168,11 @@

Install via npm

npm install phaser

CDN

jsDelivr is a "super-fast CDN for developers". Include the following in your html:

-

<script src="//cdn.jsdelivr.net/phaser/2.4.0/phaser.js"></script>

+

<script src="//cdn.jsdelivr.net/phaser/2.4.1/phaser.js"></script>

or the minified version:

-

<script src="//cdn.jsdelivr.net/phaser/2.4.0/phaser.min.js"></script>

+

<script src="//cdn.jsdelivr.net/phaser/2.4.1/phaser.min.js"></script>

cdnjs.com also offers a free CDN service. They have all versions of Phaser and even the custom builds:

-

<script src="https://cdnjs.cloudflare.com/ajax/libs/phaser/2.4.0/phaser.js"></script>

+

<script src="https://cdnjs.cloudflare.com/ajax/libs/phaser/2.4.1/phaser.js"></script>

Phaser Sandbox

If you'd like to try coding in Phaser right now, with nothing more than your web browser then you can head over to the Phaser Sandbox. You'll find Quick Start templates and a user-friendly editor filled with handy code-completion features.

Koding

Want to try Phaser without downloading anything? Clone Phaser in Koding and start working right away in their web based development system.

License

Phaser is released under the MIT License.

@@ -1204,8 +1205,17 @@

Run grunt to perform a default build to the dist folder.

-

Games made with Phaser

Thousands of games have been made in Phaser. From game jam entries to titles for some of the largest entertainment brands in the world. This is just a tiny sample.

-

Game +

Games made with Phaser

Thousands of games have been made in Phaser. From game jam entries to titles by some of the largest entertainment brands in the world. This is just a tiny sample:

+

Game +Game +Game +Game +Game +Game +Game +Game +Game +Game Game Game Game @@ -1213,12 +1223,7 @@ Game Game Game -Game -Game -Game -Game -Game -Game

+Game

Artwork copyright their respective owners.

We add new games to the Phaser site regularly, be sure to send us yours when it's finished!

@@ -1237,8 +1242,20 @@

If you are an exceptional JavaScript developer and would like to join the Phaser 3 development team then let us know. We have a limited budget available to pay towards your time.

-

Change Log

Version 2.4 - "Katar" - 22nd July 2015

-

API Changes

    +

    Change Log

    Version 2.4.1 - "Ionin Spring" - 24th July 2015

    This is a small point release that updates the Creature runtimes and fixes a couple of small cache issues.

    +

    It also modifies the Grunt build scripts so that all third party libs (such as Creature, P2, gl-matrix and PIXI) are now kept well and truly outside of Phaser. They are defined and placed first in the build files. So no more PIXI hiding within the Phaser namespace or UMD patching for Phaser required.

    +

    Updates

      +
    • The Creature Runtimes have been updated to the latest versions and the Phaser.Creature class updated to use them.
    • +
    • GameObjectFactory.creature is a new method to help with quick Creature animation object creation.
    • +
    • Cache.getPixiTexture will now search the image cache if it couldn't find a texture in the PIXI.TextureCache global array, if it finds a matching image in the image cache then it returns a new PIXI.Texture based on it.
    • +
    • Cache.getPixiBaseTexture will now search the image cache if it couldn't find a BaseTexture in the PIXI.BaseTextureCache global array.
    • +
    +

    Bug Fixes

      +
    • Fixed Cache.getKeys to use the _cacheMap (thanks @jamesgroat #1929)
    • +
    • Safari on OSX wouldn't recognise button presses on trackpads (thanks JakeCake)
    • +
    • Cache.removeImage now calls destroy on the image BaseTexture, removing it from the PIXI global caches without throwing a warning.
    • +
    +

    Version 2.4.0 - "Katar" - 22nd July 2015

    API Changes

    • RenderTexture.render now takes a Matrix as its second parameter, not a Point object. This brings it in line with Pixi and allows you to perform much more complex transformations on the object being rendered. If you need to replicate the old behavior please use RenderTexture.renderXY(sprite, point.x, point.y) instead.
    • PIXI.DisplayObject.updateTransform has a new optional parameter parent. If the DisplayObject doesn't have a parent (i.e. it isn't on the display list yet) then in the past updateTransform would fail. This meant you couldn't do things like scale or rotate a Sprite and then draw it to a RenderTexture or BitmapData, as calls to updateTransform would be ignored. The new checks now look to see if the parent parameter is set. If so this takes priority over the actual parent and is used to modify the transform (note that it doesn't reparent the DisplayObject, it merely uses it for the transform.) If there is no parent (explicitly or via the parameter) then it falls back to use Phaser.World as the parent. If it can't reach that then no transform takes place.
    • If Phaser.Sound.noAudio has been set then Phaser.Loader will not load any audio files. No errors are thrown, but all calls to Loader.audio and Loader.audiosprite are silently ignored. noAudio can be set either via the PhaserGlobal global var or is set if the device your game is running on has no audio playback support.
    • @@ -1358,6 +1375,7 @@
    • Cache.getImage has a new argument which lets you return either just the HTML Image element or the entire image cache object, which includes the baseTexture and frame data.
    • Cache.getImage will return a default image if the key isn't given, or a missing image if the key is given but not found in the cache. This means it will always return a valid image and no longer cause Phaser to throw runtime errors deeper down with invalid image objects.
    • AABB vs. AABB collisions now work in Ninja Physics. reportCollisionVsWorld already worked, and contained all of the logic required to resolve a collision once the appropriate vectors had been established. reportCollisionVsBody was refactored to use that function (now generically named reportCollision), and now AABBs can collide properly, including bouncing and friction. reportCollisionVsWorld is now just a wrapper around reportCollision to maintain compatibility (thanks @standardgaussian #1905)
    • +
    • Phaser.Create is a new class that allows you to dynamically generate sprite textures from an array of pixel data, without needing any external files. We'll continue to improve this over the coming releases, but for now please see the new examples showing how to use it.

    Updates

    • TypeScript definitions fixes and updates (thanks @clark-stevenson @isuda @ggarek @jamesgroat)
    • @@ -1574,7 +1592,7 @@ They were flagged as deprecated in Phaser 2.2 or earlier.

      Documentation generated by JSDoc 3.3.0-alpha10 - on Wed Jul 22 2015 14:55:12 GMT+0100 (GMT Daylight Time) using the DocStrap template. + on Fri Jul 24 2015 13:29:46 GMT+0100 (GMT Daylight Time) using the DocStrap template. diff --git a/docs/namespaces.list.html b/docs/namespaces.list.html index 075e66f59..97d38352c 100644 --- a/docs/namespaces.list.html +++ b/docs/namespaces.list.html @@ -2662,7 +2662,7 @@ Documentation generated by JSDoc 3.3.0-alpha10 - on Wed Jul 22 2015 14:55:12 GMT+0100 (GMT Daylight Time) using the DocStrap template. + on Fri Jul 24 2015 13:29:46 GMT+0100 (GMT Daylight Time) using the DocStrap template. diff --git a/docs/pixi-jsdoc.js b/docs/pixi-jsdoc.js index b69306fe0..0e995b8d4 100644 --- a/docs/pixi-jsdoc.js +++ b/docs/pixi-jsdoc.js @@ -3249,20 +3249,20 @@ Important for when you don't want to modify the source object by forcing in `com * @method PIXI.BaseTexture#updateSourceImage * @param {String} newSrc - the path of the image * @sourcefile d:\wamp\www\phaser\src\pixi\textures\BaseTexture.js -* @sourceline 179 +* @sourceline 182 */ /** * @description Sets all glTextures to be dirty. * @method PIXI.BaseTexture#dirty * @sourcefile d:\wamp\www\phaser\src\pixi\textures\BaseTexture.js -* @sourceline 192 +* @sourceline 195 */ /** * @description Removes the base texture from the GPU, useful for managing resources on the GPU. Atexture is still 100% usable and will simply be reuploaded if there is a sprite on screen that is using it. * @method PIXI.BaseTexture#unloadFromGPU * @sourcefile d:\wamp\www\phaser\src\pixi\textures\BaseTexture.js -* @sourceline 205 +* @sourceline 208 */ /** * @description Helper function that creates a base texture from the given image url. @@ -3273,7 +3273,7 @@ If the image is not in the base texture cache it will be created and loaded. * @param {Number} scaleMode - See {{#crossLink "PIXI/scaleModes:property"}}PIXI.scaleModes{{/crossLink}} for possible values * @return BaseTexture * @sourcefile d:\wamp\www\phaser\src\pixi\textures\BaseTexture.js -* @sourceline 233 +* @sourceline 236 */ /** * @description Helper function that creates a base texture from the given canvas element. @@ -3282,7 +3282,7 @@ If the image is not in the base texture cache it will be created and loaded. * @param {Number} scaleMode - See {{#crossLink "PIXI/scaleModes:property"}}PIXI.scaleModes{{/crossLink}} for possible values * @return BaseTexture * @sourcefile d:\wamp\www\phaser\src\pixi\textures\BaseTexture.js -* @sourceline 276 +* @sourceline 279 */ /** * @fileoverview diff --git a/docs/src_Phaser.js.html b/docs/src_Phaser.js.html index 914cb7714..14286e988 100644 --- a/docs/src_Phaser.js.html +++ b/docs/src_Phaser.js.html @@ -1107,7 +1107,7 @@ var Phaser = Phaser || { * @constant * @type {string} */ - VERSION: '2.4.0', + VERSION: '2.4.1', /** * An array of Phaser game instances. @@ -1470,7 +1470,7 @@ var Phaser = Phaser || { Documentation generated by JSDoc 3.3.0-alpha10 - on Wed Jul 22 2015 14:55:11 GMT+0100 (GMT Daylight Time) using the DocStrap template. + on Fri Jul 24 2015 13:29:45 GMT+0100 (GMT Daylight Time) using the DocStrap template. diff --git a/docs/src_animation_Animation.js.html b/docs/src_animation_Animation.js.html index ca2b47fc9..c7cd59515 100644 --- a/docs/src_animation_Animation.js.html +++ b/docs/src_animation_Animation.js.html @@ -1930,7 +1930,7 @@ Phaser.Animation.generateFrameNames = function (prefix, start, stop, suffix, zer Documentation generated by JSDoc 3.3.0-alpha10 - on Wed Jul 22 2015 14:55:11 GMT+0100 (GMT Daylight Time) using the DocStrap template. + on Fri Jul 24 2015 13:29:45 GMT+0100 (GMT Daylight Time) using the DocStrap template. diff --git a/docs/src_animation_AnimationManager.js.html b/docs/src_animation_AnimationManager.js.html index 4555a2dd1..7f01dccff 100644 --- a/docs/src_animation_AnimationManager.js.html +++ b/docs/src_animation_AnimationManager.js.html @@ -1690,7 +1690,7 @@ Object.defineProperty(Phaser.AnimationManager.prototype, 'frameName', { Documentation generated by JSDoc 3.3.0-alpha10 - on Wed Jul 22 2015 14:55:11 GMT+0100 (GMT Daylight Time) using the DocStrap template. + on Fri Jul 24 2015 13:29:45 GMT+0100 (GMT Daylight Time) using the DocStrap template. diff --git a/docs/src_animation_AnimationParser.js.html b/docs/src_animation_AnimationParser.js.html index 57e1b7d0b..8a39cc9de 100644 --- a/docs/src_animation_AnimationParser.js.html +++ b/docs/src_animation_AnimationParser.js.html @@ -1382,7 +1382,7 @@ Phaser.AnimationParser = { Documentation generated by JSDoc 3.3.0-alpha10 - on Wed Jul 22 2015 14:55:11 GMT+0100 (GMT Daylight Time) using the DocStrap template. + on Fri Jul 24 2015 13:29:45 GMT+0100 (GMT Daylight Time) using the DocStrap template. diff --git a/docs/src_animation_Frame.js.html b/docs/src_animation_Frame.js.html index 83009ed8c..3070cd524 100644 --- a/docs/src_animation_Frame.js.html +++ b/docs/src_animation_Frame.js.html @@ -1341,7 +1341,7 @@ Phaser.Frame.prototype.constructor = Phaser.Frame; Documentation generated by JSDoc 3.3.0-alpha10 - on Wed Jul 22 2015 14:55:11 GMT+0100 (GMT Daylight Time) using the DocStrap template. + on Fri Jul 24 2015 13:29:45 GMT+0100 (GMT Daylight Time) using the DocStrap template. diff --git a/docs/src_animation_FrameData.js.html b/docs/src_animation_FrameData.js.html index 932aa2756..b2b1beefc 100644 --- a/docs/src_animation_FrameData.js.html +++ b/docs/src_animation_FrameData.js.html @@ -1377,7 +1377,7 @@ Object.defineProperty(Phaser.FrameData.prototype, "total", { Documentation generated by JSDoc 3.3.0-alpha10 - on Wed Jul 22 2015 14:55:11 GMT+0100 (GMT Daylight Time) using the DocStrap template. + on Fri Jul 24 2015 13:29:45 GMT+0100 (GMT Daylight Time) using the DocStrap template. diff --git a/docs/src_core_Camera.js.html b/docs/src_core_Camera.js.html index e6290e43f..9c2af80c1 100644 --- a/docs/src_core_Camera.js.html +++ b/docs/src_core_Camera.js.html @@ -1623,7 +1623,7 @@ Object.defineProperty(Phaser.Camera.prototype, "height", { Documentation generated by JSDoc 3.3.0-alpha10 - on Wed Jul 22 2015 14:55:11 GMT+0100 (GMT Daylight Time) using the DocStrap template. + on Fri Jul 24 2015 13:29:45 GMT+0100 (GMT Daylight Time) using the DocStrap template. diff --git a/docs/src_core_Create.js.html b/docs/src_core_Create.js.html index b51abcd7f..88b73f92a 100644 --- a/docs/src_core_Create.js.html +++ b/docs/src_core_Create.js.html @@ -1299,7 +1299,7 @@ Phaser.Create.prototype.constructor = Phaser.Create; Documentation generated by JSDoc 3.3.0-alpha10 - on Wed Jul 22 2015 14:55:11 GMT+0100 (GMT Daylight Time) using the DocStrap template. + on Fri Jul 24 2015 13:29:45 GMT+0100 (GMT Daylight Time) using the DocStrap template. diff --git a/docs/src_core_Filter.js.html b/docs/src_core_Filter.js.html index 69b517bb9..2ce6b1f94 100644 --- a/docs/src_core_Filter.js.html +++ b/docs/src_core_Filter.js.html @@ -1301,7 +1301,7 @@ Object.defineProperty(Phaser.Filter.prototype, 'height', { Documentation generated by JSDoc 3.3.0-alpha10 - on Wed Jul 22 2015 14:55:11 GMT+0100 (GMT Daylight Time) using the DocStrap template. + on Fri Jul 24 2015 13:29:45 GMT+0100 (GMT Daylight Time) using the DocStrap template. diff --git a/docs/src_core_FlexGrid.js.html b/docs/src_core_FlexGrid.js.html index e4f4904f0..0d1d6fccf 100644 --- a/docs/src_core_FlexGrid.js.html +++ b/docs/src_core_FlexGrid.js.html @@ -1438,7 +1438,7 @@ Phaser.FlexGrid.prototype.constructor = Phaser.FlexGrid; Documentation generated by JSDoc 3.3.0-alpha10 - on Wed Jul 22 2015 14:55:11 GMT+0100 (GMT Daylight Time) using the DocStrap template. + on Fri Jul 24 2015 13:29:45 GMT+0100 (GMT Daylight Time) using the DocStrap template. diff --git a/docs/src_core_FlexLayer.js.html b/docs/src_core_FlexLayer.js.html index 2f73ef79e..d542c41ce 100644 --- a/docs/src_core_FlexLayer.js.html +++ b/docs/src_core_FlexLayer.js.html @@ -1226,7 +1226,7 @@ Phaser.FlexLayer.prototype.debug = function () { Documentation generated by JSDoc 3.3.0-alpha10 - on Wed Jul 22 2015 14:55:11 GMT+0100 (GMT Daylight Time) using the DocStrap template. + on Fri Jul 24 2015 13:29:45 GMT+0100 (GMT Daylight Time) using the DocStrap template. diff --git a/docs/src_core_Game.js.html b/docs/src_core_Game.js.html index aaf8b518a..45104df9d 100644 --- a/docs/src_core_Game.js.html +++ b/docs/src_core_Game.js.html @@ -2286,7 +2286,7 @@ Object.defineProperty(Phaser.Game.prototype, "paused", { Documentation generated by JSDoc 3.3.0-alpha10 - on Wed Jul 22 2015 14:55:11 GMT+0100 (GMT Daylight Time) using the DocStrap template. + on Fri Jul 24 2015 13:29:45 GMT+0100 (GMT Daylight Time) using the DocStrap template. diff --git a/docs/src_core_Group.js.html b/docs/src_core_Group.js.html index 8b3cf330b..f1f6163bf 100644 --- a/docs/src_core_Group.js.html +++ b/docs/src_core_Group.js.html @@ -3328,7 +3328,7 @@ Object.defineProperty(Phaser.Group.prototype, "angle", { Documentation generated by JSDoc 3.3.0-alpha10 - on Wed Jul 22 2015 14:55:11 GMT+0100 (GMT Daylight Time) using the DocStrap template. + on Fri Jul 24 2015 13:29:45 GMT+0100 (GMT Daylight Time) using the DocStrap template. diff --git a/docs/src_core_Plugin.js.html b/docs/src_core_Plugin.js.html index c5f77b0e3..e46671e24 100644 --- a/docs/src_core_Plugin.js.html +++ b/docs/src_core_Plugin.js.html @@ -1233,7 +1233,7 @@ Phaser.Plugin.prototype.constructor = Phaser.Plugin; Documentation generated by JSDoc 3.3.0-alpha10 - on Wed Jul 22 2015 14:55:11 GMT+0100 (GMT Daylight Time) using the DocStrap template. + on Fri Jul 24 2015 13:29:45 GMT+0100 (GMT Daylight Time) using the DocStrap template. diff --git a/docs/src_core_PluginManager.js.html b/docs/src_core_PluginManager.js.html index 667584740..a5991a1c3 100644 --- a/docs/src_core_PluginManager.js.html +++ b/docs/src_core_PluginManager.js.html @@ -1398,7 +1398,7 @@ Phaser.PluginManager.prototype.constructor = Phaser.PluginManager; Documentation generated by JSDoc 3.3.0-alpha10 - on Wed Jul 22 2015 14:55:11 GMT+0100 (GMT Daylight Time) using the DocStrap template. + on Fri Jul 24 2015 13:29:45 GMT+0100 (GMT Daylight Time) using the DocStrap template. diff --git a/docs/src_core_ScaleManager.js.html b/docs/src_core_ScaleManager.js.html index 39f9d339d..ddf190447 100644 --- a/docs/src_core_ScaleManager.js.html +++ b/docs/src_core_ScaleManager.js.html @@ -3480,7 +3480,7 @@ Object.defineProperty(Phaser.ScaleManager.prototype, "isGameLandscape", { Documentation generated by JSDoc 3.3.0-alpha10 - on Wed Jul 22 2015 14:55:11 GMT+0100 (GMT Daylight Time) using the DocStrap template. + on Fri Jul 24 2015 13:29:45 GMT+0100 (GMT Daylight Time) using the DocStrap template. diff --git a/docs/src_core_Signal.js.html b/docs/src_core_Signal.js.html index e00682df8..bf68d73d3 100644 --- a/docs/src_core_Signal.js.html +++ b/docs/src_core_Signal.js.html @@ -1573,7 +1573,7 @@ Phaser.Signal.prototype.constructor = Phaser.Signal; Documentation generated by JSDoc 3.3.0-alpha10 - on Wed Jul 22 2015 14:55:11 GMT+0100 (GMT Daylight Time) using the DocStrap template. + on Fri Jul 24 2015 13:29:45 GMT+0100 (GMT Daylight Time) using the DocStrap template. diff --git a/docs/src_core_SignalBinding.js.html b/docs/src_core_SignalBinding.js.html index e26efe9b4..8dc8bfed0 100644 --- a/docs/src_core_SignalBinding.js.html +++ b/docs/src_core_SignalBinding.js.html @@ -1310,7 +1310,7 @@ Phaser.SignalBinding.prototype.constructor = Phaser.SignalBinding; Documentation generated by JSDoc 3.3.0-alpha10 - on Wed Jul 22 2015 14:55:11 GMT+0100 (GMT Daylight Time) using the DocStrap template. + on Fri Jul 24 2015 13:29:45 GMT+0100 (GMT Daylight Time) using the DocStrap template. diff --git a/docs/src_core_Stage.js.html b/docs/src_core_Stage.js.html index 625427d4a..126f09b0d 100644 --- a/docs/src_core_Stage.js.html +++ b/docs/src_core_Stage.js.html @@ -1502,7 +1502,7 @@ Object.defineProperty(Phaser.Stage.prototype, "smoothed", { Documentation generated by JSDoc 3.3.0-alpha10 - on Wed Jul 22 2015 14:55:11 GMT+0100 (GMT Daylight Time) using the DocStrap template. + on Fri Jul 24 2015 13:29:45 GMT+0100 (GMT Daylight Time) using the DocStrap template. diff --git a/docs/src_core_State.js.html b/docs/src_core_State.js.html index bbcf4de41..8999d2d08 100644 --- a/docs/src_core_State.js.html +++ b/docs/src_core_State.js.html @@ -1337,7 +1337,7 @@ Phaser.State.prototype.constructor = Phaser.State; Documentation generated by JSDoc 3.3.0-alpha10 - on Wed Jul 22 2015 14:55:11 GMT+0100 (GMT Daylight Time) using the DocStrap template. + on Fri Jul 24 2015 13:29:45 GMT+0100 (GMT Daylight Time) using the DocStrap template. diff --git a/docs/src_core_StateManager.js.html b/docs/src_core_StateManager.js.html index 91e4d77ad..5ad59932f 100644 --- a/docs/src_core_StateManager.js.html +++ b/docs/src_core_StateManager.js.html @@ -1894,7 +1894,7 @@ Object.defineProperty(Phaser.StateManager.prototype, "created", { Documentation generated by JSDoc 3.3.0-alpha10 - on Wed Jul 22 2015 14:55:11 GMT+0100 (GMT Daylight Time) using the DocStrap template. + on Fri Jul 24 2015 13:29:45 GMT+0100 (GMT Daylight Time) using the DocStrap template. diff --git a/docs/src_core_World.js.html b/docs/src_core_World.js.html index 8cb730009..bb56b7fa4 100644 --- a/docs/src_core_World.js.html +++ b/docs/src_core_World.js.html @@ -1473,7 +1473,7 @@ Object.defineProperty(Phaser.World.prototype, "randomY", { Documentation generated by JSDoc 3.3.0-alpha10 - on Wed Jul 22 2015 14:55:12 GMT+0100 (GMT Daylight Time) using the DocStrap template. + on Fri Jul 24 2015 13:29:45 GMT+0100 (GMT Daylight Time) using the DocStrap template. diff --git a/docs/src_gameobjects_BitmapData.js.html b/docs/src_gameobjects_BitmapData.js.html index 2ad1e91c4..92974f505 100644 --- a/docs/src_gameobjects_BitmapData.js.html +++ b/docs/src_gameobjects_BitmapData.js.html @@ -3179,7 +3179,7 @@ Phaser.BitmapData.prototype.constructor = Phaser.BitmapData; Documentation generated by JSDoc 3.3.0-alpha10 - on Wed Jul 22 2015 14:55:11 GMT+0100 (GMT Daylight Time) using the DocStrap template. + on Fri Jul 24 2015 13:29:45 GMT+0100 (GMT Daylight Time) using the DocStrap template. diff --git a/docs/src_gameobjects_BitmapText.js.html b/docs/src_gameobjects_BitmapText.js.html index 9005a5ded..81c28db47 100644 --- a/docs/src_gameobjects_BitmapText.js.html +++ b/docs/src_gameobjects_BitmapText.js.html @@ -1724,7 +1724,7 @@ Object.defineProperty(Phaser.BitmapText.prototype, 'maxWidth', { Documentation generated by JSDoc 3.3.0-alpha10 - on Wed Jul 22 2015 14:55:11 GMT+0100 (GMT Daylight Time) using the DocStrap template. + on Fri Jul 24 2015 13:29:45 GMT+0100 (GMT Daylight Time) using the DocStrap template. diff --git a/docs/src_gameobjects_Button.js.html b/docs/src_gameobjects_Button.js.html index c10b3a073..6ba01ff5f 100644 --- a/docs/src_gameobjects_Button.js.html +++ b/docs/src_gameobjects_Button.js.html @@ -1692,7 +1692,7 @@ Phaser.Button.prototype.onInputUpHandler = function (sprite, pointer, isOver) { Documentation generated by JSDoc 3.3.0-alpha10 - on Wed Jul 22 2015 14:55:11 GMT+0100 (GMT Daylight Time) using the DocStrap template. + on Fri Jul 24 2015 13:29:45 GMT+0100 (GMT Daylight Time) using the DocStrap template. diff --git a/docs/src_gameobjects_Creature.js.html b/docs/src_gameobjects_Creature.js.html index f344f15af..27531668b 100644 --- a/docs/src_gameobjects_Creature.js.html +++ b/docs/src_gameobjects_Creature.js.html @@ -1104,11 +1104,13 @@ * * Note 1: You can only use Phaser.Creature objects in WebGL enabled games. They do not work in Canvas mode games. * -* Note 2: You must use a build of Phaser that includes the Creature runtimes, or have them loaded before your Phaser game boots. +* Note 2: You must use a build of Phaser that includes the CreatureMeshBone.js runtime and gl-matrix.js, or have them +* loaded before your Phaser game boots. * * See the Phaser custom build process for more details. * * By default the Creature runtimes are NOT included in any pre-configured version of Phaser. +* * So you'll need to do `grunt custom` to create a build that includes them. * * @class Phaser.Creature @@ -1123,16 +1125,15 @@ * @extends Phaser.Component.Reset * @constructor * @param {Phaser.Game} game - A reference to the currently running game. -* @param {CreatureManager} manager - A reference to the CreatureManager instance. * @param {number} x - The x coordinate of the Game Object. The coordinate is relative to any parent container this Game Object may be in. * @param {number} y - The y coordinate of the Game Object. The coordinate is relative to any parent container this Game Object may be in. * @param {string|PIXI.Texture} key - The texture used by the Creature Object during rendering. It can be a string which is a reference to the Cache entry, or an instance of a PIXI.Texture. +* @param {string} mesh - The mesh data for the Creature Object. It should be a string which is a reference to the Cache JSON entry. +* @param {string} [animation='default'] - The animation within the mesh data to play. */ -Phaser.Creature = function (game, manager, x, y, key) { +Phaser.Creature = function (game, x, y, key, mesh, animation) { - x = x || 0; - y = y || 0; - key = key || null; + if (animation === undefined) { animation = 'default'; } /** * @property {number} type - The const type of this object. @@ -1140,16 +1141,35 @@ Phaser.Creature = function (game, manager, x, y, key) { */ this.type = Phaser.CREATURE; - /** - * @property {number} timeDelta - How quickly the animation time/playback advances - */ - this.timeDelta = 0.05; + if (!game.cache.checkJSONKey(mesh)) + { + console.warn('Phaser.Creature: Invalid mesh key given. Not found in Phaser.Cache'); + return; + } + + var meshData = game.cache.getJSON(mesh); /** - * @property {CreatureManager} _manager - The CreatureManager + * @property {Creature} _creature - The Creature instance. * @private */ - this._manager = manager; + this._creature = new Creature(meshData); + + /** + * @property {CreatureAnimation} animation - The CreatureAnimation instance. + */ + this.animation = new CreatureAnimation(meshData, animation, this._creature); + + /** + * @property {CreatureManager} manager - The CreatureManager instance for this object. + */ + this.manager = new CreatureManager(this._creature); + + /** + * @property {number} timeDelta - How quickly the animation advances. + * @default + */ + this.timeDelta = 0.05; if (typeof key === 'string') { @@ -1160,13 +1180,69 @@ Phaser.Creature = function (game, manager, x, y, key) { var texture = key; } - CreatureRenderer.call(this, manager, texture); + /** + * @property {PIXI.Texture} texture - The texture the animation is using. + */ + this.texture = texture; + + PIXI.DisplayObjectContainer.call(this); + + this.dirty = true; + this.blendMode = PIXI.blendModes.NORMAL; + + /** + * @property {Phaser.Point} creatureBoundsMin - The minimum bounds point. + * @protected + */ + this.creatureBoundsMin = new Phaser.Point(); + + /** + * @property {Phaser.Point} creatureBoundsMax - The maximum bounds point. + * @protected + */ + this.creatureBoundsMax = new Phaser.Point(); + + var target = this.manager.target_creature; + + /** + * @property {PIXI.Float32Array} vertices - The vertices data. + * @protected + */ + this.vertices = new PIXI.Float32Array(target.total_num_pts * 2); + + /** + * @property {PIXI.Float32Array} uvs - The UV data. + * @protected + */ + this.uvs = new PIXI.Float32Array(target.total_num_pts * 2); + + /** + * @property {PIXI.Uint16Array} indices + * @protected + */ + this.indices = new PIXI.Uint16Array(target.global_indices.length); + + for (var i = 0; i < this.indices.length; i++) + { + this.indices[i] = target.global_indices[i]; + } + + /** + * @property {PIXI.Uint16Array} colors - The vertices colors + * @protected + */ + this.colors = new PIXI.Float32Array([1, 1, 1, 1]); + + this.updateRenderData(target.global_pts, target.global_uvs); + + this.manager.AddAnimation(this.animation); + this.manager.SetActiveAnimationName(animation, false); Phaser.Component.Core.init.call(this, game, x, y); }; -Phaser.Creature.prototype = Object.create(CreatureRenderer.prototype); +Phaser.Creature.prototype = Object.create(PIXI.DisplayObjectContainer.prototype); Phaser.Creature.prototype.constructor = Phaser.Creature; Phaser.Component.Core.install.call(Phaser.Creature.prototype, [ @@ -1188,20 +1264,313 @@ Phaser.Creature.prototype.preUpdateCore = Phaser.Component.Core.preUpdate; * @method Phaser.Creature#preUpdate * @memberof Phaser.Creature */ -Phaser.Creature.prototype.preUpdate = function() { +Phaser.Creature.prototype.preUpdate = function () { if (!this.preUpdateInWorld()) { return false; } - this._manager.Update(this.timeDelta); + this.manager.Update(this.timeDelta); - this.UpdateData(); + this.updateData(); return this.preUpdateCore(); }; + +/** +* +* +* @method Phaser.Creature#_initWebGL +* @memberof Phaser.Creature +* @private +*/ +Phaser.Creature.prototype._initWebGL = function (renderSession) { + + // build the strip! + var gl = renderSession.gl; + + this._vertexBuffer = gl.createBuffer(); + this._indexBuffer = gl.createBuffer(); + this._uvBuffer = gl.createBuffer(); + this._colorBuffer = gl.createBuffer(); + + gl.bindBuffer(gl.ARRAY_BUFFER, this._vertexBuffer); + gl.bufferData(gl.ARRAY_BUFFER, this.vertices, gl.DYNAMIC_DRAW); + + gl.bindBuffer(gl.ARRAY_BUFFER, this._uvBuffer); + gl.bufferData(gl.ARRAY_BUFFER, this.uvs, gl.DYNAMIC_DRAW); + + gl.bindBuffer(gl.ARRAY_BUFFER, this._colorBuffer); + gl.bufferData(gl.ARRAY_BUFFER, this.colors, gl.STATIC_DRAW); + + gl.bindBuffer(gl.ELEMENT_ARRAY_BUFFER, this._indexBuffer); + gl.bufferData(gl.ELEMENT_ARRAY_BUFFER, this.indices, gl.STATIC_DRAW); + +}; + +/** +* @method Phaser.Creature#_renderWebGL +* @memberof Phaser.Creature +* @private +*/ +Phaser.Creature.prototype._renderWebGL = function (renderSession) { + + // If the sprite is not visible or the alpha is 0 then no need to render this element + if (!this.visible || this.alpha <= 0) + { + return; + } + + renderSession.spriteBatch.stop(); + + // init! init! + if (!this._vertexBuffer) + { + this._initWebGL(renderSession); + } + + renderSession.shaderManager.setShader(renderSession.shaderManager.stripShader); + + this._renderCreature(renderSession); + + renderSession.spriteBatch.start(); + +}; + +/** +* @method Phaser.Creature#_renderCreature +* @memberof Phaser.Creature +* @private +*/ +Phaser.Creature.prototype._renderCreature = function (renderSession) { + + var gl = renderSession.gl; + + var projection = renderSession.projection; + var offset = renderSession.offset; + var shader = renderSession.shaderManager.stripShader; + + renderSession.blendModeManager.setBlendMode(this.blendMode); + + // Set uniforms + gl.uniformMatrix3fv(shader.translationMatrix, false, this.worldTransform.toArray(true)); + gl.uniform2f(shader.projectionVector, projection.x, -projection.y); + gl.uniform2f(shader.offsetVector, -offset.x, -offset.y); + gl.uniform1f(shader.alpha, this.worldAlpha); + + if (!this.dirty) + { + gl.bindBuffer(gl.ARRAY_BUFFER, this._vertexBuffer); + gl.bufferSubData(gl.ARRAY_BUFFER, 0, this.vertices); + gl.vertexAttribPointer(shader.aVertexPosition, 2, gl.FLOAT, false, 0, 0); + + // Update the uvs + gl.bindBuffer(gl.ARRAY_BUFFER, this._uvBuffer); + gl.vertexAttribPointer(shader.aTextureCoord, 2, gl.FLOAT, false, 0, 0); + + gl.activeTexture(gl.TEXTURE0); + + // Check if a texture is dirty.. + if (this.texture.baseTexture._dirty[gl.id]) + { + renderSession.renderer.updateTexture(this.texture.baseTexture); + } + else + { + // Bind the current texture + gl.bindTexture(gl.TEXTURE_2D, this.texture.baseTexture._glTextures[gl.id]); + } + + // Don't need to upload! + gl.bindBuffer(gl.ELEMENT_ARRAY_BUFFER, this._indexBuffer); + } + else + { + this.dirty = false; + + gl.bindBuffer(gl.ARRAY_BUFFER, this._vertexBuffer); + gl.bufferData(gl.ARRAY_BUFFER, this.vertices, gl.DYNAMIC_DRAW); + gl.vertexAttribPointer(shader.aVertexPosition, 2, gl.FLOAT, false, 0, 0); + + // Update the uvs + gl.bindBuffer(gl.ARRAY_BUFFER, this._uvBuffer); + gl.bufferData(gl.ARRAY_BUFFER, this.uvs, gl.DYNAMIC_DRAW); + gl.vertexAttribPointer(shader.aTextureCoord, 2, gl.FLOAT, false, 0, 0); + + gl.activeTexture(gl.TEXTURE0); + + // Check if a texture is dirty + if (this.texture.baseTexture._dirty[gl.id]) + { + renderSession.renderer.updateTexture(this.texture.baseTexture); + } + else + { + gl.bindTexture(gl.TEXTURE_2D, this.texture.baseTexture._glTextures[gl.id]); + } + + // Don't need to upload! + gl.bindBuffer(gl.ELEMENT_ARRAY_BUFFER, this._indexBuffer); + gl.bufferData(gl.ELEMENT_ARRAY_BUFFER, this.indices, gl.STATIC_DRAW); + } + + gl.drawElements(gl.TRIANGLES, this.indices.length, gl.UNSIGNED_SHORT, 0); + +}; + +/** +* @method Phaser.Creature#updateCreatureBounds +* @memberof Phaser.Creature +* @private +*/ +Phaser.Creature.prototype.updateCreatureBounds = function () { + + // Update bounds based off world transform matrix + var target = this.manager.target_creature; + + target.ComputeBoundaryMinMax(); + + this.creatureBoundsMin.set(target.boundary_min[0], -target.boundary_min[1]); + this.creatureBoundsMax.set(target.boundary_max[0], -target.boundary_max[1]); + + this.worldTransform.apply(this.creatureBoundsMin, this.creatureBoundsMin); + this.worldTransform.apply(this.creatureBoundsMax, this.creatureBoundsMax); + +}; + +/** +* @method Phaser.Creature#updateData +* @memberof Phaser.Creature +* @private +*/ +Phaser.Creature.prototype.updateData = function () { + + var target = this.manager.target_creature; + + var read_pts = target.render_pts; + var read_uvs = target.global_uvs; + + this.updateRenderData(read_pts, read_uvs); + this.updateCreatureBounds(); + + this.dirty = true; + +}; + +/** +* @method Phaser.Creature#updateRenderData +* @memberof Phaser.Creature +* @private +*/ +Phaser.Creature.prototype.updateRenderData = function (verts, uvs) { + + var target = this.manager.target_creature; + + var pt_index = 0; + var uv_index = 0; + + var write_pt_index = 0; + + for (var i = 0; i < target.total_num_pts; i++) + { + this.vertices[write_pt_index] = verts[pt_index]; + this.vertices[write_pt_index + 1] = -verts[pt_index + 1]; + + this.uvs[uv_index] = uvs[uv_index]; + this.uvs[uv_index + 1] = uvs[uv_index + 1]; + + pt_index += 3; + uv_index += 2; + + write_pt_index += 2; + } + +}; + +/** +* Sets the Animation this Creature object will play, as defined in the mesh data. +* +* @method Phaser.Creature#setAnimation +* @memberof Phaser.Creature +* @param {string} key - The key of the animation to set, as defined in the mesh data. +*/ +Phaser.Creature.prototype.setAnimation = function (key) { + + this.manager.SetActiveAnimationName(key, true); + +}; + +/** +* Plays the currently set animation. +* +* @method Phaser.Creature#play +* @memberof Phaser.Creature +* @param {boolean} [loop=false] - Should the animation loop? +*/ +Phaser.Creature.prototype.play = function (loop) { + + if (loop === undefined) { loop = false; } + + this.loop = loop; + + this.manager.SetIsPlaying(true); + this.manager.RunAtTime(0); + +}; + +/** +* Stops the currently playing animation. +* +* @method Phaser.Creature#stop +* @memberof Phaser.Creature +*/ +Phaser.Creature.prototype.stop = function () { + + this.manager.SetIsPlaying(false); + +}; + +/** +* @name Phaser.Creature#isPlaying +* @property {boolean} isPlaying - Is the _current_ animation playing? +*/ +Object.defineProperty(Phaser.Creature.prototype, 'isPlaying', { + + get: function() { + + return this.manager.GetIsPlaying(); + + }, + + set: function(value) { + + this.manager.SetIsPlaying(value); + + } + +}); + +/** +* @name Phaser.Creature#loop +* @property {boolean} loop - Should the _current_ animation loop or not? +*/ +Object.defineProperty(Phaser.Creature.prototype, 'loop', { + + get: function() { + + return this.manager.should_loop; + + }, + + set: function(value) { + + this.manager.SetShouldLoop(value); + + } + +}); @@ -1223,7 +1592,7 @@ Phaser.Creature.prototype.preUpdate = function() { Documentation generated by JSDoc 3.3.0-alpha10 - on Wed Jul 22 2015 14:55:11 GMT+0100 (GMT Daylight Time) using the DocStrap template. + on Fri Jul 24 2015 13:29:45 GMT+0100 (GMT Daylight Time) using the DocStrap template. diff --git a/docs/src_gameobjects_GameObjectCreator.js.html b/docs/src_gameobjects_GameObjectCreator.js.html index db1fe5d99..2d31c03fe 100644 --- a/docs/src_gameobjects_GameObjectCreator.js.html +++ b/docs/src_gameobjects_GameObjectCreator.js.html @@ -1540,7 +1540,7 @@ Phaser.GameObjectCreator.prototype.constructor = Phaser.GameObjectCreator; Documentation generated by JSDoc 3.3.0-alpha10 - on Wed Jul 22 2015 14:55:11 GMT+0100 (GMT Daylight Time) using the DocStrap template. + on Fri Jul 24 2015 13:29:45 GMT+0100 (GMT Daylight Time) using the DocStrap template. diff --git a/docs/src_gameobjects_GameObjectFactory.js.html b/docs/src_gameobjects_GameObjectFactory.js.html index b69000fe9..5c5c130ba 100644 --- a/docs/src_gameobjects_GameObjectFactory.js.html +++ b/docs/src_gameobjects_GameObjectFactory.js.html @@ -1184,6 +1184,39 @@ Phaser.GameObjectFactory.prototype = { }, + /** + * Create a new Creature Animation object. + * + * Creature is a custom Game Object used in conjunction with the Creature Runtime libraries by Kestrel Moon Studios. + * + * It allows you to display animated Game Objects that were created with the [Creature Automated Animation Tool](http://www.kestrelmoon.com/creature/). + * + * Note 1: You can only use Phaser.Creature objects in WebGL enabled games. They do not work in Canvas mode games. + * + * Note 2: You must use a build of Phaser that includes the CreatureMeshBone.js runtime and gl-matrix.js, or have them + * loaded before your Phaser game boots. + * + * See the Phaser custom build process for more details. + * + * @method Phaser.GameObjectFactory#creature + * @param {number} [x=0] - The x coordinate of the creature. The coordinate is relative to any parent container this creature may be in. + * @param {number} [y=0] - The y coordinate of the creature. The coordinate is relative to any parent container this creature may be in. + * @param {string|PIXI.Texture} [key] - The image used as a texture by this creature object during rendering. If a string Phaser will get for an entry in the Image Cache. Or it can be an instance of a PIXI.Texture. + * @param {Phaser.Group} [group] - Optional Group to add the object to. If not specified it will be added to the World group. + * @returns {Phaser.Creature} The newly created Sprite object. + */ + creature: function (x, y, key, mesh, group) { + + if (group === undefined) { group = this.world; } + + var obj = new Phaser.Creature(this.game, x, y, key, mesh); + + group.add(obj); + + return obj; + + }, + /** * Create a tween on a specific object. * @@ -1640,7 +1673,7 @@ Phaser.GameObjectFactory.prototype.constructor = Phaser.GameObjectFactory; Documentation generated by JSDoc 3.3.0-alpha10 - on Wed Jul 22 2015 14:55:11 GMT+0100 (GMT Daylight Time) using the DocStrap template. + on Fri Jul 24 2015 13:29:45 GMT+0100 (GMT Daylight Time) using the DocStrap template. diff --git a/docs/src_gameobjects_Graphics.js.html b/docs/src_gameobjects_Graphics.js.html index 64645a332..01dbffd1f 100644 --- a/docs/src_gameobjects_Graphics.js.html +++ b/docs/src_gameobjects_Graphics.js.html @@ -1320,7 +1320,7 @@ Phaser.Graphics.prototype.drawTriangles = function(vertices, indices, cull) { Documentation generated by JSDoc 3.3.0-alpha10 - on Wed Jul 22 2015 14:55:11 GMT+0100 (GMT Daylight Time) using the DocStrap template. + on Fri Jul 24 2015 13:29:45 GMT+0100 (GMT Daylight Time) using the DocStrap template. diff --git a/docs/src_gameobjects_Image.js.html b/docs/src_gameobjects_Image.js.html index 7d2cb8873..d95e3ba92 100644 --- a/docs/src_gameobjects_Image.js.html +++ b/docs/src_gameobjects_Image.js.html @@ -1203,7 +1203,7 @@ Phaser.Image.prototype.preUpdate = function() { Documentation generated by JSDoc 3.3.0-alpha10 - on Wed Jul 22 2015 14:55:11 GMT+0100 (GMT Daylight Time) using the DocStrap template. + on Fri Jul 24 2015 13:29:45 GMT+0100 (GMT Daylight Time) using the DocStrap template. diff --git a/docs/src_gameobjects_Particle.js.html b/docs/src_gameobjects_Particle.js.html index 4413d9550..33540e640 100644 --- a/docs/src_gameobjects_Particle.js.html +++ b/docs/src_gameobjects_Particle.js.html @@ -1276,7 +1276,7 @@ Phaser.Particle.prototype.reset = function(x, y, health) { Documentation generated by JSDoc 3.3.0-alpha10 - on Wed Jul 22 2015 14:55:11 GMT+0100 (GMT Daylight Time) using the DocStrap template. + on Fri Jul 24 2015 13:29:45 GMT+0100 (GMT Daylight Time) using the DocStrap template. diff --git a/docs/src_gameobjects_RenderTexture.js.html b/docs/src_gameobjects_RenderTexture.js.html index c4438d209..13d1d2664 100644 --- a/docs/src_gameobjects_RenderTexture.js.html +++ b/docs/src_gameobjects_RenderTexture.js.html @@ -1264,7 +1264,7 @@ Phaser.RenderTexture.prototype.render = function (displayObject, matrix, clear) Documentation generated by JSDoc 3.3.0-alpha10 - on Wed Jul 22 2015 14:55:11 GMT+0100 (GMT Daylight Time) using the DocStrap template. + on Fri Jul 24 2015 13:29:45 GMT+0100 (GMT Daylight Time) using the DocStrap template. diff --git a/docs/src_gameobjects_RetroFont.js.html b/docs/src_gameobjects_RetroFont.js.html index b1434da68..b60bf9dff 100644 --- a/docs/src_gameobjects_RetroFont.js.html +++ b/docs/src_gameobjects_RetroFont.js.html @@ -1715,7 +1715,7 @@ Object.defineProperty(Phaser.RetroFont.prototype, "smoothed", { Documentation generated by JSDoc 3.3.0-alpha10 - on Wed Jul 22 2015 14:55:11 GMT+0100 (GMT Daylight Time) using the DocStrap template. + on Fri Jul 24 2015 13:29:45 GMT+0100 (GMT Daylight Time) using the DocStrap template. diff --git a/docs/src_gameobjects_Rope.js.html b/docs/src_gameobjects_Rope.js.html index eb2ff0569..3df8204bc 100644 --- a/docs/src_gameobjects_Rope.js.html +++ b/docs/src_gameobjects_Rope.js.html @@ -1339,7 +1339,7 @@ Object.defineProperty(Phaser.Rope.prototype, "segments", { Documentation generated by JSDoc 3.3.0-alpha10 - on Wed Jul 22 2015 14:55:11 GMT+0100 (GMT Daylight Time) using the DocStrap template. + on Fri Jul 24 2015 13:29:45 GMT+0100 (GMT Daylight Time) using the DocStrap template. diff --git a/docs/src_gameobjects_Sprite.js.html b/docs/src_gameobjects_Sprite.js.html index e4a4a2086..b4386baa7 100644 --- a/docs/src_gameobjects_Sprite.js.html +++ b/docs/src_gameobjects_Sprite.js.html @@ -1227,7 +1227,7 @@ Phaser.Sprite.prototype.preUpdate = function() { Documentation generated by JSDoc 3.3.0-alpha10 - on Wed Jul 22 2015 14:55:11 GMT+0100 (GMT Daylight Time) using the DocStrap template. + on Fri Jul 24 2015 13:29:45 GMT+0100 (GMT Daylight Time) using the DocStrap template. diff --git a/docs/src_gameobjects_SpriteBatch.js.html b/docs/src_gameobjects_SpriteBatch.js.html index 653ceda3a..25fc34dbd 100644 --- a/docs/src_gameobjects_SpriteBatch.js.html +++ b/docs/src_gameobjects_SpriteBatch.js.html @@ -1152,7 +1152,7 @@ Phaser.SpriteBatch.prototype.constructor = Phaser.SpriteBatch; Documentation generated by JSDoc 3.3.0-alpha10 - on Wed Jul 22 2015 14:55:11 GMT+0100 (GMT Daylight Time) using the DocStrap template. + on Fri Jul 24 2015 13:29:45 GMT+0100 (GMT Daylight Time) using the DocStrap template. diff --git a/docs/src_gameobjects_Text.js.html b/docs/src_gameobjects_Text.js.html index c74ddc037..910467588 100644 --- a/docs/src_gameobjects_Text.js.html +++ b/docs/src_gameobjects_Text.js.html @@ -2995,7 +2995,7 @@ Phaser.Text.fontPropertiesContext = Phaser.Text.fontPropertiesCanvas.getContext( Documentation generated by JSDoc 3.3.0-alpha10 - on Wed Jul 22 2015 14:55:11 GMT+0100 (GMT Daylight Time) using the DocStrap template. + on Fri Jul 24 2015 13:29:45 GMT+0100 (GMT Daylight Time) using the DocStrap template. diff --git a/docs/src_gameobjects_TileSprite.js.html b/docs/src_gameobjects_TileSprite.js.html index 5e9692fc0..3473981de 100644 --- a/docs/src_gameobjects_TileSprite.js.html +++ b/docs/src_gameobjects_TileSprite.js.html @@ -1325,7 +1325,7 @@ Phaser.TileSprite.prototype.reset = function(x, y) { Documentation generated by JSDoc 3.3.0-alpha10 - on Wed Jul 22 2015 14:55:12 GMT+0100 (GMT Daylight Time) using the DocStrap template. + on Fri Jul 24 2015 13:29:45 GMT+0100 (GMT Daylight Time) using the DocStrap template. diff --git a/docs/src_gameobjects_Video.js.html b/docs/src_gameobjects_Video.js.html index b710571d2..7ef3ade73 100644 --- a/docs/src_gameobjects_Video.js.html +++ b/docs/src_gameobjects_Video.js.html @@ -1385,6 +1385,14 @@ Phaser.Video = function (game, key, url) { Phaser.Video.prototype = { + /** + * Connects to an external media stream for the webcam, rather than using a local one. + * + * @method Phaser.Video#connectToMediaStream + * @param {HTMLVideoElement} video - The HTML Video Element that the stream uses. + * @param {MediaStream} stream - The Video Stream data. + * @return {Phaser.Video} This Video object for method chaining. + */ connectToMediaStream: function (video, stream) { if (video && stream) @@ -1474,6 +1482,10 @@ Phaser.Video.prototype = { }, + /** + * @method Phaser.Video#getUserMediaTimeout + * @private + */ getUserMediaTimeout: function () { clearTimeout(this._timeOutID); @@ -1482,6 +1494,10 @@ Phaser.Video.prototype = { }, + /** + * @method Phaser.Video#getUserMediaError + * @private + */ getUserMediaError: function (event) { clearTimeout(this._timeOutID); @@ -1490,6 +1506,10 @@ Phaser.Video.prototype = { }, + /** + * @method Phaser.Video#getUserMediaSuccess + * @private + */ getUserMediaSuccess: function (stream) { clearTimeout(this._timeOutID); @@ -1577,6 +1597,14 @@ Phaser.Video.prototype = { }, + /** + * Creates a new Video element from the given URL. + * + * @method Phaser.Video#createVideoFromURL + * @param {string} url - The URL of the video. + * @param {boolean} [autoplay=false] - Automatically start the video? + * @return {Phaser.Video} This Video object for method chaining. + */ createVideoFromURL: function (url, autoplay) { if (autoplay === undefined) { autoplay = false; } @@ -2443,7 +2471,7 @@ Phaser.Video.prototype.constructor = Phaser.Video; Documentation generated by JSDoc 3.3.0-alpha10 - on Wed Jul 22 2015 14:55:12 GMT+0100 (GMT Daylight Time) using the DocStrap template. + on Fri Jul 24 2015 13:29:45 GMT+0100 (GMT Daylight Time) using the DocStrap template. diff --git a/docs/src_gameobjects_components_Angle.js.html b/docs/src_gameobjects_components_Angle.js.html index 71bd3f22e..0254352b9 100644 --- a/docs/src_gameobjects_components_Angle.js.html +++ b/docs/src_gameobjects_components_Angle.js.html @@ -1156,7 +1156,7 @@ Phaser.Component.Angle.prototype = { Documentation generated by JSDoc 3.3.0-alpha10 - on Wed Jul 22 2015 14:55:11 GMT+0100 (GMT Daylight Time) using the DocStrap template. + on Fri Jul 24 2015 13:29:45 GMT+0100 (GMT Daylight Time) using the DocStrap template. diff --git a/docs/src_gameobjects_components_Animation.js.html b/docs/src_gameobjects_components_Animation.js.html index 8686973d5..a64c0a1c6 100644 --- a/docs/src_gameobjects_components_Animation.js.html +++ b/docs/src_gameobjects_components_Animation.js.html @@ -1151,7 +1151,7 @@ Phaser.Component.Animation.prototype = { Documentation generated by JSDoc 3.3.0-alpha10 - on Wed Jul 22 2015 14:55:11 GMT+0100 (GMT Daylight Time) using the DocStrap template. + on Fri Jul 24 2015 13:29:45 GMT+0100 (GMT Daylight Time) using the DocStrap template. diff --git a/docs/src_gameobjects_components_AutoCull.js.html b/docs/src_gameobjects_components_AutoCull.js.html index 2c1c8b063..e3afbabe3 100644 --- a/docs/src_gameobjects_components_AutoCull.js.html +++ b/docs/src_gameobjects_components_AutoCull.js.html @@ -1165,7 +1165,7 @@ Phaser.Component.AutoCull.prototype = { Documentation generated by JSDoc 3.3.0-alpha10 - on Wed Jul 22 2015 14:55:11 GMT+0100 (GMT Daylight Time) using the DocStrap template. + on Fri Jul 24 2015 13:29:45 GMT+0100 (GMT Daylight Time) using the DocStrap template. diff --git a/docs/src_gameobjects_components_Bounds.js.html b/docs/src_gameobjects_components_Bounds.js.html index 843e0f103..76eba679a 100644 --- a/docs/src_gameobjects_components_Bounds.js.html +++ b/docs/src_gameobjects_components_Bounds.js.html @@ -1231,7 +1231,7 @@ Phaser.Component.Bounds.prototype = { Documentation generated by JSDoc 3.3.0-alpha10 - on Wed Jul 22 2015 14:55:11 GMT+0100 (GMT Daylight Time) using the DocStrap template. + on Fri Jul 24 2015 13:29:45 GMT+0100 (GMT Daylight Time) using the DocStrap template. diff --git a/docs/src_gameobjects_components_BringToTop.js.html b/docs/src_gameobjects_components_BringToTop.js.html index 119542e62..ff834b9a6 100644 --- a/docs/src_gameobjects_components_BringToTop.js.html +++ b/docs/src_gameobjects_components_BringToTop.js.html @@ -1207,7 +1207,7 @@ Phaser.Component.BringToTop.prototype.moveDown = function () { Documentation generated by JSDoc 3.3.0-alpha10 - on Wed Jul 22 2015 14:55:11 GMT+0100 (GMT Daylight Time) using the DocStrap template. + on Fri Jul 24 2015 13:29:45 GMT+0100 (GMT Daylight Time) using the DocStrap template. diff --git a/docs/src_gameobjects_components_Component.js.html b/docs/src_gameobjects_components_Component.js.html index 0099f985e..733a5ade1 100644 --- a/docs/src_gameobjects_components_Component.js.html +++ b/docs/src_gameobjects_components_Component.js.html @@ -1118,7 +1118,7 @@ Phaser.Component = function () {}; Documentation generated by JSDoc 3.3.0-alpha10 - on Wed Jul 22 2015 14:55:11 GMT+0100 (GMT Daylight Time) using the DocStrap template. + on Fri Jul 24 2015 13:29:45 GMT+0100 (GMT Daylight Time) using the DocStrap template. diff --git a/docs/src_gameobjects_components_Core.js.html b/docs/src_gameobjects_components_Core.js.html index 5d3fc0c61..fc8024744 100644 --- a/docs/src_gameobjects_components_Core.js.html +++ b/docs/src_gameobjects_components_Core.js.html @@ -1464,7 +1464,7 @@ Phaser.Component.Core.prototype = { Documentation generated by JSDoc 3.3.0-alpha10 - on Wed Jul 22 2015 14:55:11 GMT+0100 (GMT Daylight Time) using the DocStrap template. + on Fri Jul 24 2015 13:29:45 GMT+0100 (GMT Daylight Time) using the DocStrap template. diff --git a/docs/src_gameobjects_components_Crop.js.html b/docs/src_gameobjects_components_Crop.js.html index a818740bc..bde3791a5 100644 --- a/docs/src_gameobjects_components_Crop.js.html +++ b/docs/src_gameobjects_components_Crop.js.html @@ -1228,7 +1228,7 @@ Phaser.Component.Crop.prototype = { Documentation generated by JSDoc 3.3.0-alpha10 - on Wed Jul 22 2015 14:55:11 GMT+0100 (GMT Daylight Time) using the DocStrap template. + on Fri Jul 24 2015 13:29:45 GMT+0100 (GMT Daylight Time) using the DocStrap template. diff --git a/docs/src_gameobjects_components_Delta.js.html b/docs/src_gameobjects_components_Delta.js.html index b4a31ce70..3e73efe8e 100644 --- a/docs/src_gameobjects_components_Delta.js.html +++ b/docs/src_gameobjects_components_Delta.js.html @@ -1179,7 +1179,7 @@ Phaser.Component.Delta.prototype = { Documentation generated by JSDoc 3.3.0-alpha10 - on Wed Jul 22 2015 14:55:11 GMT+0100 (GMT Daylight Time) using the DocStrap template. + on Fri Jul 24 2015 13:29:45 GMT+0100 (GMT Daylight Time) using the DocStrap template. diff --git a/docs/src_gameobjects_components_Destroy.js.html b/docs/src_gameobjects_components_Destroy.js.html index ae8e7811c..d1e847d84 100644 --- a/docs/src_gameobjects_components_Destroy.js.html +++ b/docs/src_gameobjects_components_Destroy.js.html @@ -1256,7 +1256,7 @@ Phaser.Component.Destroy.prototype = { Documentation generated by JSDoc 3.3.0-alpha10 - on Wed Jul 22 2015 14:55:11 GMT+0100 (GMT Daylight Time) using the DocStrap template. + on Fri Jul 24 2015 13:29:45 GMT+0100 (GMT Daylight Time) using the DocStrap template. diff --git a/docs/src_gameobjects_components_Events.js.html b/docs/src_gameobjects_components_Events.js.html index dd0ef41d6..aa91ea559 100644 --- a/docs/src_gameobjects_components_Events.js.html +++ b/docs/src_gameobjects_components_Events.js.html @@ -1304,7 +1304,7 @@ for (var prop in Phaser.Events.prototype) Documentation generated by JSDoc 3.3.0-alpha10 - on Wed Jul 22 2015 14:55:11 GMT+0100 (GMT Daylight Time) using the DocStrap template. + on Fri Jul 24 2015 13:29:45 GMT+0100 (GMT Daylight Time) using the DocStrap template. diff --git a/docs/src_gameobjects_components_FixedToCamera.js.html b/docs/src_gameobjects_components_FixedToCamera.js.html index e6dd6d6fd..de8839d1d 100644 --- a/docs/src_gameobjects_components_FixedToCamera.js.html +++ b/docs/src_gameobjects_components_FixedToCamera.js.html @@ -1199,7 +1199,7 @@ Phaser.Component.FixedToCamera.prototype = { Documentation generated by JSDoc 3.3.0-alpha10 - on Wed Jul 22 2015 14:55:11 GMT+0100 (GMT Daylight Time) using the DocStrap template. + on Fri Jul 24 2015 13:29:45 GMT+0100 (GMT Daylight Time) using the DocStrap template. diff --git a/docs/src_gameobjects_components_Health.js.html b/docs/src_gameobjects_components_Health.js.html index 4c1d381f2..15a917af9 100644 --- a/docs/src_gameobjects_components_Health.js.html +++ b/docs/src_gameobjects_components_Health.js.html @@ -1196,7 +1196,7 @@ Phaser.Component.Health.prototype = { Documentation generated by JSDoc 3.3.0-alpha10 - on Wed Jul 22 2015 14:55:11 GMT+0100 (GMT Daylight Time) using the DocStrap template. + on Fri Jul 24 2015 13:29:45 GMT+0100 (GMT Daylight Time) using the DocStrap template. diff --git a/docs/src_gameobjects_components_InCamera.js.html b/docs/src_gameobjects_components_InCamera.js.html index 207344a6c..28c67aaf4 100644 --- a/docs/src_gameobjects_components_InCamera.js.html +++ b/docs/src_gameobjects_components_InCamera.js.html @@ -1147,7 +1147,7 @@ Phaser.Component.InCamera.prototype = { Documentation generated by JSDoc 3.3.0-alpha10 - on Wed Jul 22 2015 14:55:11 GMT+0100 (GMT Daylight Time) using the DocStrap template. + on Fri Jul 24 2015 13:29:45 GMT+0100 (GMT Daylight Time) using the DocStrap template. diff --git a/docs/src_gameobjects_components_InWorld.js.html b/docs/src_gameobjects_components_InWorld.js.html index b3e614f88..06123f870 100644 --- a/docs/src_gameobjects_components_InWorld.js.html +++ b/docs/src_gameobjects_components_InWorld.js.html @@ -1235,7 +1235,7 @@ Phaser.Component.InWorld.prototype = { Documentation generated by JSDoc 3.3.0-alpha10 - on Wed Jul 22 2015 14:55:11 GMT+0100 (GMT Daylight Time) using the DocStrap template. + on Fri Jul 24 2015 13:29:45 GMT+0100 (GMT Daylight Time) using the DocStrap template. diff --git a/docs/src_gameobjects_components_InputEnabled.js.html b/docs/src_gameobjects_components_InputEnabled.js.html index 9b42a7f48..9480b7ade 100644 --- a/docs/src_gameobjects_components_InputEnabled.js.html +++ b/docs/src_gameobjects_components_InputEnabled.js.html @@ -1183,7 +1183,7 @@ Phaser.Component.InputEnabled.prototype = { Documentation generated by JSDoc 3.3.0-alpha10 - on Wed Jul 22 2015 14:55:11 GMT+0100 (GMT Daylight Time) using the DocStrap template. + on Fri Jul 24 2015 13:29:45 GMT+0100 (GMT Daylight Time) using the DocStrap template. diff --git a/docs/src_gameobjects_components_LifeSpan.js.html b/docs/src_gameobjects_components_LifeSpan.js.html index 07da24ad5..26424f5bf 100644 --- a/docs/src_gameobjects_components_LifeSpan.js.html +++ b/docs/src_gameobjects_components_LifeSpan.js.html @@ -1239,7 +1239,7 @@ Phaser.Component.LifeSpan.prototype = { Documentation generated by JSDoc 3.3.0-alpha10 - on Wed Jul 22 2015 14:55:11 GMT+0100 (GMT Daylight Time) using the DocStrap template. + on Fri Jul 24 2015 13:29:45 GMT+0100 (GMT Daylight Time) using the DocStrap template. diff --git a/docs/src_gameobjects_components_LoadTexture.js.html b/docs/src_gameobjects_components_LoadTexture.js.html index 20920f927..d6570d97a 100644 --- a/docs/src_gameobjects_components_LoadTexture.js.html +++ b/docs/src_gameobjects_components_LoadTexture.js.html @@ -1366,7 +1366,7 @@ Phaser.Component.LoadTexture.prototype = { Documentation generated by JSDoc 3.3.0-alpha10 - on Wed Jul 22 2015 14:55:11 GMT+0100 (GMT Daylight Time) using the DocStrap template. + on Fri Jul 24 2015 13:29:45 GMT+0100 (GMT Daylight Time) using the DocStrap template. diff --git a/docs/src_gameobjects_components_Overlap.js.html b/docs/src_gameobjects_components_Overlap.js.html index af84c4c8c..ef629504d 100644 --- a/docs/src_gameobjects_components_Overlap.js.html +++ b/docs/src_gameobjects_components_Overlap.js.html @@ -1146,7 +1146,7 @@ Phaser.Component.Overlap.prototype = { Documentation generated by JSDoc 3.3.0-alpha10 - on Wed Jul 22 2015 14:55:11 GMT+0100 (GMT Daylight Time) using the DocStrap template. + on Fri Jul 24 2015 13:29:45 GMT+0100 (GMT Daylight Time) using the DocStrap template. diff --git a/docs/src_gameobjects_components_PhysicsBody.js.html b/docs/src_gameobjects_components_PhysicsBody.js.html index 1d9b8b832..ac686921c 100644 --- a/docs/src_gameobjects_components_PhysicsBody.js.html +++ b/docs/src_gameobjects_components_PhysicsBody.js.html @@ -1256,7 +1256,7 @@ Phaser.Component.PhysicsBody.prototype = { Documentation generated by JSDoc 3.3.0-alpha10 - on Wed Jul 22 2015 14:55:11 GMT+0100 (GMT Daylight Time) using the DocStrap template. + on Fri Jul 24 2015 13:29:45 GMT+0100 (GMT Daylight Time) using the DocStrap template. diff --git a/docs/src_gameobjects_components_Reset.js.html b/docs/src_gameobjects_components_Reset.js.html index 85345d6ec..21eee90d5 100644 --- a/docs/src_gameobjects_components_Reset.js.html +++ b/docs/src_gameobjects_components_Reset.js.html @@ -1174,7 +1174,7 @@ Phaser.Component.Reset.prototype.reset = function (x, y, health) { Documentation generated by JSDoc 3.3.0-alpha10 - on Wed Jul 22 2015 14:55:11 GMT+0100 (GMT Daylight Time) using the DocStrap template. + on Fri Jul 24 2015 13:29:45 GMT+0100 (GMT Daylight Time) using the DocStrap template. diff --git a/docs/src_gameobjects_components_ScaleMinMax.js.html b/docs/src_gameobjects_components_ScaleMinMax.js.html index 6f0958baf..9f41a7392 100644 --- a/docs/src_gameobjects_components_ScaleMinMax.js.html +++ b/docs/src_gameobjects_components_ScaleMinMax.js.html @@ -1268,7 +1268,7 @@ Phaser.Component.ScaleMinMax.prototype = { Documentation generated by JSDoc 3.3.0-alpha10 - on Wed Jul 22 2015 14:55:11 GMT+0100 (GMT Daylight Time) using the DocStrap template. + on Fri Jul 24 2015 13:29:45 GMT+0100 (GMT Daylight Time) using the DocStrap template. diff --git a/docs/src_gameobjects_components_Smoothed.js.html b/docs/src_gameobjects_components_Smoothed.js.html index dca284bb0..febb46647 100644 --- a/docs/src_gameobjects_components_Smoothed.js.html +++ b/docs/src_gameobjects_components_Smoothed.js.html @@ -1164,7 +1164,7 @@ Phaser.Component.Smoothed.prototype = { Documentation generated by JSDoc 3.3.0-alpha10 - on Wed Jul 22 2015 14:55:11 GMT+0100 (GMT Daylight Time) using the DocStrap template. + on Fri Jul 24 2015 13:29:45 GMT+0100 (GMT Daylight Time) using the DocStrap template. diff --git a/docs/src_geom_Circle.js.html b/docs/src_geom_Circle.js.html index 22d7078f5..343470a25 100644 --- a/docs/src_geom_Circle.js.html +++ b/docs/src_geom_Circle.js.html @@ -1684,7 +1684,7 @@ PIXI.Circle = Phaser.Circle; Documentation generated by JSDoc 3.3.0-alpha10 - on Wed Jul 22 2015 14:55:11 GMT+0100 (GMT Daylight Time) using the DocStrap template. + on Fri Jul 24 2015 13:29:45 GMT+0100 (GMT Daylight Time) using the DocStrap template. diff --git a/docs/src_geom_Ellipse.js.html b/docs/src_geom_Ellipse.js.html index 26ee80384..6ddd56cb9 100644 --- a/docs/src_geom_Ellipse.js.html +++ b/docs/src_geom_Ellipse.js.html @@ -1437,7 +1437,7 @@ PIXI.Ellipse = Phaser.Ellipse; Documentation generated by JSDoc 3.3.0-alpha10 - on Wed Jul 22 2015 14:55:11 GMT+0100 (GMT Daylight Time) using the DocStrap template. + on Fri Jul 24 2015 13:29:45 GMT+0100 (GMT Daylight Time) using the DocStrap template. diff --git a/docs/src_geom_Line.js.html b/docs/src_geom_Line.js.html index d4c0b7cfc..3991c5c70 100644 --- a/docs/src_geom_Line.js.html +++ b/docs/src_geom_Line.js.html @@ -1690,7 +1690,7 @@ Phaser.Line.reflect = function (a, b) { Documentation generated by JSDoc 3.3.0-alpha10 - on Wed Jul 22 2015 14:55:11 GMT+0100 (GMT Daylight Time) using the DocStrap template. + on Fri Jul 24 2015 13:29:45 GMT+0100 (GMT Daylight Time) using the DocStrap template. diff --git a/docs/src_geom_Matrix.js.html b/docs/src_geom_Matrix.js.html index e7373e12c..a222817e6 100644 --- a/docs/src_geom_Matrix.js.html +++ b/docs/src_geom_Matrix.js.html @@ -1500,7 +1500,7 @@ PIXI.identityMatrix = Phaser.identityMatrix; Documentation generated by JSDoc 3.3.0-alpha10 - on Wed Jul 22 2015 14:55:11 GMT+0100 (GMT Daylight Time) using the DocStrap template. + on Fri Jul 24 2015 13:29:45 GMT+0100 (GMT Daylight Time) using the DocStrap template. diff --git a/docs/src_geom_Point.js.html b/docs/src_geom_Point.js.html index 6fecbf0f5..f049e1e4c 100644 --- a/docs/src_geom_Point.js.html +++ b/docs/src_geom_Point.js.html @@ -2014,7 +2014,7 @@ PIXI.Point = Phaser.Point; Documentation generated by JSDoc 3.3.0-alpha10 - on Wed Jul 22 2015 14:55:11 GMT+0100 (GMT Daylight Time) using the DocStrap template. + on Fri Jul 24 2015 13:29:45 GMT+0100 (GMT Daylight Time) using the DocStrap template. diff --git a/docs/src_geom_Polygon.js.html b/docs/src_geom_Polygon.js.html index 70a897919..9b2799bd8 100644 --- a/docs/src_geom_Polygon.js.html +++ b/docs/src_geom_Polygon.js.html @@ -1404,7 +1404,7 @@ PIXI.Polygon = Phaser.Polygon; Documentation generated by JSDoc 3.3.0-alpha10 - on Wed Jul 22 2015 14:55:11 GMT+0100 (GMT Daylight Time) using the DocStrap template. + on Fri Jul 24 2015 13:29:45 GMT+0100 (GMT Daylight Time) using the DocStrap template. diff --git a/docs/src_geom_Rectangle.js.html b/docs/src_geom_Rectangle.js.html index 9c738e135..b9453d8c2 100644 --- a/docs/src_geom_Rectangle.js.html +++ b/docs/src_geom_Rectangle.js.html @@ -2117,7 +2117,7 @@ PIXI.EmptyRectangle = new Phaser.Rectangle(0, 0, 0, 0); Documentation generated by JSDoc 3.3.0-alpha10 - on Wed Jul 22 2015 14:55:11 GMT+0100 (GMT Daylight Time) using the DocStrap template. + on Fri Jul 24 2015 13:29:45 GMT+0100 (GMT Daylight Time) using the DocStrap template. diff --git a/docs/src_geom_RoundedRectangle.js.html b/docs/src_geom_RoundedRectangle.js.html index b58fa8f77..cbaed68b0 100644 --- a/docs/src_geom_RoundedRectangle.js.html +++ b/docs/src_geom_RoundedRectangle.js.html @@ -1222,7 +1222,7 @@ PIXI.RoundedRectangle = Phaser.RoundedRectangle; Documentation generated by JSDoc 3.3.0-alpha10 - on Wed Jul 22 2015 14:55:11 GMT+0100 (GMT Daylight Time) using the DocStrap template. + on Fri Jul 24 2015 13:29:45 GMT+0100 (GMT Daylight Time) using the DocStrap template. diff --git a/docs/src_input_DeviceButton.js.html b/docs/src_input_DeviceButton.js.html index d4a0de9ae..64004ffdb 100644 --- a/docs/src_input_DeviceButton.js.html +++ b/docs/src_input_DeviceButton.js.html @@ -1437,7 +1437,7 @@ Object.defineProperty(Phaser.DeviceButton.prototype, "duration", { Documentation generated by JSDoc 3.3.0-alpha10 - on Wed Jul 22 2015 14:55:11 GMT+0100 (GMT Daylight Time) using the DocStrap template. + on Fri Jul 24 2015 13:29:45 GMT+0100 (GMT Daylight Time) using the DocStrap template. diff --git a/docs/src_input_Gamepad.js.html b/docs/src_input_Gamepad.js.html index d3a0294a9..984da55cd 100644 --- a/docs/src_input_Gamepad.js.html +++ b/docs/src_input_Gamepad.js.html @@ -1772,7 +1772,7 @@ Phaser.Gamepad.PS3XC_STICK_RIGHT_Y = 3; // analog stick, range -1..1 Documentation generated by JSDoc 3.3.0-alpha10 - on Wed Jul 22 2015 14:55:11 GMT+0100 (GMT Daylight Time) using the DocStrap template. + on Fri Jul 24 2015 13:29:45 GMT+0100 (GMT Daylight Time) using the DocStrap template. diff --git a/docs/src_input_Input.js.html b/docs/src_input_Input.js.html index 7eb70d800..6d5de7ff5 100644 --- a/docs/src_input_Input.js.html +++ b/docs/src_input_Input.js.html @@ -2198,7 +2198,7 @@ Object.defineProperty(Phaser.Input.prototype, "worldY", { Documentation generated by JSDoc 3.3.0-alpha10 - on Wed Jul 22 2015 14:55:11 GMT+0100 (GMT Daylight Time) using the DocStrap template. + on Fri Jul 24 2015 13:29:45 GMT+0100 (GMT Daylight Time) using the DocStrap template. diff --git a/docs/src_input_InputHandler.js.html b/docs/src_input_InputHandler.js.html index 64f3ba636..6ee2bc0a7 100644 --- a/docs/src_input_InputHandler.js.html +++ b/docs/src_input_InputHandler.js.html @@ -2682,7 +2682,7 @@ Phaser.InputHandler.prototype.constructor = Phaser.InputHandler; Documentation generated by JSDoc 3.3.0-alpha10 - on Wed Jul 22 2015 14:55:11 GMT+0100 (GMT Daylight Time) using the DocStrap template. + on Fri Jul 24 2015 13:29:45 GMT+0100 (GMT Daylight Time) using the DocStrap template. diff --git a/docs/src_input_Key.js.html b/docs/src_input_Key.js.html index c3aa14c9c..bd6bf11a4 100644 --- a/docs/src_input_Key.js.html +++ b/docs/src_input_Key.js.html @@ -1475,7 +1475,7 @@ Phaser.Key.prototype.constructor = Phaser.Key; Documentation generated by JSDoc 3.3.0-alpha10 - on Wed Jul 22 2015 14:55:11 GMT+0100 (GMT Daylight Time) using the DocStrap template. + on Fri Jul 24 2015 13:29:45 GMT+0100 (GMT Daylight Time) using the DocStrap template. diff --git a/docs/src_input_Keyboard.js.html b/docs/src_input_Keyboard.js.html index 7b0be7d3b..0b6b01f77 100644 --- a/docs/src_input_Keyboard.js.html +++ b/docs/src_input_Keyboard.js.html @@ -1792,7 +1792,7 @@ Phaser.Keyboard.NUM_LOCK = 144; Documentation generated by JSDoc 3.3.0-alpha10 - on Wed Jul 22 2015 14:55:11 GMT+0100 (GMT Daylight Time) using the DocStrap template. + on Fri Jul 24 2015 13:29:45 GMT+0100 (GMT Daylight Time) using the DocStrap template. diff --git a/docs/src_input_MSPointer.js.html b/docs/src_input_MSPointer.js.html index 5d3ec40c4..a7ba2f9c2 100644 --- a/docs/src_input_MSPointer.js.html +++ b/docs/src_input_MSPointer.js.html @@ -1394,7 +1394,7 @@ Phaser.MSPointer.prototype.constructor = Phaser.MSPointer; Documentation generated by JSDoc 3.3.0-alpha10 - on Wed Jul 22 2015 14:55:11 GMT+0100 (GMT Daylight Time) using the DocStrap template. + on Fri Jul 24 2015 13:29:45 GMT+0100 (GMT Daylight Time) using the DocStrap template. diff --git a/docs/src_input_Mouse.js.html b/docs/src_input_Mouse.js.html index 628c51c57..34e8e9eb9 100644 --- a/docs/src_input_Mouse.js.html +++ b/docs/src_input_Mouse.js.html @@ -1793,7 +1793,7 @@ Object.defineProperties(WheelEventProxy.prototype, { Documentation generated by JSDoc 3.3.0-alpha10 - on Wed Jul 22 2015 14:55:11 GMT+0100 (GMT Daylight Time) using the DocStrap template. + on Fri Jul 24 2015 13:29:45 GMT+0100 (GMT Daylight Time) using the DocStrap template. diff --git a/docs/src_input_Pointer.js.html b/docs/src_input_Pointer.js.html index 4d8361730..16e724c11 100644 --- a/docs/src_input_Pointer.js.html +++ b/docs/src_input_Pointer.js.html @@ -1527,65 +1527,77 @@ Phaser.Pointer.prototype = { // If you find one, please tell us! var buttons = event.buttons; - if (buttons === undefined) + if (buttons !== undefined) { - return; - } + // Note: These are bitwise checks, not booleans - // Note: These are bitwise checks, not booleans + if (Phaser.Pointer.LEFT_BUTTON & buttons) + { + this.leftButton.start(event); + } + else + { + this.leftButton.stop(event); + } - if (Phaser.Pointer.LEFT_BUTTON & buttons) - { - this.leftButton.start(event); + if (Phaser.Pointer.RIGHT_BUTTON & buttons) + { + this.rightButton.start(event); + } + else + { + this.rightButton.stop(event); + } + + if (Phaser.Pointer.MIDDLE_BUTTON & buttons) + { + this.middleButton.start(event); + } + else + { + this.middleButton.stop(event); + } + + if (Phaser.Pointer.BACK_BUTTON & buttons) + { + this.backButton.start(event); + } + else + { + this.backButton.stop(event); + } + + if (Phaser.Pointer.FORWARD_BUTTON & buttons) + { + this.forwardButton.start(event); + } + else + { + this.forwardButton.stop(event); + } + + if (Phaser.Pointer.ERASER_BUTTON & buttons) + { + this.eraserButton.start(event); + } + else + { + this.eraserButton.stop(event); + } } else { - this.leftButton.stop(event); - } + // No buttons property (like Safari on OSX when using a trackpad) - if (Phaser.Pointer.RIGHT_BUTTON & buttons) - { - this.rightButton.start(event); - } - else - { - this.rightButton.stop(event); - } - - if (Phaser.Pointer.MIDDLE_BUTTON & buttons) - { - this.middleButton.start(event); - } - else - { - this.middleButton.stop(event); - } - - if (Phaser.Pointer.BACK_BUTTON & buttons) - { - this.backButton.start(event); - } - else - { - this.backButton.stop(event); - } - - if (Phaser.Pointer.FORWARD_BUTTON & buttons) - { - this.forwardButton.start(event); - } - else - { - this.forwardButton.stop(event); - } - - if (Phaser.Pointer.ERASER_BUTTON & buttons) - { - this.eraserButton.start(event); - } - else - { - this.eraserButton.stop(event); + if (event.type === 'mousedown') + { + this.leftButton.start(event); + } + else + { + this.leftButton.stop(event); + this.rightButton.stop(event); + } } // On OS X (and other devices with trackpads) you have to press CTRL + the pad @@ -2248,7 +2260,7 @@ Object.defineProperty(Phaser.Pointer.prototype, "worldY", { Documentation generated by JSDoc 3.3.0-alpha10 - on Wed Jul 22 2015 14:55:11 GMT+0100 (GMT Daylight Time) using the DocStrap template. + on Fri Jul 24 2015 13:29:45 GMT+0100 (GMT Daylight Time) using the DocStrap template. diff --git a/docs/src_input_SinglePad.js.html b/docs/src_input_SinglePad.js.html index 7f2ab8afb..e2784c3b2 100644 --- a/docs/src_input_SinglePad.js.html +++ b/docs/src_input_SinglePad.js.html @@ -1665,7 +1665,7 @@ Phaser.SinglePad.prototype.constructor = Phaser.SinglePad; Documentation generated by JSDoc 3.3.0-alpha10 - on Wed Jul 22 2015 14:55:11 GMT+0100 (GMT Daylight Time) using the DocStrap template. + on Fri Jul 24 2015 13:29:45 GMT+0100 (GMT Daylight Time) using the DocStrap template. diff --git a/docs/src_input_Touch.js.html b/docs/src_input_Touch.js.html index 5c2e0f304..9045a429a 100644 --- a/docs/src_input_Touch.js.html +++ b/docs/src_input_Touch.js.html @@ -1557,7 +1557,7 @@ Phaser.Touch.prototype.constructor = Phaser.Touch; Documentation generated by JSDoc 3.3.0-alpha10 - on Wed Jul 22 2015 14:55:12 GMT+0100 (GMT Daylight Time) using the DocStrap template. + on Fri Jul 24 2015 13:29:45 GMT+0100 (GMT Daylight Time) using the DocStrap template. diff --git a/docs/src_loader_Cache.js.html b/docs/src_loader_Cache.js.html index f644a33b2..dd25105a2 100644 --- a/docs/src_loader_Cache.js.html +++ b/docs/src_loader_Cache.js.html @@ -1372,7 +1372,9 @@ Phaser.Cache.prototype = { img.src = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgAQMAAABJtOi3AAAAA1BMVEX///+nxBvIAAAAAXRSTlMAQObYZgAAABVJREFUeF7NwIEAAAAAgKD9qdeocAMAoAABm3DkcAAAAABJRU5ErkJggg=="; - this.addImage('__default', null, img); + var obj = this.addImage('__default', null, img); + + PIXI.TextureCache['__default'] = new PIXI.Texture(obj.base); }, @@ -1391,7 +1393,9 @@ Phaser.Cache.prototype = { img.src = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAIAAAD8GO2jAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAJ9JREFUeNq01ssOwyAMRFG46v//Mt1ESmgh+DFmE2GPOBARKb2NVjo+17PXLD8a1+pl5+A+wSgFygymWYHBb0FtsKhJDdZlncG2IzJ4ayoMDv20wTmSMzClEgbWYNTAkQ0Z+OJ+A/eWnAaR9+oxCF4Os0H8htsMUp+pwcgBBiMNnAwF8GqIgL2hAzaGFFgZauDPKABmowZ4GL369/0rwACp2yA/ttmvsQAAAABJRU5ErkJggg=="; - this.addImage('__missing', null, img); + var obj = this.addImage('__missing', null, img); + + PIXI.TextureCache['__missing'] = new PIXI.Texture(obj.base); }, @@ -2620,6 +2624,9 @@ Phaser.Cache.prototype = { /** * Gets a PIXI.Texture by key from the PIXI.TextureCache. * + * If the texture isn't found in the cache, then it searches the Phaser Image Cache and + * creates a new PIXI.Texture object which is then returned. + * * @method Phaser.Cache#getPixiTexture * @deprecated * @param {string} key - Asset key of the Texture to retrieve from the Cache. @@ -2633,19 +2640,29 @@ Phaser.Cache.prototype = { } else { - console.warn('Phaser.Cache.getPixiTexture: Invalid key: "' + key + '"'); - return null; + var base = this.getPixiBaseTexture(key); + + if (base) + { + return new PIXI.Texture(base); + } + else + { + return null; + } } }, /** - * Gets a PIXI.BaseTexture by key from the PIXI.BaseTExtureCache. + * Gets a PIXI.BaseTexture by key from the PIXI.BaseTextureCache. + * + * If the texture isn't found in the cache, then it searches the Phaser Image Cache. * * @method Phaser.Cache#getPixiBaseTexture * @deprecated * @param {string} key - Asset key of the BaseTexture to retrieve from the Cache. - * @return {PIXI.BaseTexture} The BaseTexture object. + * @return {PIXI.BaseTexture} The BaseTexture object or null if not found. */ getPixiBaseTexture: function (key) { @@ -2655,8 +2672,16 @@ Phaser.Cache.prototype = { } else { - console.warn('Phaser.Cache.getPixiBaseTexture: Invalid key: "' + key + '"'); - return null; + var img = this.getItem(key, Phaser.Cache.IMAGE, 'getPixiBaseTexture'); + + if (img !== null) + { + return img.base; + } + else + { + return null; + } } }, @@ -2699,9 +2724,9 @@ Phaser.Cache.prototype = { var out = []; - if (this._cache[cache]) + if (this._cacheMap[cache]) { - for (var key in this._cache[cache]) + for (var key in this._cacheMap[cache]) { if (key !== '__default' && key !== '__missing') { @@ -2734,26 +2759,30 @@ Phaser.Cache.prototype = { }, /** - * Removes an image from the cache and optionally from the Pixi.BaseTextureCache as well. + * Removes an image from the cache. + * + * You can optionally elect to destroy it as well. This calls BaseTexture.destroy on it. * - * Note that this only removes it from the Phaser.Cache. If you still have references to the data elsewhere + * Note that this only removes it from the Phaser and PIXI Caches. If you still have references to the data elsewhere * then it will persist in memory. * * @method Phaser.Cache#removeImage * @param {string} key - Key of the asset you want to remove. - * @param {boolean} [removeFromPixi=true] - Should this image also be removed from the Pixi BaseTextureCache? + * @param {boolean} [removeFromPixi=true] - Should this image also be destroyed? Removing it from the PIXI.BaseTextureCache? */ removeImage: function (key, removeFromPixi) { if (removeFromPixi === undefined) { removeFromPixi = true; } - delete this._cache.image[key]; + var img = this.getImage(key, true); - if (removeFromPixi) + if (removeFromPixi && img.base) { - PIXI.BaseTextureCache[key].destroy(); + img.base.destroy(); } + delete this._cache.image[key]; + }, /** @@ -3072,7 +3101,7 @@ Phaser.Cache.prototype.constructor = Phaser.Cache; Documentation generated by JSDoc 3.3.0-alpha10 - on Wed Jul 22 2015 14:55:11 GMT+0100 (GMT Daylight Time) using the DocStrap template. + on Fri Jul 24 2015 13:29:45 GMT+0100 (GMT Daylight Time) using the DocStrap template. diff --git a/docs/src_loader_Loader.js.html b/docs/src_loader_Loader.js.html index cf41e3392..fbfcc59ac 100644 --- a/docs/src_loader_Loader.js.html +++ b/docs/src_loader_Loader.js.html @@ -4051,7 +4051,7 @@ Phaser.Loader.prototype.constructor = Phaser.Loader; Documentation generated by JSDoc 3.3.0-alpha10 - on Wed Jul 22 2015 14:55:11 GMT+0100 (GMT Daylight Time) using the DocStrap template. + on Fri Jul 24 2015 13:29:45 GMT+0100 (GMT Daylight Time) using the DocStrap template. diff --git a/docs/src_loader_LoaderParser.js.html b/docs/src_loader_LoaderParser.js.html index 09dc0a160..4c3c88c6e 100644 --- a/docs/src_loader_LoaderParser.js.html +++ b/docs/src_loader_LoaderParser.js.html @@ -1278,7 +1278,7 @@ Phaser.LoaderParser = { Documentation generated by JSDoc 3.3.0-alpha10 - on Wed Jul 22 2015 14:55:11 GMT+0100 (GMT Daylight Time) using the DocStrap template. + on Fri Jul 24 2015 13:29:45 GMT+0100 (GMT Daylight Time) using the DocStrap template. diff --git a/docs/src_math_Math.js.html b/docs/src_math_Math.js.html index eeadc51a2..b5667190d 100644 --- a/docs/src_math_Math.js.html +++ b/docs/src_math_Math.js.html @@ -2139,7 +2139,7 @@ Phaser.Math.radToDeg = function radToDeg (radians) { Documentation generated by JSDoc 3.3.0-alpha10 - on Wed Jul 22 2015 14:55:11 GMT+0100 (GMT Daylight Time) using the DocStrap template. + on Fri Jul 24 2015 13:29:45 GMT+0100 (GMT Daylight Time) using the DocStrap template. diff --git a/docs/src_math_QuadTree.js.html b/docs/src_math_QuadTree.js.html index f1e9cf941..744b4a6f3 100644 --- a/docs/src_math_QuadTree.js.html +++ b/docs/src_math_QuadTree.js.html @@ -1463,7 +1463,7 @@ Phaser.QuadTree.prototype.constructor = Phaser.QuadTree; Documentation generated by JSDoc 3.3.0-alpha10 - on Wed Jul 22 2015 14:55:11 GMT+0100 (GMT Daylight Time) using the DocStrap template. + on Fri Jul 24 2015 13:29:45 GMT+0100 (GMT Daylight Time) using the DocStrap template. diff --git a/docs/src_math_RandomDataGenerator.js.html b/docs/src_math_RandomDataGenerator.js.html index efc1094b8..7b9638385 100644 --- a/docs/src_math_RandomDataGenerator.js.html +++ b/docs/src_math_RandomDataGenerator.js.html @@ -1416,7 +1416,7 @@ Phaser.RandomDataGenerator.prototype.constructor = Phaser.RandomDataGenerator; Documentation generated by JSDoc 3.3.0-alpha10 - on Wed Jul 22 2015 14:55:11 GMT+0100 (GMT Daylight Time) using the DocStrap template. + on Fri Jul 24 2015 13:29:45 GMT+0100 (GMT Daylight Time) using the DocStrap template. diff --git a/docs/src_net_Net.js.html b/docs/src_net_Net.js.html index c8478ef4d..217c7a5f5 100644 --- a/docs/src_net_Net.js.html +++ b/docs/src_net_Net.js.html @@ -1277,7 +1277,7 @@ Phaser.Net.prototype.constructor = Phaser.Net; Documentation generated by JSDoc 3.3.0-alpha10 - on Wed Jul 22 2015 14:55:11 GMT+0100 (GMT Daylight Time) using the DocStrap template. + on Fri Jul 24 2015 13:29:45 GMT+0100 (GMT Daylight Time) using the DocStrap template. diff --git a/docs/src_particles_Particles.js.html b/docs/src_particles_Particles.js.html index 39f90d1dc..5c5fbff34 100644 --- a/docs/src_particles_Particles.js.html +++ b/docs/src_particles_Particles.js.html @@ -1191,7 +1191,7 @@ Phaser.Particles.prototype.constructor = Phaser.Particles; Documentation generated by JSDoc 3.3.0-alpha10 - on Wed Jul 22 2015 14:55:11 GMT+0100 (GMT Daylight Time) using the DocStrap template. + on Fri Jul 24 2015 13:29:45 GMT+0100 (GMT Daylight Time) using the DocStrap template. diff --git a/docs/src_particles_arcade_ArcadeParticles.js.html b/docs/src_particles_arcade_ArcadeParticles.js.html index cd678030a..8cc2e75e7 100644 --- a/docs/src_particles_arcade_ArcadeParticles.js.html +++ b/docs/src_particles_arcade_ArcadeParticles.js.html @@ -1122,7 +1122,7 @@ Phaser.Particles.Arcade = {}; Documentation generated by JSDoc 3.3.0-alpha10 - on Wed Jul 22 2015 14:55:11 GMT+0100 (GMT Daylight Time) using the DocStrap template. + on Fri Jul 24 2015 13:29:45 GMT+0100 (GMT Daylight Time) using the DocStrap template. diff --git a/docs/src_particles_arcade_Emitter.js.html b/docs/src_particles_arcade_Emitter.js.html index a5466f3c8..cc53d6934 100644 --- a/docs/src_particles_arcade_Emitter.js.html +++ b/docs/src_particles_arcade_Emitter.js.html @@ -2038,7 +2038,7 @@ Object.defineProperty(Phaser.Particles.Arcade.Emitter.prototype, "bottom", { Documentation generated by JSDoc 3.3.0-alpha10 - on Wed Jul 22 2015 14:55:11 GMT+0100 (GMT Daylight Time) using the DocStrap template. + on Fri Jul 24 2015 13:29:45 GMT+0100 (GMT Daylight Time) using the DocStrap template. diff --git a/docs/src_physics_Physics.js.html b/docs/src_physics_Physics.js.html index 7ae882ca1..81e8bb384 100644 --- a/docs/src_physics_Physics.js.html +++ b/docs/src_physics_Physics.js.html @@ -1538,7 +1538,7 @@ Phaser.Physics.prototype.constructor = Phaser.Physics; Documentation generated by JSDoc 3.3.0-alpha10 - on Wed Jul 22 2015 14:55:11 GMT+0100 (GMT Daylight Time) using the DocStrap template. + on Fri Jul 24 2015 13:29:45 GMT+0100 (GMT Daylight Time) using the DocStrap template. diff --git a/docs/src_physics_arcade_Body.js.html b/docs/src_physics_arcade_Body.js.html index 11eb34602..abb822285 100644 --- a/docs/src_physics_arcade_Body.js.html +++ b/docs/src_physics_arcade_Body.js.html @@ -1991,7 +1991,7 @@ Phaser.Physics.Arcade.Body.prototype.constructor = Phaser.Physics.Arcade.Body; Documentation generated by JSDoc 3.3.0-alpha10 - on Wed Jul 22 2015 14:55:11 GMT+0100 (GMT Daylight Time) using the DocStrap template. + on Fri Jul 24 2015 13:29:45 GMT+0100 (GMT Daylight Time) using the DocStrap template. diff --git a/docs/src_physics_arcade_TilemapCollision.js.html b/docs/src_physics_arcade_TilemapCollision.js.html index 83e284b52..ca476a182 100644 --- a/docs/src_physics_arcade_TilemapCollision.js.html +++ b/docs/src_physics_arcade_TilemapCollision.js.html @@ -1521,7 +1521,7 @@ Phaser.Utils.mixinPrototype(Phaser.Physics.Arcade.prototype, Phaser.Physics.Arca Documentation generated by JSDoc 3.3.0-alpha10 - on Wed Jul 22 2015 14:55:11 GMT+0100 (GMT Daylight Time) using the DocStrap template. + on Fri Jul 24 2015 13:29:45 GMT+0100 (GMT Daylight Time) using the DocStrap template. diff --git a/docs/src_physics_arcade_World.js.html b/docs/src_physics_arcade_World.js.html index 833648b79..4568ffd8a 100644 --- a/docs/src_physics_arcade_World.js.html +++ b/docs/src_physics_arcade_World.js.html @@ -2812,7 +2812,7 @@ Phaser.Physics.Arcade.prototype = { Documentation generated by JSDoc 3.3.0-alpha10 - on Wed Jul 22 2015 14:55:11 GMT+0100 (GMT Daylight Time) using the DocStrap template. + on Fri Jul 24 2015 13:29:45 GMT+0100 (GMT Daylight Time) using the DocStrap template. diff --git a/docs/src_physics_ninja_AABB.js.html b/docs/src_physics_ninja_AABB.js.html index 97e4dbd61..8e619af3e 100644 --- a/docs/src_physics_ninja_AABB.js.html +++ b/docs/src_physics_ninja_AABB.js.html @@ -2136,7 +2136,7 @@ Phaser.Physics.Ninja.AABB.prototype = { Documentation generated by JSDoc 3.3.0-alpha10 - on Wed Jul 22 2015 14:55:11 GMT+0100 (GMT Daylight Time) using the DocStrap template. + on Fri Jul 24 2015 13:29:45 GMT+0100 (GMT Daylight Time) using the DocStrap template. diff --git a/docs/src_physics_ninja_Body.js.html b/docs/src_physics_ninja_Body.js.html index a6a197a01..c945edb19 100644 --- a/docs/src_physics_ninja_Body.js.html +++ b/docs/src_physics_ninja_Body.js.html @@ -1680,7 +1680,7 @@ Phaser.Physics.Ninja.Body.render = function(context, body, color, filled) { Documentation generated by JSDoc 3.3.0-alpha10 - on Wed Jul 22 2015 14:55:11 GMT+0100 (GMT Daylight Time) using the DocStrap template. + on Fri Jul 24 2015 13:29:45 GMT+0100 (GMT Daylight Time) using the DocStrap template. diff --git a/docs/src_physics_ninja_Circle.js.html b/docs/src_physics_ninja_Circle.js.html index 392dce0d7..df2369dd5 100644 --- a/docs/src_physics_ninja_Circle.js.html +++ b/docs/src_physics_ninja_Circle.js.html @@ -3761,7 +3761,7 @@ Phaser.Physics.Ninja.Circle.prototype = { Documentation generated by JSDoc 3.3.0-alpha10 - on Wed Jul 22 2015 14:55:11 GMT+0100 (GMT Daylight Time) using the DocStrap template. + on Fri Jul 24 2015 13:29:45 GMT+0100 (GMT Daylight Time) using the DocStrap template. diff --git a/docs/src_physics_ninja_Tile.js.html b/docs/src_physics_ninja_Tile.js.html index d305c689f..ae58d5329 100644 --- a/docs/src_physics_ninja_Tile.js.html +++ b/docs/src_physics_ninja_Tile.js.html @@ -1882,7 +1882,7 @@ Phaser.Physics.Ninja.Tile.TYPE_HALF = 30; Documentation generated by JSDoc 3.3.0-alpha10 - on Wed Jul 22 2015 14:55:11 GMT+0100 (GMT Daylight Time) using the DocStrap template. + on Fri Jul 24 2015 13:29:45 GMT+0100 (GMT Daylight Time) using the DocStrap template. diff --git a/docs/src_physics_ninja_World.js.html b/docs/src_physics_ninja_World.js.html index 960a40948..9986add68 100644 --- a/docs/src_physics_ninja_World.js.html +++ b/docs/src_physics_ninja_World.js.html @@ -1719,7 +1719,7 @@ Phaser.Physics.Ninja.prototype = { Documentation generated by JSDoc 3.3.0-alpha10 - on Wed Jul 22 2015 14:55:11 GMT+0100 (GMT Daylight Time) using the DocStrap template. + on Fri Jul 24 2015 13:29:45 GMT+0100 (GMT Daylight Time) using the DocStrap template. diff --git a/docs/src_physics_p2_Body.js.html b/docs/src_physics_p2_Body.js.html index 98cd6a422..323a9ca84 100644 --- a/docs/src_physics_p2_Body.js.html +++ b/docs/src_physics_p2_Body.js.html @@ -2995,7 +2995,7 @@ Object.defineProperty(Phaser.Physics.P2.Body.prototype, "collideWorldBounds", { Documentation generated by JSDoc 3.3.0-alpha10 - on Wed Jul 22 2015 14:55:11 GMT+0100 (GMT Daylight Time) using the DocStrap template. + on Fri Jul 24 2015 13:29:45 GMT+0100 (GMT Daylight Time) using the DocStrap template. diff --git a/docs/src_physics_p2_BodyDebug.js.html b/docs/src_physics_p2_BodyDebug.js.html index 4dbdf12c5..c061e313f 100644 --- a/docs/src_physics_p2_BodyDebug.js.html +++ b/docs/src_physics_p2_BodyDebug.js.html @@ -1583,7 +1583,7 @@ Phaser.Utils.extend(Phaser.Physics.P2.BodyDebug.prototype, { Documentation generated by JSDoc 3.3.0-alpha10 - on Wed Jul 22 2015 14:55:11 GMT+0100 (GMT Daylight Time) using the DocStrap template. + on Fri Jul 24 2015 13:29:45 GMT+0100 (GMT Daylight Time) using the DocStrap template. diff --git a/docs/src_physics_p2_CollisionGroup.js.html b/docs/src_physics_p2_CollisionGroup.js.html index 6db3100bc..82b776798 100644 --- a/docs/src_physics_p2_CollisionGroup.js.html +++ b/docs/src_physics_p2_CollisionGroup.js.html @@ -1132,7 +1132,7 @@ Phaser.Physics.P2.CollisionGroup = function (bitmask) { Documentation generated by JSDoc 3.3.0-alpha10 - on Wed Jul 22 2015 14:55:11 GMT+0100 (GMT Daylight Time) using the DocStrap template. + on Fri Jul 24 2015 13:29:45 GMT+0100 (GMT Daylight Time) using the DocStrap template. diff --git a/docs/src_physics_p2_ContactMaterial.js.html b/docs/src_physics_p2_ContactMaterial.js.html index f9e90084a..7eaf4c7df 100644 --- a/docs/src_physics_p2_ContactMaterial.js.html +++ b/docs/src_physics_p2_ContactMaterial.js.html @@ -1174,7 +1174,7 @@ Phaser.Physics.P2.ContactMaterial.prototype.constructor = Phaser.Physics.P2.Cont Documentation generated by JSDoc 3.3.0-alpha10 - on Wed Jul 22 2015 14:55:11 GMT+0100 (GMT Daylight Time) using the DocStrap template. + on Fri Jul 24 2015 13:29:45 GMT+0100 (GMT Daylight Time) using the DocStrap template. diff --git a/docs/src_physics_p2_DistanceConstraint.js.html b/docs/src_physics_p2_DistanceConstraint.js.html index e8cff8017..31e19369e 100644 --- a/docs/src_physics_p2_DistanceConstraint.js.html +++ b/docs/src_physics_p2_DistanceConstraint.js.html @@ -1160,7 +1160,7 @@ Phaser.Physics.P2.DistanceConstraint.prototype.constructor = Phaser.Physics.P2.D Documentation generated by JSDoc 3.3.0-alpha10 - on Wed Jul 22 2015 14:55:11 GMT+0100 (GMT Daylight Time) using the DocStrap template. + on Fri Jul 24 2015 13:29:45 GMT+0100 (GMT Daylight Time) using the DocStrap template. diff --git a/docs/src_physics_p2_FixtureList.js.html b/docs/src_physics_p2_FixtureList.js.html index 4ba188699..c6dc7a9f5 100644 --- a/docs/src_physics_p2_FixtureList.js.html +++ b/docs/src_physics_p2_FixtureList.js.html @@ -1342,7 +1342,7 @@ Phaser.Physics.P2.FixtureList.prototype = { Documentation generated by JSDoc 3.3.0-alpha10 - on Wed Jul 22 2015 14:55:11 GMT+0100 (GMT Daylight Time) using the DocStrap template. + on Fri Jul 24 2015 13:29:45 GMT+0100 (GMT Daylight Time) using the DocStrap template. diff --git a/docs/src_physics_p2_GearConstraint.js.html b/docs/src_physics_p2_GearConstraint.js.html index e1823fc56..ec6497e5a 100644 --- a/docs/src_physics_p2_GearConstraint.js.html +++ b/docs/src_physics_p2_GearConstraint.js.html @@ -1151,7 +1151,7 @@ Phaser.Physics.P2.GearConstraint.prototype.constructor = Phaser.Physics.P2.GearC Documentation generated by JSDoc 3.3.0-alpha10 - on Wed Jul 22 2015 14:55:11 GMT+0100 (GMT Daylight Time) using the DocStrap template. + on Fri Jul 24 2015 13:29:45 GMT+0100 (GMT Daylight Time) using the DocStrap template. diff --git a/docs/src_physics_p2_InversePointProxy.js.html b/docs/src_physics_p2_InversePointProxy.js.html index ee44d00ff..ecdd661c5 100644 --- a/docs/src_physics_p2_InversePointProxy.js.html +++ b/docs/src_physics_p2_InversePointProxy.js.html @@ -1213,7 +1213,7 @@ Object.defineProperty(Phaser.Physics.P2.InversePointProxy.prototype, "my", { Documentation generated by JSDoc 3.3.0-alpha10 - on Wed Jul 22 2015 14:55:11 GMT+0100 (GMT Daylight Time) using the DocStrap template. + on Fri Jul 24 2015 13:29:45 GMT+0100 (GMT Daylight Time) using the DocStrap template. diff --git a/docs/src_physics_p2_LockConstraint.js.html b/docs/src_physics_p2_LockConstraint.js.html index d2a6c0327..c166f178e 100644 --- a/docs/src_physics_p2_LockConstraint.js.html +++ b/docs/src_physics_p2_LockConstraint.js.html @@ -1155,7 +1155,7 @@ Phaser.Physics.P2.LockConstraint.prototype.constructor = Phaser.Physics.P2.LockC Documentation generated by JSDoc 3.3.0-alpha10 - on Wed Jul 22 2015 14:55:11 GMT+0100 (GMT Daylight Time) using the DocStrap template. + on Fri Jul 24 2015 13:29:45 GMT+0100 (GMT Daylight Time) using the DocStrap template. diff --git a/docs/src_physics_p2_Material.js.html b/docs/src_physics_p2_Material.js.html index 63fd177ca..b9e7148b4 100644 --- a/docs/src_physics_p2_Material.js.html +++ b/docs/src_physics_p2_Material.js.html @@ -1140,7 +1140,7 @@ Phaser.Physics.P2.Material.prototype.constructor = Phaser.Physics.P2.Material; Documentation generated by JSDoc 3.3.0-alpha10 - on Wed Jul 22 2015 14:55:11 GMT+0100 (GMT Daylight Time) using the DocStrap template. + on Fri Jul 24 2015 13:29:45 GMT+0100 (GMT Daylight Time) using the DocStrap template. diff --git a/docs/src_physics_p2_PointProxy.js.html b/docs/src_physics_p2_PointProxy.js.html index 29e90ca46..c6951e204 100644 --- a/docs/src_physics_p2_PointProxy.js.html +++ b/docs/src_physics_p2_PointProxy.js.html @@ -1213,7 +1213,7 @@ Object.defineProperty(Phaser.Physics.P2.PointProxy.prototype, "my", { Documentation generated by JSDoc 3.3.0-alpha10 - on Wed Jul 22 2015 14:55:11 GMT+0100 (GMT Daylight Time) using the DocStrap template. + on Fri Jul 24 2015 13:29:45 GMT+0100 (GMT Daylight Time) using the DocStrap template. diff --git a/docs/src_physics_p2_PrismaticConstraint.js.html b/docs/src_physics_p2_PrismaticConstraint.js.html index 95b4a0cb5..2abf98cad 100644 --- a/docs/src_physics_p2_PrismaticConstraint.js.html +++ b/docs/src_physics_p2_PrismaticConstraint.js.html @@ -1160,7 +1160,7 @@ Phaser.Physics.P2.PrismaticConstraint.prototype.constructor = Phaser.Physics.P2. Documentation generated by JSDoc 3.3.0-alpha10 - on Wed Jul 22 2015 14:55:11 GMT+0100 (GMT Daylight Time) using the DocStrap template. + on Fri Jul 24 2015 13:29:45 GMT+0100 (GMT Daylight Time) using the DocStrap template. diff --git a/docs/src_physics_p2_RevoluteConstraint.js.html b/docs/src_physics_p2_RevoluteConstraint.js.html index 0c2bd4226..3e17ac833 100644 --- a/docs/src_physics_p2_RevoluteConstraint.js.html +++ b/docs/src_physics_p2_RevoluteConstraint.js.html @@ -1162,7 +1162,7 @@ Phaser.Physics.P2.RevoluteConstraint.prototype.constructor = Phaser.Physics.P2.R Documentation generated by JSDoc 3.3.0-alpha10 - on Wed Jul 22 2015 14:55:11 GMT+0100 (GMT Daylight Time) using the DocStrap template. + on Fri Jul 24 2015 13:29:45 GMT+0100 (GMT Daylight Time) using the DocStrap template. diff --git a/docs/src_physics_p2_RotationalSpring.js.html b/docs/src_physics_p2_RotationalSpring.js.html index f86fb04b0..9afa2f04c 100644 --- a/docs/src_physics_p2_RotationalSpring.js.html +++ b/docs/src_physics_p2_RotationalSpring.js.html @@ -1166,7 +1166,7 @@ Phaser.Physics.P2.Spring.prototype.constructor = Phaser.Physics.P2.Spring; Documentation generated by JSDoc 3.3.0-alpha10 - on Wed Jul 22 2015 14:55:11 GMT+0100 (GMT Daylight Time) using the DocStrap template. + on Fri Jul 24 2015 13:29:45 GMT+0100 (GMT Daylight Time) using the DocStrap template. diff --git a/docs/src_physics_p2_Spring.js.html b/docs/src_physics_p2_Spring.js.html index 720390526..57b421006 100644 --- a/docs/src_physics_p2_Spring.js.html +++ b/docs/src_physics_p2_Spring.js.html @@ -1187,7 +1187,7 @@ Phaser.Physics.P2.Spring.prototype.constructor = Phaser.Physics.P2.Spring; Documentation generated by JSDoc 3.3.0-alpha10 - on Wed Jul 22 2015 14:55:11 GMT+0100 (GMT Daylight Time) using the DocStrap template. + on Fri Jul 24 2015 13:29:45 GMT+0100 (GMT Daylight Time) using the DocStrap template. diff --git a/docs/src_physics_p2_World.js.html b/docs/src_physics_p2_World.js.html index c5cfd9d4e..8d90ca81c 100644 --- a/docs/src_physics_p2_World.js.html +++ b/docs/src_physics_p2_World.js.html @@ -3176,7 +3176,7 @@ Object.defineProperty(Phaser.Physics.P2.prototype, "total", { Documentation generated by JSDoc 3.3.0-alpha10 - on Wed Jul 22 2015 14:55:11 GMT+0100 (GMT Daylight Time) using the DocStrap template. + on Fri Jul 24 2015 13:29:45 GMT+0100 (GMT Daylight Time) using the DocStrap template. diff --git a/docs/src_pixi_Pixi.js.html b/docs/src_pixi_Pixi.js.html index 6bf7dddd7..b35da30ef 100644 --- a/docs/src_pixi_Pixi.js.html +++ b/docs/src_pixi_Pixi.js.html @@ -1222,7 +1222,7 @@ PIXI.defaultRenderOptions = { Documentation generated by JSDoc 3.3.0-alpha10 - on Wed Jul 22 2015 14:55:12 GMT+0100 (GMT Daylight Time) using the DocStrap template. + on Fri Jul 24 2015 13:29:45 GMT+0100 (GMT Daylight Time) using the DocStrap template. diff --git a/docs/src_pixi_display_DisplayObject.js.html b/docs/src_pixi_display_DisplayObject.js.html index 3ec6179ac..d6bcff4e0 100644 --- a/docs/src_pixi_display_DisplayObject.js.html +++ b/docs/src_pixi_display_DisplayObject.js.html @@ -1871,7 +1871,7 @@ Object.defineProperty(PIXI.DisplayObject.prototype, 'y', { Documentation generated by JSDoc 3.3.0-alpha10 - on Wed Jul 22 2015 14:55:11 GMT+0100 (GMT Daylight Time) using the DocStrap template. + on Fri Jul 24 2015 13:29:45 GMT+0100 (GMT Daylight Time) using the DocStrap template. diff --git a/docs/src_pixi_display_DisplayObjectContainer.js.html b/docs/src_pixi_display_DisplayObjectContainer.js.html index 93b2c9a47..f50af805c 100644 --- a/docs/src_pixi_display_DisplayObjectContainer.js.html +++ b/docs/src_pixi_display_DisplayObjectContainer.js.html @@ -1622,7 +1622,7 @@ PIXI.DisplayObjectContainer.prototype._renderCanvas = function(renderSession) Documentation generated by JSDoc 3.3.0-alpha10 - on Wed Jul 22 2015 14:55:11 GMT+0100 (GMT Daylight Time) using the DocStrap template. + on Fri Jul 24 2015 13:29:45 GMT+0100 (GMT Daylight Time) using the DocStrap template. diff --git a/docs/src_pixi_display_Sprite.js.html b/docs/src_pixi_display_Sprite.js.html index aab2f93fe..cf30e858e 100644 --- a/docs/src_pixi_display_Sprite.js.html +++ b/docs/src_pixi_display_Sprite.js.html @@ -1596,7 +1596,7 @@ PIXI.Sprite.fromImage = function(imageId, crossorigin, scaleMode) Documentation generated by JSDoc 3.3.0-alpha10 - on Wed Jul 22 2015 14:55:11 GMT+0100 (GMT Daylight Time) using the DocStrap template. + on Fri Jul 24 2015 13:29:45 GMT+0100 (GMT Daylight Time) using the DocStrap template. diff --git a/docs/src_pixi_display_SpriteBatch.js.html b/docs/src_pixi_display_SpriteBatch.js.html index bc9bd2b51..d630c4c94 100644 --- a/docs/src_pixi_display_SpriteBatch.js.html +++ b/docs/src_pixi_display_SpriteBatch.js.html @@ -1289,7 +1289,7 @@ PIXI.SpriteBatch.prototype._renderCanvas = function(renderSession) Documentation generated by JSDoc 3.3.0-alpha10 - on Wed Jul 22 2015 14:55:11 GMT+0100 (GMT Daylight Time) using the DocStrap template. + on Fri Jul 24 2015 13:29:45 GMT+0100 (GMT Daylight Time) using the DocStrap template. diff --git a/docs/src_pixi_display_Stage.js.html b/docs/src_pixi_display_Stage.js.html index 28560b51f..2678e5d7f 100644 --- a/docs/src_pixi_display_Stage.js.html +++ b/docs/src_pixi_display_Stage.js.html @@ -1186,7 +1186,7 @@ PIXI.Stage.prototype.setBackgroundColor = function(backgroundColor) Documentation generated by JSDoc 3.3.0-alpha10 - on Wed Jul 22 2015 14:55:11 GMT+0100 (GMT Daylight Time) using the DocStrap template. + on Fri Jul 24 2015 13:29:45 GMT+0100 (GMT Daylight Time) using the DocStrap template. diff --git a/docs/src_pixi_extras_Rope.js.html b/docs/src_pixi_extras_Rope.js.html index 26a56c38c..66300d11e 100644 --- a/docs/src_pixi_extras_Rope.js.html +++ b/docs/src_pixi_extras_Rope.js.html @@ -1285,7 +1285,7 @@ PIXI.Rope.prototype.setTexture = function(texture) Documentation generated by JSDoc 3.3.0-alpha10 - on Wed Jul 22 2015 14:55:11 GMT+0100 (GMT Daylight Time) using the DocStrap template. + on Fri Jul 24 2015 13:29:45 GMT+0100 (GMT Daylight Time) using the DocStrap template. diff --git a/docs/src_pixi_extras_Strip.js.html b/docs/src_pixi_extras_Strip.js.html index 553e294b5..8c889b077 100644 --- a/docs/src_pixi_extras_Strip.js.html +++ b/docs/src_pixi_extras_Strip.js.html @@ -1580,7 +1580,7 @@ PIXI.Strip.DrawModes = { Documentation generated by JSDoc 3.3.0-alpha10 - on Wed Jul 22 2015 14:55:11 GMT+0100 (GMT Daylight Time) using the DocStrap template. + on Fri Jul 24 2015 13:29:45 GMT+0100 (GMT Daylight Time) using the DocStrap template. diff --git a/docs/src_pixi_extras_TilingSprite.js.html b/docs/src_pixi_extras_TilingSprite.js.html index 9474a3f92..e1643a026 100644 --- a/docs/src_pixi_extras_TilingSprite.js.html +++ b/docs/src_pixi_extras_TilingSprite.js.html @@ -1659,7 +1659,7 @@ Object.defineProperty(PIXI.TilingSprite.prototype, 'height', { Documentation generated by JSDoc 3.3.0-alpha10 - on Wed Jul 22 2015 14:55:11 GMT+0100 (GMT Daylight Time) using the DocStrap template. + on Fri Jul 24 2015 13:29:45 GMT+0100 (GMT Daylight Time) using the DocStrap template. diff --git a/docs/src_pixi_filters_AbstractFilter.js.html b/docs/src_pixi_filters_AbstractFilter.js.html index 3d0ded2db..328837118 100644 --- a/docs/src_pixi_filters_AbstractFilter.js.html +++ b/docs/src_pixi_filters_AbstractFilter.js.html @@ -1188,7 +1188,7 @@ PIXI.AbstractFilter.prototype.apply = function(frameBuffer) Documentation generated by JSDoc 3.3.0-alpha10 - on Wed Jul 22 2015 14:55:11 GMT+0100 (GMT Daylight Time) using the DocStrap template. + on Fri Jul 24 2015 13:29:45 GMT+0100 (GMT Daylight Time) using the DocStrap template. diff --git a/docs/src_pixi_primitives_Graphics.js.html b/docs/src_pixi_primitives_Graphics.js.html index 99fc1fded..0fa3ec7b3 100644 --- a/docs/src_pixi_primitives_Graphics.js.html +++ b/docs/src_pixi_primitives_Graphics.js.html @@ -2312,7 +2312,7 @@ Object.defineProperty(PIXI.Graphics.prototype, "cacheAsBitmap", { Documentation generated by JSDoc 3.3.0-alpha10 - on Wed Jul 22 2015 14:55:11 GMT+0100 (GMT Daylight Time) using the DocStrap template. + on Fri Jul 24 2015 13:29:45 GMT+0100 (GMT Daylight Time) using the DocStrap template. diff --git a/docs/src_pixi_primitives_GraphicsData.js.html b/docs/src_pixi_primitives_GraphicsData.js.html index 193402e85..40b6f7b92 100644 --- a/docs/src_pixi_primitives_GraphicsData.js.html +++ b/docs/src_pixi_primitives_GraphicsData.js.html @@ -1220,7 +1220,7 @@ PIXI.GraphicsData.prototype.clone = function() { Documentation generated by JSDoc 3.3.0-alpha10 - on Wed Jul 22 2015 14:55:11 GMT+0100 (GMT Daylight Time) using the DocStrap template. + on Fri Jul 24 2015 13:29:45 GMT+0100 (GMT Daylight Time) using the DocStrap template. diff --git a/docs/src_pixi_renderers_canvas_CanvasGraphics.js.html b/docs/src_pixi_renderers_canvas_CanvasGraphics.js.html index da1b582f5..cac2f2168 100644 --- a/docs/src_pixi_renderers_canvas_CanvasGraphics.js.html +++ b/docs/src_pixi_renderers_canvas_CanvasGraphics.js.html @@ -1463,7 +1463,7 @@ PIXI.CanvasGraphics.updateGraphicsTint = function(graphics) Documentation generated by JSDoc 3.3.0-alpha10 - on Wed Jul 22 2015 14:55:11 GMT+0100 (GMT Daylight Time) using the DocStrap template. + on Fri Jul 24 2015 13:29:45 GMT+0100 (GMT Daylight Time) using the DocStrap template. diff --git a/docs/src_pixi_renderers_canvas_CanvasRenderer.js.html b/docs/src_pixi_renderers_canvas_CanvasRenderer.js.html index 1953d2fa2..a4567b510 100644 --- a/docs/src_pixi_renderers_canvas_CanvasRenderer.js.html +++ b/docs/src_pixi_renderers_canvas_CanvasRenderer.js.html @@ -1445,7 +1445,7 @@ PIXI.CanvasRenderer.prototype.mapBlendModes = function() Documentation generated by JSDoc 3.3.0-alpha10 - on Wed Jul 22 2015 14:55:11 GMT+0100 (GMT Daylight Time) using the DocStrap template. + on Fri Jul 24 2015 13:29:45 GMT+0100 (GMT Daylight Time) using the DocStrap template. diff --git a/docs/src_pixi_renderers_canvas_utils_CanvasBuffer.js.html b/docs/src_pixi_renderers_canvas_utils_CanvasBuffer.js.html index 2d7119621..eaba8dcf1 100644 --- a/docs/src_pixi_renderers_canvas_utils_CanvasBuffer.js.html +++ b/docs/src_pixi_renderers_canvas_utils_CanvasBuffer.js.html @@ -1187,7 +1187,7 @@ PIXI.CanvasBuffer.prototype.resize = function(width, height) Documentation generated by JSDoc 3.3.0-alpha10 - on Wed Jul 22 2015 14:55:12 GMT+0100 (GMT Daylight Time) using the DocStrap template. + on Fri Jul 24 2015 13:29:45 GMT+0100 (GMT Daylight Time) using the DocStrap template. diff --git a/docs/src_pixi_renderers_canvas_utils_CanvasMaskManager.js.html b/docs/src_pixi_renderers_canvas_utils_CanvasMaskManager.js.html index 721acbe26..d1d9bb2d1 100644 --- a/docs/src_pixi_renderers_canvas_utils_CanvasMaskManager.js.html +++ b/docs/src_pixi_renderers_canvas_utils_CanvasMaskManager.js.html @@ -1169,7 +1169,7 @@ PIXI.CanvasMaskManager.prototype.popMask = function(renderSession) Documentation generated by JSDoc 3.3.0-alpha10 - on Wed Jul 22 2015 14:55:11 GMT+0100 (GMT Daylight Time) using the DocStrap template. + on Fri Jul 24 2015 13:29:45 GMT+0100 (GMT Daylight Time) using the DocStrap template. diff --git a/docs/src_pixi_renderers_canvas_utils_CanvasTinter.js.html b/docs/src_pixi_renderers_canvas_utils_CanvasTinter.js.html index 3155de8a0..46388025c 100644 --- a/docs/src_pixi_renderers_canvas_utils_CanvasTinter.js.html +++ b/docs/src_pixi_renderers_canvas_utils_CanvasTinter.js.html @@ -1282,7 +1282,7 @@ PIXI.CanvasTinter.tintMethod = PIXI.CanvasTinter.canUseMultiply ? PIXI.CanvasTin Documentation generated by JSDoc 3.3.0-alpha10 - on Wed Jul 22 2015 14:55:11 GMT+0100 (GMT Daylight Time) using the DocStrap template. + on Fri Jul 24 2015 13:29:45 GMT+0100 (GMT Daylight Time) using the DocStrap template. diff --git a/docs/src_pixi_renderers_webgl_WebGLRenderer.js.html b/docs/src_pixi_renderers_webgl_WebGLRenderer.js.html index 0f271771d..e318e5f80 100644 --- a/docs/src_pixi_renderers_webgl_WebGLRenderer.js.html +++ b/docs/src_pixi_renderers_webgl_WebGLRenderer.js.html @@ -1597,7 +1597,7 @@ PIXI.WebGLRenderer.glContextId = 0; Documentation generated by JSDoc 3.3.0-alpha10 - on Wed Jul 22 2015 14:55:11 GMT+0100 (GMT Daylight Time) using the DocStrap template. + on Fri Jul 24 2015 13:29:45 GMT+0100 (GMT Daylight Time) using the DocStrap template. diff --git a/docs/src_pixi_renderers_webgl_shaders_ComplexPrimitiveShader.js.html b/docs/src_pixi_renderers_webgl_shaders_ComplexPrimitiveShader.js.html index 7b1d8d2dd..3f2f3f07c 100644 --- a/docs/src_pixi_renderers_webgl_shaders_ComplexPrimitiveShader.js.html +++ b/docs/src_pixi_renderers_webgl_shaders_ComplexPrimitiveShader.js.html @@ -1233,7 +1233,7 @@ PIXI.ComplexPrimitiveShader.prototype.destroy = function() Documentation generated by JSDoc 3.3.0-alpha10 - on Wed Jul 22 2015 14:55:11 GMT+0100 (GMT Daylight Time) using the DocStrap template. + on Fri Jul 24 2015 13:29:45 GMT+0100 (GMT Daylight Time) using the DocStrap template. diff --git a/docs/src_pixi_renderers_webgl_shaders_PixiFastShader.js.html b/docs/src_pixi_renderers_webgl_shaders_PixiFastShader.js.html index 7ea41eec9..8d1f39637 100644 --- a/docs/src_pixi_renderers_webgl_shaders_PixiFastShader.js.html +++ b/docs/src_pixi_renderers_webgl_shaders_PixiFastShader.js.html @@ -1266,7 +1266,7 @@ PIXI.PixiFastShader.prototype.destroy = function() Documentation generated by JSDoc 3.3.0-alpha10 - on Wed Jul 22 2015 14:55:11 GMT+0100 (GMT Daylight Time) using the DocStrap template. + on Fri Jul 24 2015 13:29:45 GMT+0100 (GMT Daylight Time) using the DocStrap template. diff --git a/docs/src_pixi_renderers_webgl_shaders_PixiShader.js.html b/docs/src_pixi_renderers_webgl_shaders_PixiShader.js.html index 09be87961..c82e0bfe4 100644 --- a/docs/src_pixi_renderers_webgl_shaders_PixiShader.js.html +++ b/docs/src_pixi_renderers_webgl_shaders_PixiShader.js.html @@ -1499,7 +1499,7 @@ PIXI.PixiShader.defaultVertexSrc = [ Documentation generated by JSDoc 3.3.0-alpha10 - on Wed Jul 22 2015 14:55:11 GMT+0100 (GMT Daylight Time) using the DocStrap template. + on Fri Jul 24 2015 13:29:45 GMT+0100 (GMT Daylight Time) using the DocStrap template. diff --git a/docs/src_pixi_renderers_webgl_shaders_PrimitiveShader.js.html b/docs/src_pixi_renderers_webgl_shaders_PrimitiveShader.js.html index 0d08a55f0..806de5a1e 100644 --- a/docs/src_pixi_renderers_webgl_shaders_PrimitiveShader.js.html +++ b/docs/src_pixi_renderers_webgl_shaders_PrimitiveShader.js.html @@ -1228,7 +1228,7 @@ PIXI.PrimitiveShader.prototype.destroy = function() Documentation generated by JSDoc 3.3.0-alpha10 - on Wed Jul 22 2015 14:55:11 GMT+0100 (GMT Daylight Time) using the DocStrap template. + on Fri Jul 24 2015 13:29:45 GMT+0100 (GMT Daylight Time) using the DocStrap template. diff --git a/docs/src_pixi_renderers_webgl_shaders_StripShader.js.html b/docs/src_pixi_renderers_webgl_shaders_StripShader.js.html index c7fcabcc2..c9c0d114f 100644 --- a/docs/src_pixi_renderers_webgl_shaders_StripShader.js.html +++ b/docs/src_pixi_renderers_webgl_shaders_StripShader.js.html @@ -1234,7 +1234,7 @@ PIXI.StripShader.prototype.destroy = function() Documentation generated by JSDoc 3.3.0-alpha10 - on Wed Jul 22 2015 14:55:11 GMT+0100 (GMT Daylight Time) using the DocStrap template. + on Fri Jul 24 2015 13:29:45 GMT+0100 (GMT Daylight Time) using the DocStrap template. diff --git a/docs/src_pixi_renderers_webgl_utils_FilterTexture.js.html b/docs/src_pixi_renderers_webgl_utils_FilterTexture.js.html index 71285881a..f36784137 100644 --- a/docs/src_pixi_renderers_webgl_utils_FilterTexture.js.html +++ b/docs/src_pixi_renderers_webgl_utils_FilterTexture.js.html @@ -1221,7 +1221,7 @@ PIXI.FilterTexture.prototype.destroy = function() Documentation generated by JSDoc 3.3.0-alpha10 - on Wed Jul 22 2015 14:55:11 GMT+0100 (GMT Daylight Time) using the DocStrap template. + on Fri Jul 24 2015 13:29:45 GMT+0100 (GMT Daylight Time) using the DocStrap template. diff --git a/docs/src_pixi_renderers_webgl_utils_WebGLBlendModeManager.js.html b/docs/src_pixi_renderers_webgl_utils_WebGLBlendModeManager.js.html index 7bd3af02a..921f04fb6 100644 --- a/docs/src_pixi_renderers_webgl_utils_WebGLBlendModeManager.js.html +++ b/docs/src_pixi_renderers_webgl_utils_WebGLBlendModeManager.js.html @@ -1169,7 +1169,7 @@ PIXI.WebGLBlendModeManager.prototype.destroy = function() Documentation generated by JSDoc 3.3.0-alpha10 - on Wed Jul 22 2015 14:55:11 GMT+0100 (GMT Daylight Time) using the DocStrap template. + on Fri Jul 24 2015 13:29:45 GMT+0100 (GMT Daylight Time) using the DocStrap template. diff --git a/docs/src_pixi_renderers_webgl_utils_WebGLFastSpriteBatch.js.html b/docs/src_pixi_renderers_webgl_utils_WebGLFastSpriteBatch.js.html index c407ed1a8..45453430a 100644 --- a/docs/src_pixi_renderers_webgl_utils_WebGLFastSpriteBatch.js.html +++ b/docs/src_pixi_renderers_webgl_utils_WebGLFastSpriteBatch.js.html @@ -1539,7 +1539,7 @@ PIXI.WebGLFastSpriteBatch.prototype.start = function() Documentation generated by JSDoc 3.3.0-alpha10 - on Wed Jul 22 2015 14:55:11 GMT+0100 (GMT Daylight Time) using the DocStrap template. + on Fri Jul 24 2015 13:29:45 GMT+0100 (GMT Daylight Time) using the DocStrap template. diff --git a/docs/src_pixi_renderers_webgl_utils_WebGLFilterManager.js.html b/docs/src_pixi_renderers_webgl_utils_WebGLFilterManager.js.html index 90b447347..c0c2db24f 100644 --- a/docs/src_pixi_renderers_webgl_utils_WebGLFilterManager.js.html +++ b/docs/src_pixi_renderers_webgl_utils_WebGLFilterManager.js.html @@ -1561,7 +1561,7 @@ PIXI.WebGLFilterManager.prototype.destroy = function() Documentation generated by JSDoc 3.3.0-alpha10 - on Wed Jul 22 2015 14:55:11 GMT+0100 (GMT Daylight Time) using the DocStrap template. + on Fri Jul 24 2015 13:29:45 GMT+0100 (GMT Daylight Time) using the DocStrap template. diff --git a/docs/src_pixi_renderers_webgl_utils_WebGLGraphics.js.html b/docs/src_pixi_renderers_webgl_utils_WebGLGraphics.js.html index b407d2764..1f192b527 100644 --- a/docs/src_pixi_renderers_webgl_utils_WebGLGraphics.js.html +++ b/docs/src_pixi_renderers_webgl_utils_WebGLGraphics.js.html @@ -2007,7 +2007,7 @@ PIXI.WebGLGraphicsData.prototype.upload = function() Documentation generated by JSDoc 3.3.0-alpha10 - on Wed Jul 22 2015 14:55:11 GMT+0100 (GMT Daylight Time) using the DocStrap template. + on Fri Jul 24 2015 13:29:45 GMT+0100 (GMT Daylight Time) using the DocStrap template. diff --git a/docs/src_pixi_renderers_webgl_utils_WebGLMaskManager.js.html b/docs/src_pixi_renderers_webgl_utils_WebGLMaskManager.js.html index 876d54343..d174baab0 100644 --- a/docs/src_pixi_renderers_webgl_utils_WebGLMaskManager.js.html +++ b/docs/src_pixi_renderers_webgl_utils_WebGLMaskManager.js.html @@ -1180,7 +1180,7 @@ PIXI.WebGLMaskManager.prototype.destroy = function() Documentation generated by JSDoc 3.3.0-alpha10 - on Wed Jul 22 2015 14:55:11 GMT+0100 (GMT Daylight Time) using the DocStrap template. + on Fri Jul 24 2015 13:29:45 GMT+0100 (GMT Daylight Time) using the DocStrap template. diff --git a/docs/src_pixi_renderers_webgl_utils_WebGLShaderManager.js.html b/docs/src_pixi_renderers_webgl_utils_WebGLShaderManager.js.html index ae1cbe8d1..6228ff967 100644 --- a/docs/src_pixi_renderers_webgl_utils_WebGLShaderManager.js.html +++ b/docs/src_pixi_renderers_webgl_utils_WebGLShaderManager.js.html @@ -1268,7 +1268,7 @@ PIXI.WebGLShaderManager.prototype.destroy = function() Documentation generated by JSDoc 3.3.0-alpha10 - on Wed Jul 22 2015 14:55:11 GMT+0100 (GMT Daylight Time) using the DocStrap template. + on Fri Jul 24 2015 13:29:45 GMT+0100 (GMT Daylight Time) using the DocStrap template. diff --git a/docs/src_pixi_renderers_webgl_utils_WebGLShaderUtils.js.html b/docs/src_pixi_renderers_webgl_utils_WebGLShaderUtils.js.html index 4d18db476..b85746d57 100644 --- a/docs/src_pixi_renderers_webgl_utils_WebGLShaderUtils.js.html +++ b/docs/src_pixi_renderers_webgl_utils_WebGLShaderUtils.js.html @@ -1205,7 +1205,7 @@ PIXI.compileProgram = function(gl, vertexSrc, fragmentSrc) Documentation generated by JSDoc 3.3.0-alpha10 - on Wed Jul 22 2015 14:55:11 GMT+0100 (GMT Daylight Time) using the DocStrap template. + on Fri Jul 24 2015 13:29:45 GMT+0100 (GMT Daylight Time) using the DocStrap template. diff --git a/docs/src_pixi_renderers_webgl_utils_WebGLSpriteBatch.js.html b/docs/src_pixi_renderers_webgl_utils_WebGLSpriteBatch.js.html index 526933615..4d33b47c7 100644 --- a/docs/src_pixi_renderers_webgl_utils_WebGLSpriteBatch.js.html +++ b/docs/src_pixi_renderers_webgl_utils_WebGLSpriteBatch.js.html @@ -1779,7 +1779,7 @@ PIXI.WebGLSpriteBatch.prototype.destroy = function() Documentation generated by JSDoc 3.3.0-alpha10 - on Wed Jul 22 2015 14:55:12 GMT+0100 (GMT Daylight Time) using the DocStrap template. + on Fri Jul 24 2015 13:29:45 GMT+0100 (GMT Daylight Time) using the DocStrap template. diff --git a/docs/src_pixi_renderers_webgl_utils_WebGLStencilManager.js.html b/docs/src_pixi_renderers_webgl_utils_WebGLStencilManager.js.html index f1530b19a..74b87b9e8 100644 --- a/docs/src_pixi_renderers_webgl_utils_WebGLStencilManager.js.html +++ b/docs/src_pixi_renderers_webgl_utils_WebGLStencilManager.js.html @@ -1408,7 +1408,7 @@ PIXI.WebGLStencilManager.prototype.destroy = function() Documentation generated by JSDoc 3.3.0-alpha10 - on Wed Jul 22 2015 14:55:11 GMT+0100 (GMT Daylight Time) using the DocStrap template. + on Fri Jul 24 2015 13:29:45 GMT+0100 (GMT Daylight Time) using the DocStrap template. diff --git a/docs/src_pixi_textures_BaseTexture.js.html b/docs/src_pixi_textures_BaseTexture.js.html index e3f30de86..f8d7a529d 100644 --- a/docs/src_pixi_textures_BaseTexture.js.html +++ b/docs/src_pixi_textures_BaseTexture.js.html @@ -1256,13 +1256,16 @@ PIXI.BaseTexture.prototype.destroy = function() { delete PIXI.BaseTextureCache[this.imageUrl]; delete PIXI.TextureCache[this.imageUrl]; + this.imageUrl = null; + if (!navigator.isCocoonJS) this.source.src = ''; } else if (this.source && this.source._pixiId) { delete PIXI.BaseTextureCache[this.source._pixiId]; } + this.source = null; this.unloadFromGPU(); @@ -1422,7 +1425,7 @@ PIXI.BaseTexture.fromCanvas = function(canvas, scaleMode) Documentation generated by JSDoc 3.3.0-alpha10 - on Wed Jul 22 2015 14:55:11 GMT+0100 (GMT Daylight Time) using the DocStrap template. + on Fri Jul 24 2015 13:29:45 GMT+0100 (GMT Daylight Time) using the DocStrap template. diff --git a/docs/src_pixi_textures_RenderTexture.js.html b/docs/src_pixi_textures_RenderTexture.js.html index d319c40c0..3855dbb4f 100644 --- a/docs/src_pixi_textures_RenderTexture.js.html +++ b/docs/src_pixi_textures_RenderTexture.js.html @@ -1453,7 +1453,7 @@ PIXI.RenderTexture.prototype.getCanvas = function() Documentation generated by JSDoc 3.3.0-alpha10 - on Wed Jul 22 2015 14:55:11 GMT+0100 (GMT Daylight Time) using the DocStrap template. + on Fri Jul 24 2015 13:29:45 GMT+0100 (GMT Daylight Time) using the DocStrap template. diff --git a/docs/src_pixi_textures_Texture.js.html b/docs/src_pixi_textures_Texture.js.html index 6c9ecc5b3..be90ac605 100644 --- a/docs/src_pixi_textures_Texture.js.html +++ b/docs/src_pixi_textures_Texture.js.html @@ -1464,7 +1464,7 @@ PIXI.TextureUvs = function() Documentation generated by JSDoc 3.3.0-alpha10 - on Wed Jul 22 2015 14:55:11 GMT+0100 (GMT Daylight Time) using the DocStrap template. + on Fri Jul 24 2015 13:29:45 GMT+0100 (GMT Daylight Time) using the DocStrap template. diff --git a/docs/src_pixi_utils_EventTarget.js.html b/docs/src_pixi_utils_EventTarget.js.html index 5cf89ed9a..6fa3a8a2b 100644 --- a/docs/src_pixi_utils_EventTarget.js.html +++ b/docs/src_pixi_utils_EventTarget.js.html @@ -1395,7 +1395,7 @@ PIXI.Event.prototype.stopImmediatePropagation = function stopImmediatePropagatio Documentation generated by JSDoc 3.3.0-alpha10 - on Wed Jul 22 2015 14:55:11 GMT+0100 (GMT Daylight Time) using the DocStrap template. + on Fri Jul 24 2015 13:29:45 GMT+0100 (GMT Daylight Time) using the DocStrap template. diff --git a/docs/src_pixi_utils_Polyk.js.html b/docs/src_pixi_utils_Polyk.js.html index 7fb484bf7..3dd6e212b 100644 --- a/docs/src_pixi_utils_Polyk.js.html +++ b/docs/src_pixi_utils_Polyk.js.html @@ -1279,7 +1279,7 @@ PIXI.PolyK._convex = function(ax, ay, bx, by, cx, cy, sign) Documentation generated by JSDoc 3.3.0-alpha10 - on Wed Jul 22 2015 14:55:12 GMT+0100 (GMT Daylight Time) using the DocStrap template. + on Fri Jul 24 2015 13:29:45 GMT+0100 (GMT Daylight Time) using the DocStrap template. diff --git a/docs/src_pixi_utils_Utils.js.html b/docs/src_pixi_utils_Utils.js.html index dc97f865a..af7deec30 100644 --- a/docs/src_pixi_utils_Utils.js.html +++ b/docs/src_pixi_utils_Utils.js.html @@ -1204,7 +1204,7 @@ PIXI.isPowerOfTwo = function(width, height) Documentation generated by JSDoc 3.3.0-alpha10 - on Wed Jul 22 2015 14:55:11 GMT+0100 (GMT Daylight Time) using the DocStrap template. + on Fri Jul 24 2015 13:29:45 GMT+0100 (GMT Daylight Time) using the DocStrap template. diff --git a/docs/src_sound_AudioSprite.js.html b/docs/src_sound_AudioSprite.js.html index dcc7f43e6..1b2347116 100644 --- a/docs/src_sound_AudioSprite.js.html +++ b/docs/src_sound_AudioSprite.js.html @@ -1241,7 +1241,7 @@ Phaser.AudioSprite.prototype.constructor = Phaser.AudioSprite; Documentation generated by JSDoc 3.3.0-alpha10 - on Wed Jul 22 2015 14:55:11 GMT+0100 (GMT Daylight Time) using the DocStrap template. + on Fri Jul 24 2015 13:29:45 GMT+0100 (GMT Daylight Time) using the DocStrap template. diff --git a/docs/src_sound_Sound.js.html b/docs/src_sound_Sound.js.html index 5cc3de7dd..7cb543bbb 100644 --- a/docs/src_sound_Sound.js.html +++ b/docs/src_sound_Sound.js.html @@ -2252,7 +2252,7 @@ Object.defineProperty(Phaser.Sound.prototype, "volume", { Documentation generated by JSDoc 3.3.0-alpha10 - on Wed Jul 22 2015 14:55:11 GMT+0100 (GMT Daylight Time) using the DocStrap template. + on Fri Jul 24 2015 13:29:45 GMT+0100 (GMT Daylight Time) using the DocStrap template. diff --git a/docs/src_sound_SoundManager.js.html b/docs/src_sound_SoundManager.js.html index 43a7ddf12..0d3561daa 100644 --- a/docs/src_sound_SoundManager.js.html +++ b/docs/src_sound_SoundManager.js.html @@ -1932,7 +1932,7 @@ Object.defineProperty(Phaser.SoundManager.prototype, "volume", { Documentation generated by JSDoc 3.3.0-alpha10 - on Wed Jul 22 2015 14:55:11 GMT+0100 (GMT Daylight Time) using the DocStrap template. + on Fri Jul 24 2015 13:29:45 GMT+0100 (GMT Daylight Time) using the DocStrap template. diff --git a/docs/src_system_Canvas.js.html b/docs/src_system_Canvas.js.html index 47ab1e856..974718528 100644 --- a/docs/src_system_Canvas.js.html +++ b/docs/src_system_Canvas.js.html @@ -1384,7 +1384,7 @@ Phaser.Canvas = { Documentation generated by JSDoc 3.3.0-alpha10 - on Wed Jul 22 2015 14:55:11 GMT+0100 (GMT Daylight Time) using the DocStrap template. + on Fri Jul 24 2015 13:29:45 GMT+0100 (GMT Daylight Time) using the DocStrap template. diff --git a/docs/src_system_DOM.js.html b/docs/src_system_DOM.js.html index b9ea2e769..85770d9fa 100644 --- a/docs/src_system_DOM.js.html +++ b/docs/src_system_DOM.js.html @@ -1543,7 +1543,7 @@ Phaser.Device.whenReady(function (device) { Documentation generated by JSDoc 3.3.0-alpha10 - on Wed Jul 22 2015 14:55:11 GMT+0100 (GMT Daylight Time) using the DocStrap template. + on Fri Jul 24 2015 13:29:45 GMT+0100 (GMT Daylight Time) using the DocStrap template. diff --git a/docs/src_system_Device.js.html b/docs/src_system_Device.js.html index a17b3630c..60e359d98 100644 --- a/docs/src_system_Device.js.html +++ b/docs/src_system_Device.js.html @@ -1820,7 +1820,7 @@ Phaser.Device._initialize = function () { device.getUserMedia = device.getUserMedia && !!navigator.getUserMedia && !!window.URL; // Older versions of firefox (< 21) apparently claim support but user media does not actually work - if (device.firefoxVersion < 21) + if (device.firefox && device.firefoxVersion < 21) { device.getUserMedia = false; } @@ -1829,8 +1829,7 @@ Phaser.Device._initialize = function () { // Excludes iOS versions as they generally wrap UIWebView (eg. Safari WebKit) and it // is safer to not try and use the fast copy-over method. - if (!device.iOS && - (device.ie || device.firefox || device.chrome)) + if (!device.iOS && (device.ie || device.firefox || device.chrome)) { device.canvasBitBltShift = true; } @@ -2426,7 +2425,7 @@ Phaser.Device.isAndroidStockBrowser = function () { Documentation generated by JSDoc 3.3.0-alpha10 - on Wed Jul 22 2015 14:55:11 GMT+0100 (GMT Daylight Time) using the DocStrap template. + on Fri Jul 24 2015 13:29:45 GMT+0100 (GMT Daylight Time) using the DocStrap template. diff --git a/docs/src_system_RequestAnimationFrame.js.html b/docs/src_system_RequestAnimationFrame.js.html index 8a2824251..9ac64688a 100644 --- a/docs/src_system_RequestAnimationFrame.js.html +++ b/docs/src_system_RequestAnimationFrame.js.html @@ -1279,7 +1279,7 @@ Phaser.RequestAnimationFrame.prototype.constructor = Phaser.RequestAnimationFram Documentation generated by JSDoc 3.3.0-alpha10 - on Wed Jul 22 2015 14:55:11 GMT+0100 (GMT Daylight Time) using the DocStrap template. + on Fri Jul 24 2015 13:29:45 GMT+0100 (GMT Daylight Time) using the DocStrap template. diff --git a/docs/src_tilemap_ImageCollection.js.html b/docs/src_tilemap_ImageCollection.js.html index 31f7717db..099213772 100644 --- a/docs/src_tilemap_ImageCollection.js.html +++ b/docs/src_tilemap_ImageCollection.js.html @@ -1241,7 +1241,7 @@ Phaser.ImageCollection.prototype.constructor = Phaser.ImageCollection; Documentation generated by JSDoc 3.3.0-alpha10 - on Wed Jul 22 2015 14:55:11 GMT+0100 (GMT Daylight Time) using the DocStrap template. + on Fri Jul 24 2015 13:29:45 GMT+0100 (GMT Daylight Time) using the DocStrap template. diff --git a/docs/src_tilemap_Tile.js.html b/docs/src_tilemap_Tile.js.html index 24c7eb8af..22d51517e 100644 --- a/docs/src_tilemap_Tile.js.html +++ b/docs/src_tilemap_Tile.js.html @@ -1518,7 +1518,7 @@ Object.defineProperty(Phaser.Tile.prototype, "bottom", { Documentation generated by JSDoc 3.3.0-alpha10 - on Wed Jul 22 2015 14:55:11 GMT+0100 (GMT Daylight Time) using the DocStrap template. + on Fri Jul 24 2015 13:29:45 GMT+0100 (GMT Daylight Time) using the DocStrap template. diff --git a/docs/src_tilemap_Tilemap.js.html b/docs/src_tilemap_Tilemap.js.html index c3a334773..47d42b377 100644 --- a/docs/src_tilemap_Tilemap.js.html +++ b/docs/src_tilemap_Tilemap.js.html @@ -3048,7 +3048,7 @@ Object.defineProperty(Phaser.Tilemap.prototype, "layer", { Documentation generated by JSDoc 3.3.0-alpha10 - on Wed Jul 22 2015 14:55:12 GMT+0100 (GMT Daylight Time) using the DocStrap template. + on Fri Jul 24 2015 13:29:45 GMT+0100 (GMT Daylight Time) using the DocStrap template. diff --git a/docs/src_tilemap_TilemapLayer.js.html b/docs/src_tilemap_TilemapLayer.js.html index cb310b0d0..2265349de 100644 --- a/docs/src_tilemap_TilemapLayer.js.html +++ b/docs/src_tilemap_TilemapLayer.js.html @@ -2385,7 +2385,7 @@ Object.defineProperty(Phaser.TilemapLayer.prototype, "collisionHeight", { Documentation generated by JSDoc 3.3.0-alpha10 - on Wed Jul 22 2015 14:55:11 GMT+0100 (GMT Daylight Time) using the DocStrap template. + on Fri Jul 24 2015 13:29:45 GMT+0100 (GMT Daylight Time) using the DocStrap template. diff --git a/docs/src_tilemap_TilemapParser.js.html b/docs/src_tilemap_TilemapParser.js.html index 00290356f..cdbfa67b6 100644 --- a/docs/src_tilemap_TilemapParser.js.html +++ b/docs/src_tilemap_TilemapParser.js.html @@ -1749,7 +1749,7 @@ Phaser.TilemapParser = { Documentation generated by JSDoc 3.3.0-alpha10 - on Wed Jul 22 2015 14:55:12 GMT+0100 (GMT Daylight Time) using the DocStrap template. + on Fri Jul 24 2015 13:29:45 GMT+0100 (GMT Daylight Time) using the DocStrap template. diff --git a/docs/src_tilemap_Tileset.js.html b/docs/src_tilemap_Tileset.js.html index 9dd20a860..6cb870d33 100644 --- a/docs/src_tilemap_Tileset.js.html +++ b/docs/src_tilemap_Tileset.js.html @@ -1371,7 +1371,7 @@ Phaser.Tileset.prototype.constructor = Phaser.Tileset; Documentation generated by JSDoc 3.3.0-alpha10 - on Wed Jul 22 2015 14:55:12 GMT+0100 (GMT Daylight Time) using the DocStrap template. + on Fri Jul 24 2015 13:29:45 GMT+0100 (GMT Daylight Time) using the DocStrap template. diff --git a/docs/src_time_Time.js.html b/docs/src_time_Time.js.html index fe20c35fe..e091532de 100644 --- a/docs/src_time_Time.js.html +++ b/docs/src_time_Time.js.html @@ -1713,7 +1713,7 @@ Phaser.Time.prototype.constructor = Phaser.Time; Documentation generated by JSDoc 3.3.0-alpha10 - on Wed Jul 22 2015 14:55:12 GMT+0100 (GMT Daylight Time) using the DocStrap template. + on Fri Jul 24 2015 13:29:45 GMT+0100 (GMT Daylight Time) using the DocStrap template. diff --git a/docs/src_time_Timer.js.html b/docs/src_time_Timer.js.html index d25fac46f..4bdabcf23 100644 --- a/docs/src_time_Timer.js.html +++ b/docs/src_time_Timer.js.html @@ -1866,7 +1866,7 @@ Phaser.Timer.prototype.constructor = Phaser.Timer; Documentation generated by JSDoc 3.3.0-alpha10 - on Wed Jul 22 2015 14:55:12 GMT+0100 (GMT Daylight Time) using the DocStrap template. + on Fri Jul 24 2015 13:29:45 GMT+0100 (GMT Daylight Time) using the DocStrap template. diff --git a/docs/src_time_TimerEvent.js.html b/docs/src_time_TimerEvent.js.html index d4589fe88..67d8d84c8 100644 --- a/docs/src_time_TimerEvent.js.html +++ b/docs/src_time_TimerEvent.js.html @@ -1189,7 +1189,7 @@ Phaser.TimerEvent.prototype.constructor = Phaser.TimerEvent; Documentation generated by JSDoc 3.3.0-alpha10 - on Wed Jul 22 2015 14:55:12 GMT+0100 (GMT Daylight Time) using the DocStrap template. + on Fri Jul 24 2015 13:29:45 GMT+0100 (GMT Daylight Time) using the DocStrap template. diff --git a/docs/src_tween_Easing.js.html b/docs/src_tween_Easing.js.html index ada4a6448..255b27a1a 100644 --- a/docs/src_tween_Easing.js.html +++ b/docs/src_tween_Easing.js.html @@ -1687,7 +1687,7 @@ Phaser.Easing.Power4 = Phaser.Easing.Quintic.Out; Documentation generated by JSDoc 3.3.0-alpha10 - on Wed Jul 22 2015 14:55:11 GMT+0100 (GMT Daylight Time) using the DocStrap template. + on Fri Jul 24 2015 13:29:45 GMT+0100 (GMT Daylight Time) using the DocStrap template. diff --git a/docs/src_tween_Tween.js.html b/docs/src_tween_Tween.js.html index dbe5cdb0e..cffb5e3ac 100644 --- a/docs/src_tween_Tween.js.html +++ b/docs/src_tween_Tween.js.html @@ -2010,7 +2010,7 @@ Phaser.Tween.prototype.constructor = Phaser.Tween; Documentation generated by JSDoc 3.3.0-alpha10 - on Wed Jul 22 2015 14:55:12 GMT+0100 (GMT Daylight Time) using the DocStrap template. + on Fri Jul 24 2015 13:29:45 GMT+0100 (GMT Daylight Time) using the DocStrap template. diff --git a/docs/src_tween_TweenData.js.html b/docs/src_tween_TweenData.js.html index 73b78de56..55724061e 100644 --- a/docs/src_tween_TweenData.js.html +++ b/docs/src_tween_TweenData.js.html @@ -1671,7 +1671,7 @@ Phaser.TweenData.prototype.constructor = Phaser.TweenData; Documentation generated by JSDoc 3.3.0-alpha10 - on Wed Jul 22 2015 14:55:12 GMT+0100 (GMT Daylight Time) using the DocStrap template. + on Fri Jul 24 2015 13:29:45 GMT+0100 (GMT Daylight Time) using the DocStrap template. diff --git a/docs/src_tween_TweenManager.js.html b/docs/src_tween_TweenManager.js.html index bd9a8ac8c..58c6c35fe 100644 --- a/docs/src_tween_TweenManager.js.html +++ b/docs/src_tween_TweenManager.js.html @@ -1458,7 +1458,7 @@ Phaser.TweenManager.prototype.constructor = Phaser.TweenManager; Documentation generated by JSDoc 3.3.0-alpha10 - on Wed Jul 22 2015 14:55:12 GMT+0100 (GMT Daylight Time) using the DocStrap template. + on Fri Jul 24 2015 13:29:45 GMT+0100 (GMT Daylight Time) using the DocStrap template. diff --git a/docs/src_utils_ArraySet.js.html b/docs/src_utils_ArraySet.js.html index 70567f260..9d1c4f749 100644 --- a/docs/src_utils_ArraySet.js.html +++ b/docs/src_utils_ArraySet.js.html @@ -1392,7 +1392,7 @@ Phaser.ArraySet.prototype.constructor = Phaser.ArraySet; Documentation generated by JSDoc 3.3.0-alpha10 - on Wed Jul 22 2015 14:55:11 GMT+0100 (GMT Daylight Time) using the DocStrap template. + on Fri Jul 24 2015 13:29:45 GMT+0100 (GMT Daylight Time) using the DocStrap template. diff --git a/docs/src_utils_ArrayUtils.js.html b/docs/src_utils_ArrayUtils.js.html index 2682d060d..22666447f 100644 --- a/docs/src_utils_ArrayUtils.js.html +++ b/docs/src_utils_ArrayUtils.js.html @@ -1420,7 +1420,7 @@ Phaser.ArrayUtils = { Documentation generated by JSDoc 3.3.0-alpha10 - on Wed Jul 22 2015 14:55:11 GMT+0100 (GMT Daylight Time) using the DocStrap template. + on Fri Jul 24 2015 13:29:45 GMT+0100 (GMT Daylight Time) using the DocStrap template. diff --git a/docs/src_utils_Color.js.html b/docs/src_utils_Color.js.html index 6c009fc66..4da4ab9f3 100644 --- a/docs/src_utils_Color.js.html +++ b/docs/src_utils_Color.js.html @@ -2450,7 +2450,7 @@ Phaser.Color = { Documentation generated by JSDoc 3.3.0-alpha10 - on Wed Jul 22 2015 14:55:11 GMT+0100 (GMT Daylight Time) using the DocStrap template. + on Fri Jul 24 2015 13:29:45 GMT+0100 (GMT Daylight Time) using the DocStrap template. diff --git a/docs/src_utils_Debug.js.html b/docs/src_utils_Debug.js.html index b79654fce..1ea1ca17c 100644 --- a/docs/src_utils_Debug.js.html +++ b/docs/src_utils_Debug.js.html @@ -1930,7 +1930,7 @@ Phaser.Utils.Debug.prototype.constructor = Phaser.Utils.Debug; Documentation generated by JSDoc 3.3.0-alpha10 - on Wed Jul 22 2015 14:55:12 GMT+0100 (GMT Daylight Time) using the DocStrap template. + on Fri Jul 24 2015 13:29:45 GMT+0100 (GMT Daylight Time) using the DocStrap template. diff --git a/docs/src_utils_LinkedList.js.html b/docs/src_utils_LinkedList.js.html index 786685b9d..24b90d1d7 100644 --- a/docs/src_utils_LinkedList.js.html +++ b/docs/src_utils_LinkedList.js.html @@ -1299,7 +1299,7 @@ Phaser.LinkedList.prototype.constructor = Phaser.LinkedList; Documentation generated by JSDoc 3.3.0-alpha10 - on Wed Jul 22 2015 14:55:11 GMT+0100 (GMT Daylight Time) using the DocStrap template. + on Fri Jul 24 2015 13:29:45 GMT+0100 (GMT Daylight Time) using the DocStrap template. diff --git a/docs/src_utils_Utils.js.html b/docs/src_utils_Utils.js.html index 4bca4b722..3f08f3d45 100644 --- a/docs/src_utils_Utils.js.html +++ b/docs/src_utils_Utils.js.html @@ -1517,7 +1517,7 @@ Phaser.Utils = { Documentation generated by JSDoc 3.3.0-alpha10 - on Wed Jul 22 2015 14:55:11 GMT+0100 (GMT Daylight Time) using the DocStrap template. + on Fri Jul 24 2015 13:29:45 GMT+0100 (GMT Daylight Time) using the DocStrap template. diff --git a/typescript/phaser.comments.d.ts b/typescript/phaser.comments.d.ts index c9827fb3d..90e680b17 100644 --- a/typescript/phaser.comments.d.ts +++ b/typescript/phaser.comments.d.ts @@ -2985,16 +2985,21 @@ declare module Phaser { /** * Gets a PIXI.Texture by key from the PIXI.TextureCache. * + * If the texture isn't found in the cache, then it searches the Phaser Image Cache and + * creates a new PIXI.Texture object which is then returned. + * * @param key Asset key of the Texture to retrieve from the Cache. * @return The Texture object. */ getPixiTexture(key: string): PIXI.Texture; /** - * Gets a PIXI.BaseTexture by key from the PIXI.BaseTExtureCache. + * Gets a PIXI.BaseTexture by key from the PIXI.BaseTextureCache. + * + * If the texture isn't found in the cache, then it searches the Phaser Image Cache. * * @param key Asset key of the BaseTexture to retrieve from the Cache. - * @return The BaseTexture object. + * @return The BaseTexture object or null if not found. */ getPixiBaseTexture(key: string): PIXI.BaseTexture; @@ -3216,13 +3221,15 @@ declare module Phaser { removeCanvas(key: string): void; /** - * Removes an image from the cache and optionally from the Pixi.BaseTextureCache as well. + * Removes an image from the cache. * - * Note that this only removes it from the Phaser.Cache. If you still have references to the data elsewhere + * You can optionally elect to destroy it as well. This calls BaseTexture.destroy on it. + * + * Note that this only removes it from the Phaser and PIXI Caches. If you still have references to the data elsewhere * then it will persist in memory. * * @param key Key of the asset you want to remove. - * @param removeFromPixi Should this image also be removed from the Pixi BaseTextureCache? - Default: true + * @param removeFromPixi Should this image also be destroyed? Removing it from the PIXI.BaseTextureCache? - Default: true */ removeImage(key: string, removeFromPixi?: boolean): void;